View difference between Paste ID: HvUyHcUv and 2CLx6agc
SHOW: | | - or go back to the newest paste.
1-
#include <stdio.h>
1+
include <stdio.h>
2
#include <string.h>
3
#include <stdlib.h>
4
#include <errno.h>
5
6
#include <modbus.h>
7
8
int main (void) {
9
    modbus_t *ctx;
10
    uint16_t tab_reg[64];
11
    int rc;
12
    int i;
13
14
    ctx = modbus_new_rtu("/dev/ttyUSB0", 9600, 'N', 8, 1);
15
    if (ctx == NULL ) {
16
        fprintf(stderr, "Connection failed: %s\n", modbus_strerror(errno));
17
        modbus_free(ctx);
18
        return -1;
19
    } else {
20
      fprintf(stderr, "Connected to /dev/ttyUSB0\n");
21
    }
22
23
    modbus_set_debug(ctx, 0x01);
24
25
    rc = modbus_set_slave(ctx, 0x01);
26
    if (rc == -1) {
27
      fprintf(stderr, "Set slave error: %s\n", modbus_strerror(errno));
28
      return -1;
29
    } else {
30
      fprintf(stderr, "Slave set to 0x01\n");
31
    }
32
33-
    /* Read register at address 30005 */
33+
34
    rc = modbus_read_registers(ctx, 0, 1, tab_reg);
35-
    rc = modbus_read_registers(ctx, 30005, 1, tab_reg);
35+
36
        fprintf(stderr, "%s\n", modbus_strerror(errno));
37
        return -1;
38
    } else {
39
      fprintf(stderr, "Called Modbus function code 0x03 (read holding registers) = %d\n", rc);
40
    }
41
    for (i=0; i < rc; i++) {
42
        printf("reg[%d]=%d (0x%X)\n", i, tab_reg[i], tab_reg[i]);
43
    }
44
45
    modbus_close(ctx);
46
    modbus_free(ctx);
47
48
    return 0;
49
}