· 

PythonでSPIを解析

PythonでSPIのデジタル波形からデータを取り出します。自宅のロジアナZEROPLUS LAP-C16032改だとやってくれるので正直要らなそうですが、一部のオシロスコープではSPIが解析できるものでも解析結果は保存してくれなかったり、波形とデータをうまいこと表示したかったり、まぁ、色々あります。ので、SPIの波形からデータを取り出せればいいことあるかも。

ということで、以前SparkFun SAMD21 Mini BreakoutでILI9341を制御したときのSPI通信を解析してみます。SPI通信がめちゃくちゃ長いのでHelloWorldを表示している部分だけにしてやります。

こんなんです。12Mbpsなので、(1/24M)s周期でSCKが変化するので50MHzでサンプリングしています。

まぁ、バス設定をすればちゃんと解析してくれるんですけどね、、、

で、保存した波形はLAP-Cだとこんな感じになります。(WSLのVSCodeでやっているのでnkf -w Wave.txt > Wave_utf-8.txtってやって漢字コードをsjisからutf-8に変換しています)

取り込みデータの表示

------------------------------------------------------------------------------------------------

ヘキサデシマル

A Bar position: -504.12us T Bar position: 0ns B Bar position: 2.58us

//Channel name:         | MOSI                  *SCLK *SS *DATA | MISO                  *SCLK *SS *DATA

-524.28us               | Unknown               0 1 1 | Unknown               0 1 0

-524.26us               | Unknown               0 1 1 | Unknown               0 1 0

-524.24us               | Unknown               0 1 1 | Unknown               0 1 0

-524.22us               | Unknown               0 1 1 | Unknown               0 1 0

-524.2us                | Unknown               0 1 1 | Unknown               0 1 0

-524.18us               | Unknown               0 1 1 | Unknown               0 1 0

-524.16us               | Unknown               0 1 1 | Unknown               0 1 0

-524.14us               | Unknown               0 1 1 | Unknown               0 1 0

-524.12us               | Unknown               0 1 1 | Unknown               0 1 0

-524.1us                | Unknown               0 1 1 | Unknown               0 1 0

-524.08us               | Unknown               0 1 1 | Unknown               0 1 0

-524.06us               | Unknown               0 1 1 | Unknown               0 1 0

-524.04us               | Unknown               0 1 1 | Unknown               0 1 0

-524.02us               | Unknown               0 1 1 | Unknown               0 1 0

-524us                  | Unknown               0 1 1 | Unknown               0 1 0

保存データの形式はオシロやロジアナによって違うので、この辺は臨機応変にやらんといかんです。横河ならwdfとかで保存できるので、wdfを何とか解析せんといかんし、Tektroなら(職場がUSBを使っちゃいけない業種の場合は)オシロからデータを取り出すスクリプトを書くところからってなる。ということで、臨機応変に。

今回、LAP-Cで保存したtxtデータを1行ずつ読み込んで、トークンで分解して、データを取り出します。分解後できるリストで何番目のデータがどの信号に該当するかはデバッグモードで分解後のリストを表示して判断しています(数えればわかるだろ、、、っていう説もあります)。

