aboutsummaryrefslogtreecommitdiffstats
path: root/mpm/python/usrp_mpm/gpsd_iface.py
Commit message (Collapse)AuthorAgeFilesLines
* mpm: gpsd_iface: Make GPGGA generation more robustMartin Braun2021-06-031-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | The GPGGA string generation relies on TPV and SKY messages being accurate, meaning they are a list of dictionaries. There have been cases where this was inaccurate (an empty list was returned). MPM would show errors as such: [ERROR] [MPM.RPCServer] Uncaught exception in method get_mb_sensor :list index out of range Traceback (most recent call last): File "/usr/lib/python3.7/site-packages/usrp_mpm/rpc_server.py", line 184, in new_claimed_function return function(*args) File "/usr/lib/python3.7/site-packages/usrp_mpm/periph_manager/base.py", line 1000, in get_mb_sensor self, self.mboard_sensor_callback_map.get(sensor_name) File "/usr/lib/python3.7/site-packages/usrp_mpm/gpsd_iface.py", line 313, in get_gps_gpgga_sensor tpv_sensor_data = gps_info.get('tpv', [{}])[0] IndexError: list index out of range This is a patch to check that the lists are not empty before directly referencing index 0 therein.
* mpm: gpsd_iface: Refactor classMartin Braun2021-05-241-94/+103
| | | | | | - There's a lengthy conversion of TPV/SKY dicts into GPGGA which is removed from the class to enhance readability - The file had some Pylint issues, including a Python2-ism
* mpm: e310: Enable GPS sensorsMartin Braun2019-11-261-5/+31
| | | | The GPS sensors are pulled in via gpsd_iface.
* mpm: gpsd_iface: Sanitize return values for get_gps_info()Martin Braun2019-11-211-8/+21
| | | | | get_gps_info() can time out, or fail for other reasons. This adds some checks to see if the return value is as expected.
* mpm: Add gpgga sensor function to GPSd ifaceToni Jones2019-01-031-0/+101
| | | | | | Add method to generate GPGGA sensor data in MPM devices. This needs to be constructed from TPV and SKY sensor data, and matches the GPGGA sensor functionality in gpsd_iface.cpp.
* mpm:gpsd_iface: handle errors from gpsdTrung Tran2018-11-131-50/+87
| | | | | | | gpsd connection is not reliable. Adding more error handling to re-connect during polling. Add control flows to get_gps_time in order to give an effect of getting the value on pps edge.
* mpm: n3xx: Factor out GPSd Iface functionsBrent Stapleton2018-07-061-1/+107
| | | | | | | | | | | | | | - Refactoring GPSd interface to be instead wrapped by a GPSDIfaceExtension class. This class will faciliate "extending" an object, allowing that object to call the GPSDIfaceExtension methods as their own. - New MPM devices (or whatever else) can now use the GPSDIfaceExtension class instead of writing their own GPSDIface handling functions. - N3XX now instantiates a GPSDIfaceExtension object, and extends itself. This means that an n3xx object can call the `get_gps_time` method as its own, for example. - N3XX must get through initialization in order for the GPSd methods to be registered.
* mpm: Update all license headersMartin Braun2018-02-191-2/+2
| | | | | - Fix typo in company name (missing 'a') - Updated SPDX license identifier to version 3.0
* fixup! mpm: adding GPS sensor functionsBrent Stapleton2018-01-111-1/+1
|
* mpm: Harmonize all license headerMartin Braun2017-12-221-2/+1
| | | | Now uses SPDX headers everywhere.
* mpm: adding GPS sensor functionsBrent Stapleton2017-12-221-0/+152
Adding GPS TPV and SKY sensors to MPM, and their respective getters. Reviewed-By: Martin Braun <martin.braun@ettus.com>