diff --git a/ADHamaApp/Db/hama.template b/ADHamaApp/Db/hama.template index e099c71..dd64bf5 100644 --- a/ADHamaApp/Db/hama.template +++ b/ADHamaApp/Db/hama.template @@ -798,6 +798,40 @@ record(ai, "$(P)$(R)NumberOfOutputTriggerConnector-R") { ########################################################################## # Output Trigger Source 0 (mode 4) record(mbbo, "$(P)$(R)OutputTriggerSource0-S") { + field(DESC, "") + field(PINI, "YES") + field(DTYP, "asynInt32") + field(ZRVL, "0") + field(ZRST, "Read Out End") + field(ONVL, "1") + field(ONST, "VSync") + field(TWVL, "2") + field(TWST, "HSync") + field(THVL, "3") + field(THST, "Trigger") +# field(DRVL, "2") +# field(DRVH, "6") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_SOURCE0") + field(VAL, "0") +} + +record(mbbi, "$(P)$(R)OutputTriggerSource0-RB") { + field(DESC, "") + field(DTYP, "asynInt32") + field(ZRVL, "0") + field(ZRST, "Read Out End") + field(ONVL, "1") + field(ONST, "VSync") + field(TWVL, "2") + field(THST, "HSync") + field(THVL, "3") + field(THST, "Trigger") + field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_SOURCE0") + field(SCAN, "I/O Intr") +} +########################################################################## +# Output Trigger Source 1 (mode 4) +record(mbbo, "$(P)$(R)OutputTriggerSource1-S") { field(DESC, "") field(PINI, "YES") field(DTYP, "asynInt32") @@ -811,11 +845,11 @@ record(mbbo, "$(P)$(R)OutputTriggerSource0-S") { field(THST, "Trigger") # field(DRVL, "2") # field(DRVH, "6") - field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_SOURCE0") - field(VAL, "2") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_SOURCE1") + field(VAL, "0") } -record(mbbi, "$(P)$(R)OutputTriggerSource0-RB") { +record(mbbi, "$(P)$(R)OutputTriggerSource1-RB") { field(DESC, "") field(DTYP, "asynInt32") field(ZRVL, "2") @@ -826,7 +860,41 @@ record(mbbi, "$(P)$(R)OutputTriggerSource0-RB") { field(THST, "HSync") field(THVL, "6") field(THST, "Trigger") - field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_SOURCE0") + field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_SOURCE1") + field(SCAN, "I/O Intr") +} + +# Output Trigger Source 2 (mode 4) +record(mbbo, "$(P)$(R)OutputTriggerSource2-S") { + field(DESC, "") + field(PINI, "YES") + field(DTYP, "asynInt32") + field(ZRVL, "2") + field(ZRST, "Read Out End") + field(ONVL, "3") + field(ONST, "VSync") + field(TWVL, "4") + field(TWST, "HSync") + field(THVL, "6") + field(THST, "Trigger") +# field(DRVL, "2") +# field(DRVH, "6") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_SOURCE2") + field(VAL, "0") +} + +record(mbbi, "$(P)$(R)OutputTriggerSource2-RB") { + field(DESC, "") + field(DTYP, "asynInt32") + field(ZRVL, "2") + field(ZRST, "Read Out End") + field(ONVL, "3") + field(ONST, "VSync") + field(TWVL, "4") + field(THST, "HSync") + field(THVL, "6") + field(THST, "Trigger") + field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_SOURCE2") field(SCAN, "I/O Intr") } @@ -856,6 +924,59 @@ record(mbbi, "$(P)$(R)OutputTriggerPolarity0-RB") { field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_POLARITY0") field(SCAN, "I/O Intr") } + +# Output Trigger Polarity 1 (mode 2) +record(mbbo, "$(P)$(R)OutputTriggerPolarity1-S") { + field(DESC, "") + field(PINI, "YES") + field(DTYP, "asynInt32") + field(ZRVL, "1") + field(ZRST, "Negative") + field(ONVL, "2") + field(ONST, "Positive") +# field(DRVL, "1") +# field(DRVH, "2") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_POLARITY1") + field(VAL, "1") +} + +record(mbbi, "$(P)$(R)OutputTriggerPolarity1-RB") { + field(DESC, "") + field(DTYP, "asynInt32") + field(ZRVL, "1") + field(ZRST, "Negative") + field(ONVL, "2") + field(ONST, "Positive") + field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_POLARITY1") + field(SCAN, "I/O Intr") +} +# Output Trigger Polarity 2 (mode 2) +record(mbbo, "$(P)$(R)OutputTriggerPolarity2-S") { + field(DESC, "") + field(PINI, "YES") + field(DTYP, "asynInt32") + field(ZRVL, "1") + field(ZRST, "Negative") + field(ONVL, "2") + field(ONST, "Positive") +# field(DRVL, "1") +# field(DRVH, "2") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_POLARITY2") + field(VAL, "1") +} + +record(mbbi, "$(P)$(R)OutputTriggerPolarity2-RB") { + field(DESC, "") + field(DTYP, "asynInt32") + field(ZRVL, "1") + field(ZRST, "Negative") + field(ONVL, "2") + field(ONST, "Positive") + field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_POLARITY2") + field(SCAN, "I/O Intr") +} + + ########################################################################## # Internal Trigger Active (mode 1) record(mbbo, "$(P)$(R)OutputTriggerActive0-S") { @@ -869,7 +990,6 @@ record(mbbo, "$(P)$(R)OutputTriggerActive0-S") { field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_ACTIVE0") field(VAL, "1") } - record(mbbi, "$(P)$(R)OutputTriggerActive0-RB") { field(DESC, "") field(DTYP, "asynInt32") @@ -879,6 +999,49 @@ record(mbbi, "$(P)$(R)OutputTriggerActive0-RB") { field(SCAN, "I/O Intr") } +# Internal Trigger Active (mode 1) +record(mbbo, "$(P)$(R)OutputTriggerActive1-S") { + field(DESC, "") + field(DTYP, "asynInt32") + field(PINI, "YES") + field(ZRVL, "1") + field(ZRST, "Edge") +# field(DRVL, "1") +# field(DRVH, "1") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_ACTIVE1") + field(VAL, "1") +} +record(mbbi, "$(P)$(R)OutputTriggerActive1-RB") { + field(DESC, "") + field(DTYP, "asynInt32") + field(ZRVL, "1") + field(ZRST, "Edge") + field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_ACTIVE1") + field(SCAN, "I/O Intr") +} + +# Internal Trigger Active (mode 1) +record(mbbo, "$(P)$(R)OutputTriggerActive2-S") { + field(DESC, "") + field(DTYP, "asynInt32") + field(PINI, "YES") + field(ZRVL, "1") + field(ZRST, "Edge") +# field(DRVL, "1") +# field(DRVH, "1") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_ACTIVE2") + field(VAL, "1") +} + +record(mbbi, "$(P)$(R)OutputTriggerActive2-RB") { + field(DESC, "") + field(DTYP, "asynInt32") + field(ZRVL, "1") + field(ZRST, "Edge") + field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_ACTIVE2") + field(SCAN, "I/O Intr") +} + ########################################################################## # Output Trigger Delay 0 record(ao, "$(P)$(R)OutputTriggerDelay0-S") { @@ -890,7 +1053,6 @@ record(ao, "$(P)$(R)OutputTriggerDelay0-S") { field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_DELAY0") field(VAL, "0") } - record(ai, "$(P)$(R)OutputTriggerDelay0-RB") { field(DESC, "") field(DTYP, "asynFloat64") @@ -898,6 +1060,41 @@ record(ai, "$(P)$(R)OutputTriggerDelay0-RB") { field(SCAN, "I/O Intr") } +# Output Trigger Delay 1 +record(ao, "$(P)$(R)OutputTriggerDelay1-1") { + field(DESC, "") + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(DRVL, "0") + field(DRVH, "10.0") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_DELAY1") + field(VAL, "0") +} +record(ai, "$(P)$(R)OutputTriggerDelay1-RB") { + field(DESC, "") + field(DTYP, "asynFloat64") + field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_DELAY1") + field(SCAN, "I/O Intr") +} + +# Output Trigger Delay 2 +record(ao, "$(P)$(R)OutputTriggerDelay2-S") { + field(DESC, "") + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(DRVL, "0") + field(DRVH, "10.0") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_DELAY2") + field(VAL, "0") +} + +record(ai, "$(P)$(R)OutputTriggerDelay2-RB") { + field(DESC, "") + field(DTYP, "asynFloat64") + field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_DELAY2") + field(SCAN, "I/O Intr") +} + ########################################################################## # Output Trigger Period 0 record(ao, "$(P)$(R)OutputTriggerPeriod0-S") { @@ -909,7 +1106,6 @@ record(ao, "$(P)$(R)OutputTriggerPeriod0-S") { field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_PERIOD0") field(VAL, "0") } - record(ai, "$(P)$(R)OutputTriggerPeriod0-RB") { field(DESC, "") field(DTYP, "asynFloat64") @@ -917,6 +1113,41 @@ record(ai, "$(P)$(R)OutputTriggerPeriod0-RB") { field(SCAN, "I/O Intr") } +# Output Trigger Period 1 +record(ao, "$(P)$(R)OutputTriggerPeriod1-S") { + field(DESC, "") + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(DRVL, "0.000001") + field(DRVH, "10.0") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_PERIOD1") + field(VAL, "0") +} +record(ai, "$(P)$(R)OutputTriggerPeriod1-RB") { + field(DESC, "") + field(DTYP, "asynFloat64") + field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_PERIOD1") + field(SCAN, "I/O Intr") +} + +# Output Trigger Period 2 +record(ao, "$(P)$(R)OutputTriggerPeriod2-S") { + field(DESC, "") + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(DRVL, "0.000001") + field(DRVH, "10.0") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_PERIOD2") + field(VAL, "0") +} + +record(ai, "$(P)$(R)OutputTriggerPeriod2-RB") { + field(DESC, "") + field(DTYP, "asynFloat64") + field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_PERIOD2") + field(SCAN, "I/O Intr") +} + ########################################################################## # Output Trigger Kind 0 (mode 5) record(mbbo, "$(P)$(R)OutputTriggerKind0-S") { @@ -935,8 +1166,6 @@ record(mbbo, "$(P)$(R)OutputTriggerKind0-S") { field(FRST, "High") field(FVVL, "6") field(FVST, "Any Row Exposure") -# field(DRVL, "1") -# field(DRVH, "6") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_KIND0") field(VAL, "1") } @@ -960,6 +1189,86 @@ record(mbbi, "$(P)$(R)OutputTriggerKind0-RB") { field(SCAN, "I/O Intr") } +# Output Trigger Kind 1 (mode 5) +record(mbbo, "$(P)$(R)OutputTriggerKind1-S") { + field(DESC, "") + field(DTYP, "asynInt32") + field(PINI, "YES") + field(ZRVL, "1") + field(ZRST, "Low") + field(ONVL, "2") + field(ONST, "Global Exposure") + field(TWVL, "3") + field(TWST, "Programable") + field(THVL, "4") + field(THST, "Trigger Ready") + field(FRVL, "5") + field(FRST, "High") + field(FVVL, "6") + field(FVST, "Any Row Exposure") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_KIND1") + field(VAL, "1") +} + +record(mbbi, "$(P)$(R)OutputTriggerKind1-RB") { + field(DESC, "") + field(DTYP, "asynInt32") + field(ZRVL, "1") + field(ZRST, "Low") + field(ONVL, "2") + field(ONST, "Global Exposure") + field(TWVL, "3") + field(TWST, "Programable") + field(THVL, "4") + field(THST, "Trigger Ready") + field(FRVL, "5") + field(FRST, "High") + field(FVVL, "6") + field(FVST, "Any Row Exposure") + field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_KIND1") + field(SCAN, "I/O Intr") +} + +# Output Trigger Kind 2 (mode 5) +record(mbbo, "$(P)$(R)OutputTriggerKind2-S") { + field(DESC, "") + field(DTYP, "asynInt32") + field(PINI, "YES") + field(ZRVL, "1") + field(ZRST, "Low") + field(ONVL, "2") + field(ONST, "Global Exposure") + field(TWVL, "3") + field(TWST, "Programable") + field(THVL, "4") + field(THST, "Trigger Ready") + field(FRVL, "5") + field(FRST, "High") + field(FVVL, "6") + field(FVST, "Any Row Exposure") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_KIND2") + field(VAL, "1") +} + +record(mbbi, "$(P)$(R)OutputTriggerKind2-RB") { + field(DESC, "") + field(DTYP, "asynInt32") + field(ZRVL, "1") + field(ZRST, "Low") + field(ONVL, "2") + field(ONST, "Global Exposure") + field(TWVL, "3") + field(TWST, "Programable") + field(THVL, "4") + field(THST, "Trigger Ready") + field(FRVL, "5") + field(FRST, "High") + field(FVVL, "6") + field(FVST, "Any Row Exposure") + field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_KIND2") + field(SCAN, "I/O Intr") +} + ########################################################################## # Output Trigger PreHsyncCount0 record(ao, "$(P)$(R)OutputTriggerPreHsyncCount-S") { @@ -1014,6 +1323,75 @@ record(mbbi, "$(P)$(R)OutputTriggerBaseSensor0-RB") { field(SCAN, "I/O Intr") } +# Output Trigger Base Sensor 1 (mode 4) +record(mbbo, "$(P)$(R)OutputTriggerBaseSensor1-S") { + field(DESC, "") + field(PINI, "YES") + field(DTYP, "asynInt32") + field(ZRVL, "1") + field(ZRST, "View 1") + field(ONVL, "2") + field(ONST, "View 2") + field(TWVL, "15") + field(TWST, "Any View") + field(THVL, "16") + field(THST, "All Views") +# field(DRVL, "1") +# field(DRVH, "4") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_BASE_SENSOR1") + field(VAL, "1") +} + +record(mbbi, "$(P)$(R)OutputTriggerBaseSensor1-RB") { + field(DESC, "") + field(DTYP, "asynInt32") + field(ZRVL, "1") + field(ZRST, "View 1") + field(ONVL, "2") + field(ONST, "View 2") + field(TWVL, "15") + field(TWST, "Any View") + field(THVL, "16") + field(THST, "All Views") + field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_BASE_SENSOR1") + field(SCAN, "I/O Intr") +} + +# Output Trigger Base Sensor 2 (mode 4) +record(mbbo, "$(P)$(R)OutputTriggerBaseSensor2-S") { + field(DESC, "") + field(PINI, "YES") + field(DTYP, "asynInt32") + field(ZRVL, "1") + field(ZRST, "View 1") + field(ONVL, "2") + field(ONST, "View 2") + field(TWVL, "15") + field(TWST, "Any View") + field(THVL, "16") + field(THST, "All Views") +# field(DRVL, "1") +# field(DRVH, "4") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_BASE_SENSOR2") + field(VAL, "1") +} + +record(mbbi, "$(P)$(R)OutputTriggerBaseSensor2-RB") { + field(DESC, "") + field(DTYP, "asynInt32") + field(ZRVL, "1") + field(ZRST, "View 1") + field(ONVL, "2") + field(ONST, "View 2") + field(TWVL, "15") + field(TWST, "Any View") + field(THVL, "16") + field(THST, "All Views") + field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_OUTPUT_TRIGGER_BASE_SENSOR2") + field(SCAN, "I/O Intr") +} + + ########################################################################## # Master Pulse # ########################################################################## @@ -1189,9 +1567,8 @@ record(ai, "$(P)$(R)TimingInvalidExposurePeriod-RB") { # Internal Frame Rate record(ao, "$(P)$(R)InternalFrameRate-S") { field(DESC, "") + field(PINI, "YES") field(DTYP, "asynFloat64") - field(DRVL, "0.1") - field(DRVH, "100.022862") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_INTERNAL_FRAME_RATE") field(EGU, "Hz") } @@ -1208,9 +1585,8 @@ record(ai, "$(P)$(R)InternalFrameRate-RB") { # Internal Frame Interval record(ao, "$(P)$(R)InternalFrameInternal-S") { field(DESC, "") + field(PINI, "YES") field(DTYP, "asynFloat64") - field(DRVL, "0.00998") - field(DRVH, "10.0") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_INTERNAL_FRAME_INTERVAL") field(EGU, "Sec") } @@ -1227,9 +1603,8 @@ record(ai, "$(P)$(R)InternalFrameInternal-RB") { # Internal Line Speed record(ao, "$(P)$(R)InternalLineSpeed-S") { field(DESC, "") + field(PINI, "YES") field(DTYP, "asynFloat64") - field(DRVL, "0.667052") - field(DRVH, "0.667052") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_INTERNAL_LINE_SPEED") field(EGU, "m/s") } @@ -1246,9 +1621,8 @@ record(ai, "$(P)$(R)InternalLineSpeed-RB") { # Internal Line Interval record(ao, "$(P)$(R)InternalLineInterval-S") { field(DESC, "") + field(PINI, "YES") field(DTYP, "asynFloat64") - field(DRVL, "0.00001") - field(DRVH, "0.00001") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_INTERNAL_LINE_INTERVAL") field(EGU, "Sec") } diff --git a/ADHamaApp/src/hama.cpp b/ADHamaApp/src/hama.cpp index eb4e3ca..15cd162 100644 --- a/ADHamaApp/src/hama.cpp +++ b/ADHamaApp/src/hama.cpp @@ -521,14 +521,14 @@ asynStatus Hama::getParameter(int propertyID){ printf("-----------------> value = %f\n", dvalue); } - m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_ACTIVE+4, &dvalue); + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_ACTIVE+100, &dvalue); if(failed(m_err)) { printError(m_hdcam, m_err, "OUTPUT_TRIGGER_ACTIVE", "IDPROP:0x%08x, VALUE:%f\n", propertyID, dvalue); }else{ printf("-----------------> value = %f\n", dvalue); } - m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_ACTIVE+6, &dvalue); + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_ACTIVE+200, &dvalue); if(failed(m_err)) { printError(m_hdcam, m_err, "OUTPUT_TRIGGER_ACTIVE", "IDPROP:0x%08x, VALUE:%f\n", propertyID, dvalue); }else{ @@ -1160,6 +1160,21 @@ asynStatus Hama::writeInt32(asynUser *pasynUser, epicsInt32 value){ printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } + else if (index == hOutputTriggerSource1) { + printf("[DEBUG]::writeInit32 OutputTriggerSource1 %d\n", value); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_SOURCE+0x100, &dvalue); + if(failed(m_err)) { + printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); + } + } + else if (index == hOutputTriggerSource2) { + printf("[DEBUG]::writeInit32 OutputTriggerSource2 %d\n", value); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_SOURCE+0x200, &dvalue); + if(failed(m_err)) { + printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); + } + } + else if (index == hOutputTriggerPolarity0) { printf("[DEBUG]::writeInit32 OutputTriggerPolaroty0 %d\n", value); m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_POLARITY, &dvalue); @@ -1167,13 +1182,43 @@ asynStatus Hama::writeInt32(asynUser *pasynUser, epicsInt32 value){ printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } - //else if (index == hOutputTriggerActive0) { - // printf("[DEBUG]::writeInit32 OutputTriggerActive0 %d\n", value); - // m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_ACTIVE, &dvalue); - // if(failed(m_err)) { - // printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); - // } - //} + else if (index == hOutputTriggerPolarity1) { + printf("[DEBUG]::writeInit32 OutputTriggerPolaroty1 %d\n", value); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_POLARITY+0x100, &dvalue); + if(failed(m_err)) { + printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); + } + } + else if (index == hOutputTriggerPolarity2) { + printf("[DEBUG]::writeInit32 OutputTriggerPolaroty2 %d\n", value); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_POLARITY+0x200, &dvalue); + if(failed(m_err)) { + printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); + } + } + + else if (index == hOutputTriggerActive0) { + printf("[DEBUG]::writeInit32 OutputTriggerActive0 %d\n", value); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_ACTIVE, &dvalue); + if(failed(m_err)) { + printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); + } + } + else if (index == hOutputTriggerActive1) { + printf("[DEBUG]::writeInit32 OutputTriggerActive1 %d\n", value); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_ACTIVE+0x100, &dvalue); + if(failed(m_err)) { + printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); + } + } + else if (index == hOutputTriggerActive2) { + printf("[DEBUG]::writeInit32 OutputTriggerActive2 %d\n", value); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_ACTIVE+0x200, &dvalue); + if(failed(m_err)) { + printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); + } + } + else if (index == hOutputTriggerKind0) { printf("[DEBUG]::writeInit32 OutputTriggerKind0 %d\n", value); m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_KIND, &dvalue); @@ -1181,9 +1226,16 @@ asynStatus Hama::writeInt32(asynUser *pasynUser, epicsInt32 value){ printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } - else if (index == hOutputTriggerPreHsyncCount) { - printf("[DEBUG]::writeInit32 OutputTriggerPreHsynCount %d\n", value); - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_PREHSYNCCOUNT, &dvalue); + else if (index == hOutputTriggerKind1) { + printf("[DEBUG]::writeInit32 OutputTriggerKind1 %d\n", value); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_KIND+0x100, &dvalue); + if(failed(m_err)) { + printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); + } + } + else if (index == hOutputTriggerKind2) { + printf("[DEBUG]::writeInit32 OutputTriggerKind2 %d\n", value); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_KIND+0x200, &dvalue); if(failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } @@ -1195,6 +1247,28 @@ asynStatus Hama::writeInt32(asynUser *pasynUser, epicsInt32 value){ printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } + else if (index == hOutputTriggerBaseSensor1) { + printf("[DEBUG]::writeInit32 OutputTriggerBaseSensor1 %d\n", value); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_BASESENSOR+0x100, &dvalue); + if(failed(m_err)) { + printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); + } + } + else if (index == hOutputTriggerBaseSensor2) { + printf("[DEBUG]::writeInit32 OutputTriggerBaseSensor2 %d\n", value); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_BASESENSOR+0x200, &dvalue); + if(failed(m_err)) { + printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); + } + } + else if (index == hOutputTriggerPreHsyncCount) { + printf("[DEBUG]::writeInit32 OutputTriggerPreHsynCount %d\n", value); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_PREHSYNCCOUNT, &dvalue); + if(failed(m_err)) { + printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); + } + } + //-- Master pulse else if (index == hMasterPulseMode) { printf("[DEBUG]::writeInit32 MasterPulseMode %d\n", value); @@ -1455,13 +1529,42 @@ asynStatus Hama::writeFloat64(asynUser *pasynUser, epicsFloat64 value){ printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } - else if (index == hOutputTriggerPeriod0) { + else if (index == hOutputTriggerDelay1) { + printf("[DEBUG]::function OutputTriggerDelay1 %f\n", value); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_DELAY+0x100, &dvalue); + if(failed(m_err)) { + printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); + } + } + else if (index == hOutputTriggerDelay2) { + printf("[DEBUG]::function OutputTriggerDelay2 %f\n", value); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_DELAY+0x200, &dvalue); + if(failed(m_err)) { + printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); + } + } + + else if (index == hOutputTriggerPeriod0) { printf("[DEBUG]::function OutputTriggerPeriod0 %f\n", value); m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_PERIOD, &dvalue); if(failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } + else if (index == hOutputTriggerPeriod1) { + printf("[DEBUG]::function OutputTriggerPeriod1 %f\n", value); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_PERIOD+0x100, &dvalue); + if(failed(m_err)) { + printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); + } + } + else if (index == hOutputTriggerPeriod2) { + printf("[DEBUG]::function OutputTriggerPeriod2 %f\n", value); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_PERIOD+200, &dvalue); + if(failed(m_err)) { + printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); + } + } //-- Master Pulse else if (index == hMasterPulseInterval) { printf("[DEBUG]::function MasterPulseInterval %f\n", value);