mipi payload 轉 frame

這幾天在調試camera,sensor 出圖懷疑有問題,請硬件同事用示波器抓去一些sensor端輸出的數據–Payload,由於示波器抓的mipi數據保存成csv表格,pyaload數據是字符串形式16進制數據,遂寫了python腳本將其轉換成2進制frame bin文件,分析圖像數據,話不多說,上代碼:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os, sys, getopt
import string

'''
Usage: phyon3 mipiPayload2frame.py -i <inputfile> -o <outputfile>
'''

def mipiPayload2frame(inputfile, outputfile):
    str_f = open(inputfile, 'r')
    c = str_f.readline()
    str_f.close()
    c.strip('\n')
    c=c.replace(' ', '')
    bytes_num = int(len(c)/2)
    #print("bytes num: ", bytes_num)
    #print(c)
    tmp_list = []
    i = 0
    for i in range(0, bytes_num):
        chs = c[2*i : 2*i + 2]
        num = int(chs, 16)
        tmp_list.append(num)
    out_bytes = bytes(tmp_list) # convert list to bytes array
    out_file = open(outputfile, "wb") # create outputfile
    out_file.write(out_bytes)
    out_file.close()

def main(argv):
    inputfile = ''
    outputfile = ''
    try:
        opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
    except getopt.GetoptError:
        print('Usage: '+ sys.argv[0] + ' -i <inputfile> -o <outputfile>')
        sys.exit(2)
    for opt, arg in opts:
        if opt == '-h':
            print('Usage: '+ sys.argv[0] + ' -i <inputfile> -o <outputfile>')
            sys.exit()
        elif opt in ("-i", "--ifile"):
            inputfile = arg
        elif opt in ("-o", "--ofile"):
            outputfile = arg
    print('inputfile    : ', inputfile)
    print('outputfile   : ', outputfile)
    mipiPayload2frame(inputfile, outputfile)

if __name__ == "__main__":
   main(sys.argv[1:])

Ref:
https://blog.csdn.net/zhixiang8869/article/details/80492464
https://www.runoob.com/python/python-command-line-arguments.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章