热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

GPSD如何设置固定波特率

Gpsd设置固定波特率修改etcinit.dgpsd,支持etcinit.dgpsdstartstoprestart#!binsh###BEGININITINFO


Gpsd设置固定波特率


修改/etc/init.d/gpsd,支持/etc/init.d/gpsd start/stop/restart

#!/bin/sh
### BEGIN INIT INFO
# Provides: gpsd
# Required-Start: $remote_fs $syslog $network
# Should-Start: bluetooth dbus udev
# Required-Stop: $remote_fs $syslog $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Start-Before: ntp
# Short-Description: GPS33 (Global Positioning System) daemon
# Description: The gpsd service daemon is able to monitor one or
# more GPS devices connected to a host computer, making
# all data on the location and movements of the sensors
# available to be queried on TCP port 2947.
### END INIT INFO# Author: Bernd Zeimetz
#
# Please remove the "Author" lines above and replace them
# with your own name if you copy and modify this script.# Do NOT "set -e"# PATH should only include /usr/* if it runs after the mountnfs.sh script
RUNDIR=/run/gpsd
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="GPS2 (Global Positioning System) daemon"
NAME=gpsd
DAEMON=/usr/sbin/$NAME
PIDFILE=$RUNDIR/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAMEif [ -z "$GPSD_SOCKET" ] && [ -z "$DEVICES" ]; thenGPSD_SOCKET=/var/run/gpsd.sock
fiif [ -n "$GPSD_SOCKET" ]; thenGPSD_OPTIONS="$GPSD_OPTIONS -F $GPSD_SOCKET"
fi# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions#
# Function that starts the daemon/service
#
do_start()
{# Return# 0 if daemon has been started# 1 if daemon was already running# 2 if daemon could not be startedbaudrate=115200mkdir -p $RUNDIR || return 2start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \|| return 1while [ $baudrate -ne 9600 ]dobaudrate=`stty speed 9600 -F $DEVICES`done start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \$GPSD_OPTIONS -P $PIDFILE $DEVICES \|| return 2
}#
# Function that stops the daemon/service
#
do_stop()
{# Return# 0 if daemon has been stopped# 1 if daemon was already stopped# 2 if daemon could not be stopped# other if a failure occurredstart-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAMERETVAL="$?"[ "$RETVAL" = 2 ] && return 2# Many daemons don't delete their pidfiles when they exit.rm -f $PIDFILEreturn "$RETVAL"
}#
# Function that sends a SIGHUP to the daemon/service
#
do_reload() {## If the daemon can reload its configuration without# restarting (for example, when it is sent a SIGHUP),# then implement that here.#start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAMEreturn 0
}case "$1" instart)if [ "$START_DAEMON" = "true" ]; then[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"do_startcase "$?" in0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;esacelse[ "$VERBOSE" != no ] && \log_daemon_msg "Not starting $DESC" "$NAME" && \log_end_msg 0fi;;stop)[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"do_stopcase "$?" in0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;esac;;status)status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?;;reload|force-reload)log_daemon_msg "Reloading $DESC" "$NAME"do_reloadlog_end_msg $?;;restart)## If the "reload" option is implemented then remove the# 'force-reload' alias#log_daemon_msg "Restarting $DESC" "$NAME"do_stopcase "$?" in0|1)do_startcase "$?" in0) log_end_msg 0 ;;1) log_end_msg 1 ;; # Old process is still running*) log_end_msg 1 ;; # Failed to startesac;;*)# Failed to stoplog_end_msg 1;;esac;;*)echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2exit 3;;
esac:

修改systemd文件 /lib/systemd/system/gpsd.service支持service gpsd start/stop/restart

[Unit]
Description=GPS (Global Positioning System) Daemon
Requires=gpsd.socket
# Needed with chrony SOCK refclock
After=chronyd.service[Service]
Type=forking
EnvironmentFile=-/etc/default/gpsd
ExecStartPre=/bin/stty speed 115200 -F $DEVICES
ExecStart=/usr/sbin/gpsd $GPSD_OPTIONS $DEVICES[Install]
Also=gpsd.socket

推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • Inno Setup区段之Components篇相关知识详解
    本文详细介绍了Inno Setup区段之Components篇相关的知识,包括Components和Types的使用方式以及各个参数的说明,希望对读者有一定的参考价值。内容涵盖了ComponentsName、Description、Types、ExtraDiskSpaceRequired、ExtraDiskSpaceRequiredFlags等多个关键词,帮助读者更好地理解和应用Inno Setup区段之Components篇的知识。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • REVERT权限切换的操作步骤和注意事项
    本文介绍了在SQL Server中进行REVERT权限切换的操作步骤和注意事项。首先登录到SQL Server,其中包括一个具有很小权限的普通用户和一个系统管理员角色中的成员。然后通过添加Windows登录到SQL Server,并将其添加到AdventureWorks数据库中的用户列表中。最后通过REVERT命令切换权限。在操作过程中需要注意的是,确保登录名和数据库名的正确性,并遵循安全措施,以防止权限泄露和数据损坏。 ... [详细]
  • 本文介绍了解决mysql 5.1启动问题的方法,通过修改my.ini文件中的相关配置,包括innodb_data_home_dir和skip-innodb等,可以解决启动问题。同时还介绍了如何调整内存池来存储metadata信息。 ... [详细]
author-avatar
泡沫茱_617
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有