では、一気にやっつけます。(それなりにコメントも書いているので赦してください)

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3.  
  4. #LAP-Cで保存したtxtを読み込む
  5. def Read_LAP_C_file(fn):
  6.     #とりあえずList型で取り込む(numpy.ndarray型でappendすると毎回メモリ再確保して遅くなるので)
  7.     t_list=[]
  8.     SCK_list=[]
  9.     CS_list=[]
  10.     MOSI_list=[]
  11.     MISO_list=[]
  12.  
  13.     with open(fn) as f:
  14.         #1行ずつ読み出し
  15.         for s_line in f:
  16.             #とりあえず分解
  17.             s_line_tok=s_line.split()
  18.             effective_line=0
  19.             #時間を示すワードかどうかを判定(雑、、、もっといい手はないのか、、、)
  20.             if 'us' in s_line_tok[0]:
  21.                 effective_line=1
  22.                 t_read=float(s_line_tok[0].replace('us',''))*1e-6
  23.             elif 'ms' in s_line_tok[0]:
  24.                 effective_line=1
  25.                 t_read=float(s_line_tok[0].replace('ms',''))*1e-3
  26.             if effective_line==1:
  27.                 SCK_read=int(s_line_tok[3])
  28.                 CS_read=int(s_line_tok[4])
  29.                 MOSI_read=int(s_line_tok[5])
  30.                 MISO_read=int(s_line_tok[10])
  31.                 t_list.append(t_read)
  32.                 SCK_list.append(SCK_read)
  33.                 CS_list.append(CS_read)
  34.                 MOSI_list.append(MOSI_read)
  35.                 MISO_list.append(MISO_read)
  36.     #List型をnumpy.ndarray型に変換する
  37.     t_array=np.array(t_list)
  38.     SCK_array=np.array(SCK_list)
  39.     CS_array=np.array(CS_list)
  40.     MOSI_array=np.array(MOSI_list)
  41.     MISO_array=np.array(MISO_list)
  42.  
  43.     #2値化
  44.     SCK_array=np.where(SCK_array>0,1,0)
  45.     CS_array=np.where(CS_array>0,1,0)
  46.     MOSI_array=np.where(MOSI_array>0,1,0)
  47.     MISO_array=np.where(MISO_array>0,1,0)
  48.  
  49.     return len(t_list),t_array,SCK_array,CS_array,MOSI_array,MISO_array
  50.  
  51. #引数data(ndarray)の立上り立下りエッジのndarrayのインデックスを取得する
  52. def detect_edges(data):
  53.     data_0=np.append(data,0)
  54.     data_1=np.append(0,data)
  55.     data_d=data_0-data_1
  56.     posedges_index=(np.where(data_d>0))[0]
  57.     negedges_index=(np.where(data_d<0))[0]
  58.     return posedges_index,negedges_index
  59.  
  60. def main():
  61.     nop,t,SCK,CS,MOSI,MISO=Read_LAP_C_file('Wave_utf-8.txt')
  62.     f_sampling=1/(np.mean(np.diff(t)))
  63.     CS_posedges_index,CS_negedges_index=detect_edges(CS)
  64.     #CSの立下りを起点に解析する
  65.     for CS_negedge_index in CS_negedges_index:
  66.             #CS立下り以降のCS立ち上がりのインデックスを調べる
  67.             CS_posedges_index_following=(np.where(CS_posedges_index>CS_negedge_index))[0]
  68.             #CS立ち上がりがある場合
  69.             if len(CS_posedges_index_following)>0:
  70.                 #直近のCS立ち上がりのインデックスを取得
  71.                 CS_posedge_index=CS_posedges_index[CS_posedges_index_following[0]]
  72.                 #CS立下りから立上りまでのデータを切り出す
  73.                 t_part=t[CS_negedge_index:CS_posedge_index]
  74.                 SCK_part=SCK[CS_negedge_index:CS_posedge_index]
  75.                 #SCKの立上りエッジを取得する(SPIの仕様により立下りを使う場合もある)
  76.                 SCK_posedges_index,_=detect_edges(SCK_part)
  77.                 #SCKの立上りエッジが1つ以上ある場合
  78.                 if len(SCK_posedges_index)>0:
  79.                     #CS立下りから立上りまでのデータを切り出す
  80.                     MOSI_part=MOSI[CS_negedge_index:CS_posedge_index]
  81.                     MISO_part=MISO[CS_negedge_index:CS_posedge_index]
  82.                     #SCKの立上りエッジタイミングのデータを取得
  83.                     MOSI_data=MOSI_part[SCK_posedges_index]
  84.                     MISO_data=MISO_part[SCK_posedges_index]
  85.                     t_readtimings=t_part[SCK_posedges_index]
  86.                     #SCK 8パルスのタイミングを取得してビットレートを算出
  87.                     t_bitlen=np.mean(np.diff(t_readtimings[0:8]))
  88.                     f_bitrate=1/t_bitlen
  89.                     #コンソールに出力
  90.                     print(CS_negedge_index,end='\t')
  91.                     print(CS_posedge_index,end='\t')
  92.                     print(f_bitrate,end='\t')
  93.                     for dout in MOSI_data:
  94.                         print(dout,end='')
  95.                     print('',end='\t')
  96.                     for dout in MISO_data:
  97.                         print(dout,end='')
  98.                     print('',end='\n')
  99.  
  100.     fig=plt.figure()
  101.     fig.add_subplot(3,1,1)
  102.     plt.plot(SCK)
  103.     fig.add_subplot(3,1,2)
  104.     plt.plot(CS)
  105.     fig.add_subplot(3,1,3)
  106.     plt.plot(MOSI)
  107.     plt.show()
  108.  
  109.  
  110. if __name__ == '__main__':
  111.     main()

