Initial version.
This commit is contained in:
23
src/makeBaseApp/top/vlinacApp/Db/Makefile
Normal file
23
src/makeBaseApp/top/vlinacApp/Db/Makefile
Normal file
@@ -0,0 +1,23 @@
|
||||
TOP=../..
|
||||
include $(TOP)/configure/CONFIG
|
||||
#----------------------------------------
|
||||
# ADD MACRO DEFINITIONS AFTER THIS LINE
|
||||
|
||||
#----------------------------------------------------
|
||||
# Optimization of db files using dbst (DEFAULT: NO)
|
||||
#DB_OPT = YES
|
||||
|
||||
#----------------------------------------------------
|
||||
# Create and install (or just install)
|
||||
# databases, templates, substitutions like this
|
||||
DB += xxVirtualLinac.db
|
||||
DB += xxMedmDemo.db
|
||||
|
||||
#----------------------------------------------------
|
||||
# If <anyname>.db template is not named <anyname>*.template add
|
||||
# <anyname>_TEMPLATE = <templatename>
|
||||
|
||||
include $(TOP)/configure/RULES
|
||||
#----------------------------------------
|
||||
# ADD RULES AFTER THIS LINE
|
||||
|
||||
341
src/makeBaseApp/top/vlinacApp/Db/xxMedmDemo.db
Executable file
341
src/makeBaseApp/top/vlinacApp/Db/xxMedmDemo.db
Executable file
@@ -0,0 +1,341 @@
|
||||
record(ai,"$(user):demo1AI") {
|
||||
field(DESC,"demo pv")
|
||||
field(ASG,"")
|
||||
field(SCAN,"Passive")
|
||||
field(PINI,"YES")
|
||||
field(PHAS,"0")
|
||||
field(EVNT,"0")
|
||||
field(TSEL,"0")
|
||||
field(DTYP,"Soft Channel")
|
||||
field(DISV,"1")
|
||||
field(SDIS,"0")
|
||||
field(DISS,"NO_ALARM")
|
||||
field(PRIO,"LOW")
|
||||
field(FLNK,"0")
|
||||
field(INP,"1.5")
|
||||
field(PREC,"2")
|
||||
field(LINR,"NO CONVERSION")
|
||||
field(EGUF,"0")
|
||||
field(EGUL,"0")
|
||||
field(EGU,"Volts")
|
||||
field(HOPR,"10")
|
||||
field(LOPR,"0")
|
||||
field(AOFF,"0")
|
||||
field(ASLO,"1")
|
||||
field(SMOO,"0")
|
||||
field(HIHI,"9")
|
||||
field(LOLO,"0")
|
||||
field(HIGH,"7")
|
||||
field(LOW,"0")
|
||||
field(HHSV,"MAJOR")
|
||||
field(LLSV,"NO_ALARM")
|
||||
field(HSV,"MINOR")
|
||||
field(LSV,"NO_ALARM")
|
||||
field(HYST,"0")
|
||||
field(ADEL,"0")
|
||||
field(MDEL,"0")
|
||||
field(SIOL,"0")
|
||||
field(SIML,"0")
|
||||
field(SIMS,"NO_ALARM")
|
||||
}
|
||||
record(ai,"$(user):demo2AI") {
|
||||
field(DESC,"demo pv")
|
||||
field(ASG,"")
|
||||
field(SCAN,"Passive")
|
||||
field(PINI,"YES")
|
||||
field(PHAS,"0")
|
||||
field(EVNT,"0")
|
||||
field(TSEL,"0")
|
||||
field(DTYP,"Soft Channel")
|
||||
field(DISV,"1")
|
||||
field(SDIS,"0")
|
||||
field(DISS,"NO_ALARM")
|
||||
field(PRIO,"LOW")
|
||||
field(FLNK,"0")
|
||||
field(INP,"1.5")
|
||||
field(PREC,"2")
|
||||
field(LINR,"NO CONVERSION")
|
||||
field(EGUF,"0")
|
||||
field(EGUL,"0")
|
||||
field(EGU,"Volts")
|
||||
field(HOPR,"10")
|
||||
field(LOPR,"0")
|
||||
field(AOFF,"0")
|
||||
field(ASLO,"1")
|
||||
field(SMOO,"0")
|
||||
field(HIHI,"10")
|
||||
field(LOLO,"1")
|
||||
field(HIGH,"10")
|
||||
field(LOW,"2")
|
||||
field(HHSV,"NO_ALARM")
|
||||
field(LLSV,"MAJOR")
|
||||
field(HSV,"NO_ALARM")
|
||||
field(LSV,"MINOR")
|
||||
field(HYST,"0")
|
||||
field(ADEL,"0")
|
||||
field(MDEL,"0")
|
||||
field(SIOL,"0")
|
||||
field(SIML,"0")
|
||||
field(SIMS,"NO_ALARM")
|
||||
}
|
||||
record(ai,"$(user):demo3AI") {
|
||||
field(DESC,"demo pv")
|
||||
field(ASG,"")
|
||||
field(SCAN,"Passive")
|
||||
field(PINI,"YES")
|
||||
field(PHAS,"0")
|
||||
field(EVNT,"0")
|
||||
field(TSEL,"0")
|
||||
field(DTYP,"Soft Channel")
|
||||
field(DISV,"1")
|
||||
field(SDIS,"0")
|
||||
field(DISS,"NO_ALARM")
|
||||
field(PRIO,"LOW")
|
||||
field(FLNK,"0")
|
||||
field(INP,"1.5")
|
||||
field(PREC,"2")
|
||||
field(LINR,"NO CONVERSION")
|
||||
field(EGUF,"0")
|
||||
field(EGUL,"0")
|
||||
field(EGU,"Volts")
|
||||
field(HOPR,"10")
|
||||
field(LOPR,"0")
|
||||
field(AOFF,"0")
|
||||
field(ASLO,"1")
|
||||
field(SMOO,"0")
|
||||
field(HIHI,"10")
|
||||
field(LOLO,"1.5")
|
||||
field(HIGH,"10")
|
||||
field(LOW,"3")
|
||||
field(HHSV,"NO_ALARM")
|
||||
field(LLSV,"MAJOR")
|
||||
field(HSV,"NO_ALARM")
|
||||
field(LSV,"MINOR")
|
||||
field(HYST,"0")
|
||||
field(ADEL,"0")
|
||||
field(MDEL,"0")
|
||||
field(SIOL,"0")
|
||||
field(SIML,"0")
|
||||
field(SIMS,"NO_ALARM")
|
||||
}
|
||||
record(ai,"$(user):demo4AI") {
|
||||
field(DESC,"demo pv")
|
||||
field(ASG,"")
|
||||
field(SCAN,"Passive")
|
||||
field(PINI,"YES")
|
||||
field(PHAS,"0")
|
||||
field(EVNT,"0")
|
||||
field(TSEL,"0")
|
||||
field(DTYP,"Soft Channel")
|
||||
field(DISV,"1")
|
||||
field(SDIS,"0")
|
||||
field(DISS,"NO_ALARM")
|
||||
field(PRIO,"LOW")
|
||||
field(FLNK,"0")
|
||||
field(INP,"1.5")
|
||||
field(PREC,"2")
|
||||
field(LINR,"NO CONVERSION")
|
||||
field(EGUF,"0")
|
||||
field(EGUL,"0")
|
||||
field(EGU,"Volts")
|
||||
field(HOPR,"10")
|
||||
field(LOPR,"0")
|
||||
field(AOFF,"0")
|
||||
field(ASLO,"1")
|
||||
field(SMOO,"0")
|
||||
field(HIHI,"8.5")
|
||||
field(LOLO,"0")
|
||||
field(HIGH,"6.5")
|
||||
field(LOW,"0")
|
||||
field(HHSV,"MAJOR")
|
||||
field(LLSV,"NO_ALARM")
|
||||
field(HSV,"MINOR")
|
||||
field(LSV,"NO_ALARM")
|
||||
field(HYST,"0")
|
||||
field(ADEL,"0")
|
||||
field(MDEL,"0")
|
||||
field(SIOL,"0")
|
||||
field(SIML,"0")
|
||||
field(SIMS,"NO_ALARM")
|
||||
}
|
||||
record(ai,"$(user):demoAI") {
|
||||
field(DESC,"demo pv")
|
||||
field(ASG,"")
|
||||
field(SCAN,"Passive")
|
||||
field(PINI,"YES")
|
||||
field(PHAS,"0")
|
||||
field(EVNT,"0")
|
||||
field(TSEL,"0")
|
||||
field(DTYP,"Soft Channel")
|
||||
field(DISV,"1")
|
||||
field(SDIS,"0")
|
||||
field(DISS,"NO_ALARM")
|
||||
field(PRIO,"LOW")
|
||||
field(FLNK,"0")
|
||||
field(INP,"1.5")
|
||||
field(PREC,"2")
|
||||
field(LINR,"NO CONVERSION")
|
||||
field(EGUF,"0")
|
||||
field(EGUL,"0")
|
||||
field(EGU,"Volts")
|
||||
field(HOPR,"10")
|
||||
field(LOPR,"0")
|
||||
field(AOFF,"0")
|
||||
field(ASLO,"1")
|
||||
field(SMOO,"0")
|
||||
field(HIHI,"0")
|
||||
field(LOLO,"0")
|
||||
field(HIGH,"0")
|
||||
field(LOW,"0")
|
||||
field(HHSV,"NO_ALARM")
|
||||
field(LLSV,"NO_ALARM")
|
||||
field(HSV,"NO_ALARM")
|
||||
field(LSV,"NO_ALARM")
|
||||
field(HYST,"0")
|
||||
field(ADEL,"0")
|
||||
field(MDEL,"0")
|
||||
field(SIOL,"0")
|
||||
field(SIML,"0")
|
||||
field(SIMS,"NO_ALARM")
|
||||
}
|
||||
record(bi,"$(user):demoBI") {
|
||||
field(DESC,"demo pv")
|
||||
field(ASG,"")
|
||||
field(SCAN,"Passive")
|
||||
field(PINI,"YES")
|
||||
field(PHAS,"0")
|
||||
field(EVNT,"0")
|
||||
field(TSEL,"0")
|
||||
field(DTYP,"Soft Channel")
|
||||
field(DISV,"1")
|
||||
field(SDIS,"0")
|
||||
field(DISS,"NO_ALARM")
|
||||
field(PRIO,"LOW")
|
||||
field(FLNK,"0")
|
||||
field(INP,"0")
|
||||
field(ZSV,"NO_ALARM")
|
||||
field(OSV,"MAJOR")
|
||||
field(COSV,"NO_ALARM")
|
||||
field(ZNAM,"Off")
|
||||
field(ONAM,"On")
|
||||
field(SIOL,"0")
|
||||
field(SIML,"0")
|
||||
field(SIMS,"NO_ALARM")
|
||||
}
|
||||
record(calc,"$(user):demoCC") {
|
||||
field(DESC,"")
|
||||
field(ASG,"")
|
||||
field(SCAN,"1 second")
|
||||
field(PINI,"NO")
|
||||
field(PHAS,"0")
|
||||
field(EVNT,"0")
|
||||
field(TSEL,"0")
|
||||
field(DISV,"1")
|
||||
field(SDIS,"0")
|
||||
field(DISS,"NO_ALARM")
|
||||
field(PRIO,"LOW")
|
||||
field(FLNK,"0")
|
||||
field(CALC,"a=8?2:a+1")
|
||||
field(INPA,"$(user):demoCC.VAL NPP NMS")
|
||||
field(INPB,"0")
|
||||
field(INPC,"0")
|
||||
field(INPD,"0")
|
||||
field(INPE,"0")
|
||||
field(INPF,"0")
|
||||
field(INPG,"0")
|
||||
field(INPH,"0")
|
||||
field(INPI,"0")
|
||||
field(INPJ,"0")
|
||||
field(INPK,"0")
|
||||
field(INPL,"0")
|
||||
field(EGU,"counts")
|
||||
field(PREC,"0")
|
||||
field(HOPR,"10")
|
||||
field(LOPR,"0")
|
||||
field(HIHI,"0")
|
||||
field(LOLO,"0")
|
||||
field(HIGH,"0")
|
||||
field(LOW,"0")
|
||||
field(HHSV,"NO_ALARM")
|
||||
field(LLSV,"NO_ALARM")
|
||||
field(HSV,"NO_ALARM")
|
||||
field(LSV,"NO_ALARM")
|
||||
field(HYST,"0")
|
||||
field(ADEL,"0")
|
||||
field(MDEL,"0")
|
||||
}
|
||||
record(mbbi,"$(user):demoMI") {
|
||||
field(DESC,"demo pv")
|
||||
field(ASG,"")
|
||||
field(SCAN,"Passive")
|
||||
field(PINI,"YES")
|
||||
field(PHAS,"0")
|
||||
field(EVNT,"0")
|
||||
field(TSEL,"0")
|
||||
field(DTYP,"Soft Channel")
|
||||
field(DISV,"1")
|
||||
field(SDIS,"0")
|
||||
field(DISS,"NO_ALARM")
|
||||
field(PRIO,"LOW")
|
||||
field(FLNK,"0")
|
||||
field(NOBT,"3")
|
||||
field(INP,"0")
|
||||
field(ZRVL,"0x1")
|
||||
field(ONVL,"0x2")
|
||||
field(TWVL,"0x3")
|
||||
field(THVL,"0x4")
|
||||
field(FRVL,"0x5")
|
||||
field(FVVL,"0x6")
|
||||
field(SXVL,"0x0")
|
||||
field(SVVL,"0x0")
|
||||
field(EIVL,"0x0")
|
||||
field(NIVL,"0x0")
|
||||
field(TEVL,"0x0")
|
||||
field(ELVL,"0x0")
|
||||
field(TVVL,"0x0")
|
||||
field(TTVL,"0x0")
|
||||
field(FTVL,"0x0")
|
||||
field(FFVL,"0x0")
|
||||
field(ZRST,"Choice 1")
|
||||
field(ONST,"Choice 2")
|
||||
field(TWST,"Choice 3")
|
||||
field(THST,"Choice 4")
|
||||
field(FRST,"Choice 5")
|
||||
field(FVST,"Choice 6")
|
||||
field(SXST,"")
|
||||
field(SVST,"")
|
||||
field(EIST,"")
|
||||
field(NIST,"")
|
||||
field(TEST,"")
|
||||
field(ELST,"")
|
||||
field(TVST,"")
|
||||
field(TTST,"")
|
||||
field(FTST,"")
|
||||
field(FFST,"")
|
||||
field(ZRSV,"NO_ALARM")
|
||||
field(ONSV,"NO_ALARM")
|
||||
field(TWSV,"MINOR")
|
||||
field(THSV,"NO_ALARM")
|
||||
field(FRSV,"NO_ALARM")
|
||||
field(FVSV,"MAJOR")
|
||||
field(SXSV,"NO_ALARM")
|
||||
field(SVSV,"NO_ALARM")
|
||||
field(EISV,"NO_ALARM")
|
||||
field(NISV,"NO_ALARM")
|
||||
field(TESV,"NO_ALARM")
|
||||
field(ELSV,"NO_ALARM")
|
||||
field(TVSV,"NO_ALARM")
|
||||
field(TTSV,"NO_ALARM")
|
||||
field(FTSV,"NO_ALARM")
|
||||
field(FFSV,"NO_ALARM")
|
||||
field(UNSV,"NO_ALARM")
|
||||
field(COSV,"NO_ALARM")
|
||||
field(SIOL,"0")
|
||||
field(SIML,"0")
|
||||
field(SIMS,"NO_ALARM")
|
||||
}
|
||||
record(stringin,"$(user):demoSI") {
|
||||
field(DESC,"demo pv")
|
||||
field(VAL,"Drop PV name here ...")
|
||||
}
|
||||
|
||||
744
src/makeBaseApp/top/vlinacApp/Db/xxVirtualLinac.db
Normal file
744
src/makeBaseApp/top/vlinacApp/Db/xxVirtualLinac.db
Normal file
@@ -0,0 +1,744 @@
|
||||
record(bi,"$(user):autoC") {
|
||||
field(ASG,"$(user)")
|
||||
field(PINI,"YES")
|
||||
field(INP, "0")
|
||||
field(DTYP,"Soft Channel")
|
||||
field(ZNAM,"Operator control")
|
||||
field(ONAM,"Computer-Auto")
|
||||
}
|
||||
record(bo,"$(user):gunOnC") {
|
||||
field(DESC,"Controls e-gun")
|
||||
field(ASG,"$(user)")
|
||||
field(DTYP,"Soft Channel")
|
||||
field(ZNAM,"Beam Off")
|
||||
field(ONAM,"Beam On")
|
||||
}
|
||||
record(bo,"$(user):gunBakeoutC") {
|
||||
field(DESC,"Bakeout Mode")
|
||||
field(DTYP,"Soft Channel")
|
||||
field(ZNAM,"Normal")
|
||||
field(ONAM,"Bakeout")
|
||||
}
|
||||
record(calc,"$(user):flameM") {
|
||||
field(CALC,"A<32?A+1:0")
|
||||
field(SCAN,".1 second")
|
||||
field(INPA,"$(user):flameM.VAL NPP NMS")
|
||||
}
|
||||
record(ao,"$(user):cathodeCurrentC") {
|
||||
field(DESC,"set cathode current")
|
||||
field(ASG,"$(user)")
|
||||
field(DTYP,"Raw Soft Channel")
|
||||
field(SCAN,".1 second")
|
||||
field(OROC,".05")
|
||||
field(PREC,"2")
|
||||
field(EGU,"Amps")
|
||||
field(DRVH,"20")
|
||||
field(DRVL,"0")
|
||||
field(HOPR,"20")
|
||||
field(LOPR,"0")
|
||||
}
|
||||
record(calc,"$(user):rampM") {
|
||||
field(CALC,"A>6.27?0:A+.1")
|
||||
field(SCAN,"1 second")
|
||||
field(INPA,"$(user):rampM.VAL NPP NMS")
|
||||
}
|
||||
record(calc,"$(user):cathodeTempM") {
|
||||
field(DESC,"Measured Temp")
|
||||
field(SCAN,"1 second")
|
||||
field(CALC,"C+(A*7)+(SIN(B)*3.5)")
|
||||
field(INPA,"$(user):cathodeCurrentC.OVAL NPP NMS")
|
||||
field(INPB,"$(user):rampM.VAL NPP NMS")
|
||||
field(INPC,"70")
|
||||
field(EGU,"degF")
|
||||
field(PREC,"1")
|
||||
field(HOPR,"200")
|
||||
field(LOPR,"")
|
||||
field(HIHI,"180")
|
||||
field(LOLO,"130")
|
||||
field(HIGH,"160")
|
||||
field(LOW,"140")
|
||||
field(HHSV,"MAJOR")
|
||||
field(HSV,"MINOR")
|
||||
field(LLSV,"MAJOR")
|
||||
field(LSV,"MINOR")
|
||||
}
|
||||
record(calc,"$(user):CM1:intensityM") {
|
||||
field(SCAN,"1 second")
|
||||
field(CALC,"((!B)||(A>185)||(A<120))?0:A/5")
|
||||
field(INPA,"$(user):cathodeTempM.VAL NPP NMS")
|
||||
field(INPB,"$(user):gunOnC.VAL NPP NMS")
|
||||
field(EGU,"mA")
|
||||
field(PREC,"2")
|
||||
field(HOPR,"40")
|
||||
field(LOPR,"")
|
||||
field(HIHI,"36")
|
||||
field(HIGH,"33")
|
||||
field(HHSV,"MAJOR")
|
||||
field(HSV,"MINOR")
|
||||
}
|
||||
record(ao,"$(user):H1:setCurrentC") {
|
||||
field(DESC,"set output current")
|
||||
field(ASG,"$(user)")
|
||||
field(PREC,"2")
|
||||
field(EGU,"Amps")
|
||||
field(DRVH,"5")
|
||||
field(DRVL,"-5")
|
||||
field(HOPR,"5")
|
||||
field(LOPR,"-5")
|
||||
}
|
||||
record(ao,"$(user):V1:setCurrentC") {
|
||||
field(DESC,"set output current")
|
||||
field(ASG,"$(user)")
|
||||
field(PREC,"2")
|
||||
field(EGU,"Amps")
|
||||
field(DRVH,"5")
|
||||
field(DRVL,"-5")
|
||||
field(HOPR,"5")
|
||||
field(LOPR,"-5")
|
||||
}
|
||||
record(ao,"$(user):H2:setCurrentC") {
|
||||
field(DESC,"set output current")
|
||||
field(ASG,"$(user)")
|
||||
field(PREC,"2")
|
||||
field(EGU,"Amps")
|
||||
field(DRVH,"5")
|
||||
field(DRVL,"-5")
|
||||
field(HOPR,"5")
|
||||
field(LOPR,"-5")
|
||||
}
|
||||
record(ao,"$(user):V2:setCurrentC") {
|
||||
field(DESC,"set output current")
|
||||
field(ASG,"$(user)")
|
||||
field(PREC,"2")
|
||||
field(EGU,"Amps")
|
||||
field(DRVH,"5")
|
||||
field(DRVL,"-5")
|
||||
field(HOPR,"5")
|
||||
field(LOPR,"-5")
|
||||
}
|
||||
record(ao,"$(user):H3:setCurrentC") {
|
||||
field(DESC,"set output current")
|
||||
field(ASG,"$(user)")
|
||||
field(PREC,"2")
|
||||
field(EGU,"Amps")
|
||||
field(DRVH,"5")
|
||||
field(DRVL,"-5")
|
||||
field(HOPR,"5")
|
||||
field(LOPR,"-5")
|
||||
}
|
||||
record(ao,"$(user):V3:setCurrentC") {
|
||||
field(DESC,"set output current")
|
||||
field(ASG,"$(user)")
|
||||
field(PREC,"2")
|
||||
field(EGU,"Amps")
|
||||
field(DRVH,"5")
|
||||
field(DRVL,"-5")
|
||||
field(HOPR,"5")
|
||||
field(LOPR,"-5")
|
||||
}
|
||||
record(ao,"$(user):H4:setCurrentC") {
|
||||
field(DESC,"set output current")
|
||||
field(ASG,"$(user)")
|
||||
field(PREC,"2")
|
||||
field(EGU,"Amps")
|
||||
field(DRVH,"5")
|
||||
field(DRVL,"-5")
|
||||
field(HOPR,"5")
|
||||
field(LOPR,"-5")
|
||||
}
|
||||
record(ao,"$(user):V4:setCurrentC") {
|
||||
field(DESC,"set output current")
|
||||
field(ASG,"$(user)")
|
||||
field(PREC,"2")
|
||||
field(EGU,"Amps")
|
||||
field(DRVH,"5")
|
||||
field(DRVL,"-5")
|
||||
field(HOPR,"5")
|
||||
field(LOPR,"-5")
|
||||
}
|
||||
record(ao,"$(user):H5:setCurrentC") {
|
||||
field(DESC,"set output current")
|
||||
field(ASG,"$(user)")
|
||||
field(PREC,"2")
|
||||
field(EGU,"Amps")
|
||||
field(DRVH,"5")
|
||||
field(DRVL,"-5")
|
||||
field(HOPR,"5")
|
||||
field(LOPR,"-5")
|
||||
}
|
||||
record(ao,"$(user):V5:setCurrentC") {
|
||||
field(DESC,"set output current")
|
||||
field(ASG,"$(user)")
|
||||
field(PREC,"2")
|
||||
field(EGU,"Amps")
|
||||
field(DRVH,"5")
|
||||
field(DRVL,"-5")
|
||||
field(HOPR,"5")
|
||||
field(LOPR,"-5")
|
||||
}
|
||||
record(ao,"$(user):BM1:setCurrentC") {
|
||||
field(DESC,"set output current")
|
||||
field(ASG,"$(user)")
|
||||
field(PREC,"1")
|
||||
field(EGU,"Amps")
|
||||
field(DRVH,"250")
|
||||
field(DRVL,"0")
|
||||
field(HOPR,"250")
|
||||
field(LOPR,"0")
|
||||
}
|
||||
record(calc,"$(user):randomM") {
|
||||
field(CALC,"(RNDM*.1)-.05")
|
||||
}
|
||||
record(calc,"$(user):PM1:X:positionM") {
|
||||
field(DESC,"Measured Position")
|
||||
field(SCAN,".2 second")
|
||||
field(CALC,"C<.5?0:ABS(A-E)>1?(A-E)^3+D:(A-E)*2+D")
|
||||
field(INPA,"$(user):H1:setCurrentC.VAL NPP NMS")
|
||||
field(INPB,"$(user):H1:setCurrentC.VAL NPP NMS")
|
||||
field(INPC,"$(user):CM1:intensityM.VAL NPP NMS")
|
||||
field(INPD,"$(user):randomM.VAL PP NMS")
|
||||
field(INPE,"-1.3")
|
||||
field(EGU,"mm")
|
||||
field(PREC,"2")
|
||||
field(HOPR,"5")
|
||||
field(LOPR,"-5")
|
||||
field(HIHI,"4")
|
||||
field(LOLO,"-4")
|
||||
field(HIGH,"1")
|
||||
field(LOW,"-1")
|
||||
field(HHSV,"MAJOR")
|
||||
field(LLSV,"MAJOR")
|
||||
field(HSV,"MINOR")
|
||||
field(LSV,"MINOR")
|
||||
}
|
||||
record(calc,"$(user):PM1:Y:positionM") {
|
||||
field(DESC,"Measured Position")
|
||||
field(SCAN,".2 second")
|
||||
field(CALC,"C<.5?0:ABS(A-E)>1?(A-E)^3+D:(A-E)*2+D")
|
||||
field(INPA,"$(user):V1:setCurrentC.VAL NPP NMS")
|
||||
field(INPB,"$(user):V1:setCurrentC.VAL NPP NMS")
|
||||
field(INPC,"$(user):CM1:intensityM.VAL NPP NMS")
|
||||
field(INPD,"$(user):randomM.VAL PP NMS")
|
||||
field(INPE,"1.8")
|
||||
field(EGU,"mm")
|
||||
field(PREC,"2")
|
||||
field(HOPR,"5")
|
||||
field(LOPR,"-5")
|
||||
field(HIHI,"4")
|
||||
field(LOLO,"-4")
|
||||
field(HIGH,"1")
|
||||
field(LOW,"-1")
|
||||
field(HHSV,"MAJOR")
|
||||
field(LLSV,"MAJOR")
|
||||
field(HSV,"MINOR")
|
||||
field(LSV,"MINOR")
|
||||
}
|
||||
record(calc,"$(user):PM1:beamPresentM") {
|
||||
field(DESC,"1=beam present")
|
||||
field(CALC,"(A>.5)&&(B<2)&&(C<2)")
|
||||
field(INPA,"$(user):CM1:intensityM.VAL NPP NMS")
|
||||
field(INPB,"$(user):PM1:X:positionM.SEVR NPP NMS")
|
||||
field(INPC,"$(user):PM1:Y:positionM.SEVR NPP NMS")
|
||||
}
|
||||
record(calc,"$(user):PM1:intensityM") {
|
||||
field(DESC,"Measured I")
|
||||
field(SCAN,".5 second")
|
||||
field(CALC,"!A?0:B*(E-MIN(ABS(C)+ABS(D),E))/F")
|
||||
field(INPA,"$(user):PM1:beamPresentM.VAL PP NMS")
|
||||
field(INPB,"$(user):CM1:intensityM.VAL NPP NMS")
|
||||
field(INPC,"$(user):PM1:X:positionM.VAL NPP NMS")
|
||||
field(INPD,"$(user):PM1:Y:positionM.VAL NPP NMS")
|
||||
field(INPE,"10")
|
||||
field(INPF,"11")
|
||||
field(EGU,"mA")
|
||||
field(PREC,"2")
|
||||
}
|
||||
record(calc,"$(user):PM2:X:positionM") {
|
||||
field(DESC,"Measured Position")
|
||||
field(SCAN,".2 second")
|
||||
field(CALC,"C<.5?0:ABS(A-E)>1?(A-E)^3+B:(A-E)*2+B+D")
|
||||
field(INPA,"$(user):H2:setCurrentC.VAL NPP NMS")
|
||||
field(INPB,"$(user):H1:setCurrentC.VAL NPP NMS")
|
||||
field(INPC,"$(user):PM1:intensityM.VAL NPP NMS")
|
||||
field(INPD,"$(user):randomM.VAL PP NMS")
|
||||
field(INPE,"2.0")
|
||||
field(EGU,"mm")
|
||||
field(PREC,"2")
|
||||
field(HOPR,"5")
|
||||
field(LOPR,"-5")
|
||||
field(HIHI,"4")
|
||||
field(LOLO,"-4")
|
||||
field(HIGH,"1")
|
||||
field(LOW,"-1")
|
||||
field(HHSV,"MAJOR")
|
||||
field(LLSV,"MAJOR")
|
||||
field(HSV,"MINOR")
|
||||
field(LSV,"MINOR")
|
||||
}
|
||||
record(calc,"$(user):PM2:Y:positionM") {
|
||||
field(DESC,"Measured Position")
|
||||
field(SCAN,".2 second")
|
||||
field(CALC,"C<.5?0:ABS(A-E)>1?(A-E)^3+B:(A-E)*2+B+D")
|
||||
field(INPA,"$(user):V2:setCurrentC.VAL NPP NMS")
|
||||
field(INPB,"$(user):V1:setCurrentC.VAL NPP NMS")
|
||||
field(INPC,"$(user):PM1:intensityM.VAL NPP NMS")
|
||||
field(INPD,"$(user):randomM.VAL PP NMS")
|
||||
field(INPE,"-.5")
|
||||
field(EGU,"mm")
|
||||
field(PREC,"2")
|
||||
field(HOPR,"5")
|
||||
field(LOPR,"-5")
|
||||
field(HIHI,"4")
|
||||
field(LOLO,"-4")
|
||||
field(HIGH,"1")
|
||||
field(LOW,"-1")
|
||||
field(HHSV,"MAJOR")
|
||||
field(LLSV,"MAJOR")
|
||||
field(HSV,"MINOR")
|
||||
field(LSV,"MINOR")
|
||||
}
|
||||
record(calc,"$(user):PM2:beamPresentM") {
|
||||
field(DESC,"1=beam present")
|
||||
field(CALC,"(A>.5)&&(B<2)&&(C<2)")
|
||||
field(INPA,"$(user):PM1:intensityM.VAL NPP NMS")
|
||||
field(INPB,"$(user):PM2:X:positionM.SEVR NPP NMS")
|
||||
field(INPC,"$(user):PM2:Y:positionM.SEVR NPP NMS")
|
||||
}
|
||||
record(calc,"$(user):PM2:intensityM") {
|
||||
field(DESC,"Measured I")
|
||||
field(SCAN,".5 second")
|
||||
field(CALC,"!A?0:B*(E-MIN(ABS(C)+ABS(D),E))/F")
|
||||
field(INPA,"$(user):PM2:beamPresentM.VAL PP NMS")
|
||||
field(INPB,"$(user):PM1:intensityM.VAL NPP NMS")
|
||||
field(INPC,"$(user):PM2:X:positionM.VAL NPP NMS")
|
||||
field(INPD,"$(user):PM2:Y:positionM.VAL NPP NMS")
|
||||
field(INPE,"10")
|
||||
field(INPF,"11")
|
||||
field(EGU,"mA")
|
||||
field(PREC,"2")
|
||||
}
|
||||
record(calc,"$(user):PM3:X:positionM") {
|
||||
field(DESC,"Measured Position")
|
||||
field(SCAN,".2 second")
|
||||
field(CALC,"F#1||!C?0:ABS(A-E)>1?(A-E)^3:(A-E)*2+B")
|
||||
field(INPA,"$(user):H3:setCurrentC.VAL NPP NMS")
|
||||
field(INPB,"$(user):H2:setCurrentC.VAL NPP NMS")
|
||||
field(INPC,"$(user):PM2:intensityM.VAL NPP NMS")
|
||||
field(INPD,"$(user):randomM.VAL PP NMS")
|
||||
field(INPE,"-0.7")
|
||||
field(INPF,"$(user):GV1:positionM.VAL NPP NMS")
|
||||
field(EGU,"mm")
|
||||
field(PREC,"2")
|
||||
field(HOPR,"5")
|
||||
field(LOPR,"-5")
|
||||
field(HIHI,"4")
|
||||
field(LOLO,"-4")
|
||||
field(HIGH,"1")
|
||||
field(LOW,"-1")
|
||||
field(HHSV,"MAJOR")
|
||||
field(LLSV,"MAJOR")
|
||||
field(HSV,"MINOR")
|
||||
field(LSV,"MINOR")
|
||||
}
|
||||
record(calc,"$(user):PM3:Y:positionM") {
|
||||
field(DESC,"Measured Position")
|
||||
field(SCAN,".2 second")
|
||||
field(CALC,"F#1||!C?0:ABS(A-E)>1?(A-E)^3:(A-E)*2+B")
|
||||
field(INPA,"$(user):V3:setCurrentC.VAL NPP NMS")
|
||||
field(INPB,"$(user):V2:setCurrentC.VAL NPP NMS")
|
||||
field(INPC,"$(user):PM2:intensityM.VAL NPP NMS")
|
||||
field(INPD,"$(user):randomM.VAL PP NMS")
|
||||
field(INPE,"-1.5")
|
||||
field(INPF,"$(user):GV1:positionM.VAL NPP NMS")
|
||||
field(EGU,"mm")
|
||||
field(PREC,"2")
|
||||
field(HOPR,"5")
|
||||
field(LOPR,"-5")
|
||||
field(HIHI,"4")
|
||||
field(LOLO,"-4")
|
||||
field(HIGH,"1")
|
||||
field(LOW,"-1")
|
||||
field(HHSV,"MAJOR")
|
||||
field(LLSV,"MAJOR")
|
||||
field(HSV,"MINOR")
|
||||
field(LSV,"MINOR")
|
||||
}
|
||||
record(calc,"$(user):PM3:beamPresentM") {
|
||||
field(DESC,"1=beam present")
|
||||
field(CALC,"(A>.5)&&(B<2)&&(C<2)&&(D=1)")
|
||||
field(INPA,"$(user):PM2:intensityM.VAL NPP NMS")
|
||||
field(INPB,"$(user):PM3:X:positionM.SEVR NPP NMS")
|
||||
field(INPC,"$(user):PM3:Y:positionM.SEVR NPP NMS")
|
||||
field(INPD,"$(user):GV1:positionM.VAL NPP NMS")
|
||||
}
|
||||
record(calc,"$(user):PM3:intensityM") {
|
||||
field(DESC,"Measured I")
|
||||
field(SCAN,".5 second")
|
||||
field(CALC,"!A?0:B*(E-MIN(ABS(C)+ABS(D),E))/F")
|
||||
field(INPA,"$(user):PM3:beamPresentM.VAL PP NMS")
|
||||
field(INPB,"$(user):PM2:intensityM.VAL NPP NMS")
|
||||
field(INPC,"$(user):PM3:X:positionM.VAL NPP NMS")
|
||||
field(INPD,"$(user):PM3:Y:positionM.VAL NPP NMS")
|
||||
field(INPE,"10")
|
||||
field(INPF,"11")
|
||||
field(EGU,"mA")
|
||||
field(PREC,"2")
|
||||
}
|
||||
record(calc,"$(user):PM4:X:positionM") {
|
||||
field(DESC,"Measured Position")
|
||||
field(SCAN,".2 second")
|
||||
field(CALC,"C<.5?0:ABS(A-E)>1?(A-E)^3+B:(A-E)*2+B+D")
|
||||
field(INPA,"$(user):H4:setCurrentC.VAL NPP NMS")
|
||||
field(INPB,"$(user):H3:setCurrentC.VAL NPP NMS")
|
||||
field(INPC,"$(user):PM3:intensityM.VAL NPP NMS")
|
||||
field(INPD,"$(user):randomM.VAL PP NMS")
|
||||
field(INPE,".8")
|
||||
field(EGU,"mm")
|
||||
field(PREC,"2")
|
||||
field(HOPR,"5")
|
||||
field(LOPR,"-5")
|
||||
field(HIHI,"4")
|
||||
field(LOLO,"-4")
|
||||
field(HIGH,"1")
|
||||
field(LOW,"-1")
|
||||
field(HHSV,"MAJOR")
|
||||
field(LLSV,"MAJOR")
|
||||
field(HSV,"MINOR")
|
||||
field(LSV,"MINOR")
|
||||
}
|
||||
record(calc,"$(user):PM4:Y:positionM") {
|
||||
field(DESC,"Measured Position")
|
||||
field(SCAN,".2 second")
|
||||
field(CALC,"C<.5?0:ABS(A-E)>1?(A-E)^3+B:(A-E)*2+B+D")
|
||||
field(INPA,"$(user):V4:setCurrentC.VAL NPP NMS")
|
||||
field(INPB,"$(user):V3:setCurrentC.VAL NPP NMS")
|
||||
field(INPC,"$(user):PM3:intensityM.VAL NPP NMS")
|
||||
field(INPD,"$(user):randomM.VAL PP NMS")
|
||||
field(INPE,"-.3")
|
||||
field(EGU,"mm")
|
||||
field(PREC,"2")
|
||||
field(HOPR,"5")
|
||||
field(LOPR,"-5")
|
||||
field(HIHI,"4")
|
||||
field(LOLO,"-4")
|
||||
field(HIGH,"1")
|
||||
field(LOW,"-1")
|
||||
field(HHSV,"MAJOR")
|
||||
field(LLSV,"MAJOR")
|
||||
field(HSV,"MINOR")
|
||||
field(LSV,"MINOR")
|
||||
}
|
||||
record(calc,"$(user):PM4:beamPresentM") {
|
||||
field(DESC,"1=beam present")
|
||||
field(CALC,"(A>.5)&&(B<2)&&(C<2)")
|
||||
field(INPA,"$(user):PM3:intensityM.VAL NPP NMS")
|
||||
field(INPB,"$(user):PM4:X:positionM.SEVR NPP NMS")
|
||||
field(INPC,"$(user):PM4:Y:positionM.SEVR NPP NMS")
|
||||
}
|
||||
record(calc,"$(user):PM4:intensityM") {
|
||||
field(DESC,"Measured I")
|
||||
field(SCAN,".5 second")
|
||||
field(CALC,"!A?0:B*(E-MIN(ABS(C)+ABS(D),E))/F")
|
||||
field(INPA,"$(user):PM4:beamPresentM.VAL PP NMS")
|
||||
field(INPB,"$(user):PM3:intensityM.VAL NPP NMS")
|
||||
field(INPC,"$(user):PM4:X:positionM.VAL NPP NMS")
|
||||
field(INPD,"$(user):PM4:Y:positionM.VAL NPP NMS")
|
||||
field(INPE,"10")
|
||||
field(INPF,"11")
|
||||
field(EGU,"mA")
|
||||
field(PREC,"2")
|
||||
}
|
||||
record(calc,"$(user):PM5:X:positionM") {
|
||||
field(DESC,"Measured Position")
|
||||
field(SCAN,".2 second")
|
||||
field(CALC,"C<.5?0:ABS(A-E)>1?(A-E)^3+B:(A-E)*2+B+D")
|
||||
field(INPA,"$(user):H5:setCurrentC.VAL NPP NMS")
|
||||
field(INPB,"$(user):H4:setCurrentC.VAL NPP NMS")
|
||||
field(INPC,"$(user):PM4:intensityM.VAL NPP NMS")
|
||||
field(INPD,"$(user):randomM.VAL PP NMS")
|
||||
field(INPE,"-1.0")
|
||||
field(EGU,"mm")
|
||||
field(PREC,"2")
|
||||
field(HOPR,"5")
|
||||
field(LOPR,"-5")
|
||||
field(HIHI,"4")
|
||||
field(LOLO,"-4")
|
||||
field(HIGH,"1")
|
||||
field(LOW,"-1")
|
||||
field(HHSV,"MAJOR")
|
||||
field(LLSV,"MAJOR")
|
||||
field(HSV,"MINOR")
|
||||
field(LSV,"MINOR")
|
||||
}
|
||||
record(calc,"$(user):PM5:Y:positionM") {
|
||||
field(DESC,"Measured Position")
|
||||
field(SCAN,".2 second")
|
||||
field(CALC,"C<.5?0:ABS(A-E)>1?(A-E)^3+B:(A-E)*2+B+D")
|
||||
field(INPA,"$(user):V5:setCurrentC.VAL NPP NMS")
|
||||
field(INPB,"$(user):V4:setCurrentC.VAL NPP NMS")
|
||||
field(INPC,"$(user):PM4:intensityM.VAL NPP NMS")
|
||||
field(INPD,"$(user):randomM.VAL PP NMS")
|
||||
field(INPE,"2.3")
|
||||
field(EGU,"mm")
|
||||
field(PREC,"2")
|
||||
field(HOPR,"5")
|
||||
field(LOPR,"-5")
|
||||
field(HIHI,"4")
|
||||
field(LOLO,"-4")
|
||||
field(HIGH,"1")
|
||||
field(LOW,"-1")
|
||||
field(HHSV,"MAJOR")
|
||||
field(LLSV,"MAJOR")
|
||||
field(HSV,"MINOR")
|
||||
field(LSV,"MINOR")
|
||||
}
|
||||
record(calc,"$(user):PM5:beamPresentM") {
|
||||
field(DESC,"1=beam present")
|
||||
field(CALC,"(A>.5)&&(B<2)&&(C<2)")
|
||||
field(INPA,"$(user):PM4:intensityM.VAL NPP NMS")
|
||||
field(INPB,"$(user):PM5:X:positionM.SEVR NPP NMS")
|
||||
field(INPC,"$(user):PM5:Y:positionM.SEVR NPP NMS")
|
||||
}
|
||||
record(calc,"$(user):PM5:intensityM") {
|
||||
field(DESC,"Measured I")
|
||||
field(SCAN,".5 second")
|
||||
field(CALC,"!A?0:B*(E-MIN(ABS(C)+ABS(D),E))/F")
|
||||
field(INPA,"$(user):PM5:beamPresentM.VAL PP NMS")
|
||||
field(INPB,"$(user):PM4:intensityM.VAL NPP NMS")
|
||||
field(INPC,"$(user):PM5:X:positionM.VAL NPP NMS")
|
||||
field(INPD,"$(user):PM5:Y:positionM.VAL NPP NMS")
|
||||
field(INPE,"10")
|
||||
field(INPF,"11")
|
||||
field(EGU,"mA")
|
||||
field(PREC,"2")
|
||||
}
|
||||
record(calc,"$(user):FC1:intensityM") {
|
||||
field(DESC,"Measured I")
|
||||
field(SCAN,".5 second")
|
||||
field(CALC,"A<.5?0:D>10?0:A*(11-D)/12")
|
||||
field(INPA,"$(user):PM5:intensityM.VAL NPP NMS")
|
||||
field(INPB,"$(user):PM5:X:positionM.VAL NPP NMS")
|
||||
field(INPC,"$(user):PM5:Y:positionM.VAL NPP NMS")
|
||||
field(INPD,"$(user):BM1:setCurrentC.VAL NPP NMS")
|
||||
field(EGU,"mA")
|
||||
field(PREC,"2")
|
||||
}
|
||||
record(calc,"$(user):FC2:intensityM") {
|
||||
field(DESC,"Measured I")
|
||||
field(SCAN,".5 second")
|
||||
field(CALC,"(D<213)||(D>216.12)?0:A*.9*SIN(D-E)")
|
||||
field(INPA,"$(user):PM5:intensityM.VAL NPP NMS")
|
||||
field(INPB,"$(user):PM5:X:positionM.VAL NPP NMS")
|
||||
field(INPC,"$(user):PM5:Y:positionM.VAL NPP NMS")
|
||||
field(INPD,"$(user):BM1:setCurrentC.VAL NPP NMS")
|
||||
field(INPE,"213")
|
||||
field(EGU,"mA")
|
||||
field(PREC,"2")
|
||||
}
|
||||
record(waveform,"$(user):PM:distancesWF") {
|
||||
field(DESC,"bpm distances from gun")
|
||||
field(DTYP,"Soft Channel")
|
||||
field(EGU,"meters")
|
||||
field(HOPR,"60")
|
||||
field(LOPR,"0")
|
||||
field(NELM,"8")
|
||||
field(FTVL,"FLOAT")
|
||||
}
|
||||
record(waveform,"$(user):PM:refLocationsWF") {
|
||||
field(DTYP,"Soft Channel")
|
||||
field(EGU,"meters")
|
||||
field(HOPR,"60")
|
||||
field(LOPR,"0")
|
||||
field(NELM,"2")
|
||||
field(FTVL,"FLOAT")
|
||||
}
|
||||
record(waveform,"$(user):PM:referenceLoWF") {
|
||||
field(DTYP,"Soft Channel")
|
||||
field(EGU,"meters")
|
||||
field(HOPR,"5")
|
||||
field(LOPR,"-5")
|
||||
field(NELM,"2")
|
||||
field(FTVL,"FLOAT")
|
||||
}
|
||||
record(waveform,"$(user):PM:referenceHiWF") {
|
||||
field(DTYP,"Soft Channel")
|
||||
field(EGU,"meters")
|
||||
field(HOPR,"5")
|
||||
field(LOPR,"-5")
|
||||
field(NELM,"2")
|
||||
field(FTVL,"FLOAT")
|
||||
}
|
||||
record(waveform,"$(user):PM:xTrajectoryWF") {
|
||||
field(DESC,"x values")
|
||||
field(DTYP,"Soft Channel")
|
||||
field(EGU,"mm")
|
||||
field(HOPR,"5")
|
||||
field(LOPR,"-5")
|
||||
field(NELM,"8")
|
||||
field(FTVL,"FLOAT")
|
||||
}
|
||||
record(waveform,"$(user):PM:yTrajectoryWF") {
|
||||
field(DESC,"y values")
|
||||
field(DTYP,"Soft Channel")
|
||||
field(EGU,"mm")
|
||||
field(HOPR,"5")
|
||||
field(LOPR,"-5")
|
||||
field(NELM,"8")
|
||||
field(FTVL,"FLOAT")
|
||||
}
|
||||
record(waveform,"$(user):PM:iTrajectoryWF") {
|
||||
field(DESC,"i values")
|
||||
field(DTYP,"Soft Channel")
|
||||
field(EGU,"mm")
|
||||
field(HOPR,"40")
|
||||
field(LOPR,"0")
|
||||
field(NELM,"8")
|
||||
field(FTVL,"FLOAT")
|
||||
}
|
||||
record(mbbo,"$(user):GV1:positionC") {
|
||||
field(DESC,"valve position")
|
||||
field(ASG,"$(user)")
|
||||
field(DTYP,"Raw Soft Channel")
|
||||
field(ZRVL,"0x3")
|
||||
field(ONVL,"0xc")
|
||||
field(ZRST,"Close")
|
||||
field(ONST,"Open")
|
||||
field(FLNK,"$(user):GV1:positionSQ.VAL")
|
||||
}
|
||||
record(seq,"$(user):GV1:positionSQ") {
|
||||
field(DESC,"simulate open/close")
|
||||
field(SELM,"Mask")
|
||||
field(SELL,"$(user):GV1:positionC.RVAL NPP NMS")
|
||||
field(DOL1,"0")
|
||||
field(LNK1,"$(user):GV1:positionM.VAL PP NMS")
|
||||
field(DLY2,"1")
|
||||
field(DOL2,"2")
|
||||
field(LNK2,"$(user):GV1:positionM.VAL PP NMS")
|
||||
field(DOL3,"0")
|
||||
field(LNK3,"$(user):GV1:positionM.VAL PP NMS")
|
||||
field(DLY4,"1")
|
||||
field(DOL4,"1")
|
||||
field(LNK4,"$(user):GV1:positionM.VAL PP NMS")
|
||||
}
|
||||
record(mbbi,"$(user):GV1:positionM") {
|
||||
field(DESC,"valve position")
|
||||
field(PINI,"YES")
|
||||
field(INP,"2")
|
||||
field(ZRST,"Travel")
|
||||
field(ONST,"Full Open")
|
||||
field(TWST,"Full Closed")
|
||||
field(THST,"Unknown")
|
||||
field(ZRSV,"MINOR")
|
||||
field(ONSV,"NO_ALARM")
|
||||
field(TWSV,"MAJOR")
|
||||
field(THSV,"INVALID")
|
||||
}
|
||||
record(ai,"$(user):opVariable1") {
|
||||
field(PREC, "4")
|
||||
field(EGU,"Ratio")
|
||||
}
|
||||
record(ai,"$(user):opVariable2") {
|
||||
field(PREC, "4")
|
||||
field(EGU,"void")
|
||||
}
|
||||
record(ai,"$(user):opVariable3") {
|
||||
field(PREC, "4")
|
||||
field(EGU,"void")
|
||||
}
|
||||
record(ai,"$(user):opVariable4") {
|
||||
field(PREC, "4")
|
||||
field(EGU,"void")
|
||||
}
|
||||
record(ai,"$(user):opVariable5") {
|
||||
field(PREC, "4")
|
||||
field(EGU,"void")
|
||||
}
|
||||
record(bo,"$(user):opButton1C") {
|
||||
field(DESC,"Misc. Button")
|
||||
field(DTYP,"Soft Channel")
|
||||
field(HIGH,"2")
|
||||
field(ZNAM,"Off")
|
||||
field(ONAM,"On")
|
||||
}
|
||||
record(bo,"$(user):opButton2C") {
|
||||
field(DESC,"Misc. Button")
|
||||
field(DTYP,"Soft Channel")
|
||||
field(HIGH,".5")
|
||||
field(ZNAM,"Off")
|
||||
field(ONAM,"On")
|
||||
}
|
||||
record(bo,"$(user):opButton3C") {
|
||||
field(DESC,"Misc. Button")
|
||||
field(DTYP,"Soft Channel")
|
||||
field(HIGH,".5")
|
||||
field(ZNAM,"Off")
|
||||
field(ONAM,"On")
|
||||
}
|
||||
#record(scan,"$(user):scan1SC") {
|
||||
# field(MPTS,"512")
|
||||
#}
|
||||
#record(scan,"$(user):scan2SC") {
|
||||
# field(MPTS,"512")
|
||||
#}
|
||||
#record(scan,"$(user):scan3SC") {
|
||||
# field(MPTS,"512")
|
||||
#}
|
||||
#record(scan,"$(user):scan4SC") {
|
||||
# field(MPTS,"512")
|
||||
#}
|
||||
record(calcout,"$(user):scanCtl1CO")
|
||||
record(calcout,"$(user):scanCtl2CO")
|
||||
record(calcout,"$(user):scanCtl3CO")
|
||||
record(calcout,"$(user):scanCtl4CO")
|
||||
record(calcout,"$(user):scanCtl5CO")
|
||||
|
||||
record(bo,"$(user):OP:stabilizerC") {
|
||||
field(ZNAM,"Off")
|
||||
field(ONAM,"Stabilize")
|
||||
}
|
||||
record(stringin,"$(user):OP:stabilizerMsg") {
|
||||
field(VAL,"Sequence Off")
|
||||
}
|
||||
record(stringin,"$(user):OP:autoMsg") {
|
||||
field(VAL,"Operator Control")
|
||||
}
|
||||
record(stringin,"$(user):operatorM") {
|
||||
field(VAL,"")
|
||||
}
|
||||
record(seq,"$(user):initAllSQ") {
|
||||
field(DOL1,"0")
|
||||
field(LNK1,"$(user):cathodeCurrentC.VAL PP NMS")
|
||||
field(DOL2,"0")
|
||||
field(LNK2,"$(user):cathodeCurrentC.OVAL PP NMS")
|
||||
field(DLY3,".25")
|
||||
field(DOL3,"0")
|
||||
field(LNK3,"$(user):gunOnC.VAL PP NMS")
|
||||
field(DLY4,".25")
|
||||
field(DOL4,"0")
|
||||
field(LNK4,"$(user):GV1:positionC.VAL PP NMS")
|
||||
field(DOL5,"1")
|
||||
field(LNK5,"$(user):initSteeringSQ.VAL PP NMS")
|
||||
}
|
||||
record(seq,"$(user):initSteeringSQ") {
|
||||
field(DOL1,"0")
|
||||
field(LNK1,"$(user):H1:setCurrentC.VAL PP NMS")
|
||||
field(DOL2,"0")
|
||||
field(LNK2,"$(user):V1:setCurrentC.VAL PP NMS")
|
||||
field(DOL3,"0")
|
||||
field(LNK3,"$(user):H2:setCurrentC.VAL PP NMS")
|
||||
field(DOL4,"0")
|
||||
field(LNK4,"$(user):V2:setCurrentC.VAL PP NMS")
|
||||
field(DOL5,"0")
|
||||
field(LNK5,"$(user):H3:setCurrentC.VAL PP NMS")
|
||||
field(DOL6,"0")
|
||||
field(LNK6,"$(user):V3:setCurrentC.VAL PP NMS")
|
||||
field(DOL7,"0")
|
||||
field(LNK7,"$(user):H4:setCurrentC.VAL PP NMS")
|
||||
field(DOL8,"0")
|
||||
field(LNK8,"$(user):V4:setCurrentC.VAL PP NMS")
|
||||
field(DOL9,"0")
|
||||
field(LNK9,"$(user):H5:setCurrentC.VAL PP NMS")
|
||||
field(DOLA,"0")
|
||||
field(LNKA,"$(user):V5:setCurrentC.VAL PP NMS")
|
||||
}
|
||||
|
||||
8
src/makeBaseApp/top/vlinacApp/Makefile
Normal file
8
src/makeBaseApp/top/vlinacApp/Makefile
Normal file
@@ -0,0 +1,8 @@
|
||||
TOP = ..
|
||||
include $(TOP)/configure/CONFIG
|
||||
DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *src*))
|
||||
DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *Src*))
|
||||
DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *db*))
|
||||
DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *Db*))
|
||||
include $(TOP)/configure/RULES_DIRS
|
||||
|
||||
16
src/makeBaseApp/top/vlinacApp/misc/README
Normal file
16
src/makeBaseApp/top/vlinacApp/misc/README
Normal file
@@ -0,0 +1,16 @@
|
||||
This directory (misc) contains additional files to compliment
|
||||
the virtual linac demo application.
|
||||
|
||||
For full functionality the sequencer module must be built and loaded.
|
||||
|
||||
Virtual_Linac_Info.pdf : Description of the Virtual Linac
|
||||
*.adl : medm display files
|
||||
*.gif : images used in medm files
|
||||
|
||||
To start the ioc, refer to the README file in the iocBoot
|
||||
directory.
|
||||
|
||||
To start medm, use the following command:
|
||||
medm -local -x -macro user=_USER_ Virtual_Linac.adl
|
||||
|
||||
|
||||
4623
src/makeBaseApp/top/vlinacApp/misc/Virtual_Linac.adl
Normal file
4623
src/makeBaseApp/top/vlinacApp/misc/Virtual_Linac.adl
Normal file
File diff suppressed because it is too large
Load Diff
BIN
src/makeBaseApp/top/vlinacApp/misc/Virtual_Linac_Info.pdf
Normal file
BIN
src/makeBaseApp/top/vlinacApp/misc/Virtual_Linac_Info.pdf
Normal file
Binary file not shown.
549
src/makeBaseApp/top/vlinacApp/misc/alarmDemo.adl
Normal file
549
src/makeBaseApp/top/vlinacApp/misc/alarmDemo.adl
Normal file
@@ -0,0 +1,549 @@
|
||||
|
||||
file {
|
||||
name="/home/phoebus/NDA/epics/vlinac/R3.14.3/vlinacApp/misc/alarmDemo.adl"
|
||||
version=030003
|
||||
}
|
||||
display {
|
||||
object {
|
||||
x=211
|
||||
y=74
|
||||
width=404
|
||||
height=551
|
||||
}
|
||||
clr=9
|
||||
bclr=55
|
||||
cmap=""
|
||||
gridSpacing=5
|
||||
gridOn=0
|
||||
snapToGrid=0
|
||||
}
|
||||
"color map" {
|
||||
ncolors=65
|
||||
colors {
|
||||
ffffff,
|
||||
ececec,
|
||||
dadada,
|
||||
c8c8c8,
|
||||
bbbbbb,
|
||||
aeaeae,
|
||||
9e9e9e,
|
||||
919191,
|
||||
858585,
|
||||
787878,
|
||||
696969,
|
||||
5a5a5a,
|
||||
464646,
|
||||
2d2d2d,
|
||||
000000,
|
||||
00d800,
|
||||
1ebb00,
|
||||
339900,
|
||||
2d7f00,
|
||||
216c00,
|
||||
fd0000,
|
||||
de1309,
|
||||
be190b,
|
||||
a01207,
|
||||
820400,
|
||||
5893ff,
|
||||
597ee1,
|
||||
4b6ec7,
|
||||
3a5eab,
|
||||
27548d,
|
||||
fbf34a,
|
||||
f9da3c,
|
||||
eeb62b,
|
||||
e19015,
|
||||
cd6100,
|
||||
ffb0ff,
|
||||
d67fe2,
|
||||
ae4ebc,
|
||||
8b1a96,
|
||||
610a75,
|
||||
a4aaff,
|
||||
8793e2,
|
||||
6a73c1,
|
||||
4d52a4,
|
||||
343386,
|
||||
c7bb6d,
|
||||
b79d5c,
|
||||
a47e3c,
|
||||
7d5627,
|
||||
58340f,
|
||||
99ffff,
|
||||
73dfff,
|
||||
4ea5f9,
|
||||
2a63e4,
|
||||
0a00b8,
|
||||
ebf1b5,
|
||||
d4db9d,
|
||||
bbc187,
|
||||
a6a462,
|
||||
8b8239,
|
||||
73ff6b,
|
||||
52da3b,
|
||||
3cb420,
|
||||
289315,
|
||||
1a7309,
|
||||
}
|
||||
}
|
||||
text {
|
||||
object {
|
||||
x=3
|
||||
y=7
|
||||
width=352
|
||||
height=20
|
||||
}
|
||||
"basic attribute" {
|
||||
clr=14
|
||||
width=7
|
||||
}
|
||||
textix="These PVs have alarm values set ..."
|
||||
}
|
||||
valuator {
|
||||
object {
|
||||
x=18
|
||||
y=83
|
||||
width=160
|
||||
height=40
|
||||
}
|
||||
control {
|
||||
chan="$(user):demo1AI"
|
||||
clr=14
|
||||
bclr=51
|
||||
}
|
||||
label="limits"
|
||||
dPrecision=0.100000
|
||||
limits {
|
||||
}
|
||||
}
|
||||
text {
|
||||
object {
|
||||
x=9
|
||||
y=31
|
||||
width=352
|
||||
height=14
|
||||
}
|
||||
"basic attribute" {
|
||||
clr=14
|
||||
width=7
|
||||
}
|
||||
textix="They are intended to be used to experiment with alh"
|
||||
}
|
||||
text {
|
||||
object {
|
||||
x=9
|
||||
y=45
|
||||
width=352
|
||||
height=14
|
||||
}
|
||||
"basic attribute" {
|
||||
clr=14
|
||||
width=7
|
||||
}
|
||||
textix="(the alarm handler). "
|
||||
}
|
||||
valuator {
|
||||
object {
|
||||
x=227
|
||||
y=84
|
||||
width=160
|
||||
height=40
|
||||
}
|
||||
control {
|
||||
chan="$(user):demo2AI"
|
||||
clr=14
|
||||
bclr=51
|
||||
}
|
||||
label="limits"
|
||||
dPrecision=0.100000
|
||||
limits {
|
||||
}
|
||||
}
|
||||
valuator {
|
||||
object {
|
||||
x=21
|
||||
y=169
|
||||
width=160
|
||||
height=40
|
||||
}
|
||||
control {
|
||||
chan="$(user):demo3AI"
|
||||
clr=14
|
||||
bclr=51
|
||||
}
|
||||
label="limits"
|
||||
dPrecision=0.100000
|
||||
limits {
|
||||
}
|
||||
}
|
||||
valuator {
|
||||
object {
|
||||
x=229
|
||||
y=169
|
||||
width=160
|
||||
height=40
|
||||
}
|
||||
control {
|
||||
chan="$(user):demo4AI"
|
||||
clr=14
|
||||
bclr=51
|
||||
}
|
||||
label="limits"
|
||||
dPrecision=0.100000
|
||||
limits {
|
||||
}
|
||||
}
|
||||
"text update" {
|
||||
object {
|
||||
x=76
|
||||
y=123
|
||||
width=56
|
||||
height=20
|
||||
}
|
||||
monitor {
|
||||
chan="$(user):demo1AI"
|
||||
clr=14
|
||||
bclr=3
|
||||
}
|
||||
clrmod="alarm"
|
||||
align="horiz. centered"
|
||||
limits {
|
||||
}
|
||||
}
|
||||
"text update" {
|
||||
object {
|
||||
x=293
|
||||
y=124
|
||||
width=56
|
||||
height=20
|
||||
}
|
||||
monitor {
|
||||
chan="$(user):demo2AI"
|
||||
clr=14
|
||||
bclr=3
|
||||
}
|
||||
clrmod="alarm"
|
||||
align="horiz. centered"
|
||||
limits {
|
||||
}
|
||||
}
|
||||
"text update" {
|
||||
object {
|
||||
x=80
|
||||
y=208
|
||||
width=56
|
||||
height=20
|
||||
}
|
||||
monitor {
|
||||
chan="$(user):demo3AI"
|
||||
clr=14
|
||||
bclr=3
|
||||
}
|
||||
clrmod="alarm"
|
||||
align="horiz. centered"
|
||||
limits {
|
||||
}
|
||||
}
|
||||
"text update" {
|
||||
object {
|
||||
x=296
|
||||
y=208
|
||||
width=56
|
||||
height=20
|
||||
}
|
||||
monitor {
|
||||
chan="$(user):demo4AI"
|
||||
clr=14
|
||||
bclr=3
|
||||
}
|
||||
clrmod="alarm"
|
||||
align="horiz. centered"
|
||||
limits {
|
||||
}
|
||||
}
|
||||
text {
|
||||
object {
|
||||
x=6
|
||||
y=331
|
||||
width=352
|
||||
height=14
|
||||
}
|
||||
"basic attribute" {
|
||||
clr=14
|
||||
width=7
|
||||
}
|
||||
textix="Experiment with the capabilities of the Alarm Handler."
|
||||
}
|
||||
text {
|
||||
object {
|
||||
x=10
|
||||
y=353
|
||||
width=352
|
||||
height=14
|
||||
}
|
||||
"basic attribute" {
|
||||
clr=14
|
||||
width=7
|
||||
}
|
||||
textix="> Collapse/Expand Group displays with the symbol."
|
||||
}
|
||||
text {
|
||||
object {
|
||||
x=29
|
||||
y=522
|
||||
width=352
|
||||
height=14
|
||||
}
|
||||
"basic attribute" {
|
||||
clr=14
|
||||
width=7
|
||||
}
|
||||
textix="Refer to the User Manual for a complete tutorial."
|
||||
}
|
||||
"choice button" {
|
||||
object {
|
||||
x=15
|
||||
y=249
|
||||
width=384
|
||||
height=18
|
||||
}
|
||||
control {
|
||||
chan="$(user):demoMI"
|
||||
clr=14
|
||||
bclr=51
|
||||
}
|
||||
stacking="column"
|
||||
}
|
||||
"choice button" {
|
||||
object {
|
||||
x=180
|
||||
y=274
|
||||
width=66
|
||||
height=39
|
||||
}
|
||||
control {
|
||||
chan="$(user):demoBI"
|
||||
clr=14
|
||||
bclr=51
|
||||
}
|
||||
}
|
||||
text {
|
||||
object {
|
||||
x=55
|
||||
y=69
|
||||
width=100
|
||||
height=14
|
||||
}
|
||||
"basic attribute" {
|
||||
clr=14
|
||||
width=7
|
||||
}
|
||||
textix="$(user):demo1AI"
|
||||
align="horiz. centered"
|
||||
}
|
||||
text {
|
||||
object {
|
||||
x=58
|
||||
y=155
|
||||
width=100
|
||||
height=14
|
||||
}
|
||||
"basic attribute" {
|
||||
clr=14
|
||||
width=7
|
||||
}
|
||||
textix="$(user):demo3AI"
|
||||
align="horiz. centered"
|
||||
}
|
||||
text {
|
||||
object {
|
||||
x=263
|
||||
y=155
|
||||
width=100
|
||||
height=14
|
||||
}
|
||||
"basic attribute" {
|
||||
clr=14
|
||||
width=7
|
||||
}
|
||||
textix="$(user):demo4AI"
|
||||
align="horiz. centered"
|
||||
}
|
||||
text {
|
||||
object {
|
||||
x=261
|
||||
y=69
|
||||
width=100
|
||||
height=14
|
||||
}
|
||||
"basic attribute" {
|
||||
clr=14
|
||||
width=7
|
||||
}
|
||||
textix="$(user):demo2AI"
|
||||
align="horiz. centered"
|
||||
}
|
||||
text {
|
||||
object {
|
||||
x=157
|
||||
y=234
|
||||
width=100
|
||||
height=14
|
||||
}
|
||||
"basic attribute" {
|
||||
clr=14
|
||||
width=7
|
||||
}
|
||||
textix="$(user):demoMI"
|
||||
align="horiz. centered"
|
||||
}
|
||||
text {
|
||||
object {
|
||||
x=79
|
||||
y=289
|
||||
width=100
|
||||
height=14
|
||||
}
|
||||
"basic attribute" {
|
||||
clr=14
|
||||
width=7
|
||||
}
|
||||
textix="$(user):demoBI"
|
||||
align="horiz. centered"
|
||||
}
|
||||
polygon {
|
||||
object {
|
||||
x=310
|
||||
y=353
|
||||
width=13
|
||||
height=14
|
||||
}
|
||||
"basic attribute" {
|
||||
clr=9
|
||||
width=7
|
||||
}
|
||||
points {
|
||||
(310,353)
|
||||
(310,367)
|
||||
(323,360)
|
||||
(310,353)
|
||||
}
|
||||
}
|
||||
text {
|
||||
object {
|
||||
x=10
|
||||
y=369
|
||||
width=352
|
||||
height=14
|
||||
}
|
||||
"basic attribute" {
|
||||
clr=14
|
||||
width=7
|
||||
}
|
||||
textix="> Display PV's within a group by hitting the group name."
|
||||
}
|
||||
text {
|
||||
object {
|
||||
x=10
|
||||
y=385
|
||||
width=352
|
||||
height=14
|
||||
}
|
||||
"basic attribute" {
|
||||
clr=14
|
||||
width=7
|
||||
}
|
||||
textix="> Acknowledge alarms by depressing the button to the"
|
||||
}
|
||||
text {
|
||||
object {
|
||||
x=22
|
||||
y=401
|
||||
width=352
|
||||
height=14
|
||||
}
|
||||
"basic attribute" {
|
||||
clr=14
|
||||
width=7
|
||||
}
|
||||
textix="left of the Group name or PV name (entire groups may"
|
||||
}
|
||||
text {
|
||||
object {
|
||||
x=22
|
||||
y=417
|
||||
width=352
|
||||
height=14
|
||||
}
|
||||
"basic attribute" {
|
||||
clr=14
|
||||
width=7
|
||||
}
|
||||
textix="acknowledged with one button press)."
|
||||
}
|
||||
text {
|
||||
object {
|
||||
x=10
|
||||
y=433
|
||||
width=352
|
||||
height=14
|
||||
}
|
||||
"basic attribute" {
|
||||
clr=14
|
||||
width=7
|
||||
}
|
||||
textix="> Disable alarms for a PV (or group) by using the"
|
||||
}
|
||||
text {
|
||||
object {
|
||||
x=24
|
||||
y=449
|
||||
width=352
|
||||
height=14
|
||||
}
|
||||
"basic attribute" {
|
||||
clr=14
|
||||
width=7
|
||||
}
|
||||
textix="Enable/Disable option from the "
|
||||
}
|
||||
text {
|
||||
object {
|
||||
x=24
|
||||
y=465
|
||||
width=352
|
||||
height=14
|
||||
}
|
||||
"basic attribute" {
|
||||
clr=14
|
||||
width=7
|
||||
}
|
||||
textix="under the Action menu."
|
||||
}
|
||||
text {
|
||||
object {
|
||||
x=10
|
||||
y=481
|
||||
width=352
|
||||
height=14
|
||||
}
|
||||
"basic attribute" {
|
||||
clr=14
|
||||
width=7
|
||||
}
|
||||
textix="> View the history files the Alarm Handler keeps by"
|
||||
}
|
||||
text {
|
||||
object {
|
||||
x=25
|
||||
y=497
|
||||
width=352
|
||||
height=14
|
||||
}
|
||||
"basic attribute" {
|
||||
clr=14
|
||||
width=7
|
||||
}
|
||||
textix="using the View menu."
|
||||
}
|
||||
BIN
src/makeBaseApp/top/vlinacApp/misc/flame.gif
Normal file
BIN
src/makeBaseApp/top/vlinacApp/misc/flame.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
170
src/makeBaseApp/top/vlinacApp/misc/linacStripChart.adl
Normal file
170
src/makeBaseApp/top/vlinacApp/misc/linacStripChart.adl
Normal file
@@ -0,0 +1,170 @@
|
||||
|
||||
file {
|
||||
name="/home/phoebus/NDA/epics/openhouse/medm/linacStripChart.adl"
|
||||
version=020306
|
||||
}
|
||||
display {
|
||||
object {
|
||||
x=208
|
||||
y=682
|
||||
width=924
|
||||
height=250
|
||||
}
|
||||
clr=14
|
||||
bclr=55
|
||||
cmap=""
|
||||
gridSpacing=5
|
||||
gridOn=0
|
||||
snapToGrid=0
|
||||
}
|
||||
"color map" {
|
||||
ncolors=65
|
||||
colors {
|
||||
ffffff,
|
||||
ececec,
|
||||
dadada,
|
||||
c8c8c8,
|
||||
bbbbbb,
|
||||
aeaeae,
|
||||
9e9e9e,
|
||||
919191,
|
||||
858585,
|
||||
787878,
|
||||
696969,
|
||||
5a5a5a,
|
||||
464646,
|
||||
2d2d2d,
|
||||
000000,
|
||||
00d800,
|
||||
1ebb00,
|
||||
339900,
|
||||
2d7f00,
|
||||
216c00,
|
||||
fd0000,
|
||||
de1309,
|
||||
be190b,
|
||||
a01207,
|
||||
820400,
|
||||
5893ff,
|
||||
597ee1,
|
||||
4b6ec7,
|
||||
3a5eab,
|
||||
27548d,
|
||||
fbf34a,
|
||||
f9da3c,
|
||||
eeb62b,
|
||||
e19015,
|
||||
cd6100,
|
||||
ffb0ff,
|
||||
d67fe2,
|
||||
ae4ebc,
|
||||
8b1a96,
|
||||
610a75,
|
||||
a4aaff,
|
||||
8793e2,
|
||||
6a73c1,
|
||||
4d52a4,
|
||||
343386,
|
||||
c7bb6d,
|
||||
b79d5c,
|
||||
a47e3c,
|
||||
7d5627,
|
||||
58340f,
|
||||
99ffff,
|
||||
73dfff,
|
||||
4ea5f9,
|
||||
2a63e4,
|
||||
0a00b8,
|
||||
ebf1b5,
|
||||
d4db9d,
|
||||
bbc187,
|
||||
a6a462,
|
||||
8b8239,
|
||||
73ff6b,
|
||||
52da3b,
|
||||
3cb420,
|
||||
289315,
|
||||
1a7309,
|
||||
}
|
||||
}
|
||||
"strip chart" {
|
||||
object {
|
||||
x=2
|
||||
y=47
|
||||
width=922
|
||||
height=200
|
||||
}
|
||||
plotcom {
|
||||
title="Cathode Temperature"
|
||||
xlabel="Seconds"
|
||||
clr=14
|
||||
bclr=2
|
||||
}
|
||||
period=300.000000
|
||||
pen[0] {
|
||||
chan="$(user):CM1:intensityM"
|
||||
clr=53
|
||||
limits {
|
||||
loprSrc="default"
|
||||
hoprSrc="default"
|
||||
hoprDefault=48
|
||||
}
|
||||
}
|
||||
pen[1] {
|
||||
chan="$(user):FC1:intensityM"
|
||||
clr=20
|
||||
limits {
|
||||
loprSrc="default"
|
||||
hoprSrc="default"
|
||||
hoprDefault=20
|
||||
}
|
||||
}
|
||||
pen[2] {
|
||||
chan="$(user):FC2:intensityM"
|
||||
clr=36
|
||||
limits {
|
||||
loprSrc="default"
|
||||
hoprSrc="default"
|
||||
hoprDefault=20
|
||||
}
|
||||
}
|
||||
}
|
||||
text {
|
||||
object {
|
||||
x=11
|
||||
y=19
|
||||
width=70
|
||||
height=20
|
||||
}
|
||||
"basic attribute" {
|
||||
clr=53
|
||||
fill="outline"
|
||||
}
|
||||
textix="BLUE: Current at beginning (CM1)"
|
||||
}
|
||||
text {
|
||||
object {
|
||||
x=574
|
||||
y=5
|
||||
width=70
|
||||
height=20
|
||||
}
|
||||
"basic attribute" {
|
||||
clr=20
|
||||
fill="outline"
|
||||
}
|
||||
textix="RED: Current at end (FC1)"
|
||||
}
|
||||
text {
|
||||
object {
|
||||
x=574
|
||||
y=26
|
||||
width=70
|
||||
height=20
|
||||
}
|
||||
"basic attribute" {
|
||||
clr=36
|
||||
fill="outline"
|
||||
}
|
||||
textix="Purple: Current at end (FC2)"
|
||||
}
|
||||
1383
src/makeBaseApp/top/vlinacApp/misc/medmDemo.adl
Normal file
1383
src/makeBaseApp/top/vlinacApp/misc/medmDemo.adl
Normal file
File diff suppressed because it is too large
Load Diff
37
src/makeBaseApp/top/vlinacApp/src/Makefile
Normal file
37
src/makeBaseApp/top/vlinacApp/src/Makefile
Normal file
@@ -0,0 +1,37 @@
|
||||
TOP=../..
|
||||
|
||||
include $(TOP)/configure/CONFIG
|
||||
#----------------------------------------
|
||||
# ADD MACRO DEFINITIONS AFTER THIS LINE
|
||||
#=============================
|
||||
|
||||
# build an ioc application
|
||||
|
||||
PROD_IOC = vlinac
|
||||
# <name>.dbd will be created from <name>Include.dbd
|
||||
DBD += vlinac.dbd
|
||||
|
||||
# <name>_registerRecordDeviceDriver.cpp will be created from <name>.dbd
|
||||
vlinac_SRCS += vlinac_registerRecordDeviceDriver.cpp
|
||||
vlinac_SRCS_DEFAULT += vlinacMain.cpp
|
||||
vlinac_SRCS_vxWorks += -nil-
|
||||
|
||||
# The following adds support from base/src/vxWorks
|
||||
vlinac_OBJS_vxWorks += $(EPICS_BASE_BIN)/vxComLibrary
|
||||
|
||||
# The following builds sequence programs as a component of vlinac
|
||||
# To build .st files, SNCSEQ must be defined in <top>/configure/RELEASE
|
||||
# Also in _APPNAME_Include.dbd uncomment #registrar(<name>Registrar) lines
|
||||
#vlinac_SRCS += beamTrajectory.st
|
||||
#vlinac_SRCS += autoControl.st
|
||||
#vlinac_SRCS += stabilizer.st
|
||||
#vlinac_LIBS += seq pv
|
||||
|
||||
vlinac_LIBS += $(EPICS_BASE_IOC_LIBS)
|
||||
|
||||
#===========================
|
||||
|
||||
include $(TOP)/configure/RULES
|
||||
#----------------------------------------
|
||||
# ADD RULES AFTER THIS LINE
|
||||
|
||||
316
src/makeBaseApp/top/vlinacApp/src/autoControl.st
Normal file
316
src/makeBaseApp/top/vlinacApp/src/autoControl.st
Normal file
@@ -0,0 +1,316 @@
|
||||
program autoControl
|
||||
|
||||
option -c; /* don't wait for all channels to connect */
|
||||
option +r; /* reentrant */
|
||||
|
||||
short mode;
|
||||
assign mode to "{user}:autoC";
|
||||
monitor mode;
|
||||
|
||||
short htrMon;
|
||||
assign htrMon to "{user}:cathodeTempM";
|
||||
monitor htrMon;
|
||||
|
||||
string msg;
|
||||
assign msg to "{user}:OP:autoMsg";
|
||||
|
||||
float htr;
|
||||
assign htr to "{user}:cathodeCurrentC";
|
||||
|
||||
short beamOn;
|
||||
assign beamOn to "{user}:gunOnC";
|
||||
|
||||
short gv1;
|
||||
assign gv1 to "{user}:GV1:positionC";
|
||||
|
||||
short h1Scan;
|
||||
assign h1Scan to "{user}A:H1:setCurrentC.SCAN";
|
||||
|
||||
short v1Scan;
|
||||
assign v1Scan to "{user}A:V1:setCurrentC.SCAN";
|
||||
|
||||
short h2Scan;
|
||||
assign h2Scan to "{user}A:H2:setCurrentC.SCAN";
|
||||
|
||||
short v2Scan;
|
||||
assign v2Scan to "{user}A:V2:setCurrentC.SCAN";
|
||||
|
||||
short h3Scan;
|
||||
assign h3Scan to "{user}A:H3:setCurrentC.SCAN";
|
||||
|
||||
short v3Scan;
|
||||
assign v3Scan to "{user}A:V3:setCurrentC.SCAN";
|
||||
|
||||
short h4Scan;
|
||||
assign h4Scan to "{user}A:H4:setCurrentC.SCAN";
|
||||
|
||||
short v4Scan;
|
||||
assign v4Scan to "{user}A:V4:setCurrentC.SCAN";
|
||||
|
||||
short h5Scan;
|
||||
assign h5Scan to "{user}A:H5:setCurrentC.SCAN";
|
||||
|
||||
short v5Scan;
|
||||
assign v5Scan to "{user}A:V5:setCurrentC.SCAN";
|
||||
|
||||
float h1A;
|
||||
assign h1A to "{user}A:H1:setCurrentC";
|
||||
|
||||
float v1A;
|
||||
assign v1A to "{user}A:V1:setCurrentC";
|
||||
|
||||
float h2A;
|
||||
assign h2A to "{user}A:H2:setCurrentC";
|
||||
|
||||
float v2A;
|
||||
assign v2A to "{user}A:V2:setCurrentC";
|
||||
|
||||
float h3A;
|
||||
assign h3A to "{user}A:H3:setCurrentC";
|
||||
|
||||
float v3A;
|
||||
assign v3A to "{user}A:V3:setCurrentC";
|
||||
|
||||
float h4A;
|
||||
assign h4A to "{user}A:H4:setCurrentC";
|
||||
|
||||
float v4A;
|
||||
assign v4A to "{user}A:V4:setCurrentC";
|
||||
|
||||
float h5A;
|
||||
assign h5A to "{user}A:H5:setCurrentC";
|
||||
|
||||
float v5A;
|
||||
assign v5A to "{user}A:V5:setCurrentC";
|
||||
|
||||
float h1AR;
|
||||
assign h1AR to "{user}A:H1:setCurrentC.OROC";
|
||||
|
||||
float v1AR;
|
||||
assign v1AR to "{user}A:V1:setCurrentC.OROC";
|
||||
|
||||
float h2AR;
|
||||
assign h2AR to "{user}A:H2:setCurrentC.OROC";
|
||||
|
||||
float v2AR;
|
||||
assign v2AR to "{user}A:V2:setCurrentC.OROC";
|
||||
|
||||
float h3AR;
|
||||
assign h3AR to "{user}A:H3:setCurrentC.OROC";
|
||||
|
||||
float v3AR;
|
||||
assign v3AR to "{user}A:V3:setCurrentC.OROC";
|
||||
|
||||
float h4AR;
|
||||
assign h4AR to "{user}A:H4:setCurrentC.OROC";
|
||||
|
||||
float v4AR;
|
||||
assign v4AR to "{user}A:V4:setCurrentC.OROC";
|
||||
|
||||
float h5AR;
|
||||
assign h5AR to "{user}A:H5:setCurrentC.OROC";
|
||||
|
||||
float v5AR;
|
||||
assign v5AR to "{user}A:V5:setCurrentC.OROC";
|
||||
|
||||
|
||||
%%#include <epicsThread.h>
|
||||
|
||||
ss autoCtlSS
|
||||
{
|
||||
state init
|
||||
{
|
||||
when()
|
||||
{
|
||||
h1Scan = 0;
|
||||
v1Scan = 0;
|
||||
h2Scan = 0;
|
||||
v2Scan = 0;
|
||||
h3Scan = 0;
|
||||
v3Scan = 0;
|
||||
h4Scan = 0;
|
||||
v4Scan = 0;
|
||||
h5Scan = 0;
|
||||
v5Scan = 0;
|
||||
pvPut(h1Scan);
|
||||
pvPut(v1Scan);
|
||||
pvPut(h2Scan);
|
||||
pvPut(v2Scan);
|
||||
pvPut(h3Scan);
|
||||
pvPut(v3Scan);
|
||||
pvPut(h4Scan);
|
||||
pvPut(v4Scan);
|
||||
pvPut(h5Scan);
|
||||
pvPut(v5Scan);
|
||||
%% epicsThreadSleep(.5);
|
||||
mode = 0;
|
||||
pvPut(mode);
|
||||
%% epicsThreadSleep(.1);
|
||||
} state waitForAuto
|
||||
}
|
||||
|
||||
|
||||
state waitForAuto
|
||||
{
|
||||
when(mode)
|
||||
{
|
||||
beamOn = 0;
|
||||
pvPut(beamOn);
|
||||
gv1 = 0;
|
||||
pvPut(gv1);
|
||||
|
||||
h1AR = 0;
|
||||
v1AR = 0;
|
||||
h2AR = 0;
|
||||
v2AR = 0;
|
||||
h3AR = 0;
|
||||
v3AR = 0;
|
||||
h4AR = 0;
|
||||
v4AR = 0;
|
||||
h5AR = 0;
|
||||
v5AR = 0;
|
||||
pvPut(h1AR);
|
||||
pvPut(v1AR);
|
||||
pvPut(h2AR);
|
||||
pvPut(v2AR);
|
||||
pvPut(h3AR);
|
||||
pvPut(v3AR);
|
||||
pvPut(h4AR);
|
||||
pvPut(v4AR);
|
||||
pvPut(h5AR);
|
||||
pvPut(v5AR);
|
||||
%% epicsThreadSleep(.1);
|
||||
|
||||
h1A = 0;
|
||||
v1A = 0;
|
||||
h2A = 0;
|
||||
v2A = 0;
|
||||
h3A = 0;
|
||||
v3A = 0;
|
||||
h4A = 0;
|
||||
v4A = 0;
|
||||
h5A = 0;
|
||||
v5A = 0;
|
||||
pvPut(h1A);
|
||||
pvPut(v1A);
|
||||
pvPut(h2A);
|
||||
pvPut(v2A);
|
||||
pvPut(h3A);
|
||||
pvPut(v3A);
|
||||
pvPut(h4A);
|
||||
pvPut(v4A);
|
||||
pvPut(h5A);
|
||||
pvPut(v5A);
|
||||
%% epicsThreadSleep(.2);
|
||||
|
||||
h1AR = 0.1;
|
||||
v1AR = 0.1;
|
||||
h2AR = 0.1;
|
||||
v2AR = 0.1;
|
||||
h3AR = 0.1;
|
||||
v3AR = 0.1;
|
||||
h4AR = 0.1;
|
||||
v4AR = 0.1;
|
||||
h5AR = 0.1;
|
||||
v5AR = 0.1;
|
||||
pvPut(h1AR);
|
||||
pvPut(v1AR);
|
||||
pvPut(h2AR);
|
||||
pvPut(v2AR);
|
||||
pvPut(h3AR);
|
||||
pvPut(v3AR);
|
||||
pvPut(h4AR);
|
||||
pvPut(v4AR);
|
||||
pvPut(h5AR);
|
||||
pvPut(v5AR);
|
||||
%% epicsThreadSleep(.2);
|
||||
|
||||
sprintf(msg,"Optimizing Cathode Temperature");
|
||||
pvPut(msg);
|
||||
htr = 12.3;
|
||||
pvPut(htr);
|
||||
%% epicsThreadSleep(3);
|
||||
} state waitForHtr
|
||||
}
|
||||
|
||||
state waitForHtr
|
||||
{
|
||||
when(htrMon > 153)
|
||||
{
|
||||
sprintf(msg,"Turning Beam On");
|
||||
pvPut(msg);
|
||||
%% epicsThreadSleep(2);
|
||||
beamOn = 1;
|
||||
pvPut(beamOn);
|
||||
|
||||
h1Scan = 9;
|
||||
v1Scan = 9;
|
||||
h2Scan = 9;
|
||||
v2Scan = 9;
|
||||
h3Scan = 9;
|
||||
v3Scan = 9;
|
||||
h4Scan = 9;
|
||||
v4Scan = 9;
|
||||
h5Scan = 9;
|
||||
v5Scan = 9;
|
||||
pvPut(h1Scan);
|
||||
pvPut(v1Scan);
|
||||
pvPut(h2Scan);
|
||||
pvPut(v2Scan);
|
||||
pvPut(h3Scan);
|
||||
pvPut(v3Scan);
|
||||
pvPut(h4Scan);
|
||||
pvPut(v4Scan);
|
||||
pvPut(h5Scan);
|
||||
pvPut(v5Scan);
|
||||
%% epicsThreadSleep(3);
|
||||
|
||||
h1A = -1.31;
|
||||
v1A = 1.79;
|
||||
h2A = 2.67;
|
||||
v2A = -1.39;
|
||||
h3A = -1.68;
|
||||
v3A = -.8;
|
||||
h4A = 1.63;
|
||||
v4A = .1;
|
||||
h5A = -1.83;
|
||||
v5A = 2.21;
|
||||
sprintf(msg,"Optimizing H1/V1 Steering");
|
||||
pvPut(msg);
|
||||
pvPut(h1A);
|
||||
pvPut(v1A);
|
||||
%% epicsThreadSleep(3);
|
||||
sprintf(msg,"Optimizing H2/V2 Steering");
|
||||
pvPut(msg);
|
||||
pvPut(h2A);
|
||||
pvPut(v2A);
|
||||
%% epicsThreadSleep(3);
|
||||
sprintf(msg,"Opening Gate Valve");
|
||||
pvPut(msg);
|
||||
%% epicsThreadSleep(2);
|
||||
gv1 = 1;
|
||||
pvPut(gv1);
|
||||
%% epicsThreadSleep(3);
|
||||
sprintf(msg,"Optimizing H3/V3 Steering");
|
||||
pvPut(msg);
|
||||
pvPut(h3A);
|
||||
pvPut(v3A);
|
||||
%% epicsThreadSleep(3);
|
||||
sprintf(msg,"Optimizing H4/V4 Steering");
|
||||
pvPut(msg);
|
||||
pvPut(h4A);
|
||||
pvPut(v4A);
|
||||
%% epicsThreadSleep(3);
|
||||
sprintf(msg,"Optimizing H5/V5 Steering");
|
||||
pvPut(msg);
|
||||
pvPut(h5A);
|
||||
pvPut(v5A);
|
||||
%% epicsThreadSleep(3);
|
||||
sprintf(msg,"Optimization Complete");
|
||||
pvPut(msg);
|
||||
%% epicsThreadSleep(4);
|
||||
} state init
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
251
src/makeBaseApp/top/vlinacApp/src/beamTrajectory.st
Normal file
251
src/makeBaseApp/top/vlinacApp/src/beamTrajectory.st
Normal file
@@ -0,0 +1,251 @@
|
||||
program beamTrajectory
|
||||
|
||||
option -c; /* don't wait for all channels to connect */
|
||||
option +r; /* reentrant */
|
||||
|
||||
double CM1_I;
|
||||
assign CM1_I to "{user}:CM1:intensityM";
|
||||
monitor CM1_I;
|
||||
|
||||
double PM1_X;
|
||||
assign PM1_X to "{user}:PM1:X:positionM";
|
||||
monitor PM1_X;
|
||||
|
||||
double PM1_Y;
|
||||
assign PM1_Y to "{user}:PM1:Y:positionM";
|
||||
monitor PM1_Y;
|
||||
|
||||
double PM1_I;
|
||||
assign PM1_I to "{user}:PM1:intensityM";
|
||||
monitor PM1_I;
|
||||
|
||||
double PM2_X;
|
||||
assign PM2_X to "{user}:PM2:X:positionM";
|
||||
monitor PM2_X;
|
||||
|
||||
double PM2_Y;
|
||||
assign PM2_Y to "{user}:PM2:Y:positionM";
|
||||
monitor PM2_Y;
|
||||
|
||||
double PM2_I;
|
||||
assign PM2_I to "{user}:PM2:intensityM";
|
||||
monitor PM2_I;
|
||||
|
||||
double PM3_X;
|
||||
assign PM3_X to "{user}:PM3:X:positionM";
|
||||
monitor PM3_X;
|
||||
|
||||
double PM3_Y;
|
||||
assign PM3_Y to "{user}:PM3:Y:positionM";
|
||||
monitor PM3_Y;
|
||||
|
||||
double PM3_I;
|
||||
assign PM3_I to "{user}:PM3:intensityM";
|
||||
monitor PM3_I;
|
||||
|
||||
double PM4_X;
|
||||
assign PM4_X to "{user}:PM4:X:positionM";
|
||||
monitor PM4_X;
|
||||
|
||||
double PM4_Y;
|
||||
assign PM4_Y to "{user}:PM4:Y:positionM";
|
||||
monitor PM4_Y;
|
||||
|
||||
double PM4_I;
|
||||
assign PM4_I to "{user}:PM4:intensityM";
|
||||
monitor PM4_I;
|
||||
|
||||
double PM5_X;
|
||||
assign PM5_X to "{user}:PM5:X:positionM";
|
||||
monitor PM5_X;
|
||||
|
||||
double PM5_Y;
|
||||
assign PM5_Y to "{user}:PM5:Y:positionM";
|
||||
monitor PM5_Y;
|
||||
|
||||
double PM5_I;
|
||||
assign PM5_I to "{user}:PM5:intensityM";
|
||||
monitor PM5_I;
|
||||
|
||||
double FC1_I;
|
||||
assign FC1_I to "{user}:FC1:intensityM";
|
||||
monitor FC1_I;
|
||||
|
||||
double FC2_I;
|
||||
assign FC2_I to "{user}:FC2:intensityM";
|
||||
monitor FC2_I;
|
||||
|
||||
double xPosWf[8];
|
||||
assign xPosWf to "{user}:PM:xTrajectoryWF";
|
||||
|
||||
double yPosWf[8];
|
||||
assign yPosWf to "{user}:PM:yTrajectoryWF";
|
||||
|
||||
double iWf[8];
|
||||
assign iWf to "{user}:PM:iTrajectoryWF";
|
||||
|
||||
double bpmLocations[8];
|
||||
assign bpmLocations to "{user}:PM:distancesWF";
|
||||
|
||||
double refLocations[2];
|
||||
assign refLocations to "{user}:PM:refLocationsWF";
|
||||
|
||||
double refHi[2];
|
||||
assign refHi to "{user}:PM:referenceHiWF";
|
||||
|
||||
double refLo[2];
|
||||
assign refLo to "{user}:PM:referenceLoWF";
|
||||
|
||||
double bpmFixedLocations[13];
|
||||
|
||||
short i; /* index into LI waveforms */
|
||||
short cBpm; /* bpm under consideration */
|
||||
|
||||
ss bpmTrajectorySS
|
||||
{
|
||||
state init
|
||||
{
|
||||
when()
|
||||
{
|
||||
/* BPM Position from EGUN */
|
||||
bpmFixedLocations[0] = 0.0;
|
||||
bpmFixedLocations[1] = 2.4;
|
||||
bpmFixedLocations[2] = 9.0;
|
||||
bpmFixedLocations[3] = 20.0;
|
||||
bpmFixedLocations[4] = 33.0;
|
||||
bpmFixedLocations[5] = 44.0;
|
||||
bpmFixedLocations[6] = 54,5;
|
||||
bpmFixedLocations[7] = 58.0;
|
||||
|
||||
refLocations[0] = 0;
|
||||
refLocations[1] = 60;
|
||||
pvPut(refLocations);
|
||||
|
||||
refHi[0] = 1.0;
|
||||
refHi[1] = 1.0;
|
||||
refLo[0] = -1.0;
|
||||
refLo[1] = -1.0;
|
||||
|
||||
pvPut(refHi);
|
||||
pvPut(refLo);
|
||||
|
||||
} state waitToPlot
|
||||
}
|
||||
|
||||
|
||||
state waitToPlot
|
||||
{
|
||||
when(delay(1.0))
|
||||
{
|
||||
} state plot
|
||||
}
|
||||
|
||||
state plot
|
||||
{
|
||||
when()
|
||||
{
|
||||
i=7;
|
||||
cBpm=7;
|
||||
/* include reading if > threshold */
|
||||
if (FC1_I > 1.0) {
|
||||
xPosWf[i] = PM5_X;
|
||||
yPosWf[i] = PM5_Y;
|
||||
iWf[i] = FC1_I;
|
||||
bpmLocations[i] = bpmFixedLocations[cBpm];
|
||||
i--;
|
||||
}
|
||||
else if(FC2_I > 1.0) {
|
||||
xPosWf[i] = PM5_X;
|
||||
yPosWf[i] = PM5_Y;
|
||||
iWf[i] = FC2_I;
|
||||
bpmLocations[i] = bpmFixedLocations[cBpm];
|
||||
i--;
|
||||
}
|
||||
else if(PM5_X != 0.0) {
|
||||
xPosWf[i] = PM5_X;
|
||||
yPosWf[i] = PM5_Y;
|
||||
iWf[i] = 0;
|
||||
bpmLocations[i] = bpmFixedLocations[cBpm];
|
||||
i--;
|
||||
}
|
||||
|
||||
cBpm--;
|
||||
|
||||
if (PM5_X != 0.0) {
|
||||
xPosWf[i] = PM5_X;
|
||||
yPosWf[i] = PM5_Y;
|
||||
iWf[i] = PM5_I;
|
||||
bpmLocations[i] = bpmFixedLocations[cBpm];
|
||||
i--;
|
||||
}
|
||||
cBpm--;
|
||||
|
||||
if (PM4_X != 0.0) {
|
||||
xPosWf[i] = PM4_X;
|
||||
yPosWf[i] = PM4_Y;
|
||||
iWf[i] = PM4_I;
|
||||
bpmLocations[i] = bpmFixedLocations[cBpm];
|
||||
i--;
|
||||
}
|
||||
cBpm--;
|
||||
|
||||
if (PM3_X != 0.0) {
|
||||
xPosWf[i] = PM3_X;
|
||||
yPosWf[i] = PM3_Y;
|
||||
iWf[i] = PM3_I;
|
||||
bpmLocations[i] = bpmFixedLocations[cBpm];
|
||||
i--;
|
||||
}
|
||||
cBpm--;
|
||||
|
||||
if (PM2_X != 0.0) {
|
||||
xPosWf[i] = PM2_X;
|
||||
yPosWf[i] = PM2_Y;
|
||||
iWf[i] = PM2_I;
|
||||
bpmLocations[i] = bpmFixedLocations[cBpm];
|
||||
i--;
|
||||
}
|
||||
cBpm--;
|
||||
|
||||
if (PM1_X != 0.0) {
|
||||
xPosWf[i] = PM1_X;
|
||||
yPosWf[i] = PM1_Y;
|
||||
iWf[i] = PM1_I;
|
||||
bpmLocations[i] = bpmFixedLocations[cBpm];
|
||||
i--;
|
||||
}
|
||||
|
||||
cBpm--;
|
||||
if (CM1_I > 1.0) {
|
||||
xPosWf[i] = 0;
|
||||
yPosWf[i] = 0;
|
||||
iWf[i] = CM1_I;
|
||||
bpmLocations[i] = bpmFixedLocations[cBpm];
|
||||
i--;
|
||||
xPosWf[i] = 0;
|
||||
yPosWf[i] = 0;
|
||||
iWf[i] = CM1_I;
|
||||
bpmLocations[i] = bpmFixedLocations[cBpm-1];
|
||||
i--;
|
||||
}
|
||||
|
||||
/* fill in unplotted points on top of last point */
|
||||
while (i>=0)
|
||||
{
|
||||
xPosWf[i] = 0;
|
||||
yPosWf[i] = 0;
|
||||
iWf[i] = CM1_I;
|
||||
bpmLocations[i] = 0;
|
||||
i--;
|
||||
}
|
||||
|
||||
pvPut(xPosWf);
|
||||
pvPut(yPosWf);
|
||||
pvPut(iWf);
|
||||
pvPut(bpmLocations);
|
||||
|
||||
} state waitToPlot
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
47
src/makeBaseApp/top/vlinacApp/src/stabilizer.st
Normal file
47
src/makeBaseApp/top/vlinacApp/src/stabilizer.st
Normal file
@@ -0,0 +1,47 @@
|
||||
program stabilizer
|
||||
|
||||
short enableButton;
|
||||
assign enableButton to "{user}:OP:stabilizerC";
|
||||
monitor enableButton;
|
||||
|
||||
float cathodeTemp;
|
||||
assign cathodeTemp to "{user}:cathodeTempM";
|
||||
monitor cathodeTemp;
|
||||
|
||||
float cathodeCurrent;
|
||||
assign cathodeCurrent to "{user}:cathodeCurrentC";
|
||||
|
||||
string statusMsg;
|
||||
assign statusMsg to "{user}:OP:stabilizeMsg";
|
||||
|
||||
ss stabilizerSS1
|
||||
{
|
||||
state init
|
||||
{
|
||||
when(1)
|
||||
{
|
||||
} state waitForEnable
|
||||
}
|
||||
|
||||
|
||||
state waitForEnable
|
||||
{
|
||||
when(enableButton)
|
||||
{
|
||||
printf("Starting Stabilizer\n");
|
||||
} state stabilize
|
||||
}
|
||||
|
||||
state stabilize
|
||||
{
|
||||
when(!enableButton)
|
||||
{
|
||||
printf("Stopping Stabilizer\n");
|
||||
} state waitForEnable
|
||||
|
||||
when(delay(.5))
|
||||
{
|
||||
printf("Stabilizing\n");
|
||||
} state stabilize
|
||||
}
|
||||
}
|
||||
4
src/makeBaseApp/top/vlinacApp/src/vlinacInclude.dbd
Normal file
4
src/makeBaseApp/top/vlinacApp/src/vlinacInclude.dbd
Normal file
@@ -0,0 +1,4 @@
|
||||
include "base.dbd"
|
||||
#registrar(beamTrajectoryRegistrar)
|
||||
#registrar(autoControlRegistrar)
|
||||
#registrar(stabilizerRegistrar)
|
||||
21
src/makeBaseApp/top/vlinacApp/src/vlinacMain.cpp
Normal file
21
src/makeBaseApp/top/vlinacApp/src/vlinacMain.cpp
Normal file
@@ -0,0 +1,21 @@
|
||||
/* vlinacMain.cpp */
|
||||
/* Author: Marty Kraimer Date: 17MAR2000 */
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
#include <stddef.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "epicsThread.h"
|
||||
#include "iocsh.h"
|
||||
|
||||
int main(int argc,char *argv[])
|
||||
{
|
||||
if(argc>=2) {
|
||||
iocsh(argv[1]);
|
||||
epicsThreadSleep(.2);
|
||||
}
|
||||
iocsh(NULL);
|
||||
return(0);
|
||||
}
|
||||
Reference in New Issue
Block a user