]> mj.ucw.cz Git - home-hw.git/blob - test-modbus/client/try.c
Modbus: More testing...
[home-hw.git] / test-modbus / client / try.c
1 #include <ucw/lib.h>
2
3 #include <errno.h>
4 #include <stdio.h>
5
6 #include <modbus/modbus.h>
7
8 int main(void)
9 {
10         modbus_t *mb = modbus_new_rtu("/dev/ttyUSB0", 19200, 'E', 8, 1);
11         if (!mb)
12                 die("Cannot open modbus");
13
14         int rc = modbus_connect(mb);
15         if (rc < 0)
16                 die("Cannot connect: %d", rc);
17
18         if (modbus_set_slave(mb, 42) < 0)
19                 die("Cannot set slave address");
20
21         modbus_set_debug(mb, 1);
22
23 #if 1
24         u16 dest;
25         rc = modbus_read_registers(mb, 0, 1, &dest);
26         if (rc < 0)
27                 die("Cannot read: %s", modbus_strerror(errno));
28         printf("%04x\n", dest);
29 #endif
30
31 #if 0
32         byte rr[] = { 42, 0x2b, 0x0e, 0x04, 0x00 };
33         // byte rr[] = { 42, 0x03, 0x00, 0x00, 0x00, 0x10 };
34         rc = modbus_send_raw_request(mb, rr, sizeof(rr));
35         if (rc < 0)
36                 die("Cannot send raw request: %s", modbus_strerror(errno));
37
38         byte rp[256];
39         rc = modbus_receive_confirmation(mb, rp);
40         if (rc < 0)
41                 die("Cannot receive confirmation: %s", modbus_strerror(errno));
42
43         for (int i=0; i<rc; i++)
44                 printf("%02x ", rp[i]);
45         putchar('\n');
46 #endif
47
48         modbus_close(mb);
49         modbus_free(mb);
50 }