Commit 032db7f774b17ced69d3fc87acc8eef725cfe204
1 parent
46ecda7e
Minor changes about baud rate setting
Showing
2 changed files
with
25 additions
and
25 deletions
modbus/modbus.c
| @@ -1243,18 +1243,18 @@ int report_slave_id(modbus_param_t *mb_param, int slave, | @@ -1243,18 +1243,18 @@ int report_slave_id(modbus_param_t *mb_param, int slave, | ||
| 1243 | 1243 | ||
| 1244 | /* Initializes the modbus_param_t structure for RTU | 1244 | /* Initializes the modbus_param_t structure for RTU |
| 1245 | - device: "/dev/ttyS0" | 1245 | - device: "/dev/ttyS0" |
| 1246 | - - baud: 19200 | 1246 | + - baud: 9600, 19200, 57600, 115200, etc |
| 1247 | - parity: "even", "odd" or "none" | 1247 | - parity: "even", "odd" or "none" |
| 1248 | - data_bits: 5, 6, 7, 8 | 1248 | - data_bits: 5, 6, 7, 8 |
| 1249 | - stop_bits: 1, 2 | 1249 | - stop_bits: 1, 2 |
| 1250 | */ | 1250 | */ |
| 1251 | void modbus_init_rtu(modbus_param_t *mb_param, char *device, | 1251 | void modbus_init_rtu(modbus_param_t *mb_param, char *device, |
| 1252 | - int baud_i, char *parity, int data_bit, | 1252 | + int baud, char *parity, int data_bit, |
| 1253 | int stop_bit) | 1253 | int stop_bit) |
| 1254 | { | 1254 | { |
| 1255 | memset(mb_param, 0, sizeof(modbus_param_t)); | 1255 | memset(mb_param, 0, sizeof(modbus_param_t)); |
| 1256 | strcpy(mb_param->device, device); | 1256 | strcpy(mb_param->device, device); |
| 1257 | - mb_param->baud_i = baud_i; | 1257 | + mb_param->baud = baud; |
| 1258 | strcpy(mb_param->parity, parity); | 1258 | strcpy(mb_param->parity, parity); |
| 1259 | mb_param->debug = FALSE; | 1259 | mb_param->debug = FALSE; |
| 1260 | mb_param->data_bit = data_bit; | 1260 | mb_param->data_bit = data_bit; |
| @@ -1309,11 +1309,11 @@ void modbus_set_error_handling(modbus_param_t *mb_param, error_handling_t error_ | @@ -1309,11 +1309,11 @@ void modbus_set_error_handling(modbus_param_t *mb_param, error_handling_t error_ | ||
| 1309 | static int modbus_connect_rtu(modbus_param_t *mb_param) | 1309 | static int modbus_connect_rtu(modbus_param_t *mb_param) |
| 1310 | { | 1310 | { |
| 1311 | struct termios tios; | 1311 | struct termios tios; |
| 1312 | - speed_t baud_rate; | 1312 | + speed_t speed; |
| 1313 | 1313 | ||
| 1314 | if (mb_param->debug) { | 1314 | if (mb_param->debug) { |
| 1315 | printf("Opening %s at %d bauds (%s)\n", | 1315 | printf("Opening %s at %d bauds (%s)\n", |
| 1316 | - mb_param->device, mb_param->baud_i, mb_param->parity); | 1316 | + mb_param->device, mb_param->baud, mb_param->parity); |
| 1317 | } | 1317 | } |
| 1318 | 1318 | ||
| 1319 | /* The O_NOCTTY flag tells UNIX that this program doesn't want | 1319 | /* The O_NOCTTY flag tells UNIX that this program doesn't want |
| @@ -1326,7 +1326,7 @@ static int modbus_connect_rtu(modbus_param_t *mb_param) | @@ -1326,7 +1326,7 @@ static int modbus_connect_rtu(modbus_param_t *mb_param) | ||
| 1326 | mb_param->fd = open(mb_param->device, O_RDWR | O_NOCTTY | O_NDELAY); | 1326 | mb_param->fd = open(mb_param->device, O_RDWR | O_NOCTTY | O_NDELAY); |
| 1327 | if (mb_param->fd < 0) { | 1327 | if (mb_param->fd < 0) { |
| 1328 | perror("open"); | 1328 | perror("open"); |
| 1329 | - printf("ERROR Opening device %s (no : %d)\n", | 1329 | + printf("ERROR Can't open the device %s (errno %d)\n", |
| 1330 | mb_param->device, errno); | 1330 | mb_param->device, errno); |
| 1331 | return -1; | 1331 | return -1; |
| 1332 | } | 1332 | } |
| @@ -1339,49 +1339,49 @@ static int modbus_connect_rtu(modbus_param_t *mb_param) | @@ -1339,49 +1339,49 @@ static int modbus_connect_rtu(modbus_param_t *mb_param) | ||
| 1339 | /* C_ISPEED Input baud (new interface) | 1339 | /* C_ISPEED Input baud (new interface) |
| 1340 | C_OSPEED Output baud (new interface) | 1340 | C_OSPEED Output baud (new interface) |
| 1341 | */ | 1341 | */ |
| 1342 | - switch (mb_param->baud_i) { | 1342 | + switch (mb_param->baud) { |
| 1343 | case 110: | 1343 | case 110: |
| 1344 | - baud_rate = B110; | 1344 | + speed = B110; |
| 1345 | break; | 1345 | break; |
| 1346 | case 300: | 1346 | case 300: |
| 1347 | - baud_rate = B300; | 1347 | + speed = B300; |
| 1348 | break; | 1348 | break; |
| 1349 | case 600: | 1349 | case 600: |
| 1350 | - baud_rate = B600; | 1350 | + speed = B600; |
| 1351 | break; | 1351 | break; |
| 1352 | case 1200: | 1352 | case 1200: |
| 1353 | - baud_rate = B1200; | 1353 | + speed = B1200; |
| 1354 | break; | 1354 | break; |
| 1355 | case 2400: | 1355 | case 2400: |
| 1356 | - baud_rate = B2400; | 1356 | + speed = B2400; |
| 1357 | break; | 1357 | break; |
| 1358 | case 4800: | 1358 | case 4800: |
| 1359 | - baud_rate = B4800; | 1359 | + speed = B4800; |
| 1360 | break; | 1360 | break; |
| 1361 | case 9600: | 1361 | case 9600: |
| 1362 | - baud_rate = B9600; | 1362 | + speed = B9600; |
| 1363 | break; | 1363 | break; |
| 1364 | case 19200: | 1364 | case 19200: |
| 1365 | - baud_rate = B19200; | 1365 | + speed = B19200; |
| 1366 | break; | 1366 | break; |
| 1367 | case 38400: | 1367 | case 38400: |
| 1368 | - baud_rate = B38400; | 1368 | + speed = B38400; |
| 1369 | break; | 1369 | break; |
| 1370 | case 57600: | 1370 | case 57600: |
| 1371 | - baud_rate = B57600; | 1371 | + speed = B57600; |
| 1372 | break; | 1372 | break; |
| 1373 | case 115200: | 1373 | case 115200: |
| 1374 | - baud_rate = B115200; | 1374 | + speed = B115200; |
| 1375 | break; | 1375 | break; |
| 1376 | default: | 1376 | default: |
| 1377 | - baud_rate = B9600; | 1377 | + speed = B9600; |
| 1378 | printf("WARNING Unknown baud rate %d for %s (B9600 used)\n", | 1378 | printf("WARNING Unknown baud rate %d for %s (B9600 used)\n", |
| 1379 | - mb_param->baud_i, mb_param->device); | 1379 | + mb_param->baud, mb_param->device); |
| 1380 | } | 1380 | } |
| 1381 | 1381 | ||
| 1382 | /* Set the baud rate */ | 1382 | /* Set the baud rate */ |
| 1383 | - if ((cfsetispeed(&tios, baud_rate) < 0) || | ||
| 1384 | - (cfsetospeed(&tios, baud_rate) < 0)) { | 1383 | + if ((cfsetispeed(&tios, speed) < 0) || |
| 1384 | + (cfsetospeed(&tios, speed) < 0)) { | ||
| 1385 | perror("cfsetispeed/cfsetospeed\n"); | 1385 | perror("cfsetispeed/cfsetospeed\n"); |
| 1386 | return -1; | 1386 | return -1; |
| 1387 | } | 1387 | } |
modbus/modbus.h
| @@ -130,8 +130,8 @@ typedef struct { | @@ -130,8 +130,8 @@ typedef struct { | ||
| 130 | 130 | ||
| 131 | /* Parity: "even", "odd", "none" */ | 131 | /* Parity: "even", "odd", "none" */ |
| 132 | char parity[5]; | 132 | char parity[5]; |
| 133 | - /* Bauds: 19200 */ | ||
| 134 | - int baud_i; | 133 | + /* Bauds: 9600, 19200, 57600, 115200, etc */ |
| 134 | + int baud; | ||
| 135 | /* Data bit */ | 135 | /* Data bit */ |
| 136 | int data_bit; | 136 | int data_bit; |
| 137 | /* Stop bit */ | 137 | /* Stop bit */ |
| @@ -211,7 +211,7 @@ int report_slave_id(modbus_param_t *mb_param, int slave, uint8_t *dest); | @@ -211,7 +211,7 @@ int report_slave_id(modbus_param_t *mb_param, int slave, uint8_t *dest); | ||
| 211 | 211 | ||
| 212 | /* Initializes the modbus_param_t structure for RTU. | 212 | /* Initializes the modbus_param_t structure for RTU. |
| 213 | - device: "/dev/ttyS0" | 213 | - device: "/dev/ttyS0" |
| 214 | - - baud: 19200 | 214 | + - baud: 9600, 19200, 57600, 115200, etc |
| 215 | - parity: "even", "odd" or "none" | 215 | - parity: "even", "odd" or "none" |
| 216 | - data_bits: 5, 6, 7, 8 | 216 | - data_bits: 5, 6, 7, 8 |
| 217 | - stop_bits: 1, 2 | 217 | - stop_bits: 1, 2 |