no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


sdk:scripts:modbus-rtu-master [2015/05/05 15:04] (current) – created - external edit 127.0.0.1
Line 1: Line 1:
 +====== SDK Script modbus-rtu-master.are ======
 +<code c modbus-rtu-master.are>
 +/* DESC: This script can be used to read messages from the serial port.
 + * Copyright (C) 2015 NetModule AG, Switzerland
 + */
 +
 +DEV = "SERIAL1";
 +SLAVEID = 1;
 +
 +/* check serial port config */
 +st = nb_config_get("serial.0.status");
 +if (st != "2") {
 +    nb_syslog("Serial port is not enabled for us");
 +    exit(1);
 +}
 +
 +/* set attributes */
 +ret = nb_serial_setattr(DEV, 115200, 8, 1, 0, 0);
 +
 +if (ret != 0) {
 +    printf("Could not set serial attributes: %i \n",ret);
 +    exit(1);
 +}
 +
 +/* open serial port */
 +fd = nb_serial_open(DEV);
 +if (fd < 0) {
 +    printf("Unable to open %s\n", DEV);
 +    exit(1);
 +}
 +
 +/* register fd for modbus functions */
 +if (nb_modbus_register(fd, MODBUS_TYPE_RTU) < 0) {
 +    printf("Unable to register to modbus\n");
 +    exit(1);
 +}
 +
 +/* set slave id */
 +if (nb_modbus_set_slave(fd, SLAVEID) < 0) {
 +    printf("Unable to set slave identifier\n");
 +    exit(1);
 +}
 +
 +/* write 3 registers start at address 0*/
 +data = mkarray(0, 1, 2);
 +nb_modbus_write_regs(fd, 0, length(data), data);
 +
 +/* read 5 registers from address 0*/
 +data = nb_modbus_read_regs(fd, 5, 5);
 +
 +/* print data */
 +dump(data);
 +
 +/* unregister, close fd and exit */
 +nb_modbus_unregister(fd);
 +
 +close(fd);
 +exit(0);
 +
 +</code>