From 32341853c6b17bef4aa792e375cc1c3e53dd07e2 Mon Sep 17 00:00:00 2001 From: Keenan Lang <klang@aps.anl.gov> Date: Fri, 5 Aug 2016 11:40:52 -0500 Subject: [PATCH] tyGSAsynInit uses characters for handshaking and parity, iocsh doesn't recognize the difference between characters and strins. Switched startup file to use a more standard asyn setup to run under iocsh. --- iocBoot/iocxxx/vxWorks/serial.cmd | 89 +++++++++++++++++++++++-------- 1 file changed, 66 insertions(+), 23 deletions(-) diff --git a/iocBoot/iocxxx/vxWorks/serial.cmd b/iocBoot/iocxxx/vxWorks/serial.cmd index ba16014..bee8105 100644 --- a/iocBoot/iocxxx/vxWorks/serial.cmd +++ b/iocBoot/iocxxx/vxWorks/serial.cmd @@ -13,39 +13,58 @@ tyGSOctalDrv(1) # defined in ipacAddXYZ() calls.) # slot - location of module on carrier -- 0..3 for slot A..slot D tyGSOctalModuleInit("UART_0", "232", 0x80, 0, 0) +tyGSOctalDevCreateAll("serial", "UART_0", 1000, 1000) # Creates octet ports serial0 - serial6 + +#serial0 - SR570 +#serial1 - +#serial2 - Newport PM500 +#serial3 - +#serial4 - ACS MCB-4B +#serial5 - +#serial6 - Newport MM4000 +#serial7 - Love Controllers -# int tyGSAsynInit(char *port, char *moduleName, int channel, int baud, -# char parity, int sbits, int dbits, char handshake, -# char *inputEos, char *outputEos) -tyGSAsynInit("serial1", "UART_0", 0, 9600,'N',2,8,'N',"\r","\r") /* SRS570 */ -tyGSAsynInit("serial2", "UART_0", 1, 9600,'E',1,7,'N',"\r\n","\r\n") /* */ -tyGSAsynInit("serial3", "UART_0", 2, 9600,'E',1,7,'N',"","\n") /* Digitel */ -tyGSAsynInit("serial4", "UART_0", 3, 9600,'N',1,8,'N',"\n","\n") /* MPC */ -tyGSAsynInit("serial5", "UART_0", 4,19200,'N',1,8,'N',"\r","\r") /* ACS MCB-4B */ -tyGSAsynInit("serial6", "UART_0", 5, 9600,'N',1,8,'N',"\r\n","\r") /* XIA slit */ -tyGSAsynInit("serial7", "UART_0", 6,38400,'N',1,8,'N',"\r","\r") /* Newport MM4000 */ -tyGSAsynInit("serial8", "UART_0", 7,19200,'N',1,8,'N',"","") /* Love controllers */ # Newport MM4000 driver setup parameters: # (1) maximum # of controllers, # (2) motor task polling rate (min=1Hz, max=60Hz) #MM4000Setup(1, 10) +# Newport MM4000 serial connection settings +#asynSetOption("serial6", -1, "baud", "38400") +#asynSetOption("serial6", -1, "bits", "8") +#asynSetOption("serial6", -1, "stop", "1") +#asynSetOption("serial6", -1, "parity", "none") +#asynSetOption("serial6", -1, "clocal", "Y") +#asynSetOption("serial6", -1, "crtscts", "N") +#asynOctetSetInputEos("serial6", -1, "\r") +#asynOctetSetOutputEos("serial6", -1, "\r") + # Newport MM4000 driver configuration parameters: # (1) controller -# (2) asyn port name (e.g. serial1 or gpib1) +# (2) asyn port name (e.g. serial0 or gpib1) # (3) GPIB address (0 for serial) -#MM4000Config(0, "serial7", 0) +#MM4000Config(0, "serial6", 0) # Newport PM500 driver setup parameters: # (1) maximum number of controllers in system # (2) motor task polling rate (min=1Hz,max=60Hz) #PM500Setup(1, 10) +# Newport PM500 serial connection settings +#asynSetOption("serial2", -1, "baud", "9600") +#asynSetOption("serial2", -1, "bits", "7") +#asynSetOption("serial2", -1, "stop", "2") +#asynSetOption("serial2", -1, "parity", "even") +#asynSetOption("serial2", -1, "clocal", "N") # Hardware handshaking +#asynSetOption("serial2", -1, "crtscts", "N") +#asynOctetSetInputEos("serial2", -1, "\r") +#asynOctetSetOutputEos("serial2", -1, "\r") + # Newport PM500 configuration parameters: # (1) controller -# (2) asyn port name (e.g. serial1 or gpib1) -#PM500Config(0, "serial3") +# (2) asyn port name (e.g. serial0 or gpib1) +#PM500Config(0, "serial2") # McClennan PM304 driver setup parameters: # (1) maximum number of controllers in system @@ -56,43 +75,67 @@ tyGSAsynInit("serial8", "UART_0", 7,19200,'N',1,8,'N',"","") /* Love contr # (1) controller being configured # (2) MPF serial server name (string) # (3) Number of axes on this controller -#PM304Config(0, "serial4", 1) +#PM304Config(0, "serial3", 1) # ACS MCB-4B driver setup parameters: # (1) maximum number of controllers in system # (2) motor task polling rate (min=1Hz, max=60Hz) #MCB4BSetup(1, 10) +# ACS MCB-4B serial connection settings +#asynSetOption("serial4", -1, "baud", "19200") +#asynSetOption("serial4", -1, "bits", "8") +#asynSetOption("serial4", -1, "stop", "1") +#asynSetOption("serial4", -1, "parity", "none") +#asynSetOption("serial4", -1, "clocal", "Y") +#asynSetOption("serial4", -1, "crtscts", "N") +#asynOctetSetInputEos("serial4", -1, "\r") +#asynOctetSetOutputEos("serial4", -1, "\r") + # ACS MCB-4B driver configuration parameters: # (1) controller being configured # (2) asyn port name (string) -#MCB4BConfig(0, "serial5") +#MCB4BConfig(0, "serial4") # Load asynRecord records on all ports dbLoadTemplate("asynRecord.substitutions") # send impromptu message to serial device, parse reply # (was serial_OI_block) -dbLoadRecords("$(IP)/ipApp/Db/deviceCmdReply.db","P=$(PREFIX),N=1,PORT=serial1,ADDR=0,OMAX=100,IMAX=100") +dbLoadRecords("$(IP)/ipApp/Db/deviceCmdReply.db","P=$(PREFIX),N=1,PORT=serial0,ADDR=0,OMAX=100,IMAX=100") # Stanford Research Systems SR570 Current Preamplifier -#dbLoadRecords("$(IP)/ipApp/Db/SR570.db", "P=$(PREFIX),A=A1,PORT=serial1") +#asynSetOption("serial0", -1, "baud", "9600") +#asynSetOption("serial0", -1, "bits", "8") +#asynSetOption("serial0", -1, "stop", "2") +#asynSetOption("serial0", -1, "parity", "none") +#asynSetOption("serial0", -1, "clocal", "Y") +#asynSetOption("serial0", -1, "crtscts", "N") +#asynOctetSetInputEos("serial0", -1, "\r") +#asynOctetSetOutputEos("serial0", -1, "\r") +#dbLoadRecords("$(IP)/ipApp/Db/SR570.db", "P=$(PREFIX),A=A1,PORT=serial0") # Keithley 2000 DMM -#dbLoadRecords("$(IP)/ipApp/Db/Keithley2kDMM_mf.db","P=$(PREFIX),Dmm=D1,PORT=serial1") +#dbLoadRecords("$(IP)/ipApp/Db/Keithley2kDMM_mf.db","P=$(PREFIX),Dmm=D1,PORT=serial0") # channels: 10, 20, or 22; model: 2000 or 2700 #doAfterIocInit("seq &Keithley2kDMM,('P=$(PREFIX), Dmm=D1, channels=22, model=2700')") #doAfterIocInit("seq &Keithley2kDMM,('P=$(PREFIX), Dmm=D2, channels=10, model=2000')") # Oxford Cyberstar X1000 Scintillation detector and pulse processing unit -#dbLoadRecords("$(IP)/ipApp/Db/Oxford_X1k.db","P=$(PREFIX),S=s1,PORT=serial4") +#dbLoadRecords("$(IP)/ipApp/Db/Oxford_X1k.db","P=$(PREFIX),S=s1,PORT=serial3") # Oxford ILM202 Cryogen Level Meter (Serial) -#dbLoadRecords("$(IP)/ipApp/Db/Oxford_ILM202.db","P=$(PREFIX),S=s1,PORT=serial5") +#dbLoadRecords("$(IP)/ipApp/Db/Oxford_ILM202.db","P=$(PREFIX),S=s1,PORT=serial4") # Love Controllers #epicsEnvSet("devLoveDebug",1) #epicsEnvSet("loveServerDebug",1) -#dbLoadRecords("$(IP)/ipApp/Db/love.db", "P=$(PREFIX),Q=Love_0,C=0,PORT=PORT2,ADDR=1") +#asynSetOption("serial7", -1, "baud", "19200") +#asynSetOption("serial7", -1, "bits", "8") +#asynSetOption("serial7", -1, "stop", "1") +#asynSetOption("serial7", -1, "parity", "none") +#asynSetOption("serial7", -1, "clocal", "Y") +#asynSetOption("serial7", -1, "crtscts", "N") +#dbLoadRecords("$(IP)/ipApp/Db/love.db", "P=$(PREFIX),Q=Love_0,C=0,PORT=serial7,ADDR=1") # END serial.cmd -------------------------------------------------------------- -- GitLab