From 2e89b55279d849a511b3d678520fefb0f98b6a28 Mon Sep 17 00:00:00 2001 From: Jack Harper Date: Mon, 21 Nov 2022 13:03:46 +0000 Subject: [PATCH 01/29] Add raw limits so that soft limits are synced with motor resolution change --- motorApp/MotorSrc/motorRecord.cc | 313 ++++++++++++++++++++---------- motorApp/MotorSrc/motorRecord.dbd | 12 ++ 2 files changed, 224 insertions(+), 101 deletions(-) diff --git a/motorApp/MotorSrc/motorRecord.cc b/motorApp/MotorSrc/motorRecord.cc index bcf629dad..e7b264203 100644 --- a/motorApp/MotorSrc/motorRecord.cc +++ b/motorApp/MotorSrc/motorRecord.cc @@ -234,6 +234,8 @@ static void monitor(motorRecord *); static void process_motor_info(motorRecord *, bool); static void load_pos(motorRecord *); static void check_speed_and_resolution(motorRecord *); +static void set_user_highlimit(motorRecord*, struct motor_dset*); +static void set_user_lowlimit(motorRecord*, struct motor_dset*); static void set_dial_highlimit(motorRecord *, struct motor_dset *); static void set_dial_lowlimit(motorRecord *, struct motor_dset *); static void set_userlimits(motorRecord *); @@ -383,6 +385,8 @@ typedef union unsigned int M_JOGR :1; unsigned int M_HOMF :1; unsigned int M_HOMR :1; + unsigned int M_RHLM :1; + unsigned int M_RLLM :1; } Bits; } nmap_field; @@ -2495,7 +2499,7 @@ static long special(DBADDR *paddr, int after) int dir = dir_positive ? 1 : -1; bool changed = false; int fieldIndex = dbGetFieldIndex(paddr); - double offset, tmp_raw, tmp_limit, fabs_urev; + double fabs_urev; RTN_STATUS rtnval; motor_cmnd command; double temp_dbl; @@ -2700,110 +2704,12 @@ static long special(DBADDR *paddr, int after) /* new user high limit */ case motorRecordHLM: - offset = pmr->off; - if (dir_positive) - { - tmp_limit = pmr->hlm - offset; - MARK(M_DHLM); - } - else - { - tmp_limit = -(pmr->hlm) + offset; - MARK(M_DLLM); - } - - /* Which controller limit we set depends not only on dir, but - also on the sign of MRES */ - /* Direction +ve AND +ve MRES OR - Direction -ve AND -ve MRES */ - if (dir_positive ^ (pmr->mres < 0)) - { - command = SET_HIGH_LIMIT; - } - else - /* Direction -ve AND +ve MRES OR - Direction +ve AND -ve MRES */ - { - command = SET_LOW_LIMIT; - } - - tmp_raw = tmp_limit / pmr->mres; - - INIT_MSG(); - rtnval = (*pdset->build_trans)(command, &tmp_raw, pmr); - if (rtnval != OK) - { - /* If an error occured, build_trans() has reset - * dial high or low limit to controller's value. */ - - if (dir_positive) - pmr->hlm = pmr->dhlm + offset; - else - pmr->hlm = -(pmr->dllm) + offset; - } - else - { - SEND_MSG(); - if (dir_positive) - pmr->dhlm = tmp_limit; - else - pmr->dllm = tmp_limit; - } - MARK(M_HLM); + set_user_highlimit(pmr, pdset); break; /* new user low limit */ case motorRecordLLM: - offset = pmr->off; - if (dir_positive) - { - tmp_limit = pmr->llm - offset; - MARK(M_DLLM); - } - else - { - tmp_limit = -(pmr->llm) + offset; - MARK(M_DHLM); - } - - /* Which controller limit we set depends not only on dir, but - also on the sign of MRES */ - /* Direction +ve AND +ve MRES OR - Direction -ve AND -ve MRES */ - if (dir_positive ^ (pmr->mres < 0)) - { - command = SET_LOW_LIMIT; - } - else - /* Direction -ve AND +ve MRES OR - Direction +ve AND -ve MRES */ - { - command = SET_HIGH_LIMIT; - } - - tmp_raw = tmp_limit / pmr->mres; - - INIT_MSG(); - rtnval = (*pdset->build_trans)(command, &tmp_raw, pmr); - if (rtnval != OK) - { - /* If an error occured, build_trans() has reset - * dial high or low limit to controller's value. */ - - if (dir_positive) - pmr->llm = pmr->dllm + offset; - else - pmr->llm = -(pmr->dhlm) + offset; - } - else - { - SEND_MSG(); - if (dir_positive) - pmr->dllm = tmp_limit; - else - pmr->dhlm = tmp_limit; - } - MARK(M_LLM); + set_user_lowlimit(pmr, pdset); break; /* new dial high limit */ @@ -2877,6 +2783,19 @@ static long special(DBADDR *paddr, int after) pmr->vmax = temp_dbl; db_post_events(pmr, &pmr->vmax, DBE_VAL_LOG); } + if (pmr->dllm != (temp_dbl = pmr->rllm * pmr->mres)) + { + pmr->dllm = temp_dbl; + db_post_events(pmr, &pmr->dllm, DBE_VAL_LOG); + } + if (pmr->dhlm != (temp_dbl = pmr->rhlm * pmr->mres)) + { + pmr->dhlm = temp_dbl; + db_post_events(pmr, &pmr->dhlm, DBE_VAL_LOG); + } + set_userlimits(pmr); + db_post_events(pmr, &pmr->hlm, DBE_VAL_LOG); + db_post_events(pmr, &pmr->llm, DBE_VAL_LOG); break; /* new srev: make mres agree */ @@ -3828,6 +3747,20 @@ static void load_pos(motorRecord * pmr) * Range check; VBAS < VELO < VMAX. * S < - VELO / |UREV|. * ENDIF + * + * IF RLLM is nonzero. + * DLLM < - RLLM * MRES. + * ENDIF + * IF RLLM is not DLLM / MRES. + * RLLM < - DLLM / MRES. + * ENDIF + * + * IF RHLM is nonzero. + * DHLM < - RHLM * MRES. + * ENDIF + * IF RHLM is not DHLM / MRES. + * RHLM < - DHLM / MRES. + * ENDIF * * IF SBAK is nonzero. * Range check; SBAS < SBAK < SMAX. @@ -3917,6 +3850,35 @@ static void check_speed_and_resolution(motorRecord * pmr) db_post_events(pmr, &pmr->velo, DBE_VAL_LOG); db_post_events(pmr, &pmr->s, DBE_VAL_LOG); + /* RLLM <--> DLLM */ + if (pmr->rllm != 0.0) + { + pmr->dllm = pmr->rllm * pmr->mres; + MARK(M_DLLM); + } + if (pmr->rllm != pmr->dllm / pmr->mres) + { + pmr->rllm = pmr->dllm / pmr->mres; + MARK_AUX(M_RLLM); + } + db_post_events(pmr, &pmr->dllm, DBE_VAL_LOG); + db_post_events(pmr, &pmr->rllm, DBE_VAL_LOG); + + + /* RHLM <--> DHLM */ + if (pmr->rhlm != 0.0) + { + pmr->dhlm = pmr->rhlm * pmr->mres; + MARK(M_DHLM); + } + if (pmr->rhlm != pmr->dhlm / pmr->mres) + { + pmr->rhlm = pmr->dhlm / pmr->mres; + MARK_AUX(M_RHLM); + } + db_post_events(pmr, &pmr->rhlm, DBE_VAL_LOG); + db_post_events(pmr, &pmr->dhlm, DBE_VAL_LOG); + /* SBAK (revolutions/sec) <--> BVEL (EGU/sec) */ if (pmr->sbak != 0.0) { @@ -3958,6 +3920,149 @@ static void check_speed_and_resolution(motorRecord * pmr) range_check(pmr, &pmr->hvel, pmr->vbas, pmr->vmax); } +/* +FUNCTION... void set_user_highlimit(motorRecord *) +USAGE... Set user high limit. +NOTES... This function sends a command to the device to set the user high +limit. This is respective to the direction of the motor. +*/ +static void set_user_highlimit(motorRecord* pmr, struct motor_dset* pdset) +{ + int dir_positive = (pmr->dir == motorDIR_Pos); + double tmp_limit, offset, tmp_raw; + motor_cmnd command; + RTN_STATUS rtnval; + offset = pmr->off; + if (dir_positive) + { + tmp_limit = pmr->hlm - offset; + MARK(M_DHLM); + } + else + { + tmp_limit = -(pmr->hlm) + offset; + MARK(M_DLLM); + } + + /* Which controller limit we set depends not only on dir, but + also on the sign of MRES */ + /* Direction +ve AND +ve MRES OR + Direction -ve AND -ve MRES */ + if (dir_positive ^ (pmr->mres < 0)) + { + command = SET_HIGH_LIMIT; + } + else + /* Direction -ve AND +ve MRES OR + Direction +ve AND -ve MRES */ + { + command = SET_LOW_LIMIT; + } + + tmp_raw = tmp_limit / pmr->mres; + + INIT_MSG(); + rtnval = (*pdset->build_trans)(command, &tmp_raw, pmr); + if (rtnval != OK) + { + /* If an error occured, build_trans() has reset + * dial high or low limit to controller's value. */ + + if (dir_positive) + pmr->hlm = pmr->dhlm + offset; + else + pmr->hlm = -(pmr->dllm) + offset; + } + else + { + // set dial and raw limits + SEND_MSG(); + if (dir_positive) + { + pmr->dhlm = tmp_limit; + pmr->rhlm = tmp_raw; + } + else + { + pmr->dllm = tmp_limit; + pmr->rllm = tmp_limit; + } + } + MARK(M_HLM); +} + +/* +FUNCTION... void set_user_lowlimit(motorRecord *) +USAGE... Set user low limit. +NOTES... This function sends a command to the device to set the user low +limit. This is respective to the direction of the motor. +*/ +static void set_user_lowlimit(motorRecord* pmr, struct motor_dset* pdset) +{ + int dir_positive = (pmr->dir == motorDIR_Pos); + double tmp_limit, offset, tmp_raw; + motor_cmnd command; + RTN_STATUS rtnval; + offset = pmr->off; + if (dir_positive) + { + tmp_limit = pmr->llm - offset; + MARK(M_DLLM); + } + else + { + tmp_limit = -(pmr->llm) + offset; + MARK(M_DHLM); + } + + /* Which controller limit we set depends not only on dir, but + also on the sign of MRES */ + /* Direction +ve AND +ve MRES OR + Direction -ve AND -ve MRES */ + if (dir_positive ^ (pmr->mres < 0)) + { + command = SET_LOW_LIMIT; + } + else + /* Direction -ve AND +ve MRES OR + Direction +ve AND -ve MRES */ + { + command = SET_HIGH_LIMIT; + } + + tmp_raw = tmp_limit / pmr->mres; + + INIT_MSG(); + rtnval = (*pdset->build_trans)(command, &tmp_raw, pmr); + if (rtnval != OK) + { + /* If an error occured, build_trans() has reset + * dial high or low limit to controller's value. */ + + if (dir_positive) + pmr->llm = pmr->dllm + offset; + else + pmr->llm = -(pmr->dhlm) + offset; + } + else + { + // set dial and raw limits + SEND_MSG(); + if (dir_positive) { + pmr->dllm = tmp_limit; + pmr->rllm = tmp_raw; + } + else + { + pmr->dhlm = tmp_limit; + pmr->rhlm = tmp_raw; + } + + } + MARK(M_LLM); +} + + /* FUNCTION... void set_dial_highlimit(motorRecord *) USAGE... Set dial-coordinate high limit. @@ -3974,6 +4079,9 @@ static void set_dial_highlimit(motorRecord *pmr, struct motor_dset *pdset) RTN_STATUS rtnval; tmp_raw = pmr->dhlm / pmr->mres; + // set the raw high limit + pmr->rhlm = tmp_raw; + INIT_MSG(); if (pmr->mres < 0) { command = SET_LOW_LIMIT; @@ -4014,6 +4122,9 @@ static void set_dial_lowlimit(motorRecord *pmr, struct motor_dset *pdset) RTN_STATUS rtnval; tmp_raw = pmr->dllm / pmr->mres; + // set the raw low limit + pmr->rllm = tmp_raw; + INIT_MSG(); if (pmr->mres < 0) { diff --git a/motorApp/MotorSrc/motorRecord.dbd b/motorApp/MotorSrc/motorRecord.dbd index 05fd99b6a..e524f36e8 100644 --- a/motorApp/MotorSrc/motorRecord.dbd +++ b/motorApp/MotorSrc/motorRecord.dbd @@ -309,6 +309,18 @@ recordtype(motor) { interest(1) size(16) } + field(RHLM,DBF_DOUBLE) { + prompt("Raw High Limit") + promptgroup(GUI_COMMON) + special(SPC_NOMOD) + interest(1) + } + field(RLLM,DBF_DOUBLE) { + prompt("Raw Low Limit") + promptgroup(GUI_COMMON) + special(SPC_NOMOD) + interest(1) + } field(HLM,DBF_DOUBLE) { prompt("User High Limit") special(SPC_MOD) From 141d8aa430a0099b988a31cc602e9e5596f1f6d4 Mon Sep 17 00:00:00 2001 From: Jack Harper Date: Mon, 21 Nov 2022 13:10:40 +0000 Subject: [PATCH 02/29] add to changelog --- motorApp/MotorSrc/motorRecord.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/motorApp/MotorSrc/motorRecord.cc b/motorApp/MotorSrc/motorRecord.cc index e7b264203..776589931 100644 --- a/motorApp/MotorSrc/motorRecord.cc +++ b/motorApp/MotorSrc/motorRecord.cc @@ -190,6 +190,7 @@ USAGE... Motor Record Support. * .76 04-04-18 rls - If URIP is Yes and RDBL is inaccessible (e.g., CA server is down), do not start * a new target position move (sans Home search or Jog). * .78 08-21-18 kmp - Reverted .69 stop on RA_PROBLEM true. + * .79 21-11-22 jrh - Added raw limits, sync limits on motor resolution change */ #define VERSION 7.2 From 566f47073682973f185ee76ee7ddfbeab74bb442 Mon Sep 17 00:00:00 2001 From: Kevin Peterson Date: Wed, 30 Nov 2022 12:57:45 -0600 Subject: [PATCH 03/29] Set the BASE env var using the base value in the matrix, since it isn't set in the module.set file --- .github/workflows/ci-scripts-build-full.yml | 1 + .github/workflows/ci-scripts-build.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/ci-scripts-build-full.yml b/.github/workflows/ci-scripts-build-full.yml index 707a4d5d0..a0fae5092 100644 --- a/.github/workflows/ci-scripts-build-full.yml +++ b/.github/workflows/ci-scripts-build-full.yml @@ -26,6 +26,7 @@ jobs: env: CMP: ${{ matrix.cmp }} BCFG: ${{ matrix.configuration }} + BASE: ${{ matrix.base }} WINE: ${{ matrix.wine }} RTEMS: ${{ matrix.rtems }} RTEMS_TARGET: ${{ matrix.rtems_target }} diff --git a/.github/workflows/ci-scripts-build.yml b/.github/workflows/ci-scripts-build.yml index ee404d856..d62527506 100644 --- a/.github/workflows/ci-scripts-build.yml +++ b/.github/workflows/ci-scripts-build.yml @@ -34,6 +34,7 @@ jobs: env: CMP: ${{ matrix.cmp }} BCFG: ${{ matrix.configuration }} + BASE: ${{ matrix.base }} WINE: ${{ matrix.wine }} RTEMS: ${{ matrix.rtems }} RTEMS_TARGET: ${{ matrix.rtems_target }} From f75ace40794afbb6bb977a283f8c2f8196527524 Mon Sep 17 00:00:00 2001 From: Kevin Peterson Date: Thu, 6 Apr 2023 11:30:15 -0500 Subject: [PATCH 04/29] Added model2-specific motor databases to work around unknown command errors. --- motorApp/Db/asyn_motor_model2.db | 92 +++++++++++++++++++ motorApp/Db/asyn_motor_model2_positions.req | 2 + motorApp/Db/asyn_motor_model2_settings.req | 4 + motorApp/Db/basic_asyn_motor_model2.db | 20 ++++ .../Db/basic_asyn_motor_model2_settings.req | 3 + 5 files changed, 121 insertions(+) create mode 100644 motorApp/Db/asyn_motor_model2.db create mode 100644 motorApp/Db/asyn_motor_model2_positions.req create mode 100644 motorApp/Db/asyn_motor_model2_settings.req create mode 100644 motorApp/Db/basic_asyn_motor_model2.db create mode 100644 motorApp/Db/basic_asyn_motor_model2_settings.req diff --git a/motorApp/Db/asyn_motor_model2.db b/motorApp/Db/asyn_motor_model2.db new file mode 100644 index 000000000..7cd664f44 --- /dev/null +++ b/motorApp/Db/asyn_motor_model2.db @@ -0,0 +1,92 @@ +#! Generated by VisualDCT v2.6 +#! DBDSTART +#! DBDEND + + +record(motor, "$(P)$(M)") { + field(DESC, "$(DESC)") + field(DTYP, "$(DTYP)") + field(DIR, "$(DIR)") + field(VELO, "$(VELO)") + field(VBAS, "$(VBAS)") + field(ACCL, "$(ACCL)") + field(BDST, "$(BDST)") + field(BVEL, "$(BVEL)") + field(BACC, "$(BACC)") + field(OUT, "@asyn($(PORT),$(ADDR))") + field(MRES, "$(MRES)") + field(PREC, "$(PREC)") + field(EGU, "$(EGU)") + field(DHLM, "$(DHLM)") + field(DLLM, "$(DLLM)") + field(INIT, "$(INIT)") + field(RTRY, "$(RTRY=10)") + field(RSTM, "$(RSTM=NearZero)") + field(TWV, "1") + field(SDIS, "$(P)$(M)_able.VAL") +} + +record(bo, "$(P)$(M)_able") { + field(DESC, "motor enable") + field(PINI, "YES") + field(OUT, "$(P)$(M).DISP") + field(ZNAM, "Enable") + field(ONAM, "Disable") +} + +record(calcout, "$(P)$(M)_vCh") { + field(DESC, "change velocity") + field(CALC, "min(max(a*b,c),d)") + field(INPB, "$(P)$(M).S") + field(INPC, "$(P)$(M).SBAS") + field(INPD, "$(P)$(M).SMAX") + field(OUT, "$(P)$(M).S") +} + +record(calcout, "$(P)$(M)_twCh") { + field(DESC, "change TWV") + field(CALC, "min(max(a*b,c),d-e)") + field(INPB, "$(P)$(M).TWV") + field(INPC, "$(P)$(M).MRES") + field(INPD, "$(P)$(M).HLM") + field(INPE, "$(P)$(M).LLM") + field(OUT, "$(P)$(M).TWV") +} + +#! Further lines contain data used by VisualDCT +#! View(405,484,0.9) +#! Record("$(P)$(M)",840,675,0,0,"$(P)$(M)") +#! Field("$(P)$(M).DISP",16777215,1,"$(P)$(M).DISP") +#! Field("$(P)$(M).S",16777215,0,"$(P)$(M).S") +#! Field("$(P)$(M).SBAS",16777215,0,"$(P)$(M).SBAS") +#! Field("$(P)$(M).SMAX",16777215,0,"$(P)$(M).SMAX") +#! Field("$(P)$(M).TWV",16777215,0,"$(P)$(M).TWV") +#! Field("$(P)$(M).MRES",16777215,0,"$(P)$(M).MRES") +#! Field("$(P)$(M).HLM",16777215,0,"$(P)$(M).HLM") +#! Field("$(P)$(M).LLM",16777215,0,"$(P)$(M).LLM") +#! Field("$(P)$(M).SDIS",16777215,1,"$(P)$(M).SDIS") +#! Link("$(P)$(M).SDIS","$(P)$(M)_able.VAL") +#! Record("$(P)$(M)_able",1120,874,0,0,"$(P)$(M)_able") +#! Field("$(P)$(M)_able.OUT",16777215,0,"$(P)$(M)_able.OUT") +#! Link("$(P)$(M)_able.OUT","$(P)$(M).DISP") +#! Field("$(P)$(M)_able.VAL",16777215,0,"$(P)$(M)_able.VAL") +#! Record("$(P)$(M)_vCh",440,699,0,0,"$(P)$(M)_vCh") +#! Field("$(P)$(M)_vCh.OUT",16777215,1,"$(P)$(M)_vCh.OUT") +#! Link("$(P)$(M)_vCh.OUT","$(P)$(M).S") +#! Field("$(P)$(M)_vCh.INPB",16777215,1,"$(P)$(M)_vCh.INPB") +#! Link("$(P)$(M)_vCh.INPB","$(P)$(M).S") +#! Field("$(P)$(M)_vCh.INPC",16777215,1,"$(P)$(M)_vCh.INPC") +#! Link("$(P)$(M)_vCh.INPC","$(P)$(M).SBAS") +#! Field("$(P)$(M)_vCh.INPD",16777215,1,"$(P)$(M)_vCh.INPD") +#! Link("$(P)$(M)_vCh.INPD","$(P)$(M).SMAX") +#! Record("$(P)$(M)_twCh",440,925,0,0,"$(P)$(M)_twCh") +#! Field("$(P)$(M)_twCh.OUT",16777215,1,"$(P)$(M)_twCh.OUT") +#! Link("$(P)$(M)_twCh.OUT","$(P)$(M).TWV") +#! Field("$(P)$(M)_twCh.INPB",16777215,1,"$(P)$(M)_twCh.INPB") +#! Link("$(P)$(M)_twCh.INPB","$(P)$(M).TWV") +#! Field("$(P)$(M)_twCh.INPC",16777215,1,"$(P)$(M)_twCh.INPC") +#! Link("$(P)$(M)_twCh.INPC","$(P)$(M).MRES") +#! Field("$(P)$(M)_twCh.INPD",16777215,1,"$(P)$(M)_twCh.INPD") +#! Link("$(P)$(M)_twCh.INPD","$(P)$(M).HLM") +#! Field("$(P)$(M)_twCh.INPE",16777215,1,"$(P)$(M)_twCh.INPE") +#! Link("$(P)$(M)_twCh.INPE","$(P)$(M).LLM") diff --git a/motorApp/Db/asyn_motor_model2_positions.req b/motorApp/Db/asyn_motor_model2_positions.req new file mode 100644 index 000000000..2d8666bb3 --- /dev/null +++ b/motorApp/Db/asyn_motor_model2_positions.req @@ -0,0 +1,2 @@ +# FILE... motor_positions.req +$(P)$(M).DVAL diff --git a/motorApp/Db/asyn_motor_model2_settings.req b/motorApp/Db/asyn_motor_model2_settings.req new file mode 100644 index 000000000..c6ca18234 --- /dev/null +++ b/motorApp/Db/asyn_motor_model2_settings.req @@ -0,0 +1,4 @@ +# FILE... motor_settings.req + +file basic_motor_settings.req P=$(P),M=$(M) +$(P)$(M)_able.VAL diff --git a/motorApp/Db/basic_asyn_motor_model2.db b/motorApp/Db/basic_asyn_motor_model2.db new file mode 100644 index 000000000..84dba5ce2 --- /dev/null +++ b/motorApp/Db/basic_asyn_motor_model2.db @@ -0,0 +1,20 @@ +record(motor,"$(P)$(M)") +{ + field(DESC,"$(DESC)") + field(DTYP,"$(DTYP)") + field(DIR,"$(DIR)") + field(VELO,"$(VELO)") + field(VBAS,"$(VBAS)") + field(ACCL,"$(ACCL)") + field(BDST,"$(BDST)") + field(BVEL,"$(BVEL)") + field(BACC,"$(BACC)") + field(OUT,"@asyn($(PORT),$(ADDR))") + field(MRES,"$(MRES)") + field(PREC,"$(PREC)") + field(EGU,"$(EGU)") + field(DHLM,"$(DHLM)") + field(DLLM,"$(DLLM)") + field(INIT,"$(INIT)") + field(TWV,"1") +} diff --git a/motorApp/Db/basic_asyn_motor_model2_settings.req b/motorApp/Db/basic_asyn_motor_model2_settings.req new file mode 100644 index 000000000..22e196a87 --- /dev/null +++ b/motorApp/Db/basic_asyn_motor_model2_settings.req @@ -0,0 +1,3 @@ +# FILE... motor_settings.req + +file basic_motor_settings.req P=$(P),M=$(M) From 0e016898923d45580a43374bb40b512b27b83095 Mon Sep 17 00:00:00 2001 From: Kevin Peterson Date: Thu, 11 May 2023 16:16:56 -0500 Subject: [PATCH 05/29] Updated all the driver submodules to the latest release --- docs/RELEASE.md | 54 ++++++++++++++++++++++++++++++++++++++++ modules/motorAMCI | 2 +- modules/motorAcs | 2 +- modules/motorAcsMotion | 2 +- modules/motorAcsTech80 | 2 +- modules/motorAerotech | 2 +- modules/motorAttocube | 2 +- modules/motorDeltaTau | 2 +- modules/motorFaulhaber | 2 +- modules/motorHytec | 2 +- modules/motorIms | 2 +- modules/motorKohzu | 2 +- modules/motorMXmotor | 2 +- modules/motorMclennan | 2 +- modules/motorMicos | 2 +- modules/motorMicroMo | 2 +- modules/motorMicronix | 2 +- modules/motorMotorSim | 2 +- modules/motorNPoint | 2 +- modules/motorNewFocus | 2 +- modules/motorNewport | 2 +- modules/motorOms | 2 +- modules/motorOmsAsyn | 2 +- modules/motorOriel | 2 +- modules/motorPI | 2 +- modules/motorPIGCS2 | 2 +- modules/motorParker | 2 +- modules/motorPhytron | 2 +- modules/motorPiJena | 2 +- modules/motorScriptMotor | 2 +- modules/motorSmarAct | 2 +- modules/motorSmartMotor | 2 +- modules/motorThorLabs | 2 +- 33 files changed, 86 insertions(+), 32 deletions(-) diff --git a/docs/RELEASE.md b/docs/RELEASE.md index 97f6a7ff6..7ea7c9aa7 100644 --- a/docs/RELEASE.md +++ b/docs/RELEASE.md @@ -1,5 +1,59 @@ # Motor Releases +## __R7-3 (2023-05-XX)__ +R7-3 is a release based on the master branch. + +### Changes since R7-2-2 + +#### New features +* Added motorAcsMotion as a submodule +* TBD + +#### Modifications to existing features +* TBD + +#### Bug fixes +* TBD + +#### Driver submodules (and noteworthy changes) + +All driver modules now use Github Actions for CI builds. + +| Module | Release | Changes | +| ---------------- | ------- | ------- | +| **motorAcs** | [R1-1-1](https://github.com/epics-motor/motorAcs/releases/tag/R1-1-1) | | +| **motorAcsMotion** | [R2-1](https://github.com/epics-motor/motorAcsMotion/releases/tag/R2-1) | Added as a motor submodule | +| **motorAcsTech80** | [R1-0-2](https://github.com/epics-motor/motorAcsTech80/releases/tag/R1-0-2) | | +| **motorAerotech** | [R1-1-1](https://github.com/epics-motor/motorAerotech/releases/tag/R1-1-1) | Ensemble driver and doCommand.ab bug fixes | +| **motorAMCI** | [R1-0-2](https://github.com/epics-motor/motorAMCI/releases/tag/R1-0-2) | Replaced printf calls with asynPrint calls in ANG1Driver.cpp | +| **motorAttocube** | [R1-0-2](https://github.com/epics-motor/motorAttocube/releases/tag/R1-0-2) | | +| **motorDeltaTau** | [R1-0-2](https://github.com/epics-motor/motorDeltaTau/releases/tag/R1-0-2) | | +| **motorFaulhaber** | [R1-0-2](https://github.com/epics-motor/motorFaulhaber/releases/tag/R1-0-2) | | +| **motorHytec** | [R1-0-3](https://github.com/epics-motor/motorHytec/releases/tag/R1-0-3) | | +| **motorIms** | [R1-0-2](https://github.com/epics-motor/motorIms/releases/tag/R1-0-2) | | +| **motorKohzu** | [R1-0-2](https://github.com/epics-motor/motorKohzu/releases/tag/R1-0-2) | | +| **motorMclennan** | [R1-1-1](https://github.com/epics-motor/motorMclennan/releases/tag/R1-1-1) | | +| **motorMicos** | [R2-1](https://github.com/epics-motor/motorMicos/releases/tag/R2-1) | Added support for the SMC Taurus | +| **motorMicroMo** | [R1-0-2](https://github.com/epics-motor/motorMicroMo/releases/tag/R1-0-2) | | +| **motorMicronix** | [R1-1](https://github.com/epics-motor/motorMicronix/releases/tag/R1-1) | | +| **motorMotorSim** | [R1-2](https://github.com/epics-motor/motorMotorSim/releases/tag/R1-2) | Added motorSim8x.iocsh. Multiple improvements to example IOC. | +| **motorMXmotor** | [R1-0-2](https://github.com/epics-motor/motorMXmotor/releases/tag/R1-0-2) | | +| **motorNewFocus** | [R1-2](https://github.com/epics-motor/motorNewFocus/releases/tag/R1-2) | Improved example newfocus8742 configuration | +| **motorNewport** | [R1-2](https://github.com/epics-motor/motorNewport/releases/tag/R1-2) | Added support for the FCL200. ESP300 driver now supports UEIP=Yes. | +| **motorNPoint** | [R1-1](https://github.com/epics-motor/motorNPoint/releases/tag/R1-1) | | +| **motorOms** | [R1-2](https://github.com/epics-motor/motorOms/releases/tag/R1-2) | Enabled non-VxWorks IOCs & epicsMutexTryLock bug fix | +| **motorOmsAsyn** | [R1-0-3](https://github.com/epics-motor/motorOmsAsyn/releases/tag/R1-0-3) | Type fixes | +| **motorOriel** | [R1-0-2](https://github.com/epics-motor/motorOriel/releases/tag/R1-0-2) | | +| **motorParker** | [R1-1-1](https://github.com/epics-motor/motorParker/releases/tag/R1-1-1) | | +| **motorPhytron** | [R1-2](https://github.com/epics-motor/motorPhytron/releases/tag/R1-2) | Added encoder options. Bug fixes for deceleration and homing to limts. | +| **motorPI** | [R1-1](https://github.com/epics-motor/motorPI/releases/tag/R1-1) | Added E-816 example configuration | +| **motorPIGCS2** | [R1-2](https://github.com/epics-motor/motorPIGCS2/releases/tag/R1-2) | Added support for E-518 & E-873.3QTU controllers. Added closed loop commands for the E-727. Bug fixes. | +| **motorPiJena** | [R1-0-2](https://github.com/epics-motor/motorPiJena/releases/tag/R1-0-2) | | +| **motorScriptMotor** | [R1-2](https://github.com/epics-motor/motorScriptMotor/releases/tag/R1-2) | Added Attocube AMC support | +| **motorSmarAct** | [R2-0](https://github.com/epics-motor/motorSmarAct/releases/tag/R2-0) | Too many new features to list here; see [motorSmarAct release notes](https://github.com/epics-motor/motorSmarAct/releases/tag/R2-0) | +| **motorSmartMotor** | [R1-0-2](https://github.com/epics-motor/motorSmartMotor/releases/tag/R1-0-2) | | +| **motorThorLabs** | [R1-0-2](https://github.com/epics-motor/motorThorLabs/releases/tag/R1-0-2) | Added support for Kinesis KDC101 and KST101 | + ## __R7-2-2 (2021-02-02)__ R7-2-2 is a release based on the R7-2-1-bugfix branch. diff --git a/modules/motorAMCI b/modules/motorAMCI index 4c88334bd..89405a90f 160000 --- a/modules/motorAMCI +++ b/modules/motorAMCI @@ -1 +1 @@ -Subproject commit 4c88334bd8dcd82034ccd126fbc11e9007cd4802 +Subproject commit 89405a90f9f7ae45e962ba604ac14a714a9b3082 diff --git a/modules/motorAcs b/modules/motorAcs index 8c1fd9366..324ff14fd 160000 --- a/modules/motorAcs +++ b/modules/motorAcs @@ -1 +1 @@ -Subproject commit 8c1fd9366435b7b9a34d0d5d84a5ad981b241846 +Subproject commit 324ff14fdfa2e6f59c5eff988da9d02c9dfc1b12 diff --git a/modules/motorAcsMotion b/modules/motorAcsMotion index ff75e0c4c..91e8e1eb8 160000 --- a/modules/motorAcsMotion +++ b/modules/motorAcsMotion @@ -1 +1 @@ -Subproject commit ff75e0c4cee6b1286a4011b3d8beaf6d83425aa1 +Subproject commit 91e8e1eb8d7e468f5628482a9e18e891c5960d9f diff --git a/modules/motorAcsTech80 b/modules/motorAcsTech80 index d7706b0f8..e1882d791 160000 --- a/modules/motorAcsTech80 +++ b/modules/motorAcsTech80 @@ -1 +1 @@ -Subproject commit d7706b0f8189f5d253a4e6a610c34c33115be6f6 +Subproject commit e1882d791743afde3861e72c3297849cd012e1a7 diff --git a/modules/motorAerotech b/modules/motorAerotech index 3fa94b742..8d1bc26a8 160000 --- a/modules/motorAerotech +++ b/modules/motorAerotech @@ -1 +1 @@ -Subproject commit 3fa94b7429cdf3df88ee0cb02c4c7f46a070ce26 +Subproject commit 8d1bc26a8f6401d298f88853f2b63a2dd3884cbd diff --git a/modules/motorAttocube b/modules/motorAttocube index cc28182ec..82f70fd32 160000 --- a/modules/motorAttocube +++ b/modules/motorAttocube @@ -1 +1 @@ -Subproject commit cc28182ecdb7d4325f5102be1e4bd4375422e492 +Subproject commit 82f70fd32af2c577af40ba83dcbde197d5a7f766 diff --git a/modules/motorDeltaTau b/modules/motorDeltaTau index b889129d8..43ab39432 160000 --- a/modules/motorDeltaTau +++ b/modules/motorDeltaTau @@ -1 +1 @@ -Subproject commit b889129d8b24b7d8e0d74b726850c174d9d4f051 +Subproject commit 43ab394320ac82dbb3a00dd5f652b26de23018c4 diff --git a/modules/motorFaulhaber b/modules/motorFaulhaber index 86dbaa795..20634dc0d 160000 --- a/modules/motorFaulhaber +++ b/modules/motorFaulhaber @@ -1 +1 @@ -Subproject commit 86dbaa795d651db2bd93f04015b3fa816c812676 +Subproject commit 20634dc0da372534604ad3bbe1d3091fcfebec60 diff --git a/modules/motorHytec b/modules/motorHytec index 44335747a..256547357 160000 --- a/modules/motorHytec +++ b/modules/motorHytec @@ -1 +1 @@ -Subproject commit 44335747a0230865f9d413cca67051e2ed9fd831 +Subproject commit 256547357fb21f53a5000247298b9ff59dea6bb6 diff --git a/modules/motorIms b/modules/motorIms index cebdb170b..50ccd0be6 160000 --- a/modules/motorIms +++ b/modules/motorIms @@ -1 +1 @@ -Subproject commit cebdb170b91dd4db48f5b4742b7a16528abcf573 +Subproject commit 50ccd0be61dd717f7b78a640ef991c7e5dc4b501 diff --git a/modules/motorKohzu b/modules/motorKohzu index f406c18bd..17cfb357b 160000 --- a/modules/motorKohzu +++ b/modules/motorKohzu @@ -1 +1 @@ -Subproject commit f406c18bde2f9ec36dd9fee9f7d6576c247b13df +Subproject commit 17cfb357bcddadec1fff23685a08b3a508234cd3 diff --git a/modules/motorMXmotor b/modules/motorMXmotor index d3efe48cf..c7439e9eb 160000 --- a/modules/motorMXmotor +++ b/modules/motorMXmotor @@ -1 +1 @@ -Subproject commit d3efe48cf07f9a3ca5914e629c824e1df6d82094 +Subproject commit c7439e9ebf49a6042ba8e206ee85ab6eaa426467 diff --git a/modules/motorMclennan b/modules/motorMclennan index 037502690..dab26dc0d 160000 --- a/modules/motorMclennan +++ b/modules/motorMclennan @@ -1 +1 @@ -Subproject commit 03750269099922d6ac1d12b5c89bece77f4009e2 +Subproject commit dab26dc0d0bf709ca4b9d8c8aed73fdbfd75e500 diff --git a/modules/motorMicos b/modules/motorMicos index d98d5c298..c46578b0e 160000 --- a/modules/motorMicos +++ b/modules/motorMicos @@ -1 +1 @@ -Subproject commit d98d5c2989f4f0c596c64b3daf3e5160bac344b8 +Subproject commit c46578b0e8a92154db992b1180bdf98c4a4bd338 diff --git a/modules/motorMicroMo b/modules/motorMicroMo index c0845b24a..82d81d7cb 160000 --- a/modules/motorMicroMo +++ b/modules/motorMicroMo @@ -1 +1 @@ -Subproject commit c0845b24aa3a603dc9692d79beaeb0e2ea0d532d +Subproject commit 82d81d7cbbca413cbca4caddb003ec37c5bc6c5d diff --git a/modules/motorMicronix b/modules/motorMicronix index e2fcf8a4a..e163dd64d 160000 --- a/modules/motorMicronix +++ b/modules/motorMicronix @@ -1 +1 @@ -Subproject commit e2fcf8a4a03a0fd0d9d1c88ef9b242a2aaf306c4 +Subproject commit e163dd64d2429b76f51de2943e85fe8ee1f73a91 diff --git a/modules/motorMotorSim b/modules/motorMotorSim index 6e2f64601..cdea87404 160000 --- a/modules/motorMotorSim +++ b/modules/motorMotorSim @@ -1 +1 @@ -Subproject commit 6e2f64601e5f27ba212fc8e8488ac655cc4bb483 +Subproject commit cdea87404306161a0f9edf5cd6efd2410612b6f7 diff --git a/modules/motorNPoint b/modules/motorNPoint index 37ab6f1ed..700855b5f 160000 --- a/modules/motorNPoint +++ b/modules/motorNPoint @@ -1 +1 @@ -Subproject commit 37ab6f1eddb358987d4c4e2b3479c0058d8c63c6 +Subproject commit 700855b5f6dea0b0212a0eb7b7271bdfe928ecdb diff --git a/modules/motorNewFocus b/modules/motorNewFocus index 176006e88..8d909a310 160000 --- a/modules/motorNewFocus +++ b/modules/motorNewFocus @@ -1 +1 @@ -Subproject commit 176006e881fcec8a4ea0b300d5ee908fcfd0d655 +Subproject commit 8d909a310ffb7389463637d76b849739b7b6ac81 diff --git a/modules/motorNewport b/modules/motorNewport index 070c93e1a..022c28f98 160000 --- a/modules/motorNewport +++ b/modules/motorNewport @@ -1 +1 @@ -Subproject commit 070c93e1aa1a4dea39829f7dcb21489cfde582a1 +Subproject commit 022c28f984bb6fcae4993f871a75aef8e296c803 diff --git a/modules/motorOms b/modules/motorOms index 5219f8cee..dca9b6649 160000 --- a/modules/motorOms +++ b/modules/motorOms @@ -1 +1 @@ -Subproject commit 5219f8ceee352ec2a459f1bde316621af9c293a4 +Subproject commit dca9b664904de6378854844882605179663a30e7 diff --git a/modules/motorOmsAsyn b/modules/motorOmsAsyn index 31b01ea48..fa94d1dfb 160000 --- a/modules/motorOmsAsyn +++ b/modules/motorOmsAsyn @@ -1 +1 @@ -Subproject commit 31b01ea483232904709ab1c55ad3d5ade8d2e14d +Subproject commit fa94d1dfb5051591783637e137ebb16166590f8e diff --git a/modules/motorOriel b/modules/motorOriel index 32bbe9932..a6887696d 160000 --- a/modules/motorOriel +++ b/modules/motorOriel @@ -1 +1 @@ -Subproject commit 32bbe993211535313aff4c1a3157f9089ed08273 +Subproject commit a6887696dda342b2e80c1cdef112a24548ffd7da diff --git a/modules/motorPI b/modules/motorPI index c58c5a4e3..7673afcec 160000 --- a/modules/motorPI +++ b/modules/motorPI @@ -1 +1 @@ -Subproject commit c58c5a4e3db676dc0744b116a64de67530a087ad +Subproject commit 7673afceccd55e7ef0336a4a801a41b2bb1d426c diff --git a/modules/motorPIGCS2 b/modules/motorPIGCS2 index b52f98361..0a452b905 160000 --- a/modules/motorPIGCS2 +++ b/modules/motorPIGCS2 @@ -1 +1 @@ -Subproject commit b52f98361b055d9505c84cee0099ab08b1de0367 +Subproject commit 0a452b905d2754dd774701013de3046e4c1f2f16 diff --git a/modules/motorParker b/modules/motorParker index 0d78e498a..018dfe994 160000 --- a/modules/motorParker +++ b/modules/motorParker @@ -1 +1 @@ -Subproject commit 0d78e498aa9c6e5ce393acac45429f34496523d1 +Subproject commit 018dfe994cb9de12934719d53cd58912c6b1736e diff --git a/modules/motorPhytron b/modules/motorPhytron index 55509f404..02d5ce00c 160000 --- a/modules/motorPhytron +++ b/modules/motorPhytron @@ -1 +1 @@ -Subproject commit 55509f404e8746684d3ac1ba4fe26c98adeab7b6 +Subproject commit 02d5ce00c37e1c545ed77a6f03cdb20ade487596 diff --git a/modules/motorPiJena b/modules/motorPiJena index 535e9ac15..09fc0f60b 160000 --- a/modules/motorPiJena +++ b/modules/motorPiJena @@ -1 +1 @@ -Subproject commit 535e9ac1590d9b294d05518ae9a0acc824fcafad +Subproject commit 09fc0f60bb0a8524c6dfac5b1958c17297dab13c diff --git a/modules/motorScriptMotor b/modules/motorScriptMotor index 374a23bae..0c63c3f24 160000 --- a/modules/motorScriptMotor +++ b/modules/motorScriptMotor @@ -1 +1 @@ -Subproject commit 374a23bae3d0cfe4aa9f268ae5703e43f3d129da +Subproject commit 0c63c3f24e1f5572549e4c00ccc4fa20e84cd573 diff --git a/modules/motorSmarAct b/modules/motorSmarAct index 2678479e5..902faf406 160000 --- a/modules/motorSmarAct +++ b/modules/motorSmarAct @@ -1 +1 @@ -Subproject commit 2678479e5d1ab6c341f6b30292f9ecec6cfc072d +Subproject commit 902faf40699a4cd74affee780dd3482065d38680 diff --git a/modules/motorSmartMotor b/modules/motorSmartMotor index 79ea9a729..fe263b77c 160000 --- a/modules/motorSmartMotor +++ b/modules/motorSmartMotor @@ -1 +1 @@ -Subproject commit 79ea9a72980c04f43b43c56ed9a84cdaea7c7e8b +Subproject commit fe263b77c1d1b078dd55bcb5942a44bd7de0b18f diff --git a/modules/motorThorLabs b/modules/motorThorLabs index bffd7c94f..0ffb08ab4 160000 --- a/modules/motorThorLabs +++ b/modules/motorThorLabs @@ -1 +1 @@ -Subproject commit bffd7c94f6f2dc37485a90e40085f181af2bfeb2 +Subproject commit 0ffb08ab41e86b235ef957a95ffd75f7065c90ac From 99d0c414157a9dcfcfc90cc196d8155df477ce12 Mon Sep 17 00:00:00 2001 From: Kevin Peterson Date: Fri, 12 May 2023 14:15:40 -0500 Subject: [PATCH 06/29] Fix for CA clients not seeing updates to RHLM and RLLM --- motorApp/MotorSrc/motorRecord.cc | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/motorApp/MotorSrc/motorRecord.cc b/motorApp/MotorSrc/motorRecord.cc index 776589931..e4a106b8a 100644 --- a/motorApp/MotorSrc/motorRecord.cc +++ b/motorApp/MotorSrc/motorRecord.cc @@ -3527,6 +3527,10 @@ static void monitor(motorRecord * pmr) db_post_events(pmr, &pmr->homf, local_mask); if ((local_mask = monitor_mask | (MARKED_AUX(M_HOMR) ? DBE_VAL_LOG : 0))) db_post_events(pmr, &pmr->homr, local_mask); + if ((local_mask = monitor_mask | (MARKED_AUX(M_RHLM) ? DBE_VAL_LOG : 0))) + db_post_events(pmr, &pmr->rhlm, local_mask); + if ((local_mask = monitor_mask | (MARKED_AUX(M_RLLM) ? DBE_VAL_LOG : 0))) + db_post_events(pmr, &pmr->rllm, local_mask); UNMARK_ALL; } @@ -3982,11 +3986,13 @@ static void set_user_highlimit(motorRecord* pmr, struct motor_dset* pdset) { pmr->dhlm = tmp_limit; pmr->rhlm = tmp_raw; + MARK_AUX(M_RHLM); } else { pmr->dllm = tmp_limit; - pmr->rllm = tmp_limit; + pmr->rllm = tmp_raw; + MARK_AUX(M_RLLM); } } MARK(M_HLM); @@ -4052,11 +4058,13 @@ static void set_user_lowlimit(motorRecord* pmr, struct motor_dset* pdset) if (dir_positive) { pmr->dllm = tmp_limit; pmr->rllm = tmp_raw; + MARK_AUX(M_RLLM); } else { pmr->dhlm = tmp_limit; pmr->rhlm = tmp_raw; + MARK_AUX(M_RHLM); } } @@ -4082,6 +4090,7 @@ static void set_dial_highlimit(motorRecord *pmr, struct motor_dset *pdset) tmp_raw = pmr->dhlm / pmr->mres; // set the raw high limit pmr->rhlm = tmp_raw; + MARK_AUX(M_RHLM); INIT_MSG(); if (pmr->mres < 0) { @@ -4125,7 +4134,7 @@ static void set_dial_lowlimit(motorRecord *pmr, struct motor_dset *pdset) tmp_raw = pmr->dllm / pmr->mres; // set the raw low limit pmr->rllm = tmp_raw; - + MARK_AUX(M_RLLM); INIT_MSG(); if (pmr->mres < 0) { From f92ed6f4fc7c8364ec3d4349394b48977148fc58 Mon Sep 17 00:00:00 2001 From: Kevin Peterson Date: Mon, 15 May 2023 11:04:01 -0500 Subject: [PATCH 07/29] Added a missing }, probably caused by merging --- modules/Makefile | 4 ++++ motorApp/MotorSrc/motorRecord.dbd | 1 + 2 files changed, 5 insertions(+) diff --git a/modules/Makefile b/modules/Makefile index 5c3054acc..13b5cdc51 100644 --- a/modules/Makefile +++ b/modules/Makefile @@ -85,6 +85,10 @@ ifdef LUA $(ECHO) Creating $@, LUA = $(LUA) @echo LUA = $(LUA)>> $@ endif +ifdef AUTOSAVE + $(ECHO) Creating $@, AUTOSAVE = $(AUTOSAVE) + @echo AUTOSAVE = $(AUTOSAVE)>> $@ +endif ifdef MODBUS $(ECHO) Creating $@, MODBUS = $(MODBUS) @echo MODBUS = $(MODBUS)>> $@ diff --git a/motorApp/MotorSrc/motorRecord.dbd b/motorApp/MotorSrc/motorRecord.dbd index 4877b2cd1..ba8cdb38e 100644 --- a/motorApp/MotorSrc/motorRecord.dbd +++ b/motorApp/MotorSrc/motorRecord.dbd @@ -73,6 +73,7 @@ menu(motorRSTM) { choice(motorRSTM_Always, "Always") choice(motorRSTM_NearZero, "NearZero") choice(motorRSTM_Conditional, "Conditional") +} menu(motorACCSused) { choice(motorACCSused_Undef,"Undef") choice(motorACCSused_Accl, "Accl") From ddf1095b5f004c27cd89677b25e65d7090258363 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20B=C3=B6gershausen?= Date: Mon, 15 May 2023 22:53:25 +0200 Subject: [PATCH 08/29] motorRecord.cc: Correct usage of accEGUfromVelo() The function accEGUfromVelo() returns acceleration in EGU, but we need it expressed in steps. Thanks to Kevin Peterson for noticing. Correct this and divide by fabs(pmr->mres). And while there, correct a typo in a comment --- motorApp/MotorSrc/motorRecord.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/motorApp/MotorSrc/motorRecord.cc b/motorApp/MotorSrc/motorRecord.cc index feceda940..4fb5ee4f8 100644 --- a/motorApp/MotorSrc/motorRecord.cc +++ b/motorApp/MotorSrc/motorRecord.cc @@ -941,7 +941,7 @@ static long postProcess(motorRecord * pmr) if (pmr->mip & MIP_JOG_STOP) { - double acc = accEGUfromVelo(pmr, pmr->velo); + double acc = accEGUfromVelo(pmr, pmr->velo) / fabs(pmr->mres); if (vel <= vbase) vel = vbase + 1; @@ -2272,7 +2272,7 @@ static RTN_STATUS do_work(motorRecord * pmr, CALLBACK_VALUE proc_ind) double newpos = pmr->dval / pmr->mres; /* where to go */ double vbase = pmr->vbas / fabs(pmr->mres); /* base speed */ double vel = pmr->velo / fabs(pmr->mres); /* normal speed */ - double acc = accEGUfromVelo(pmr, pmr->velo); + double acc = accEGUfromVelo(pmr, pmr->velo) / fabs(pmr->mres); /* * 'bpos' is one backlash distance away from 'newpos'. */ @@ -3989,7 +3989,7 @@ static void check_speed_and_resolution(motorRecord * pmr) /* ACCL == 0.0, ACCS is != 0.0 -> Use ACCS This is a (possible) new way to configure a database. Existing Db files will have ACCS == 0.0 and this - is backwards compatibleamd behaves as before */ + is backwards compatible and behaves as before */ updateACCLfromACCS(pmr); } /* Sanity check on acceleration time. */ From 5650c666d4e0f605dcd981e3a981fe42c0711dae Mon Sep 17 00:00:00 2001 From: Kevin Peterson Date: Mon, 15 May 2023 16:04:01 -0500 Subject: [PATCH 09/29] Updated motorNewFocus, motorNewport, and motorPI for fixes for 'make uninstall' removing iocsh files --- docs/RELEASE.md | 6 +++--- modules/motorNewFocus | 2 +- modules/motorNewport | 2 +- modules/motorPI | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/RELEASE.md b/docs/RELEASE.md index 7ea7c9aa7..f4773a4ab 100644 --- a/docs/RELEASE.md +++ b/docs/RELEASE.md @@ -38,15 +38,15 @@ All driver modules now use Github Actions for CI builds. | **motorMicronix** | [R1-1](https://github.com/epics-motor/motorMicronix/releases/tag/R1-1) | | | **motorMotorSim** | [R1-2](https://github.com/epics-motor/motorMotorSim/releases/tag/R1-2) | Added motorSim8x.iocsh. Multiple improvements to example IOC. | | **motorMXmotor** | [R1-0-2](https://github.com/epics-motor/motorMXmotor/releases/tag/R1-0-2) | | -| **motorNewFocus** | [R1-2](https://github.com/epics-motor/motorNewFocus/releases/tag/R1-2) | Improved example newfocus8742 configuration | -| **motorNewport** | [R1-2](https://github.com/epics-motor/motorNewport/releases/tag/R1-2) | Added support for the FCL200. ESP300 driver now supports UEIP=Yes. | +| **motorNewFocus** | [R1-2-1](https://github.com/epics-motor/motorNewFocus/releases/tag/R1-2-1) | Improved example newfocus8742 configuration. iocsh files now installed. | +| **motorNewport** | [R1-2-1](https://github.com/epics-motor/motorNewport/releases/tag/R1-2-1) | Added support for the FCL200. ESP300 driver now supports UEIP=Yes. iocsh files now installed. | | **motorNPoint** | [R1-1](https://github.com/epics-motor/motorNPoint/releases/tag/R1-1) | | | **motorOms** | [R1-2](https://github.com/epics-motor/motorOms/releases/tag/R1-2) | Enabled non-VxWorks IOCs & epicsMutexTryLock bug fix | | **motorOmsAsyn** | [R1-0-3](https://github.com/epics-motor/motorOmsAsyn/releases/tag/R1-0-3) | Type fixes | | **motorOriel** | [R1-0-2](https://github.com/epics-motor/motorOriel/releases/tag/R1-0-2) | | | **motorParker** | [R1-1-1](https://github.com/epics-motor/motorParker/releases/tag/R1-1-1) | | | **motorPhytron** | [R1-2](https://github.com/epics-motor/motorPhytron/releases/tag/R1-2) | Added encoder options. Bug fixes for deceleration and homing to limts. | -| **motorPI** | [R1-1](https://github.com/epics-motor/motorPI/releases/tag/R1-1) | Added E-816 example configuration | +| **motorPI** | [R1-1-1](https://github.com/epics-motor/motorPI/releases/tag/R1-1-1) | Added E-816 example configuration. iocsh files now installed. | | **motorPIGCS2** | [R1-2](https://github.com/epics-motor/motorPIGCS2/releases/tag/R1-2) | Added support for E-518 & E-873.3QTU controllers. Added closed loop commands for the E-727. Bug fixes. | | **motorPiJena** | [R1-0-2](https://github.com/epics-motor/motorPiJena/releases/tag/R1-0-2) | | | **motorScriptMotor** | [R1-2](https://github.com/epics-motor/motorScriptMotor/releases/tag/R1-2) | Added Attocube AMC support | diff --git a/modules/motorNewFocus b/modules/motorNewFocus index 8d909a310..e146427ec 160000 --- a/modules/motorNewFocus +++ b/modules/motorNewFocus @@ -1 +1 @@ -Subproject commit 8d909a310ffb7389463637d76b849739b7b6ac81 +Subproject commit e146427ec9d50de4970211925b743b57094d193b diff --git a/modules/motorNewport b/modules/motorNewport index 022c28f98..d84cfe2bf 160000 --- a/modules/motorNewport +++ b/modules/motorNewport @@ -1 +1 @@ -Subproject commit 022c28f984bb6fcae4993f871a75aef8e296c803 +Subproject commit d84cfe2bf5247475cebd8ce609c219e854c72742 diff --git a/modules/motorPI b/modules/motorPI index 7673afcec..15658711e 160000 --- a/modules/motorPI +++ b/modules/motorPI @@ -1 +1 @@ -Subproject commit 7673afceccd55e7ef0336a4a801a41b2bb1d426c +Subproject commit 15658711e9e4d8c11f42366435c5a7f5508c62f8 From b77c331f7815ebc5c2dfffec2d66bb1d7c0e53c0 Mon Sep 17 00:00:00 2001 From: Kevin Peterson Date: Thu, 18 May 2023 10:20:28 -0500 Subject: [PATCH 10/29] Added prop(YES) for floating-point fields in motorRecord.dbd that should update when the PREC changes. --- motorApp/MotorSrc/motorRecord.dbd | 50 +++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/motorApp/MotorSrc/motorRecord.dbd b/motorApp/MotorSrc/motorRecord.dbd index e524f36e8..4f31424f4 100644 --- a/motorApp/MotorSrc/motorRecord.dbd +++ b/motorApp/MotorSrc/motorRecord.dbd @@ -90,6 +90,7 @@ recordtype(motor) { prompt("User Offset (EGU)") special(SPC_MOD) pp(TRUE) + prop(YES) } field(FOFF,DBF_MENU) { asl(ASL0) @@ -142,36 +143,42 @@ recordtype(motor) { promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) + prop(YES) } field(VBAS,DBF_DOUBLE) { prompt("Base Velocity (EGU/s)") promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) + prop(YES) } field(VMAX,DBF_DOUBLE) { prompt("Max. Velocity (EGU/s)") promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) + prop(YES) } field(S,DBF_DOUBLE) { prompt("Speed (revolutions/sec)") promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) + prop(YES) } field(SBAS,DBF_DOUBLE) { prompt("Base Speed (RPS)") promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) + prop(YES) } field(SMAX,DBF_DOUBLE) { prompt("Max. Speed (RPS)") promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) + prop(YES) } field(ACCL,DBF_DOUBLE) { prompt("Seconds to Velocity") @@ -179,6 +186,7 @@ recordtype(motor) { special(SPC_MOD) interest(1) initial("0.2") + prop(YES) } field(BDST,DBF_DOUBLE) { prompt("BL Distance (EGU)") @@ -186,18 +194,21 @@ recordtype(motor) { promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) + prop(YES) } field(BVEL,DBF_DOUBLE) { prompt("BL Velocity (EGU/s)") promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) + prop(YES) } field(SBAK,DBF_DOUBLE) { prompt("BL Speed (RPS)") promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) + prop(YES) } field(BACC,DBF_DOUBLE) { prompt("BL Seconds to Velocity") @@ -205,6 +216,7 @@ recordtype(motor) { special(SPC_MOD) interest(1) initial("0.5") + prop(YES) } field(FRAC,DBF_FLOAT) { prompt("Move Fraction") @@ -212,6 +224,7 @@ recordtype(motor) { special(SPC_MOD) interest(1) initial("1") + prop(YES) } field(OUT,DBF_OUTLINK) { prompt("Output Specification") @@ -262,6 +275,7 @@ recordtype(motor) { special(SPC_MOD) pp(TRUE) interest(1) + prop(YES) } field(MRES,DBF_DOUBLE) { prompt("Motor Step Size (EGU)") @@ -269,6 +283,7 @@ recordtype(motor) { special(SPC_MOD) pp(TRUE) interest(1) + prop(YES) } field(ERES,DBF_DOUBLE) { prompt("Encoder Step Size (EGU)") @@ -276,11 +291,13 @@ recordtype(motor) { special(SPC_MOD) pp(TRUE) interest(1) + prop(YES) } field(RRES,DBF_DOUBLE) { prompt("Readback Step Size (EGU") promptgroup(GUI_COMMON) interest(1) + prop(YES) } field(UEIP,DBF_MENU) { prompt("Use Encoder If Present") @@ -325,33 +342,39 @@ recordtype(motor) { prompt("User High Limit") special(SPC_MOD) pp(TRUE) + prop(YES) } field(LLM,DBF_DOUBLE) { prompt("User Low Limit") special(SPC_MOD) pp(TRUE) + prop(YES) } field(DHLM,DBF_DOUBLE) { prompt("Dial High Limit") promptgroup(GUI_COMMON) special(SPC_MOD) pp(TRUE) + prop(YES) } field(DLLM,DBF_DOUBLE) { prompt("Dial Low Limit") promptgroup(GUI_COMMON) special(SPC_MOD) pp(TRUE) + prop(YES) } field(HOPR,DBF_DOUBLE) { prompt("High Operating Range") promptgroup(GUI_COMMON) interest(1) + prop(YES) } field(LOPR,DBF_DOUBLE) { prompt("Low Operating Range") promptgroup(GUI_COMMON) interest(1) + prop(YES) } field(HLS,DBF_SHORT) { prompt("User High Limit Switch") @@ -374,24 +397,28 @@ recordtype(motor) { promptgroup(GUI_COMMON) pp(TRUE) interest(2) + prop(YES) } field(LOLO,DBF_DOUBLE) { prompt("Lolo Alarm Limit (EGU)") promptgroup(GUI_COMMON) pp(TRUE) interest(2) + prop(YES) } field(HIGH,DBF_DOUBLE) { prompt("High Alarm Limit (EGU)") promptgroup(GUI_COMMON) pp(TRUE) interest(2) + prop(YES) } field(LOW,DBF_DOUBLE) { prompt("Low Alarm Limit (EGU)") promptgroup(GUI_COMMON) pp(TRUE) interest(2) + prop(YES) } field(HHSV,DBF_MENU) { prompt("Hihi Severity") @@ -433,12 +460,14 @@ recordtype(motor) { promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) + prop(YES) } field(SPDB,DBF_DOUBLE) { prompt("Setpoint Deadband (EGU)") promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) + prop(YES) } field(RCNT,DBF_SHORT) { prompt("Retry count") @@ -522,28 +551,33 @@ recordtype(motor) { prompt("Tweak Step Size (EGU)") promptgroup(GUI_COMMON) interest(1) + prop(YES) } field(VAL,DBF_DOUBLE) { asl(ASL0) prompt("User Desired Value (EGU") special(SPC_MOD) pp(TRUE) + prop(YES) } field(LVAL,DBF_DOUBLE) { prompt("Last User Des Val (EGU)") special(SPC_NOMOD) interest(1) + prop(YES) } field(DVAL,DBF_DOUBLE) { asl(ASL0) prompt("Dial Desired Value (EGU") special(SPC_MOD) pp(TRUE) + prop(YES) } field(LDVL,DBF_DOUBLE) { prompt("Last Dial Des Val (EGU)") special(SPC_NOMOD) interest(1) + prop(YES) } field(RVAL,DBF_LONG) { asl(ASL0) @@ -561,23 +595,28 @@ recordtype(motor) { prompt("Relative Value (EGU)") special(SPC_MOD) pp(TRUE) + prop(YES) } field(LRLV,DBF_DOUBLE) { prompt("Last Rel Value (EGU)") special(SPC_NOMOD) interest(1) + prop(YES) } field(RBV,DBF_DOUBLE) { prompt("User Readback Value") special(SPC_NOMOD) + prop(YES) } field(DRBV,DBF_DOUBLE) { prompt("Dial Readback Value") special(SPC_NOMOD) + prop(YES) } field(DIFF,DBF_DOUBLE) { prompt("Difference dval-drbv") special(SPC_NOMOD) + prop(YES) } field(RDIF,DBF_LONG) { prompt("Difference rval-rrbv") @@ -659,6 +698,7 @@ recordtype(motor) { promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) + prop(YES) } field(CBAK,DBF_NOACCESS) { prompt("Callback structure") @@ -673,6 +713,7 @@ recordtype(motor) { special(SPC_MOD) interest(1) initial("0") + prop(YES) } field(ICOF,DBF_DOUBLE) { promptgroup(GUI_COMMON) @@ -680,6 +721,7 @@ recordtype(motor) { special(SPC_MOD) interest(1) initial("0") + prop(YES) } field(DCOF,DBF_DOUBLE) { promptgroup(GUI_COMMON) @@ -687,6 +729,7 @@ recordtype(motor) { special(SPC_MOD) interest(1) initial("0") + prop(YES) } field(CNEN,DBF_MENU) { asl(ASL0) @@ -737,12 +780,14 @@ recordtype(motor) { promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) + prop(YES) } field(JAR,DBF_DOUBLE) { prompt("Jog Accel. (EGU/s^2)") promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) + prop(YES) } field(LOCK,DBF_MENU) { prompt("Soft Channel Position Lock") @@ -770,6 +815,7 @@ recordtype(motor) { promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) + prop(YES) } field(STUP,DBF_MENU) { asl(ASL0) @@ -792,21 +838,25 @@ recordtype(motor) { prompt("Archive Deadband") promptgroup(GUI_COMMON) interest(1) + prop(YES) } field(MDEL,DBF_DOUBLE) { prompt("Monitor Deadband") promptgroup(GUI_COMMON) interest(1) + prop(YES) } field(ALST,DBF_DOUBLE) { prompt("Last Value Archived") special(SPC_NOMOD) interest(3) + prop(YES) } field(MLST,DBF_DOUBLE) { prompt("Last Val Monitored") special(SPC_NOMOD) interest(3) + prop(YES) } field(SYNC,DBF_SHORT) { prompt("Sync position") From 0907dbbab02eb3018c572358d2e57e69dd601671 Mon Sep 17 00:00:00 2001 From: Kevin Peterson Date: Thu, 18 May 2023 10:39:20 -0500 Subject: [PATCH 11/29] Also add prop(YES) for the PREC field --- motorApp/MotorSrc/motorRecord.dbd | 1 + 1 file changed, 1 insertion(+) diff --git a/motorApp/MotorSrc/motorRecord.dbd b/motorApp/MotorSrc/motorRecord.dbd index 4f31424f4..0a2ea8c9f 100644 --- a/motorApp/MotorSrc/motorRecord.dbd +++ b/motorApp/MotorSrc/motorRecord.dbd @@ -319,6 +319,7 @@ recordtype(motor) { prompt("Display Precision") promptgroup(GUI_COMMON) interest(1) + prop(YES) } field(EGU,DBF_STRING) { prompt("Engineering Units") From 63bfe5d07772096d3d8a25c486494b5ac2468764 Mon Sep 17 00:00:00 2001 From: Kevin Peterson Date: Thu, 18 May 2023 15:32:42 -0500 Subject: [PATCH 12/29] Changed ACCU from a readback to a control. ACCU can be optionally specified when motor databases are loaded and is autosaved by default. --- docs/motorRecord.html | 30 ++++++++++++++++++++-- motorApp/Db/asyn_motor.db | 1 + motorApp/Db/asyn_motor_model2.db | 1 + motorApp/Db/basic_asyn_motor.db | 1 + motorApp/Db/basic_asyn_motor_model2.db | 1 + motorApp/Db/basic_motor.db | 1 + motorApp/Db/basic_motor_settings.req | 1 + motorApp/Db/motor.db | 1 + motorApp/MotorSrc/motorRecord.cc | 35 +++++++------------------- motorApp/MotorSrc/motorRecord.dbd | 14 +++++------ 10 files changed, 51 insertions(+), 35 deletions(-) diff --git a/docs/motorRecord.html b/docs/motorRecord.html index 0bd14e2b0..dd4d93678 100644 --- a/docs/motorRecord.html +++ b/docs/motorRecord.html @@ -272,6 +272,13 @@

Field Descriptions

In addition to fields common to all record types (se
+ + ACCU + R/W + Acceleration used + RECCHOICE + (0:"Use ACCL", 1:"Use ACCS") + ADEL R/W @@ -1718,11 +1725,30 @@

Field Descriptions

In addition to fields common to all record types (se motor motion. - The motor record expects the hardware to produce a trapezoidal + ACCS + R/W + Acceleration (EGU/s^2) + DOUBLE + Valid range; 0 <= ACCS + + + ACCU + R/W + Acceleration used + RECCHOICE + (0:"Use ACCL", 1:"Use ACCS")  This field determines whether the ACCL or ACCS field + is used in the calculation of the acceleration that is sent to device support. The field + that is not used changes with VELO. The default value is "Use ACCL"  + + + + The motor record expects the hardware to produce a trapezoidal speed profile. That is, the motor speed is expected to increase linearly with time from the base speed, VBAS, to the full speed, VELO, in ACCL seconds. At the end of a motion, the speed is expected to decrease similarly to VBAS. - Note that the ACCS field can be use to specify the acceleration in EGU/s^2.  +

Note that the ACCS field can be use to specify the acceleration in EGU/s^2.

+

Velocity and acceleration are related by the following equation:
+ VELO - VBAS = ACCL * ACCS  

JVEL diff --git a/motorApp/Db/asyn_motor.db b/motorApp/Db/asyn_motor.db index e70892281..fefe379f2 100644 --- a/motorApp/Db/asyn_motor.db +++ b/motorApp/Db/asyn_motor.db @@ -10,6 +10,7 @@ record(motor, "$(P)$(M)") { field(VELO, "$(VELO)") field(VBAS, "$(VBAS)") field(ACCL, "$(ACCL)") + field(ACCU, "$(ACCU=0)") field(BDST, "$(BDST)") field(BVEL, "$(BVEL)") field(BACC, "$(BACC)") diff --git a/motorApp/Db/asyn_motor_model2.db b/motorApp/Db/asyn_motor_model2.db index 7cd664f44..3fa391a54 100644 --- a/motorApp/Db/asyn_motor_model2.db +++ b/motorApp/Db/asyn_motor_model2.db @@ -10,6 +10,7 @@ record(motor, "$(P)$(M)") { field(VELO, "$(VELO)") field(VBAS, "$(VBAS)") field(ACCL, "$(ACCL)") + field(ACCU, "$(ACCU=0)") field(BDST, "$(BDST)") field(BVEL, "$(BVEL)") field(BACC, "$(BACC)") diff --git a/motorApp/Db/basic_asyn_motor.db b/motorApp/Db/basic_asyn_motor.db index a1859804f..b678741b0 100644 --- a/motorApp/Db/basic_asyn_motor.db +++ b/motorApp/Db/basic_asyn_motor.db @@ -6,6 +6,7 @@ record(motor,"$(P)$(M)") field(VELO,"$(VELO)") field(VBAS,"$(VBAS)") field(ACCL,"$(ACCL)") + field(ACCU,"$(ACCU=0)") field(BDST,"$(BDST)") field(BVEL,"$(BVEL)") field(BACC,"$(BACC)") diff --git a/motorApp/Db/basic_asyn_motor_model2.db b/motorApp/Db/basic_asyn_motor_model2.db index 84dba5ce2..84e7c1fea 100644 --- a/motorApp/Db/basic_asyn_motor_model2.db +++ b/motorApp/Db/basic_asyn_motor_model2.db @@ -6,6 +6,7 @@ record(motor,"$(P)$(M)") field(VELO,"$(VELO)") field(VBAS,"$(VBAS)") field(ACCL,"$(ACCL)") + field(ACCU,"$(ACCU=0)") field(BDST,"$(BDST)") field(BVEL,"$(BVEL)") field(BACC,"$(BACC)") diff --git a/motorApp/Db/basic_motor.db b/motorApp/Db/basic_motor.db index 98e55ec92..87c70beaf 100644 --- a/motorApp/Db/basic_motor.db +++ b/motorApp/Db/basic_motor.db @@ -6,6 +6,7 @@ grecord(motor,"$(P)$(M)") field(VELO,"$(VELO)") field(VBAS,"$(VBAS)") field(ACCL,"$(ACCL)") + field(ACCU,"$(ACCU=0)") field(BDST,"$(BDST)") field(BVEL,"$(BVEL)") field(BACC,"$(BACC)") diff --git a/motorApp/Db/basic_motor_settings.req b/motorApp/Db/basic_motor_settings.req index 5e3eb5514..9072214a8 100644 --- a/motorApp/Db/basic_motor_settings.req +++ b/motorApp/Db/basic_motor_settings.req @@ -11,6 +11,7 @@ $(P)$(M).RRES $(P)$(M).VBAS $(P)$(M).VELO $(P)$(M).ACCL +$(P)$(M).ACCU $(P)$(M).BDST $(P)$(M).BVEL $(P)$(M).BACC diff --git a/motorApp/Db/motor.db b/motorApp/Db/motor.db index 3b6c0e5de..7b5b4712b 100644 --- a/motorApp/Db/motor.db +++ b/motorApp/Db/motor.db @@ -10,6 +10,7 @@ record(motor, "$(P)$(M)") { field(VELO, "$(VELO)") field(VBAS, "$(VBAS)") field(ACCL, "$(ACCL)") + field(ACCU, "$(ACCU=0)") field(BDST, "$(BDST)") field(BVEL, "$(BVEL)") field(BACC, "$(BACC)") diff --git a/motorApp/MotorSrc/motorRecord.cc b/motorApp/MotorSrc/motorRecord.cc index 4fb5ee4f8..cf98e10b7 100644 --- a/motorApp/MotorSrc/motorRecord.cc +++ b/motorApp/MotorSrc/motorRecord.cc @@ -486,7 +486,7 @@ static double accEGUfromVelo(motorRecord *pmr, double veloEGU) double vmax = fabs(veloEGU); double acc; /* ACCL or ACCS */ - if (pmr->accu == motorACCSused_Accs) + if (pmr->accu == motorACCU_Accs) acc = pmr->accs; else if (vmax > vmin) acc = (vmax - vmin) / pmr->accl; @@ -498,14 +498,9 @@ static double accEGUfromVelo(motorRecord *pmr, double veloEGU) static void updateACCLfromACCS(motorRecord *pmr) { - if (pmr->accu != motorACCSused_Accs) - { - pmr->accu = motorACCSused_Accs; - db_post_events(pmr, &pmr->accu, DBE_VAL_LOG); - } if (pmr->accs > 0.0) { - double temp_dbl = pmr->velo / pmr->accs; + double temp_dbl = (pmr->velo > pmr->vbas) ? (pmr->velo - pmr->vbas) / pmr->accs : pmr->velo / pmr->accs; if (pmr->accl != temp_dbl) { pmr->accl = temp_dbl; @@ -517,12 +512,7 @@ static void updateACCLfromACCS(motorRecord *pmr) static void updateACCSfromACCL(motorRecord *pmr) { double temp_dbl; - if (pmr->accu != motorACCSused_Accl) - { - pmr->accu = motorACCSused_Accl; - db_post_events(pmr, &pmr->accu, DBE_VAL_LOG); - } - temp_dbl = pmr->velo / pmr->accl; + temp_dbl = (pmr->velo > pmr->vbas) ? (pmr->velo - pmr->vbas) / pmr->accl : pmr->velo / pmr->accl; if (pmr->accs != temp_dbl) { pmr->accs = temp_dbl; @@ -532,11 +522,11 @@ static void updateACCSfromACCL(motorRecord *pmr) static void updateACCL_ACCSfromVELO(motorRecord *pmr) { - if (pmr->accu == motorACCSused_Accs) + if (pmr->accu == motorACCU_Accs) { if (pmr->accs > 0.0) { - double temp_dbl = pmr->velo / pmr->accs; + double temp_dbl = (pmr->velo > pmr->vbas) ? (pmr->velo - pmr->vbas) / pmr->accs : pmr->velo / pmr->accs; if (pmr->accl != temp_dbl) { pmr->accl = temp_dbl; @@ -546,7 +536,7 @@ static void updateACCL_ACCSfromVELO(motorRecord *pmr) } else { - double temp_dbl = pmr->velo / pmr->accl; + double temp_dbl = (pmr->velo > pmr->vbas) ? (pmr->velo - pmr->vbas) / pmr->accl : pmr->velo / pmr->accl; if (pmr->accs != temp_dbl) { pmr->accs = temp_dbl; @@ -3984,14 +3974,6 @@ static void check_speed_and_resolution(motorRecord * pmr) db_post_events(pmr, &pmr->sbak, DBE_VAL_LOG); db_post_events(pmr, &pmr->bvel, DBE_VAL_LOG); - if (pmr->accs && !pmr->accl) - { - /* ACCL == 0.0, ACCS is != 0.0 -> Use ACCS - This is a (possible) new way to configure a database. - Existing Db files will have ACCS == 0.0 and this - is backwards compatible and behaves as before */ - updateACCLfromACCS(pmr); - } /* Sanity check on acceleration time. */ if (pmr->accl == 0.0) { @@ -4017,8 +3999,9 @@ static void check_speed_and_resolution(motorRecord * pmr) pmr->hvel = pmr->vbas; else range_check(pmr, &pmr->hvel, pmr->vbas, pmr->vmax); - /* Make sure that ACCS/ACCU are initialized */ - if (pmr->accu == motorACCSused_Undef) + + /* Make sure that ACCS is initialized */ + if (pmr->accs == 0.0) { updateACCSfromACCL(pmr); } diff --git a/motorApp/MotorSrc/motorRecord.dbd b/motorApp/MotorSrc/motorRecord.dbd index ba8cdb38e..b112dda31 100644 --- a/motorApp/MotorSrc/motorRecord.dbd +++ b/motorApp/MotorSrc/motorRecord.dbd @@ -74,10 +74,9 @@ menu(motorRSTM) { choice(motorRSTM_NearZero, "NearZero") choice(motorRSTM_Conditional, "Conditional") } -menu(motorACCSused) { - choice(motorACCSused_Undef,"Undef") - choice(motorACCSused_Accl, "Accl") - choice(motorACCSused_Accs, "Accs") +menu(motorACCU) { + choice(motorACCU_Accl, "Use ACCL") + choice(motorACCU_Accs, "Use ACCS") } include "menuOmsl.dbd" @@ -191,9 +190,10 @@ recordtype(motor) { interest(1) } field(ACCU,DBF_MENU) { - prompt("ACCS used") - special(SPC_NOMOD) - menu(motorACCSused) + prompt("Acceleration used") + special(SPC_MOD) + menu(motorACCU) + initial("0") } field(BDST,DBF_DOUBLE) { prompt("BL Distance (EGU)") From c3d6c6ee439e4d46fd2d4c2790091f7c76e31120 Mon Sep 17 00:00:00 2001 From: Mark Rivers Date: Thu, 18 May 2023 16:41:32 -0500 Subject: [PATCH 13/29] Minor fixes to change text widgets from decimal to string; DTYP and EGU we not displaying correctly in Phoebus --- motorApp/op/adl/motorx_all.adl | 31 +- motorApp/op/bob/autoconvert/motorx_all.bob | 370 +++--- motorApp/op/edl/autoconvert/motorx_all.edl | 1300 ++++++++++---------- motorApp/op/opi/autoconvert/motorx_all.opi | 536 ++++---- motorApp/op/ui/autoconvert/motorx_all.ui | 139 ++- 5 files changed, 1190 insertions(+), 1186 deletions(-) diff --git a/motorApp/op/adl/motorx_all.adl b/motorApp/op/adl/motorx_all.adl index a6fe09fbd..110b6a511 100644 --- a/motorApp/op/adl/motorx_all.adl +++ b/motorApp/op/adl/motorx_all.adl @@ -1,12 +1,12 @@ file { - name="/home/oxygen/MOONEY/epics/synApps/support/motor/motorApp/op/adl/motorx_all.adl" - version=030107 + name="/home/epics/support/motor/motorApp/op/adl/motorx_all.adl" + version=030117 } display { object { x=188 - y=29 + y=31 width=450 height=875 } @@ -87,6 +87,17 @@ display { 1a7309, } } +rectangle { + object { + x=0 + y=0 + width=450 + height=26 + } + "basic attribute" { + clr=1 + } +} rectangle { object { x=80 @@ -597,6 +608,7 @@ text { clr=14 bclr=1 } + format="string" limits { } } @@ -1237,17 +1249,6 @@ text { textix="SET" align="horiz. centered" } -rectangle { - object { - x=0 - y=0 - width=450 - height=26 - } - "basic attribute" { - clr=1 - } -} "text entry" { object { x=0 @@ -1260,6 +1261,7 @@ rectangle { clr=54 bclr=1 } + format="string" limits { } } @@ -1306,6 +1308,7 @@ text { bclr=1 } align="horiz. centered" + format="string" limits { } } diff --git a/motorApp/op/bob/autoconvert/motorx_all.bob b/motorApp/op/bob/autoconvert/motorx_all.bob index 1283fdb0a..2e2657563 100644 --- a/motorApp/op/bob/autoconvert/motorx_all.bob +++ b/motorApp/op/bob/autoconvert/motorx_all.bob @@ -1,8 +1,9 @@ + motorx_all 188 - 29 + 31 450 875 @@ -13,6 +14,19 @@ 5 rectangle #6 + 450 + 26 + + + + + + + + + + + rectangle #9 80 99 210 @@ -35,7 +49,7 @@ - rectangle #10 + rectangle #13 285 90 21 @@ -49,7 +63,7 @@ - text #13 + text #16 Jog 318 290 @@ -61,7 +75,7 @@ 1 - text #16 + text #19 Backlash 206 290 @@ -73,7 +87,7 @@ 1 - text #19 + text #22 Normal 94 290 @@ -85,7 +99,7 @@ 1 - text #22 + text #25 Dynamics 2 286 @@ -101,24 +115,24 @@ 1 - polyline #25 + polyline #28 285 449 2 - 2 - - - - + 2 + + + + - text entry #29 + text entry #32 $(P)$(M).FRAC 207 446 @@ -136,7 +150,7 @@ false - text entry #33 + text entry #36 $(P)$(M).VMAX 95 317 @@ -154,7 +168,7 @@ false - text #37 + text #40 Speed 3 346 @@ -167,7 +181,7 @@ true - text #40 + text #43 Base Speed 3 372 @@ -180,7 +194,7 @@ true - text #43 + text #46 Accel. 3 398 @@ -193,7 +207,7 @@ true - text #46 + text #49 Backlash distance 3 423 @@ -206,7 +220,7 @@ true - text #49 + text #52 Move Fraction 3 449 @@ -219,7 +233,7 @@ true - text entry #52 + text entry #55 $(P)$(M).BACC 207 395 @@ -237,7 +251,7 @@ false - text entry #56 + text entry #59 $(P)$(M).ACCL 95 395 @@ -255,7 +269,7 @@ false - text entry #60 + text entry #63 $(P)$(M).BDST 207 420 @@ -273,7 +287,7 @@ false - text entry #64 + text entry #67 $(P)$(M).VELO 95 343 @@ -291,7 +305,7 @@ false - text entry #68 + text entry #71 $(P)$(M).BVEL 207 343 @@ -309,7 +323,7 @@ false - text entry #72 + text entry #75 $(P)$(M).VBAS 95 369 @@ -327,7 +341,7 @@ false - text #76 + text #79 Cal 6 256 @@ -340,7 +354,7 @@ 1 - choice button #79 + choice button #82 $(P)$(M).SET 37 253 @@ -356,7 +370,7 @@ - text #82 + text #85 Off 150 256 @@ -369,7 +383,7 @@ 2 - composite #85 + composite #88 186 232 100 @@ -377,7 +391,7 @@ true - menu #88 + menu #91 $(P)$(M).FOFF 18 @@ -387,7 +401,7 @@ false - text entry #91 + text entry #94 $(P)$(M).OFF 17 25 @@ -405,7 +419,7 @@ - text #95 + text #98 Dir 301 256 @@ -418,7 +432,7 @@ 1 - choice button #98 + choice button #101 $(P)$(M).DIR 332 253 @@ -434,7 +448,7 @@ - text entry #101 + text entry #104 $(P)$(M).JVEL 319 343 @@ -452,7 +466,7 @@ false - text entry #105 + text entry #108 $(P)$(M).JAR 319 395 @@ -470,25 +484,25 @@ false - polyline #109 + polyline #112 2 225 449 2 - 2 - - - - + 2 + + + + - rectangle #113 + rectangle #116 225 120 22 @@ -502,7 +516,7 @@ - text #116 + text #119 Calibration 4 227 @@ -518,7 +532,7 @@ true - text #119 + text #122 Maximum Spd 3 320 @@ -531,7 +545,7 @@ true - text #122 + text #125 Moving 337 51 @@ -557,7 +571,7 @@ - text entry #126 + text entry #129 $(P)$(M).EGU 350 3 @@ -570,12 +584,12 @@ - 1 + 6 false false - rectangle #130 + rectangle #133 30 70 22 @@ -589,7 +603,7 @@ - text #133 + text #136 Drive 4 31 @@ -605,7 +619,7 @@ true - text #136 + text #139 Limit 285 32 @@ -630,7 +644,7 @@ - rectangle #140 + rectangle #143 240 189 49 @@ -655,7 +669,7 @@ - rectangle #144 + rectangle #147 189 189 49 @@ -680,7 +694,7 @@ - message button #148 + message button #151 $(P)$(M).TWF @@ -700,7 +714,7 @@ - message button #151 + message button #154 $(P)$(M).TWR @@ -720,7 +734,7 @@ - text entry #154 + text entry #157 $(P)$(M).TWV 103 193 @@ -739,7 +753,7 @@ false - message button #158 + message button #161 $(P)$(M).JOGR 192 166 @@ -763,7 +777,7 @@ 1 - message button #161 + message button #164 $(P)$(M).JOGF 242 166 @@ -787,7 +801,7 @@ 1 - text entry #164 + text entry #167 $(P)$(M).RLV 83 166 @@ -805,7 +819,7 @@ false - message button #168 + message button #171 $(P)$(M).HOMF @@ -825,7 +839,7 @@ - message button #171 + message button #174 $(P)$(M).HOMR @@ -845,7 +859,7 @@ - text #174 + text #177 User 83 32 @@ -856,7 +870,7 @@ 1 - text #177 + text #180 Dial 187 32 @@ -867,7 +881,7 @@ 1 - text #180 + text #183 Limit 285 32 @@ -892,7 +906,7 @@ - text update #184 + text update #187 $(P)$(M).RBV 83 78 @@ -914,7 +928,7 @@ false - text update #188 + text update #191 $(P)$(M).DRBV 187 78 @@ -936,7 +950,7 @@ false - text entry #192 + text entry #195 $(P)$(M).VAL 83 102 @@ -954,7 +968,7 @@ false - text entry #196 + text entry #199 $(P)$(M).LLM 83 132 @@ -972,7 +986,7 @@ false - text entry #200 + text entry #203 $(P)$(M).DHLM 187 50 @@ -990,7 +1004,7 @@ false - text entry #204 + text entry #207 $(P)$(M).HLM 83 50 @@ -1008,7 +1022,7 @@ false - text entry #208 + text entry #211 $(P)$(M).DVAL 187 102 @@ -1026,7 +1040,7 @@ false - text entry #212 + text entry #215 $(P)$(M).DLLM 187 132 @@ -1044,7 +1058,7 @@ false - oval #216 + oval #219 290 50 21 @@ -1067,7 +1081,7 @@ - oval #220 + oval #223 290 132 21 @@ -1090,7 +1104,7 @@ - text #224 + text #227 Soft-Limit Violation 83 153 @@ -1111,7 +1125,7 @@ - composite #228 + composite #231 79 75 210 @@ -1119,7 +1133,7 @@ true - rectangle #231 + rectangle #234 2 2 206 @@ -1144,7 +1158,7 @@ - rectangle #235 + rectangle #238 210 22 2 @@ -1168,7 +1182,7 @@ - composite #239 + composite #242 5 53 75 @@ -1176,7 +1190,7 @@ true - text #242 + text #245 Tweak 143 75 @@ -1188,7 +1202,7 @@ true - text #245 + text #248 MoveRel 116 75 @@ -1200,7 +1214,7 @@ true - text #248 + text #251 Lo limit 82 75 @@ -1212,7 +1226,7 @@ true - text #251 + text #254 MoveAbs 52 75 @@ -1224,7 +1238,7 @@ true - text #254 + text #257 Readback 25 75 @@ -1236,7 +1250,7 @@ true - text #257 + text #260 Hi limit 75 18 @@ -1248,7 +1262,7 @@ - text #260 + text #263 Raw 340 32 @@ -1261,7 +1275,7 @@ 1 - text update #263 + text update #266 $(P)$(M).RRBV 335 77 @@ -1283,7 +1297,7 @@ false - choice button #267 + choice button #270 $(P)$(M)_able.VAL 299 171 @@ -1301,7 +1315,7 @@ - rectangle #270 + rectangle #273 81 100 356 @@ -1324,7 +1338,7 @@ - text entry #274 + text entry #277 $(P)$(M).RVAL 335 102 @@ -1342,7 +1356,7 @@ false - text #278 + text #281 SET 60 93 @@ -1362,19 +1376,6 @@ - - rectangle #282 - 450 - 26 - - - - - - - - - text entry #285 $(P)$(M).DESC @@ -1392,7 +1393,7 @@ - 1 + 6 false false @@ -1401,16 +1402,16 @@ 27 449 3 - - - - + + + + text #293 @@ -1433,7 +1434,7 @@ - 1 + 6 false 1 false @@ -1555,17 +1556,17 @@ 285 0 187 - 1 - - - - + 1 + + + + polyline #322 @@ -1573,17 +1574,17 @@ 285 0 187 - 1 - - - - + 1 + + + + composite #326 @@ -1623,17 +1624,17 @@ 10 22 0 - 1 - - - - + 1 + + + + @@ -1674,17 +1675,17 @@ 10 22 0 - 1 - - - - + 1 + + + + @@ -1725,17 +1726,17 @@ 10 22 0 - 1 - - - - + 1 + + + + @@ -1807,17 +1808,17 @@ 10 22 0 - 1 - - - - + 1 + + + + @@ -1876,17 +1877,17 @@ 528 3 346 - 2 - - - - + 2 + + + + rectangle #399 @@ -2686,17 +2687,17 @@ 10 22 0 - 1 - - - - + 1 + + + + @@ -2737,17 +2738,17 @@ 10 22 0 - 1 - - - - + 1 + + + + @@ -2788,17 +2789,17 @@ 10 22 0 - 1 - - - - + 1 + + + + @@ -2920,17 +2921,17 @@ 529 449 2 - 2 - - - - + 2 + + + + rectangle #625 @@ -2952,17 +2953,17 @@ 473 449 2 - 2 - - - - + 2 + + + + text #632 @@ -3022,17 +3023,17 @@ 473 0 55 - 1 - - - - + 1 + + + + polyline #648 @@ -3040,17 +3041,17 @@ 473 0 55 - 1 - - - - + 1 + + + + text entry #652 @@ -3126,17 +3127,17 @@ 842 260 3 - 2 - - - - + 2 + + + + text #671 @@ -3449,6 +3450,7 @@ + 1 diff --git a/motorApp/op/edl/autoconvert/motorx_all.edl b/motorApp/op/edl/autoconvert/motorx_all.edl index dc5eee78d..aa4abcd1d 100644 --- a/motorApp/op/edl/autoconvert/motorx_all.edl +++ b/motorApp/op/edl/autoconvert/motorx_all.edl @@ -4,26 +4,42 @@ major 4 minor 0 release 1 x 188 -y 29 +y 31 w 450 h 875 font "helvetica-medium-r-18.0" ctlFont "helvetica-bold-r-10.0" btnFont "helvetica-medium-r-18.0" -fgColor index 6 -bgColor index 3 -textColor index 14 -ctlFgColor1 index 25 -ctlFgColor2 index 15 -ctlBgColor1 index 5 -ctlBgColor2 index 12 -topShadowColor index 1 -botShadowColor index 13 +fgColor rgb 40448 40448 40448 +bgColor rgb 51200 51200 51200 +textColor rgb 0 0 0 +ctlFgColor1 rgb 64256 62208 18944 +ctlFgColor2 rgb 60928 46592 11008 +ctlBgColor1 rgb 52480 24832 0 +ctlBgColor2 rgb 65280 45056 65280 +topShadowColor rgb 44544 19968 48128 +botShadowColor rgb 13312 13056 34304 showGrid snapToGrid gridSize 4 endScreenProperties +# (Rectangle) +object activeRectangleClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 0 +y 0 +w 449 +h 25 +lineColor rgb 60416 60416 60416 +fill +fillColor rgb 60416 60416 60416 +lineWidth 0 +endObjectProperties + # (Rectangle) object activeRectangleClass beginObjectProperties @@ -34,9 +50,9 @@ x 80 y 99 w 208 h 29 -lineColor index 14 +lineColor rgb 0 0 0 fill -fillColor index 14 +fillColor rgb 0 0 0 visPv "CALC\\\{(A)\}($(P)$(M)_able.VAL)" visInvert visMin 0 @@ -53,9 +69,9 @@ x 0 y 285 w 89 h 20 -lineColor index 54 +lineColor rgb 2560 0 47104 fill -fillColor index 54 +fillColor rgb 2560 0 47104 lineWidth 0 endObjectProperties @@ -69,9 +85,9 @@ x 318 y 290 w 100 h 19 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "center" -fgColor index 14 +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -89,9 +105,9 @@ x 206 y 290 w 100 h 19 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "center" -fgColor index 14 +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -109,9 +125,9 @@ x 94 y 290 w 100 h 19 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "center" -fgColor index 14 +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -129,9 +145,9 @@ x 2 y 286 w 85 h 20 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "center" -fgColor index 14 +fgColor rgb 65280 65280 65280 bgColor index 3 useDisplayBg value { @@ -149,8 +165,8 @@ x 0 y 285 w 449 h 2 -lineColor index 54 -fillColor index 54 +lineColor rgb 2560 0 47104 +fillColor rgb 2560 0 47104 lineWidth 2 numPoints 2 { xPoints { @@ -175,14 +191,14 @@ w 100 h 24 controlPv "$(P)$(M).FRAC" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -201,14 +217,14 @@ w 100 h 24 controlPv "$(P)$(M).VMAX" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -225,8 +241,8 @@ x 3 y 346 w 73 h 17 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -242,10 +258,10 @@ minor 1 release 1 x 3 y 372 -w 80 +w 92 h 17 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -263,8 +279,8 @@ x 3 y 398 w 73 h 17 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -282,8 +298,8 @@ x 3 y 423 w 177 h 17 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -301,8 +317,8 @@ x 3 y 449 w 177 h 17 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -322,14 +338,14 @@ w 100 h 24 controlPv "$(P)$(M).BACC" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -348,14 +364,14 @@ w 100 h 24 controlPv "$(P)$(M).ACCL" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -374,14 +390,14 @@ w 100 h 24 controlPv "$(P)$(M).BDST" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -400,14 +416,14 @@ w 100 h 24 controlPv "$(P)$(M).VELO" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -426,14 +442,14 @@ w 100 h 24 controlPv "$(P)$(M).BVEL" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -452,14 +468,14 @@ w 100 h 24 controlPv "$(P)$(M).VBAS" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -472,13 +488,13 @@ beginObjectProperties major 4 minor 1 release 1 -x 6 +x 4 y 256 -w 31 +w 35 h 18 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "center" -fgColor index 14 +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -496,9 +512,9 @@ x 150 y 256 w 31 h 18 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "right" -fgColor index 14 +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -531,14 +547,14 @@ w 100 h 25 controlPv "$(P)$(M).OFF" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -558,11 +574,11 @@ minor 1 release 1 x 301 y 256 -w 31 +w 32 h 18 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "center" -fgColor index 14 +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -582,14 +598,14 @@ w 100 h 24 controlPv "$(P)$(M).JVEL" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -608,14 +624,14 @@ w 100 h 24 controlPv "$(P)$(M).JAR" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -632,8 +648,8 @@ x 2 y 225 w 449 h 2 -lineColor index 54 -fillColor index 54 +lineColor rgb 2560 0 47104 +fillColor rgb 2560 0 47104 lineWidth 2 numPoints 2 { xPoints { @@ -656,9 +672,9 @@ x 0 y 225 w 119 h 21 -lineColor index 54 +lineColor rgb 2560 0 47104 fill -fillColor index 54 +fillColor rgb 2560 0 47104 lineWidth 0 endObjectProperties @@ -672,8 +688,8 @@ x 4 y 227 w 110 h 20 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 65280 65280 65280 bgColor index 3 useDisplayBg value { @@ -689,10 +705,10 @@ minor 1 release 1 x 3 y 320 -w 73 +w 104 h 17 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -710,9 +726,9 @@ x 337 y 51 w 98 h 26 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-18.0" fontAlign "center" -fgColor index 14 +fgColor rgb 2560 0 47104 bgColor index 3 useDisplayBg value { @@ -735,15 +751,15 @@ y 3 w 90 h 20 controlPv "$(P)$(M).EGU" -format "decimal" -font "helvetica-bold-r-12.0" +format "string" +font "helvetica-medium-r-12.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 60416 60416 60416 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -760,9 +776,9 @@ x 0 y 30 w 69 h 21 -lineColor index 54 +lineColor rgb 2560 0 47104 fill -fillColor index 54 +fillColor rgb 2560 0 47104 lineWidth 0 endObjectProperties @@ -776,8 +792,8 @@ x 4 y 31 w 80 h 20 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 65280 65280 65280 bgColor index 3 useDisplayBg value { @@ -791,13 +807,13 @@ beginObjectProperties major 4 minor 1 release 1 -x 285 +x 279 y 32 -w 30 +w 43 h 18 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "center" -fgColor index 14 +fgColor rgb 64768 0 0 bgColor index 3 useDisplayBg value { @@ -819,8 +835,8 @@ x 241 y 190 w 47 h 22 -lineColor index 1 -fillColor index 1 +lineColor rgb 60416 60416 60416 +fillColor rgb 60416 60416 60416 lineWidth 2 visPv "CALC\\\{(A)\}($(P)$(M).HOMF)" visInvert @@ -838,8 +854,8 @@ x 190 y 190 w 47 h 22 -lineColor index 1 -fillColor index 1 +lineColor rgb 60416 60416 60416 +fillColor rgb 60416 60416 60416 lineWidth 2 visPv "CALC\\\{(A)\}($(P)$(M).HOMR)" visInvert @@ -859,14 +875,14 @@ w 56 h 22 controlPv "$(P)$(M).TWV" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-12.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -885,14 +901,14 @@ w 100 h 25 controlPv "$(P)$(M).RLV" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -909,9 +925,9 @@ x 83 y 32 w 100 h 20 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "center" -fgColor index 14 +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -929,9 +945,9 @@ x 187 y 32 w 100 h 20 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "center" -fgColor index 14 +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -945,13 +961,13 @@ beginObjectProperties major 4 minor 1 release 1 -x 285 +x 279 y 32 -w 30 +w 43 h 18 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "center" -fgColor index 14 +fgColor rgb 64768 0 0 bgColor index 3 useDisplayBg value { @@ -975,12 +991,12 @@ w 100 h 18 controlPv "$(P)$(M).RBV" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 15 -bgColor index 12 +fgColor rgb 2560 0 47104 +bgColor rgb 51200 51200 51200 limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -999,12 +1015,12 @@ w 100 h 18 controlPv "$(P)$(M).DRBV" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 15 -bgColor index 12 +fgColor rgb 2560 0 47104 +bgColor rgb 51200 51200 51200 limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -1023,14 +1039,14 @@ w 100 h 25 controlPv "$(P)$(M).VAL" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -1049,14 +1065,14 @@ w 100 h 22 controlPv "$(P)$(M).LLM" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-12.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -1075,14 +1091,14 @@ w 100 h 22 controlPv "$(P)$(M).DHLM" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-12.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -1101,14 +1117,14 @@ w 100 h 22 controlPv "$(P)$(M).HLM" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-12.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -1127,14 +1143,14 @@ w 100 h 25 controlPv "$(P)$(M).DVAL" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -1153,14 +1169,14 @@ w 100 h 22 controlPv "$(P)$(M).DLLM" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-12.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -1177,9 +1193,9 @@ x 291 y 51 w 19 h 19 -lineColor index 20 +lineColor rgb 64768 0 0 fill -fillColor index 20 +fillColor rgb 64768 0 0 lineWidth 0 visPv "CALC\\\{(A)\}($(P)$(M).HLS)" visInvert @@ -1197,9 +1213,9 @@ x 291 y 133 w 19 h 19 -lineColor index 20 +lineColor rgb 64768 0 0 fill -fillColor index 20 +fillColor rgb 64768 0 0 lineWidth 0 visPv "CALC\\\{(A)\}($(P)$(M).LLS)" visInvert @@ -1217,9 +1233,9 @@ x 83 y 153 w 204 h 13 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-10.0" fontAlign "center" -fgColor index 14 +fgColor rgb 64256 62208 18944 bgColor index 3 useDisplayBg value { @@ -1254,8 +1270,8 @@ x 82 y 78 w 204 h 16 -lineColor index 30 -fillColor index 30 +lineColor rgb 64256 62208 18944 +fillColor rgb 64256 62208 18944 lineWidth 2 visPv "CALC\\\{(A)\}($(P)$(M).SET)" visInvert @@ -1273,8 +1289,8 @@ x 80 y 76 w 208 h 20 -lineColor index 14 -fillColor index 14 +lineColor rgb 0 0 0 +fillColor rgb 0 0 0 lineWidth 2 visPv "CALC\\\{(A)\}($(P)$(M).SET)" visInvert @@ -1310,8 +1326,8 @@ x 5 y 196 w 75 h 19 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -1329,8 +1345,8 @@ x 5 y 169 w 75 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -1348,8 +1364,8 @@ x 5 y 135 w 75 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -1365,10 +1381,10 @@ minor 1 release 1 x 5 y 105 -w 75 +w 78 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -1384,10 +1400,10 @@ minor 1 release 1 x 5 y 78 -w 75 +w 78 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -1405,8 +1421,8 @@ x 5 y 53 w 75 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -1429,9 +1445,9 @@ x 340 y 32 w 73 h 18 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "center" -fgColor index 14 +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -1451,12 +1467,12 @@ w 100 h 19 controlPv "$(P)$(M).RRBV" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 15 -bgColor index 12 +fgColor rgb 2560 0 47104 +bgColor rgb 51200 51200 51200 limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -1473,9 +1489,9 @@ x 81 y 100 w 354 h 27 -lineColor index 30 +lineColor rgb 64256 62208 18944 fill -fillColor index 30 +fillColor rgb 64256 62208 18944 visPv "CALC\\\{(A)\}($(P)$(M).LVIO)" visInvert visMin 0 @@ -1494,14 +1510,14 @@ w 100 h 25 controlPv "$(P)$(M).RVAL" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -1514,13 +1530,13 @@ beginObjectProperties major 4 minor 1 release 1 -x 60 +x 55 y 93 -w 20 +w 30 h 13 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-10.0" fontAlign "center" -fgColor index 14 +fgColor rgb 64256 62208 18944 bgColor index 3 useDisplayBg value { @@ -1532,22 +1548,6 @@ visMin 0 visMax 1 endObjectProperties -# (Rectangle) -object activeRectangleClass -beginObjectProperties -major 4 -minor 0 -release 0 -x 0 -y 0 -w 449 -h 25 -lineColor index 1 -fill -fillColor index 1 -lineWidth 0 -endObjectProperties - # (Text Control) object activeXTextDspClass beginObjectProperties @@ -1559,15 +1559,15 @@ y 0 w 190 h 27 controlPv "$(P)$(M).DESC" -format "decimal" -font "helvetica-bold-r-12.0" +format "string" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 2560 0 47104 +bgColor rgb 60416 60416 60416 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -1584,8 +1584,8 @@ x 0 y 27 w 449 h 3 -lineColor index 54 -fillColor index 54 +lineColor rgb 2560 0 47104 +fillColor rgb 2560 0 47104 lineWidth 3 numPoints 2 { xPoints { @@ -1608,9 +1608,9 @@ x 205 y 0 w 100 h 14 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-12.0" fontAlign "center" -fgColor index 14 +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -1629,13 +1629,13 @@ y 13 w 100 h 14 controlPv "$(P)$(M).DTYP" -format "decimal" -font "helvetica-bold-r-12.0" +format "string" +font "helvetica-medium-r-12.0" fontAlign "center" -fgColor index 15 -bgColor index 12 +fgColor rgb 2560 0 47104 +bgColor rgb 60416 60416 60416 limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -1656,10 +1656,10 @@ controlPv "$(P)$(M).LVIO" format "decimal" font "helvetica-bold-r-12.0" fontAlign "center" -fgColor index 15 -bgColor index 12 +fgColor rgb 64256 62208 18944 +bgColor rgb 47872 47872 47872 limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -1676,9 +1676,9 @@ x 315 y 52 w 130 h 20 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "center" -fgColor index 14 +fgColor rgb 64256 62208 18944 bgColor index 3 useDisplayBg value { @@ -1700,8 +1700,8 @@ x 0 y 0 w 10 h 10 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-8.0" +fgColor rgb 65280 65280 65280 bgColor index 3 useDisplayBg value { @@ -1719,9 +1719,9 @@ x 335 y 49 w 98 h 26 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-18.0" fontAlign "center" -fgColor index 14 +fgColor rgb 39168 65280 65280 bgColor index 3 useDisplayBg value { @@ -1743,8 +1743,8 @@ x 200 y 285 w 0 h 187 -lineColor index 54 -fillColor index 54 +lineColor rgb 2560 0 47104 +fillColor rgb 2560 0 47104 lineWidth 0 numPoints 2 { xPoints { @@ -1767,8 +1767,8 @@ x 313 y 285 w 0 h 187 -lineColor index 54 -fillColor index 54 +lineColor rgb 2560 0 47104 +fillColor rgb 2560 0 47104 lineWidth 0 numPoints 2 { xPoints { @@ -1802,10 +1802,10 @@ minor 1 release 1 x 425 y 318 -w 20 +w 26 h 10 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-8.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -1823,8 +1823,8 @@ x 425 y 328 w 20 h 10 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-8.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -1842,8 +1842,8 @@ x 423 y 328 w 22 h 0 -lineColor index 14 -fillColor index 14 +lineColor rgb 0 0 0 +fillColor rgb 0 0 0 lineWidth 0 numPoints 2 { xPoints { @@ -1882,10 +1882,10 @@ minor 1 release 1 x 425 y 345 -w 20 +w 26 h 10 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-8.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -1903,8 +1903,8 @@ x 425 y 355 w 20 h 10 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-8.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -1922,8 +1922,8 @@ x 423 y 355 w 22 h 0 -lineColor index 14 -fillColor index 14 +lineColor rgb 0 0 0 +fillColor rgb 0 0 0 lineWidth 0 numPoints 2 { xPoints { @@ -1962,10 +1962,10 @@ minor 1 release 1 x 425 y 372 -w 20 +w 26 h 10 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-8.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -1983,8 +1983,8 @@ x 425 y 382 w 20 h 10 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-8.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -2002,8 +2002,8 @@ x 423 y 382 w 22 h 0 -lineColor index 14 -fillColor index 14 +lineColor rgb 0 0 0 +fillColor rgb 0 0 0 lineWidth 0 numPoints 2 { xPoints { @@ -2029,10 +2029,10 @@ minor 1 release 1 x 424 y 425 -w 20 +w 34 h 12 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-10.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -2048,10 +2048,10 @@ minor 1 release 1 x 58 y 401 -w 20 +w 26 h 13 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-10.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -2067,10 +2067,10 @@ minor 1 release 1 x 321 y 7 -w 20 +w 37 h 13 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-10.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -2099,10 +2099,10 @@ minor 1 release 1 x 425 y 398 -w 20 +w 26 h 10 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-8.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -2118,10 +2118,10 @@ minor 1 release 1 x 420 y 410 -w 28 +w 30 h 10 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-8.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -2139,8 +2139,8 @@ x 423 y 408 w 22 h 0 -lineColor index 14 -fillColor index 14 +lineColor rgb 0 0 0 +fillColor rgb 0 0 0 lineWidth 0 numPoints 2 { xPoints { @@ -2168,8 +2168,8 @@ x 241 y 164 w 47 h 22 -lineColor index 1 -fillColor index 1 +lineColor rgb 60416 60416 60416 +fillColor rgb 60416 60416 60416 lineWidth 2 visPv "CALC\\\{(A)\}($(P)$(M).JOGF)" visInvert @@ -2187,8 +2187,8 @@ x 191 y 165 w 47 h 22 -lineColor index 1 -fillColor index 1 +lineColor rgb 60416 60416 60416 +fillColor rgb 60416 60416 60416 lineWidth 2 visPv "CALC\\\{(A)\}($(P)$(M).JOGR)" visInvert @@ -2206,8 +2206,8 @@ x 258 y 528 w 3 h 346 -lineColor index 54 -fillColor index 54 +lineColor rgb 2560 0 47104 +fillColor rgb 2560 0 47104 lineWidth 2 numPoints 2 { xPoints { @@ -2230,9 +2230,9 @@ x 0 y 531 w 109 h 21 -lineColor index 54 +lineColor rgb 2560 0 47104 fill -fillColor index 54 +fillColor rgb 2560 0 47104 lineWidth 0 endObjectProperties @@ -2246,8 +2246,8 @@ x 3 y 561 w 130 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -2265,8 +2265,8 @@ x 3 y 586 w 130 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -2284,8 +2284,8 @@ x 3 y 611 w 130 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -2303,8 +2303,8 @@ x 3 y 636 w 130 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -2322,8 +2322,8 @@ x 3 y 661 w 60 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -2341,8 +2341,8 @@ x 3 y 686 w 130 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -2360,8 +2360,8 @@ x 3 y 736 w 130 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -2377,10 +2377,10 @@ minor 1 release 1 x 3 y 761 -w 80 +w 84 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -2400,14 +2400,14 @@ w 94 h 25 controlPv "$(P)$(M).MRES" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -2426,14 +2426,14 @@ w 94 h 25 controlPv "$(P)$(M).ERES" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -2452,14 +2452,14 @@ w 94 h 25 controlPv "$(P)$(M).RDBD" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -2478,14 +2478,14 @@ w 64 h 25 controlPv "$(P)$(M).RTRY" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -2502,8 +2502,8 @@ x 129 y 661 w 44 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -2523,12 +2523,12 @@ w 50 h 18 controlPv "$(P)$(M).RCNT" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 15 -bgColor index 12 +fgColor rgb 2560 0 47104 +bgColor rgb 51200 51200 51200 limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -2545,8 +2545,8 @@ x 268 y 578 w 73 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -2566,12 +2566,12 @@ w 100 h 18 controlPv "$(P)$(M).TDIR" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 15 -bgColor index 12 +fgColor rgb 2560 0 47104 +bgColor rgb 51200 51200 51200 limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -2588,8 +2588,8 @@ x 268 y 598 w 73 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -2609,12 +2609,12 @@ w 100 h 18 controlPv "$(P)$(M).MOVN" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 15 -bgColor index 12 +fgColor rgb 2560 0 47104 +bgColor rgb 51200 51200 51200 limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -2633,12 +2633,12 @@ w 100 h 18 controlPv "$(P)$(M).MSTA" format "hex" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 15 -bgColor index 12 +fgColor rgb 2560 0 47104 +bgColor rgb 51200 51200 51200 limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -2655,8 +2655,8 @@ x 268 y 558 w 73 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -2674,8 +2674,8 @@ x 268 y 618 w 73 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -2693,8 +2693,8 @@ x 268 y 658 w 73 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -2710,10 +2710,10 @@ minor 1 release 1 x 268 y 638 -w 73 +w 77 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -2731,8 +2731,8 @@ x 268 y 678 w 73 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -2752,12 +2752,12 @@ w 100 h 18 controlPv "$(P)$(M).DIFF" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 15 -bgColor index 12 +fgColor rgb 2560 0 47104 +bgColor rgb 51200 51200 51200 limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -2774,8 +2774,8 @@ x 267 y 698 w 73 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -2795,12 +2795,12 @@ w 100 h 18 controlPv "$(P)$(M).ATHM" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 15 -bgColor index 12 +fgColor rgb 2560 0 47104 +bgColor rgb 51200 51200 51200 limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -2819,12 +2819,12 @@ w 100 h 18 controlPv "$(P)$(M).REP" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 15 -bgColor index 12 +fgColor rgb 2560 0 47104 +bgColor rgb 51200 51200 51200 limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -2843,12 +2843,12 @@ w 100 h 18 controlPv "$(P)$(M).RMP" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 15 -bgColor index 12 +fgColor rgb 2560 0 47104 +bgColor rgb 51200 51200 51200 limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -2867,12 +2867,12 @@ w 100 h 18 controlPv "$(P)$(M).MIP" format "hex" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 15 -bgColor index 12 +fgColor rgb 2560 0 47104 +bgColor rgb 51200 51200 51200 limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -2891,14 +2891,14 @@ w 94 h 25 controlPv "$(P)$(M).RRES" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -2913,10 +2913,10 @@ minor 1 release 1 x 267 y 738 -w 73 +w 90 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -2936,12 +2936,12 @@ w 100 h 18 controlPv "$(P)$(M).VERS" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 15 -bgColor index 12 +fgColor rgb 2560 0 47104 +bgColor rgb 51200 51200 51200 limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -2958,8 +2958,8 @@ x 267 y 718 w 73 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -2979,14 +2979,14 @@ w 100 h 20 controlPv "$(P)$(M).PREC" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-12.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -3001,10 +3001,10 @@ minor 1 release 1 x 267 y 761 -w 73 +w 74 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -3024,12 +3024,12 @@ w 100 h 18 controlPv "$(P)$(M).CARD" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 15 -bgColor index 12 +fgColor rgb 2560 0 47104 +bgColor rgb 51200 51200 51200 limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -3048,14 +3048,14 @@ w 94 h 25 controlPv "$(P)$(M).DLY" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -3074,14 +3074,14 @@ w 140 h 25 controlPv "$(P)$(M).RDBL" format "string" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 41984 43520 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -3096,10 +3096,10 @@ minor 1 release 1 x 267 y 783 -w 50 +w 60 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -3117,8 +3117,8 @@ x 3 y 711 w 130 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -3136,9 +3136,9 @@ x -1 y 532 w 110 h 20 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "center" -fgColor index 14 +fgColor rgb 65280 65280 65280 bgColor index 3 useDisplayBg value { @@ -3167,10 +3167,10 @@ minor 1 release 1 x 234 y 560 -w 20 +w 26 h 10 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-8.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -3186,10 +3186,10 @@ minor 1 release 1 x 231 y 570 -w 20 +w 24 h 10 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-8.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -3207,8 +3207,8 @@ x 232 y 570 w 22 h 0 -lineColor index 14 -fillColor index 14 +lineColor rgb 0 0 0 +fillColor rgb 0 0 0 lineWidth 0 numPoints 2 { xPoints { @@ -3247,10 +3247,10 @@ minor 1 release 1 x 234 y 586 -w 20 +w 26 h 10 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-8.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -3266,10 +3266,10 @@ minor 1 release 1 x 231 y 596 -w 20 +w 24 h 10 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-8.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -3287,8 +3287,8 @@ x 232 y 596 w 22 h 0 -lineColor index 14 -fillColor index 14 +lineColor rgb 0 0 0 +fillColor rgb 0 0 0 lineWidth 0 numPoints 2 { xPoints { @@ -3327,10 +3327,10 @@ minor 1 release 1 x 234 y 612 -w 20 +w 26 h 10 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-8.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -3346,10 +3346,10 @@ minor 1 release 1 x 231 y 622 -w 20 +w 24 h 10 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-8.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -3367,8 +3367,8 @@ x 232 y 622 w 22 h 0 -lineColor index 14 -fillColor index 14 +lineColor rgb 0 0 0 +fillColor rgb 0 0 0 lineWidth 0 numPoints 2 { xPoints { @@ -3394,10 +3394,10 @@ minor 1 release 1 x 232 y 639 -w 20 +w 34 h 13 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-10.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -3413,10 +3413,10 @@ minor 1 release 1 x 232 y 739 -w 20 +w 26 h 13 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-10.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -3436,13 +3436,13 @@ w 88 h 16 controlPv "$(P)$(M).STAT" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "center" -fgColor index 15 +fgColor rgb 0 65535 0 fgAlarm -bgColor index 12 +bgColor rgb 51200 51200 51200 limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -3474,14 +3474,14 @@ w 150 h 20 controlPv "$(P)$(M).FLNK" format "string" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-12.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 41984 43520 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -3498,8 +3498,8 @@ x 267 y 807 w 30 h 10 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-8.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -3517,8 +3517,8 @@ x 267 y 817 w 30 h 10 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-8.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -3541,8 +3541,8 @@ x 0 y 529 w 449 h 2 -lineColor index 54 -fillColor index 54 +lineColor rgb 2560 0 47104 +fillColor rgb 2560 0 47104 lineWidth 2 numPoints 2 { xPoints { @@ -3565,9 +3565,9 @@ x 0 y 473 w 59 h 20 -lineColor index 54 +lineColor rgb 2560 0 47104 fill -fillColor index 54 +fillColor rgb 2560 0 47104 lineWidth 0 endObjectProperties @@ -3581,8 +3581,8 @@ x 1 y 473 w 449 h 2 -lineColor index 54 -fillColor index 54 +lineColor rgb 2560 0 47104 +fillColor rgb 2560 0 47104 lineWidth 2 numPoints 2 { xPoints { @@ -3601,13 +3601,13 @@ beginObjectProperties major 4 minor 1 release 1 -x 4 +x 3 y 474 -w 50 +w 52 h 20 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "center" -fgColor index 14 +fgColor rgb 65280 65280 65280 bgColor index 3 useDisplayBg value { @@ -3625,9 +3625,9 @@ x 94 y 478 w 100 h 19 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "center" -fgColor index 14 +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -3645,9 +3645,9 @@ x 206 y 478 w 100 h 19 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "center" -fgColor index 14 +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -3665,9 +3665,9 @@ x 318 y 478 w 100 h 19 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "center" -fgColor index 14 +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -3685,8 +3685,8 @@ x 200 y 473 w 0 h 55 -lineColor index 54 -fillColor index 54 +lineColor rgb 2560 0 47104 +fillColor rgb 2560 0 47104 lineWidth 0 numPoints 2 { xPoints { @@ -3709,8 +3709,8 @@ x 313 y 473 w 0 h 55 -lineColor index 54 -fillColor index 54 +lineColor rgb 2560 0 47104 +fillColor rgb 2560 0 47104 lineWidth 0 numPoints 2 { xPoints { @@ -3735,14 +3735,14 @@ w 100 h 24 controlPv "$(P)$(M).PCOF" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -3761,14 +3761,14 @@ w 100 h 24 controlPv "$(P)$(M).ICOF" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -3787,14 +3787,14 @@ w 100 h 24 controlPv "$(P)$(M).DCOF" format "decimal" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -3811,9 +3811,9 @@ x 4 y 850 w 149 h 23 -lineColor index 14 +lineColor rgb 0 0 0 fill -fillColor index 14 +fillColor rgb 0 0 0 lineWidth 0 endObjectProperties @@ -3827,8 +3827,8 @@ x 0 y 842 w 260 h 3 -lineColor index 54 -fillColor index 54 +lineColor rgb 2560 0 47104 +fillColor rgb 2560 0 47104 lineWidth 2 numPoints 2 { xPoints { @@ -3851,8 +3851,8 @@ x 3 y 786 w 130 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -3872,14 +3872,14 @@ w 94 h 25 controlPv "$(P)$(M).PREM" format "string" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -3896,8 +3896,8 @@ x 3 y 811 w 130 h 18 -font "helvetica-bold-r-12.0" -fgColor index 14 +font "helvetica-medium-r-14.0" +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -3917,14 +3917,14 @@ w 94 h 25 controlPv "$(P)$(M).POST" format "string" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "left" -fgColor index 25 -bgColor index 5 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 editable motifWidget limitsFromDb -nullColor index 32 +nullColor rgb 60928 46592 11008 smartRefresh fastUpdate newPos @@ -3941,9 +3941,9 @@ x 315 y 42 w 130 h 20 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "center" -fgColor index 14 +fgColor rgb 64256 62208 18944 bgColor index 3 useDisplayBg value { @@ -3965,9 +3965,9 @@ x 316 y 59 w 130 h 20 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-14.0" fontAlign "center" -fgColor index 14 +fgColor rgb 64256 62208 18944 bgColor index 3 useDisplayBg value { @@ -3989,9 +3989,9 @@ x 3 y 850 w 60 h 22 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-18.0" fontAlign "center" -fgColor index 14 +fgColor rgb 0 55296 0 bgColor index 3 useDisplayBg value { @@ -4009,9 +4009,9 @@ x 416 y 862 w 30 h 10 -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-8.0" fontAlign "center" -fgColor index 14 +fgColor rgb 0 0 0 bgColor index 3 useDisplayBg value { @@ -4029,8 +4029,8 @@ x 81 y 100 w 208 h 29 -lineColor index 20 -fillColor index 20 +lineColor rgb 64768 0 0 +fillColor rgb 64768 0 0 lineWidth 2 lineStyle "dash" visPv "CALC\\\{(A)\}($(P)$(M)_able.VAL)" @@ -4049,14 +4049,14 @@ x 37 y 253 w 100 h 21 -fgColor index 14 -bgColor index 51 -selectColor index 51 -inconsistentColor index 14 -topShadowColor index 0 -botShadowColor index 14 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 +selectColor rgb 29440 57088 65280 +inconsistentColor rgb 0 0 0 +topShadowColor rgb 65280 65280 65280 +botShadowColor rgb 0 0 0 controlPv "$(P)$(M).SET" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-10.0" orientation "horizontal" endObjectProperties # (Group) @@ -4082,14 +4082,14 @@ x 186 y 232 w 100 h 18 -fgColor index 14 -bgColor index 51 -inconsistentColor index 12 -topShadowColor index 2 -botShadowColor index 12 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 +inconsistentColor rgb 17920 17920 17920 +topShadowColor rgb 55808 55808 55808 +botShadowColor rgb 17920 17920 17920 controlPv "$(P)$(M).FOFF" indicatorPv "$(P)$(M).FOFF" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-10.0" endObjectProperties endGroup @@ -4107,14 +4107,14 @@ x 332 y 253 w 100 h 21 -fgColor index 14 -bgColor index 51 -selectColor index 51 -inconsistentColor index 14 -topShadowColor index 0 -botShadowColor index 14 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 +selectColor rgb 29440 57088 65280 +inconsistentColor rgb 0 0 0 +topShadowColor rgb 65280 65280 65280 +botShadowColor rgb 0 0 0 controlPv "$(P)$(M).DIR" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-10.0" orientation "horizontal" endObjectProperties @@ -4128,11 +4128,11 @@ x 159 y 193 w 25 h 22 -fgColor index 14 -onColor index 51 -offColor index 51 -topShadowColor index 0 -botShadowColor index 14 +fgColor rgb 0 0 0 +onColor rgb 29440 57088 65280 +offColor rgb 29440 57088 65280 +topShadowColor rgb 65280 65280 65280 +botShadowColor rgb 0 0 0 controlPv "$(P)$(M).TWF" pressValue "1" releaseValue @@ -4140,7 +4140,7 @@ onLabel ">" offLabel ">" 3d useEnumNumeric -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-12.0" endObjectProperties # (Message Button) @@ -4153,11 +4153,11 @@ x 77 y 193 w 25 h 22 -fgColor index 14 -onColor index 51 -offColor index 51 -topShadowColor index 0 -botShadowColor index 14 +fgColor rgb 0 0 0 +onColor rgb 29440 57088 65280 +offColor rgb 29440 57088 65280 +topShadowColor rgb 65280 65280 65280 +botShadowColor rgb 0 0 0 controlPv "$(P)$(M).TWR" pressValue "1" releaseValue @@ -4165,7 +4165,7 @@ onLabel "<" offLabel "<" 3d useEnumNumeric -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-12.0" endObjectProperties # (Message Button) @@ -4178,11 +4178,11 @@ x 192 y 166 w 45 h 20 -fgColor index 14 -onColor index 51 -offColor index 51 -topShadowColor index 0 -botShadowColor index 14 +fgColor rgb 0 0 0 +onColor rgb 29440 57088 65280 +offColor rgb 29440 57088 65280 +topShadowColor rgb 65280 65280 65280 +botShadowColor rgb 0 0 0 controlPv "$(P)$(M).JOGR" pressValue "1" releaseValue "0" @@ -4190,7 +4190,7 @@ onLabel "JogR" offLabel "JogR" 3d useEnumNumeric -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-12.0" endObjectProperties # (Message Button) @@ -4203,11 +4203,11 @@ x 242 y 166 w 45 h 20 -fgColor index 14 -onColor index 51 -offColor index 51 -topShadowColor index 0 -botShadowColor index 14 +fgColor rgb 0 0 0 +onColor rgb 29440 57088 65280 +offColor rgb 29440 57088 65280 +topShadowColor rgb 65280 65280 65280 +botShadowColor rgb 0 0 0 controlPv "$(P)$(M).JOGF" pressValue "1" releaseValue "0" @@ -4215,7 +4215,7 @@ onLabel "JogF" offLabel "JogF" 3d useEnumNumeric -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-12.0" endObjectProperties # (Message Button) @@ -4228,11 +4228,11 @@ x 242 y 191 w 45 h 20 -fgColor index 14 -onColor index 51 -offColor index 51 -topShadowColor index 0 -botShadowColor index 14 +fgColor rgb 0 0 0 +onColor rgb 29440 57088 65280 +offColor rgb 29440 57088 65280 +topShadowColor rgb 65280 65280 65280 +botShadowColor rgb 0 0 0 controlPv "$(P)$(M).HOMF" pressValue "1" releaseValue @@ -4240,7 +4240,7 @@ onLabel "HomF" offLabel "HomF" 3d useEnumNumeric -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-12.0" endObjectProperties # (Message Button) @@ -4253,11 +4253,11 @@ x 191 y 191 w 45 h 20 -fgColor index 14 -onColor index 51 -offColor index 51 -topShadowColor index 0 -botShadowColor index 14 +fgColor rgb 0 0 0 +onColor rgb 29440 57088 65280 +offColor rgb 29440 57088 65280 +topShadowColor rgb 65280 65280 65280 +botShadowColor rgb 0 0 0 controlPv "$(P)$(M).HOMR" pressValue "1" releaseValue @@ -4265,7 +4265,7 @@ onLabel "HomR" offLabel "HomR" 3d useEnumNumeric -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-12.0" endObjectProperties # (Group) object activeGroupClass @@ -4312,14 +4312,14 @@ x 299 y 171 w 80 h 40 -fgColor index 14 -bgColor index 51 -selectColor index 51 -inconsistentColor index 14 -topShadowColor index 0 -botShadowColor index 14 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 +selectColor rgb 29440 57088 65280 +inconsistentColor rgb 0 0 0 +topShadowColor rgb 65280 65280 65280 +botShadowColor rgb 0 0 0 controlPv "$(P)$(M)_able.VAL" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-10.0" endObjectProperties # (Choice Button) @@ -4332,14 +4332,14 @@ x 384 y 132 w 60 h 80 -fgColor index 31 -bgColor index 20 -selectColor index 20 -inconsistentColor index 31 -topShadowColor index 0 -botShadowColor index 14 +fgColor rgb 63744 55808 15360 +bgColor rgb 64768 0 0 +selectColor rgb 64768 0 0 +inconsistentColor rgb 63744 55808 15360 +topShadowColor rgb 65280 65280 65280 +botShadowColor rgb 0 0 0 controlPv "$(P)$(M).SPMG" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-10.0" endObjectProperties # (Group) object activeGroupClass @@ -4420,14 +4420,14 @@ x 134 y 683 w 94 h 25 -fgColor index 14 -bgColor index 51 -selectColor index 51 -inconsistentColor index 14 -topShadowColor index 0 -botShadowColor index 14 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 +selectColor rgb 29440 57088 65280 +inconsistentColor rgb 0 0 0 +topShadowColor rgb 65280 65280 65280 +botShadowColor rgb 0 0 0 controlPv "$(P)$(M).UEIP" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-10.0" orientation "horizontal" endObjectProperties @@ -4441,14 +4441,14 @@ x 134 y 708 w 94 h 25 -fgColor index 14 -bgColor index 51 -selectColor index 51 -inconsistentColor index 14 -topShadowColor index 0 -botShadowColor index 14 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 +selectColor rgb 29440 57088 65280 +inconsistentColor rgb 0 0 0 +topShadowColor rgb 65280 65280 65280 +botShadowColor rgb 0 0 0 controlPv "$(P)$(M).URIP" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-10.0" orientation "horizontal" endObjectProperties @@ -4462,14 +4462,14 @@ x 320 y 780 w 125 h 20 -fgColor index 14 -bgColor index 51 -selectColor index 51 -inconsistentColor index 14 -topShadowColor index 0 -botShadowColor index 14 +fgColor rgb 0 0 0 +bgColor rgb 29440 57088 65280 +selectColor rgb 29440 57088 65280 +inconsistentColor rgb 0 0 0 +topShadowColor rgb 65280 65280 65280 +botShadowColor rgb 0 0 0 controlPv "$(P)$(M).CNEN" -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-10.0" orientation "horizontal" endObjectProperties # (Group) @@ -4534,11 +4534,11 @@ x 265 y 534 w 60 h 20 -fgColor index 0 -onColor index 54 -offColor index 54 -topShadowColor index 0 -botShadowColor index 14 +fgColor rgb 65280 65280 65280 +onColor rgb 2560 0 47104 +offColor rgb 2560 0 47104 +topShadowColor rgb 65280 65280 65280 +botShadowColor rgb 0 0 0 controlPv "$(P)$(M).STUP" pressValue "1" releaseValue @@ -4546,7 +4546,7 @@ onLabel "STATUS" offLabel "STATUS" 3d useEnumNumeric -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-12.0" endObjectProperties # (Group) object activeGroupClass @@ -4576,10 +4576,10 @@ x 346 y 558 w 93 h 18 -fgColor index 54 -bgColor index 3 -topShadowColor index 2 -botShadowColor index 12 +fgColor rgb 2560 0 47104 +bgColor rgb 51200 51200 51200 +topShadowColor rgb 55808 55808 55808 +botShadowColor rgb 17920 17920 17920 font "helvetica-bold-r-12.0" icon invisible @@ -4609,11 +4609,11 @@ x 193 y 852 w 40 h 20 -fgColor index 0 -bgColor index 17 -topShadowColor index 2 -botShadowColor index 12 -font "helvetica-bold-r-12.0" +fgColor rgb 65280 65280 65280 +bgColor rgb 13056 39168 0 +topShadowColor rgb 55808 55808 55808 +botShadowColor rgb 17920 17920 17920 +font "helvetica-medium-r-12.0" buttonLabel "More" numPvs 10 numDsps 5 @@ -4669,11 +4669,11 @@ x 111 y 852 w 40 h 20 -fgColor index 30 -onColor index 20 -offColor index 20 -topShadowColor index 0 -botShadowColor index 14 +fgColor rgb 64256 62208 18944 +onColor rgb 64768 0 0 +offColor rgb 64768 0 0 +topShadowColor rgb 65280 65280 65280 +botShadowColor rgb 0 0 0 controlPv "$(P)allstop.VAL" pressValue "1" releaseValue @@ -4681,7 +4681,7 @@ onLabel "Abort" offLabel "Abort" 3d useEnumNumeric -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-12.0" endObjectProperties # (Message Button) @@ -4694,11 +4694,11 @@ x 62 y 852 w 21 h 20 -fgColor index 14 -onColor index 51 -offColor index 51 -topShadowColor index 0 -botShadowColor index 14 +fgColor rgb 0 0 0 +onColor rgb 29440 57088 65280 +offColor rgb 29440 57088 65280 +topShadowColor rgb 65280 65280 65280 +botShadowColor rgb 0 0 0 controlPv "$(P)$(M):scanParms.LOAD" pressValue "1" releaseValue @@ -4706,7 +4706,7 @@ onLabel "Ld" offLabel "Ld" 3d useEnumNumeric -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-12.0" endObjectProperties # (Message Button) @@ -4719,11 +4719,11 @@ x 86 y 852 w 21 h 20 -fgColor index 14 -onColor index 51 -offColor index 51 -topShadowColor index 0 -botShadowColor index 14 +fgColor rgb 0 0 0 +onColor rgb 29440 57088 65280 +offColor rgb 29440 57088 65280 +topShadowColor rgb 65280 65280 65280 +botShadowColor rgb 0 0 0 controlPv "$(P)$(M):scanParms.GO" pressValue "1" releaseValue @@ -4731,7 +4731,7 @@ onLabel "Go" offLabel "Go" 3d useEnumNumeric -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-12.0" endObjectProperties # (Message Button) @@ -4744,11 +4744,11 @@ x 331 y 228 w 60 h 20 -fgColor index 0 -onColor index 54 -offColor index 54 -topShadowColor index 0 -botShadowColor index 14 +fgColor rgb 65280 65280 65280 +onColor rgb 2560 0 47104 +offColor rgb 2560 0 47104 +topShadowColor rgb 65280 65280 65280 +botShadowColor rgb 0 0 0 controlPv "$(P)$(M).SYNC" pressValue "1" releaseValue @@ -4756,6 +4756,6 @@ onLabel "SYNC" offLabel "SYNC" 3d useEnumNumeric -font "helvetica-bold-r-12.0" +font "helvetica-medium-r-12.0" endObjectProperties diff --git a/motorApp/op/opi/autoconvert/motorx_all.opi b/motorApp/op/opi/autoconvert/motorx_all.opi index da0c99f1d..bad0c55af 100644 --- a/motorApp/op/opi/autoconvert/motorx_all.opi +++ b/motorApp/op/opi/autoconvert/motorx_all.opi @@ -29,7 +29,7 @@ Display 450 188 - 29 + 31 false @@ -54,7 +54,64 @@ 100.0 - Default + Default + + false + + + + false + 26 + true + + + + 0 + 0 + Rectangle + + + + + true + true + false + + + $(pv_name) +$(pv_value) + false + true + Rectangle + 450 + 0 + 0 + + + + false + 255 + true + false + + + + + + + false + + + + 0 + 1 + true + + + + 100.0 + + Default false @@ -121,7 +178,7 @@ $(pv_value) 100.0 - Default + Default false @@ -178,7 +235,7 @@ $(pv_value) 100.0 - Default + Default false @@ -235,7 +292,7 @@ $(pv_value) 100.0 - Default + Default false @@ -292,7 +349,7 @@ $(pv_value) 0.0 - Default + Default false @@ -359,7 +416,7 @@ $(pv_value) 0.0 - Default + Default false @@ -426,7 +483,7 @@ $(pv_value) 100.0 - Default + Default false @@ -469,63 +526,6 @@ $(pv_value) 81 100 - - - false - 255 - true - false - - - - - - - false - - - - 0 - 1 - true - - - - 100.0 - - Default - - false - - - - false - 26 - true - - - - 0 - 0 - Rectangle - - - - - true - true - false - - - $(pv_name) -$(pv_value) - false - true - Rectangle - 450 - 0 - 0 - false @@ -550,7 +550,7 @@ $(pv_value) 0.0 - Default + Default false @@ -617,7 +617,7 @@ $(pv_value) 0.0 - Default + Default false @@ -684,7 +684,7 @@ $(pv_value) 100.0 - Default + Default false @@ -741,7 +741,7 @@ $(pv_value) 100.0 - Default + Default false @@ -798,7 +798,7 @@ $(pv_value) 100.0 - Default + Default false @@ -855,7 +855,7 @@ $(pv_value) 0.0 - Default + Default false @@ -911,7 +911,7 @@ $(pv_value) true false - Default + Default @@ -953,7 +953,7 @@ $(pv_value) 1 true - Default + Default false @@ -998,7 +998,7 @@ $(pv_value) true - + false @@ -1057,7 +1057,7 @@ $(pv_value) true false - Default + Default @@ -1107,7 +1107,7 @@ $(pv_value) 0.0 - Default + Default false @@ -1174,7 +1174,7 @@ $(pv_value) 0.0 - Default + Default false @@ -1231,7 +1231,7 @@ $(pv_value) true false - Default + Default @@ -1270,7 +1270,7 @@ $(pv_value) 1 true - + @@ -1310,7 +1310,7 @@ $(pv_value) 1 true - + @@ -1350,7 +1350,7 @@ $(pv_value) 1 true - + @@ -1390,7 +1390,7 @@ $(pv_value) 1 true - + @@ -1430,7 +1430,7 @@ $(pv_value) 1 true - + @@ -1470,7 +1470,7 @@ $(pv_value) 1 true - + @@ -1511,7 +1511,7 @@ $(pv_value) true false - Default + Default @@ -1550,7 +1550,7 @@ $(pv_value) 1 true - + @@ -1590,7 +1590,7 @@ $(pv_value) 1 true - + @@ -1638,7 +1638,7 @@ $(pv_value) true 100.0 - Default + Default false @@ -1686,7 +1686,7 @@ $(pv_value) true false - Default + Default @@ -1725,7 +1725,7 @@ $(pv_value) 1 true - + @@ -1765,7 +1765,7 @@ $(pv_value) 1 true - + @@ -1813,7 +1813,7 @@ $(pv_value) true 100.0 - Default + Default false @@ -1861,7 +1861,7 @@ $(pv_value) true false - Default + Default @@ -1900,7 +1900,7 @@ $(pv_value) 1 true - + @@ -1940,7 +1940,7 @@ $(pv_value) 1 true - + @@ -1988,7 +1988,7 @@ $(pv_value) true 100.0 - Default + Default false @@ -2036,7 +2036,7 @@ $(pv_value) true false - Default + Default @@ -2075,7 +2075,7 @@ $(pv_value) 1 true - + @@ -2115,7 +2115,7 @@ $(pv_value) 1 true - + @@ -2163,7 +2163,7 @@ $(pv_value) true 100.0 - Default + Default false @@ -2211,7 +2211,7 @@ $(pv_value) true false - Default + Default @@ -2250,7 +2250,7 @@ $(pv_value) 1 true - + @@ -2290,7 +2290,7 @@ $(pv_value) 1 true - + @@ -2338,7 +2338,7 @@ $(pv_value) true 100.0 - Default + Default false @@ -2386,7 +2386,7 @@ $(pv_value) true false - Default + Default @@ -2425,7 +2425,7 @@ $(pv_value) 1 true - + @@ -2465,7 +2465,7 @@ $(pv_value) 1 true - + @@ -2513,7 +2513,7 @@ $(pv_value) true 100.0 - Default + Default false @@ -2561,7 +2561,7 @@ $(pv_value) true false - Default + Default @@ -2600,7 +2600,7 @@ $(pv_value) 1 true - + @@ -2640,7 +2640,7 @@ $(pv_value) 1 true - + @@ -2688,7 +2688,7 @@ $(pv_value) true 100.0 - Default + Default false @@ -2736,7 +2736,7 @@ $(pv_value) true false - Default + Default @@ -2779,7 +2779,7 @@ $(pv_value) true - + false @@ -2837,7 +2837,7 @@ $(pv_value) 1 true - + @@ -2877,7 +2877,7 @@ $(pv_value) 1 true - + @@ -2918,7 +2918,7 @@ $(pv_value) 1 true - + @@ -2958,7 +2958,7 @@ $(pv_value) 1 true - + @@ -2998,7 +2998,7 @@ $(pv_value) 1 true - + @@ -3038,7 +3038,7 @@ $(pv_value) 1 true - + @@ -3086,7 +3086,7 @@ $(pv_value) true 100.0 - Default + Default false @@ -3137,7 +3137,7 @@ $(pv_value) true - + false @@ -3199,7 +3199,7 @@ $(pv_value) true - + false @@ -3257,7 +3257,7 @@ $(pv_value) 1 true - + @@ -3297,7 +3297,7 @@ $(pv_value) 1 true - + @@ -3337,7 +3337,7 @@ $(pv_value) 1 true - + @@ -3377,7 +3377,7 @@ $(pv_value) 1 true - + @@ -3417,7 +3417,7 @@ $(pv_value) 1 true - + @@ -3461,7 +3461,7 @@ $(pv_value) true - + false @@ -3523,7 +3523,7 @@ $(pv_value) true - + false @@ -3585,7 +3585,7 @@ $(pv_value) true - + false @@ -3647,7 +3647,7 @@ $(pv_value) true - + false @@ -3709,7 +3709,7 @@ $(pv_value) true - + false @@ -3771,7 +3771,7 @@ $(pv_value) true - + false @@ -3829,7 +3829,7 @@ $(pv_value) 1 true - + @@ -3871,7 +3871,7 @@ $(pv_value) 1 true - Default + Default false @@ -3919,7 +3919,7 @@ $(pv_value) 1 true - + @@ -3959,7 +3959,7 @@ $(pv_value) 1 true - + @@ -4001,7 +4001,7 @@ $(pv_value) 1 true - Default + Default false @@ -4053,7 +4053,7 @@ $(pv_value) true - + false @@ -4115,7 +4115,7 @@ $(pv_value) true - + false @@ -4181,7 +4181,7 @@ $(pv_value) true 100.0 - Default + Default false @@ -4228,7 +4228,7 @@ $(pv_value) 1 true - + @@ -4268,7 +4268,7 @@ $(pv_value) 1 true - + @@ -4308,7 +4308,7 @@ $(pv_value) 1 true - + @@ -4363,13 +4363,13 @@ $(pv_value) true - + false - 1 + 4 20 0 false @@ -4421,7 +4421,7 @@ $(pv_value) 1 true - + @@ -4461,7 +4461,7 @@ $(pv_value) 1 true - + @@ -4521,7 +4521,7 @@ $(pv_value) 1 true - Default + Default false @@ -4574,7 +4574,7 @@ $(pv_value) 1 true - Default + Default false @@ -4621,7 +4621,7 @@ $(pv_value) true - + false @@ -4696,7 +4696,7 @@ $(pv_value) 1 true - Default + Default false @@ -4756,7 +4756,7 @@ $(pv_value) 1 true - Default + Default false @@ -4803,7 +4803,7 @@ $(pv_value) true - + false @@ -4871,7 +4871,7 @@ $(pv_value) 1 true - Default + Default false @@ -4924,7 +4924,7 @@ $(pv_value) 1 true - Default + Default false @@ -4967,7 +4967,7 @@ $(pv_value) 1 true - + @@ -5007,7 +5007,7 @@ $(pv_value) 1 true - + @@ -5047,7 +5047,7 @@ $(pv_value) 1 true - + @@ -5100,7 +5100,7 @@ $(pv_value) 1 true - + false @@ -5151,7 +5151,7 @@ $(pv_value) 1 true - + false @@ -5203,7 +5203,7 @@ $(pv_value) true - + false @@ -5265,7 +5265,7 @@ $(pv_value) true - + false @@ -5327,7 +5327,7 @@ $(pv_value) true - + false @@ -5389,7 +5389,7 @@ $(pv_value) true - + false @@ -5451,7 +5451,7 @@ $(pv_value) true - + false @@ -5513,7 +5513,7 @@ $(pv_value) true - + false @@ -5582,7 +5582,7 @@ $(pv_value) 100.0 - Default + Default false @@ -5649,7 +5649,7 @@ $(pv_value) 100.0 - Default + Default false @@ -5705,7 +5705,7 @@ $(pv_value) 1 true - + @@ -5755,7 +5755,7 @@ $(pv_value) 1 true - + @@ -5798,7 +5798,7 @@ $(pv_value) 1 true - + false @@ -5848,7 +5848,7 @@ $(pv_value) 1 true - Default + Default false @@ -5900,7 +5900,7 @@ $(pv_value) true - + false @@ -5958,7 +5958,7 @@ $(pv_value) 1 true - + @@ -6012,13 +6012,13 @@ $(pv_value) true - + false - 1 + 4 27 0 false @@ -6078,7 +6078,7 @@ $(pv_value) true 100.0 - Default + Default false @@ -6125,7 +6125,7 @@ $(pv_value) 1 true - + @@ -6168,13 +6168,13 @@ $(pv_value) 1 true - + false - 1 + 4 14 1 Text Update @@ -6219,7 +6219,7 @@ $(pv_value) 1 true - + false @@ -6267,7 +6267,7 @@ $(pv_value) 1 true - + @@ -6319,7 +6319,7 @@ $(pv_value) 1 true - Default + Default false @@ -6367,7 +6367,7 @@ $(pv_value) 1 true - + @@ -6407,7 +6407,7 @@ $(pv_value) 1 true - + @@ -6466,7 +6466,7 @@ $(pv_value) true 100.0 - Default + Default false @@ -6521,7 +6521,7 @@ $(pv_value) true 100.0 - Default + Default false @@ -6568,7 +6568,7 @@ $(pv_value) 1 true - + @@ -6608,7 +6608,7 @@ $(pv_value) 1 true - + @@ -6648,7 +6648,7 @@ $(pv_value) 1 true - + @@ -6696,7 +6696,7 @@ $(pv_value) true 100.0 - Default + Default false @@ -6743,7 +6743,7 @@ $(pv_value) 1 true - + @@ -6783,7 +6783,7 @@ $(pv_value) 1 true - + @@ -6823,7 +6823,7 @@ $(pv_value) 1 true - + @@ -6863,7 +6863,7 @@ $(pv_value) 1 true - + @@ -6903,7 +6903,7 @@ $(pv_value) 1 true - + @@ -6943,7 +6943,7 @@ $(pv_value) 1 true - + @@ -6983,7 +6983,7 @@ $(pv_value) 1 true - + @@ -7023,7 +7023,7 @@ $(pv_value) 1 true - + @@ -7067,7 +7067,7 @@ $(pv_value) true - + false @@ -7129,7 +7129,7 @@ $(pv_value) true - + false @@ -7191,7 +7191,7 @@ $(pv_value) true - + false @@ -7253,7 +7253,7 @@ $(pv_value) true - + false @@ -7311,7 +7311,7 @@ $(pv_value) 1 true - + @@ -7354,7 +7354,7 @@ $(pv_value) 1 true - + false @@ -7402,7 +7402,7 @@ $(pv_value) 1 true - + @@ -7445,7 +7445,7 @@ $(pv_value) 1 true - + false @@ -7493,7 +7493,7 @@ $(pv_value) 1 true - + @@ -7536,7 +7536,7 @@ $(pv_value) 1 true - + false @@ -7587,7 +7587,7 @@ $(pv_value) 1 true - + false @@ -7635,7 +7635,7 @@ $(pv_value) 1 true - + @@ -7675,7 +7675,7 @@ $(pv_value) 1 true - + @@ -7715,7 +7715,7 @@ $(pv_value) 1 true - + @@ -7755,7 +7755,7 @@ $(pv_value) 1 true - + @@ -7795,7 +7795,7 @@ $(pv_value) 1 true - + @@ -7838,7 +7838,7 @@ $(pv_value) 1 true - + false @@ -7886,7 +7886,7 @@ $(pv_value) 1 true - + @@ -7929,7 +7929,7 @@ $(pv_value) 1 true - + false @@ -7980,7 +7980,7 @@ $(pv_value) 1 true - + false @@ -8031,7 +8031,7 @@ $(pv_value) 1 true - + false @@ -8082,7 +8082,7 @@ $(pv_value) 1 true - + false @@ -8132,7 +8132,7 @@ $(pv_value) 1 true - Default + Default false @@ -8182,7 +8182,7 @@ $(pv_value) 1 true - Default + Default false @@ -8234,7 +8234,7 @@ $(pv_value) true - + false @@ -8292,7 +8292,7 @@ $(pv_value) 1 true - + @@ -8335,7 +8335,7 @@ $(pv_value) 1 true - + false @@ -8383,7 +8383,7 @@ $(pv_value) 1 true - + @@ -8427,7 +8427,7 @@ $(pv_value) true - + false @@ -8485,7 +8485,7 @@ $(pv_value) 1 true - + @@ -8528,7 +8528,7 @@ $(pv_value) 1 true - + false @@ -8580,7 +8580,7 @@ $(pv_value) true - + false @@ -8642,7 +8642,7 @@ $(pv_value) true - + false @@ -8700,7 +8700,7 @@ $(pv_value) 1 true - + @@ -8742,7 +8742,7 @@ $(pv_value) 1 true - Default + Default false @@ -8790,7 +8790,7 @@ $(pv_value) 1 true - + @@ -8830,7 +8830,7 @@ $(pv_value) 1 true - + @@ -8870,7 +8870,7 @@ $(pv_value) 1 true - + @@ -8910,7 +8910,7 @@ $(pv_value) 1 true - + @@ -8960,7 +8960,7 @@ $(pv_value) 1 true - Default + Default false @@ -9006,7 +9006,7 @@ $(pv_value) 1 true - + true @@ -9062,7 +9062,7 @@ $(pv_value) true 100.0 - Default + Default false @@ -9117,7 +9117,7 @@ $(pv_value) true 100.0 - Default + Default false @@ -9164,7 +9164,7 @@ $(pv_value) 1 true - + @@ -9204,7 +9204,7 @@ $(pv_value) 1 true - + @@ -9244,7 +9244,7 @@ $(pv_value) 1 true - + @@ -9284,7 +9284,7 @@ $(pv_value) 1 true - + @@ -9332,7 +9332,7 @@ $(pv_value) true 100.0 - Default + Default false @@ -9387,7 +9387,7 @@ $(pv_value) true 100.0 - Default + Default false @@ -9438,7 +9438,7 @@ $(pv_value) true - + false @@ -9500,7 +9500,7 @@ $(pv_value) true - + false @@ -9562,7 +9562,7 @@ $(pv_value) true - + false @@ -9628,7 +9628,7 @@ $(pv_value) true 100.0 - Default + Default false @@ -9675,7 +9675,7 @@ $(pv_value) 1 true - + @@ -9719,7 +9719,7 @@ $(pv_value) true - + false @@ -9777,7 +9777,7 @@ $(pv_value) 1 true - + @@ -9821,7 +9821,7 @@ $(pv_value) true - + false @@ -9890,7 +9890,7 @@ $(pv_value) 1 true - Default + Default false @@ -9933,7 +9933,7 @@ $(pv_value) 1 true - + @@ -9983,7 +9983,7 @@ $(pv_value) 1 true - + @@ -10079,7 +10079,7 @@ $(pv_value) 1 true - Default + Default false @@ -10130,7 +10130,7 @@ $(pv_value) 1 true - Default + Default false @@ -10173,7 +10173,7 @@ $(pv_value) 1 true - + @@ -10223,7 +10223,7 @@ $(pv_value) 1 true - Default + Default false @@ -10276,7 +10276,7 @@ $(pv_value) 1 true - Default + Default false @@ -10319,7 +10319,7 @@ $(pv_value) 1 true - + @@ -10369,7 +10369,7 @@ $(pv_value) 1 true - Default + Default false diff --git a/motorApp/op/ui/autoconvert/motorx_all.ui b/motorApp/op/ui/autoconvert/motorx_all.ui index b8582ae95..32813053e 100644 --- a/motorApp/op/ui/autoconvert/motorx_all.ui +++ b/motorApp/op/ui/autoconvert/motorx_all.ui @@ -5,7 +5,7 @@ 188 - 29 + 31 450 875 @@ -14,7 +14,6 @@ QWidget#centralWidget {background: rgba(200, 200, 200, 255);} -QPushButton::menu-indicator {image: url(none.png); width: 0} caTable { font: 10pt; @@ -108,6 +107,39 @@ border-radius: 2px; + + caGraphics::Rectangle + + + + 0 + 0 + 450 + 26 + + + + + 236 + 236 + 236 + + + + Filled + + + + 236 + 236 + 236 + + + + Solid + + + caGraphics::Rectangle @@ -149,7 +181,7 @@ border-radius: 2px; $(P)$(M)_able.VAL - + caGraphics::Rectangle @@ -363,7 +395,7 @@ border-radius: 2px; Solid - 1,1;448,1; + 448,1; @@ -1358,10 +1390,10 @@ border-radius: 2px; Solid - 1,1;448,1; + 448,1; - + caGraphics::Rectangle @@ -1562,10 +1594,10 @@ border-radius: 2px; caLineEdit::Static - decimal + string - + caGraphics::Rectangle @@ -1676,7 +1708,7 @@ border-radius: 2px; - + caGraphics::Rectangle @@ -1722,7 +1754,7 @@ border-radius: 2px; $(P)$(M).HOMF - + caGraphics::Rectangle @@ -2767,7 +2799,7 @@ border-radius: 2px; 24 - + caGraphics::Rectangle @@ -2813,7 +2845,7 @@ border-radius: 2px; $(P)$(M).SET - + caGraphics::Rectangle @@ -3206,7 +3238,7 @@ border-radius: 2px; caChoice::Static - + caGraphics::Rectangle @@ -3341,39 +3373,6 @@ border-radius: 2px; - - - caGraphics::Rectangle - - - - 0 - 0 - 450 - 26 - - - - - 236 - 236 - 236 - - - - Filled - - - - 236 - 236 - 236 - - - - Solid - - @@ -3422,7 +3421,7 @@ border-radius: 2px; caLineEdit::Static - decimal + string @@ -3462,7 +3461,7 @@ border-radius: 2px; Solid - 1,1;447,1; + 447,1; @@ -3549,7 +3548,7 @@ border-radius: 2px; 1.0 - decimal + string caLineEdit::Static @@ -3796,7 +3795,7 @@ border-radius: 2px; Solid - 0,0;0,187; + 0,187; @@ -3833,7 +3832,7 @@ border-radius: 2px; Solid - 0,0;0,187; + 0,187; @@ -3947,7 +3946,7 @@ border-radius: 2px; Solid - 0,0;22,0; + 22,0; @@ -4062,7 +4061,7 @@ border-radius: 2px; Solid - 0,0;22,0; + 22,0; @@ -4177,7 +4176,7 @@ border-radius: 2px; Solid - 0,0;22,0; + 22,0; @@ -4400,7 +4399,7 @@ border-radius: 2px; Solid - 0,0;22,0; + 22,0; @@ -4533,7 +4532,7 @@ border-radius: 2px; Solid - 2,1;1,345; + 1,345; @@ -6609,7 +6608,7 @@ border-radius: 2px; Solid - 0,0;22,0; + 22,0; @@ -6724,7 +6723,7 @@ border-radius: 2px; Solid - 0,0;22,0; + 22,0; @@ -6839,7 +6838,7 @@ border-radius: 2px; Solid - 0,0;22,0; + 22,0; @@ -7178,7 +7177,7 @@ border-radius: 2px; Solid - 1,1;448,1; + 448,1; @@ -7251,7 +7250,7 @@ border-radius: 2px; Solid - 1,1;448,1; + 448,1; @@ -7432,7 +7431,7 @@ border-radius: 2px; Solid - 0,0;0,55; + 0,55; @@ -7469,7 +7468,7 @@ border-radius: 2px; Solid - 0,0;0,55; + 0,55; @@ -7695,7 +7694,7 @@ border-radius: 2px; Solid - 1,2;259,1; + 259,1; @@ -8319,6 +8318,7 @@ border-radius: 2px; caRectangle_0 caRectangle_1 + caRectangle_2 caLabel_0 caLabel_1 caLabel_2 @@ -8334,23 +8334,23 @@ border-radius: 2px; caFrame_0 caLabel_11 caPolyLine_1 - caRectangle_2 + caRectangle_3 caLabel_12 caLabel_13 caLabel_14 - caRectangle_3 + caRectangle_4 caLabel_15 caLabel_16 - caRectangle_4 caRectangle_5 + caRectangle_6 caLabel_17 caLabel_18 caLabel_19 caGraphics_0 caGraphics_1 caLabel_20 - caRectangle_6 caRectangle_7 + caRectangle_8 caFrame_1 caLabel_21 caLabel_22 @@ -8360,9 +8360,8 @@ border-radius: 2px; caLabel_26 caFrame_2 caLabel_27 - caRectangle_8 - caLabel_28 caRectangle_9 + caLabel_28 caPolyLine_2 caLabel_29 caLabel_30 From c18f7b1ee95d587a75b5aaac6d37ea145b0c73e2 Mon Sep 17 00:00:00 2001 From: Kevin Peterson Date: Fri, 19 May 2023 08:35:09 -0500 Subject: [PATCH 14/29] Removed prop(YES) from fields in motorRecord.dbd that didn't need it; added comments to the ones that do. --- motorApp/MotorSrc/motorRecord.dbd | 64 +++++++------------------------ 1 file changed, 13 insertions(+), 51 deletions(-) diff --git a/motorApp/MotorSrc/motorRecord.dbd b/motorApp/MotorSrc/motorRecord.dbd index 0a2ea8c9f..b7ee5df32 100644 --- a/motorApp/MotorSrc/motorRecord.dbd +++ b/motorApp/MotorSrc/motorRecord.dbd @@ -90,7 +90,6 @@ recordtype(motor) { prompt("User Offset (EGU)") special(SPC_MOD) pp(TRUE) - prop(YES) } field(FOFF,DBF_MENU) { asl(ASL0) @@ -143,42 +142,38 @@ recordtype(motor) { promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) - prop(YES) } field(VBAS,DBF_DOUBLE) { prompt("Base Velocity (EGU/s)") promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) - prop(YES) + prop(YES) # get_graphic_double, get_control_double } field(VMAX,DBF_DOUBLE) { prompt("Max. Velocity (EGU/s)") promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) - prop(YES) + prop(YES) # get_graphic_double, get_control_double } field(S,DBF_DOUBLE) { prompt("Speed (revolutions/sec)") promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) - prop(YES) } field(SBAS,DBF_DOUBLE) { prompt("Base Speed (RPS)") promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) - prop(YES) } field(SMAX,DBF_DOUBLE) { prompt("Max. Speed (RPS)") promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) - prop(YES) } field(ACCL,DBF_DOUBLE) { prompt("Seconds to Velocity") @@ -186,7 +181,6 @@ recordtype(motor) { special(SPC_MOD) interest(1) initial("0.2") - prop(YES) } field(BDST,DBF_DOUBLE) { prompt("BL Distance (EGU)") @@ -194,21 +188,18 @@ recordtype(motor) { promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) - prop(YES) } field(BVEL,DBF_DOUBLE) { prompt("BL Velocity (EGU/s)") promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) - prop(YES) } field(SBAK,DBF_DOUBLE) { prompt("BL Speed (RPS)") promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) - prop(YES) } field(BACC,DBF_DOUBLE) { prompt("BL Seconds to Velocity") @@ -216,7 +207,6 @@ recordtype(motor) { special(SPC_MOD) interest(1) initial("0.5") - prop(YES) } field(FRAC,DBF_FLOAT) { prompt("Move Fraction") @@ -224,7 +214,6 @@ recordtype(motor) { special(SPC_MOD) interest(1) initial("1") - prop(YES) } field(OUT,DBF_OUTLINK) { prompt("Output Specification") @@ -275,7 +264,6 @@ recordtype(motor) { special(SPC_MOD) pp(TRUE) interest(1) - prop(YES) } field(MRES,DBF_DOUBLE) { prompt("Motor Step Size (EGU)") @@ -283,7 +271,7 @@ recordtype(motor) { special(SPC_MOD) pp(TRUE) interest(1) - prop(YES) + prop(YES) # get_graphic_double, get_control_double } field(ERES,DBF_DOUBLE) { prompt("Encoder Step Size (EGU)") @@ -291,13 +279,11 @@ recordtype(motor) { special(SPC_MOD) pp(TRUE) interest(1) - prop(YES) } field(RRES,DBF_DOUBLE) { prompt("Readback Step Size (EGU") promptgroup(GUI_COMMON) interest(1) - prop(YES) } field(UEIP,DBF_MENU) { prompt("Use Encoder If Present") @@ -319,13 +305,14 @@ recordtype(motor) { prompt("Display Precision") promptgroup(GUI_COMMON) interest(1) - prop(YES) + prop(YES) # get_precision } field(EGU,DBF_STRING) { prompt("Engineering Units") promptgroup(GUI_COMMON) interest(1) size(16) + prop(YES) # get_units } field(RHLM,DBF_DOUBLE) { prompt("Raw High Limit") @@ -343,39 +330,37 @@ recordtype(motor) { prompt("User High Limit") special(SPC_MOD) pp(TRUE) - prop(YES) + prop(YES) # get_graphic_double, get_control_double } field(LLM,DBF_DOUBLE) { prompt("User Low Limit") special(SPC_MOD) pp(TRUE) - prop(YES) + prop(YES) # get_graphic_double, get_control_double } field(DHLM,DBF_DOUBLE) { prompt("Dial High Limit") promptgroup(GUI_COMMON) special(SPC_MOD) pp(TRUE) - prop(YES) + prop(YES) # get_graphic_double, get_control_double } field(DLLM,DBF_DOUBLE) { prompt("Dial Low Limit") promptgroup(GUI_COMMON) special(SPC_MOD) pp(TRUE) - prop(YES) + prop(YES) # get_graphic_double, get_control_double } field(HOPR,DBF_DOUBLE) { prompt("High Operating Range") promptgroup(GUI_COMMON) interest(1) - prop(YES) } field(LOPR,DBF_DOUBLE) { prompt("Low Operating Range") promptgroup(GUI_COMMON) interest(1) - prop(YES) } field(HLS,DBF_SHORT) { prompt("User High Limit Switch") @@ -398,28 +383,28 @@ recordtype(motor) { promptgroup(GUI_COMMON) pp(TRUE) interest(2) - prop(YES) + prop(YES) # get_alarm_double } field(LOLO,DBF_DOUBLE) { prompt("Lolo Alarm Limit (EGU)") promptgroup(GUI_COMMON) pp(TRUE) interest(2) - prop(YES) + prop(YES) # get_alarm_double } field(HIGH,DBF_DOUBLE) { prompt("High Alarm Limit (EGU)") promptgroup(GUI_COMMON) pp(TRUE) interest(2) - prop(YES) + prop(YES) # get_alarm_double } field(LOW,DBF_DOUBLE) { prompt("Low Alarm Limit (EGU)") promptgroup(GUI_COMMON) pp(TRUE) interest(2) - prop(YES) + prop(YES) # get_alarm_double } field(HHSV,DBF_MENU) { prompt("Hihi Severity") @@ -461,14 +446,12 @@ recordtype(motor) { promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) - prop(YES) } field(SPDB,DBF_DOUBLE) { prompt("Setpoint Deadband (EGU)") promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) - prop(YES) } field(RCNT,DBF_SHORT) { prompt("Retry count") @@ -552,33 +535,28 @@ recordtype(motor) { prompt("Tweak Step Size (EGU)") promptgroup(GUI_COMMON) interest(1) - prop(YES) } field(VAL,DBF_DOUBLE) { asl(ASL0) prompt("User Desired Value (EGU") special(SPC_MOD) pp(TRUE) - prop(YES) } field(LVAL,DBF_DOUBLE) { prompt("Last User Des Val (EGU)") special(SPC_NOMOD) interest(1) - prop(YES) } field(DVAL,DBF_DOUBLE) { asl(ASL0) prompt("Dial Desired Value (EGU") special(SPC_MOD) pp(TRUE) - prop(YES) } field(LDVL,DBF_DOUBLE) { prompt("Last Dial Des Val (EGU)") special(SPC_NOMOD) interest(1) - prop(YES) } field(RVAL,DBF_LONG) { asl(ASL0) @@ -596,28 +574,23 @@ recordtype(motor) { prompt("Relative Value (EGU)") special(SPC_MOD) pp(TRUE) - prop(YES) } field(LRLV,DBF_DOUBLE) { prompt("Last Rel Value (EGU)") special(SPC_NOMOD) interest(1) - prop(YES) } field(RBV,DBF_DOUBLE) { prompt("User Readback Value") special(SPC_NOMOD) - prop(YES) } field(DRBV,DBF_DOUBLE) { prompt("Dial Readback Value") special(SPC_NOMOD) - prop(YES) } field(DIFF,DBF_DOUBLE) { prompt("Difference dval-drbv") special(SPC_NOMOD) - prop(YES) } field(RDIF,DBF_LONG) { prompt("Difference rval-rrbv") @@ -699,7 +672,6 @@ recordtype(motor) { promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) - prop(YES) } field(CBAK,DBF_NOACCESS) { prompt("Callback structure") @@ -714,7 +686,6 @@ recordtype(motor) { special(SPC_MOD) interest(1) initial("0") - prop(YES) } field(ICOF,DBF_DOUBLE) { promptgroup(GUI_COMMON) @@ -722,7 +693,6 @@ recordtype(motor) { special(SPC_MOD) interest(1) initial("0") - prop(YES) } field(DCOF,DBF_DOUBLE) { promptgroup(GUI_COMMON) @@ -730,7 +700,6 @@ recordtype(motor) { special(SPC_MOD) interest(1) initial("0") - prop(YES) } field(CNEN,DBF_MENU) { asl(ASL0) @@ -781,14 +750,12 @@ recordtype(motor) { promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) - prop(YES) } field(JAR,DBF_DOUBLE) { prompt("Jog Accel. (EGU/s^2)") promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) - prop(YES) } field(LOCK,DBF_MENU) { prompt("Soft Channel Position Lock") @@ -816,7 +783,6 @@ recordtype(motor) { promptgroup(GUI_COMMON) special(SPC_MOD) interest(1) - prop(YES) } field(STUP,DBF_MENU) { asl(ASL0) @@ -839,25 +805,21 @@ recordtype(motor) { prompt("Archive Deadband") promptgroup(GUI_COMMON) interest(1) - prop(YES) } field(MDEL,DBF_DOUBLE) { prompt("Monitor Deadband") promptgroup(GUI_COMMON) interest(1) - prop(YES) } field(ALST,DBF_DOUBLE) { prompt("Last Value Archived") special(SPC_NOMOD) interest(3) - prop(YES) } field(MLST,DBF_DOUBLE) { prompt("Last Val Monitored") special(SPC_NOMOD) interest(3) - prop(YES) } field(SYNC,DBF_SHORT) { prompt("Sync position") From 7291b5569be4084831fca363673acb5a9d59ac2b Mon Sep 17 00:00:00 2001 From: Kevin Peterson Date: Fri, 19 May 2023 15:50:09 -0500 Subject: [PATCH 15/29] Improved ACCS initialization. Update ACCS or ACCL (determined by ACCU) when VBAS (or SBAS) changes. --- motorApp/MotorSrc/motorRecord.cc | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/motorApp/MotorSrc/motorRecord.cc b/motorApp/MotorSrc/motorRecord.cc index cf98e10b7..58fd459cb 100644 --- a/motorApp/MotorSrc/motorRecord.cc +++ b/motorApp/MotorSrc/motorRecord.cc @@ -2629,6 +2629,7 @@ static long special(DBADDR *paddr, int after) pmr->sbas = temp_dbl; db_post_events(pmr, &pmr->sbas, DBE_VAL_LOG); } + updateACCL_ACCSfromVELO(pmr); break; /* new sbas: make vbas agree */ @@ -2644,6 +2645,7 @@ static long special(DBADDR *paddr, int after) pmr->vbas = temp_dbl; db_post_events(pmr, &pmr->vbas, DBE_VAL_LOG); } + updateACCL_ACCSfromVELO(pmr); break; /* new vmax: make smax agree */ @@ -2734,7 +2736,11 @@ static long special(DBADDR *paddr, int after) /* new accs */ case motorRecordACCS: - db_post_events(pmr, &pmr->accs, DBE_VAL_LOG); + if (pmr->accs <= 0.0) + { + updateACCSfromACCL(pmr); + } + //db_post_events(pmr, &pmr->accs, DBE_VAL_LOG); updateACCLfromACCS(pmr); break; @@ -3974,12 +3980,22 @@ static void check_speed_and_resolution(motorRecord * pmr) db_post_events(pmr, &pmr->sbak, DBE_VAL_LOG); db_post_events(pmr, &pmr->bvel, DBE_VAL_LOG); - /* Sanity check on acceleration time. */ - if (pmr->accl == 0.0) + /* ACCS (EGU/sec^2) <--> ACCL (sec) */ + if (pmr->accs > 0.0) { - pmr->accl = 0.1; - db_post_events(pmr, &pmr->accl, DBE_VAL_LOG); + updateACCLfromACCS(pmr); } + else + { + /* Sanity check on acceleration time. */ + if (pmr->accl == 0.0) + { + pmr->accl = 0.1; + db_post_events(pmr, &pmr->accl, DBE_VAL_LOG); + } + updateACCSfromACCL(pmr); + } + /* Sanity check on backlash acceleration time. */ if (pmr->bacc == 0.0) { pmr->bacc = 0.1; @@ -3999,12 +4015,6 @@ static void check_speed_and_resolution(motorRecord * pmr) pmr->hvel = pmr->vbas; else range_check(pmr, &pmr->hvel, pmr->vbas, pmr->vmax); - - /* Make sure that ACCS is initialized */ - if (pmr->accs == 0.0) - { - updateACCSfromACCL(pmr); - } } /* From fd808eb2528ded904e07159218a89318aac2ec0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20B=C3=B6gershausen?= Date: Mon, 22 May 2023 16:37:07 +0200 Subject: [PATCH 16/29] RHLM, RLLM: Fix when MRES is negativ Fix the situation when MRES < 0 and either the softlimits are changed (and RHLM and RLLM are garbled) or when MRES itself is negative and changed, so that DHLM and DLLM needed to be updated from the constant RHLM/RLLM. Based on the update of DHLM/DLLM HLM/LLM will be updated as well. The current implementation around RHLM/RLLM did not consider MRES < 0 at all. And even if this configuration is not often used, it is still supported. Beside that we want to avoid RHLM=-40 RLLM=50 when it should be the other way around --- motorApp/MotorSrc/motorRecord.cc | 148 ++++++++++++++++++++++--------- 1 file changed, 108 insertions(+), 40 deletions(-) diff --git a/motorApp/MotorSrc/motorRecord.cc b/motorApp/MotorSrc/motorRecord.cc index e4a106b8a..7c21d61fb 100644 --- a/motorApp/MotorSrc/motorRecord.cc +++ b/motorApp/MotorSrc/motorRecord.cc @@ -2784,15 +2784,36 @@ static long special(DBADDR *paddr, int after) pmr->vmax = temp_dbl; db_post_events(pmr, &pmr->vmax, DBE_VAL_LOG); } - if (pmr->dllm != (temp_dbl = pmr->rllm * pmr->mres)) + /* We may have new MRES */ + if (pmr->mres > 0) { - pmr->dllm = temp_dbl; - db_post_events(pmr, &pmr->dllm, DBE_VAL_LOG); + if (pmr->dllm != (temp_dbl = pmr->rllm * pmr->mres)) + { + pmr->dllm = temp_dbl; + db_post_events(pmr, &pmr->dllm, DBE_VAL_LOG); + } + if (pmr->dhlm != (temp_dbl = pmr->rhlm * pmr->mres)) + { + pmr->dhlm = temp_dbl; + db_post_events(pmr, &pmr->dhlm, DBE_VAL_LOG); + } } - if (pmr->dhlm != (temp_dbl = pmr->rhlm * pmr->mres)) + else { - pmr->dhlm = temp_dbl; - db_post_events(pmr, &pmr->dhlm, DBE_VAL_LOG); + // MRES < 0 swaps DHLM DLLM + if (pmr->dhlm != (temp_dbl = pmr->rllm * pmr->mres)) + { + pmr->dhlm = temp_dbl; + db_post_events(pmr, &pmr->dhlm, DBE_VAL_LOG); + } + if (pmr->dllm != (temp_dbl = pmr->rhlm * pmr->mres)) + { + pmr->dllm = temp_dbl; + db_post_events(pmr, &pmr->dllm, DBE_VAL_LOG); + } + set_userlimits(pmr); + db_post_events(pmr, &pmr->hlm, DBE_VAL_LOG); + db_post_events(pmr, &pmr->llm, DBE_VAL_LOG); } set_userlimits(pmr); db_post_events(pmr, &pmr->hlm, DBE_VAL_LOG); @@ -3855,34 +3876,56 @@ static void check_speed_and_resolution(motorRecord * pmr) db_post_events(pmr, &pmr->velo, DBE_VAL_LOG); db_post_events(pmr, &pmr->s, DBE_VAL_LOG); - /* RLLM <--> DLLM */ - if (pmr->rllm != 0.0) + if (pmr->mres > 0) { - pmr->dllm = pmr->rllm * pmr->mres; - MARK(M_DLLM); - } - if (pmr->rllm != pmr->dllm / pmr->mres) - { - pmr->rllm = pmr->dllm / pmr->mres; - MARK_AUX(M_RLLM); - } - db_post_events(pmr, &pmr->dllm, DBE_VAL_LOG); - db_post_events(pmr, &pmr->rllm, DBE_VAL_LOG); - - - /* RHLM <--> DHLM */ - if (pmr->rhlm != 0.0) - { - pmr->dhlm = pmr->rhlm * pmr->mres; - MARK(M_DHLM); + /* RLLM <--> DLLM */ + if (pmr->rllm != 0.0) + { + pmr->dllm = pmr->rllm * pmr->mres; + MARK(M_DLLM); + } + if (pmr->rllm != pmr->dllm / pmr->mres) + { + pmr->rllm = pmr->dllm / pmr->mres; + MARK_AUX(M_RLLM); + } + /* RHLM <--> DHLM */ + if (pmr->rhlm != 0.0) + { + pmr->dhlm = pmr->rhlm * pmr->mres; + MARK(M_DHLM); + } + if (pmr->rhlm != pmr->dhlm / pmr->mres) + { + pmr->rhlm = pmr->dhlm / pmr->mres; + MARK_AUX(M_RHLM); + } } - if (pmr->rhlm != pmr->dhlm / pmr->mres) + else { - pmr->rhlm = pmr->dhlm / pmr->mres; - MARK_AUX(M_RHLM); + /* RLLM <--> DHLM */ + if (pmr->rllm != 0.0) + { + pmr->dhlm = pmr->rllm * fabs(pmr->mres); + MARK(M_DHLM); + } + if (pmr->rllm != pmr->dhlm / fabs(pmr->mres)) + { + pmr->rllm = pmr->dhlm / fabs(pmr->mres); + MARK_AUX(M_RLLM); + } + /* RHLM <--> DLLM */ + if (pmr->rhlm != 0.0) + { + pmr->dllm = pmr->rhlm * fabs(pmr->mres); + MARK(M_DLLM); + } + if (pmr->rhlm != pmr->dllm / fabs(pmr->mres)) + { + pmr->rhlm = pmr->dllm / fabs(pmr->mres); + MARK_AUX(M_RHLM); + } } - db_post_events(pmr, &pmr->rhlm, DBE_VAL_LOG); - db_post_events(pmr, &pmr->dhlm, DBE_VAL_LOG); /* SBAK (revolutions/sec) <--> BVEL (EGU/sec) */ if (pmr->sbak != 0.0) @@ -3985,12 +4028,18 @@ static void set_user_highlimit(motorRecord* pmr, struct motor_dset* pdset) if (dir_positive) { pmr->dhlm = tmp_limit; + } + else + { + pmr->dllm = tmp_limit; + } + if (command == SET_HIGH_LIMIT) + { pmr->rhlm = tmp_raw; MARK_AUX(M_RHLM); } else { - pmr->dllm = tmp_limit; pmr->rllm = tmp_raw; MARK_AUX(M_RLLM); } @@ -4057,16 +4106,21 @@ static void set_user_lowlimit(motorRecord* pmr, struct motor_dset* pdset) SEND_MSG(); if (dir_positive) { pmr->dllm = tmp_limit; - pmr->rllm = tmp_raw; - MARK_AUX(M_RLLM); } else { pmr->dhlm = tmp_limit; + } + if (command == SET_HIGH_LIMIT) + { pmr->rhlm = tmp_raw; MARK_AUX(M_RHLM); } - + else + { + pmr->rllm = tmp_raw; + MARK_AUX(M_RLLM); + } } MARK(M_LLM); } @@ -4088,9 +4142,6 @@ static void set_dial_highlimit(motorRecord *pmr, struct motor_dset *pdset) RTN_STATUS rtnval; tmp_raw = pmr->dhlm / pmr->mres; - // set the raw high limit - pmr->rhlm = tmp_raw; - MARK_AUX(M_RHLM); INIT_MSG(); if (pmr->mres < 0) { @@ -4113,6 +4164,16 @@ static void set_dial_highlimit(motorRecord *pmr, struct motor_dset *pdset) pmr->llm = -(pmr->dhlm) + offset; MARK(M_LLM); } + if (command == SET_HIGH_LIMIT) + { + pmr->rhlm = tmp_raw; + MARK_AUX(M_RHLM); + } + else + { + pmr->rllm = tmp_raw; + MARK_AUX(M_RLLM); + } MARK(M_DHLM); } @@ -4132,9 +4193,6 @@ static void set_dial_lowlimit(motorRecord *pmr, struct motor_dset *pdset) RTN_STATUS rtnval; tmp_raw = pmr->dllm / pmr->mres; - // set the raw low limit - pmr->rllm = tmp_raw; - MARK_AUX(M_RLLM); INIT_MSG(); if (pmr->mres < 0) { @@ -4157,6 +4215,16 @@ static void set_dial_lowlimit(motorRecord *pmr, struct motor_dset *pdset) pmr->hlm = -(pmr->dllm) + offset; MARK(M_HLM); } + if (command == SET_HIGH_LIMIT) + { + pmr->rhlm = tmp_raw; + MARK_AUX(M_RHLM); + } + else + { + pmr->rllm = tmp_raw; + MARK_AUX(M_RLLM); + } MARK(M_DLLM); } From 80b011b9446d2ac1f4df48bcd7303814ad3182f5 Mon Sep 17 00:00:00 2001 From: Kevin Peterson Date: Mon, 22 May 2023 14:55:27 -0500 Subject: [PATCH 17/29] Ignore the top-level iocsh dir --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 6479b24ba..2d9ca64e9 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ bin/ dbd/ html/ include/ +/iocsh/ lib/ templates/ cdCommands From 8218387f4bbcb4ff03fcd00c869d58f1ca187d81 Mon Sep 17 00:00:00 2001 From: Kevin Peterson Date: Tue, 23 May 2023 09:34:52 -0500 Subject: [PATCH 18/29] Updated RELEASE.md for R7-3 --- docs/RELEASE.md | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/docs/RELEASE.md b/docs/RELEASE.md index f4773a4ab..d05507dbf 100644 --- a/docs/RELEASE.md +++ b/docs/RELEASE.md @@ -1,19 +1,36 @@ # Motor Releases -## __R7-3 (2023-05-XX)__ +## __R7-3 (2023-05-23)__ R7-3 is a release based on the master branch. ### Changes since R7-2-2 #### New features -* Added motorAcsMotion as a submodule -* TBD +* Commit [c764bd6](https://github.com/epics-modules/motor/commit/c764bd6426c3939bded75df2909b76d148c2f8c9): Added motorAcsMotion as a submodule +* Pull request [#160](https://github.com/epics-modules/motor/pull/160) from [Torsten Bögershausen](https://github.com/tboegi): Added the Restore Mode (**RSTM**) field +* Pull request [#163](https://github.com/epics-modules/motor/pull/163): Autosave the RSTM field and allow it to be specified when motor databases are loaded +* Pull request [#197](https://github.com/epics-modules/motor/pull/197): Added model-2-specific databases to work around MOTOR_REC_{OFFSET,RESOLUTION,DIRECTION} errors at iocInit +* Pull request [#193](https://github.com/epics-modules/motor/pull/193) from [Jack Harper](https://github.com/rerpha): Added raw limit (**RHLM**, **RLLM**) fields +* Pull request [#202](https://github.com/epics-modules/motor/pull/202) and [#204](https://github.com/epics-modules/motor/pull/204): Added prop(YES) to fields in motorRecord.dbd that should generate DBE_PROPERTY callbacks +* Pull request [#122](https://github.com/epics-modules/motor/pull/122) from [Torsten Bögershausen](https://github.com/tboegi): Addded Acceleration (**ACCS**) and Acceleration Used (**ACCU**) fields +* Pull request [#203](https://github.com/epics-modules/motor/pull/203): Changed the Acceleration Used (ACCU) field from a readback to a control #### Modifications to existing features -* TBD +* Pull request [#180](https://github.com/epics-modules/motor/pull/180) from [Torsten Bögershausen](https://github.com/tboegi): Reset UEIP to 'No' if no encoder is present +* Pull request [#193](https://github.com/epics-modules/motor/pull/193) from [Jack Harper](https://github.com/rerpha): Soft limits are synced on MRES changes #### Bug fixes -* TBD +* Pull request [#176](https://github.com/epics-modules/motor/pull/176) from [Torsten Bögershausen](https://github.com/tboegi): Added shareLib.h to motordrvCom.h for compatibility with base 7.0.4 +* Pull request [#182](https://github.com/epics-modules/motor/pull/182) from [Freddie Akeroyd](https://github.com/FreddieAkeroyd): Bug fix for negative backlash distance when relative moves are used +* Pull request [#167](https://github.com/epics-modules/motor/pull/167) from [Torsten Bögershausen](https://github.com/tboegi): devMotorAsyn: remove initEvent in init_record() +* Commit [c3d6c6e](https://github.com/epics-modules/motor/commit/c3d6c6ee439e4d46fd2d4c2790091f7c76e31120) from [Mark Rivers](https://github.com/MarkRivers): Fixes for DTYP and EGU not displaying correctly in Phoebus +* Pull request [#206](https://github.com/epics-modules/motor/pull/206) from [Torsten Bögershausen](https://github.com/tboegi): Bug fix for RHLM, RLLM when MRES is negative + +#### Documentation +* Commit [382c832](https://github.com/epics-modules/motor/commit/382c8324e5176ce769a09302bf829beca5a9cbea) from [Mark Rivers](https://github.com/MarkRivers): Added "Model 3 EPICS Motor Driver Support" slides + +#### Continuous Integration +* Configured to build with GitHub Actions using ci-scripts v3.0.1 #### Driver submodules (and noteworthy changes) From 6f277cc9dc33ac895573d03839ddf4b58effc7bd Mon Sep 17 00:00:00 2001 From: Kevin Peterson Date: Tue, 23 May 2023 10:07:11 -0500 Subject: [PATCH 19/29] Updated the version number in motorRecord.cc and documentation --- docs/index.html | 32 +++++++++++++++++++++++++++----- docs/motorRecord.html | 26 +++++++++++++------------- motorApp/MotorSrc/motorRecord.cc | 2 +- 3 files changed, 41 insertions(+), 19 deletions(-) diff --git a/docs/index.html b/docs/index.html index 2e6515be4..810adcf45 100644 --- a/docs/index.html +++ b/docs/index.html @@ -50,13 +50,22 @@

Where to Find it

You can download the software using github issues n/a + + R7-3 + R3.15.7 or later + motorR7-3.tar.gz + motorRecord.html + release notes + github issues + 2023-05-23 + R7-2 R3.15.7 or later - motorR7-2-1.tar.gz - motorRecord.html - release notes - github issues + motorR7-2-2.tar.gz + motorRecord.html + release notes + github issues 2020-05-13 @@ -324,6 +333,19 @@

Required Modules

  Required modules Release needed + + R7-3 + ASYN  
+ IPAC  (for motorHytec & VME-based serial and GPIB examples)
+ LUA  (for motorScriptMotor)
+ MODBUS  (for motorAMCI IOCs) + + R4-41+
+ R2-16
+ R3-0
+ R3-2 + + R7-2 ASYN  
@@ -685,7 +707,7 @@

Installation and Building

After obtaining a copy of the distribution,

-Page Last Modified: 2020-05-14
+Page Last Modified: 2023-05-23
Kevin Peterson

diff --git a/docs/motorRecord.html b/docs/motorRecord.html index dd4d93678..58031e95f 100644 --- a/docs/motorRecord.html +++ b/docs/motorRecord.html @@ -35,9 +35,9 @@

Contents

-

Overview

This documentation describes version R7-2-1 of the EPICS motor +

Overview

This documentation describes version R7-3 of the EPICS motor record, and related EPICS software required to build and use it.  Version -R7-2-1 of the motor record is compatible with EPICS base R3.15.7 and above. +R7-3 of the motor record is compatible with EPICS base R3.15.7 and above.

The motor record is intended to support positioning motors of all kinds, but currently supports motor controllers from the following manufacturers: @@ -45,7 +45,7 @@

Overview

This documentation describes version R7-2-1 of the EPICS motor
  • - ACS Motion Control: motorAcsTech80 + ACS Motion Control: motorAcsMotion & motorAcsTech80
  • Advanced Control Systems, Corp: motorAcs @@ -62,15 +62,9 @@

    Overview

    This documentation describes version R7-2-1 of the EPICS motor
  • attocube systems: motorAttocube
  • -
  • - Delta Tau: motorDeltaTau -
  • Faulhaber: motorFaulhaber
  • -
  • - Hytec: motorHytec -
  • Kohzu: motorKohzu
  • @@ -89,12 +83,21 @@

    Overview

    This documentation describes version R7-2-1 of the EPICS motor
  • Newport: motorNewport
  • +
  • + Newwood Solutions Ltd (formerly Hytec): motorHytec +
  • +
  • + Novanta IMS (formerly Schneider Electric (formally IMS)): motorIms +
  • Micronix: motorMicronix
  • nPoint: motorNPoint
  • +
  • + Omron Delta Tau: motorDeltaTau +
  • Oregon Micro Systems: motorOms & motorOmsAsyn
  • @@ -110,9 +113,6 @@

    Overview

    This documentation describes version R7-2-1 of the EPICS motor
  • piezosystem jena GmbH: motorPiJena
  • -
  • - Schneider Electric (formally IMS): motorIms -
  • SmarAct GmbH: motorSmarAct
  • @@ -3666,6 +3666,6 @@

    Design Decisions

    This section of the document is an attempt to record
    Suggestions and comments to:

    Kevin Peterson : (kmpeters@anl.gov)
    -Last modified: 2020-05-14 +Last modified: 2023-05-23 diff --git a/motorApp/MotorSrc/motorRecord.cc b/motorApp/MotorSrc/motorRecord.cc index a6b9e0536..1760b6dc6 100644 --- a/motorApp/MotorSrc/motorRecord.cc +++ b/motorApp/MotorSrc/motorRecord.cc @@ -193,7 +193,7 @@ USAGE... Motor Record Support. * .79 21-11-22 jrh - Added raw limits, sync limits on motor resolution change */ -#define VERSION 7.2 +#define VERSION 7.3 #include #include From e2afb88a063470eee71f9d12a9daa1b453d9c613 Mon Sep 17 00:00:00 2001 From: Kevin Peterson Date: Tue, 23 May 2023 10:14:19 -0500 Subject: [PATCH 20/29] Moved RSTM and SPDB in the alphabetical list of record-specific-fields --- docs/motorRecord.html | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/motorRecord.html b/docs/motorRecord.html index 58031e95f..2ec3b1a10 100644 --- a/docs/motorRecord.html +++ b/docs/motorRecord.html @@ -904,22 +904,6 @@

    Field Descriptions

    In addition to fields common to all record types (se
    - - RSTM - R/W - Restore Mode - RECCHOICE - (0:"Never", 1:"Always", 2:"NearZero", 3:"Conditional")
    - - - - SPDB - R/W - Set Point Deadband (EGU) - DOUBLE -
    - - RDBL R @@ -1016,6 +1000,14 @@

    Field Descriptions

    In addition to fields common to all record types (se
    + + RSTM + R/W + Restore Mode + RECCHOICE + (0:"Never", 1:"Always", 2:"NearZero", 3:"Conditional")
    + + RTRY R/W @@ -1079,6 +1071,14 @@

    Field Descriptions

    In addition to fields common to all record types (se
    + + SPDB + R/W + Set Point Deadband (EGU) + DOUBLE +
    + + SPMG R/W* From e7b6302907be63cdb0f166cb24994955c6f10f39 Mon Sep 17 00:00:00 2001 From: Kevin Peterson Date: Tue, 23 May 2023 10:25:46 -0500 Subject: [PATCH 21/29] Added documentation for the RHLM and RLLM fields to motorRecord.html --- docs/motorRecord.html | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/docs/motorRecord.html b/docs/motorRecord.html index 2ec3b1a10..11ec5adb4 100644 --- a/docs/motorRecord.html +++ b/docs/motorRecord.html @@ -928,6 +928,14 @@

    Field Descriptions

    In addition to fields common to all record types (se
    + + RHLM + R + Raw High Limit + DOUBLE +
    + + RHLS R @@ -944,6 +952,14 @@

    Field Descriptions

    In addition to fields common to all record types (se
    + + RLLM + R + Raw Low Limit + DOUBLE +
    + + RLLS R @@ -2123,6 +2139,24 @@

    Field Descriptions

    In addition to fields common to all record types (se the DIR field has the value "Pos", then DLLM will always be consistent with LLM, otherwise DLLM will always be consistent with HLM.  + + RHLM + R + Raw High Limit + DOUBLE + The maximum allowed value of the RVAL field. If the MRES field is negative, + then RHLM will always be consistent with DLLM, otherwise RHLM will always be + consistent with DHLM.  + + + RLLM + R + Raw Low Limit + DOUBLE + The minimum allowed value of the RVAL field. If the MRES field is negative, + then RLLM will always be consistent with DHLM, otherwise RLLM will always be + consistent with DLLM.  + LVIO R From 5d3fb167b494a72a9d446e53063a18c02018e5d7 Mon Sep 17 00:00:00 2001 From: Kevin Peterson Date: Tue, 23 May 2023 15:08:48 -0500 Subject: [PATCH 22/29] Added contributions to R7-3 that were missing from the 'git log --first-parent' output. --- docs/RELEASE.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/RELEASE.md b/docs/RELEASE.md index d05507dbf..832e29493 100644 --- a/docs/RELEASE.md +++ b/docs/RELEASE.md @@ -25,9 +25,12 @@ R7-3 is a release based on the master branch. * Pull request [#167](https://github.com/epics-modules/motor/pull/167) from [Torsten Bögershausen](https://github.com/tboegi): devMotorAsyn: remove initEvent in init_record() * Commit [c3d6c6e](https://github.com/epics-modules/motor/commit/c3d6c6ee439e4d46fd2d4c2790091f7c76e31120) from [Mark Rivers](https://github.com/MarkRivers): Fixes for DTYP and EGU not displaying correctly in Phoebus * Pull request [#206](https://github.com/epics-modules/motor/pull/206) from [Torsten Bögershausen](https://github.com/tboegi): Bug fix for RHLM, RLLM when MRES is negative +* Pull request [#186](https://github.com/epics-modules/motor/pull/186) from [justincslac](https://github.com/justincslac): Bug fix for .gitignore that caused the Db dir to be ignored on case-insensitive file systems +* Commit [96509ca](https://github.com/epics-modules/motor/commit/96509caba2ea1995bfeca3a0e8f11e1f273d2e05) from [Keenan Lang](https://github.com/keenanlang): Added basic_asyn_motor_settings.req which allows autosaveBuild to work with basic_asyn_motor.db #### Documentation * Commit [382c832](https://github.com/epics-modules/motor/commit/382c8324e5176ce769a09302bf829beca5a9cbea) from [Mark Rivers](https://github.com/MarkRivers): Added "Model 3 EPICS Motor Driver Support" slides +* Pull request [#190](https://github.com/epics-modules/motor/pull/190) from [Xiaoqiang Wang](https://github.com/xiaoqiangwang): Corrected field types in motorRecord.html #### Continuous Integration * Configured to build with GitHub Actions using ci-scripts v3.0.1 From 5eb994dc5e0f8a809382b300ad13f8c83e7da33b Mon Sep 17 00:00:00 2001 From: Mark Rivers Date: Mon, 29 May 2023 08:53:01 -0500 Subject: [PATCH 23/29] Add readController() functions --- motorApp/MotorSrc/asynMotorController.cpp | 24 +++++++++++++++++++++++ motorApp/MotorSrc/asynMotorController.h | 2 ++ 2 files changed, 26 insertions(+) diff --git a/motorApp/MotorSrc/asynMotorController.cpp b/motorApp/MotorSrc/asynMotorController.cpp index e5d069d54..ced4ee4f3 100644 --- a/motorApp/MotorSrc/asynMotorController.cpp +++ b/motorApp/MotorSrc/asynMotorController.cpp @@ -764,6 +764,30 @@ asynStatus asynMotorController::writeController(const char *output, double timeo return status ; } +/** Reads a string from the controller. + * Calls deadController() with default locations of the input string and default timeout. */ +asynStatus asynMotorController::readController() +{ + size_t nread; + return readController(inString_, sizeof(inString_), &nread, DEFAULT_CONTROLLER_TIMEOUT); +} + +/** Reads a string from the controller + * \param[out] input Pointer to the input string location. + * \param[in] maxChars Size of the input buffer. + * \param[out] nread Number of characters read. + * \param[out] timeout Timeout before returning an error.*/ +asynStatus asynMotorController::readController(char *input, size_t maxChars, size_t *nread, double timeout) +{ + asynStatus status; + int eomReason; + // const char *functionName="readController"; + + status = pasynOctetSyncIO->read(pasynUserController_, input, maxChars, timeout, nread, &eomReason); + + return status; +} + /** Writes a string to the controller and reads the response. * Calls writeReadController() with default locations of the input and output strings * and default timeout. */ diff --git a/motorApp/MotorSrc/asynMotorController.h b/motorApp/MotorSrc/asynMotorController.h index bbcfa8e93..5de1ee795 100644 --- a/motorApp/MotorSrc/asynMotorController.h +++ b/motorApp/MotorSrc/asynMotorController.h @@ -302,6 +302,8 @@ class epicsShareClass asynMotorController : public asynPortDriver { /* These are convenience functions for controllers that use asynOctet interfaces to the hardware */ asynStatus writeController(); asynStatus writeController(const char *output, double timeout); + asynStatus readController(); + asynStatus readController(char *response, size_t maxResponseLen, size_t *responseLen, double timeout); asynStatus writeReadController(); asynStatus writeReadController(const char *output, char *response, size_t maxResponseLen, size_t *responseLen, double timeout); asynUser *pasynUserController_; From 44037550d0349ceaa6a74fa061c0e454c203760c Mon Sep 17 00:00:00 2001 From: Kevin Peterson Date: Tue, 6 Jun 2023 15:48:59 -0500 Subject: [PATCH 24/29] Updated motorAcsMotion to R2-2 for vxWorks build bugfix and improved homing --- modules/motorAcsMotion | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/motorAcsMotion b/modules/motorAcsMotion index 91e8e1eb8..ee68ab79d 160000 --- a/modules/motorAcsMotion +++ b/modules/motorAcsMotion @@ -1 +1 @@ -Subproject commit 91e8e1eb8d7e468f5628482a9e18e891c5960d9f +Subproject commit ee68ab79daf075215312ad851a84f5f18697ce77 From ed474417a1805d390a692f438bbc7ac35fe36b56 Mon Sep 17 00:00:00 2001 From: Kevin Peterson Date: Wed, 7 Jun 2023 15:21:40 -0500 Subject: [PATCH 25/29] Corrected typo in comment --- motorApp/MotorSrc/asynMotorController.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/motorApp/MotorSrc/asynMotorController.cpp b/motorApp/MotorSrc/asynMotorController.cpp index ced4ee4f3..7b8199d0c 100644 --- a/motorApp/MotorSrc/asynMotorController.cpp +++ b/motorApp/MotorSrc/asynMotorController.cpp @@ -765,7 +765,7 @@ asynStatus asynMotorController::writeController(const char *output, double timeo } /** Reads a string from the controller. - * Calls deadController() with default locations of the input string and default timeout. */ + * Calls readController() with default locations of the input string and default timeout. */ asynStatus asynMotorController::readController() { size_t nread; From 88c627ae02a2c26bbec391d15fd6fa3239e47477 Mon Sep 17 00:00:00 2001 From: Kevin Peterson Date: Wed, 7 Jun 2023 15:42:27 -0500 Subject: [PATCH 26/29] Updated documentation for R7-3-1 --- docs/RELEASE.md | 14 ++++++++++++++ docs/index.html | 8 ++++---- docs/motorRecord.html | 4 ++-- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/docs/RELEASE.md b/docs/RELEASE.md index 832e29493..5e94d3a3c 100644 --- a/docs/RELEASE.md +++ b/docs/RELEASE.md @@ -1,5 +1,19 @@ # Motor Releases +## __R7-3-1 (2023-06-07)__ +R7-3-1 is a release based on the master branch. + +### Changes since R7-3 + +#### Modifications to existing features +* Commit [5eb994d](https://github.com/epics-modules/motor/commit/5eb994dc5e0f8a809382b300ad13f8c83e7da33b) from [Mark Rivers](https://github.com/MarkRivers): Added readController() functions to asynMotorController + +#### Driver submodules (and noteworthy changes) + +| Module | Release | Changes | +| ---------------- | ------- | ------- | +| **motorAcsMotion** | [R2-2](https://github.com/epics-motor/motorAcsMotion/releases/tag/R2-2) | Improved homing and workaround for vxWorks build error | + ## __R7-3 (2023-05-23)__ R7-3 is a release based on the master branch. diff --git a/docs/index.html b/docs/index.html index 810adcf45..9f7bb765c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -53,7 +53,7 @@

    Where to Find it

    You can download the software using R7-3 R3.15.7 or later - motorR7-3.tar.gz + motorR7-3-1.tar.gz motorRecord.html release notes github issues @@ -63,8 +63,8 @@

    Where to Find it

    You can download the software using R7-2 R3.15.7 or later motorR7-2-2.tar.gz - motorRecord.html - release notes + motorRecord.html + release notes github issues 2020-05-13 @@ -707,7 +707,7 @@

    Installation and Building

    After obtaining a copy of the distribution,

    -Page Last Modified: 2023-05-23
    +Page Last Modified: 2023-06-07
    Kevin Peterson

    diff --git a/docs/motorRecord.html b/docs/motorRecord.html index 11ec5adb4..4e9255ce8 100644 --- a/docs/motorRecord.html +++ b/docs/motorRecord.html @@ -35,9 +35,9 @@

    Contents

-

Overview

This documentation describes version R7-3 of the EPICS motor +

Overview

This documentation describes version R7-3-1 of the EPICS motor record, and related EPICS software required to build and use it.  Version -R7-3 of the motor record is compatible with EPICS base R3.15.7 and above. +R7-3-1 of the motor record is compatible with EPICS base R3.15.7 and above.

The motor record is intended to support positioning motors of all kinds, but currently supports motor controllers from the following manufacturers: From d1ed86f128733070ec720286d1e1fad05e8e8156 Mon Sep 17 00:00:00 2001 From: Kevin Peterson Date: Fri, 4 Aug 2023 10:15:18 -0500 Subject: [PATCH 27/29] Fixed a 9-year-old typo in trajectoryScan_settings.req --- motorApp/Db/trajectoryScan_settings.req | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/motorApp/Db/trajectoryScan_settings.req b/motorApp/Db/trajectoryScan_settings.req index 2600d56e4..4763ea167 100644 --- a/motorApp/Db/trajectoryScan_settings.req +++ b/motorApp/Db/trajectoryScan_settings.req @@ -1,4 +1,4 @@ -ed $(P)$(R)Nelements +$(P)$(R)Nelements $(P)$(R)MoveMode $(P)$(R)Npulses $(P)$(R)StartPulses From f8a3239f0678f8f3d75fd5cf2f9c717dc3db9426 Mon Sep 17 00:00:00 2001 From: Kevin Peterson Date: Fri, 8 Dec 2023 11:38:55 -0600 Subject: [PATCH 28/29] Override defaults.set for seq mirror --- .ci-local/defaults.set | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .ci-local/defaults.set diff --git a/.ci-local/defaults.set b/.ci-local/defaults.set new file mode 100644 index 000000000..d95279150 --- /dev/null +++ b/.ci-local/defaults.set @@ -0,0 +1,40 @@ +# EPICS Base +BASE=7.0 +BASE_DIRNAME=base +BASE_REPONAME=epics-base +BASE_REPOOWNER=epics-base +BASE_VARNAME=EPICS_BASE + +PVDATA_DIRNAME=pvData +PVDATA_REPONAME=pvDataCPP +PVDATA_REPOOWNER=epics-base + +PVACCESS_DIRNAME=pvAccess +PVACCESS_REPONAME=pvAccessCPP +PVACCESS_REPOOWNER=epics-base + +NTYPES_DIRNAME=normativeTypes +NTYPES_REPONAME=normativeTypesCPP +NTYPES_REPOOWNER=epics-base + +# Sequencer +#SNCSEQ_REPOURL=https://www-csr.bessy.de/control/SoftDist/sequencer/repo/branch-2-2.git +# Use Michael Davidsaver's mirror while bessy.de is down +SNCSEQ_REPOURL=https://github.com/mdavidsaver/sequencer-mirror.git +SNCSEQ_DEPTH=0 +SNCSEQ_DIRNAME=seq + +# StreamDevice +STREAM_REPONAME=StreamDevice +STREAM_REPOOWNER=paulscherrerinstitute + +# The default settings also work (and are tested) for: +# asyn +# std +# calc +# autosave +# busy +# sscan +# iocStats +# motor +# ipac From 148c943719b3de41c0d31439185398fcfacd0d22 Mon Sep 17 00:00:00 2001 From: Kevin Peterson Date: Mon, 22 Jan 2024 09:02:27 -0600 Subject: [PATCH 29/29] Set encoder ratio to 1 if ERES is 0 to avoid dividing by 0 --- motorApp/MotorSrc/devMotorAsyn.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/motorApp/MotorSrc/devMotorAsyn.c b/motorApp/MotorSrc/devMotorAsyn.c index 79ad5ea88..603f49f8c 100644 --- a/motorApp/MotorSrc/devMotorAsyn.c +++ b/motorApp/MotorSrc/devMotorAsyn.c @@ -174,10 +174,17 @@ static void init_controller(struct motorRecord *pmr, asynUser *pasynUser ) int use_rel = (pmr->rtry != 0 && pmr->rmod != motorRMOD_I && (pmr->ueip || pmr->urip)); int dval_non_zero_pos_near_zero = (fabs(pmr->dval) > rdbd) && (pmr->mres != 0) && (fabs(position * pmr->mres) < rdbd); - epicsFloat64 eratio = pmr->mres / pmr->eres; + epicsFloat64 eratio; int initPos = 0; int status; + /* Don't let the encoder ratio be infinite */ + if (pmr->eres == 0.0) { + eratio = 1.0; + } else { + eratio = pmr->mres / pmr->eres; + } + /* Write encoder ratio to the driver.*/ pPvt->pasynUserSync->reason = pPvt->driverReasons[motorEncRatio]; status = pasynFloat64SyncIO->write(pPvt->pasynUserSync, eratio, pasynUser->timeout);