Commit Graph

2977 Commits

Author SHA1 Message Date
Kevin Peterson b77c331f78 Added prop(YES) for floating-point fields in motorRecord.dbd that should update when the PREC changes. 2023-05-18 10:20:28 -05:00
Kevin Peterson 9fa60d6aea Merge pull request #201 from epics-modules/iocsh-bugfix
Updated driver modules for fixes for 'make uninstall' removing iocsh files.  This also allows iocsh files to be installed to motor's top-level directory.
2023-05-15 16:57:47 -05:00
Kevin Peterson 5650c666d4 Updated motorNewFocus, motorNewport, and motorPI for fixes for 'make uninstall' removing iocsh files 2023-05-15 16:04:01 -05:00
Kevin Peterson 891a66e680 Merge pull request #167 from EuropeanSpallationSource/asynMotor-remove-initEvent
devMotorAsyn: remove initEvent in init_record()

Fixes #164 (problem 2)
2023-05-15 09:36:43 -05:00
Kevin Peterson cd09677d2a Merge pull request #193 from rerpha/rawlimits
Add raw limits so that soft limits are synced with motor resolution change.  Fixes #191
2023-05-12 14:58:52 -05:00
Kevin Peterson 99d0c41415 Fix for CA clients not seeing updates to RHLM and RLLM 2023-05-12 14:15:40 -05:00
Kevin Peterson 6b99e7cd4a Merge pull request #200 from epics-modules/submodule-updates
Updated all the driver submodules to the latest release
2023-05-11 16:41:35 -05:00
Kevin Peterson 0e01689892 Updated all the driver submodules to the latest release 2023-05-11 16:16:56 -05:00
Kevin Peterson 6ee5f4ebf4 Merge pull request #197 from epics-modules/issue166
Added model2-specific motor databases to work around unknown command errors.
2023-04-06 11:37:10 -05:00
Kevin Peterson f75ace4079 Added model2-specific motor databases to work around unknown command errors. 2023-04-06 11:30:15 -05:00
Kevin Peterson 34474ed958 Merge pull request #195 from epics-modules/issue194
Fix for Github Actions builds using the wrong version of base: set the BASE env var using matrix.base.

