fix(factory): relax GNSS check for indoor testing

This commit is contained in:
chenjintao
2026-09-24 18:09:15 +08:00
parent a4d6f79838
commit 01d52cc3d6
6 changed files with 20 additions and 18 deletions
+1 -1
View File
@@ -94,7 +94,7 @@ factory_host/dist/
产测固件开机后立即在后台启动 GNSS 搜索,同时依次执行:开机音频、电源 ADC、音频 Loopback、eSIM、数据连接和 NFC。最后的 GNSS 节点只播放一次提示音,然后循环读取此前累计的 NMEA、卫星数和定位状态,直到达到基础硬件判定门槛。
GNSS 的基础硬件判定门槛为:GNSS 成功打开、累计收到至少 1 条 NMEA,并且至少发现 1 颗卫星或已取得有效定位。经纬度、定位精度、TTFF 和 1PPS 不参与判定。
GNSS 的基础硬件判定门槛为:GNSS 成功打开并累计收到至少 5 条 NMEA。卫星数、定位状态、经纬度、定位精度、TTFF 和 1PPS 只用于日志观察,不参与产线判定,因此可以在室内完成基础数据链路测试;天线和实际搜星能力需要另行室外抽检。
指示灯状态:普通流程长亮,Loopback 慢闪,NFC 快闪,GNSS 为呼吸灯。如果设备运行时无法启用 PWM,GNSS 会自动改为“双短闪 + 长灭”。GNSS 未通过时会无限等待并持续呼吸;通过后才播放关机音并自动关机。
+7 -7
View File
@@ -87,7 +87,7 @@ class FactoryHostTests(unittest.TestCase):
start = parse_ft1_line(
'FT1 {"v":2,"type":"session_start","seq":1,"session":"BOOT-1",'
'"uptime_ms":2050,"imei":"860123456789012","iccid":"","nfc_uid":"",'
'"fw":"FACTORY_TEST_1.1.0","start_time":null}'
'"fw":"FACTORY_TEST_1.1.1","start_time":null}'
)
session.apply(start)
result = parse_ft1_line(
@@ -114,14 +114,14 @@ class FactoryHostTests(unittest.TestCase):
def test_ft1_control_messages(self):
ready = parse_ft1_line(
'FT1 {"v":2,"type":"device_ready","seq":1,"session":"BOOT-1",'
'"uptime_ms":100,"fw":"FACTORY_TEST_1.1.0"}'
'"uptime_ms":100,"fw":"FACTORY_TEST_1.1.1"}'
)
ack = parse_ft1_line(
'FT1 {"v":2,"type":"command_ack","seq":2,"session":"BOOT-1",'
'"uptime_ms":120,"command":"START","accepted":true}'
)
session = FT1Session()
self.assertEqual(session.apply(ready), "设备已识别 FACTORY_TEST_1.1.0")
self.assertEqual(session.apply(ready), "设备已识别 FACTORY_TEST_1.1.1")
self.assertEqual(session.apply(ack), "START 已确认")
self.assertTrue(session.device_ready_seen)
self.assertTrue(session.start_ack_seen)
@@ -150,14 +150,14 @@ class FactoryHostTests(unittest.TestCase):
'FT1 {"v":2,"type":"node_result","seq":9,"session":"BOOT-1",'
'"uptime_ms":30600,"imei":"860123456789012","iccid":"8986000000000000000",'
'"nfc_uid":"04A1B2C3D4E5F6","node":6,"name":"GNSS","result":"PASS",'
'"code":0,"elapsed_ms":800,"data":{"open_ret":0,"nmea_count":1,'
'"sat_count":1,"fix_status":0,"search_ms":28500,'
'"required_nmea_count":1,"required_sat_count":1}}'
'"code":0,"elapsed_ms":800,"data":{"open_ret":0,"nmea_count":5,'
'"sat_count":0,"fix_status":0,"search_ms":28500,'
'"required_nmea_count":5,"required_sat_count":0}}'
)
session = FT1Session()
session.apply(message)
self.assertEqual(session.nodes["GNSS"], "PASS")
self.assertEqual(session.node_details["GNSS"]["data"]["sat_count"], 1)
self.assertEqual(session.node_details["GNSS"]["data"]["sat_count"], 0)
if __name__ == "__main__":