def test_get_location_other_valid_data(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,S,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", }, ): expected_data = {} expected_data["sensor_id"] = 1 expected_data["values"] = { "latitude": -40.71023666666667, "longitude": -74.00694666666666, } expected_data["date"] = "example date" gps_reader = GPSReader() data = gps_reader.get_geolocation() 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_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)
def test_init_logs(self, mock_port): with patch.dict( os.environ, { "GPS_HAT_LOG_FILE": "logger.txt", "LOG_DIRECTORY": self.temp_dir.path, "GPS_PORT": "/dev/serial0", "GPS_BAUDRATE": "9600", }, ): gps_reader = GPSReader("GPS_HAT_LOG_FILE") mock_port.assert_called_with( os.environ["GPS_PORT"], os.environ["GPS_BAUDRATE"], ) self.assertTrue(gps_reader.logging is not None) self.assertTrue(gps_reader.logging.name == "GPS_HAT_LOG_FILE") self.assertIsInstance(gps_reader.logging, Logger)
from hardware.gpsPi.gps_reader import GPSReader # noqa: E402 if os.environ["HARDWARE_TYPE"] == "commPi": print("CommunicationsPi") runServer(handler_class=CommPi) elif os.environ["HARDWARE_TYPE"] == "sensePi": print("SensePi") sensor_keys = get_sensor_keys() sensor_ids = {} sensor_ids[sensor_keys["TEMPERATURE"]] = 2 sensor_ids[sensor_keys["PRESSURE"]] = 3 sensor_ids[sensor_keys["HUMIDITY"]] = 4 sensor_ids[sensor_keys["ACCELERATION"]] = 5 sensor_ids[sensor_keys["ORIENTATION"]] = 6 sensePi = SensePi(sensor_ids=sensor_ids) gpsPi = GPSReader() client = WebClient() while True: print("while true") temp = sensePi.get_temperature() pres = sensePi.get_pressure() hum = sensePi.get_humidity() acc = sensePi.get_acceleration() orie = sensePi.get_orientation() all = sensePi.get_all() coords = gpsPi.get_geolocation() if coords is not None: data = [temp, pres, hum, acc, orie, coords, all] else: