import isystem.connect as ic
winidea_id = ''
def test_getCPUSFRs():
connMgr = ic.ConnectionMgr()
connMgr.connect(ic.CConnectionConfig().instanceId(winidea_id))
dataCtrl2 = ic.CDataController2(connMgr)
cpuSfrs = dataCtrl2.getCPUSFRs(ic.IConnectEclipse.gcsSFRs)
try:
print(f"CPU name: {cpuSfrs.CPUName()}")
sfrs = cpuSfrs.SFRs()
sfrs: ic.IVectorSFRs
for index in range(1):
sfrGroup = sfrs.at(index)
print(f"SFR group: {sfrGroup.Name()}")
sfrsInGroup = sfrGroup.SFRs()
for gIndex in range(sfrsInGroup.size()):
sfr: ic.ISFR = sfrsInGroup.at(gIndex)
print(f"\tName: {sfr.Name()}")
print(f"\tHas value: {sfr.HasValue()}")
print(f"\tHandle: {sfr.Handle()}")
print(f"\tBit size: {sfr.BitSize()}")
print(f"\tDescription: {sfr.Description()}")
print(f"\tAddress: {sfr.Address()}")
print(f"\tBit offset: {sfr.BitOffset()}")
print(f"\tProperties: {sfr.Properties()}")
bitFields = sfr.SFRs()
for bIndex in range(bitFields.size()):
bitField = bitFields.at(bIndex)
valMaps = bitField.ValueMaps()
valMaps: ic.IVectorValueMap
for vIndex in range(valMaps.size()):
valMap = valMaps.at(vIndex)
valMap: ic.ISFRValueMap
print(f"\t\tString: {valMap.String()}")
print(f"\t\tDescription: {valMap.Description()}")
print(f"\t\tValue: {valMap.Value()}\n")
print()
finally:
dataCtrl2.release(cpuSfrs)
if __name__ == "__main__":
test_getCPUSFRs()