diff --git a/simulator/modbus_tcp_server_sim.c b/simulator/modbus_tcp_server_sim.c index 76c63677..8a7a4bf5 100644 --- a/simulator/modbus_tcp_server_sim.c +++ b/simulator/modbus_tcp_server_sim.c @@ -216,7 +216,7 @@ int main() w_res->n_reg = w_req->n_reg; for (int i = 0; i < ntohs(w_req->n_reg); i++) { - uint8_t x = w_u8[ntohs(w_req->n_reg) / 8] << (7 - (i % 8)); + uint8_t x = (w_u8[ntohs(w_req->n_reg) / 8] >> (i % 8)) & 0x1; if (x > 0) { coil[ntohs(w_req->start_addr) + i] = 1; @@ -250,4 +250,4 @@ int main() neu_tcp_server_close(server); return 0; -} \ No newline at end of file +}