void sendOccupancyStatus(const char* seatId, uint64_t data, CanSignal* lowerSignal, CanSignal* upperSignal, CanSignal* signals, int signalCount, Listener* listener) { if(lowerSignal == NULL || upperSignal == NULL) { debug("Upper or lower occupancy signal for seat ID %s is NULL, " "vehicle may not support", seatId); return; } float rawLowerStatus = decodeCanSignal(lowerSignal, data); float rawUpperStatus = decodeCanSignal(upperSignal, data); bool send = true; bool lowerStatus = booleanHandler(NULL, signals, signalCount, rawLowerStatus, &send); bool upperStatus = booleanHandler(NULL, signals, signalCount, rawUpperStatus, &send); if(lowerStatus) { if(upperStatus) { sendEventedStringMessage("occupancy_status", seatId, "adult", listener); } else { sendEventedStringMessage("occupancy_status", seatId, "child", listener); } } else { sendEventedStringMessage("occupancy_status", seatId, "empty", listener); } }
void sendDoorStatus(const char* doorId, uint64_t data, CanSignal* signal, CanSignal* signals, int signalCount, Listener* listener) { float rawAjarStatus = decodeCanSignal(signal, data); bool send = true; bool ajarStatus = booleanHandler(NULL, signals, signalCount, rawAjarStatus, &send); if(send && (signal->sendSame || !signal->received || rawAjarStatus != signal->lastValue)) { signal->received = true; sendEventedBooleanMessage(DOOR_STATUS_GENERIC_NAME, doorId, ajarStatus, listener); } signal->lastValue = rawAjarStatus; }
void sendDoorStatus(const char* doorId, uint64_t data, CanSignal* signal, CanSignal* signals, int signalCount, Listener* listener) { if(signal == NULL) { debug("Specific door signal for ID %s is NULL, vehicle may not support", doorId); return; } float rawAjarStatus = decodeCanSignal(signal, data); bool send = true; bool ajarStatus = booleanHandler(NULL, signals, signalCount, rawAjarStatus, &send); if(send && (signal->sendSame || !signal->received || rawAjarStatus != signal->lastValue)) { signal->received = true; sendEventedBooleanMessage(DOOR_STATUS_GENERIC_NAME, doorId, ajarStatus, listener); } signal->lastValue = rawAjarStatus; }