Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
configuration:gpsd [2016/05/13 12:04]
juraschek [cli status interface]
configuration:gpsd [2019/02/28 10:30] (current)
juraschek [GPS over IP]
Line 7: Line 7:
     * cli status interface     * cli status interface
     * inside of SDK Skripts     * inside of SDK Skripts
 +    * SNMP 
 ====== Webinterface ====== ====== Webinterface ======
  
-The Webinterface ​already give you access to the GPS Data. This can be suitable to have a quick look on the current status of a vehicle.+The Webinterface ​gives you access to the GPS Data. This can be suitable to have a quick look on the current status of a vehicle.
  
 ===== Status Page ===== ===== Status Page =====
Line 15: Line 16:
  
 {{ :​configuration:​screenshot_-_130516_-_13_57_52.png?​nolink |}} {{ :​configuration:​screenshot_-_130516_-_13_57_52.png?​nolink |}}
- 
- 
  
  
Line 24: Line 23:
 {{ :​configuration:​screenshot_-_130516_-_13_51_36.png?​nolink |}} {{ :​configuration:​screenshot_-_130516_-_13_51_36.png?​nolink |}}
  
 +====== Data format NMEA-0183 ======
 +
 +source: http://​freenmea.net/​docs
 +
 +**NMEA-0183 prefixes (Talker IDs)**
 +NMEA protocol can be sent by different equipment. It can be identified by so called Talker Id. Most known one is, of course $GP_ - GPS.
 +  * GA - Galileo
 +  * GL - GLONASS Receiver
 +  * GP - Global Positioning System (GPS)
 +  * GN - Global Navigation Satellite System (GNSS), combined services
  
  
Line 37: Line 46:
  
 <code javascript>​ <code javascript>​
