diff --git a/terminal/master/src/main.cpp b/terminal/master/src/main.cpp index 907bf6d..a3e62c8 100644 --- a/terminal/master/src/main.cpp +++ b/terminal/master/src/main.cpp @@ -5,15 +5,18 @@ void resetPuzzles(); /* ========================================================= */ const uint8_t ARCHIV_ADDR = 0x10; -const uint8_t CMD_POWER_OFF = 0x01; -const uint8_t CMD_LIGHT_INDEX = 0x02; -const uint8_t CMD_DRAWER_INDEX = 0x03; + +const uint8_t BITMASK_CMD = 0b00011000; +const uint8_t BITMASK_PAYLOAD = 0b00000111; + +const uint8_t CMD_POWER_OFF = 0b00001000; +const uint8_t CMD_LIGHT_INDEX = 0b00010000; +const uint8_t CMD_DRAWER_INDEX = 0b00011000; void setDrawerLight(uint8_t index) { Wire.beginTransmission(ARCHIV_ADDR); - Wire.write(CMD_LIGHT_INDEX); - Wire.write(index); + Wire.write(CMD_LIGHT_INDEX | (index & BITMASK_PAYLOAD)); Wire.endTransmission(); } @@ -27,8 +30,7 @@ void turnLightsOff() void openDrawer(uint8_t index) { Wire.beginTransmission(ARCHIV_ADDR); - Wire.write(CMD_DRAWER_INDEX); - Wire.write(index); + Wire.write(CMD_DRAWER_INDEX | (index & BITMASK_PAYLOAD)); Wire.endTransmission(); } /* ========================================================= */