で、実行すると、0か1かでデータが得られます。LAP-Cのデータと比較すると、、、最初の数バイトはあっているので、多分全部あっているでしょう(雑)。

これをバイトごとにhexで出力するようにするかどうかは、、、考え中。それほど必要性はないような、、、ビット数が8の倍数にならなかったらどうするかとか、1ビットずれてbyteにしちゃう対策をどうするかとか、考えると面倒、、、

root@r822:~/work/vscode-python3/spi_analysis# /usr/bin/python3 /home/hoge/work/vscode-python3/spi_analysis/spi_analysis.py

26165   56137   12068965.51724139       0010101000000000000000000000000000000000001010110000000000000000000000000000000000101100111111111111111100101010000000000000000000000000000000000010101100000000000000010000000000000001001011001111111111111111001010100000000000000000000000000000000000101011000000000000001000000000000000100010110011111111111111110010101000000000000000000000000000000000001010110000000000000011000000000000001100101100111111111111111100101010000000000000000000000000000000000010101100000000000001000000000000000100001011001111111111111111001010100000000000000000000000000000000000101011000000000000010100000000000001010010110011111111111111110010101000000000000000000000000000000000001010110000000000000110000000000000011000101100111111111111111100101010000000000000000100000000000000010010101100000000000000110000000000000011001011001111111111111111001010100000000000000010000000000000001000101011000000000000001100000000000000110010110011111111111111110010101000000000000000110000000000000011001010110000000000000011000000000000001100101100111111111111111100101010000000000000010000000000000001000010101100000000000000000000000000000000001011001111111111111111001010100000000000000100000000000000010000101011000000000000000100000000000000010010110011111111111111110010101000000000000001000000000000000100001010110000000000000010000000000000001000101100111111111111111100101010000000000000010000000000000001000010101100000000000000110000000000000011001011001111111111111111001010100000000000000100000000000000010000101011000000000000010000000000000001000010110011111111111111110010101000000000000001000000000000000100001010110000000000000101000000000000010100101100111111111111111100101010000000000000010000000000000001000010101100000000000001100000000000000110001011001111111111111111    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

56950   81937   12068965.51724086       0010101000000000000001100000000000000110001010110000000000000011000000000000001100101100111111111111111100101010000000000000011000000000000001100010101100000000000001000000000000000100001011001111111111111111001010100000000000000110000000000000011000101011000000000000010100000000000001010010110011111111111111110010101000000000000001110000000000000111001010110000000000000010000000000000001000101100111111111111111100101010000000000000011100000000000001110010101100000000000001000000000000000100001011001111111111111111001010100000000000000111000000000000011100101011000000000000011000000000000001100010110011111111111111110010101000000000000010000000000000001000001010110000000000000010000000000000001000101100111111111111111100101010000000000000100000000000000010000010101100000000000001000000000000000100001011001111111111111111001010100000000000001000000000000000100000101011000000000000011000000000000001100010110011111111111111110010101000000000000010010000000000001001001010110000000000000010000000000000001000101100111111111111111100101010000000000000100100000000000010010010101100000000000001000000000000000100001011001111111111111111001010100000000000001001000000000000100100101011000000000000011000000000000001100010110011111111111111110010101000000000000010100000000000001010001010110000000000000011000000000000001100101100111111111111111100101010000000000000101000000000000010100010101100000000000001000000000000000100001011001111111111111111      0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

