Skip to content

Commit 2c1127f

Browse files
committed
ext data: fix data offset bug
Fix 3 different bugs around ext data 1) same byte used for both MSB and LSB in device ID 2) having data offset due to getData inheritance 3) clear lib config then set flags
1 parent bcf202a commit 2c1127f

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

src/RX/ANT_AntRxDataResponse.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,23 +20,23 @@ uint8_t AntRxDataResponse::getDataOffset() {
2020

2121
uint16_t AntRxDataResponse::getDeviceNumber() {
2222
if (getFlagByte() & LIB_CONFIG_CHANNEL_ID) {
23-
return getData(EXTENDEDDATA_DEVICENUMBER_LSB_BYTE) | (getData(EXTENDEDDATA_DEVICENUMBER_LSB_BYTE) << EXTENDEDDATA_DEVICENUMBER_MSB_SHIFT);
23+
return AntRxDataResponse::getData(EXTENDEDDATA_DEVICENUMBER_LSB_BYTE) | (AntRxDataResponse::getData(EXTENDEDDATA_DEVICENUMBER_MSB_BYTE) << EXTENDEDDATA_DEVICENUMBER_MSB_SHIFT);
2424
} else {
2525
return 0;
2626
}
2727
}
2828

2929
uint8_t AntRxDataResponse::getDeviceType() {
3030
if (getFlagByte() & LIB_CONFIG_CHANNEL_ID) {
31-
return getData(EXTENDEDDATA_DEVICETYPE_BYTE);
31+
return AntRxDataResponse::getData(EXTENDEDDATA_DEVICETYPE_BYTE);
3232
} else {
3333
return 0;
3434
}
3535
}
3636

3737
uint8_t AntRxDataResponse::getTransmissionType() {
3838
if (getFlagByte() & LIB_CONFIG_CHANNEL_ID) {
39-
return getData(EXTENDEDDATA_TRANSMISSIONTYPE_BYTE);
39+
return AntRxDataResponse::getData(EXTENDEDDATA_TRANSMISSIONTYPE_BYTE);
4040
} else {
4141
return 0;
4242
}
@@ -48,7 +48,7 @@ uint8_t AntRxDataResponse::getMeasurementType() {
4848
if (getFlagByte() & LIB_CONFIG_CHANNEL_ID) {
4949
offset += EXTENDEDDATA_CHANNELID_SIZE;
5050
}
51-
return getData(EXTENDEDDATA_MEASUREMENTTYPE_BYTE + offset);
51+
return AntRxDataResponse::getData(EXTENDEDDATA_MEASUREMENTTYPE_BYTE + offset);
5252
} else {
5353
return 0;
5454
}
@@ -60,7 +60,7 @@ int8_t AntRxDataResponse::getRSSIValue() {
6060
if (getFlagByte() & LIB_CONFIG_CHANNEL_ID) {
6161
offset += EXTENDEDDATA_CHANNELID_SIZE;
6262
}
63-
return getData(EXTENDEDDATA_RSSIVALUE_BYTE + offset);
63+
return AntRxDataResponse::getData(EXTENDEDDATA_RSSIVALUE_BYTE + offset);
6464
} else {
6565
return 0;
6666
}
@@ -72,7 +72,7 @@ int8_t AntRxDataResponse::getThresholdConfigurationValue() {
7272
if (getFlagByte() & LIB_CONFIG_CHANNEL_ID) {
7373
offset += EXTENDEDDATA_CHANNELID_SIZE;
7474
}
75-
return getData(EXTENDEDDATA_THRESHOLDCONFIGURATIONVALUE_BYTE + offset);
75+
return AntRxDataResponse::getData(EXTENDEDDATA_THRESHOLDCONFIGURATIONVALUE_BYTE + offset);
7676
} else {
7777
return 0;
7878
}
@@ -87,7 +87,7 @@ uint16_t AntRxDataResponse::getRxTimestamp() {
8787
if (getFlagByte() & LIB_CONFIG_RSSI) {
8888
offset += EXTENDEDDATA_RSSIOUTPUT_SIZE;
8989
}
90-
return getData(EXTENDEDDATA_RXTIMESTAMP_LSB_BYTE + offset) | (getData(EXTENDEDDATA_DEVICENUMBER_MSB_BYTE + offset) << EXTENDEDDATA_RXTIMESTAMP_MSB_SHIFT);
90+
return AntRxDataResponse::getData(EXTENDEDDATA_RXTIMESTAMP_LSB_BYTE + offset) | (AntRxDataResponse::getData(EXTENDEDDATA_DEVICENUMBER_MSB_BYTE + offset) << EXTENDEDDATA_RXTIMESTAMP_MSB_SHIFT);
9191
} else {
9292
return 0;
9393
}

src/TX/Config/ANT_LibConfig.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ uint8_t LibConfig::getDataLength() {
3333
#ifdef NATIVE_API_AVAILABLE
3434

3535
uint32_t LibConfig::execute() {
36-
return sd_ant_lib_config_set(_config);
36+
sd_ant_lib_config_clear(ANT_LIB_CONFIG_MASK_ALL);
37+
return sd_ant_lib_config_set(_config | ANT_LIB_CONFIG_RADIO_CONFIG_ALWAYS);
3738
}
3839

3940
#endif // NATIVE_API_AVAILABLE

0 commit comments

Comments
 (0)