利用Python的xlrd和xlwt功能,开发小程序用于实现硬件GPIO译码 工作日志
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用Python的xlrd和xlwt功能,开发小程序用于实现硬件GPIO译码 工作日志相关的知识,希望对你有一定的参考价值。
待完成:
增加CA的位置识别,完成WCDMA、CDMA、GSM 译码动作
02/12 完成输入表格建立,完成译码基本框架
输入逻辑说明:
State 表示 天线的状态,取值0~30
Up/Down 表示 上下天线 取值 0~1 : 0表示上天线 1表示下天线
CA表示线控是GPIO 是单频段线控 还是 CA频段线控 取值 0~3 :0 单频段,3表示4CC
Band 表示 同一个天线状态,最多可以同时支持的频段各数
GPIO表示当前的天线状态读输入GPIO
以LTE为例如下表所示:
实现效果:输出实现代码转换
import sys
import xlrd
import xlwt
# define var
# state_max -Antenna State max Up+Down Antenna
# C1 -Used for cell value transfer
# ca_label -Ca state mark
# nrows,ncols = number of row and col
# GPIO_Input_Value - Input of CrossMipi GPIO_Value
data = xlrd.open_workbook("Crossmipi_Gpio.xlsx")
inputtable = data.sheet_by_name("GPIO_Input_LTE")
wdata=xlwt.Workbook()
woutputtable=wdata.add_sheet(‘GPIO_Output‘)
nrows=inputtable.nrows
ncols=inputtable.ncols
state_max=nrows-2
band_config=[]
i=0
j=0
k=0
m=0
c1=0
gpio_input_value=[0,0,0,0]
# Find differrent band config in the cell
for i in range(state_max):
for j in range(7):
if inputtable.cell_value(i+2,j+3)!=0:
band_config.append([])
band_config[m]=inputtable.cell_value(i+2,j+3)
m=m+1
band_config=list(set(band_config))
for k in range(len(band_config)):
for i in range(state_max):
for j in range(7):
# band_config[k] GPIO_Input value
if inputtable.cell_value(i+2,j+3)==band_config[k]:
for m in range(4):
gpio_input_value[m]=(gpio_input_value[m] or inputtable.cell_value(i+2,m+10))
c1=gpio_input_value[0]*8+gpio_input_value[1]*4+gpio_input_value[2]*2+gpio_input_value[3]
woutputtable.write(k+2,2,band_config[k])
woutputtable.write(k+2,3,c1)
c1=0
gpio_input_value=[0.0,0.0,0.0,0.0]
wdata.save(‘Crossmipi_Output_GPIO.xlsx‘)
以上是关于利用Python的xlrd和xlwt功能,开发小程序用于实现硬件GPIO译码 工作日志的主要内容,如果未能解决你的问题,请参考以下文章
Python安装xlrd和xlwt的步骤以及使用报错的解决方法