从 FM1100 记录中提取时间戳
Extract timestamp from FM1100 record
我正在尝试从 FM1100 teltonika 记录中解码一些数据,例如:
080400000113fc208dff000f14f650209cca80006f00d60400040004030101150316030001460000015d0000000113fc17610b000f14ffe0209cc580006e00c00500010004030101150316010001460000015e0000000113fc284945000f150f00209cd200009501080400000004030101150016030001460000015d0000000113fc267c5b000f150a50209cccc0009300680400000004030101150016030001460000015b0004
在上面的例子中我实际上只是想提取日志的时间戳。这个时间戳是字符串“00000113fc208dff”。
如何将此字符串转换为时间戳?
根据协议文档,我 found here 该记录实际上包含多个日志条目(第 5 页),每个条目都有自己的时间戳。
假设您只需要第一个日志条目的时间戳,您可以像这样提取它 (fiddle here):
$input = '080400000113fc208dff000f14f650209cca80006f00d60400040004030101150316030001460000015d0000000113fc17610b000f14ffe0209cc580006e00c00500010004030101150316010001460000015e0000000113fc284945000f150f00209cd200009501080400000004030101150016030001460000015d0000000113fc267c5b000f150a50209cccc0009300680400000004030101150016030001460000015b0004';
$data = unpack('A2/A2/A16timestamp', $input);
$timestamp = hexdec($data['timestamp']);
echo $timestamp . PHP_EOL;
如果您需要读取每条日志记录的时间戳,您需要为每条日志解析 IO 元素数据,因为它的长度是可变的。
我正在尝试从 FM1100 teltonika 记录中解码一些数据,例如:
080400000113fc208dff000f14f650209cca80006f00d60400040004030101150316030001460000015d0000000113fc17610b000f14ffe0209cc580006e00c00500010004030101150316010001460000015e0000000113fc284945000f150f00209cd200009501080400000004030101150016030001460000015d0000000113fc267c5b000f150a50209cccc0009300680400000004030101150016030001460000015b0004
在上面的例子中我实际上只是想提取日志的时间戳。这个时间戳是字符串“00000113fc208dff”。
如何将此字符串转换为时间戳?
根据协议文档,我 found here 该记录实际上包含多个日志条目(第 5 页),每个条目都有自己的时间戳。
假设您只需要第一个日志条目的时间戳,您可以像这样提取它 (fiddle here):
$input = '080400000113fc208dff000f14f650209cca80006f00d60400040004030101150316030001460000015d0000000113fc17610b000f14ffe0209cc580006e00c00500010004030101150316010001460000015e0000000113fc284945000f150f00209cd200009501080400000004030101150016030001460000015d0000000113fc267c5b000f150a50209cccc0009300680400000004030101150016030001460000015b0004';
$data = unpack('A2/A2/A16timestamp', $input);
$timestamp = hexdec($data['timestamp']);
echo $timestamp . PHP_EOL;
如果您需要读取每条日志记录的时间戳,您需要为每条日志解析 IO 元素数据,因为它的长度是可变的。