Fixes - Smoothing, Color-Calibration (#1532)

* Smoothing Remove ouputrate as duplicate to update frequency

* Serial LDEDDevices -Increase writeBlack to overcome issues on high baud rates

* Serial LED-Devices - Support device feedback, show statistics provided by HyperSerial

* Fix - Update Color Calibration on Remote Control when settings saved

* Serial LED-Devices - Support device feedback, show statistics provided by HyperSerial
This commit is contained in:
LordGrey
2022-11-27 15:47:54 +01:00
committed by GitHub
parent 46f996310d
commit a2db590d2a
10 changed files with 130 additions and 87 deletions

View File

@@ -119,7 +119,7 @@ void LedDeviceAdalight::prepareHeader()
qToBigEndian<quint16>(static_cast<quint16>(totalLedCount), &_ledBuffer[3]);
_ledBuffer[5] = _ledBuffer[3] ^ _ledBuffer[4] ^ 0x55; // Checksum
Debug( _log, "Adalight header for %d leds: %c%c%c 0x%02x 0x%02x 0x%02x", _ledCount,
Debug( _log, "Adalight header for %d leds (size: %d): %c%c%c 0x%02x 0x%02x 0x%02x", _ledCount, _ledBuffer.size(),
_ledBuffer[0], _ledBuffer[1], _ledBuffer[2], _ledBuffer[3], _ledBuffer[4], _ledBuffer[5] );
}
@@ -179,6 +179,31 @@ int LedDeviceAdalight::write(const std::vector<ColorRgb> & ledValues)
return rc;
}
void LedDeviceAdalight::readFeedback()
{
if (_streamProtocol == Adalight::AWA)
{
bool continuousLines {true};
while ( _rs232Port.canReadLine() )
{
QByteArray record = _rs232Port.readLine();
if (record.startsWith("FPS:"))
{
if (continuousLines)
{
continuousLines = false;
}
Debug(_log, "Statistics %s", record.trimmed().constData());
}
else
{
std::cout << record.toStdString() << std::flush;
continuousLines = true;
}
}
}
}
void LedDeviceAdalight::whiteChannelExtension(uint8_t*& writer)
{
if (_streamProtocol == Adalight::AWA && _white_channel_calibration)