From patchwork Sun Jan 16 19:17:17 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wojciech Jowsa X-Patchwork-Id: 1580514 X-Patchwork-Delegate: ynezz@true.cz Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.openwrt.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org; receiver=) Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JcQ0f4jjqz9sSs for ; Mon, 17 Jan 2022 06:22:39 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=T2wZ9V2M9avQi3QBaduDRUa9Qebyxkgsea2JCZfw7z4=; b=EVVtJE+5F0Ua+s 3btV9agRbASdZCCRZwSXO4KQEeJzQH4UdSto4Z8q06tX+/USLSEMi/bk7rTR1eQ3VyL92Q631gV0Y zkFibOT47QxRspCnBlQXWGwMBBaRLQTKivKzgBW6HG3XOWCtRB3tgE7N7c2jUXK/TKoFuNeQNpkyj 32OaWTX9Ej+ry/3jhi/pVoCSZzoT54J9ZnijxQZIdSDz3lJIzHPYOkM/CCNMNmhJgy6AYwzEZkwGz 0axmt9T116diiADXMXb/+C25ph2drcpEnMC1C7zTshnnDTdkv2zyOBameeHrc3l00+ZFjWW4B74Jl seQUhBbGWsJUu+2dFCTQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n9B3u-00CrFE-Kk; Sun, 16 Jan 2022 19:19:34 +0000 Received: from mail-lf1-x12c.google.com ([2a00:1450:4864:20::12c]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1n9B3r-00CrEg-5e for openwrt-devel@lists.openwrt.org; Sun, 16 Jan 2022 19:19:32 +0000 Received: by mail-lf1-x12c.google.com with SMTP id s30so49647752lfo.7 for ; Sun, 16 Jan 2022 11:19:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=stQ3E4L9oedubunCgRjIOZgh3IWPLR3GQZjYeFMDYKE=; b=KGX5qspOsaq9T+azfeh6m5VlCo4Gc/y/igyy68VR7rnEgZO/RJDvHLArLExUCyDwXz iIBN8N98TK5X3rSO33YG8qa+qQMqOBvPON1KMFbvGTos1idfF6F9vyBWq8RxTdEZu4Yw xyigWLz2tMEshlJ2I0EDx54Wl8KvTzfeuSarHBr8HVSC+aFHvis3rCyejy48Md/YF90N Sn+y3Wf8XtUvXAIymmM0d5lUz71NZ/GKerrnfPkJYfKeu0zizHRkrWE3p7DdzD4g7b5i 6lJ7V92PY+b7Gbuqg/480VQclowtllAECmz7gXdPo6ZX4OQQsdF6OSh5nm4BHeoZ+WyV +qtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=stQ3E4L9oedubunCgRjIOZgh3IWPLR3GQZjYeFMDYKE=; b=16jdUyqLjuzlmHngrBYl6z4wx9jH2dtrjo5RuBoBa/dTEt4OPgpNsEXeTeRf744yfa ZGM/cmV+YyASndXD+njGxFGPQJwdnBFy1ZMWXgeTCaVR+U53zNaCnjqW1Y9OI+5lDDGM MVO536uGqbfvgRz660Bp9KpErIn2890wPcYqf+BPkZ2+w5gdgqh80535g8c9PISZwUH6 W7emFnLDNQgwPcYLYFwgP7b9D1Hky8Q4OHSu8qGLXDIYClpD7A1y5xIMb9l7h7K61Rra 8JGNZj6C+EEnHqf1iMrWTbBu9ClSJ2cC8njaV0viFuVyzufyvVl8/2pncO40B6qeNQ4K 7HvA== X-Gm-Message-State: AOAM531X4pmFPFTQbdm8I+awp1WFxInLElOVE3Wn5vwVaUBpNe5DcUz6 Iyptu57dJ/brVcSm/l6aIHbRqeIGp4I= X-Google-Smtp-Source: ABdhPJx9EhX2sNte50zZBxc2Fr66PtsKYgYi+KHPE0XBisVmszlgLgRZfwEVOCJroJ92bpzljHCqFA== X-Received: by 2002:a05:6512:3056:: with SMTP id b22mr14489704lfb.611.1642360768624; Sun, 16 Jan 2022 11:19:28 -0800 (PST) Received: from wjow-XPS-15-9570.lan (host-188-122-2-56.finemedia.com.pl. [188.122.2.56]) by smtp.gmail.com with ESMTPSA id t22sm358866lfd.138.2022.01.16.11.19.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Jan 2022 11:19:28 -0800 (PST) From: Wojciech Jowsa To: openwrt-devel@lists.openwrt.org Cc: Wojciech Jowsa Subject: [PATCH] ugps: add baud rate command line option Date: Sun, 16 Jan 2022 20:17:17 +0100 Message-Id: <20220116191717.247245-1-wojciech.jowsa@gmail.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220116_111931_244653_C8A3F7DF X-CRM114-Status: GOOD ( 10.51 ) X-Spam-Score: -0.2 (/) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: currently, gps device baud rate is hardcoded so ugps might not work with devices that baud rate is configured to be different than 4800. Signed-off-by: Wojciech Jowsa --- main.c | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) Content analysis details: (-0.2 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:12c listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider [wojciech.jowsa[at]gmail.com] -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org currently, gps device baud rate is hardcoded so ugps might not work with devices that baud rate is configured to be different than 4800. Signed-off-by: Wojciech Jowsa --- main.c | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/main.c b/main.c index 2ab0f8c..bb1592b 100644 --- a/main.c +++ b/main.c @@ -105,10 +105,31 @@ usage(const char *prog) " -s Path to ubus socket\n" " -d Enable debug messages\n" " -S Print messages to stdout\n" + " -b Set gps device baud rate\n" "\n", prog); return -1; } +static speed_t get_baudrate(int baudrate) +{ + switch (baudrate) { + case 4800: + return B4800; + case 9600: + return B9600; + case 19200: + return B19200; + case 38400: + return B38400; + case 57600: + return B57600; + case 115200: + return B115200; + default: + return B0; + } +} + int main(int argc, char ** argv) { @@ -116,6 +137,7 @@ main(int argc, char ** argv) char *device = NULL; char *dbglvl = getenv("DBGLVL"); int ulog_channels = ULOG_KMSG; + speed_t baudrate = B4800; signal(SIGPIPE, SIG_IGN); @@ -124,7 +146,7 @@ main(int argc, char ** argv) unsetenv("DBGLVL"); } - while ((ch = getopt(argc, argv, "ad:s:S")) != -1) { + while ((ch = getopt(argc, argv, "ad:s:S:b:")) != -1) { switch (ch) { case 'a': adjust_clock = -1; @@ -138,11 +160,19 @@ main(int argc, char ** argv) case 'S': ulog_channels = ULOG_STDIO; break; + case 'b': + baudrate = get_baudrate(atoi(optarg)); + break; default: return usage(argv[0]); } } + if (!baudrate) { + fprintf(stderr, "ERROR: incorrect baud rate \n"); + return usage(argv[0]); + } + if (argc - optind < 1) { fprintf(stderr, "ERROR: missing device parameter\n"); return usage(argv[0]); @@ -156,7 +186,7 @@ main(int argc, char ** argv) conn.cb = ubus_connect_handler; ubus_auto_connect(&conn); - if (nmea_open(device, &stream, B4800) < 0) + if (nmea_open(device, &stream, baudrate) < 0) return -1; uloop_run();