summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Residori <marco.residori@xse.de>2014-07-22 05:45:28 -0700
committerMarco Residori <marco.residori@xse.de>2014-07-22 05:45:28 -0700
commit8d2ccc22ed64e55b015a7bc7001658e4c386601b (patch)
tree18dd74944efc24385b16cc9b8e55f9fca9ac881a
parent0bd8382a38198cd884f8b34e592a7453a0876643 (diff)
downloadpositioning-8d2ccc22ed64e55b015a7bc7001658e4c386601b.tar.gz
Add test scripts (python)
-rwxr-xr-xenhanced-position-service/test/test-scripts/test-enhanced-position-service.py91
1 files changed, 91 insertions, 0 deletions
diff --git a/enhanced-position-service/test/test-scripts/test-enhanced-position-service.py b/enhanced-position-service/test/test-scripts/test-enhanced-position-service.py
new file mode 100755
index 0000000..9ae6f72
--- /dev/null
+++ b/enhanced-position-service/test/test-scripts/test-enhanced-position-service.py
@@ -0,0 +1,91 @@
+#!/usr/bin/python
+
+"""
+**************************************************************************
+* @licence app begin@
+* SPDX-License-Identifier: MPL-2.0
+*
+* \copyright Copyright (C) 2014, XS Embedded GmbH
+*
+* \file test-enhanced-position-service.py
+*
+* \brief This simple test shows how the enhanced-position-service
+* can be easily tested using a python script
+*
+* \author Marco Residori <marco.residori@xse.de>
+*
+* \version 1.0
+*
+* This Source Code Form is subject to the terms of the
+* Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+# this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+* List of changes:
+* <date>, <name>, <description of change>
+*
+* @licence end@
+**************************************************************************
+"""
+
+import dbus
+import gobject
+import dbus.mainloop.glib
+
+#constants as defined in the Positioning API
+LATITUDE = 0x0020
+LONGITUDE = 0x0021
+ALTITUDE = 0x0022
+CLIMB = 0x0032
+SPEED = 0x0031
+HEADING = 0x0030
+
+print '\n--------------------------'
+print 'Positioning Test'
+print '--------------------------\n'
+
+if __name__ == '__main__':
+ dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
+
+#connect to session bus
+bus = dbus.SessionBus()
+
+#signal receiver
+def catchall_positioning_signals_handler(changedValues):
+ print 'PositonUpdate'
+ changedfields = dbus.Array(signature='q')
+ position = enhanced_position_interface.GetPosition(changedValues)
+ for val in changedValues:
+ if val == LATITUDE:
+ print 'LATITUDE:' + str(position[dbus.UInt16(val)])
+ if val == LONGITUDE:
+ print 'LONGITUDE:' + str(position[dbus.UInt16(val)])
+ if val == ALTITUDE:
+ print 'ALTITUDE:' + str(position[dbus.UInt16(val)])
+ if val == CLIMB:
+ print 'CLIMB:' + str(position[dbus.UInt16(val)])
+ if val == SPEED:
+ print 'SPEED:' + str(position[dbus.UInt16(val)])
+ if val == HEADING:
+ print 'HEADING:' + str(position[dbus.UInt16(val)])
+
+#add signal receiver
+bus.add_signal_receiver(catchall_positioning_signals_handler, \
+ dbus_interface = "org.genivi.positioning.EnhancedPosition", \
+ signal_name = "PositionUpdate")
+
+#timeout
+def timeout():
+ print '\nTest Finished\n'
+ loop.quit()
+
+#get object
+enhanced_position = bus.get_object('org.genivi.positioning.EnhancedPosition','/org/genivi/positioning/EnhancedPosition')
+
+#get interface
+enhanced_position_interface = dbus.Interface(enhanced_position, dbus_interface='org.genivi.positioning.EnhancedPosition')
+
+#main loop
+gobject.timeout_add(10000, timeout)
+loop = gobject.MainLoop()
+loop.run()
+
+