From 79af962c386753ca66c19fcc6b8178bd47179704 Mon Sep 17 00:00:00 2001 From: Ron Sluiter Date: Tue, 30 Aug 2011 21:36:37 +0000 Subject: [PATCH] Final sync with trunk for R6-6. --- README | 6 + documentation/motor_release.html | 97 +++++----------- iocBoot/iocWithAsyn/st.cmd.xps5 | 16 +-- motorApp/MotorSrc/asynMotorAxis.cpp | 4 +- motorApp/MotorSrc/motor.h | 4 +- motorApp/NewportSrc/MM4005_trajectoryScan.st | 1 + motorApp/NewportSrc/Makefile | 13 +-- motorApp/NewportSrc/XPSController.cpp | 116 ++++++++++--------- motorApp/NewportSrc/devNewport.dbd | 2 +- motorApp/NewportSrc/devNewportModel3.dbd | 26 ----- motorApp/OmsSrc/MAX_trajectoryScan.st | 1 + motorExApp/WithAsyn/Makefile | 4 +- 12 files changed, 122 insertions(+), 168 deletions(-) delete mode 100644 motorApp/NewportSrc/devNewportModel3.dbd diff --git a/README b/README index 1000396b..400d6853 100644 --- a/README +++ b/README @@ -256,6 +256,12 @@ Modification Log from R6-5 to R6-6 File modified: OmsSrc/drvMAXv.cc +14) OMS MAXv + - Increase maximum configuration string size from 150 to 300 bytes. + - Increase all receive buffer sizes to same 300 bytes. + - Add error checks for buffer overflow in MAXvConfig() and in readbuf(). + - Buffer overflow error checks + Modification Log from R6-4 to R6-5 ================================== diff --git a/documentation/motor_release.html b/documentation/motor_release.html index 29ec4421..7159ff4b 100644 --- a/documentation/motor_release.html +++ b/documentation/motor_release.html @@ -5,12 +5,14 @@ - EPICS Motor Record Release R6-5 Notice + EPICS Motor Record Release R6-6 Notice + +

Motor Record Version 6-6 Release Notice

@@ -21,53 +23,10 @@

- Many driver and device support files -

-

- Minor fixes to allow building dynamically on win32-x86, i.e. to build DLLs. This - mostly involved changing the location of the #include <epicsExport.h> statement - and adding the epicsShareFunc qualifier. -

-

- XPS trajectory scanning (Mark Rivers) -

-

- Fixed a bug with soft limit checking when the motors .DIR field was negative. -

-

- There was previously a problem with reading back the gathering data (actual and - theoretical positions) when doing trajectory scans. The problem was that the XPS - firmware would sometimes save a corrupted file to the flash drive in the XPS. Newport - is not fixing this, so we changed to reading the gathering data GatheringDataMultipleLinesGet(), - i.e. directly over the socket connection to the XPS, rather than saving to a file - and using FTP to copy the file to the IOC. -

-

- The above change exposed a bug in the SendAndReceive function in asynOctetSocket.cpp. - That function needs to loop reading from the socket until it sets the end-of-message - string ",EndOfAPI". It was not previously doing this, which was OK when responses - were shorter than the 999 bytes that the XPS sends in one message. But the GatheringDataMultipleLinesGet() - function returns very long responses, up to 64KB, so this needed to be fixed. -

-

- Updated the XPS_C8_driver.cpp and .h files to the latest versions that come with - the XPS 2.6.2 firmware. This adds new functions over the versions previously being - used. To take advantage of these new functions the XPS firmware needs to be upgraded - to 2.6.2. -

-

- asynMotorDriver 

-

- Changed the function callParamCallbacks(addr, addr) to callParamCallbacks(addr). - This will require changes to any existing drivers that derive from asynMotorDriver. -

-

- motorSimDriver 

-

- Fix bug with items not initialized in constructor. Made changes to work with fixes - to asynMotorDriver described above. + Aerotech Ensemble Home Search

