爱意满满的作品展示区。
coolfan

没用的玩具:在安卓设备上查看来自卫星授时的结果

  •  
  •   coolfan · Jul 28, 2024 · 2986 views
    This topic created in 652 days ago, the information mentioned may be changed or developed.

    之前一直好奇设备和设备之间的时间是怎么同步的,查了一些资料后发现只是几个简单的网络请求就可以了。

    意外想起来 GPS 接收器会涉及到高精度的时间用来产生位置信息。手边的手机不就是一个 GPS 接收器吗?

    查了一些资料,发现安卓允许应用访问 GNSS (泛指所有的卫星导航系统,GPS 、北斗、伽利略等)的原始测量值,这是不是就可能可以用手机展示来自卫星的授时结果了。

    TimeIs

    截图

    介绍

    仅支持 Android 。

    由 Flutter 编写的一个简单的显示当前时间和日期的应用。时间是从 GNSS 服务获取,来自于卫星数据。

    当前时间

    实时显示当前时间。

    上次获取到的世界协调时

    来自卫星的数据是不连续的,此处展示的是上次获取的时间转换为世界协调时间的结果。

    ⚠️注意⚠️

    坦率地说,这个东西没有什么用,因为它得到的时间在不同设备上总是有几十毫秒的偏差,我也不知道为什么。🤣如果你能接收这个级别的误差,我想它是为数不多的能够提供卫星授时的程序。

    https://github.com/Coooolfan/TimeIs

    也可以直接从 https://github.com/Coooolfan/TimeIs/releases/tag/v0.1.0-beta 下载打包好的 apk 程序

    12 replies    2024-07-29 10:06:01 +08:00
    yyzh
        1
    yyzh  
       Jul 28, 2024 via Android
    额.手机不是都从基站接收的时间数据么?
    Greatshu
        2
    Greatshu  
       Jul 28, 2024
    cellular-z 可以查看 NMEA 日志
    hhacker
        3
    hhacker  
       Jul 28, 2024
    卫星是原子钟时间, 你手机收到数据的时候, 时间已经过去了
    xinyana
        4
    xinyana  
       Jul 28, 2024 via Android
    你别说你做的这小玩意儿还挺有意思
    wy315700
        5
    wy315700  
       Jul 28, 2024 via Android
    卫星授时我记得不能直接用卫星发送的时间

    而是要扣掉卫星到设备的距离传输的时间
    wy315700
        6
    wy315700  
       Jul 28, 2024 via Android
    GPS 轨道高度 20183km 左右,算算电磁波传输的速度,刚好是几十 ms 的偏差
    coolfan
        7
    coolfan  
    OP
       Jul 28, 2024
    @yyzh 现在的手机基本都是从基站和网络。其实基站还能提供卫星的星历,加快搜星和定位
    winglight2016
        8
    winglight2016  
       Jul 28, 2024
    几十毫秒的偏差——这就是 GPS 定位原理呀,三个卫星到你手机的时差可以算出卫星和你的距离,然后就能定位经纬度了,甚至包括海拔。
    coolfan
        9
    coolfan  
    OP
       Jul 28, 2024
    @hhacker
    @wy315700 #5
    其实开发文档里直接给了计算公式。https://developer.android.com/reference/android/location/GnssClock?hl=en#getFullBiasNanos()
    这个值不是卫星直接的时间戳,也是经过 GPS 芯片处理后的值😗我想这种误差应该已经被纠正了吧
    fugu37
        11
    fugu37  
       Jul 29, 2024   ❤️ 1
    不清楚 Android 如何处理 GNSS ,只说 GNSS 模块。

    GNSS 模块本身需要接受到多颗卫星信号 + 一定时间解算才能得到准确的时间,手机上 GNSS 很少长时间开启。

    另一方面,GNSS 的模块输出分为两部分:1. 串口输出 NMEA 数据 2. GPIO 引脚输出 1pps 数据。只有后者是准确的时间,前者的准确度未必比得上 NTP 。
    Tsing2
        12
    Tsing2  
       Jul 29, 2024   ❤️ 2
    你要说没用吧,理论确实,GPS 不太可靠,我还记得 20 年前 GPS 发生过一次授时错误,造成全球 CDMA 网络(包括当时的中国电信)瘫痪的事故,相比之下,随便哪个 NTP 都要比这靠谱。
    但这个确实好玩,哈哈哈哈,极客追求的都是这种没啥用但具有成就感的东西,记得《生活大爆炸》里有个桥段,极客男主们通过网络遥控电器,Penny 来了句“你知道你们可以从 Radio Shack 买个通用遥控,那个非常便宜”。极客们的浪漫,麻瓜们很难懂的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1012 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 22:19 · PVG 06:19 · LAX 15:19 · JFK 18:19
    ♥ Do have faith in what you're doing.