82750   101157  11666666.666668491      00101010000000000000110100000000000011010010101100000000000000000000000000000000001011001111111111111111001010100000000000001101000000000000110100101011000000000000011000000000000001100010110011111111111111110010101000000000000011100000000000001110001010110000000000000000000000000000000000101100111111111111111100101010000000000000111000000000000011100010101100000000000000010000000000000001001011001111111111111111001010100000000000001110000000000000111000101011000000000000001000000000000000100010110011111111111111110010101000000000000011100000000000001110001010110000000000000011000000000000001100101100111111111111111100101010000000000000111000000000000011100010101100000000000001000000000000000100001011001111111111111111001010100000000000001110000000000000111000101011000000000000010100000000000001010010110011111111111111110010101000000000000011100000000000001110001010110000000000000110000000000000011000101100111111111111111100101010000000000000111100000000000011110010101100000000000001100000000000000110001011001111111111111111    00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

101971  120198  12068965.51724086       00101010000000000001001100000000000100110010101100000000000000000000000000000000001011001111111111111111001010100000000000010011000000000001001100101011000000000000011000000000000001100010110011111111111111110010101000000000000101000000000000010100001010110000000000000000000000000000000000101100111111111111111100101010000000000001010000000000000101000010101100000000000000010000000000000001001011001111111111111111001010100000000000010100000000000001010000101011000000000000001000000000000000100010110011111111111111110010101000000000000101000000000000010100001010110000000000000011000000000000001100101100111111111111111100101010000000000001010000000000000101000010101100000000000001000000000000000100001011001111111111111111001010100000000000010100000000000001010000101011000000000000010100000000000001010010110011111111111111110010101000000000000101000000000000010100001010110000000000000110000000000000011000101100111111111111111100101010000000000001010100000000000101010010101100000000000001100000000000000110001011001111111111111111    00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

121012  142849  12068965.51724086       001010100000000000011000000000000001100000101011000000000000001100000000000000110010110011111111111111110010101000000000000110000000000000011000001010110000000000000100000000000000010000101100111111111111111100101010000000000001100000000000000110000010101100000000000001010000000000000101001011001111111111111111001010100000000000011001000000000001100100101011000000000000001000000000000000100010110011111111111111110010101000000000000110010000000000011001001010110000000000000110000000000000011000101100111111111111111100101010000000000001101000000000000110100010101100000000000000100000000000000010001011001111111111111111001010100000000000011010000000000001101000101011000000000000011000000000000001100010110011111111111111110010101000000000000110110000000000011011001010110000000000000010000000000000001000101100111111111111111100101010000000000001101100000000000110110010101100000000000001100000000000000110001011001111111111111111001010100000000000011100000000000001110000101011000000000000001100000000000000110010110011111111111111110010101000000000000111000000000000011100001010110000000000000100000000000000010000101100111111111111111100101010000000000001110000000000000111000010101100000000000001010000000000000101001011001111111111111111  000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

