// // 标志物通信 - 车库(A/B) - ZigBee // #include "GarageCommand.h" GarageCommand::GarageCommand() { SetDevice(CommandData::Devices::Garage_A); } void GarageCommand::UsingA() { SetDevice(CommandData::Devices::Garage_A); } void GarageCommand::UsingB() { SetDevice(CommandData::Devices::Garage_B); } byte* GarageCommand::CMD_PositionReset() { SetCommand(0x01, 0x01); return GetCommandArray(); } byte* GarageCommand::CMD_SetToFloor2() { SetCommand(0x01, 0x02); return GetCommandArray(); } byte* GarageCommand::CMD_SetToFloor3() { SetCommand(0x01, 0x03); return GetCommandArray(); } byte* GarageCommand::CMD_SetToFloor4() { SetCommand(0x01, 0x04); return GetCommandArray(); } byte* GarageCommand::CMD_SetToFloor(uint8_t floor) { SetCommand(0x01, floor); return GetCommandArray(); } byte* GarageCommand::CMD_QueryCurrentPos() { SetCommand(0x02, 0x01); return GetCommandArray(); } byte* GarageCommand::CMD_QueryIRStatus() { SetCommand(0x02, 0x02); return GetCommandArray(); } bool GarageCommand::IsGarageCommand(byte* data) { if ((data[1] == CommandData::Devices::Garage_A) || (data[1] == CommandData::Devices::Garage_B)) return (data[2] == ReturnMainCommand); return false; } bool GarageCommand::IsPositionData(byte* data) { if (!IsGarageCommand(data)) return false; return (data[3] == 0x01); } bool GarageCommand::IsIRData(byte* data) { if (!IsGarageCommand(data)) return false; return (data[3] == 0x02); } byte GarageCommand::CurrentPos(byte* data) { return data[4]; } bool GarageCommand::FrontIRTiggered(byte* data) { return (data[4] == 0x01); } bool GarageCommand::BackIRTiggered(byte* data) { return (data[5] == 0x01); }