epics-modules / motor

APS BCDA synApps module: motor
https://epics-modules.github.io/motor/
20 stars 47 forks source link

Changes required for newer Newport HXP firmware #124

Closed kmpeters closed 5 years ago

kmpeters commented 5 years ago

Older versions of the HXP firmware (v2.1.0 and earlier) are able to query the positions of the virtual axes independently using the following group names:

HEXAPOD.X
HEXAPOD.Y
HEXAPOD.Z
HEXAPOD.U
HEXAPOD.V
HEXAPOD.W

Newer versions of the firmware (confirmed with v3.1.0) return an error (-19: GroupName doesn't exist or unknown command).

Querying the positions of all six virtual axes simultaneously works on both v2.1.0 and v3.1.0:

GroupPositionCurrentGet(HEXAPOD,double *,double *,double *,double *,double *,double *)
0,0.01450187508136,-0.03893482896069,-8.351915172609,-0.04806347750296,-0.1345329180413,0.05507821274628

The hexapod driver should be modified to call GroupPositionCurrentGet() from the controller's polling thread, rather than the poll methods of the axes.