
# daqHardReset          
# daqSoftReset          
# daqRefreshState       
# daqSetDefaults        
# daqLoadSettings       file
# daqSaveSettings       file
# daqOpenData           file
# daqCloseData          
# daqSetRunParameters   rate count
# daqSetRunState        state
# daqGetRunState        
# daqResetCounters      
# daqSendCommand        command
# daqReadStatus         
# daqGetStatus          
# daqReadConfig         
# daqVerifyConfig       
# daqSetConfig          variable arg
# daqGetConfig          variable
# daqGetSystemStatus    
# daqGetUserStatus      
# daqGetError           
# daqSendXml            xml_string
# daqDisableTimeout
# daqOpen               system id

import pythonDaq
import time
import os

pythonDaq.daqOpen("hps",1);


print("Starting Calibration ... ");

pythonDaq.daqHardReset();
pythonDaq.daqLoadSettings('/u1/software/daq/config/devboard.xml');
pythonDaq.daqSetConfig("cntrlFpga:AdcClkInvert", "False");
pythonDaq.daqSoftReset();
# Run baseline and calibrations
pythonDaq.daqSetRunParameters("1000Hz",1000);


#--- These parameters should be changed to reflect the run ---//
test_struc   = "hybrid_t"; # module, hybrid_t, hybrid
test_struc_n = "5"     ;   # 
test_run_n   = "2"     ;   # Run #
#-------------------------------------------------------------//

if (test_struc == "hybrid_t"):
	if (test_struc < 10):
		test_struc = test_struc + "0" + test_struc_n;
	else:
		test_struc = test_struc + test_struc_n;

	data_path = 'data/' + test_struc + '/run' + test_run_n + '/t0/';
else:
	data_path = 'data/' + test_struc + '_' + test_struc_n + '/run' + test_run_n + '/t0/';

os.system('mkdir -p '+data_path);

for group in range (0,8):
	for delay in range (0,9):
		pythonDaq.daqSetConfig("cntrlFpga:hybrid:apv25:CalibInhibit","False");
		pythonDaq.daqSetConfig("cntrlFpga:ApvTrigType", "DoubleCalib" );
		pythonDaq.daqSetConfig("cntrlFpga:hybrid:apv25:CalGroup",str(group));
		pythonDaq.daqSetConfig("cntrlFpga:hybrid:apv25:Csel","Dly_"+str(delay)+"x3_125ns");
		file_path = data_path + test_struc + '_cal' + str(group) + "_" + str(delay) + "x3_125ns.bin";
		print("Running calibration group " + str(group) + " at delay " + str(delay));

		os.system('rm -f '+file_path);
		pythonDaq.daqSetConfig('DataFile',file_path);
		pythonDaq.daqSendCommand('OpenDataFile','');
		pythonDaq.daqSetRunState('Running');
		while pythonDaq.daqGetRunState() == "Running":
			time.sleep(1);
			print("running");

		pythonDaq.daqCloseData();
		print("done");

print("script done");

