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
payloadvariable—Event data
crc162 bytes—CRC16 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 bytes—CRC16

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;
    }
}