#include "LedDeviceTpm2.h" LedDeviceTpm2::LedDeviceTpm2(const QJsonObject &deviceConfig) : ProviderRs232() { _devConfig = deviceConfig; _deviceReady = false; } LedDevice* LedDeviceTpm2::construct(const QJsonObject &deviceConfig) { return new LedDeviceTpm2(deviceConfig); } bool LedDeviceTpm2::init(const QJsonObject &deviceConfig) { bool isInitOK = ProviderRs232::init(deviceConfig); _ledBuffer.resize(5 + _ledRGBCount); _ledBuffer[0] = 0xC9; // block-start byte _ledBuffer[1] = 0xDA; // DATA frame _ledBuffer[2] = (_ledRGBCount >> 8) & 0xFF; // frame size high byte _ledBuffer[3] = _ledRGBCount & 0xFF; // frame size low byte _ledBuffer.back() = 0x36; // block-end byte return isInitOK; } int LedDeviceTpm2::write(const std::vector &ledValues) { memcpy(4 + _ledBuffer.data(), ledValues.data(), _ledRGBCount); return writeBytes(_ledBuffer.size(), _ledBuffer.data()); }