2021-07-21 蓝牙Mesh时间设置

最近研究蓝牙mesh设置时间时发现手机发送的时间戳有点奇怪。

[LIB]:rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0xffff op:0x005c,par_len:10,par:fa 08 84 28 00 00 00 00 00 60

[LIB]:mesh tx NoAck,op:0x5d,src:0x0026,dst:0x0001,par_len:10 par:fa 08 84 28 00 00 00 00 00 60

opcode:0x005c是设置时间指令。

时间戳:fa 08 84 28 00

即0x00288408FA,转10进制,679741690

查阅Mesh文档,发现Mesh的基准时间是从2000年开始的,而unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数。

30年的差距,即946684800秒。

 

 

使用python进行简单的时间戳转换

当前时间戳 1626656370

当前时间UTC+0   2021-07-19 00:59:30

当前时间UTC+8   2021-07-19 08:59:30

将几天前手机发送时间戳转换下:

手机发送时间戳679741690

手机发送时间 UTC+0 2021-07-16 09:08:10

本地时区通过指令的最后一个数据0x60设置,计算方式如下

 (0x60-0x40)*15min = (96-64)*15=480min=8hours

手机发送时间 UTC+8 2021-07-16 17:08:10

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值