+ The Home Search ability will be restored in a future bug fix release.

@@ -76,17 +35,21 @@

- Parker ACR series controller support 

+ Hytec 8601 +

+

+ Asyn motor driver support was added by Hytec for the 8601 stepper motor driver. +

+

+ +

- Mark Rivers added a new driver for the Parker ACR (including Aries) series of controllers. - This driver uses the new asyn C++ model, i.e. it derives from asynMotorDriver.cpp. - It has currently only been tested on the single-axis Aries controller, but it should - work on the multi-axis ACR controllers as well. The driver supports parameters beyond - the standard motor record parameters, including the jerk parameter (derivative of - acceleration with respect to time) and 32 opto-isolated inputs and 32 opto-isolated - outputs.

+

+

+ +

Motor Record Version 6-5 Release Notice

@@ -133,15 +96,15 @@
  • Aerotech Ensemble device driver fixes for incorrect Jog speeds, support for a negative PosScaleFactor parameter and detecting maximum travel limit switch faults.
  • -
  • This is the latest release to include the old Ensemble device driver architecture +
  • This is the last release to include the old Ensemble device driver architecture version. See below.
  • RES field deleted

    - The RES field was removed from the motor record database definition with this release - (R6-5). The RES field has been depreciated by the MRES field since R4-5. + The RES field was removed from the motor record database definition with this + release (R6-5). The RES field has been depreciated by the MRES field since R4-5.

    @@ -153,26 +116,26 @@ Aerotech Soloist and Ensemble motor controller support

    - Two new drivers from Aerotech were add; an asyn motor version of the Ensemble and - the Soloist under the old driver architecture. Since the Ensemble network connection - requires period communication from the host to prevent the Ensemble from closing - the network socket, the Ensemble support based on the old device driver architecture - will be removed after R5-6. The asyn motor architecture supports continuous, periodic - updates; the old architecture does not. + Two new drivers from Aerotech were add; an asyn motor version of the Ensemble + and the Soloist under the old driver architecture. Since the Ensemble network + connection requires period communication from the host to prevent the Ensemble + from closing the network socket, the Ensemble support based on the old device + driver architecture will be removed after R5-6. The asyn motor architecture + supports continuous, periodic updates; the old architecture does not.

    ADEL and MDEL fields added

    - Matthew Pearson (Diamond) added support for the ADEL and MDEL motor record fields. - Unlike most records, the ADEL/MDEL fields in the motor record apply to the User - Readback Value (RBV). See the motorRecord.html document for details. + Matthew Pearson (Diamond) added support for the ADEL and MDEL motor record + fields. Unlike most records, the ADEL/MDEL fields in the motor record apply to + the User Readback Value (RBV). See the motorRecord.html document for details.

    Synchronize field (SYNC)

    - When the SYNC field is set to Yes(1) the record sets the Drive fields (VAL/DVAL/RVAL) + When the SYNC field is set to Yes(1) the record sets the Drive fields (VAL/DVAL/RVAL) to their readback values (RBV/DRBV/RRBV) and sets SYNC field back to No(0).

    diff --git a/iocBoot/iocWithAsyn/st.cmd.xps5 b/iocBoot/iocWithAsyn/st.cmd.xps5 index 7d3f1c5e..ecb44093 100644 --- a/iocBoot/iocWithAsyn/st.cmd.xps5 +++ b/iocBoot/iocWithAsyn/st.cmd.xps5 @@ -13,7 +13,7 @@ dbLoadTemplate "XPSAux.substitutions" # asyn port, IP address, IP port, number of axes, # active poll period (ms), idle poll period (ms), # enable set position, set position settling time (ms) -XPSConfig("XPS1", "164.54.160.55", 5001, 6, 10, 500, 0, 500) +XPSCreateController("XPS1", "164.54.160.55", 5001, 6, 10, 500, 0, 500) asynSetTraceIOMask("XPS1", 0, 2) #asynSetTraceMask("XPS1", 0, 255) @@ -23,16 +23,16 @@ XPSAuxConfig("XPS_AUX1", "164.54.160.55", 5001, 50) #asynSetTraceMask("XPS_AUX1", 0, 255) # XPS asyn port, axis, groupName.positionerName, stepSize -XPSConfigAxis("XPS1",0,"GROUP.PHI", 1000) -XPSConfigAxis("XPS1",1,"GROUP.KAPPA", 10000) -XPSConfigAxis("XPS1",2,"GROUP.OMEGA", 10000) -XPSConfigAxis("XPS1",3,"GROUP.PSI", 4000) -XPSConfigAxis("XPS1",4,"GROUP.THETA", 10000) -XPSConfigAxis("XPS1",5,"GROUP.NU", 4000) +XPSCreateAxis("XPS1",0,"GROUP.PHI", "1000") +XPSCreateAxis("XPS1",1,"GROUP.KAPPA", "10000") +XPSCreateAxis("XPS1",2,"GROUP.OMEGA", "10000") +XPSCreateAxis("XPS1",3,"GROUP.PSI", "4000") +XPSCreateAxis("XPS1",4,"GROUP.THETA", "10000") +XPSCreateAxis("XPS1",5,"GROUP.NU", "4000") # XPS asyn port, max points, FTP username, FTP password # Note: this must be done after configuring axes -XPSConfigProfile("XPS1", 2000, "Administrator", "Administrator") +XPSCreateProfile("XPS1", 2000, "Administrator", "Administrator") iocInit diff --git a/motorApp/MotorSrc/asynMotorAxis.cpp b/motorApp/MotorSrc/asynMotorAxis.cpp index 78c64dce..f6a4159d 100644 --- a/motorApp/MotorSrc/asynMotorAxis.cpp +++ b/motorApp/MotorSrc/asynMotorAxis.cpp @@ -173,7 +173,7 @@ asynStatus asynMotorAxis::setPosition(double position) asynStatus asynMotorAxis::setIntegerParam(int function, int value) { int mask; - epicsUInt32 status; + epicsUInt32 status=0; // This assumes the parameters defined above are in the same order as the bits the motor record expects! if (function >= pC_->motorStatusDirection_ && function <= pC_->motorStatusHomed_) { @@ -324,7 +324,7 @@ asynStatus asynMotorAxis::readbackProfile() int direction; int numReadbacks; int status=0; - static const char *functionName = "readbackProfile"; + //static const char *functionName = "readbackProfile"; status |= pC_->getDoubleParam(axisNo_, pC_->profileMotorResolution_, &resolution); status |= pC_->getDoubleParam(axisNo_, pC_->profileMotorOffset_, &offset); diff --git a/motorApp/MotorSrc/motor.h b/motorApp/MotorSrc/motor.h index 8f5b135f..d3f275a3 100644 --- a/motorApp/MotorSrc/motor.h +++ b/motorApp/MotorSrc/motor.h @@ -137,10 +137,10 @@ typedef enum { #define LSB_First (TRUE) /* LSB is packed first. */ #elif defined(sparc) || defined(m68k) || defined(powerpc) #define MSB_First (TRUE) /* MSB is packed first. */ -#elif (CPU == PPC604) || (CPU == PPC603) || (CPU==PPC85XX) +#elif (CPU == PPC604) || (CPU == PPC603) || (CPU==PPC85XX) || (CPU == MC68040) #define MSB_First (TRUE) /* MSB is packed first. */ #else - Error: unknown bit order! + #error: unknown bit order! #endif /* -------------------------------------------------- */ diff --git a/motorApp/NewportSrc/MM4005_trajectoryScan.st b/motorApp/NewportSrc/MM4005_trajectoryScan.st index bf23c014..26962bb4 100644 --- a/motorApp/NewportSrc/MM4005_trajectoryScan.st +++ b/motorApp/NewportSrc/MM4005_trajectoryScan.st @@ -9,6 +9,7 @@ program MM4005_trajectoryScan("P=13IDC:,R=traj1,M1=M1,M2=M2,M3=M3,M4=M4,M5=M5,M6 * August 12, 2000 */ +%% #include /* for atof() */ %% #include %% #include %% #include diff --git a/motorApp/NewportSrc/Makefile b/motorApp/NewportSrc/Makefile index 46a9daac..ffe3b20d 100644 --- a/motorApp/NewportSrc/Makefile +++ b/motorApp/NewportSrc/Makefile @@ -10,9 +10,8 @@ include $(TOP)/configure/CONFIG INC += XPS_C8_drivers.h DBD += devNewport.dbd -DBD += devNewportModel3.dbd -LIBRARY_IOC = Newport NewportModel2 NewportModel3 +LIBRARY_IOC = Newport Newport_SRCS += NewportRegister.cc @@ -38,14 +37,14 @@ Newport_SRCS += XPS_C8_drivers.cpp Newport_SRCS += drvXPSAsynAux.c Newport_SRCS += xps_ftp.c # This is the model 2 asyn driver -NewportModel2_SRCS += drvXPSAsyn.c XPSAsynInterpose.c +Newport_SRCS += drvXPSAsyn.c XPSAsynInterpose.c # This is the model 3 asyn driver -NewportModel3_SRCS += XPSController.cpp -NewportModel3_SRCS += XPSAxis.cpp +Newport_SRCS += XPSController.cpp +Newport_SRCS += XPSAxis.cpp ifdef SNCSEQ -NewportModel2_SRCS += XPS_trajectoryScan.st +Newport_SRCS += XPS_trajectoryScan.st endif - + # strtok_r needed on WIN32 Newport_SRCS_WIN32 += strtok_r.c diff --git a/motorApp/NewportSrc/XPSController.cpp b/motorApp/NewportSrc/XPSController.cpp index b6772b52..e0cb727d 100644 --- a/motorApp/NewportSrc/XPSController.cpp +++ b/motorApp/NewportSrc/XPSController.cpp @@ -7,7 +7,7 @@ Modified By: $Author: sluiter $ Last Modified: $Date: 2009-12-09 10:21:24 -0600 (Wed, 09 Dec 2009) $ HeadURL: $URL: https://subversion.xor.aps.anl.gov/synApps/trunk/support/motor/vstub/motorApp/NewportSrc/XPSMotorDriver.cpp $ */ - + /* Original Author: Mark Rivers */ @@ -87,6 +87,7 @@ using std::endl; #include #include #include +#include #include #include @@ -1302,9 +1303,9 @@ asynStatus XPSController::noDisableError() extern "C" { -asynStatus XPSConfig(const char *portName, const char *IPAddress, int IPPort, - int numAxes, int movingPollPeriod, int idlePollPeriod, - int enableSetPosition, int setPositionSettlingTime) +asynStatus XPSCreateController(const char *portName, const char *IPAddress, int IPPort, + int numAxes, int movingPollPeriod, int idlePollPeriod, + int enableSetPosition, int setPositionSettlingTime) { XPSController *pXPSController = new XPSController(portName, IPAddress, IPPort, numAxes, @@ -1316,14 +1317,15 @@ asynStatus XPSConfig(const char *portName, const char *IPAddress, int IPPort, -asynStatus XPSConfigAxis(const char *XPSName, /* specify which controller by port name */ +asynStatus XPSCreateAxis(const char *XPSName, /* specify which controller by port name */ int axis, /* axis number 0-7 */ const char *positionerName, /* groupName.positionerName e.g. Diffractometer.Phi */ - int stepsPerUnit) /* steps per user unit */ + const char *stepsPerUnit) /* steps per user unit */ { XPSController *pC; XPSAxis *pAxis; - static const char *functionName = "XPSConfigAxis"; + double stepSize; + static const char *functionName = "XPSCreateAxis"; pC = (XPSController*) findAsynPortDriver(XPSName); if (!pC) { @@ -1331,21 +1333,29 @@ asynStatus XPSConfigAxis(const char *XPSName, /* specify which controlle driverName, functionName, XPSName); return asynError; } + errno = 0; + stepSize = strtod(stepsPerUnit, NULL); + if (errno != 0) { + printf("%s:%s: Error invalid steps per unit=%s\n", + driverName, functionName, stepsPerUnit); + return asynError; + } + pC->lock(); - pAxis = new XPSAxis(pC, axis, positionerName, 1./stepsPerUnit); + pAxis = new XPSAxis(pC, axis, positionerName, 1./stepSize); pAxis = NULL; pC->unlock(); return asynSuccess; } -asynStatus XPSConfigProfile(const char *XPSName, /* specify which controller by port name */ +asynStatus XPSCreateProfile(const char *XPSName, /* specify which controller by port name */ int maxPoints, /* maximum number of profile points */ const char *ftpUsername, /* FTP account name */ const char *ftpPassword) /* FTP password */ { XPSController *pC; - static const char *functionName = "XPSConfigProfile"; + static const char *functionName = "XPSCreateProfile"; pC = (XPSController*) findAsynPortDriver(XPSName); if (!pC) { @@ -1392,65 +1402,65 @@ asynStatus XPSNoDisableError(const char *XPSName) /* Code for iocsh registration */ -/* XPSConfig */ -static const iocshArg XPSConfigArg0 = {"Controller port name", iocshArgString}; -static const iocshArg XPSConfigArg1 = {"IP address", iocshArgString}; -static const iocshArg XPSConfigArg2 = {"IP port", iocshArgInt}; -static const iocshArg XPSConfigArg3 = {"Number of axes", iocshArgInt}; -static const iocshArg XPSConfigArg4 = {"Moving poll rate (ms)", iocshArgInt}; -static const iocshArg XPSConfigArg5 = {"Idle poll rate (ms)", iocshArgInt}; -static const iocshArg XPSConfigArg6 = {"Enable set position", iocshArgInt}; -static const iocshArg XPSConfigArg7 = {"Set position settling time (ms)", iocshArgInt}; -static const iocshArg * const XPSConfigArgs[] = {&XPSConfigArg0, - &XPSConfigArg1, - &XPSConfigArg2, - &XPSConfigArg2, - &XPSConfigArg4, - &XPSConfigArg5, - &XPSConfigArg6, - &XPSConfigArg7}; -static const iocshFuncDef configXPS = {"XPSConfig", 8, XPSConfigArgs}; +/* XPSCreateController */ +static const iocshArg XPSCreateControllerArg0 = {"Controller port name", iocshArgString}; +static const iocshArg XPSCreateControllerArg1 = {"IP address", iocshArgString}; +static const iocshArg XPSCreateControllerArg2 = {"IP port", iocshArgInt}; +static const iocshArg XPSCreateControllerArg3 = {"Number of axes", iocshArgInt}; +static const iocshArg XPSCreateControllerArg4 = {"Moving poll rate (ms)", iocshArgInt}; +static const iocshArg XPSCreateControllerArg5 = {"Idle poll rate (ms)", iocshArgInt}; +static const iocshArg XPSCreateControllerArg6 = {"Enable set position", iocshArgInt}; +static const iocshArg XPSCreateControllerArg7 = {"Set position settling time (ms)", iocshArgInt}; +static const iocshArg * const XPSCreateControllerArgs[] = {&XPSCreateControllerArg0, + &XPSCreateControllerArg1, + &XPSCreateControllerArg2, + &XPSCreateControllerArg2, + &XPSCreateControllerArg4, + &XPSCreateControllerArg5, + &XPSCreateControllerArg6, + &XPSCreateControllerArg7}; +static const iocshFuncDef configXPS = {"XPSCreateController", 8, XPSCreateControllerArgs}; static void configXPSCallFunc(const iocshArgBuf *args) { - XPSConfig(args[0].sval, args[1].sval, args[2].ival, - args[3].ival, args[4].ival, args[5].ival, - args[6].ival, args[7].ival); + XPSCreateController(args[0].sval, args[1].sval, args[2].ival, + args[3].ival, args[4].ival, args[5].ival, + args[6].ival, args[7].ival); } -/* XPSConfigAxis */ -static const iocshArg XPSConfigAxisArg0 = {"Controller port name", iocshArgString}; -static const iocshArg XPSConfigAxisArg1 = {"Axis number", iocshArgInt}; -static const iocshArg XPSConfigAxisArg2 = {"Axis name", iocshArgString}; -static const iocshArg XPSConfigAxisArg3 = {"Steps per unit", iocshArgInt}; -static const iocshArg * const XPSConfigAxisArgs[] = {&XPSConfigAxisArg0, - &XPSConfigAxisArg1, - &XPSConfigAxisArg2, - &XPSConfigAxisArg3}; -static const iocshFuncDef configXPSAxis = {"XPSConfigAxis", 4, XPSConfigAxisArgs}; +/* XPSCreateAxis */ +static const iocshArg XPSCreateAxisArg0 = {"Controller port name", iocshArgString}; +static const iocshArg XPSCreateAxisArg1 = {"Axis number", iocshArgInt}; +static const iocshArg XPSCreateAxisArg2 = {"Axis name", iocshArgString}; +static const iocshArg XPSCreateAxisArg3 = {"Steps per unit", iocshArgString}; +static const iocshArg * const XPSCreateAxisArgs[] = {&XPSCreateAxisArg0, + &XPSCreateAxisArg1, + &XPSCreateAxisArg2, + &XPSCreateAxisArg3}; +static const iocshFuncDef configXPSAxis = {"XPSCreateAxis", 4, XPSCreateAxisArgs}; static void configXPSAxisCallFunc(const iocshArgBuf *args) { - XPSConfigAxis(args[0].sval, args[1].ival, args[2].sval, args[3].ival); + XPSCreateAxis(args[0].sval, args[1].ival, args[2].sval, args[3].sval); } -/* XPSConfigProfile */ -static const iocshArg XPSConfigProfileArg0 = {"Controller port name", iocshArgString}; -static const iocshArg XPSConfigProfileArg1 = {"Max points", iocshArgInt}; -static const iocshArg XPSConfigProfileArg2 = {"FTP username", iocshArgString}; -static const iocshArg XPSConfigProfileArg3 = {"FTP password", iocshArgString}; -static const iocshArg * const XPSConfigProfileArgs[] = {&XPSConfigProfileArg0, - &XPSConfigProfileArg1, - &XPSConfigProfileArg2, - &XPSConfigProfileArg3}; -static const iocshFuncDef configXPSProfile = {"XPSConfigProfile", 4, XPSConfigProfileArgs}; +/* XPSCreateProfile */ +static const iocshArg XPSCreateProfileArg0 = {"Controller port name", iocshArgString}; +static const iocshArg XPSCreateProfileArg1 = {"Max points", iocshArgInt}; +static const iocshArg XPSCreateProfileArg2 = {"FTP username", iocshArgString}; +static const iocshArg XPSCreateProfileArg3 = {"FTP password", iocshArgString}; +static const iocshArg * const XPSCreateProfileArgs[] = {&XPSCreateProfileArg0, + &XPSCreateProfileArg1, + &XPSCreateProfileArg2, + &XPSCreateProfileArg3}; +static const iocshFuncDef configXPSProfile = {"XPSCreateProfile", 4, XPSCreateProfileArgs}; static void configXPSProfileCallFunc(const iocshArgBuf *args) { - XPSConfigProfile(args[0].sval, args[1].ival, args[2].sval, args[3].sval); + XPSCreateProfile(args[0].sval, args[1].ival, args[2].sval, args[3].sval); } diff --git a/motorApp/NewportSrc/devNewport.dbd b/motorApp/NewportSrc/devNewport.dbd index 03b2f399..5fc91f45 100644 --- a/motorApp/NewportSrc/devNewport.dbd +++ b/motorApp/NewportSrc/devNewport.dbd @@ -12,7 +12,7 @@ driver(motorMM4000) registrar(NewportRegister) registrar(XPSGatheringRegister) registrar(XPSRegister) -#registrar(XPSRegister3) +registrar(XPSRegister3) registrar(XPSInterposeRegister) registrar(drvXPSAsynAuxRegister) registrar(MM4005_trajectoryScanRegistrar) diff --git a/motorApp/NewportSrc/devNewportModel3.dbd b/motorApp/NewportSrc/devNewportModel3.dbd deleted file mode 100644 index 113adccf..00000000 --- a/motorApp/NewportSrc/devNewportModel3.dbd +++ /dev/null @@ -1,26 +0,0 @@ -# Newport MM3000, MM4000/5, PM500 and ESP300 Device Driver support. -device(motor,VME_IO,devMM3000,"MM3000") -device(motor,VME_IO,devMM4000,"MM4000") -device(motor,VME_IO,devPM500, "PM500") -device(motor,VME_IO,devESP300,"ESP300") -driver(drvMM3000) -driver(drvMM4000) -driver(drvPM500) -driver(drvESP300) -#driver(motorXPS) -driver(motorMM4000) -registrar(NewportRegister) -registrar(XPSGatheringRegister) -#registrar(XPSRegister) -registrar(XPSRegister3) -#registrar(XPSInterposeRegister) -registrar(drvXPSAsynAuxRegister) -registrar(MM4005_trajectoryScanRegistrar) -#registrar(XPS_trajectoryScanRegistrar) -#variable(devXPSC8Debug) -#variable(drvXPSC8Debug) -#variable(drvESP300debug) -#variable(drvMM3000debug) -#variable(drvMM4000debug) -#variable(drvPM500debug) - diff --git a/motorApp/OmsSrc/MAX_trajectoryScan.st b/motorApp/OmsSrc/MAX_trajectoryScan.st index 05f10f19..6813858e 100644 --- a/motorApp/OmsSrc/MAX_trajectoryScan.st +++ b/motorApp/OmsSrc/MAX_trajectoryScan.st @@ -16,6 +16,7 @@ program MAX_trajectoryScan("P=13IDC:,R=traj1,M1=M1,M2=M2,M3=M3,M4=M4,M5=M5,M6=M6 * Tim Mooney -- based on MM4000_trajectoryScan.st by Mark Rivers. */ +%% #include %% #include %% #include %% #include diff --git a/motorExApp/WithAsyn/Makefile b/motorExApp/WithAsyn/Makefile index 9a5b4bb3..17c389f5 100644 --- a/motorExApp/WithAsyn/Makefile +++ b/motorExApp/WithAsyn/Makefile @@ -21,7 +21,7 @@ COMMONDBDS += devImsMotor.dbd COMMONDBDS += devMclennanMotor.dbd COMMONDBDS += devMicos.dbd COMMONDBDS += devMicroMo.dbd -COMMONDBDS += devNewportModel3.dbd +COMMONDBDS += devNewport.dbd ifdef SNCSEQ COMMONDBDS += LdevNewportTS.dbd endif @@ -66,7 +66,7 @@ COMMONLIBS += MicroMo COMMONLIBS += PI COMMONLIBS += Acs COMMONLIBS += Ims -COMMONLIBS += NewportModel3 Newport +COMMONLIBS += Newport COMMONLIBS += softMotor COMMONLIBS += motorSimSupport COMMONLIBS += SmartMotor