Commit 61440f55aeca7d5553a6c578eea2d0ef4a0a24ac

Authored by Stéphane Raimbault
1 parent 692f6b76

Baud rate until 4,000,000 (POSIX), 1,000,000 (Windows) (closes #93)

Showing 1 changed file with 80 additions and 0 deletions
src/modbus-rtu.c
@@ -478,6 +478,9 @@ static int _modbus_rtu_connect(modbus_t *ctx) @@ -478,6 +478,9 @@ static int _modbus_rtu_connect(modbus_t *ctx)
478 case 9600: 478 case 9600:
479 dcb.BaudRate = CBR_9600; 479 dcb.BaudRate = CBR_9600;
480 break; 480 break;
  481 + case 14400:
  482 + dcb.BaudRate = CBR_14400;
  483 + break;
481 case 19200: 484 case 19200:
482 dcb.BaudRate = CBR_19200; 485 dcb.BaudRate = CBR_19200;
483 break; 486 break;
@@ -491,8 +494,24 @@ static int _modbus_rtu_connect(modbus_t *ctx) @@ -491,8 +494,24 @@ static int _modbus_rtu_connect(modbus_t *ctx)
491 dcb.BaudRate = CBR_115200; 494 dcb.BaudRate = CBR_115200;
492 break; 495 break;
493 case 230400: 496 case 230400:
  497 + /* CBR_230400 - not defined */
494 dcb.BaudRate = 230400; 498 dcb.BaudRate = 230400;
495 break; 499 break;
  500 + case 250000:
  501 + dcb.BaudRate = 250000;
  502 + break;
  503 + case 460800:
  504 + dcb.BaudRate = 460800;
  505 + break;
  506 + case 500000:
  507 + dcb.BaudRate = 500000;
  508 + break;
  509 + case 921600:
  510 + dcb.BaudRate = 921600;
  511 + break;
  512 + case 1000000:
  513 + dcb.BaudRate = 1000000;
  514 + break;
496 default: 515 default:
497 dcb.BaudRate = CBR_9600; 516 dcb.BaudRate = CBR_9600;
498 printf("WARNING Unknown baud rate %d for %s (B9600 used)\n", 517 printf("WARNING Unknown baud rate %d for %s (B9600 used)\n",
@@ -614,15 +633,76 @@ static int _modbus_rtu_connect(modbus_t *ctx) @@ -614,15 +633,76 @@ static int _modbus_rtu_connect(modbus_t *ctx)
614 case 38400: 633 case 38400:
615 speed = B38400; 634 speed = B38400;
616 break; 635 break;
  636 +#ifdef B57600
617 case 57600: 637 case 57600:
618 speed = B57600; 638 speed = B57600;
619 break; 639 break;
  640 +#endif
  641 +#ifdef B115200
620 case 115200: 642 case 115200:
621 speed = B115200; 643 speed = B115200;
622 break; 644 break;
  645 +#endif
  646 +#ifdef B230400
623 case 230400: 647 case 230400:
624 speed = B230400; 648 speed = B230400;
625 break; 649 break;
  650 +#endif
  651 +#ifdef B460800
  652 + case 460800:
  653 + speed = B460800;
  654 + break;
  655 +#endif
  656 +#ifdef B500000
  657 + case 500000:
  658 + speed = B500000;
  659 + break;
  660 +#endif
  661 +#ifdef B576000
  662 + case 576000:
  663 + speed = B576000;
  664 + break;
  665 +#endif
  666 +#ifdef B921600
  667 + case 921600:
  668 + speed = B921600;
  669 + break;
  670 +#endif
  671 +#ifdef B1000000
  672 + case 1000000:
  673 + speed = B1000000;
  674 + break;
  675 +#endif
  676 +#ifdef B1152000
  677 + case 1152000:
  678 + speed = B1152000;
  679 + break;
  680 +#endif
  681 +#ifdef B1500000
  682 + case 1500000:
  683 + speed = B1500000;
  684 + break;
  685 +#endif
  686 +#ifdef B2500000
  687 + case 2500000:
  688 + speed = B2500000;
  689 + break;
  690 +#endif
  691 +#ifdef B3000000
  692 + case 3000000:
  693 + speed = B3000000;
  694 + break;
  695 +#endif
  696 +#ifdef B3500000
  697 + case 3500000:
  698 + speed = B3500000;
  699 + break;
  700 +#endif
  701 +#ifdef B4000000
  702 + case 4000000:
  703 + speed = B4000000;
  704 + break;
  705 +#endif
626 default: 706 default:
627 speed = B9600; 707 speed = B9600;
628 if (ctx->debug) { 708 if (ctx->debug) {