2012-12-31 34 views
2

外部設備定期向我發送我無法翻譯的時間戳。具有以下格式:未知的時間戳格式

31.12.2012 12:00:00 = 3B 3E C0 00 

31.12.2012 12:00:01 = 3B 3E C0 01 

31.12.2012 12:00:10 = 3B 3E C0 0A 

31.12.2012 12:01:00 = 3B 3E C0 40 

31.12.2012 13:00:00 = 3B 3E D0 00 

31.12.2012 12:30:00 - 3B 3E C7 80 

31.12.2012 12:30:59 - 3B 3E C7 BB 

31.12.2012 12:44:59 - 3B 3E CB 3B 

31.12.2012 12:45:00 - 3B 3E CB 40 

31.13.2013 12:30:00 - 3F 3E C7 80 

我不知道這個時間戳是如何編碼的,它不是普通的unix時間戳。它看起來像LSB包含秒,但它並不總是這樣(與12:00:10比較)。 有沒有人有一個想法如何解決這個問題?

+0

: - 請看看這個鏈接http://stackoverflow.com/questions/6012663/get-unix-timestamp-with-c 。我不知道,但這可能會幫助你 –

回答

4

我不明白是什麼奇怪有關12時零零分10秒例如,等於的0x0A 10 12:01:00一個雖然看起來有點怪異:

12:01:00 3B 3E C0 40

在二進制中的40是0100 0000 - 我的猜測是最後6位是秒,這足以容納0-59。

確保您必須提供不同分鐘值的數據。

日期也似乎被存儲在字節部分:

31二進制​​ 12個二進制是1100

尋找在附加數據,我的最好的猜測是:

3B 3E C0 40 = 
0011 1011 0011 1110 1100 0000 1000 0000 
yyyy yyMM MMdd dddh hhhh mmmm mmss ssss 

001110(其餘位)應該是年份,但是該值是十進制的14。最好等到明天,所以你有2013年的數據:-)

+0

謝謝,這是一個很好的提示......看起來你是對的,這裏有一些更多的數據: 31.12.2012 - 12:30:00 - 3B 3E C7 80 31.12.2012 - 12:30:59 - 3B 3E C7 BB 31.12.2012 - 12:44:59 - 3B 3E CB 3B 31.12.2012 - 12:45:00 - 3B 3E CB 40 – lenniep

+0

我冒昧地將這些添加到您的原始帖子中。 –

+0

他們都似乎匹配,我已經更新了我的答案,只剩下年份值。 –