Skip to content

Commit

Permalink
Fec: Add Tx type for specific trainer data
Browse files Browse the repository at this point in the history
  • Loading branch information
cujomalainey committed Feb 3, 2022
1 parent be34742 commit ff39803
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 2 deletions.
54 changes: 54 additions & 0 deletions src/Profiles/Fec/DataPages/ANTPLUS_FecSpecificTrainerData.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -89,3 +89,57 @@ template class FecBaseSpecificTrainerData<BroadcastDataMsg>;
FecSpecificTrainerData::FecSpecificTrainerData(AntRxDataResponse& dp) :
BaseDataPage<BroadcastData>(dp),
FecBaseSpecificTrainerData<BroadcastData>() {}

FecSpecificTrainerDataMsg::FecSpecificTrainerDataMsg() :
BaseDataPageMsg<BroadcastDataMsg>(),
FecBaseSpecificTrainerData<BroadcastDataMsg>() {}

void FecSpecificTrainerDataMsg::setUpdateEventCount(uint8_t eventCount) {
set8BitValue(eventCount, UPDATEEVENTCOUNT_BYTE);
}

void FecSpecificTrainerDataMsg::setInstantaneousCadence(uint8_t cadence) {
set8BitValue(cadence, INSTANTANEOUSCADENCE_BYTE);
}

void FecSpecificTrainerDataMsg::setAccumulatedPower(uint16_t accPower) {
set16BitValue(accPower, ACCUMULATEDPOWER_LSB_BYTE,
ACCUMULATEDPOWER_MSB_BYTE);
}

void FecSpecificTrainerDataMsg::setInstantaneousPower(uint16_t intPower) {
set16BitValue(intPower, INSTANTANEOUSPOWER_LSB_BYTE,
INSTANTANEOUSPOWER_MSB_BYTE,
INSTANTANEOUSPOWER_MSB_MASK);
}

void FecSpecificTrainerDataMsg::setBicyclePowerCalibration(uint8_t powerCalibration) {
set8BitValue(powerCalibration, BICYCLEPOWERCALIBRATION_BYTE,
BICYCLEPOWERCALIBRATION_MASK,
BICYCLEPOWERCALIBRATION_SHIFT);
}

void FecSpecificTrainerDataMsg::setResistanceCalibration(uint8_t resistanceCalibration) {
set8BitValue(resistanceCalibration, RESISTANCECALIBRATION_BYTE,
RESISTANCECALIBRATION_MASK,
RESISTANCECALIBRATION_SHIFT);
}

void FecSpecificTrainerDataMsg::setUserConfiguration(uint8_t userConfiguration) {
set8BitValue(userConfiguration, USERCONFIGURATION_BYTE,
USERCONFIGURATION_MASK,
USERCONFIGURATION_SHIFT);
}

void FecSpecificTrainerDataMsg::setTargetPowerLimits(uint8_t targetPower) {
set8BitValue(targetPower, TARGETPOWERLIMITS_BYTE, TARGETPOWERLIMITS_MASK);
}

void FecSpecificTrainerDataMsg::setFeState(uint8_t feState) {
set8BitValue(feState, FESTATE_BYTE, FESTATE_MASK, FESTATE_SHIFT);
}

void FecSpecificTrainerDataMsg::setLapToggleBit(uint8_t lapToggle) {
set8BitValue(lapToggle, LAPTOGGLEBIT_BYTE,
LAPTOGGLEBIT_MASK, LAPTOGGLEBIT_SHIFT);
}
17 changes: 15 additions & 2 deletions src/Profiles/Fec/DataPages/ANTPLUS_FecSpecificTrainerData.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#ifndef ANTPLUS_FECTRAINERDATA_h
#define ANTPLUS_FECTRAINERDATA_h

#include <BaseClasses/ANTPLUS_BaseDataPage.h>
#include <Profiles/Fec/DataPages/ANTPLUS_FecBaseMainDataPage.h>

template<class T>
class FecBaseSpecificTrainerData : virtual public CoreDataPage<T> {
Expand All @@ -24,6 +24,19 @@ class FecSpecificTrainerData : public BaseDataPage<BroadcastData>, public FecBas
explicit FecSpecificTrainerData(AntRxDataResponse& dp);
};

// TODO TX type
class FecSpecificTrainerDataMsg : public BaseDataPageMsg<BroadcastDataMsg>, public FecBaseSpecificTrainerData<BroadcastDataMsg> {
public:
FecSpecificTrainerDataMsg();
void setUpdateEventCount(uint8_t eventCount);
void setInstantaneousCadence(uint8_t cadence);
void setAccumulatedPower(uint16_t accPower);
void setInstantaneousPower(uint16_t intPower);
void setBicyclePowerCalibration(uint8_t powerCalibration);
void setResistanceCalibration(uint8_t resistanceCalibration);
void setUserConfiguration(uint8_t userConfiguration);
void setTargetPowerLimits(uint8_t targetPower);
void setFeState(uint8_t feState);
void setLapToggleBit(uint8_t lapToggle);
};

#endif // ANTPLUS_FECTRAINERDATA_h

0 comments on commit ff39803

Please sign in to comment.