讀取採集的特定格式資料

2021-10-09 09:33:43 字數 2102 閱讀 4167

target: arm上實際採集的資料,byte輸出,讀取資料並輸出來;

格式為意義

格式大小

ppdu_id

1個int32

4bmac_id

1個int32

4bmac_addr

1個6位元組 hex

6bdata 1 dim陣列

256長度複數,先實部後虛部都是float16

256x4b

import numpy as np

import binascii

import matplotlib.pyplot as plt

f =open

(r'./phone_2020_08_22__16_26_57.dat'

,'rb'

)buf = f.read(

)#####4b ppduid, 4b mpduid, 6b mac addr, 256*4b data,

x1 = np.frombuffer(buf[0:

4],dtype=np.uint32)

print

(x1)

x2 = np.frombuffer(buf[4:

8],dtype=np.uint32)

print

(x2)

mac0 = np.frombuffer(buf[8:

14],dtype=np.uint8)

mac =

'-'.join(

[np.base_repr(i,16)

if m>

15else

'0'+

str(m)

for i in mac0 ]

)mac_secondway = binascii.hexlify(buf[8:

14]).decode(

'utf-8'

)print

('mac 1st way:'

,type

(mac0[0]

),mac,

'mac second way\n'

, mac_secondway)

dt = np.dtype(np.float16)

dt = dt.newbyteorder(

'<'

)#arm核上所採資料,通常是小端

datacsi = np.frombuffer(buf[14:

14+256*4]

,dtype=dt)

print

('data is :\n'

, datacsi)

plt.figure(

)plt.plot(

range

(len

(datacsi)

),datacsi)

st =14+

256*

4id1 = np.frombuffer(buf[st:st+4]

,dtype=np.uint32)

id2 = np.frombuffer(buf[st+

4:st+8]

,dtype=np.uint32)

mac_raw = np.frombuffer(buf[st+

8:st+14]

,dtype= np.uint8)

mac2 =

[np.base_repr(m,16)

if m>

15else

'0'+

str(m)

for m in mac_raw]

print

('second ppdu is :'

, id1,id2, mac2)

datacsi2 = np.frombuffer(buf[st+

14:st+14+

256*4]

,dtype=dt)

print

('4 of data is:\n'

,datacsi2[0:

4])plt.figure(

)plt.plot(datacsi2[0:

:2],datacsi2[1:

:2],

'b.'

)plt.show(

)

按特定格式讀取字串的資料 sscanf的用法

int sscanf const char buffer,const char format,argument buffer 儲存的資料 format 窗體控制項字串。有關詳細資訊,請參閱 格式規範 argument 可選自變數 locale 要使用的區域設定 sscanf與scanf類似,都是用於...

oracle 生成特定格式uuid

oracle中生成跨系統的唯一識別符uuid非常方便,比生成序列還簡單,直接用sys guid 就行,資料型別是 raw 16 有32個字元。它的生成機制足以保證全球所有系統產生的海量guid重複可能性非常小。這在aixm概念中非常重要。如果要讓返回的uuid滿足標準格式,可利用如下函式實現 cre...

以特定格式拆分日期

1.將給定字串解析成date格式 呼叫 dateformat類的parse 引數是string型別,返回值為date型別。如下 string str1 07月08日1900年 dateformat dateformat new dateformat mm月dd日yyyy年 date date dat...