A great idea to add baud-rate.

Just a suggestion, 
As I remember from gtkterm application.

It provide setting: port name, Baud rate, parity, bits, stop bit, and flow 
control.

What do you think of adding all of the setting?

Erez

-----Original Message-----
From: Lars Munch <l...@segv.dk> 
Sent: Friday, 14 May 2021 13:34
To: linuxptp-devel@lists.sourceforge.net
Subject: [Linuxptp-devel] [PATCH 4/4] ts2phc: Add serial baudrate option

Add serial baudrate configuration option. Default to 9600 bps.

Signed-off-by: Lars Munch <l...@segv.dk>
---
 config.c             |  1 +
 ts2phc.8             | 23 ++++++++++++-----------
 ts2phc_nmea_master.c | 10 +++++-----
 3 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/config.c b/config.c
index 4472d3d..a42a57f 100644
--- a/config.c
+++ b/config.c
@@ -319,6 +319,7 @@ struct config_item config_tab[] = {
        GLOB_ITEM_STR("ts2phc.nmea_remote_host", ""),
        GLOB_ITEM_STR("ts2phc.nmea_remote_port", ""),
        GLOB_ITEM_STR("ts2phc.nmea_serialport", "/dev/ttyS0"),
+       PORT_ITEM_INT("ts2phc.nmea_baudrate", 9600, 0, INT_MAX),
        PORT_ITEM_INT("ts2phc.pin_index", 0, 0, INT_MAX),
        GLOB_ITEM_INT("ts2phc.pulsewidth", 500000000, 1000000, 999000000),
        PORT_ITEM_ENU("tsproc_mode", TSPROC_FILTER, tsproc_enu), diff --git 
a/ts2phc.8 b/ts2phc.8 index 99067c5..690c462 100644
--- a/ts2phc.8
+++ b/ts2phc.8
@@ -146,19 +146,20 @@ set to 0.0, the servo will never step the clock except on 
start.
 The default is 0.0.
 .TP
 .B ts2phc.nmea_remote_host, ts2phc.nmea_remote_port -Specifies the serial port 
character device providing ToD information -when using the "nmea" PPS signal 
source.  Note that if these two -options are both specified, then the given 
remote connection will be -used in preference to the configured serial port.
-These options default to the empty string, that is, not specified.
-.TP
-.B ts2phc.nmea_serialport
-Specifies the serial port character device providing ToD information -when 
using the "nmea" PPS signal source.  Note that if the options, 
-ts2phc.nmea_remote_host and ts2phc.nmea_remote_port, are both
+Specifies the remote host providing ToD information when using the 
+"nmea" PPS signal source.  Note that if these two options are both
 specified, then the given remote connection will be used in preference  to the 
configured serial port.
-The default is "/dev/ttyS0".
+These options default to the empty string, that is, not specified.
+.TP
+.B ts2phc.nmea_serialport, ts2phc.nmea_baudrate Specifies the serial 
+port and baudrate in bps for character device providing ToD information 
+when using the "nmea" PPS signal source. Note that if the options, 
+ts2phc.nmea_remote_host and ts2phc.nmea_remote_port, are both 
+specified, then the given remote connection will be used in preference 
+to the configured serial port.
+The default serial port is "/dev/ttyS0".
+The default baudrate is 9600 bps.
 .TP
 .B ts2phc.pulsewidth
 The expected pulse width of the external PPS signal in nanoseconds.
diff --git a/ts2phc_nmea_master.c b/ts2phc_nmea_master.c index 2fc460d..a383429 
100644
--- a/ts2phc_nmea_master.c
+++ b/ts2phc_nmea_master.c
@@ -23,7 +23,6 @@
 #include "ts2phc_nmea_master.h"
 #include "util.h"
 
-#define BAUD           9600
 #define MAX_RMC_AGE    5000000000ULL
 #define NMEA_TMO       2000 /*milliseconds*/
 
@@ -45,7 +44,7 @@ struct ts2phc_nmea_master {  };
 
 static int open_nmea_connection(const char *host, const char *port,
-                               const char *serialport)
+                               const char *serialport, int baud)
 {
        int fd;
 
@@ -56,7 +55,7 @@ static int open_nmea_connection(const char *host, const char 
*port,
                }
                return fd;
        }
-       fd = serial_open(serialport, BAUD, 0, 0);
+       fd = serial_open(serialport, baud, 0, 0);
        if (fd == -1) {
                pr_err("failed to open nmea source %s", serialport);
        }
@@ -70,7 +69,7 @@ static void *monitor_nmea_status(void *arg)
        char *host, input[256], *port, *ptr, *uart;
        struct ts2phc_nmea_master *master = arg;
        struct timespec rxtime, tmo = { 2, 0 };
-       int cnt, num, parsed;
+       int cnt, num, parsed, baud;
        struct nmea_rmc rmc;
        struct timex ntx;
 
@@ -81,12 +80,13 @@ static void *monitor_nmea_status(void *arg)
        host = config_get_string(master->config, NULL, 
"ts2phc.nmea_remote_host");
        port = config_get_string(master->config, NULL, 
"ts2phc.nmea_remote_port");
        uart = config_get_string(master->config, NULL, 
"ts2phc.nmea_serialport");
+       baud = config_get_int(master->config, NULL, "ts2phc.nmea_baudrate");
        memset(&ntx, 0, sizeof(ntx));
        ntx.modes = ADJ_NANO;
 
        while (is_running()) {
                if (pfd.fd == -1) {
-                       pfd.fd = open_nmea_connection(host, port, uart);
+                       pfd.fd = open_nmea_connection(host, port, uart, baud);
                        if (pfd.fd == -1) {
                                clock_nanosleep(CLOCK_MONOTONIC, 0, &tmo, NULL);
                                continue;
--
2.25.1



_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.sourceforge.net%2Flists%2Flistinfo%2Flinuxptp-devel&amp;data=04%7C01%7Cerez.geva.ext%40siemens.com%7Cf93aa9f21fa44fe32c1608d916d61d00%7C38ae3bcd95794fd4addab42e1495d55a%7C1%7C0%7C637565931129723475%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=AEkd4H%2BMtldzeiocodPsMsbS%2FKvc1NzeGDF4jGAAIp0%3D&amp;reserved=0


_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to