我正在解析一个包含寄存器描述信息的文件,并试图围绕这些寄存器描述和位字段构建一个工具,用于读取/写入该设备上的寄存器。我有一个这样的文本文件(这个文件/设备有成千上万个条目/寄存器):
# Note 'Register> 0xXX' - Register Offset Address
Register> 0x00=Configuration ID
15:0=Vendor ID
31:16=Device ID
Register> 0x04=Class Code and Revision ID
0=TMODE
7:1=Revision ID
15:8=Register-Level Programming Interface
23:16=Sub-Class code
32:24=Base Class Code
Register> 0x08 ....
...
我已将此文件解析为一个数据结构,其中包含寄存器地址(例如“0x00”)、寄存器描述(例如“配置ID”)、位字段(例如“15:0”)及其描述(例如“供应商ID”)。你知道吗
我正在构建一个工具,它需要根据寄存器地址访问这些信息,所以我考虑将所有这些寄存器描述打印到一个头文件中,以初始化这样的字典。你知道吗
regDict={}
regBitFieldList=[]
regBitFieldList.append( ('15:0','Vendor ID') )
regBitFieldList.append( ('31:16','Device ID') )
# ex regDict[0x00]=('Configuration ID', [('15:0','Vendor ID'), ('31:16','Device ID')])
regDict[regOffsetAddress]=(regDescription, regBitFieldList)
regBitFieldList=[]
regBitFieldList.append( NEXT REG INFO)
regDict[nextRegAddress]= (nextRegDesc, regBitFieldList)
....
...
我有一个表示设备的类,这样我就可以通过这个类进行读注册、写注册,我想知道我是否要在另一个文件中初始化这个字典,并将数据导入class\u全局变量?(参见下面示例中的变量“myDeviceDictionary”)。你知道吗
即
Class myDevice():
myDeviceDictionary = {} ## Import dictionary initialization to this variable?
__init__(self):
initialize stuff.
writeRegister(regAddress, byteString_4):
Write 32-bits to a register at regAdress from thisDevice
readRegister(regAddress):
Read 32-bits from a register at regAddress from thisDevice
因为您要用头文件的内容初始化类,所以我建议您在构造函数内部进行字典初始化(\uu init\uuuuu)。如果您想支持不同的头文件,那么让构造函数接受一个参数,该参数是指向您要读入的头文件的路径。你知道吗
把字典放在班级级别是可以的,它是班级的一员。你知道吗
编辑并回复OP的评论:
要使用此方法从另一个文件初始化字典,首先
import
类,然后从另一个文件实例化它。你知道吗即,假设另一个文件与位于同一目录中我的设备.py,您可以这样做:
然后在类中定义的构造函数将读取指定的头。你知道吗
相关问题 更多 >
编程相关推荐