-// get JOSN+// get JSON
 ?​WATCH={'​enable':​true,'​json':​true} ?​WATCH={'​enable':​true,'​json':​true}
 // get NMEA // get NMEA
 ?​WATCH={'​enable':​true,'​json':​false} ?​WATCH={'​enable':​true,'​json':​false}
 ?​WATCH={'​enable':​true,'​nmea':​true} ?​WATCH={'​enable':​true,'​nmea':​true}
 +?​WATCH={'​enable':​true}
 </​code>​ </​code>​
  
 For more information on the new JSON interface see [[http://​www.catb.org/​gpsd/​client-howto.html]] For more information on the new JSON interface see [[http://​www.catb.org/​gpsd/​client-howto.html]]
 +
 +
 +<​konsole>​
 +telnet nb 2947
 +Trying 192.168.1.1...
 +Connected to nb.
 +Escape character is '​^]'​.
 +{"​class":"​VERSION","​release":"​3.15","​rev":"​3.15","​proto_major":​3,"​proto_minor":​11}
 +?​WATCH={"​enable":​false,"​nmea":​true}
 +{"​class":"​DEVICES","​devices":​[{"​class":"​DEVICE","​path":"/​dev/​ttyUSB1","​driver":"​NMEA0183","​activated":"​2018-11-10T20:​28:​27.019Z","​flags":​1,"​native":​0,"​bps":​9600,"​parity":"​N","​stopbits":​1,"​cycle":​1.00}]}
 +{"​class":"​WATCH","​enable":​false,"​json":​false,"​nmea":​true,"​raw":​0,"​scaled":​false,"​timing":​false,"​split24":​false,"​pps":​false}
 +?​WATCH={"​enable":​true}
 +{"​class":"​DEVICES","​devices":​[{"​class":"​DEVICE","​path":"/​dev/​ttyUSB1","​driver":"​NMEA0183","​activated":"​2018-11-10T20:​28:​32.020Z","​flags":​1,"​native":​0,"​bps":​9600,"​parity":"​N","​stopbits":​1,"​cycle":​1.00}]}
 +{"​class":"​WATCH","​enable":​true,"​json":​false,"​nmea":​true,"​raw":​0,"​scaled":​false,"​timing":​false,"​split24":​false,"​pps":​false}
 +$GLGSV,​3,​1,​09,​78,​02,​045,​37,​70,​70,​292,​31,​73,​09,​226,​39,​80,​68,​236,​26*69
 +$GLGSV,​3,​2,​09,​79,​52,​040,​24,​69,​41,​158,​23,​88,​10,​040,​21,​87,​10,​355,​19*62
 +$GLGSV,​3,​3,​09,​71,​20,​323,​23*5B
 +$GPGSV,​4,​1,​14,​05,​31,​198,​45,​07,​06,​070,​36,​08,​07,​025,​30,​13,​80,​302,​33*7C
 +$GPGSV,​4,​2,​14,​15,​43,​295,​48,​17,​01,​129,​36,​20,​05,​327,​30,​21,​04,​300,​37*71
 +$GPGSV,​4,​3,​14,​24,​10,​254,​36,​28,​57,​098,​32,​30,​38,​068,​39,,,,​39*44
 +$GPGSV,​4,​4,​14,​38,​27,​209,​33,​49,​31,​184,​45*7A
 +$GPGGA,​102924.0,​5008.019319,​N,​00834.241599,​E,​1,​09,​0.7,​238.6,​M,​48.0,​M,,​*5E
 +$GNGNS,​102924.0,​5008.019319,​N,​00834.241599,​E,​AAN,​12,​0.7,​238.6,​48.0,,​*2E
 +$GPVTG,​240.2,​T,​240.7,​M,​0.0,​N,​0.0,​K,​A*26
 +$GPRMC,​102924.0,​A,​5008.019319,​N,​00834.241599,​E,​0.0,​240.2,​280219,​0.5,​W,​A*19
 +$GPGSA,​A,​2,​05,​08,​13,​15,​20,​21,​24,​28,​30,,,,​0.9,​0.7,​0.6*3E
 +$GNGSA,​A,​2,​05,​08,​13,​15,​20,​21,​24,​28,​30,,,,​0.9,​0.7,​0.6,​1*3D
 +$GNGSA,​A,​2,​70,​73,​80,,,,,,,,,,​0.9,​0.7,​0.6,​2*30
 +$GNGSA,​A,​2,​219,​221,​222,​227,​228,,,,,,,,​0.9,​0.7,​0.6*13
 +$GNGSA,​A,​2,,,,,,,,,,,,,​0.9,​0.7,​0.6,​3*3A
 +$GLGSV,​3,​1,​09,​78,​02,​045,​37,​70,​70,​292,​31,​73,​09,​226,​39,​80,​68,​236,​27*68
 +$GLGSV,​3,​2,​09,​79,​52,​040,​24,​69,​41,​158,​23,​88,​10,​040,​21,​87,​10,​355,​26*6E
 +$GLGSV,​3,​3,​09,​71,​20,​323,​21*59
 +$GPGSV,​4,​1,​14,​05,​31,​198,​45,​07,​06,​070,​35,​08,​07,​025,​33,​13,​80,​302,​34*7B
 +$GPGSV,​4,​2,​14,​15,​43,​295,​48,​17,​01,​129,​36,​20,​05,​327,​30,​21,​04,​300,​37*71
 +$GPGSV,​4,​3,​14,​24,​10,​254,​36,​28,​57,​098,​31,​30,​38,​068,​39,,,,​39*47
 +$GPGSV,​4,​4,​14,​38,​27,​209,​34,​49,​31,​184,​45*7D
 +$GPGGA,​102925.0,​5008.019336,​N,​00834.241660,​E,​1,​10,​0.6,​238.6,​M,​48.0,​M,,​*5E
 +$GNGNS,​102925.0,​5008.019336,​N,​00834.241660,​E,​AAN,​14,​0.6,​238.6,​48.0,,​*20
 +$GPVTG,​240.2,​T,​240.7,​M,​0.0,​N,​0.0,​K,​A*26
 +$GPRMC,​102925.0,​A,​5008.019336,​N,​00834.241660,​E,​0.0,​240.2,​280219,​0.5,​W,​A*10
 +$GPGSA,​A,​2,​05,​07,​08,​13,​15,​20,​21,​24,​28,​30,,,​0.9,​0.6,​0.6*38
 +$GNGSA,​A,​2,​05,​07,​08,​13,​15,​20,​21,​24,​28,​30,,,​0.9,​0.6,​0.6,​1*3B
 +$GNGSA,​A,​2,​70,​73,​80,​87,,,,,,,,,​0.9,​0.6,​0.6,​2*3E
 +$GNGSA,​A,​2,​219,​221,​222,​227,​228,,,,,,,,​0.9,​0.6,​0.6*12
 +$GNGSA,​A,​2,,,,,,,,,,,,,​0.9,​0.6,​0.6,​3*3B
 +$GLGSV,​3,​1,​09,​78,​02,​045,​37,​70,​70,​292,​31,​73,​09,​226,​38,​80,​68,​236,​25*6B
 +$GLGSV,​3,​2,​09,​79,​52,​040,​24,​69,​41,​158,​23,​88,​10,​040,​21,​87,​10,​355,​26*6E
 +$GLGSV,​3,​3,​09,​71,​20,​323,​21*59
 +$GPGSV,​4,​1,​14,​05,​31,​198,​46,​07,​06,​070,​31,​08,​07,​025,​31,​13,​80,​302,​34*7E
 +$GPGSV,​4,​2,​14,​15,​43,​295,​48,​17,​01,​129,​36,​20,​05,​327,​30,​21,​04,​300,​37*71
 +$GPGSV,​4,​3,​14,​24,​10,​254,​36,​28,​57,​098,​31,​30,​38,​068,​39,,,,​39*47
 +$GPGSV,​4,​4,​14,​38,​27,​209,​34,​49,​31,​184,​45*7D
 +$GPGGA,​102926.0,​5008.019356,​N,​00834.241727,​E,​1,​09,​0.6,​238.5,​M,​48.0,​M,,​*52
 +$GNGNS,​102926.0,​5008.019356,​N,​00834.241727,​E,​AAN,​13,​0.6,​238.5,​48.0,,​*23
 +$GPVTG,​240.2,​T,​240.7,​M,​0.0,​N,​0.0,​K,​A*26
 +$GPRMC,​102926.0,​A,​5008.019356,​N,​00834.241727,​E,​0.0,​240.2,​280219,​0.5,​W,​A*17
 +$GPGSA,​A,​2,​05,​08,​13,​15,​20,​21,​24,​28,​30,,,,​0.9,​0.6,​0.6*3F
 +$GNGSA,​A,​2,​05,​08,​13,​15,​20,​21,​24,​28,​30,,,,​0.9,​0.6,​0.6,​1*3C
 +$GNGSA,​A,​2,​70,​73,​80,​87,,,,,,,,,​0.9,​0.6,​0.6,​2*3E
 +$GNGSA,​A,​2,​219,​221,​222,​227,​228,,,,,,,,​0.9,​0.6,​0.6*12
 +$GNGSA,​A,​2,,,,,,,,,,,,,​0.9,​0.6,​0.6,​3*3B
 +
 +</​konsole>​
  
 ==== Clients ==== ==== Clients ====
Line 53: Line 127:
 ====== cli status interface ====== ====== cli status interface ======
  
-Via the Command Line Interface ​you can aquire also the gps parameters:+The Command Line Interface can be used  via telnet, ssh or serial terminal access. ​  
 + 
 +With the command "**cli status gnss**"​ you will seethe current ​gps data. 
 + 
 + 
  
 <​konsole>​ <​konsole>​
Line 60: Line 139:
 GNSS1 module type:               me909 GNSS1 module type:               me909
 GNSS1 module info:               ​Manufacturer:​ Huawei Technologies Co., Ltd. GNSS1 module info:               ​Manufacturer:​ Huawei Technologies Co., Ltd.
-                                 Model: ME909u-521 +.                                ​Model: ME909u-521 
-                                 ​Revision: 11.235.07.00.00 +.                                ​Revision: 11.235.07.00.00 
-                                 ​IMEI: 860461024127634 +.                                ​IMEI: 860461024127634 
-                                 ​+GCAP: +CGSM+.                                ​+GCAP: +CGSM
 GNNS1 system: ​                   GPS GNNS1 system: ​                   GPS
 GNSS1 signal: ​                   present GNSS1 signal: ​                   present
Line 82: Line 161:
 To have it in the right format for using inside of scripts (bash, python etc.) you can use the parameter "​-s" ​ To have it in the right format for using inside of scripts (bash, python etc.) you can use the parameter "​-s" ​
  
 +<​konsole>​
  cli status -s gnss  cli status -s gnss
 GNSS1_MODULE_TYPE="​me909"​ GNSS1_MODULE_TYPE="​me909"​
Line 98: Line 178:
 GNSS1_SATELLITES_INVIEW="​12"​ GNSS1_SATELLITES_INVIEW="​12"​
 GNSS1_SATELLITES_USED="​3"​ GNSS1_SATELLITES_USED="​3"​
 +</​konsole>​
 +
  
  
Line 103: Line 185:
  
 ====== SDK Scripts ​ ====== ====== SDK Scripts ​ ======
 +
 +Within the SDK you can reach the gps data by requesting the status parameter as in the cli example or you can retrieve the data from the gps over IP daemon to distribute it further. ​
 +
 +Cli data can be retrieved as follows: ​
 +<code c >
 +status=nb_status("​gnss"​);​
 +dump(status);​
 +</​code>​
 +
 +Result:
 +
 +<code c >
 +struct(15): {
 +  .GNSS1_MODULE_TYPE = string[5]: "​me909"​
 +  .GNSS1_MODULE_INFO = string[126]:​ "​Manufacturer:​ Huawei Technologies Co., Ltd.  Model: ME909u-521 ​ Revision: 11.235.07.00.00 ​ IMEI: 860461024127634 ​ +GCAP: +CGSM"
 +  .GNSS1_LONGITUDE = string[8]: "​8.572821"​
 +  .GNSS1_HDOP = string[4]: "​6.00"​
 +  .GNNS1_SYSTEM = string[3]: "​GPS"​
 +  .GNSS1_VDOP = string[4]: "​0.90"​
 +  .GNSS1_LATITUDE = string[9]: "​50.134294"​
 +  .GNNS1_LAST_FIX = string[19]: "​2016-05-08 03:​42:​16"​
 +  .GNSS1_ALTITUDE = string[6]: "​146.90"​
 +  .GNSS1_PDOP = string[4]: "​6.00"​
 +  .GNSS1_SATELLITES_USED = string[1]: "​4"​
 +  .GNSS1_VERTICAL_SPEED = string[5]: "​0.000"​
 +  .GNSS1_SATELLITES_INVIEW = string[2]: "​12"​
 +  .GNSS1_SIGNAL = string[7]: "​present"​
 +  .GNSS1_HORIZONTAL_SPEED = string[5]: "​0.000"​
 +}
 +</​code>​
 +
 +==== SNMP ====
 +It's possible to poll the postition via SNMP. 
 +You will find the entries "​gnssLat"​ latitude and "​gnssLon"​ longitude in the private MIB. 
 +Please be aware that the update interval will be 3s. 
 +
 +
 +===== Example Scripts =====
 +
 +  * Sending NMEA String on the serial interface: [[sdk:​gps2serial]]
 +  * Forward NMEA String to a UDP Server: [[sdk:​scripts:​gps-udp-client]]
 +  * Enable/​Disable WLAN depending on the current position: [[sdk:​scripts:​gps-monitor]]
 +  * Creating CSV Logfiles with location data: [[sdk:​connection-statistics]]