146102  176022  12068965.51724086       0010101000000000001001000000000000100100001010110000000000000000000000000000000000101100111111111111111100101010000000000010010000000000001001000010101100000000000000010000000000000001001011001111111111111111001010100000000000100100000000000010010000101011000000000000001000000000000000100010110011111111111111110010101000000000001001000000000000100100001010110000000000000011000000000000001100101100111111111111111100101010000000000010010000000000001001000010101100000000000001000000000000000100001011001111111111111111001010100000000000100100000000000010010000101011000000000000010100000000000001010010110011111111111111110010101000000000001001010000000000100101001010110000000000000110000000000000011000101100111111111111111100101010000000000010011000000000001001100010101100000000000000110000000000000011001011001111111111111111001010100000000000100110000000000010011000101011000000000000010000000000000001000010110011111111111111110010101000000000001001100000000000100110001010110000000000000101000000000000010100101100111111111111111100101010000000000010011100000000001001110010101100000000000001100000000000000110001011001111111111111111001010100000000000101000000000000010100000101011000000000000000000000000000000000010110011111111111111110010101000000000001010000000000000101000001010110000000000000001000000000000000100101100111111111111111100101010000000000010100000000000001010000010101100000000000000100000000000000010001011001111111111111111001010100000000000101000000000000010100000101011000000000000001100000000000000110010110011111111111111110010101000000000001010000000000000101000001010110000000000000100000000000000010000101100111111111111111100101010000000000010100000000000001010000010101100000000000001010000000000000101001011001111111111111111    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

176835  198582  11666666.666668491      001010100000000000101010000000000010101000101011000000000000001100000000000000110010110011111111111111110010101000000000001010100000000000101010001010110000000000000100000000000000010000101100111111111111111100101010000000000010101000000000001010100010101100000000000001010000000000000101001011001111111111111111001010100000000000101011000000000010101100101011000000000000001000000000000000100010110011111111111111110010101000000000001010110000000000101011001010110000000000000110000000000000011000101100111111111111111100101010000000000010110000000000001011000010101100000000000000100000000000000010001011001111111111111111001010100000000000101100000000000010110000101011000000000000011000000000000001100010110011111111111111110010101000000000001011010000000000101101001010110000000000000010000000000000001000101100111111111111111100101010000000000010110100000000001011010010101100000000000001100000000000000110001011001111111111111111001010100000000000101110000000000010111000101011000000000000001100000000000000110010110011111111111111110010101000000000001011100000000000101110001010110000000000000100000000000000010000101100111111111111111100101010000000000010111000000000001011100010101100000000000001010000000000000101001011001111111111111111  000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

199395  215975  11666666.666668491      001010100000000000110000000000000011000000101011000000000000001000000000000000100010110011111111111111110010101000000000001100000000000000110000001010110000000000000011000000000000001100101100111111111111111100101010000000000011000000000000001100000010101100000000000001000000000000000100001011001111111111111111001010100000000000110000000000000011000000101011000000000000010100000000000001010010110011111111111111110010101000000000001100000000000000110000001010110000000000000110000000000000011000101100111111111111111100101010000000000011000100000000001100010010101100000000000000110000000000000011001011001111111111111111001010100000000000110010000000000011001000101011000000000000001000000000000000100010110011111111111111110010101000000000001100110000000000110011001010110000000000000010000000000000001000101100111111111111111100101010000000000011010000000000001101000010101100000000000000110000000000000011001011001111111111111111      000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

216788  235102  12068965.517249886      00101010000000000011011100000000001101110010101100000000000000000000000000000000001011001111111111111111001010100000000000110111000000000011011100101011000000000000011000000000000001100010110011111111111111110010101000000000001110000000000000111000001010110000000000000000000000000000000000101100111111111111111100101010000000000011100000000000001110000010101100000000000000010000000000000001001011001111111111111111001010100000000000111000000000000011100000101011000000000000001000000000000000100010110011111111111111110010101000000000001110000000000000111000001010110000000000000011000000000000001100101100111111111111111100101010000000000011100000000000001110000010101100000000000001000000000000000100001011001111111111111111001010100000000000111000000000000011100000101011000000000000010100000000000001010010110011111111111111110010101000000000001110000000000000111000001010110000000000000110000000000000011000101100111111111111111100101010000000000011100100000000001110010010101100000000000001100000000000000110001011001111111111111111    00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

root@r822:~/work/vscode-python3/spi_analysis#