Skip to content

Events

This page documents events sent from the Nimbus CloudWash Payment Panel to the host system.

Overview

The device sends event notifications when user interactions occur. Events use the same command protocol as screen commands but are sent from the device to the host.

Event Structure

Events follow the standard command structure:

FieldSizeValueDescription
type1 byte0x21 ('!')WRITE command
group1 byte0x02EVENTS group
id1 bytevariesEvent type ID
payload_len1 bytevariesLength of payload
payloadvariableEvent data
crc162 bytesCRC16 checksum (little-endian)

Button Press Event

Event ID: 0x01

The device has 5 physical buttons (B1-B5). This event is sent when any button is pressed.

Structure

FieldSizeValueDescription
type1 byte0x21WRITE
group1 byte0x02EVENTS
id1 byte0x01BUTTON_PRESS
payload_len1 byte0x011 byte payload
payload1 byte0x01-0x05Button ID
crc162 bytesCRC16

Button IDs

IDButtonDescription
0x01B1Button 1 (leftmost)
0x02B2Button 2
0x03B3Button 3 (center)
0x04B4Button 4
0x05B5Button 5 (rightmost)

Binary Examples

Button 1 Press Event

Command Structure:
  type:        0x21  (WRITE)
  group:       0x02  (EVENTS)
  id:          0x01  (BUTTON_PRESS)
  payload_len: 0x01  (1 byte)
  payload:     0x01  (Button B1)
  crc16:       0xE5F1 (little-endian: F1 E5)

Binary: 21 02 01 01 01 F1 E5

Button 3 Press Event

Command Structure:
  type:        0x21  (WRITE)
  group:       0x02  (EVENTS)
  id:          0x01  (BUTTON_PRESS)
  payload_len: 0x01  (1 byte)
  payload:     0x03  (Button B3)
  crc16:       0xA5B3 (little-endian: B3 A5)

Binary: 21 02 01 01 03 B3 A5

Implementation Reference

Event definitions are located in Inc/communication/commands.h under the CMD::EVENTS namespace.

cpp
namespace EVENTS {
    static const uint8_t GROUP = 0x02;

    namespace ID {
        static const uint8_t BUTTON_PRESS = 0x01;
    }

    namespace BUTTON {
        static const uint8_t B1 = 1;
        static const uint8_t B2 = 2;
        static const uint8_t B3 = 3;
        static const uint8_t B4 = 4;
        static const uint8_t B5 = 5;
    }
}