diff --git a/examples/UPS/UPS.ino b/examples/UPS/UPS.ino index e908b1b..f951f85 100644 --- a/examples/UPS/UPS.ino +++ b/examples/UPS/UPS.ino @@ -31,7 +31,6 @@ uint16_t iAvgTimeToEmpty = 7200; uint16_t iRemainTimeLimit = 600; int16_t iDelayBe4Reboot = -1; int16_t iDelayBe4ShutDown = -1; -uint16_t iManufacturerDate = 0; // initialized in setup function byte iAudibleAlarmCtrl = 2; // 1 - Disabled, 2 - Enabled, 3 - Muted @@ -92,9 +91,7 @@ void setup() { PowerDevice.setFeature(HID_PD_CPCTYGRANULARITY1, &bCapacityGranularity1, sizeof(bCapacityGranularity1)); PowerDevice.setFeature(HID_PD_CPCTYGRANULARITY2, &bCapacityGranularity2, sizeof(bCapacityGranularity2)); - uint16_t year = 2024, month = 10, day = 12; - iManufacturerDate = (year - 1980)*512 + month*32 + day; // from 4.2.6 Battery Settings in "Universal Serial Bus Usage Tables for HID Power Devices" - PowerDevice.setFeature(HID_PD_MANUFACTUREDATE, &iManufacturerDate, sizeof(iManufacturerDate)); + PowerDevice.sendManufacturerDate(2024, 10, 12); } void loop() { diff --git a/src/HIDPowerDevice.cpp b/src/HIDPowerDevice.cpp index 5217e04..884d278 100755 --- a/src/HIDPowerDevice.cpp +++ b/src/HIDPowerDevice.cpp @@ -249,9 +249,9 @@ void HIDPowerDevice_::setSerial(const char* s) { void HIDPowerDevice_::end(void) { } -int HIDPowerDevice_::sendDate(uint16_t id, uint16_t year, uint8_t month, uint8_t day) { - uint16_t bval = (year - 1980)*512 + month * 32 + day; - return HID().SendReport(id, &bval, sizeof (bval)); +int HIDPowerDevice_::sendManufacturerDate(uint16_t year, uint8_t month, uint8_t day) { + iManufacturerDate = (year - 1980)*512 + month * 32 + day; // from 4.2.6 Battery Settings in "Universal Serial Bus Usage Tables for HID Power Devices" + return HID().SetFeature(HID_PD_MANUFACTUREDATE, &iManufacturerDate, sizeof(iManufacturerDate)); } int HIDPowerDevice_::sendReport(uint16_t id, const void* bval, int len) { diff --git a/src/HIDPowerDevice.h b/src/HIDPowerDevice.h index 888b860..4a2710a 100755 --- a/src/HIDPowerDevice.h +++ b/src/HIDPowerDevice.h @@ -121,13 +121,15 @@ class HIDPowerDevice_ { void end(void); - int sendDate(uint16_t id, uint16_t year, uint8_t month, uint8_t day); + int sendManufacturerDate(uint16_t year, uint8_t month, uint8_t day); int sendReport(uint16_t id, const void* bval, int len); int setFeature(uint16_t id, const void* data, int len); int setStringFeature(uint8_t id, const uint8_t* index, const char* data); +private: + uint16_t iManufacturerDate = 0; }; extern HIDPowerDevice_ PowerDevice;