Fixes #194
2022-11-30 13:31:10 -06:00
Kevin Peterson 566f470736 Set the BASE env var using the base value in the matrix, since it isn't set in the module.set file 2022-11-30 12:57:45 -06:00
Jack Harper 141d8aa430 add to changelog 2022-11-21 13:10:40 +00:00
Jack Harper 2e89b55279 Add raw limits so that soft limits are synced with motor resolution change 2022-11-21 13:03:46 +00:00
Mark Rivers 302d4d61fc Merge branch 'master' of github.com:epics-modules/motor 2022-10-10 08:15:13 -05:00
Mark Rivers 382c8324e5 New documentation file 2022-10-10 08:14:57 -05:00
Kevin Peterson 4c383ca916 Merge pull request #190 from xiaoqiangwang/doc_fix
Doc: fix some field types according to motorRecord.dbd
2022-09-15 13:59:28 -05:00
Xiaoqiang Wang b0cabdf66d fix some field types according to motorRecord.dbd 2022-09-14 13:09:24 +02:00
Kevin Peterson 9c0bc96b1e Merge pull request #186 from justincslac/justincslac-patch-1
Update .gitignore
2022-08-08 11:13:00 -05:00
keenanlang 96509caba2 req file for basic asyn motor. Fixes #183 2022-08-02 13:16:23 -05:00
justincslac e1f63e5fea Update .gitignore 2022-05-09 12:01:23 -07:00
Kevin Peterson 6b2409b03a Merge pull request #184 from epics-modules/github-actions
Configured to build with github-actions
2022-04-28 16:05:23 -05:00
Kevin Peterson 642fcf541d Fixed ambiguous directory mask 2022-04-28 15:35:10 -05:00
Kevin Peterson cba123e69a Use the travis post-prepare.py and util.py scripts 2022-04-28 15:21:20 -05:00
Kevin Peterson a5bf21c94e Configured to build with github-actions 2022-04-28 14:55:43 -05:00
Kevin Peterson cc6c6a9b18 Merge pull request #182 from FreddieAkeroyd/Ticket181_fix_relative_moves_with_negative_backlash
Fix negative backlash with relative moves in a negative direction.  Fixes #181
2021-12-01 14:21:58 -06:00
Freddie Akeroyd 524696a8d0 Fix negative backlash with relative moves in a negative direction
A negative BDST was correctly applied to negative direction moves
if moves are absolute. When retries are enabled all moves become
relative and backlash was not applied correctly for negative direction
moves.
2021-11-26 18:23:29 +00:00
Kevin Peterson 8fdd35dc11 Merge pull request #180 from EuropeanSpallationSource/reset-ueip-if-no-encoder-present
motorRecord: Reset UEIP to No if no encoder is present
2021-11-18 13:25:25 -06:00
Torsten Bögershausen 24a53e660e motorRecord: Reset UEIP to No if no encoder is present
When a database is loaded with UEIP=Yes and the controller says that there is no
encoder present, reset UEIP to No
2021-11-17 08:42:23 +01:00
Kevin Peterson 6d127cd6f4 Merge pull request #176 from EuropeanSpallationSource/motordrvCom_h-needs-shareLib_h
motordrvCom.h needs shareLib.h
2021-04-26 11:19:58 -05:00
Torsten Bögershausen 784e41927b motordrvCom.h needs shareLib.h
We can't compile motor against this commit of EPICS base:
  commit 0f428ea3346d89719b03a6419319c85afb0fee13
  Author: Michael Davidsaver <mdavidsaver@gmail.com>
  Date:   Thu Apr 1 10:57:19 2021 -0700

      use DBCORE_API

Solution: Include <shareLib.h>
2021-04-19 14:19:50 +02:00
Kevin Peterson da3bfab4c1 Added R7-2-2 to RELEASE.md 2021-02-02 12:18:21 -06:00
Kevin Peterson ac73654da1 Merge pull request #174 from EuropeanSpallationSource/motorOms-epicsMutexMustLock
Fixes the problem described here:
https://github.com/epics-modules/motor/issues/172#issuecomment-758139901
2021-02-02 11:33:52 -06:00
Torsten Bögershausen 996b7943db motorOms: epicsMutexMustLock 2021-02-02 16:25:58 +01:00
Torsten Bögershausen 90643807f3 devMotorAsyn: remove initEvent in init_record()
When the motorRecord is initialized, init_record() is called.
For asynMotors init_record() calls init_controller() in devMotorAsyn.c

From here, the encoder ratio is send to the driver.
After doing that, the code "locks" the execution waiting for a callback
to call epicsEventSignal(pPvt->initEvent) which "unlocks" the code.

As Mark Clift points out, this code can be simplified and the initEvent
can be removed.

