diff --git a/README.md b/README.md index 7e3d9d82..25912443 100644 --- a/README.md +++ b/README.md @@ -6,4 +6,8 @@ For more information, see: * [motor wiki](https://github.com/epics-modules/motor/wiki) * http://www.aps.anl.gov/bcda/synApps +[Report an issue with Motor](https://github.com/epics-modules/motor/issues/new?title=%20ISSUE%20NAME%20HERE&body=**Describe%20the%20issue**%0A%0A**Steps%20to%20reproduce**%0A1.%20Step%20one%0A2.%20Step%20two%0A3.%20Step%20three%0A%0A**Expected%20behaivour**%0A%0A**Actual%20behaviour**%0A%0A**Build%20Environment**%0AArchitecture:%0AEpics%20Base%20Version:%0ADependent%20Module%20Versions:&labels=bug) +[Request a feature](https://github.com/epics-modules/motor/issues/new?title=%20FEATURE%20SHORT%20DESCRIPTION&body=**Feature Long Description**%0A%0A**Why%20should%20this%20be%20added?**%0A&labels=enhancement) + + converted from APS SVN repository: Fri Oct 16 12:31:41 CDT 2015 diff --git a/iocsh/ACS_MCB4B.iocsh b/iocsh/ACS_MCB4B.iocsh new file mode 100644 index 00000000..cc24ccce --- /dev/null +++ b/iocsh/ACS_MCB4B.iocsh @@ -0,0 +1,25 @@ +# ### ACS_MCB4B.iocsh ### + +#- ################################################### +#- PORT - Serial port for communications +#- INSTANCE - Name of asyn port to create +#- +#- NUM_AXES - Optional: Number of axes to create for this controller +#- Default: 1 +#- +#- MOVING_POLL - Optional: Moving poll rate (ms) +#- Default: POLL_RATE +#- +#- IDLE_POLL - Optional: Idle poll rate (ms) +#- Default: POLL_RATE +#- +#- POLL_RATE - Optional: Poll rate (ms) +#- Default: 100 +#- ################################################### + +# ACS MCB-4B serial connection settings +iocshLoad("$(IP)/iocsh/setSerialParams.iocsh", "PORT=$(PORT), BAUD=19200, BITS=8, STOP=1, PARITY=none") +asynOctetSetInputEos( "$(PORT)", -1, "\r") +asynOctetSetOutputEos("$(PORT)", -1, "\r") + +MCB4BCreateController("$(INSTANCE)", "$(PORT)", $(NUM_AXES=1), $(MOVING_POLL=$(POLL_RATE=100)), $(IDLE_POLL=$(POLL_RATE=100))) diff --git a/iocsh/EXAMPLE_motorSim.substitutions b/iocsh/EXAMPLE_motorSim.substitutions new file mode 100644 index 00000000..eeaf8871 --- /dev/null +++ b/iocsh/EXAMPLE_motorSim.substitutions @@ -0,0 +1,7 @@ +file "$(MOTOR)/db/asyn_motor.db" +{ +pattern +{N, M, ADDR, DESC, EGU, DIR, VELO, VBAS, ACCL, BDST, BVEL, BACC, MRES, PREC} +{1, "m$(N)", 0, "motor $(N)", degrees, Pos, 1, .1, .2, 0, 1, .2, 0.01, 5} +#{2, "m$(N)", 1, "motor $(N)", degrees, Pos, 1, .1, .2, 0, 1, .2, 0.01, 5} +} diff --git a/iocsh/McClennan_PM304.iocsh b/iocsh/McClennan_PM304.iocsh new file mode 100644 index 00000000..ee98bd8c --- /dev/null +++ b/iocsh/McClennan_PM304.iocsh @@ -0,0 +1,31 @@ +# ### McClennan_PM304.iocsh ### + +#- ################################################### +#- PORT - Serial port for communications +#- CONTROLLER - Optional: Which controller is being configured +#- Default: 0 +#- +#- NUM_AXES - Optional: Number of axes on this controller +#- Default: 1 +#- +#- MAX_CONTROLLERS - Optional: Max number of controllers that will be configured +#- Default: 1 +#- +#- POLL_RATE - Optional: Controller poll rate in hertz +#- Default: 10 +#- ################################################### + +#- McClennan PM304 driver setup parameters: +#- (1) maximum number of controllers in system +#- (2) motor task polling rate (min=1Hz, max=60Hz) +$(PM304_INIT_COMPLETE="") PM304Setup($(MAX_CONTROLLERS=1), $(POLL_RATE=10)) + +#- Insert serial port configuration settings here + +#- McClennan PM304 driver configuration parameters: +#- (1) controller being configured +#- (2) MPF serial server name (string) +#- (3) Number of axes on this controller +PM304Config($(CONTROLLER=0), "$(PORT)", $(NUM_AXES=1)) + +epicsEnvSet("PM304_INIT_COMPLETE", "#") diff --git a/iocsh/Newfocus_PMNC87xx.iocsh b/iocsh/Newfocus_PMNC87xx.iocsh new file mode 100644 index 00000000..f05693ff --- /dev/null +++ b/iocsh/Newfocus_PMNC87xx.iocsh @@ -0,0 +1,37 @@ +# ### Newfocus_PMNC87xx.iocsh ### + +#- ################################################### +#- PORT - Serial port for communications +#- CONTROLLER - Optional: Which controller is being configured +#- Default: 0 +#- +#- NUM_AXES - Optional: Number of axes on this controller +#- Default: 1 +#- +#- MAX_CONTROLLERS - Optional: Max number of controllers that will be configured +#- Default: 1 +#- +#- MAX_DRIVES - Optional: Max number of drives per controller +#- Default: 1 +#- +#- POLL_RATE - Optional: Controller poll rate in hertz +#- Default: 10 +#- ################################################### + +#- NewFocus Picomotor driver setup parameters: +#- (1) maximum number of controllers in system +#- (2) maximum drives per controller +#- (3) motor task polling rate (min=1Hz, max=60Hz) +$(PMNC87XX_INIT_COMPLETE="") PMNC87xxSetup($(MAX_CONTROLLERS=1), $(MAX_DRIVES=1), $(POLL_RATE=10)) + +#- Serial port configuration +iocshLoad("$(IP)/iocsh/setSerialParams.iocsh", "PORT=$(PORT), BAUD=19200, BITS=8, STOP=1, PARITY=none") +asynOctetSetInputEos( "$(PORT)", -1, "\r") +asynOctetSetOutputEos("$(PORT)", -1, "\r") + +#- NewFocus Picomotor driver configuration parameters: +#- (1) controller being configured +#- (2) asyn port name (string) +PMNC87xxConfig($(CONTROLLER=0), "$(PORT)") + +epicsEnvSet("PMNC87XX_INIT_COMPLETE", "#") diff --git a/iocsh/Newport_ESP300.iocsh b/iocsh/Newport_ESP300.iocsh new file mode 100644 index 00000000..e681164a --- /dev/null +++ b/iocsh/Newport_ESP300.iocsh @@ -0,0 +1,30 @@ +# ### Newport_ESP300.iocsh ### + +#- ################################################### +#- PORT - Serial port for communications +#- CONTROLLER - Optional: Which controller is being configured +#- Default: 0 +#- +#- MAX_CONTROLLERS - Optional: Max number of controllers that will be configured +#- Default: 1 +#- +#- POLL_RATE - Optional: Polling increment in 1/60 sec +#- Default: 6 +#- ################################################### + +#- Newport ESP300 driver setup parameters: +#- (1) maximum number of controllers in system +#- (2) motor task polling rate (min=1Hz,max=60Hz) +$(ESP300_INIT_COMPLETE="") ESP300Setup($(MAX_CONTROLLERS=1), $(POLL_RATE=10)) + +# Newport ESP300 serial connection settings +iocshLoad("$(IP)/iocsh/setSerialParams.iocsh", "PORT=$(PORT), BAUD=9600, BITS=8, STOP=1, PARITY=none") +asynOctetSetInputEos( "$(PORT)", -1, "") +asynOctetSetOutputEos("$(PORT)", -1, "") + +#- Newport ESP300 driver configuration parameters: +#- (1) controller# being configured +#- (2) ASYN port name +ESP300Config($(CONTROLLER=0), "$(PORT)") + +epicsEnvSet("ESP300_INIT_COMPLETE", "#") diff --git a/iocsh/Newport_MM4000.iocsh b/iocsh/Newport_MM4000.iocsh new file mode 100644 index 00000000..5b33aadd --- /dev/null +++ b/iocsh/Newport_MM4000.iocsh @@ -0,0 +1,32 @@ +# ### Newport_NM4000.iocsh ### + +#- ################################################### +#- PORT - Serial port for communications +#- CONTROLLER - Optional: Which controller is being configured +#- Default: 0 +#- +#- MAX_CONTROLLERS - Optional: Max number of controllers that will be configured +#- Default: 1 +#- +#- POLL_RATE - Optional: Controller poll rate in hertz +#- Default: 10 +#- ################################################### + + +#- Newport MM4000 driver setup parameters: +#- (1) maximum # of controllers, +#- (2) motor task polling rate (min=1Hz, max=60Hz) +$(MM4000_INIT_COMPLETE="") MM4000Setup($(MAX_CONTROLLERS=1), $(POLL_RATE=10)) + +# Newport MM4000 serial connection settings +iocshLoad("$(IP)/iocsh/setSerialParams.iocsh", "PORT=$(PORT), BAUD=38400, BITS=8, STOP=1, PARITY=none") +asynOctetSetInputEos( "$(PORT)", -1, "\r") +asynOctetSetOutputEos("$(PORT)", -1, "\r") + +# Newport MM4000 driver configuration parameters: +# (1) controller +# (2) asyn port name (e.g. serial0 or gpib1) +# (3) GPIB address (0 for serial) +MM4000Config($(CONTROLLER=0), "$(PORT)", 0) + +epicsEnvSet("MM4000_INIT_COMPLETE", "#") diff --git a/iocsh/Newport_PM500.iocsh b/iocsh/Newport_PM500.iocsh new file mode 100644 index 00000000..bf37a272 --- /dev/null +++ b/iocsh/Newport_PM500.iocsh @@ -0,0 +1,30 @@ +# ### Newport_PM500.iocsh ### + +#- ################################################### +#- PORT - Serial port for communications +#- CONTROLLER - Optional: Which controller is being configured +#- Default: 0 +#- +#- MAX_CONTROLLERS - Optional: Max number of controllers that will be configured +#- Default: 1 +#- +#- POLL_RATE - Optional: Controller poll rate in hertz +#- Default: 10 +#- ################################################### + +#- Newport PM500 driver setup parameters: +#- (1) maximum number of controllers in system +#- (2) motor task polling rate (min=1Hz,max=60Hz) +$(PM500_INIT_COMPLETE="") PM500Setup($(MAX_CONTROLLERS=1), $(POLL_RATE=10)) + +#- Newport PM500 serial connection settings +iocshLoad("$(IP)/iocsh/setSerialParams.iocsh", "PORT=$(PORT), BAUD=9600, BITS=7, STOP=2, PARITY=even, HANDSHAKE=hardware") +asynOctetSetInputEos( "$(PORT)", -1, "\r") +asynOctetSetOutputEos("$(PORT)", -1, "\r") + +#- Newport PM500 configuration parameters: +#- (1) controller +#- (2) asyn port name (e.g. serial0 or gpib1) +PM500Config($(CONTROLLER=0), "$(PORT)") + +epicsEnvSet("PM500_INIT_COMPLETE", "#") diff --git a/iocsh/PI_C630.iocsh b/iocsh/PI_C630.iocsh new file mode 100644 index 00000000..b9aab5b3 --- /dev/null +++ b/iocsh/PI_C630.iocsh @@ -0,0 +1,49 @@ +# ### PI_C630.iocsh ### + +#- ################################################### +#- PORT - Serial port for communications +#- CONTROLLER - Optional: Which controller is being configured +#- Default: 0 +#- +#- MAX_CONTROLLERS - Optional: Max number of controllers that will be configured +#- Default: 1 +#- +#- NUM_AXES - Optional: Max number of axes per controller +#- Default: 1 +#- +#- POLL_RATE - Optional: Controller poll rate in hertz +#- Default: 10 +#- +#- CURR[1-9] - Optional: Current settings for axes 1 through 9 +#- Current equals 100mA * setting, maximum 800mA. +#- Default: 0 (off) +#- ################################################### + + +#-################################################ +#- PI C-630 driver setup parameters: +#- Load PIC630Setup once. +#- (1) max # of controller groups. Controller groups are per serial port. +#- (2) max # axes per controller group. Maximum 9. (addr 1-9) +#- (3) motor task polling rate (min=1Hz, max=60Hz, 10Hz works well) +#- Example: +#- PIC630Setup(1, 2, 10) 1 group. 2 axes (controllers) in the group. 10Hz poll. +$(PI_C630_INIT_COMPLETE="") PIC630Setup($(MAX_CONTROLLERS=1), $(NUM_AXES=1), $(POLL_RATE=10)) + +# PI C630 serial connection settings +iocshLoad("$(IP)/iocsh/setSerialParams.iocsh", "PORT=$(PORT), BAUD=19200, BITS=8, STOP=1, PARITY=none") +asynOctetSetInputEos( "$(PORT)", -1, "\r") +asynOctetSetOutputEos("$(PORT)", -1, "\r") + +#- PIC630 driver configuration parameters: +#- Load one PIC630Config for each group of PI C-630 drivers. +#- (1) "Controller group" number +#- (2) MPF card +#- (3)-(11) Current setting per axis (1-9). Leave at 0 if unused. +#- Choices: 0=OFF, 1=100mA, 2=200mA, ... 8=800mA. +#- Example: +#- PIC630Config(0, "serial1, 5, 3, 0, 0, 0, 0, 0, 0, 0") +#- Group 0, asyn serial port 1, Axis1=.5A, Axis2=.3A, others OFF +PIC630Config($(CONTROLLER=0), "$(PORT)", $(CURR1=0), $(CURR2=0), $(CURR3=0), $(CURR4=0), $(CURR5=0), $(CURR6=0), $(CURR7=0), $(CURR8=0), $(CURR9=0)) + +epicsEnvSet("PI_C630_INIT_COMPLETE", "#") diff --git a/iocsh/PI_C867.iocsh b/iocsh/PI_C867.iocsh new file mode 100644 index 00000000..39b04a22 --- /dev/null +++ b/iocsh/PI_C867.iocsh @@ -0,0 +1,28 @@ +# ### PI_C867.iocsh ### + +#- ################################################### +#- PORT - Serial port for communications +#- CONTROLLER - Optional: Which controller is being configured +#- Controller port name will be PIC867$(CONTROLLER) +#- Default: 0 +#- +#- NUM_AXES - Optional: Max number of axes per controller +#- Default: 1 +#- +#- MOVING_POLL - Optional: Moving poll rate (in msec) +#- Default: POLL_RATE +#- +#- IDLE_POLL - Optional: Idle poll rate (in msec) +#- Default: POLL_RATE +#- +#- POLL_RATE - Optional: Poll rate in msec +#- Default: 100 +#- ################################################### + + +# PI C867 serial connection settings +iocshLoad("$(IP)/iocsh/setSerialParams.iocsh", "PORT=$(PORT), BAUD=38400, BITS=8, STOP=1, PARITY=none") +asynOctetSetInputEos( "$(PORT)", -1, "\n\r") +asynOctetSetOutputEos("$(PORT)", -1, "\n") + +PI_GCS2_CreateController("PIC867$(CONTROLLER)", "$(PORT)", $(NUM_AXES=0), 0, 0, $(MOVING_POLL=$(POLL_RATE=100)), $(IDLE_POLL=$(POLL_RATE=100))) diff --git a/iocsh/PI_E710.iocsh b/iocsh/PI_E710.iocsh new file mode 100644 index 00000000..b4bc2138 --- /dev/null +++ b/iocsh/PI_E710.iocsh @@ -0,0 +1,31 @@ +# ### PI_E710.iocsh ### + +#- ################################################### +#- PORT - Serial port for communications +#- CONTROLLER - Optional: Which controller is being configured +#- Default: 0 +#- +#- MAX_CONTROLLERS - Optional: Max number of controllers that will be configured +#- Default: 1 +#- +#- POLL_RATE - Optional: Controller poll rate in hertz +#- Default: 10 +#- ################################################### + +#- PI E-710 driver setup parameters: +#- (1) maximum # of controllers, +#- (2) motor task polling rate (min=1Hz, max=60Hz) +$(E710_INIT_COMPLETE="") PIE710Setup($(MAX_CONTROLLERS=1), $(POLL_RATE=10)) + +# PI E710 serial connection settings +iocshLoad("$(IP)/iocsh/setSerialParams.iocsh", "PORT=$(PORT), BAUD=9600, BITS=8, STOP=1, PARITY=none") +asynOctetSetInputEos( "$(PORT)", -1, "\n") +asynOctetSetOutputEos("$(PORT)", -1, "\n") + +#- PI E-710 driver configuration parameters: +#- (1) controller +#- (2) asyn port name (e.g. serial1 or gpib1) +#- (3) GPIB address (0 for serial) +PIE710Config($(CONTROLLER=0), "$(PORT)", 0) + +epicsEnvSet("E710_INIT_COMPLETE", "#") diff --git a/iocsh/PI_E816.iocsh b/iocsh/PI_E816.iocsh new file mode 100644 index 00000000..3007338c --- /dev/null +++ b/iocsh/PI_E816.iocsh @@ -0,0 +1,30 @@ +# ### PI_E816.iocsh ### + +#- ################################################### +#- PORT - Serial port for communications +#- CONTROLLER - Optional: Which controller is being configured +#- Default: 0 +#- +#- MAX_CONTROLLERS - Optional: Max number of controllers that will be configured +#- Default: 1 +#- +#- POLL_RATE - Optional: Controller poll rate in hertz +#- Default: 10 +#- ################################################### + +#- PI E-816 driver setup parameters: +#- (1) maximum number of controllers in system +#- (2) motor task polling rate (min=1Hz,max=60Hz) +$(E816_INIT_COMPLETE="") PIE816Setup($(MAX_CONTROLLERS=1), $(POLL_RATE=10)) + +# PI E816 serial connection settings +iocshLoad("$(IP)/iocsh/setSerialParams.iocsh", "PORT=$(PORT), BAUD=38400, BITS=8, STOP=1, PARITY=none, HANDSHAKE=hardware") +asynOctetSetInputEos( "$(PORT)", -1, "\n") +asynOctetSetOutputEos("$(PORT)", -1, "\n") + +# PI E-816 driver configuration parameters: +# (1) controller# being configured, +# (2) ASYN port name +PIE816Config($(CONTROLLER=0), "$(PORT)") + +epicsEnvSet("E816_INIT_COMPLETE", "#") diff --git a/iocsh/allstop.iocsh b/iocsh/allstop.iocsh new file mode 100644 index 00000000..e611b504 --- /dev/null +++ b/iocsh/allstop.iocsh @@ -0,0 +1,10 @@ +# ### allstop.iocsh ### + +#- ################################################### +#- PREFIX - IOC Prefix +#- MOTOR - Location of motor module +#- ################################################### + +#- Allstop, alldone +dbLoadRecords("$(MOTOR)/db/motorUtil.db", "P=$(PREFIX)") +doAfterIocInit("motorUtilInit('$(PREFIX)')") diff --git a/iocsh/motorSim.iocsh b/iocsh/motorSim.iocsh new file mode 100644 index 00000000..9af654ba --- /dev/null +++ b/iocsh/motorSim.iocsh @@ -0,0 +1,34 @@ +# ### motorSim.iocsh ### + +#- ################################################### +#- PREFIX - IOC Prefix +#- INSTANCE - Instance name, used to create the low-level driver drvet name +#- Combined with the controller number to create the asyn port name +#- +#- SUB - Optional: Subsitutions file (asyn_motor.db), Macros P, DTYP, PORT, +#- DHLM, DLLM, and INIT will be predefined. +#- Default: $(MOTOR)/iocsh/EXAMPLE_motorSim.substitutions +#- +#- CONTROLLER - Optional: Which controller is being configured +#- Default: 0 +#- +#- NUM_AXES - Optional: Number of axes on this controller +#- Default: 1 +#- +#- LOW_LIM - Optional: Low Limit +#- Default: -32000 +#- +#- HIGH_LIM - Optional: High Limit +#- Default: 32000 +#- +#- HOME - Optional: Home position +#- Default: 0 +#- ################################################### + +# Create simulated motors: ( start card , start axis , low limit, high limit, home posn, # cards, # axes to setup) +motorSimCreate($(CONTROLLER=0), 0, $(LOW_LIM=-32000), $(HIGH_LIM=32000), $(HOME=0), 1, $(NUM_AXES=1)) + +# Setup the Asyn layer (portname, low-level driver drvet name, card, number of axes on card) +drvAsynMotorConfigure("$(INSTANCE)$(CONTROLLER=0)", "$(INSTANCE)", $(CONTROLLER=0), $(NUM_AXES=1)) + +dbLoadTemplate("$(SUB=$(MOTOR)/iocsh/EXAMPLE_motorSim.substitutions", "P=$(PREFIX), DTYP='asynMotor', PORT=$(INSTANCE)$(CONTROLLER=0), DHLM=$(HIGH_LIM=32000), DLLM$(LOW_LIM=32000), INIT=\"\"") diff --git a/motorApp/AcsSrc/drvMCB4B.cc b/motorApp/AcsSrc/drvMCB4B.cc index ea182924..d54821c5 100644 --- a/motorApp/AcsSrc/drvMCB4B.cc +++ b/motorApp/AcsSrc/drvMCB4B.cc @@ -21,6 +21,8 @@ #include #include #include +#include +#include #include "motor.h" #include "AcsRegister.h" #include "drvMCB4B.h" diff --git a/motorApp/AcsTech80Src/devSPiiPlus.cc b/motorApp/AcsTech80Src/devSPiiPlus.cc index 6baf7c33..de40feaf 100644 --- a/motorApp/AcsTech80Src/devSPiiPlus.cc +++ b/motorApp/AcsTech80Src/devSPiiPlus.cc @@ -37,6 +37,7 @@ USAGE... Motor record device level support for ACS Tech80 SPiiPlus #include #include +#include #include "motorRecord.h" #include "motor.h" #include "motordevCom.h" diff --git a/motorApp/AcsTech80Src/drvSPiiPlus.cc b/motorApp/AcsTech80Src/drvSPiiPlus.cc index a9bfa0fa..9f5703d1 100644 --- a/motorApp/AcsTech80Src/drvSPiiPlus.cc +++ b/motorApp/AcsTech80Src/drvSPiiPlus.cc @@ -47,6 +47,8 @@ USAGE... Motor record driver level support for ACS Tech80 #include #include #include +#include +#include #include "motor.h" #include "ACSTech80Register.h" #include "drvSPiiPlus.h" diff --git a/motorApp/AerotechSrc/devSoloist.cc b/motorApp/AerotechSrc/devSoloist.cc index cf1091a7..31faaf6a 100644 --- a/motorApp/AerotechSrc/devSoloist.cc +++ b/motorApp/AerotechSrc/devSoloist.cc @@ -40,6 +40,7 @@ #include #include #include +#include #include "motorRecord.h" #include "motor.h" #include "motordevCom.h" diff --git a/motorApp/AerotechSrc/drvA3200Asyn.cc b/motorApp/AerotechSrc/drvA3200Asyn.cc index fd6fbe37..91b16d6f 100644 --- a/motorApp/AerotechSrc/drvA3200Asyn.cc +++ b/motorApp/AerotechSrc/drvA3200Asyn.cc @@ -191,9 +191,6 @@ static int numA3200Controllers; /* Pointer to array of controller structures */ static A3200Controller *pA3200Controller = NULL; -#define MAX(a, b) ((a)>(b) ? (a) : (b)) -#define MIN(a, b) ((a)<(b) ? (a) : (b)) - static void motorAxisReportAxis(AXIS_HDL pAxis, int level) { if (level > 0) @@ -412,7 +409,6 @@ static int motorAxisSetInteger(AXIS_HDL pAxis, motorAxisParam_t function, int va if (ret_status != asynSuccess || inputBuff[0] != ASCII_ACK_CHAR) { motorParam->setInteger(pAxis->params, motorAxisCommError, 1); - epicsMutexUnlock(pAxis->mutexId); break; } @@ -448,6 +444,8 @@ static int motorAxisSetInteger(AXIS_HDL pAxis, motorAxisParam_t function, int va sprintf(outputBuff, "ENABLE %s", pAxis->axisName); } ret_status = sendAndReceive(pAxis->pController, outputBuff, inputBuff, sizeof(inputBuff)); + /* Set indicator to force status update when Enable does not work. */ + motorParam->setInteger(pAxis->params, motorAxisPowerOn, value); /* Prevent Task #2 from blocking during LINEAR commands. */ ret_status = sendAndReceive(pAxis->pController, (char *) "WAIT MODE AUTO", inputBuff, sizeof(inputBuff)); @@ -881,18 +879,22 @@ int A3200AsynConfig(int card, /* Controller number */ /* Get axes info */ for (axis = 0; axis < numAxes; axis++) { - sprintf(outputBuff, "$strtask0 = GETPARMSTRING %d, PARAMETERID_AxisName", axis); - sendAndReceive(pController, outputBuff, inputBuff, sizeof(inputBuff)); + AXIS_HDL pAxis = &pController->pAxis[axis]; + pAxis->pController = pController; + pAxis->card = card; + pAxis->axis = axis; + pAxis->mutexId = epicsMutexMustCreate(); + pAxis->params = motorParam->create(0, MOTOR_AXIS_NUM_PARAMS); - sendAndReceive(pController, "~GETVARIABLE $strtask0", inputBuff, sizeof(inputBuff)); - if (inputBuff[0] == ASCII_ACK_CHAR) + if (inputBuff[0] != ASCII_ACK_CHAR) + motorParam->setInteger(pAxis->params, motorAxisProblem, 1); /* Signal "Controller Error" to user. */ + else { - AXIS_HDL pAxis = &pController->pAxis[axis]; - pAxis->pController = pController; - pAxis->card = card; - pAxis->axis = axis; - pAxis->mutexId = epicsMutexMustCreate(); - pAxis->params = motorParam->create(0, MOTOR_AXIS_NUM_PARAMS); + sprintf(outputBuff, "$strtask0 = GETPARMSTRING %d, PARAMETERID_AxisName", axis); + sendAndReceive(pController, outputBuff, inputBuff, sizeof(inputBuff)); + + sendAndReceive(pController, "~GETVARIABLE $strtask0", inputBuff, sizeof(inputBuff)); + strncpy(pAxis->axisName, &inputBuff[1], sizeof(pAxis->axisName) - 1); sprintf(outputBuff, GET_PARAM_FORMAT_STRING, "PositionFeedbackType", pAxis->axisName); @@ -938,6 +940,9 @@ int A3200AsynConfig(int card, /* Controller number */ } } + if (inputBuff[0] != ASCII_ACK_CHAR) + return MOTOR_AXIS_ERROR; + sendAndReceive(pController, "~INITQUEUE", inputBuff, sizeof(inputBuff)); /* Prevent Task #2 and #3 from blocking during LINEAR commands. */ diff --git a/motorApp/AerotechSrc/drvEnsembleAsyn.cc b/motorApp/AerotechSrc/drvEnsembleAsyn.cc index 565e25a2..2100fc3d 100644 --- a/motorApp/AerotechSrc/drvEnsembleAsyn.cc +++ b/motorApp/AerotechSrc/drvEnsembleAsyn.cc @@ -206,9 +206,6 @@ static int numEnsembleControllers; /* Pointer to array of controller structures */ static EnsembleController *pEnsembleController=NULL; -#define MAX(a,b) ((a)>(b)? (a): (b)) -#define MIN(a,b) ((a)<(b)? (a): (b)) - static void motorAxisReportAxis(AXIS_HDL pAxis, int level) { if (level > 0) @@ -436,6 +433,8 @@ static int motorAxisSetInteger(AXIS_HDL pAxis, motorAxisParam_t function, int va sprintf(outputBuff, "ENABLE @%d", pAxis->axis); } ret_status = sendAndReceive(pAxis->pController, outputBuff, inputBuff, sizeof(inputBuff)); + /* Set indicator to force status update when Enable does not work. */ + motorParam->setInteger(pAxis->params, motorAxisPowerOn, value); /* Prevent ASCII interpreter from blocking during MOVEABS/INC commands. */ ret_status = sendAndReceive(pAxis->pController, (char *) "WAIT MODE NOWAIT", inputBuff, sizeof(inputBuff)); diff --git a/motorApp/AerotechSrc/drvSoloist.cc b/motorApp/AerotechSrc/drvSoloist.cc index 11107bfc..380689c2 100644 --- a/motorApp/AerotechSrc/drvSoloist.cc +++ b/motorApp/AerotechSrc/drvSoloist.cc @@ -43,6 +43,8 @@ #include #include #include +#include +#include #include "motor.h" #include "drvSoloist.h" #include "asynOctetSyncIO.h" diff --git a/motorApp/FaulhaberSrc/devMCDC2805.cc b/motorApp/FaulhaberSrc/devMCDC2805.cc index 7f3b3073..54caff7f 100644 --- a/motorApp/FaulhaberSrc/devMCDC2805.cc +++ b/motorApp/FaulhaberSrc/devMCDC2805.cc @@ -36,6 +36,7 @@ USAGE... Motor record device level support for Intelligent Motion */ #include +#include #include "motorRecord.h" #include "motor.h" diff --git a/motorApp/FaulhaberSrc/drvMCDC2805.cc b/motorApp/FaulhaberSrc/drvMCDC2805.cc index 6dacf575..63876c1d 100644 --- a/motorApp/FaulhaberSrc/drvMCDC2805.cc +++ b/motorApp/FaulhaberSrc/drvMCDC2805.cc @@ -47,6 +47,7 @@ DESIGN LIMITATIONS... #include #include #include +#include #include "motor.h" #include "drvMCDC2805.h" #include "asynOctetSyncIO.h" diff --git a/motorApp/ImsSrc/devIM483PL.cc b/motorApp/ImsSrc/devIM483PL.cc index 8ebfd43d..3b76c6b0 100644 --- a/motorApp/ImsSrc/devIM483PL.cc +++ b/motorApp/ImsSrc/devIM483PL.cc @@ -41,6 +41,7 @@ USAGE... Motor record device level support for Intelligent Motion */ #include +#include #include "motorRecord.h" #include "motor.h" #include "motordevCom.h" diff --git a/motorApp/ImsSrc/devIM483SM.cc b/motorApp/ImsSrc/devIM483SM.cc index 7545310d..d2ac1812 100644 --- a/motorApp/ImsSrc/devIM483SM.cc +++ b/motorApp/ImsSrc/devIM483SM.cc @@ -41,6 +41,7 @@ USAGE... Motor record device level support for Intelligent Motion */ #include +#include #include "motorRecord.h" #include "motor.h" #include "motordevCom.h" diff --git a/motorApp/ImsSrc/devMDrive.cc b/motorApp/ImsSrc/devMDrive.cc index 15dc3131..0ffa163b 100644 --- a/motorApp/ImsSrc/devMDrive.cc +++ b/motorApp/ImsSrc/devMDrive.cc @@ -43,6 +43,7 @@ USAGE... Motor record device level support for Intelligent Motion */ #include +#include #include "motorRecord.h" #include "motor.h" diff --git a/motorApp/ImsSrc/drvIM483PL.cc b/motorApp/ImsSrc/drvIM483PL.cc index 32520926..c503ae66 100644 --- a/motorApp/ImsSrc/drvIM483PL.cc +++ b/motorApp/ImsSrc/drvIM483PL.cc @@ -56,6 +56,8 @@ DESIGN LIMITATIONS... #include #include #include +#include +#include #include "motor.h" #include "drvIM483.h" #include "asynOctetSyncIO.h" diff --git a/motorApp/ImsSrc/drvIM483SM.cc b/motorApp/ImsSrc/drvIM483SM.cc index 9738e201..7d6b1055 100644 --- a/motorApp/ImsSrc/drvIM483SM.cc +++ b/motorApp/ImsSrc/drvIM483SM.cc @@ -55,6 +55,8 @@ DESIGN LIMITATIONS... #include #include #include +#include +#include #include "motor.h" #include "drvIM483.h" #include "asynOctetSyncIO.h" diff --git a/motorApp/ImsSrc/drvMDrive.cc b/motorApp/ImsSrc/drvMDrive.cc index 12fb118a..22ceabc6 100644 --- a/motorApp/ImsSrc/drvMDrive.cc +++ b/motorApp/ImsSrc/drvMDrive.cc @@ -76,6 +76,8 @@ DESIGN LIMITATIONS... #include #include #include +#include +#include #include "motor.h" #include "drvIM483.h" #include "asynOctetSyncIO.h" diff --git a/motorApp/KohzuSrc/devSC800.cc b/motorApp/KohzuSrc/devSC800.cc index f71c2a1b..eed293d2 100644 --- a/motorApp/KohzuSrc/devSC800.cc +++ b/motorApp/KohzuSrc/devSC800.cc @@ -38,6 +38,8 @@ USAGE... Motor record device level support for Kohzu SC800 motor controll #include #include +#include +#include #include "motorRecord.h" #include "motor.h" #include "motordevCom.h" diff --git a/motorApp/KohzuSrc/drvSC800.cc b/motorApp/KohzuSrc/drvSC800.cc index 2ce563f6..394eadba 100644 --- a/motorApp/KohzuSrc/drvSC800.cc +++ b/motorApp/KohzuSrc/drvSC800.cc @@ -45,6 +45,8 @@ USAGE... Motor record driver level support for Kohzu SC800 #include #include #include +#include +#include #include "motor.h" #include "motorRecord.h" #include "drvSC800.h" diff --git a/motorApp/MclennanSrc/drvPM304.cc b/motorApp/MclennanSrc/drvPM304.cc index 273992cd..a33977b7 100644 --- a/motorApp/MclennanSrc/drvPM304.cc +++ b/motorApp/MclennanSrc/drvPM304.cc @@ -36,6 +36,8 @@ #include #include #include +#include +#include #include "motor.h" #include "drvPM304.h" #include "asynOctetSyncIO.h" diff --git a/motorApp/MicosSrc/drvMicos.cc b/motorApp/MicosSrc/drvMicos.cc index 04c0c98b..f2eb8a95 100644 --- a/motorApp/MicosSrc/drvMicos.cc +++ b/motorApp/MicosSrc/drvMicos.cc @@ -23,6 +23,8 @@ #include #include #include +#include +#include #include "motor.h" #include "drvMicos.h" #include "epicsExport.h" diff --git a/motorApp/MicroMoSrc/devMVP2001.cc b/motorApp/MicroMoSrc/devMVP2001.cc index b8e8d6d2..4efddbaa 100644 --- a/motorApp/MicroMoSrc/devMVP2001.cc +++ b/motorApp/MicroMoSrc/devMVP2001.cc @@ -89,6 +89,8 @@ USAGE... Motor record device level support for MicroMo #include #include #include +#include +#include #include "motorRecord.h" #include "motor.h" #include "motordevCom.h" diff --git a/motorApp/MicroMoSrc/drvMVP2001.cc b/motorApp/MicroMoSrc/drvMVP2001.cc index 099d4ec9..0f5ed0d0 100644 --- a/motorApp/MicroMoSrc/drvMVP2001.cc +++ b/motorApp/MicroMoSrc/drvMVP2001.cc @@ -125,6 +125,8 @@ MORE DESIGN LIMITATIONS #include #include #include +#include +#include #include "motor.h" #include "drvMVP2001.h" #include "epicsExport.h" diff --git a/motorApp/MotorSrc/asynMotorAxis.h b/motorApp/MotorSrc/asynMotorAxis.h index 7cdc2544..16cf044c 100644 --- a/motorApp/MotorSrc/asynMotorAxis.h +++ b/motorApp/MotorSrc/asynMotorAxis.h @@ -73,9 +73,10 @@ class epicsShareClass asynMotorAxis { double *profileFollowingErrors_; /**< Array of following errors for profile moves */ int referencingMode_; - private: MotorStatus status_; int statusChanged_; + + private: int referencingModeMove_; int wasMovingFlag_; int disableFlag_; diff --git a/motorApp/MotorSrc/asynMotorController.cpp b/motorApp/MotorSrc/asynMotorController.cpp index 13d16ebe..612b993e 100644 --- a/motorApp/MotorSrc/asynMotorController.cpp +++ b/motorApp/MotorSrc/asynMotorController.cpp @@ -277,15 +277,14 @@ asynStatus asynMotorController::writeFloat64(asynUser *pasynUser, epicsFloat64 v /* Set the parameter and readback in the parameter library. */ status = pAxis->setDoubleParam(function, value); - getDoubleParam(axis, motorVelBase_, &baseVelocity); - getDoubleParam(axis, motorVelocity_, &velocity); - getDoubleParam(axis, motorAccel_, &acceleration); - if (function == motorMoveRel_) { if (autoPower == 1) { status = pAxis->setClosedLoop(true); epicsThreadSleep(autoPowerOnDelay); } + getDoubleParam(axis, motorVelBase_, &baseVelocity); + getDoubleParam(axis, motorVelocity_, &velocity); + getDoubleParam(axis, motorAccel_, &acceleration); status = pAxis->move(value, 1, baseVelocity, velocity, acceleration); pAxis->setIntegerParam(motorStatusDone_, 0); pAxis->callParamCallbacks(); @@ -299,6 +298,9 @@ asynStatus asynMotorController::writeFloat64(asynUser *pasynUser, epicsFloat64 v status = pAxis->setClosedLoop(true); epicsThreadSleep(autoPowerOnDelay); } + getDoubleParam(axis, motorVelBase_, &baseVelocity); + getDoubleParam(axis, motorVelocity_, &velocity); + getDoubleParam(axis, motorAccel_, &acceleration); status = pAxis->move(value, 0, baseVelocity, velocity, acceleration); pAxis->setIntegerParam(motorStatusDone_, 0); pAxis->callParamCallbacks(); @@ -312,6 +314,8 @@ asynStatus asynMotorController::writeFloat64(asynUser *pasynUser, epicsFloat64 v status = pAxis->setClosedLoop(true); epicsThreadSleep(autoPowerOnDelay); } + getDoubleParam(axis, motorVelBase_, &baseVelocity); + getDoubleParam(axis, motorAccel_, &acceleration); status = pAxis->moveVelocity(baseVelocity, value, acceleration); pAxis->setIntegerParam(motorStatusDone_, 0); pAxis->callParamCallbacks(); @@ -326,6 +330,9 @@ asynStatus asynMotorController::writeFloat64(asynUser *pasynUser, epicsFloat64 v status = pAxis->setClosedLoop(true); epicsThreadSleep(autoPowerOnDelay); } + getDoubleParam(axis, motorVelBase_, &baseVelocity); + getDoubleParam(axis, motorVelocity_, &velocity); + getDoubleParam(axis, motorAccel_, &acceleration); forwards = (value == 0) ? 0 : 1; status = pAxis->home(baseVelocity, velocity, acceleration, forwards); pAxis->setIntegerParam(motorStatusDone_, 0); diff --git a/motorApp/MotorSrc/motorRecord.cc b/motorApp/MotorSrc/motorRecord.cc index e1f29575..64b6fa58 100644 --- a/motorApp/MotorSrc/motorRecord.cc +++ b/motorApp/MotorSrc/motorRecord.cc @@ -183,6 +183,9 @@ USAGE... Motor Record Support. * .72 03-13-15 rls - Changed RDBL to set RRBV rather than DRBV. * .73 02-15-16 rls - JOGF/R soft limit error check was using the wrong coordinate sytem limits. * Changed error checks from dial to user limits. + * .74 09-28-16 rls - Reverted .71 FLNK change. Except for the condition that DMOV == FALSE, FLNK + * processing was standard. If processing is needed on a DMOV false to true + * transition, a new motor record field should be added. */ #define VERSION 6.10 @@ -1163,10 +1166,10 @@ Exit: Update record timestamp, call recGblGetTimeStamp(). Process alarms, call alarm_sub(). Monitor changes to record fields, call monitor(). - IF Done Moving field (DMOV) is TRUE, AND, Last Done Moving (LDMV) was False. + + IF Done Moving field (DMOV) is TRUE Process the forward-scan-link record, call recGblFwdLink(). ENDIF - Update Last Done Moving (LDMV). Set Processing Active indicator field (PACT) false. Exit. @@ -1406,9 +1409,8 @@ process_exit: alarm_sub(pmr); /* If we've violated alarm limits, yell. */ monitor(pmr); /* If values have changed, broadcast them. */ - if (pmr->dmov != 0 && pmr->ldmv == 0) /* Test for False to True transition. */ + if (pmr->dmov != 0) recGblFwdLink(pmr); /* Process the forward-scan-link record. */ - pmr->ldmv = pmr->dmov; pmr->pact = 0; Debug(4, "process:---------------------- end; motor \"%s\"\n", pmr->name); @@ -2450,7 +2452,6 @@ static long special(DBADDR *paddr, int after) if (pmr->dmov == TRUE) { pmr->dmov = FALSE; - pmr->ldmv = pmr->dmov; db_post_events(pmr, &pmr->dmov, DBE_VAL_LOG); } return(OK); diff --git a/motorApp/MotorSrc/motorRecord.dbd b/motorApp/MotorSrc/motorRecord.dbd index 3417521e..674c6a34 100644 --- a/motorApp/MotorSrc/motorRecord.dbd +++ b/motorApp/MotorSrc/motorRecord.dbd @@ -586,11 +586,6 @@ recordtype(motor) { special(SPC_NOMOD) initial("1") } - field(LDMV,DBF_SHORT) { - prompt("Last Done moving value") - special(SPC_NOMOD) - initial("1") - } field(MOVN,DBF_SHORT) { prompt("Motor is moving") special(SPC_NOMOD) diff --git a/motorApp/NewFocusSrc/devPMNC87xx.cc b/motorApp/NewFocusSrc/devPMNC87xx.cc index 25430bf8..83212ee8 100644 --- a/motorApp/NewFocusSrc/devPMNC87xx.cc +++ b/motorApp/NewFocusSrc/devPMNC87xx.cc @@ -44,6 +44,8 @@ Last Modified: 2004/12/20 21:10:53 #include +#include +#include #include "motorRecord.h" #include "motor.h" #include "motordevCom.h" diff --git a/motorApp/NewFocusSrc/drvPMNC87xx.cc b/motorApp/NewFocusSrc/drvPMNC87xx.cc index 800d51c9..fb5c45f8 100644 --- a/motorApp/NewFocusSrc/drvPMNC87xx.cc +++ b/motorApp/NewFocusSrc/drvPMNC87xx.cc @@ -66,6 +66,8 @@ Last Modified: 2005/03/30 19:10:48 #include #include #include +#include +#include #include "NewFocusRegister.h" #include "drvPMNCCom.h" #include "asynOctetSyncIO.h" diff --git a/motorApp/NewportSrc/devESP300.cc b/motorApp/NewportSrc/devESP300.cc index e7ac7ca9..92d6c02f 100644 --- a/motorApp/NewportSrc/devESP300.cc +++ b/motorApp/NewportSrc/devESP300.cc @@ -38,6 +38,7 @@ USAGE... Motor record device level support for Newport ESP300. #include #include +#include #include "motorRecord.h" #include "motor.h" #include "motordevCom.h" diff --git a/motorApp/NewportSrc/devMM3000.cc b/motorApp/NewportSrc/devMM3000.cc index ea3ce669..abc20ea9 100644 --- a/motorApp/NewportSrc/devMM3000.cc +++ b/motorApp/NewportSrc/devMM3000.cc @@ -40,6 +40,8 @@ USAGE... Motor record device level support for Newport MM3000. #include +#include +#include #include "motorRecord.h" #include "motor.h" #include "motordevCom.h" diff --git a/motorApp/NewportSrc/devMM4000.cc b/motorApp/NewportSrc/devMM4000.cc index 59a9b093..2d7e768f 100644 --- a/motorApp/NewportSrc/devMM4000.cc +++ b/motorApp/NewportSrc/devMM4000.cc @@ -44,6 +44,7 @@ USAGE... Motor record device level support for Newport MM4000. #include #include +#include #include "motorRecord.h" #include "motor.h" #include "motordevCom.h" diff --git a/motorApp/NewportSrc/devPM500.cc b/motorApp/NewportSrc/devPM500.cc index 465745dc..ef9787d4 100644 --- a/motorApp/NewportSrc/devPM500.cc +++ b/motorApp/NewportSrc/devPM500.cc @@ -42,6 +42,7 @@ USAGE... Motor record device level support for the Newport PM500 motor #include #include +#include #include "motorRecord.h" #include "motor.h" #include "motordevCom.h" diff --git a/motorApp/NewportSrc/drvESP300.cc b/motorApp/NewportSrc/drvESP300.cc index 325507e1..7e2c774d 100644 --- a/motorApp/NewportSrc/drvESP300.cc +++ b/motorApp/NewportSrc/drvESP300.cc @@ -56,6 +56,8 @@ USAGE... Motor record driver level support for Newport ESP300/100. #include #include #include +#include +#include #include "motor.h" #include "NewportRegister.h" #include "drvMMCom.h" diff --git a/motorApp/NewportSrc/drvMM3000.cc b/motorApp/NewportSrc/drvMM3000.cc index 62fba2ac..a1324701 100644 --- a/motorApp/NewportSrc/drvMM3000.cc +++ b/motorApp/NewportSrc/drvMM3000.cc @@ -68,6 +68,8 @@ USAGE... Motor record driver level support for Newport MM3000. #include #include #include +#include +#include #include "motor.h" #include "NewportRegister.h" #include "drvMMCom.h" diff --git a/motorApp/NewportSrc/drvMM4000.cc b/motorApp/NewportSrc/drvMM4000.cc index 23658c67..d8c993e6 100644 --- a/motorApp/NewportSrc/drvMM4000.cc +++ b/motorApp/NewportSrc/drvMM4000.cc @@ -84,6 +84,8 @@ USAGE... Motor record driver level support for Newport MM4000. #include #include #include +#include +#include #include "motor.h" #include "NewportRegister.h" #include "drvMMCom.h" diff --git a/motorApp/NewportSrc/drvPM500.cc b/motorApp/NewportSrc/drvPM500.cc index 5f831de1..7e60685b 100644 --- a/motorApp/NewportSrc/drvPM500.cc +++ b/motorApp/NewportSrc/drvPM500.cc @@ -55,6 +55,8 @@ USAGE... Motor record driver level support for Newport PM500. #include #include #include +#include +#include #include "motor.h" #include "NewportRegister.h" #include "drvMMCom.h" diff --git a/motorApp/OmsSrc/devMAXv.cc b/motorApp/OmsSrc/devMAXv.cc index 4edf8cba..b080dcdb 100644 --- a/motorApp/OmsSrc/devMAXv.cc +++ b/motorApp/OmsSrc/devMAXv.cc @@ -35,6 +35,8 @@ USAGE... Device level support for OMS MAXv model. * .01 04-05-05 rls Copied from devOms58.cc */ +#include + #include "motorRecord.h" #include "devOmsCom.h" #include "epicsExport.h" diff --git a/motorApp/OmsSrc/devOmsCom.cc b/motorApp/OmsSrc/devOmsCom.cc index ec6c2eb4..a727bf3e 100644 --- a/motorApp/OmsSrc/devOmsCom.cc +++ b/motorApp/OmsSrc/devOmsCom.cc @@ -78,6 +78,7 @@ USAGE... Data and functions common to all OMS device level support. #include #include #include +#include #include "motorRecord.h" #include "motor.h" diff --git a/motorApp/OmsSrc/drvMAXv.cc b/motorApp/OmsSrc/drvMAXv.cc index 97cb849f..2bf305e5 100644 --- a/motorApp/OmsSrc/drvMAXv.cc +++ b/motorApp/OmsSrc/drvMAXv.cc @@ -111,6 +111,7 @@ USAGE... Motor record driver level support for OMS model MAXv. #include #include #include +#include #include "motorRecord.h" /* For Driver Power Monitor feature only. */ #include "motor.h" diff --git a/motorApp/OmsSrc/drvOms.cc b/motorApp/OmsSrc/drvOms.cc index 275e0c32..2153deb3 100644 --- a/motorApp/OmsSrc/drvOms.cc +++ b/motorApp/OmsSrc/drvOms.cc @@ -110,6 +110,8 @@ USAGE... Driver level support for OMS models VME8, VME44, VS4 and VX2. #include #include #include +#include +#include #include "motor.h" #include "drvOms.h" diff --git a/motorApp/OmsSrc/drvOms58.cc b/motorApp/OmsSrc/drvOms58.cc index 7b423cd0..6e4459c7 100644 --- a/motorApp/OmsSrc/drvOms58.cc +++ b/motorApp/OmsSrc/drvOms58.cc @@ -125,6 +125,8 @@ USAGE... Motor record driver level support for OMS model VME58. #include #include #include +#include +#include #include "motorRecord.h" /* For Driver Power Monitor feature only. */ #include "motor.h" diff --git a/motorApp/OmsSrc/drvOmsPC68.cc b/motorApp/OmsSrc/drvOmsPC68.cc index 430cfb05..f88eb748 100644 --- a/motorApp/OmsSrc/drvOmsPC68.cc +++ b/motorApp/OmsSrc/drvOmsPC68.cc @@ -72,6 +72,8 @@ USAGE... Motor record driver level support for OMS PC68 serial device. #include #include #include +#include +#include #include "motor.h" #include "drvOmsPC68Com.h" diff --git a/motorApp/OrielSrc/devEMC18011.cc b/motorApp/OrielSrc/devEMC18011.cc index 7200c41c..5211a9a6 100644 --- a/motorApp/OrielSrc/devEMC18011.cc +++ b/motorApp/OrielSrc/devEMC18011.cc @@ -37,6 +37,7 @@ USAGE... Motor record device level support for Parker Compumotor drivers #include #include +#include #include "motorRecord.h" #include "motor.h" #include "motordevCom.h" diff --git a/motorApp/OrielSrc/drvEMC18011.cc b/motorApp/OrielSrc/drvEMC18011.cc index ddcd989c..0cde02a0 100644 --- a/motorApp/OrielSrc/drvEMC18011.cc +++ b/motorApp/OrielSrc/drvEMC18011.cc @@ -43,6 +43,8 @@ USAGE... Motor record driver level support for Spectra-Physics #include #include #include +#include +#include #include "motor.h" #include "OrielRegister.h" #include "drvEMC18011.h" diff --git a/motorApp/PC6KSrc/devPC6K.cc b/motorApp/PC6KSrc/devPC6K.cc index 772e07ef..02e736a3 100644 --- a/motorApp/PC6KSrc/devPC6K.cc +++ b/motorApp/PC6KSrc/devPC6K.cc @@ -37,6 +37,7 @@ USAGE... Motor record device level support for Parker Compumotor drivers #include #include +#include #include "motorRecord.h" #include "motor.h" #include "motordevCom.h" diff --git a/motorApp/PC6KSrc/drvPC6K.cc b/motorApp/PC6KSrc/drvPC6K.cc index 3ec8ae0b..b9a8e53d 100644 --- a/motorApp/PC6KSrc/drvPC6K.cc +++ b/motorApp/PC6KSrc/drvPC6K.cc @@ -43,6 +43,8 @@ USAGE... Motor record driver level support for Parker Computmotor #include #include #include +#include +#include #include "motor.h" #include "ParkerRegister.h" #include "drvPC6K.h" diff --git a/motorApp/PiJenaSrc/devPIJEDS.cc b/motorApp/PiJenaSrc/devPIJEDS.cc index a08702e0..7e3672f2 100644 --- a/motorApp/PiJenaSrc/devPIJEDS.cc +++ b/motorApp/PiJenaSrc/devPIJEDS.cc @@ -37,6 +37,7 @@ USAGE... Motor record device level support for Physik Instrumente (PI) #include +#include #include "motorRecord.h" #include "motor.h" #include "motordevCom.h" diff --git a/motorApp/PiJenaSrc/drvPIJEDS.cc b/motorApp/PiJenaSrc/drvPIJEDS.cc index 9bcf7080..f15f3724 100644 --- a/motorApp/PiJenaSrc/drvPIJEDS.cc +++ b/motorApp/PiJenaSrc/drvPIJEDS.cc @@ -44,6 +44,8 @@ DESIGN LIMITATIONS... #include #include #include +#include +#include #include "motorRecord.h" #include "motor.h" #include "drvPIJEDS.h" diff --git a/motorApp/PiSrc/devPIC662.cc b/motorApp/PiSrc/devPIC662.cc index db7e9bb9..f0ff7f7a 100644 --- a/motorApp/PiSrc/devPIC662.cc +++ b/motorApp/PiSrc/devPIC662.cc @@ -37,6 +37,7 @@ USAGE... Motor record device level support for Physik Instrumente (PI) #include +#include #include "motorRecord.h" #include "motor.h" #include "motordevCom.h" diff --git a/motorApp/PiSrc/devPIC663.cc b/motorApp/PiSrc/devPIC663.cc index f85c918b..983eae60 100644 --- a/motorApp/PiSrc/devPIC663.cc +++ b/motorApp/PiSrc/devPIC663.cc @@ -15,6 +15,8 @@ USAGE... Motor record device level support for Physik Instrumente (PI) #include #include +#include +#include #include "motorRecord.h" #include "motor.h" #include "motordevCom.h" diff --git a/motorApp/PiSrc/devPIC844.cc b/motorApp/PiSrc/devPIC844.cc index f4f60fea..1c04054c 100644 --- a/motorApp/PiSrc/devPIC844.cc +++ b/motorApp/PiSrc/devPIC844.cc @@ -38,6 +38,7 @@ USAGE... Motor record device level support for Physik Instrumente (PI) #include +#include #include "motorRecord.h" #include "motor.h" #include "motordevCom.h" diff --git a/motorApp/PiSrc/devPIC848.cc b/motorApp/PiSrc/devPIC848.cc index 1899fc4d..10de35af 100644 --- a/motorApp/PiSrc/devPIC848.cc +++ b/motorApp/PiSrc/devPIC848.cc @@ -41,6 +41,7 @@ USAGE... Motor record device level support for Physik Instrumente (PI) #include +#include #include "motorRecord.h" #include "motor.h" #include "motordevCom.h" diff --git a/motorApp/PiSrc/devPIC862.cc b/motorApp/PiSrc/devPIC862.cc index e4bfa674..30a6100d 100644 --- a/motorApp/PiSrc/devPIC862.cc +++ b/motorApp/PiSrc/devPIC862.cc @@ -19,6 +19,8 @@ USAGE... Motor record device level support for Physik Instrumente (PI) #include #include +#include +#include #include "motorRecord.h" #include "motor.h" #include "motordevCom.h" diff --git a/motorApp/PiSrc/devPIE516.cc b/motorApp/PiSrc/devPIE516.cc index 7f6ef7d6..1ea3ea36 100644 --- a/motorApp/PiSrc/devPIE516.cc +++ b/motorApp/PiSrc/devPIE516.cc @@ -38,6 +38,7 @@ USAGE... Motor record device level support for Physik Instrumente (PI) #include +#include #include "motorRecord.h" #include "motor.h" #include "motordevCom.h" diff --git a/motorApp/PiSrc/devPIE710.cc b/motorApp/PiSrc/devPIE710.cc index c98a00c7..27d11e91 100644 --- a/motorApp/PiSrc/devPIE710.cc +++ b/motorApp/PiSrc/devPIE710.cc @@ -38,6 +38,7 @@ USAGE... Motor record device level support for Physik Instrumente (PI) #include +#include #include "motorRecord.h" #include "motor.h" #include "motordevCom.h" diff --git a/motorApp/PiSrc/devPIE816.cc b/motorApp/PiSrc/devPIE816.cc index ff6ca3dd..4e26382a 100644 --- a/motorApp/PiSrc/devPIE816.cc +++ b/motorApp/PiSrc/devPIE816.cc @@ -41,6 +41,7 @@ Last Modified: 2007/03/30 20:01:05 #include +#include #include "motorRecord.h" #include "motor.h" #include "motordevCom.h" diff --git a/motorApp/PiSrc/drvPIC630.cc b/motorApp/PiSrc/drvPIC630.cc index a01bbeb0..d222c6e5 100644 --- a/motorApp/PiSrc/drvPIC630.cc +++ b/motorApp/PiSrc/drvPIC630.cc @@ -22,6 +22,8 @@ #include #include #include +#include +#include #include "motor.h" #include "drvPIC630.h" #include "asynOctetSyncIO.h" diff --git a/motorApp/PiSrc/drvPIC662.cc b/motorApp/PiSrc/drvPIC662.cc index 65830bd8..18752c66 100644 --- a/motorApp/PiSrc/drvPIC662.cc +++ b/motorApp/PiSrc/drvPIC662.cc @@ -48,6 +48,8 @@ DESIGN LIMITATIONS... #include #include #include +#include +#include #include "motor.h" #include "drvPIC662.h" #include "epicsExport.h" diff --git a/motorApp/PiSrc/drvPIC663.cc b/motorApp/PiSrc/drvPIC663.cc index 666130f9..379e5168 100644 --- a/motorApp/PiSrc/drvPIC663.cc +++ b/motorApp/PiSrc/drvPIC663.cc @@ -22,6 +22,8 @@ DESIGN LIMITATIONS... #include #include #include +#include +#include #include "motorRecord.h" #include "motor.h" #include "drvPIC663.h" diff --git a/motorApp/PiSrc/drvPIC844.cc b/motorApp/PiSrc/drvPIC844.cc index 0aecfcba..457841ef 100644 --- a/motorApp/PiSrc/drvPIC844.cc +++ b/motorApp/PiSrc/drvPIC844.cc @@ -58,6 +58,8 @@ DESIGN LIMITATIONS... #include #include #include +#include +#include #include "motor.h" #include "drvPI.h" #include "epicsExport.h" diff --git a/motorApp/PiSrc/drvPIC848.cc b/motorApp/PiSrc/drvPIC848.cc index 5daf119d..dd533b3d 100644 --- a/motorApp/PiSrc/drvPIC848.cc +++ b/motorApp/PiSrc/drvPIC848.cc @@ -46,6 +46,8 @@ DESIGN LIMITATIONS... #include #include #include +#include +#include #include "motorRecord.h" #include "motor.h" #include "drvPIC848.h" diff --git a/motorApp/PiSrc/drvPIC862.cc b/motorApp/PiSrc/drvPIC862.cc index a650f4ec..683f20eb 100644 --- a/motorApp/PiSrc/drvPIC862.cc +++ b/motorApp/PiSrc/drvPIC862.cc @@ -31,6 +31,8 @@ DESIGN LIMITATIONS... #include #include #include +#include +#include #include "motorRecord.h" #include "motor.h" #include "drvPIC862.h" diff --git a/motorApp/PiSrc/drvPIE516.cc b/motorApp/PiSrc/drvPIE516.cc index a6b9ab01..1494a581 100644 --- a/motorApp/PiSrc/drvPIE516.cc +++ b/motorApp/PiSrc/drvPIE516.cc @@ -45,6 +45,8 @@ DESIGN LIMITATIONS... #include #include #include +#include +#include #include "motorRecord.h" #include "motor.h" #include "drvPIE516.h" diff --git a/motorApp/PiSrc/drvPIE710.cc b/motorApp/PiSrc/drvPIE710.cc index f8786ab8..f81e44e3 100644 --- a/motorApp/PiSrc/drvPIE710.cc +++ b/motorApp/PiSrc/drvPIE710.cc @@ -45,6 +45,8 @@ DESIGN LIMITATIONS... #include #include #include +#include +#include #include "motorRecord.h" #include "motor.h" #include "drvPIE710.h" diff --git a/motorApp/PiSrc/drvPIE816.cc b/motorApp/PiSrc/drvPIE816.cc index 185a81b8..6b9dd0e0 100644 --- a/motorApp/PiSrc/drvPIE816.cc +++ b/motorApp/PiSrc/drvPIE816.cc @@ -53,6 +53,8 @@ DESIGN LIMITATIONS... #include #include #include +#include +#include #include "motorRecord.h" #include "motor.h" #include "drvPIE816.h" diff --git a/motorApp/SmartMotorSrc/devSmartMotor.cc b/motorApp/SmartMotorSrc/devSmartMotor.cc index e78ebcab..72161c9f 100644 --- a/motorApp/SmartMotorSrc/devSmartMotor.cc +++ b/motorApp/SmartMotorSrc/devSmartMotor.cc @@ -41,6 +41,7 @@ USAGE... Motor record driver level support for Animatics Corporation SmartMot */ #include +#include #include "motorRecord.h" #include "motor.h" diff --git a/motorApp/SmartMotorSrc/drvSmartMotor.cc b/motorApp/SmartMotorSrc/drvSmartMotor.cc index a5fa67f2..bffe4b02 100644 --- a/motorApp/SmartMotorSrc/drvSmartMotor.cc +++ b/motorApp/SmartMotorSrc/drvSmartMotor.cc @@ -44,6 +44,8 @@ USAGE... Motor record driver level support for Animatics Corporation SmartMot #include #include #include +#include +#include #include "motor.h" #include "motorRecord.h" #include "drvSmartMotor.h" diff --git a/motorApp/ThorLabsSrc/devMDT695.cc b/motorApp/ThorLabsSrc/devMDT695.cc index e9693855..5a69eb6f 100644 --- a/motorApp/ThorLabsSrc/devMDT695.cc +++ b/motorApp/ThorLabsSrc/devMDT695.cc @@ -38,6 +38,7 @@ USAGE... Motor record device level support for ThorLabs Piezo Control #include #include +#include #include "motorRecord.h" #include "motor.h" #include "motordevCom.h" diff --git a/motorApp/ThorLabsSrc/drvMDT695.cc b/motorApp/ThorLabsSrc/drvMDT695.cc index 41a216ea..34c60d0e 100644 --- a/motorApp/ThorLabsSrc/drvMDT695.cc +++ b/motorApp/ThorLabsSrc/drvMDT695.cc @@ -44,6 +44,8 @@ USAGE... Motor record driver level support for ThorLabs #include #include #include +#include +#include #include "motor.h" #include "ThorLabsRegister.h" #include "drvMDT695.h" diff --git a/motorApp/op/adl/4motor_form.adl b/motorApp/op/adl/4motor_form.adl index 195997f3..834de3b1 100644 --- a/motorApp/op/adl/4motor_form.adl +++ b/motorApp/op/adl/4motor_form.adl @@ -240,58 +240,6 @@ text { textix="(SECONDS)" align="horiz. centered" } -"text entry" { - object { - x=1000 - y=113 - width=50 - height=16 - } - control { - chan="$(P)$(M5).BACC" - clr=14 - bclr=2 - } -} -"text entry" { - object { - x=1000 - y=128 - width=50 - height=16 - } - control { - chan="$(P)$(M6).BACC" - clr=14 - bclr=2 - } -} -"text entry" { - object { - x=1000 - y=143 - width=50 - height=16 - } - control { - chan="$(P)$(M7).BACC" - clr=14 - bclr=2 - } -} -"text entry" { - object { - x=1000 - y=158 - width=50 - height=16 - } - control { - chan="$(P)$(M8).BACC" - clr=14 - bclr=2 - } -} "text entry" { object { x=1000 diff --git a/motorApp/op/opi/4motor_form.opi b/motorApp/op/opi/4motor_form.opi index 58a617fe..0e2c5fa2 100644 --- a/motorApp/op/opi/4motor_form.opi +++ b/motorApp/op/opi/4motor_form.opi @@ -583,230 +583,6 @@ $(pv_value) 950 - - false - true - 1 - false - false - - 16 - false - true - - - - Text Input - true - - - - - 50 - 3 - - 1 - Infinity - -Infinity - false - 39872d87:13e14015f61:-38de - 0.0 - Text Input - - true - true - false - - 1 - false - 0 - $(P)$(M5).BACC - - - - false - 0 - - - false - - - - 0 - - 113 - $(pv_name) -$(pv_value) - 1000 - - - false - true - 1 - false - false - - 16 - false - true - - - - Text Input - true - - - - - 50 - 3 - - 1 - Infinity - -Infinity - false - 39872d87:13e14015f61:-38dd - 0.0 - Text Input - - true - true - false - - 1 - false - 0 - $(P)$(M6).BACC - - - - false - 0 - - - false - - - - 0 - - 128 - $(pv_name) -$(pv_value) - 1000 - - - false - true - 1 - false - false - - 16 - false - true - - - - Text Input - true - - - - - 50 - 3 - - 1 - Infinity - -Infinity - false - 39872d87:13e14015f61:-38dc - 0.0 - Text Input - - true - true - false - - 1 - false - 0 - $(P)$(M7).BACC - - - - false - 0 - - - false - - - - 0 - - 143 - $(pv_name) -$(pv_value) - 1000 - - - false - true - 1 - false - false - - 16 - false - true - - - - Text Input - true - - - - - 50 - 3 - - 1 - Infinity - -Infinity - false - 39872d87:13e14015f61:-38db - 0.0 - Text Input - - true - true - false - - 1 - false - 0 - $(P)$(M8).BACC - - - - false - 0 - - - false - - - - 0 - - 158 - $(pv_name) -$(pv_value) - 1000 - false true @@ -5920,4 +5696,4 @@ $(pv_value) $(pv_value) 0 - \ No newline at end of file + diff --git a/motorApp/op/ui/4motor_form.ui b/motorApp/op/ui/4motor_form.ui index e61fe50a..b41b2b91 100644 --- a/motorApp/op/ui/4motor_form.ui +++ b/motorApp/op/ui/4motor_form.ui @@ -451,150 +451,6 @@ QPushButton::menu-indicator {image: url(none.png); width: 0} - - - - 1000 - 113 - 50 - 16 - - - - caLineEdit::WidthAndHeight - - - $(P)$(M5).BACC - - - - 0 - 0 - 0 - - - - - 218 - 218 - 218 - - - - caLineEdit::Static - - - decimal - - - - - - 1000 - 128 - 50 - 16 - - - - caLineEdit::WidthAndHeight - - - $(P)$(M6).BACC - - - - 0 - 0 - 0 - - - - - 218 - 218 - 218 - - - - caLineEdit::Static - - - decimal - - - - - - 1000 - 143 - 50 - 16 - - - - caLineEdit::WidthAndHeight - - - $(P)$(M7).BACC - - - - 0 - 0 - 0 - - - - - 218 - 218 - 218 - - - - caLineEdit::Static - - - decimal - - - - - - 1000 - 158 - 50 - 16 - - - - caLineEdit::WidthAndHeight - - - $(P)$(M8).BACC - - - - 0 - 0 - 0 - - - - - 218 - 218 - 218 - - - - caLineEdit::Static - - - decimal - - @@ -4401,4 +4257,4 @@ QPushButton::menu-indicator {image: url(none.png); width: 0} caTextEntry_63 - \ No newline at end of file +