| 1 | = BH8-280 Supervisory Control = |
| 2 | |
| 3 | The !BarrettHand API is designed to provide capabilities of what was offered in previous hands and more. The new 280 hand contains Puck 2 motor properties that are written or read through a host PC connected with CAN nodes contained in the hand. The API is meant bring all functionality available to users without the need to know the low-level CAN communication protocol. The same !BarrettHand Control GUI connects to all !BarrettHands and uses the same Supervisory control interface. The same API methods are called. The GUI provides the purpose/notes of most properties that users will commonly access. See the API documentation for how to use commands in C++ code. |
| 4 | |
| 5 | The BH8-280 hand implements each of the important commands found in the earlier BH8-Series hands to offer compatibility. These commands are found in the new hand: |
| 6 | |
| 7 | • Movement commands: C, HI, HOME, IO, IC, LOOP, M, O, T, TC, TO |
| 8 | • Motor property commands: FSET, FGET, FLOAD, FSAVE, FDEF |
| 9 | • Global property commands: PSET*, PGET* |
| 10 | • Administrative commands: RESET |
| 11 | |
| 12 | Note that PSET and PGET are commands for setting and getting global property values. The 280 hand will set all properties to the given value for PSET commands and will return -9 for a PGET command. The API does contain some virtual properties like the global “LFT” loop feedback temperature property. Virtual properties are read and written to variables on the host PC. The following commands have been left out for the 280 hand and probably won't be available because there is no interactive mode via command prompt or global properties. |
| 13 | |
| 14 | • Motor property commands: FLIST, FLISTV |
| 15 | • Global property commands: PLOAD*, PSAVE*, PDEF, PLIST, PLISTV |
| 16 | • Global property commands: |
| 17 | • Administrative commands: ?, ERR, VERS |
| 18 | • Advanced commands: a?, FLISTA, FLISTAV, PLISTA, PLISTAV |
| 19 | |
| 20 | The hand API provides a special “Command” method for processing a subset of the Grasper Control Language (GCL) character strings containing commands and returns a response to commands in a user supplied receive buffer. The string is parsed into commands that may contain a motor string prefix and possibly some parameters. This allows significant backwards compatibility and allows sending commands in the form of strings and receiving responses from the hand in the form of a string. A list of the presently accepted strings include “RESET” and: |
| 21 | |
| 22 | • “HI” |
| 23 | • “C”, “O” |
| 24 | • “M <optional position parameter>” |
| 25 | • “HOME” |
| 26 | • “IC <optional step size parameter>”, “IO <optional step size parameter>” |
| 27 | • “TC”, “TO” |
| 28 | • “FSET <property> <value>” |
| 29 | • “FGET <property>” |
| 30 | • “FLOAD, FSAVE, FDEF” |
| 31 | • “T” |
| 32 | • “LOOP” |
| 33 | |
| 34 | The list of properties available on 280 hands is a subset of Puck 2 hand properties and virtual properties such as the ones that contain !RealTime variables. Refer to the !RealTime section for more information on !RealTime properties. The API contains documentation for 262 and 280 hands in separate source code files for each hand. The documentation is easily accessible through the supervisory tab of the !BarrettHand Control GUI. The programmer no longer needs to flip through this manual to find hand properties and their purpose, descriptions, notes, etc. The property list that each hand contains provides several useful attributes such as being read-only, global, and also a range of values that is used to validate inputs to some commands. |