void handleButtonEventMessage(int messageId, uint64_t data, CanSignal* signals, int signalCount, Listener* listener) { CanSignal* buttonTypeSignal = lookupSignal("button_type", signals, signalCount); CanSignal* buttonStateSignal = lookupSignal("button_state", signals, signalCount); if(buttonTypeSignal == NULL || buttonStateSignal == NULL) { debug("Unable to find button type and state signals"); return; } float rawButtonType = decodeCanSignal(buttonTypeSignal, data); float rawButtonState = decodeCanSignal(buttonStateSignal, data); bool send = true; const char* buttonType = stateHandler(buttonTypeSignal, signals, signalCount, rawButtonType, &send); if(!send || buttonType == NULL) { debug("Unable to find button type corresponding to %f", rawButtonType); return; } const char* buttonState = stateHandler(buttonStateSignal, signals, signalCount, rawButtonState, &send); if(!send || buttonState == NULL) { debug("Unable to find button state corresponding to %f", rawButtonState); return; } sendEventedStringMessage(BUTTON_EVENT_GENERIC_NAME, buttonType, buttonState, listener); }
void ContainerGrabber::update() { stateHandler(leftArm); stateHandler(rightArm); SmartDashboard::PutNumber("Left Arm State: ", leftArm->state); }