Skip to content

Documentation for read_pendant_state

As a sanity-check, you could try reading the pendant data directly, there is no need to Shift-Idle before this:

Open a terminal and run "candump can0"
Open another terminal and run "cansend can0 00A#2B"

Here are the safety properties:
https://web.barrett.com/support/WAM_Documentation/SafetyProperties.pdf

Here is the 32-bit response you will get (the last 4 bytes of the CAN payload):
https://web.barrett.com/support/WAM_Documentation/PendantData.xls

The CAN frame will come back from the Safety Board in the form:
AB 00 LL mm MM HH
Where:
0xAB = 0x80 (set) | 0x2B (PendantState)
LL = Low byte
mm = Mid-low byte
MM = Mid-high byte
HH = High byte

---

Also, if you do get a valid response using read_pendant_state, here is how to parse it:

ButtonState Active/Idle "7-Seg" (7-Dec) Vel Trq Volt Heartbeat Other AllSafe HasFaults
N aI "0" (63) S S S S S 1 0

ButtonState:
E = E-STOP is latched
A = Shift-Active is being pressed
I = Shift-Idle is being pressed
N = No buttons are being pressed

Active/Idle:
A = Active button is lit
a = Active button is not lit
I = Idle button is lit
i = Idle button is not lit

"7-Seg":
This is the character displayed on the 7-Seg LED display

(7-Dec):
This is the decimal value of the byte that represents how the character is drawn (not the ASCII value).
The byte is: [ 0 MID TL BL BOT BR TR TOP ] where TL = Top Left LED (for example).

Vel, Trq, Volt, Heartbeat, Other:
S = Safe/Green
W = Warning/Yellow
F = Fault/Red

Note: "Other" is only used to indicate an E-Stop.

AllSafe:
1 = Vel/Trq/Volt/Heartbeat/Other are all Safe/Green
0 = Otherwise

HasFaults:
1 = There is at least one Fault/Red
0 = Otherwise