Add a page for sending custom OT requests

This commit is contained in:
Roman Andriadi
2025-02-03 14:43:36 +00:00
parent 80b91d9a01
commit 0824066897
7 changed files with 370 additions and 1 deletions

View File

@@ -9,6 +9,30 @@ public:
delete this->instance;
}
struct ReadResult{
bool valid = false;
bool parityValid = false;
bool responseMessageIdValid = false;
const char* responseType = "";
uint16_t value = 0;
};
ReadResult readRequest(byte messageId) {
ReadResult result;
OpenThermMessageID eMessageId = (OpenThermMessageID)messageId;
auto response = this->instance->sendRequest(CustomOpenTherm::buildRequest(
OpenThermRequestType::READ_DATA,
eMessageId,
0
));
result.valid = CustomOpenTherm::isValidResponse(response);
result.parityValid = !CustomOpenTherm::parity(response);
result.responseMessageIdValid = CustomOpenTherm::isValidResponseId(response, eMessageId);
result.responseType = CustomOpenTherm::messageTypeToString(CustomOpenTherm::getMessageType(response));
result.value = CustomOpenTherm::getUInt(response);
return result;
}
protected:
const unsigned short readyTime = 60000u;
const unsigned int resetBusInterval = 120000u;