mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-07 16:29:51 +03:00
fix read_bitvalue() - for solar pump on/off in #397
This commit is contained in:
@@ -188,7 +188,7 @@ void Solar::process_SM100Status(std::shared_ptr<const Telegram> telegram) {
|
|||||||
* SM100Status2 - type 0x036A EMS+ for pump on/off at offset 0x0A - for SM100 and SM200
|
* SM100Status2 - type 0x036A EMS+ for pump on/off at offset 0x0A - for SM100 and SM200
|
||||||
* e.g. B0 00 FF 00 02 6A 03 03 03 03 01 03 03 03 03 03 01 03
|
* e.g. B0 00 FF 00 02 6A 03 03 03 03 01 03 03 03 03 03 01 03
|
||||||
* byte 4 = VS2 3-way valve for cylinder 2 : test=01, on=04 and off=03
|
* byte 4 = VS2 3-way valve for cylinder 2 : test=01, on=04 and off=03
|
||||||
* byte 10 = PS1 Solar circuit pump for collector array 1: test=01, on=04 and off=03
|
* byte 10 = PS1 Solar circuit pump for collector array 1: test=b0001(1), on=b0100(4) and off=b0011(3)
|
||||||
*/
|
*/
|
||||||
void Solar::process_SM100Status2(std::shared_ptr<const Telegram> telegram) {
|
void Solar::process_SM100Status2(std::shared_ptr<const Telegram> telegram) {
|
||||||
telegram->read_bitvalue(valveStatus_, 4, 2); // on if bit 2 set
|
telegram->read_bitvalue(valveStatus_, 4, 2); // on if bit 2 set
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ class Telegram {
|
|||||||
return; // out of bounds
|
return; // out of bounds
|
||||||
}
|
}
|
||||||
|
|
||||||
value = (uint8_t)(((message_data[index]) >> (bit)) & 0x01);
|
value = (uint8_t)(((message_data[index - offset]) >> (bit)) & 0x01);
|
||||||
}
|
}
|
||||||
|
|
||||||
// read values from a telegram. We always store the value, regardless if its garbage
|
// read values from a telegram. We always store the value, regardless if its garbage
|
||||||
|
|||||||
@@ -205,6 +205,15 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & command) {
|
|||||||
EMSESP::show_values(shell);
|
EMSESP::show_values(shell);
|
||||||
|
|
||||||
EMSESP::send_raw_telegram("B0 00 FF 18 02 62 80 00 B8");
|
EMSESP::send_raw_telegram("B0 00 FF 18 02 62 80 00 B8");
|
||||||
|
|
||||||
|
uart_telegram("30 00 FF 0A 02 6A 04"); // SM100 pump on 1
|
||||||
|
|
||||||
|
EMSESP::rxservice_.loop();
|
||||||
|
EMSESP::show_values(shell);
|
||||||
|
|
||||||
|
uart_telegram("30 00 FF 0A 02 6A 03"); // SM100 pump off 0
|
||||||
|
|
||||||
|
EMSESP::rxservice_.loop();
|
||||||
EMSESP::show_values(shell);
|
EMSESP::show_values(shell);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user