See: Description
| Class | Description |
|---|---|
| AcrComm |
Communicates with a Parker ACR-type motor controller via Ethernet.
|
| TestAcrComm |
Provides commands to exercise the AcrComm class from the stand-alone command
shell
org.lsst.ccs.shell.JLineShell. |
| Enum | Description |
|---|---|
| AxisBit |
Names and numbers the some controller bits associated with particular axes.
|
| AxisLong |
Defines names and numbers for axis parameters that are signed LONGs.
|
| AxisName |
Defines names for eight of the 16 possible axes.
|
| AxisSingle |
Defines names and numbers for some axis parameters that are of type FP32.
|
| AxisUnsigned |
Defines names and numbers for axis parameters that are unsigned LONGs.
|
| CaptureTrigger |
Names and numbers some of the sources of sample triggering signals used for the
INTCAP controller command.
|
| ConnectionName |
Names and numbers the external connections used to communicate with the controller.
|
| ConnectionUnsigned |
Names and numbers the parameters associated with a given communications
connection to the controller.
|
| ControllerType |
Contains all supported Parker ACR-like controller types.
|
| EncoderLong |
Defines names and numbers for some signed LONG encoder parameters.
|
| EncoderName |
Defines names for eight out of 16 possible encoders.
|
| LocalDouble |
Define names and numbers for some local program variables of type FP64.
|
| LocalDoubleArray |
Define names and numbers for some local program arrays of type FP64.
|
| LocalLong |
Define names and numbers for some local program variables of type LONG.
|
| LocalLongArray |
Define names and numbers for some local program arrays of type LONG.
|
| LocalSingle |
Define names and numbers for some local program variables of type FP32.
|
| LocalSingleArray |
Define names and numbers for some local program arrays of type FP32.
|
| LocalString |
Define names and numbers for some local program string variables.
|
| LocalStringArray |
Define names and numbers for some local program string arrays.
|
| MasterBit |
Names and numbers controller bits associated with particular masters.
|
| MasterName |
Provides names for eight of the 16 possible ACR masters.
|
| MasterUnsigned |
Names and numbers some parameters associated with particular masters.
|
| ProgramBit |
Names and numbers controller bits associated with particular programs.
|
| ProgramName |
Defines names for eight of the possible 16 AcroBasic programs.
|
| ProgramUnsigned |
Names and numbers the unsigned long controller parameters associated with
particular programs.
|
| SystemBit |
Defines names and numbers for some system bits, that is, bits not associated
with a master, axis, program or encoder.
|
| SystemUnsigned |
Defines the names and numbers used for some LONG motor controller system parameters, that is,
unsigned 32-bit parameters not associated with any particular program, axis, master or encoder.
|
| UserParameter |
Define names and numbers for some of the global user parameters.
|
| Exception | Description |
|---|---|
| AcrComm.Exception |
Inner exception class for laundering non-runtime exceptions.
|
Parker's ACR-class controllers can communicate over old-fashioned COM ports, USB or Ethernet. This driver package uses Ethernet, so you must either be prepared to use the factory-standard IP address of 192.168.10.40 or set up your own IP address using one of the other methods of communication. For an ACR9000 we had trouble getting the COM port to work, apparently due to cabling problems. Using USB in combination with Parker's ACR View program worked well.
Once you have the IP address set you can connect to the controller on two basic TCP ports. Port 5002 just takes straight ASCII commands; you can connect to it via telnet and just type away. This package uses port 5006, the combined binary/ASCII command port. Binary commands and their replies are of known lengths and start with a marker byte containing either 0x00 or 0x1d. Binary commands let you fetch parameters and program variables in a binary form that needs little conversion. A transmission starting with a byte other than one of the marker values is treated as straight ASCII save that it must be zero-padded to a multiple of four bytes. Replies to ASCII commands are of variable length and we rely on a timeout to tell us when the reply has ended.
The controller has hundreds of different parameters that can be classified by data type and by which controller object they belong to (if any). The data types are:
true and a clear bit as false.
These are the categories into which parameters and flags are divided:
AxisName contains the names for the axes. Some of the objects named by these
classes may not be implemented in your controller.
There are also enumeration classes for various parameters and bits where each
class handles one combination of data type and controller object type. There
are hundreds of parameters and bits; what we've selected here are the ones which
turned out to be useful for the camera shutter but others can be added. Each
enumerator will in general have two instance methods: index() which gives
the numerical index the controller uses for the parameter/bit and reference()
which gives the string used to refer to the parameter/bit in AcroBasic code.
These methods will require an object name as argument for parameters/bits
that are tied to specific controller objects. For example
AxisSingle.JOG_VELOCITY_SETTING.index(AxisName.AXIS0) returns 12348 while
AxisSingle.JOG_VELOCITY_SETTING.reference(AxisName.AXIS0) returns "P12348".
There are similar enumerations, such as LocalDouble for a certain number of
AcroBasic variables local to controller programs, made possible by the rigid naming scheme
employed by the AcroBasic interpreter. See the description of class AcrComm
for a description of how variables are named.
A set of methods in AcrComm named simply get() or set()
allow you to get and set (if not read-only) all the enumerated parameters, bits
and local program variables. Since each enumeration belongs to a specific class,
method overloading allows the Java compiler to select the implementation that uses the
correct binary command and data encoding. If applicable the method takes an axis,
master, program, etc., name in addition to the name of the parameter/bit/variable.
Copyright © 2017 LSST. All rights reserved.