kengwang / EarthQuakeWarning

[非官方] 基于 C# / WPF 的 地震预警 软件
GNU General Public License v3.0
52 stars 9 forks source link

允许通过硬件设备获得时间与位置 #10

Closed Initial-heart-1 closed 1 year ago

Initial-heart-1 commented 1 year ago

在现代的大多数移动式设备上,通常存在嵌入式的 GNSS 信号接收装置以及相应的 API 供开发者调用。虽然我没有了解,但在常用的 BDS 与 GPS 等 GNSS 上,通常报文包含现在的 UTC 时间(以 BDS 为例,见 此处 5.3.2.2),通用的接收装置不应该会丢弃被写入相应系统性能规范的数据,故应该可以取得它。 当然,可能使用的设备不存在嵌入式的 GNSS 信号接收装置,那么或许可以提供接口传入 NMEA-0183 格式的报文以便有需求的用户自行通过外置的 GNSS 信号接收装置取得位置和时间供本程序使用。当然,这样的外置装置通常通过 TTL 传回数据,所以或许可以直接读取串口返回来得到 NMEA-0183 格式报文以便用户使用。另外,如果有能力,多数这样的外置装置提供脉冲以获得更高精确度,或许可以设计一个配套的外置硬件解析它以获得更高精确度。 关于这个,只是提出一个设想,我自己没有任何相关的开发经验。看有没有佬能填掉这个坑了(

Raspberry-Monster commented 1 year ago

Coming Next (Probably) IMG_20230808_161658

Initial-heart-1 commented 1 year ago

JD上边甚至更便宜( 查了下貌似是 GPS 单模,对于本项目可能不是最优选,毕竟 CN,肯定首选 BDS 大概也能用(

Raspberry-Monster commented 1 year ago

逻辑差不多OK了 但是因为我已经写了NTP时间 所以我打算GPS仅用作定位用

Initial-heart-1 commented 1 year ago

NTP 精度差异还是有的,除非用 Windows Time 的高精度对齐,不过那样对于移动设备来说多少就有点不友好,可能的话还是支持一下卫星时间,主要也不咋麻烦,都跟定位一起写进报文的

Message ID: @.***>

Raspberry-Monster commented 1 year ago

3310b9700ab8dca7

Raspberry-Monster commented 1 year ago

主要是因为我当时写NTP对时时候没写好,将offset和ntp绑定了 听我狡辩: 因为GPS设备不会长时间连接至设备,然后NTP和GPS同时启用容易产生GPS获取到了时间之后NTP改回去的情况 延迟方面我使用的是cn.ntp.org.cn 应该还好

Initial-heart-1 commented 1 year ago

狡辩什么,GPS和NTP互斥就好了,GPS优先( 硬要用NTP也应该用国家源吧,ntp.ntsc.ac.cn 建议还是要实现,虽然在WindowsTime的高精度条件下NTP跟GPS是个位数ms之差,对于项目而言够用 但是那是高精度条件下啊,有更高精度更可靠的GPS不用用NTP是吧( (使用PPS对时随便来一个GPS模块都是ns级的授时精度,就算是串口也是比NTP可靠的,GPS可以长时连接这个问题不大,功耗又不大顶多占个接口,静态偏移对于此项目所需精度完全可以接受)

Message ID: @.***>

Raspberry-Monster commented 1 year ago

狡辩什么,GPS和NTP互斥就好了,GPS优先( 硬要用NTP也应该用国家源吧,ntp.ntsc.ac.cn 建议还是要实现,虽然在WindowsTime的高精度条件下NTP跟GPS是个位数ms之差,对于项目而言够用 但是那是高精度条件下啊,有更高精度更可靠的GPS不用用NTP是吧( (使用PPS对时随便来一个GPS模块都是ns级的授时精度,就算是串口也是比NTP可靠的,GPS可以长时连接这个问题不大,功耗又不大顶多占个接口,静态偏移对于此项目所需精度完全可以接受) Message ID: @.***>

国家源在我这里无法进行测试,连不上,之前电脑时间不对才发现(广东联通) 你这么一讲也算在理,我看看有没有实现的方法 另:ntp服务器设置是可以自己改的

Initial-heart-1 commented 1 year ago

不应该,ntsc的ntp连通性很好的,全国肯定没问题,怀疑是配置问题我总是会在第一次尝试配置的时候提示一个失败,但保存配置又提示对时成功,再手动对时也成功

Raspberry-Monster commented 1 year ago

不应该,ntsc的ntp连通性很好的,全国肯定没问题,怀疑是配置问题我总是会在第一次尝试配置的时候提示一个失败,但保存配置又提示对时成功,再手动对时也成功

我突然发现一个问题 就是串口设备重新启动电脑之后是没有办法去识别的 例子:我可以用一些usb 设备的flag去确定说这个usb有GPS功能 但是串口不行 如果那玩意一直也在发信息的话,那可能会导致错乱 考虑到这个应用会常驻后台

我个人觉得目前来看时间的最优解还是ntp

Initial-heart-1 commented 1 year ago

串口设备一般用户不会有很多的,自动尝试接收直到拿到NMEA报文就好了吧

Raspberry-Monster commented 1 year ago

串口设备一般用户不会有很多的,自动尝试接收直到拿到NMEA报文就好了吧

要不我们加个QQ 2194512339

kengwang commented 1 year ago

此问题是否已经完成? 如果此问题在 3 日内无回复将会被自动关闭.

Raspberry-Monster commented 1 year ago

已经完成,现在可以close了