import isystem.connect as ic
import sys
NM_BYTES = 4
MEM_AREA = 0
HEX_ADDR = 0x400001a8
SAMPLING_RATE_1 = ic.CDAQController.daqSample1s
VAR_NAME = "main_loop_counter"
SAMPLING_RATE_2 = ic.CDAQController.daqSampleMax
if __name__ == '__main__':
winidea_id = ''
cmgr = ic.ConnectionMgr()
cmgr.connect(ic.CConnectionConfig().instanceId(winidea_id))
debug_facade = ic.CDebugFacade(cmgr)
sess_ctrl: ic.CSessionCtrl = ic.CSessionCtrl(cmgr)
sess_ctrl.begin_program()
debug_facade.deleteAll()
debug_facade.runUntilFunction('main')
debug_facade.waitUntilStopped()
debug_facade.run()
daqCtrl = ic.CDAQController(cmgr)
daqInfo = daqCtrl.info()
if daqInfo.getMaxItems() == 0:
print('No DAQ items exist!')
sys.exit()
print('MaxItems = ', daqInfo.getMaxItems())
daqVariables = ic.DAQConfigVector()
daqVariables.append(ic.CDAQConfigItem(NM_BYTES, MEM_AREA, HEX_ADDR, SAMPLING_RATE_1))
daqVariables.append(ic.CDAQConfigItem(VAR_NAME, SAMPLING_RATE_2))
daqCtrl.configure(daqVariables)
daqTimeStart = daqCtrl.status().getTime()
daqCtrl.enableGlobal(True)
counter = 0
while True:
daqStatus = daqCtrl.status()
if daqStatus.getNumSamplesAvailable() > 0:
print('Max DAQ acquisition time = ', str(daqStatus.getLastLoopTime()))
if daqStatus.getOverflow():
print('SAMPLING OVERFLOW!')
daqSamples = ic.DAQSampleVector()
daqCtrl.read(daqSamples)
print('Number of samples = ', str(daqSamples.size()))
for daqSample in daqSamples:
print(' index =', str(daqSample.getIndex()),
' data =', hex(daqCtrl.getDataValue(daqSample).getLong()),
' time =', str((daqSample.getTime() - daqTimeStart)))
counter += 1
if counter > 100:
break