use a signed write buffer and only cast it to unsigned once

This commit is contained in:
Kevin Matz 2023-04-09 20:14:57 -04:00
parent ca24b7878c
commit a132719db9

View File

@ -120,8 +120,9 @@ void DmxWidget::sendMessage(std::shared_ptr<ENTTEC::Pro::MessageData> msg) const
uint16_t length = msg->streamSize();
const int fixed_length = 5;
uint8_t buffer[length + fixed_length];
std::shared_ptr<bufferstream> stream(new bufferstream(buffer, sizeof(buffer),
char buffer[length + fixed_length];
std::shared_ptr<bufferstream> stream(new bufferstream(reinterpret_cast<uint8_t*>(buffer),
sizeof(buffer),
bufferstream::LittleEndian));
*stream << ENTTEC::Pro::START_DELIMITER;
*stream << msg->label;
@ -130,7 +131,7 @@ void DmxWidget::sendMessage(std::shared_ptr<ENTTEC::Pro::MessageData> msg) const
*stream << msg;
*stream << ENTTEC::Pro::END_DELIMITER;
port_->write(reinterpret_cast<char*>(buffer), sizeof(buffer));
port_->write(buffer, sizeof(buffer));
}