From 6cfbf2dee130cc36a72d57adea0e9c04bb31f620 Mon Sep 17 00:00:00 2001 From: Jonathan McCrohan Date: Wed, 12 Oct 2011 21:50:48 +0100 Subject: Initial commit --- verteco.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 verteco.c (limited to 'verteco.c') diff --git a/verteco.c b/verteco.c new file mode 100644 index 0000000..a039952 --- /dev/null +++ b/verteco.c @@ -0,0 +1,63 @@ +#include +#include +#include +#include + +#include + +#define SLAVE_ID 1 +#define START_ADDRESS 0 +#define NUMBER_REGISTERS 14 + +#define DEBUG_MODE 0 + +int main(int argc, char *argv[]) +{ + +if ( argc != 2 ){ + return -1; +} + + +modbus_t *ctx; +uint16_t tab_reg[64]; +int rc; +int i; + +ctx = modbus_new_rtu(argv[1], 19200, 'E', 8, 1); +modbus_set_slave(ctx, SLAVE_ID); + +modbus_set_debug(ctx, DEBUG_MODE); + +if (ctx == NULL) { + fprintf(stderr, "Unable to create the libmodbus context\n"); + return -1; +} + + + +if (modbus_connect(ctx) == -1) { + fprintf(stderr, "Connection failed: %s\n", modbus_strerror(errno)); + modbus_free(ctx); + return -1; +} + +rc = modbus_read_input_registers(ctx, START_ADDRESS, NUMBER_REGISTERS, tab_reg); + + +if (rc == -1) { + fprintf(stderr, "ERROR: %s\n", modbus_strerror(errno)); + return -1; +} + + +for (i=0; i < rc; i=i+2) { + printf("reg[%d]=%d\n", i, tab_reg[i]+tab_reg[i+1]); +} + + +modbus_close(ctx); +modbus_free(ctx); + + return 0; +} -- cgit v1.2.3