#include "CommandEncoder.h" byte CommandEncoder::CheckSUM(byte main, byte data1, byte data2, byte data3) { uint16_t sum = ((uint16_t)main + (uint16_t)data1 + (uint16_t)data2 + (uint16_t)data3); return ((byte)(sum % 256)); } CommandEncoder::CommandEncoder() { cmd[0] = CommandData::FrameHead; cmd[7] = CommandData::FrameEnd; } CommandEncoder::CommandEncoder(byte ir1, byte ir2, byte ir3, byte ir4, byte ir5, byte ir6) { ir_cmd[0] = ir1; ir_cmd[1] = ir2; ir_cmd[2] = ir3; ir_cmd[3] = ir4; ir_cmd[4] = ir5; ir_cmd[5] = ir6; } CommandEncoder::CommandEncoder(byte device, byte main, byte data1, byte data2, byte data3) { cmd[0] = CommandData::FrameHead; cmd[1] = device; cmd[2] = main; cmd[3] = data1; cmd[4] = data2; cmd[5] = data3; cmd[6] = CheckSUM(main, data1, data2, data3); cmd[7] = CommandData::FrameEnd; } void CommandEncoder::SetDevice(byte device) { cmd[1] = device; } void CommandEncoder::OverrideFrameHead(byte h1, byte h2) { cmd[0] = h1; cmd[1] = h2; } void CommandEncoder::SetCommand(byte ir1, byte ir2, byte ir3, byte ir4, byte ir5, byte ir6) { ir_cmd[0] = ir1; ir_cmd[1] = ir2; ir_cmd[2] = ir3; ir_cmd[3] = ir4; ir_cmd[4] = ir5; ir_cmd[5] = ir6; } void CommandEncoder::SetCommand(byte main, byte data1, byte data2, byte data3) { cmd[2] = main; cmd[3] = data1; cmd[4] = data2; cmd[5] = data3; cmd[6] = CheckSUM(main, data1, data2, data3); } byte* CommandEncoder::GetCommandArray() { return cmd; } byte* CommandEncoder::GetIRCommandArray() { return ir_cmd; }