ugps: add a minimal gps daemon
authorJohn Crispin <john@openwrt.org>
Sun, 3 Aug 2014 11:15:42 +0000 (11:15 +0000)
committerJohn Crispin <john@openwrt.org>
Sun, 3 Aug 2014 11:15:42 +0000 (11:15 +0000)
* set the system time/data
* "ubus call gps info" will tell you lattitude, longitude, elevation, speed and bearing

Signed-off-by: John Crispin <blogic@openwrt.org>
Backport of r41929

SVN-Revision: 41970

package/utils/ugps/Makefile [new file with mode: 0644]
package/utils/ugps/files/gps.config [new file with mode: 0644]
package/utils/ugps/files/ugps.init [new file with mode: 0644]

diff --git a/package/utils/ugps/Makefile b/package/utils/ugps/Makefile
new file mode 100644 (file)
index 0000000..44dbb59
--- /dev/null
@@ -0,0 +1,41 @@
+#
+# Copyright (C) 2014 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=ugps
+PKG_VERSION:=2014-08-01
+PKG_RELEASE=$(PKG_SOURCE_VERSION)
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.bz2
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_URL:=git://git.openwrt.org/project/ugps.git
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=1c31c99edd9de9dcb403750b04041eccc751ac5e
+
+PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Package/ugps
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE:=OpenWrt GPS Daemon
+  DEPENDS:=+libubox +libubus
+endef
+
+TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include
+
+define Package/ugps/install
+       $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/init.d $(1)/etc/config
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/ugps $(1)/usr/sbin/
+       $(INSTALL_BIN) ./files/ugps.init $(1)/etc/init.d/ugps
+       $(INSTALL_BIN) ./files/gps.config $(1)/etc/config/gps
+endef
+
+$(eval $(call BuildPackage,ugps))
diff --git a/package/utils/ugps/files/gps.config b/package/utils/ugps/files/gps.config
new file mode 100644 (file)
index 0000000..d997a59
--- /dev/null
@@ -0,0 +1,2 @@
+config gps
+       option  'tty'   'ttyACM0'
diff --git a/package/utils/ugps/files/ugps.init b/package/utils/ugps/files/ugps.init
new file mode 100644 (file)
index 0000000..621d017
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/sh /etc/rc.common
+# Copyright (c) 2014 OpenWrt.org
+
+START=80
+
+USE_PROCD=1
+PROG=/usr/sbin/ugps
+
+service_triggers() {
+       procd_add_reload_trigger gps
+}
+
+start_service() {
+       local tty="$(uci get gps.@gps[-1].tty)"
+
+       [ -d "/sys/class/tty/$tty/" ] || return
+
+       procd_open_instance
+       procd_set_param command "$PROG" "/dev/$tty"
+       procd_set_param respawn
+       procd_close_instance
+}