]> Repositories - Adafruit_Blinka-hackapet.git/blob - test/src/testing/universal/uart.py
acd9840ea3a2e447f7b6fdbc4e46bfc1b2de17cc
[Adafruit_Blinka-hackapet.git] / test / src / testing / universal / uart.py
1 import gc
2 from unittest import TestCase
3 from testing import await_true
4
5 gc.collect()
6
7
8 class TestGPSInteractive(TestCase):
9     def test_read_value(self):
10         import adafruit_blinka
11
12         adafruit_blinka.patch_system()  # needed before adafruit_gps imports time
13
14         import microcontroller.pin
15
16         gc.collect()
17         import busio
18
19         gc.collect()
20         import adafruit_gps
21
22         gc.collect()
23
24         # configure the last available UART (first uart often for REPL)
25         uartId, uartTx, uartRx = microcontroller.pin.uartPorts[0]
26         uart = busio.UART(uartTx, uartRx, baudrate=9600, timeout=3000)
27
28         gps = adafruit_gps.GPS(uart)
29
30         gps.send_command("PMTK314,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0")
31         gps.send_command("PMTK220,1000")
32
33         def try_fix():
34             gps.update()
35             return gps.has_fix
36
37         await_true("GPS fix", try_fix)
38
39         self.assertTrue(gps.satellites is not None)
40         self.assertTrue(-90 <= gps.latitude < 90)
41         self.assertTrue(-180 <= gps.longitude < 180)