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