Jungfrautrigger (#516)

* jungfrau trigger added
* added blocking trigger
This commit is contained in:
Dhanya Thattil
2022-08-16 09:41:47 +02:00
committed by GitHub
parent 1bc4994be6
commit 01696ca89b
11 changed files with 89 additions and 58 deletions

View File

@ -218,6 +218,8 @@
#define CONTROL_START_ACQ_MSK (0x00000001 << CONTROL_START_ACQ_OFST)
#define CONTROL_STOP_ACQ_OFST (1)
#define CONTROL_STOP_ACQ_MSK (0x00000001 << CONTROL_STOP_ACQ_OFST)
#define CONTROL_SOFTWARE_TRIGGER_OFST (2)
#define CONTROL_SOFTWARE_TRIGGER_MSK (0x00000001 << CONTROL_SOFTWARE_TRIGGER_OFST)
#define CONTROL_CORE_RST_OFST (10)
#define CONTROL_CORE_RST_MSK (0x00000001 << CONTROL_CORE_RST_OFST)
#define CONTROL_PERIPHERAL_RST_OFST (11) // DDR3 HMem Ctrlr, GBE, Temp

View File

@ -2686,6 +2686,33 @@ int stopStateMachine() {
return OK;
}
int softwareTrigger(int block) {
#ifndef VIRTUAL
// ready for trigger
if (getRunStatus() != WAITING) {
LOG(logWARNING, ("Not yet ready for trigger!\n"));
return 0;
}
#endif
LOG(logINFO, ("Sending Software Trigger\n"));
bus_w(CONTROL_REG, bus_r(CONTROL_REG) | CONTROL_SOFTWARE_TRIGGER_MSK);
#ifndef VIRTUAL
// block till frame is sent out
if (block) {
enum runStatus s = getRunStatus();
while (s == RUNNING || s == TRANSMITTING) {
usleep(5000);
s = getRunStatus();
}
}
LOG(logINFO, ("Ready for Next Trigger...\n"));
#endif
return OK;
}
enum runStatus getRunStatus() {
LOG(logDEBUG1, ("Getting status\n"));
// scan error or running