Mark Rivers suggested to use the asynFloat64SyncIO interface,
which locks the asyn port when calling the driver.
2020-10-12 06:25:03 +02:00
Kevin Peterson 173355c5ea Merge pull request #168 from epics-modules/add_shareLib
Add shareLib.h
2020-09-08 09:50:57 -05:00
Mark Rivers 394998bb1b Add shareLib.h 2020-09-04 11:01:47 -05:00
Kevin Peterson c764bd6426 Added motorAcsMotion (R1-0) as a submodule 2020-08-06 14:10:15 -05:00
Kevin Peterson c59afdcb60 Improved the travis post-prepare python script 2020-06-16 13:55:08 -05:00
kpetersn 4353a6ed8f Added local copy of ANSI colors 2020-06-15 17:01:33 -05:00
kpetersn 7080091177 Use subprocess.call instead of subprocess.run on older versions of python 2020-06-15 16:54:09 -05:00
Kevin Peterson efa32a948f Upgraded ci-scripts to v3.0.1 2020-06-15 16:33:28 -05:00
Kevin Peterson 8b7e2ade98 Merge pull request #163 from epics-modules/RSTM-improvements
Autosave the RSTM field and allow it to be specified when motor records are loaded.
2020-06-11 18:17:36 -05:00
kpetersn 4e9aae4e3e Allow the RSTM field to be specified when motor records are loaded with dbLoadRecords or dbLoadTemplate 2020-06-11 17:57:16 -05:00
Kevin Peterson 90efeda22a Added RSTM to basic_motor_settings.req 2020-06-11 17:34:38 -05:00
Kevin Peterson f47a376423 Corrected typo 2020-06-11 17:30:40 -05:00
Kevin Peterson d274e15863 Merge pull request #162 from EuropeanSpallationSource/motorNewport-070c93e1aa1a4
Update modules/motorNewport/ (travis should work)
2020-06-11 16:51:39 -05:00
Kevin Peterson b7fac8193b Merge pull request #160 from EuropeanSpallationSource/add-RSTM-field
Add field RSTM: Restore Mode
2020-06-11 16:39:22 -05:00
Torsten Bögershausen 2906f3d8f9 Add field RSTM: Restore Mode
Partly revert the following commit:
  commit 3090983c31
  Author: Ron Sluiter <rsluiter@users.noreply.github.com>
  Date:   Wed Jul 29 15:50:23 2015 +0000
      Bug fix for target position (VAL/DVAL/RVAL) initialization error
      when the motor record is configured to do retries.
And from the release notes:

6) Kevin Peterson discovered an initialization bug when the motor record is
    configured to do retries. When configured to do retries, the motor
    record issues incremental rather than absolute moves. If the motor
    behaves badly (e.g., a piezo stiction motor) the controller's absolute
    step count can be far from its' absolute readback position. The motor
    record initialization logic that determines how the target positions
    are initialized at boot-up was not taking into consideration whether
    or not the motor record is configured to do retries, and therefore,
    whether or not absolute or incremental moves were issued by the motor
    record. With this release, if the motor record is configured to do
    retries, then the controller's absolute position is ignored (because
    the controller's absolute position was "corrupted" by retries) and the
    autosave/restore position is used to set the controllers position.

    Switching between retries on and off (relative vs. absolute moves)
    between reboots will cause unpredictable results and is not covered
    by this bug fix.

   Files modified: motor_init_record_com() in MotorSrc/motordevCom.cc
                   init_controller()       in MotorSrc/devMotorAsyn.c

Commit 3090983c improves the situation for setups where autosave is
used, and makes things worse when autosave is not used.
When autosave is not used and the motor is configured to do retries,
the the DVAL field is loaded into the controller regardless.
And because DVAL is 0.0 at startup, the controller position is lost.

The first issue report is found here:
"Problem with R6-10 issue 6 fix - controller position can be lost on reboot"
https://github.com/epics-modules/motor/issues/85

And the we have another issue report here:
"IOC zeroes encoder on startup"
https://github.com/motorapp/Galil-3-0/issues/13

A possible way forward is discussed here:
"Add a field to the motor record to allow always restoring the
 autosaved position"
https://github.com/epics-modules/motor/issues/151

This commit adds the "RSTM" field:
- 0 Disables restoring the autosaved position
- 1 Always restores the autosaved position
- 2 Uses the same logic as motorRecord 6.9 (or older)
- 3 Uses the same logic as motorRecord 6.10

This numbering maps 0 and 1 somewhat to false/true, uses 2/3 for
special handlings and leaves room for more choices.

E.g. "use the encoder value, if valid, fall back to autosave if not.
Or "use the URIP/RDBL" if possible.
I am getting off-topic,
those improvements should be done in later commits anyway.
2020-06-10 07:55:22 +02:00
Torsten Bögershausen 41dd365db5 Update modules/motorNewport/ (travis should work) 2020-05-30 07:33:59 +02:00