#errlogInit(5000) < envPaths # Tell EPICS all about the record types, device-support modules, drivers, etc. dbLoadDatabase("../../dbd/dsm.dbd") dsm_registerRecordDeviceDriver(pdbbase) # Unfortunately, iocsh doesn't support looping... # Local serial port drvAsynSerialPortConfigure("serial0", "/dev/ttyUSB0", 0, 0, 0) drvAsynSerialPortConfigure("serial1", "/dev/ttyUSB1", 0, 0, 0) drvAsynSerialPortConfigure("serial2", "/dev/ttyUSB2", 0, 0, 0) drvAsynSerialPortConfigure("serial3", "/dev/ttyUSB3", 0, 0, 0) drvAsynSerialPortConfigure("serial4", "/dev/ttyUSB4", 0, 0, 0) drvAsynSerialPortConfigure("serial5", "/dev/ttyUSB5", 0, 0, 0) drvAsynSerialPortConfigure("serial6", "/dev/ttyUSB6", 0, 0, 0) drvAsynSerialPortConfigure("serial7", "/dev/ttyUSB7", 0, 0, 0) asynSetOption("serial0", 0, "baud", "115200") asynSetOption("serial1", 0, "baud", "115200") asynSetOption("serial2", 0, "baud", "115200") asynSetOption("serial3", 0, "baud", "115200") asynSetOption("serial4", 0, "baud", "115200") asynSetOption("serial5", 0, "baud", "115200") asynSetOption("serial6", 0, "baud", "115200") asynSetOption("serial7", 0, "baud", "115200") asynSetOption("serial0", 0, "bits", "8") asynSetOption("serial1", 0, "bits", "8") asynSetOption("serial2", 0, "bits", "8") asynSetOption("serial3", 0, "bits", "8") asynSetOption("serial4", 0, "bits", "8") asynSetOption("serial5", 0, "bits", "8") asynSetOption("serial6", 0, "bits", "8") asynSetOption("serial7", 0, "bits", "8") asynSetOption("serial0", 0, "parity", "none") asynSetOption("serial1", 0, "parity", "none") asynSetOption("serial2", 0, "parity", "none") asynSetOption("serial3", 0, "parity", "none") asynSetOption("serial4", 0, "parity", "none") asynSetOption("serial5", 0, "parity", "none") asynSetOption("serial6", 0, "parity", "none") asynSetOption("serial7", 0, "parity", "none") asynSetOption("serial0", 0, "stop", "1") asynSetOption("serial1", 0, "stop", "1") asynSetOption("serial2", 0, "stop", "1") asynSetOption("serial3", 0, "stop", "1") asynSetOption("serial4", 0, "stop", "1") asynSetOption("serial5", 0, "stop", "1") asynSetOption("serial6", 0, "stop", "1") asynSetOption("serial7", 0, "stop", "1") asynOctetSetInputEos("serial0", 0, "\r") asynOctetSetInputEos("serial1", 0, "\r") asynOctetSetInputEos("serial2", 0, "\r") asynOctetSetInputEos("serial3", 0, "\r") asynOctetSetInputEos("serial4", 0, "\r") asynOctetSetInputEos("serial5", 0, "\r") asynOctetSetInputEos("serial6", 0, "\r") asynOctetSetInputEos("serial7", 0, "\r") asynOctetSetOutputEos("serial0", 0, "\r") asynOctetSetOutputEos("serial1", 0, "\r") asynOctetSetOutputEos("serial2", 0, "\r") asynOctetSetOutputEos("serial3", 0, "\r") asynOctetSetOutputEos("serial4", 0, "\r") asynOctetSetOutputEos("serial5", 0, "\r") asynOctetSetOutputEos("serial6", 0, "\r") asynOctetSetOutputEos("serial7", 0, "\r") asynSetTraceIOMask("serial0", 0, 2) asynSetTraceIOMask("serial1", 0, 2) asynSetTraceIOMask("serial2", 0, 2) asynSetTraceIOMask("serial3", 0, 2) asynSetTraceIOMask("serial4", 0, 2) asynSetTraceIOMask("serial5", 0, 2) asynSetTraceIOMask("serial6", 0, 2) asynSetTraceIOMask("serial7", 0, 2) # Turn on the power supply and set the deadband asynOctetConnect("initConnection", "serial0", 0) asynOctetWrite("initConnection", "EPS") asynOctetWrite("initConnection", "SDB 10") asynOctetDisconnect('initConnection') # Turn on the power supply and set the deadband asynOctetConnect("initConnection", "serial1", 0) asynOctetWrite("initConnection", "EPS") asynOctetWrite("initConnection", "SDB 10") asynOctetDisconnect('initConnection') # Turn on the power supply and set the deadband asynOctetConnect("initConnection", "serial2", 0) asynOctetWrite("initConnection", "EPS") asynOctetWrite("initConnection", "SDB 10") asynOctetDisconnect('initConnection') # Turn on the power supply and set the deadband asynOctetConnect("initConnection", "serial3", 0) asynOctetWrite("initConnection", "EPS") asynOctetWrite("initConnection", "SDB 10") asynOctetDisconnect('initConnection') # Turn on the power supply and set the deadband asynOctetConnect("initConnection", "serial4", 0) asynOctetWrite("initConnection", "EPS") asynOctetWrite("initConnection", "SDB 10") asynOctetDisconnect('initConnection') # Turn on the power supply and set the deadband asynOctetConnect("initConnection", "serial5", 0) asynOctetWrite("initConnection", "EPS") asynOctetWrite("initConnection", "SDB 10") asynOctetDisconnect('initConnection') # Turn on the power supply and set the deadband asynOctetConnect("initConnection", "serial6", 0) asynOctetWrite("initConnection", "EPS") asynOctetWrite("initConnection", "SDB 10") asynOctetDisconnect('initConnection') # Turn on the power supply and set the deadband asynOctetConnect("initConnection", "serial7", 0) asynOctetWrite("initConnection", "EPS") asynOctetWrite("initConnection", "SDB 10") asynOctetDisconnect('initConnection') MD90CreateController("MD900", "serial0", 1, 100, 5000) MD90CreateController("MD901", "serial1", 1, 100, 5000) MD90CreateController("MD902", "serial2", 1, 100, 5000) MD90CreateController("MD903", "serial3", 1, 100, 5000) MD90CreateController("MD904", "serial4", 1, 100, 5000) MD90CreateController("MD905", "serial5", 1, 100, 5000) MD90CreateController("MD906", "serial6", 1, 100, 5000) MD90CreateController("MD907", "serial7", 1, 100, 5000) ### Motors dbLoadTemplate "motor.substitutions.md90.multi" dbLoadRecords("$(ASYN)/db/asynRecord.db", "P=DSM:,R=serial0,PORT=serial0,ADDR=0,OMAX=80,IMAX=80") dbLoadRecords("$(ASYN)/db/asynRecord.db", "P=DSM:,R=serial1,PORT=serial1,ADDR=0,OMAX=80,IMAX=80") dbLoadRecords("$(ASYN)/db/asynRecord.db", "P=DSM:,R=serial2,PORT=serial2,ADDR=0,OMAX=80,IMAX=80") dbLoadRecords("$(ASYN)/db/asynRecord.db", "P=DSM:,R=serial3,PORT=serial3,ADDR=0,OMAX=80,IMAX=80") dbLoadRecords("$(ASYN)/db/asynRecord.db", "P=DSM:,R=serial4,PORT=serial4,ADDR=0,OMAX=80,IMAX=80") dbLoadRecords("$(ASYN)/db/asynRecord.db", "P=DSM:,R=serial5,PORT=serial5,ADDR=0,OMAX=80,IMAX=80") dbLoadRecords("$(ASYN)/db/asynRecord.db", "P=DSM:,R=serial6,PORT=serial6,ADDR=0,OMAX=80,IMAX=80") dbLoadRecords("$(ASYN)/db/asynRecord.db", "P=DSM:,R=serial7,PORT=serial7,ADDR=0,OMAX=80,IMAX=80") iocInit # This IOC does not use save/restore, so set values of some PVs dbpf("DSM:m0.RTRY", "0") dbpf("DSM:m0.TWV", "0.1") dbpf("DSM:m0.VMAX", "0.625") dbpf("DSM:m1.RTRY", "0") dbpf("DSM:m1.TWV", "0.1") dbpf("DSM:m1.VMAX", "0.625") dbpf("DSM:m2.RTRY", "0") dbpf("DSM:m2.TWV", "0.1") dbpf("DSM:m2.VMAX", "0.625") dbpf("DSM:m3.RTRY", "0") dbpf("DSM:m3.TWV", "0.1") dbpf("DSM:m3.VMAX", "0.625") dbpf("DSM:m4.RTRY", "0") dbpf("DSM:m4.TWV", "0.1") dbpf("DSM:m4.VMAX", "0.625") dbpf("DSM:m5.RTRY", "0") dbpf("DSM:m5.TWV", "0.1") dbpf("DSM:m5.VMAX", "0.625") dbpf("DSM:m6.RTRY", "0") dbpf("DSM:m6.TWV", "0.1") dbpf("DSM:m6.VMAX", "0.625") dbpf("DSM:m7.RTRY", "0") dbpf("DSM:m7.TWV", "0.1") dbpf("DSM:m7.VMAX", "0.625")