From 6fdaffa1b2ba8c49ed8bd38fb6445335b3146329 Mon Sep 17 00:00:00 2001 From: Mike Centola Date: Thu, 10 Jan 2019 00:35:28 -0500 Subject: [PATCH] Added gpsd script for SNMP Extend (#217) Fixed Typos Fixed another typo --- snmp/gpsd | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100755 snmp/gpsd diff --git a/snmp/gpsd b/snmp/gpsd new file mode 100755 index 0000000..48f1be4 --- /dev/null +++ b/snmp/gpsd @@ -0,0 +1,45 @@ +#!/usr/bin/env bash +# +# Copyright (c) 2019 Mike Centola +# +# Please make sure the paths below are correct. +# Alternatively you can put them in $0.conf, meaning if you've named +# this script gpsd.sh then it must go in gpsd.sh.conf . +# +# +################################################################ +# Don't change anything unless you know what are you doing # +################################################################ + +BIN_GPIPE='/usr/bin/env gpspipe' +BIN_GREP='/usr/bin/env grep' +BIN_PYTHON='/usr/bin/env python' + +# Check for config file +CONFIG=$0".conf" +if [ -f $CONFIG ]; then + . $CONFIG +fi + +# Create Temp File +TMPFILE=$(mktemp) +trap "rm -f $TMPFILE" 0 2 3 15 + +# Write GPSPIPE Data to Temp File +$BIN_GPIPE -w -n 10 > $TMPFILE + +# Parse Temp file for GPSD Data +VERSION=`cat $TMPFILE | $BIN_GREP -m 1 "VERSION" | $BIN_PYTHON -c 'import sys,json;print json.load(sys.stdin)["rev"]'` +GPSDMODE=`cat $TMPFILE | $BIN_GREP -m 1 "mode" | $BIN_PYTHON -c 'import sys,json;print json.load(sys.stdin)["mode"]'` +HDOP=`cat $TMPFILE | $BIN_GREP -m 1 "hdop" | $BIN_PYTHON -c 'import sys,json;print json.load(sys.stdin)["hdop"]'` +VDOP=`cat $TMPFILE | $BIN_GREP -m 1 "vdop" | $BIN_PYTHON -c 'import sys,json;print json.load(sys.stdin)["vdop"]'` +LAT=`cat $TMPFILE | $BIN_GREP -m 1 "lat" | $BIN_PYTHON -c 'import sys,json;print json.load(sys.stdin)["lat"]'` +LONG=`cat $TMPFILE | $BIN_GREP -m 1 "lon" | $BIN_PYTHON -c 'import sys,json;print json.load(sys.stdin)["lon"]'` +ALT=`cat $TMPFILE | $BIN_GREP -m 1 "alt" | $BIN_PYTHON -c 'import sys,json;print json.load(sys.stdin)["alt"]'` +SATS=`cat $TMPFILE | $BIN_GREP -m 1 "SKY" | $BIN_PYTHON -c 'import sys,json;print len(json.load(sys.stdin)["satellites"])'` +SATSUSED=`cat $TMPFILE | $BIN_GREP -m 1 "SKY" | $BIN_PYTHON -c 'import sys,json;print len([sat for sat in json.load(sys.stdin)["satellites"] if sat["used"]])'` + +# Output info for SNMP Extend +echo '{"data":{"mode":"'$GPSDMODE'", "hdop":"'$HDOP'", "vdop":"'$VDOP'", "latitude":"'$LAT'", "longitude":"'$LONG'", "altitude":"'$ALT'", "satellites":"'$SATS'", "satellites_used":"'$SATSUSED'"}, "error":"0", "errorString":"", "version":"'$VERSION'"}' + +rm $TMPFILE \ No newline at end of file