Best practice to implement register writes?

27 views
Skip to first unread message

Alexei Fedotov

unread,
May 26, 2016, 9:26:15 AM5/26/16
to libmodbus
Hello folks,
could you please help?

My device has some (json-like) interface. I need to implement a modbus interface. The following (pseudo)-code implements "reading device registers":

    for (;;)
    {
        int rc = modbus_receive(mb, rxbuf);
        update_registers_from_device(mb_mapping); // re-fills mb_mapping registers from json
        modbus_reply(mb, rxbuf, rc, mb_mapping);
    }

I wonder how far from this is implementing device register update. I think of something like this:

    for (;;)
    {
        int rc = modbus_receive(mb, rxbuf);
        update_registers_from_device(mb_mapping);

        copy_registers(mb_mapping, before_update); // stores all registers from mb_mapping
        modbus_reply(mb, rxbuf, rc, mb_mapping);
        send_changed_registers_to_device(mb_mapping, before_update); // compares mb_mapping to before_update, send json updates based on changes
    }

Is it correct way to go?

With best regards, Alexei
Reply all
Reply to author
Forward
0 new messages