[CC1101] Changed shaping datatype to uint8_t

This commit is contained in:
jgromes 2020-07-06 08:52:11 +02:00
parent cb191e7973
commit acdd70693d
2 changed files with 18 additions and 16 deletions

View file

@ -685,18 +685,20 @@ int16_t CC1101::setPromiscuousMode(bool promiscuous) {
return(state); return(state);
} }
int16_t CC1101::setDataShaping(float sh) { int16_t CC1101::setDataShaping(uint8_t sh) {
// set mode to standby // set mode to standby
int16_t state = standby(); int16_t state = standby();
RADIOLIB_ASSERT(state); RADIOLIB_ASSERT(state);
// set data shaping // set data shaping
sh *= 10.0; switch(sh) {
if(abs(sh - 0.0) <= 0.001) { case RADIOLIB_SHAPING_NONE:
state = _mod->SPIsetRegValue(CC1101_REG_MDMCFG2, CC1101_MOD_FORMAT_2_FSK, 6, 4); state = _mod->SPIsetRegValue(CC1101_REG_MDMCFG2, CC1101_MOD_FORMAT_2_FSK, 6, 4);
} else if(abs(sh - 5.0) <= 0.001) { break;
case RADIOLIB_SHAPING_0_5:
state = _mod->SPIsetRegValue(CC1101_REG_MDMCFG2, CC1101_MOD_FORMAT_GFSK, 6, 4); state = _mod->SPIsetRegValue(CC1101_REG_MDMCFG2, CC1101_MOD_FORMAT_GFSK, 6, 4);
} else { break;
default:
return(ERR_INVALID_DATA_SHAPING); return(ERR_INVALID_DATA_SHAPING);
} }
return(state); return(state);
@ -709,15 +711,15 @@ int16_t CC1101::setEncoding(uint8_t encoding) {
// set encoding // set encoding
switch(encoding) { switch(encoding) {
case 0: case RADIOLIB_ENCODING_NRZ:
state = _mod->SPIsetRegValue(CC1101_REG_MDMCFG2, CC1101_MANCHESTER_EN_OFF, 3, 3); state = _mod->SPIsetRegValue(CC1101_REG_MDMCFG2, CC1101_MANCHESTER_EN_OFF, 3, 3);
RADIOLIB_ASSERT(state); RADIOLIB_ASSERT(state);
return(_mod->SPIsetRegValue(CC1101_REG_PKTCTRL0, CC1101_WHITE_DATA_OFF, 6, 6)); return(_mod->SPIsetRegValue(CC1101_REG_PKTCTRL0, CC1101_WHITE_DATA_OFF, 6, 6));
case 1: case RADIOLIB_ENCODING_MANCHESTER:
state = _mod->SPIsetRegValue(CC1101_REG_MDMCFG2, CC1101_MANCHESTER_EN_ON, 3, 3); state = _mod->SPIsetRegValue(CC1101_REG_MDMCFG2, CC1101_MANCHESTER_EN_ON, 3, 3);
RADIOLIB_ASSERT(state); RADIOLIB_ASSERT(state);
return(_mod->SPIsetRegValue(CC1101_REG_PKTCTRL0, CC1101_WHITE_DATA_OFF, 6, 6)); return(_mod->SPIsetRegValue(CC1101_REG_PKTCTRL0, CC1101_WHITE_DATA_OFF, 6, 6));
case 2: case RADIOLIB_ENCODING_WHITENING:
state = _mod->SPIsetRegValue(CC1101_REG_MDMCFG2, CC1101_MANCHESTER_EN_OFF, 3, 3); state = _mod->SPIsetRegValue(CC1101_REG_MDMCFG2, CC1101_MANCHESTER_EN_OFF, 3, 3);
RADIOLIB_ASSERT(state); RADIOLIB_ASSERT(state);
return(_mod->SPIsetRegValue(CC1101_REG_PKTCTRL0, CC1101_WHITE_DATA_ON, 6, 6)); return(_mod->SPIsetRegValue(CC1101_REG_PKTCTRL0, CC1101_WHITE_DATA_ON, 6, 6));

View file

@ -847,18 +847,18 @@ class CC1101: public PhysicalLayer {
/*! /*!
\brief Sets Gaussian filter bandwidth-time product that will be used for data shaping. \brief Sets Gaussian filter bandwidth-time product that will be used for data shaping.
Allowed value is 0.5. Set to 0 to disable data shaping. Allowed value is RADIOLIB_SHAPING_0_5. Set to RADIOLIB_SHAPING_NONE to disable data shaping.
\param sh Gaussian shaping bandwidth-time product that will be used for data shaping \param sh Gaussian shaping bandwidth-time product that will be used for data shaping.
\returns \ref status_codes \returns \ref status_codes
*/ */
int16_t setDataShaping(float sh) override; int16_t setDataShaping(uint8_t sh) override;
/*! /*!
\brief Sets transmission encoding. \brief Sets transmission encoding. Allowed values are RADIOLIB_ENCODING_NRZ and RADIOLIB_ENCODING_WHITENING.
\param encoding Encoding to be used. Set to 0 for NRZ, 1 for Manchester and 2 for whitening. \param encoding Encoding to be used.
\returns \ref status_codes \returns \ref status_codes
*/ */