def test_get_speed_in_mph_invalid_data(self, mock_port): mock_port.return_value.inWaiting.return_value = 1 mock_port.return_value.readline.return_value = ( "b'$GP,194509.000,A,4042.6142,N,07400.4168,W,2.03,221.11,160412,,,A*77" ) with patch.dict( os.environ, { "GPS_LOG_FILE": "logger.txt", "LOG_DIRECTORY": self.temp_dir.path, "GPS_PORT": "/dev/serial0", "GPS_BAUDRATE": "9600", }, ): expected_data = None gps_reader = GPSReader() data = gps_reader.get_speed_mph() mock_port.return_value.inWaiting.assert_called() mock_port.return_value.readline.assert_called() self.assertEqual(expected_data, data)
def test_get_speed_in_mph(self, mock_date, mock_port): mock_port.return_value.inWaiting.return_value = 1 mock_port.return_value.readline.return_value = ( "b'$GPRMC,194509.000,A,4042.6142,N,07400.4168,W,2.03,221.11,160412,,,A*77" ) mock_date.return_value = "example date" with patch.dict( os.environ, { "GPS_LOG_FILE": "logger.txt", "LOG_DIRECTORY": self.temp_dir.path, "GPS_PORT": "/dev/serial0", "GPS_BAUDRATE": "9600", }, ): speed_in_mph = 2.03 * 1.151 expected_data = {} expected_data["sensor_id"] = 1 expected_data["values"] = { "speed": speed_in_mph, } expected_data["date"] = "example date" gps_reader = GPSReader() data = gps_reader.get_speed_mph() mock_port.return_value.inWaiting.assert_called() mock_port.return_value.readline.assert_called() self.assertEqual(expected_data, data)
def handleGps(): """ Starts up the GPSPi runtime, begins listening for GPS Hat input, establishing a connection to a local CommPi via LAN, and sending data for transmission to the CommPi """ gpsPi = GPSReader() client = WebClient() while True: print("gps loop") coords = gpsPi.get_geolocation() speed = gpsPi.get_speed_mph() if coords is not None: data = [coords, speed] for i in data: payload = json.loads(json.dumps(i)) try: client.send(payload) except Exception as err: print("Error transmitting gps data: {}".format(str(err))) raise time.sleep(1)