Skip to content

Commit

Permalink
BicyclePower: fix standard power only page
Browse files Browse the repository at this point in the history
Fixup missing fields in both messages
  • Loading branch information
cujomalainey committed Jan 31, 2022
1 parent 67c9b51 commit a848de7
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@

#define UPDATEEVENTCOUNT_BYTE 1
#define PEDALPOWER_BYTE 2
#define PEDALPOWER_MASK 0x7F
#define PEDALDIFFERENTIATION_BYTE 2
#define PEDALDIFFERENTIATION_MASK 0x80
#define PEDALDIFFERENTIATION_SHIFT 7
#define INSTANTANEOUSCADENCE_BYTE 3
#define ACCUMULATEDPOWER_LSB_BYTE 4
#define ACCUMULATEDPOWER_MSB_BYTE 5
Expand All @@ -15,9 +19,21 @@ template<class T>
BicyclePowerBaseStandardPowerOnly<T>::BicyclePowerBaseStandardPowerOnly() :
CoreDataPage<T>() {}

template<class T>
uint8_t BicyclePowerBaseStandardPowerOnly<T>::getUpdateEventCount() {
return this->get8BitValue(UPDATEEVENTCOUNT_BYTE);
}

template<class T>
uint8_t BicyclePowerBaseStandardPowerOnly<T>::getPedalPower() {
return this->get8BitValue(PEDALPOWER_BYTE);
return this->get8BitValue(PEDALPOWER_BYTE, PEDALPOWER_MASK);
}

template<class T>
uint8_t BicyclePowerBaseStandardPowerOnly<T>::getPedalDifferentiation() {
return this->get8BitValue(PEDALDIFFERENTIATION_BYTE,
PEDALDIFFERENTIATION_MASK,
PEDALDIFFERENTIATION_SHIFT);
}

template<class T>
Expand Down Expand Up @@ -52,13 +68,24 @@ BicyclePowerStandardPowerOnlyMsg::BicyclePowerStandardPowerOnlyMsg() :
}

void BicyclePowerStandardPowerOnlyMsg::setUpdateEventCount(uint8_t eventCount) {
this->set8BitValue(eventCount, UPDATEEVENTCOUNT_BYTE);
set8BitValue(eventCount, UPDATEEVENTCOUNT_BYTE);
}

void BicyclePowerStandardPowerOnlyMsg::setPedalPower(uint8_t pedalPower) {
set8BitValue(pedalPower, PEDALPOWER_BYTE, PEDALPOWER_MASK);
}

void BicyclePowerStandardPowerOnlyMsg::setPedalDifferentiation(uint8_t differentiation) {
set8BitValue(differentiation,
PEDALDIFFERENTIATION_BYTE,
PEDALDIFFERENTIATION_MASK,
PEDALDIFFERENTIATION_SHIFT);
}

void BicyclePowerStandardPowerOnlyMsg::setCumulativePowerCount(uint16_t accPower) {
this->set16BitValue(accPower, ACCUMULATEDPOWER_LSB_BYTE, ACCUMULATEDPOWER_MSB_BYTE);
void BicyclePowerStandardPowerOnlyMsg::setAccumulatedPower(uint16_t accPower) {
set16BitValue(accPower, ACCUMULATEDPOWER_LSB_BYTE, ACCUMULATEDPOWER_MSB_BYTE);
}

void BicyclePowerStandardPowerOnlyMsg::setInstantaneousPowerCount(uint16_t power) {
this->set16BitValue(power, INSTANTANEOUSPOWER_LSB_BYTE, INSTANTANEOUSPOWER_MSB_BYTE);
void BicyclePowerStandardPowerOnlyMsg::setInstantaneousPowerCount(uint16_t instantaneousPower) {
set16BitValue(instantaneousPower, INSTANTANEOUSPOWER_LSB_BYTE, INSTANTANEOUSPOWER_MSB_BYTE);
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@ template<class T>
class BicyclePowerBaseStandardPowerOnly : virtual public CoreDataPage<T> {
public:
BicyclePowerBaseStandardPowerOnly();
uint8_t getUpdateEventCount();
uint8_t getPedalPower();
uint8_t getPedalDifferentiation();
uint8_t getInstantaneousCadence();
uint16_t getAccumulatedPower();
uint16_t getInstantaneousPower();
Expand All @@ -22,8 +24,11 @@ class BicyclePowerStandardPowerOnlyMsg : public BicyclePowerBaseMainDataPageMsg,
public:
BicyclePowerStandardPowerOnlyMsg(void);
void setUpdateEventCount(uint8_t eventCount);
void setCumulativePowerCount(uint16_t accPower);
void setInstantaneousPowerCount(uint16_t power);
void setPedalPower(uint8_t pedalPower);
void setPedalDifferentiation(uint8_t differentiation);
void setInstantaneousCadence(uint8_t cadence);
void setAccumulatedPower(uint16_t accPower);
void setInstantaneousPowerCount(uint16_t instantaneousPower);
};

#endif // ANTPLUS_BICYCLEPOWERSTANDARDPOWERONLY_h

0 comments on commit a848de7

Please sign in to comment.