Merge pull request #2 from epics-modules/master

Syncing from original
This commit is contained in:
PI-SRau
2016-10-20 10:02:22 +02:00
committed by GitHub
85 changed files with 521 additions and 454 deletions
+4
View File
@@ -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
+25
View File
@@ -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)))
+7
View File
@@ -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}
}
+31
View File
@@ -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", "#")
+37
View File
@@ -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", "#")
+30
View File
@@ -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", "#")
+32
View File
@@ -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", "#")
+30
View File
@@ -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", "#")
+49
View File
@@ -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", "#")
+28
View File
@@ -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)))
+31
View File
@@ -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", "#")
+30
View File
@@ -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", "#")
+10
View File
@@ -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)')")
+34
View File
@@ -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=\"\"")
+2
View File
@@ -21,6 +21,8 @@
#include <string.h>
#include <epicsThread.h>
#include <drvSup.h>
#include <stdlib.h>
#include <errlog.h>
#include "motor.h"
#include "AcsRegister.h"
#include "drvMCB4B.h"
+1
View File
@@ -37,6 +37,7 @@ USAGE... Motor record device level support for ACS Tech80 SPiiPlus
#include <string.h>
#include <math.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "motordevCom.h"
+2
View File
@@ -47,6 +47,8 @@ USAGE... Motor record driver level support for ACS Tech80
#include <epicsThread.h>
#include <epicsString.h>
#include <drvSup.h>
#include <errlog.h>
#include <stdlib.h>
#include "motor.h"
#include "ACSTech80Register.h"
#include "drvSPiiPlus.h"
+1
View File
@@ -40,6 +40,7 @@
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "motordevCom.h"
+19 -14
View File
@@ -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. */
+2 -3
View File
@@ -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));
+2
View File
@@ -43,6 +43,8 @@
#include <epicsThread.h>
#include <epicsString.h>
#include <drvSup.h>
#include <stdlib.h>
#include <errlog.h>
#include "motor.h"
#include "drvSoloist.h"
#include "asynOctetSyncIO.h"
+1
View File
@@ -36,6 +36,7 @@ USAGE... Motor record device level support for Intelligent Motion
*/
#include <string.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
+1
View File
@@ -47,6 +47,7 @@ DESIGN LIMITATIONS...
#include <string.h>
#include <epicsThread.h>
#include <drvSup.h>
#include <errlog.h>
#include "motor.h"
#include "drvMCDC2805.h"
#include "asynOctetSyncIO.h"
+1
View File
@@ -41,6 +41,7 @@ USAGE... Motor record device level support for Intelligent Motion
*/
#include <string.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "motordevCom.h"
+1
View File
@@ -41,6 +41,7 @@ USAGE... Motor record device level support for Intelligent Motion
*/
#include <string.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "motordevCom.h"
+1
View File
@@ -43,6 +43,7 @@ USAGE... Motor record device level support for Intelligent Motion
*/
#include <string.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
+2
View File
@@ -56,6 +56,8 @@ DESIGN LIMITATIONS...
#include <string.h>
#include <epicsThread.h>
#include <drvSup.h>
#include <stdlib.h>
#include <errlog.h>
#include "motor.h"
#include "drvIM483.h"
#include "asynOctetSyncIO.h"
+2
View File
@@ -55,6 +55,8 @@ DESIGN LIMITATIONS...
#include <ctype.h>
#include <epicsThread.h>
#include <drvSup.h>
#include <stdlib.h>
#include <errlog.h>
#include "motor.h"
#include "drvIM483.h"
#include "asynOctetSyncIO.h"
+2
View File
@@ -76,6 +76,8 @@ DESIGN LIMITATIONS...
#include <string.h>
#include <epicsThread.h>
#include <drvSup.h>
#include <stdlib.h>
#include <errlog.h>
#include "motor.h"
#include "drvIM483.h"
#include "asynOctetSyncIO.h"
+2
View File
@@ -38,6 +38,8 @@ USAGE... Motor record device level support for Kohzu SC800 motor controll
#include <string.h>
#include <math.h>
#include <stdlib.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "motordevCom.h"
+2
View File
@@ -45,6 +45,8 @@ USAGE... Motor record driver level support for Kohzu SC800
#include <epicsThread.h>
#include <drvSup.h>
#include <iocsh.h>
#include <errlog.h>
#include <stdlib.h>
#include "motor.h"
#include "motorRecord.h"
#include "drvSC800.h"
+2
View File
@@ -36,6 +36,8 @@
#include <epicsThread.h>
#include <epicsString.h>
#include <drvSup.h>
#include <stdlib.h>
#include <errlog.h>
#include "motor.h"
#include "drvPM304.h"
#include "asynOctetSyncIO.h"
+2
View File
@@ -23,6 +23,8 @@
#include <string.h>
#include <epicsThread.h>
#include <drvSup.h>
#include <stdlib.h>
#include <errlog.h>
#include "motor.h"
#include "drvMicos.h"
#include "epicsExport.h"
+2
View File
@@ -89,6 +89,8 @@ USAGE... Motor record device level support for MicroMo
#include <string.h>
#include <math.h>
#include <ctype.h>
#include <stdlib.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "motordevCom.h"
+2
View File
@@ -125,6 +125,8 @@ MORE DESIGN LIMITATIONS
#include <string.h>
#include <epicsThread.h>
#include <drvSup.h>
#include <stdlib.h>
#include <errlog.h>
#include "motor.h"
#include "drvMVP2001.h"
#include "epicsExport.h"
+2 -1
View File
@@ -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_;
+11 -4
View File
@@ -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);
+6 -5
View File
@@ -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);
-5
View File
@@ -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)
+2
View File
@@ -44,6 +44,8 @@ Last Modified: 2004/12/20 21:10:53
#include <string.h>
#include <stdlib.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "motordevCom.h"
+2
View File
@@ -66,6 +66,8 @@ Last Modified: 2005/03/30 19:10:48
#include <string.h>
#include <epicsThread.h>
#include <drvSup.h>
#include <stdlib.h>
#include <errlog.h>
#include "NewFocusRegister.h"
#include "drvPMNCCom.h"
#include "asynOctetSyncIO.h"
+1
View File
@@ -38,6 +38,7 @@ USAGE... Motor record device level support for Newport ESP300.
#include <string.h>
#include <math.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "motordevCom.h"
+2
View File
@@ -40,6 +40,8 @@ USAGE... Motor record device level support for Newport MM3000.
#include <string.h>
#include <stdlib.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "motordevCom.h"
+1
View File
@@ -44,6 +44,7 @@ USAGE... Motor record device level support for Newport MM4000.
#include <string.h>
#include <math.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "motordevCom.h"
+1
View File
@@ -42,6 +42,7 @@ USAGE... Motor record device level support for the Newport PM500 motor
#include <string.h>
#include <math.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "motordevCom.h"
+2
View File
@@ -56,6 +56,8 @@ USAGE... Motor record driver level support for Newport ESP300/100.
#include <string.h>
#include <epicsThread.h>
#include <drvSup.h>
#include <errlog.h>
#include <stdlib.h>
#include "motor.h"
#include "NewportRegister.h"
#include "drvMMCom.h"
+2
View File
@@ -68,6 +68,8 @@ USAGE... Motor record driver level support for Newport MM3000.
#include <epicsThread.h>
#include <epicsString.h>
#include <drvSup.h>
#include <stdlib.h>
#include <errlog.h>
#include "motor.h"
#include "NewportRegister.h"
#include "drvMMCom.h"
+2
View File
@@ -84,6 +84,8 @@ USAGE... Motor record driver level support for Newport MM4000.
#include <epicsThread.h>
#include <epicsString.h>
#include <drvSup.h>
#include <stdlib.h>
#include <errlog.h>
#include "motor.h"
#include "NewportRegister.h"
#include "drvMMCom.h"
+2
View File
@@ -55,6 +55,8 @@ USAGE... Motor record driver level support for Newport PM500.
#include <math.h>
#include <epicsThread.h>
#include <drvSup.h>
#include <stdlib.h>
#include <errlog.h>
#include "motor.h"
#include "NewportRegister.h"
#include "drvMMCom.h"
+2
View File
@@ -35,6 +35,8 @@ USAGE... Device level support for OMS MAXv model.
* .01 04-05-05 rls Copied from devOms58.cc
*/
#include <errlog.h>
#include "motorRecord.h"
#include "devOmsCom.h"
#include "epicsExport.h"
+1
View File
@@ -78,6 +78,7 @@ USAGE... Data and functions common to all OMS device level support.
#include <epicsThread.h>
#include <epicsString.h>
#include <dbAccess.h>
#include <stdlib.h>
#include "motorRecord.h"
#include "motor.h"
+1
View File
@@ -111,6 +111,7 @@ USAGE... Motor record driver level support for OMS model MAXv.
#include <iocsh.h>
#include <epicsExit.h>
#include <cantProceed.h>
#include <errlog.h>
#include "motorRecord.h" /* For Driver Power Monitor feature only. */
#include "motor.h"
+2
View File
@@ -110,6 +110,8 @@ USAGE... Driver level support for OMS models VME8, VME44, VS4 and VX2.
#include <epicsInterrupt.h>
#include <epicsExit.h>
#include <epicsEvent.h>
#include <errlog.h>
#include <stdlib.h>
#include "motor.h"
#include "drvOms.h"
+2
View File
@@ -125,6 +125,8 @@ USAGE... Motor record driver level support for OMS model VME58.
#include <epicsThread.h>
#include <epicsExit.h>
#include <epicsInterrupt.h>
#include <errlog.h>
#include <stdlib.h>
#include "motorRecord.h" /* For Driver Power Monitor feature only. */
#include "motor.h"
+2
View File
@@ -72,6 +72,8 @@ USAGE... Motor record driver level support for OMS PC68 serial device.
#include <dbAccess.h>
#include <drvSup.h>
#include <iocsh.h>
#include <errlog.h>
#include <stdlib.h>
#include "motor.h"
#include "drvOmsPC68Com.h"
+1
View File
@@ -37,6 +37,7 @@ USAGE... Motor record device level support for Parker Compumotor drivers
#include <string.h>
#include <math.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "motordevCom.h"
+2
View File
@@ -43,6 +43,8 @@ USAGE... Motor record driver level support for Spectra-Physics
#include <stdio.h>
#include <epicsThread.h>
#include <drvSup.h>
#include <errlog.h>
#include <stdlib.h>
#include "motor.h"
#include "OrielRegister.h"
#include "drvEMC18011.h"
+1
View File
@@ -37,6 +37,7 @@ USAGE... Motor record device level support for Parker Compumotor drivers
#include <string.h>
#include <math.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "motordevCom.h"
+2
View File
@@ -43,6 +43,8 @@ USAGE... Motor record driver level support for Parker Computmotor
#include <stdio.h>
#include <epicsThread.h>
#include <drvSup.h>
#include <stdlib.h>
#include <errlog.h>
#include "motor.h"
#include "ParkerRegister.h"
#include "drvPC6K.h"
+1
View File
@@ -37,6 +37,7 @@ USAGE... Motor record device level support for Physik Instrumente (PI)
#include <string.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "motordevCom.h"
+2
View File
@@ -44,6 +44,8 @@ DESIGN LIMITATIONS...
#include <math.h>
#include <epicsThread.h>
#include <drvSup.h>
#include <stdlib.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "drvPIJEDS.h"
+1
View File
@@ -37,6 +37,7 @@ USAGE... Motor record device level support for Physik Instrumente (PI)
#include <string.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "motordevCom.h"
+2
View File
@@ -15,6 +15,8 @@ USAGE... Motor record device level support for Physik Instrumente (PI)
#include <string.h>
#include <math.h>
#include <stdlib.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "motordevCom.h"
+1
View File
@@ -38,6 +38,7 @@ USAGE... Motor record device level support for Physik Instrumente (PI)
#include <string.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "motordevCom.h"
+1
View File
@@ -41,6 +41,7 @@ USAGE... Motor record device level support for Physik Instrumente (PI)
#include <string.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "motordevCom.h"
+2
View File
@@ -19,6 +19,8 @@ USAGE... Motor record device level support for Physik Instrumente (PI)
#include <string.h>
#include <math.h>
#include <stdlib.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "motordevCom.h"
+1
View File
@@ -38,6 +38,7 @@ USAGE... Motor record device level support for Physik Instrumente (PI)
#include <string.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "motordevCom.h"
+1
View File
@@ -38,6 +38,7 @@ USAGE... Motor record device level support for Physik Instrumente (PI)
#include <string.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "motordevCom.h"
+1
View File
@@ -41,6 +41,7 @@ Last Modified: 2007/03/30 20:01:05
#include <string.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "motordevCom.h"
+2
View File
@@ -22,6 +22,8 @@
#include <string.h>
#include <epicsThread.h>
#include <drvSup.h>
#include <stdlib.h>
#include <errlog.h>
#include "motor.h"
#include "drvPIC630.h"
#include "asynOctetSyncIO.h"
+2
View File
@@ -48,6 +48,8 @@ DESIGN LIMITATIONS...
#include <math.h>
#include <epicsThread.h>
#include <drvSup.h>
#include <stdlib.h>
#include <errlog.h>
#include "motor.h"
#include "drvPIC662.h"
#include "epicsExport.h"
+2
View File
@@ -22,6 +22,8 @@ DESIGN LIMITATIONS...
#include <string.h>
#include <epicsThread.h>
#include <drvSup.h>
#include <stdlib.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "drvPIC663.h"
+2
View File
@@ -58,6 +58,8 @@ DESIGN LIMITATIONS...
#include <string.h>
#include <epicsThread.h>
#include <drvSup.h>
#include <stdlib.h>
#include <errlog.h>
#include "motor.h"
#include "drvPI.h"
#include "epicsExport.h"
+2
View File
@@ -46,6 +46,8 @@ DESIGN LIMITATIONS...
#include <string.h>
#include <epicsThread.h>
#include <drvSup.h>
#include <stdlib.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "drvPIC848.h"
+2
View File
@@ -31,6 +31,8 @@ DESIGN LIMITATIONS...
#include <string.h>
#include <epicsThread.h>
#include <drvSup.h>
#include <stdlib.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "drvPIC862.h"
+2
View File
@@ -45,6 +45,8 @@ DESIGN LIMITATIONS...
#include <string.h>
#include <epicsThread.h>
#include <drvSup.h>
#include <stdlib.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "drvPIE516.h"
+2
View File
@@ -45,6 +45,8 @@ DESIGN LIMITATIONS...
#include <string.h>
#include <epicsThread.h>
#include <drvSup.h>
#include <stdlib.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "drvPIE710.h"
+2
View File
@@ -53,6 +53,8 @@ DESIGN LIMITATIONS...
#include <string.h>
#include <epicsThread.h>
#include <drvSup.h>
#include <stdlib.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "drvPIE816.h"
+1
View File
@@ -41,6 +41,7 @@ USAGE... Motor record driver level support for Animatics Corporation SmartMot
*/
#include <string.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
+2
View File
@@ -44,6 +44,8 @@ USAGE... Motor record driver level support for Animatics Corporation SmartMot
#include <epicsThread.h>
#include <drvSup.h>
#include <iocsh.h>
#include <stdlib.h>
#include <errlog.h>
#include "motor.h"
#include "motorRecord.h"
#include "drvSmartMotor.h"
+1
View File
@@ -38,6 +38,7 @@ USAGE... Motor record device level support for ThorLabs Piezo Control
#include <string.h>
#include <math.h>
#include <errlog.h>
#include "motorRecord.h"
#include "motor.h"
#include "motordevCom.h"
+2
View File
@@ -44,6 +44,8 @@ USAGE... Motor record driver level support for ThorLabs
#include <stdio.h>
#include <epicsThread.h>
#include <drvSup.h>
#include <stdlib.h>
#include <errlog.h>
#include "motor.h"
#include "ThorLabsRegister.h"
#include "drvMDT695.h"
-52
View File
@@ -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
+1 -225
View File
@@ -583,230 +583,6 @@ $(pv_value)</tooltip>
<tooltip></tooltip>
<x>950</x>
</widget>
<widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="1.0">
<border_alarm_sensitive>false</border_alarm_sensitive>
<visible>true</visible>
<vertical_alignment>1</vertical_alignment>
<multiline_input>false</multiline_input>
<auto_size>false</auto_size>
<scripts />
<height>16</height>
<forecolor_alarm_sensitive>false</forecolor_alarm_sensitive>
<precision_from_pv>true</precision_from_pv>
<background_color>
<color name="Gray_2" red="218" green="218" blue="218" />
</background_color>
<widget_type>Text Input</widget_type>
<enabled>true</enabled>
<text></text>
<font>
<fontdata fontName="Sans" height="7" style="0" />
</font>
<width>50</width>
<border_style>3</border_style>
<pv_value />
<border_width>1</border_width>
<maximum>Infinity</maximum>
<minimum>-Infinity</minimum>
<show_units>false</show_units>
<wuid>39872d87:13e14015f61:-38de</wuid>
<rotation_angle>0.0</rotation_angle>
<name>Text Input</name>
<scale_options>
<width_scalable>true</width_scalable>
<height_scalable>true</height_scalable>
<keep_wh_ratio>false</keep_wh_ratio>
</scale_options>
<format_type>1</format_type>
<transparent>false</transparent>
<selector_type>0</selector_type>
<pv_name>$(P)$(M5).BACC</pv_name>
<foreground_color>
<color name="Gray_14" red="0" green="0" blue="0" />
</foreground_color>
<backcolor_alarm_sensitive>false</backcolor_alarm_sensitive>
<precision>0</precision>
<confirm_message></confirm_message>
<rules />
<limits_from_pv>false</limits_from_pv>
<border_color>
<color red="0" green="128" blue="255" />
</border_color>
<horizontal_alignment>0</horizontal_alignment>
<actions hook="false" hook_all="false" />
<y>113</y>
<tooltip>$(pv_name)
$(pv_value)</tooltip>
<x>1000</x>
</widget>
<widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="1.0">
<border_alarm_sensitive>false</border_alarm_sensitive>
<visible>true</visible>
<vertical_alignment>1</vertical_alignment>
<multiline_input>false</multiline_input>
<auto_size>false</auto_size>
<scripts />
<height>16</height>
<forecolor_alarm_sensitive>false</forecolor_alarm_sensitive>
<precision_from_pv>true</precision_from_pv>
<background_color>
<color name="Gray_2" red="218" green="218" blue="218" />
</background_color>
<widget_type>Text Input</widget_type>
<enabled>true</enabled>
<text></text>
<font>
<fontdata fontName="Sans" height="7" style="0" />
</font>
<width>50</width>
<border_style>3</border_style>
<pv_value />
<border_width>1</border_width>
<maximum>Infinity</maximum>
<minimum>-Infinity</minimum>
<show_units>false</show_units>
<wuid>39872d87:13e14015f61:-38dd</wuid>
<rotation_angle>0.0</rotation_angle>
<name>Text Input</name>
<scale_options>
<width_scalable>true</width_scalable>
<height_scalable>true</height_scalable>
<keep_wh_ratio>false</keep_wh_ratio>
</scale_options>
<format_type>1</format_type>
<transparent>false</transparent>
<selector_type>0</selector_type>
<pv_name>$(P)$(M6).BACC</pv_name>
<foreground_color>
<color name="Gray_14" red="0" green="0" blue="0" />
</foreground_color>
<backcolor_alarm_sensitive>false</backcolor_alarm_sensitive>
<precision>0</precision>
<confirm_message></confirm_message>
<rules />
<limits_from_pv>false</limits_from_pv>
<border_color>
<color red="0" green="128" blue="255" />
</border_color>
<horizontal_alignment>0</horizontal_alignment>
<actions hook="false" hook_all="false" />
<y>128</y>
<tooltip>$(pv_name)
$(pv_value)</tooltip>
<x>1000</x>
</widget>
<widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="1.0">
<border_alarm_sensitive>false</border_alarm_sensitive>
<visible>true</visible>
<vertical_alignment>1</vertical_alignment>
<multiline_input>false</multiline_input>
<auto_size>false</auto_size>
<scripts />
<height>16</height>
<forecolor_alarm_sensitive>false</forecolor_alarm_sensitive>
<precision_from_pv>true</precision_from_pv>
<background_color>
<color name="Gray_2" red="218" green="218" blue="218" />
</background_color>
<widget_type>Text Input</widget_type>
<enabled>true</enabled>
<text></text>
<font>
<fontdata fontName="Sans" height="7" style="0" />
</font>
<width>50</width>
<border_style>3</border_style>
<pv_value />
<border_width>1</border_width>
<maximum>Infinity</maximum>
<minimum>-Infinity</minimum>
<show_units>false</show_units>
<wuid>39872d87:13e14015f61:-38dc</wuid>
<rotation_angle>0.0</rotation_angle>
<name>Text Input</name>
<scale_options>
<width_scalable>true</width_scalable>
<height_scalable>true</height_scalable>
<keep_wh_ratio>false</keep_wh_ratio>
</scale_options>
<format_type>1</format_type>
<transparent>false</transparent>
<selector_type>0</selector_type>
<pv_name>$(P)$(M7).BACC</pv_name>
<foreground_color>
<color name="Gray_14" red="0" green="0" blue="0" />
</foreground_color>
<backcolor_alarm_sensitive>false</backcolor_alarm_sensitive>
<precision>0</precision>
<confirm_message></confirm_message>
<rules />
<limits_from_pv>false</limits_from_pv>
<border_color>
<color red="0" green="128" blue="255" />
</border_color>
<horizontal_alignment>0</horizontal_alignment>
<actions hook="false" hook_all="false" />
<y>143</y>
<tooltip>$(pv_name)
$(pv_value)</tooltip>
<x>1000</x>
</widget>
<widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="1.0">
<border_alarm_sensitive>false</border_alarm_sensitive>
<visible>true</visible>
<vertical_alignment>1</vertical_alignment>
<multiline_input>false</multiline_input>
<auto_size>false</auto_size>
<scripts />
<height>16</height>
<forecolor_alarm_sensitive>false</forecolor_alarm_sensitive>
<precision_from_pv>true</precision_from_pv>
<background_color>
<color name="Gray_2" red="218" green="218" blue="218" />
</background_color>
<widget_type>Text Input</widget_type>
<enabled>true</enabled>
<text></text>
<font>
<fontdata fontName="Sans" height="7" style="0" />
</font>
<width>50</width>
<border_style>3</border_style>
<pv_value />
<border_width>1</border_width>
<maximum>Infinity</maximum>
<minimum>-Infinity</minimum>
<show_units>false</show_units>
<wuid>39872d87:13e14015f61:-38db</wuid>
<rotation_angle>0.0</rotation_angle>
<name>Text Input</name>
<scale_options>
<width_scalable>true</width_scalable>
<height_scalable>true</height_scalable>
<keep_wh_ratio>false</keep_wh_ratio>
</scale_options>
<format_type>1</format_type>
<transparent>false</transparent>
<selector_type>0</selector_type>
<pv_name>$(P)$(M8).BACC</pv_name>
<foreground_color>
<color name="Gray_14" red="0" green="0" blue="0" />
</foreground_color>
<backcolor_alarm_sensitive>false</backcolor_alarm_sensitive>
<precision>0</precision>
<confirm_message></confirm_message>
<rules />
<limits_from_pv>false</limits_from_pv>
<border_color>
<color red="0" green="128" blue="255" />
</border_color>
<horizontal_alignment>0</horizontal_alignment>
<actions hook="false" hook_all="false" />
<y>158</y>
<tooltip>$(pv_name)
$(pv_value)</tooltip>
<x>1000</x>
</widget>
<widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="1.0">
<border_alarm_sensitive>false</border_alarm_sensitive>
<visible>true</visible>
@@ -5920,4 +5696,4 @@ $(pv_value)</tooltip>
$(pv_value)</tooltip>
<x>0</x>
</widget>
</display>
</display>
+1 -145
View File
@@ -451,150 +451,6 @@ QPushButton::menu-indicator {image: url(none.png); width: 0}
</rect>
</property>
</widget>
<widget class="caTextEntry" name="caTextEntry_4">
<property name="geometry">
<rect>
<x>1000</x>
<y>113</y>
<width>50</width>
<height>16</height>
</rect>
</property>
<property name="fontScaleMode">
<enum>caLineEdit::WidthAndHeight</enum>
</property>
<property name="channel">
<string>$(P)$(M5).BACC</string>
</property>
<property name="foreground">
<color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</property>
<property name="background">
<color alpha="255">
<red>218</red>
<green>218</green>
<blue>218</blue>
</color>
</property>
<property name="colorMode">
<enum>caLineEdit::Static</enum>
</property>
<property name="formatType">
<enum>decimal</enum>
</property>
</widget>
<widget class="caTextEntry" name="caTextEntry_5">
<property name="geometry">
<rect>
<x>1000</x>
<y>128</y>
<width>50</width>
<height>16</height>
</rect>
</property>
<property name="fontScaleMode">
<enum>caLineEdit::WidthAndHeight</enum>
</property>
<property name="channel">
<string>$(P)$(M6).BACC</string>
</property>
<property name="foreground">
<color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</property>
<property name="background">
<color alpha="255">
<red>218</red>
<green>218</green>
<blue>218</blue>
</color>
</property>
<property name="colorMode">
<enum>caLineEdit::Static</enum>
</property>
<property name="formatType">
<enum>decimal</enum>
</property>
</widget>
<widget class="caTextEntry" name="caTextEntry_6">
<property name="geometry">
<rect>
<x>1000</x>
<y>143</y>
<width>50</width>
<height>16</height>
</rect>
</property>
<property name="fontScaleMode">
<enum>caLineEdit::WidthAndHeight</enum>
</property>
<property name="channel">
<string>$(P)$(M7).BACC</string>
</property>
<property name="foreground">
<color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</property>
<property name="background">
<color alpha="255">
<red>218</red>
<green>218</green>
<blue>218</blue>
</color>
</property>
<property name="colorMode">
<enum>caLineEdit::Static</enum>
</property>
<property name="formatType">
<enum>decimal</enum>
</property>
</widget>
<widget class="caTextEntry" name="caTextEntry_7">
<property name="geometry">
<rect>
<x>1000</x>
<y>158</y>
<width>50</width>
<height>16</height>
</rect>
</property>
<property name="fontScaleMode">
<enum>caLineEdit::WidthAndHeight</enum>
</property>
<property name="channel">
<string>$(P)$(M8).BACC</string>
</property>
<property name="foreground">
<color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</property>
<property name="background">
<color alpha="255">
<red>218</red>
<green>218</green>
<blue>218</blue>
</color>
</property>
<property name="colorMode">
<enum>caLineEdit::Static</enum>
</property>
<property name="formatType">
<enum>decimal</enum>
</property>
</widget>
<widget class="caTextEntry" name="caTextEntry_8">
<property name="geometry">
<rect>
@@ -4401,4 +4257,4 @@ QPushButton::menu-indicator {image: url(none.png); width: 0}
<zorder>caTextEntry_63</zorder>
</widget>
</widget>
</ui>
</ui>