|
|
|
|
#include "Handler.h"
|
|
|
|
|
|
|
|
|
|
void Handler::ZigBeeRx_Handler(uint8_t* mar)
|
|
|
|
|
{
|
|
|
|
|
switch (mar[1])
|
|
|
|
|
{
|
|
|
|
|
case 0x02: //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
MainCarRx_Handler(mar); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>
|
|
|
|
|
break;
|
|
|
|
|
case 0x03: //<2F><>բ<EFBFBD><D5A2>־<EFBFBD><D6BE>
|
|
|
|
|
break;
|
|
|
|
|
case 0x04: //LED<45><44>ʾ<EFBFBD><CABE>־<EFBFBD><EFBFBD><EFA3A8><EFBFBD><EFBFBD><DEB7>أ<EFBFBD>
|
|
|
|
|
break;
|
|
|
|
|
case 0x05: //<2F><><EFBFBD>峵<EFBFBD><E5B3B5><EFBFBD><EFBFBD>־<EFBFBD><D6BE>B
|
|
|
|
|
break;
|
|
|
|
|
case 0x06: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE>
|
|
|
|
|
break;
|
|
|
|
|
case 0x07: //<2F><><EFBFBD>ⱨ<EFBFBD><E2B1A8><EFBFBD><EFBFBD>־<EFBFBD><D6BE>
|
|
|
|
|
break;
|
|
|
|
|
case 0x08: //TFT<46><54>ʾ<EFBFBD><CABE>־<EFBFBD><D6BE>B
|
|
|
|
|
break;
|
|
|
|
|
case 0x09: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE>
|
|
|
|
|
break;
|
|
|
|
|
case 0x0A: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD><DFB3><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE>
|
|
|
|
|
break;
|
|
|
|
|
case 0x0B: //TFT<46><54>ʾ<EFBFBD><CABE>־<EFBFBD><D6BE>A
|
|
|
|
|
break;
|
|
|
|
|
case 0x0C: //ETCϵͳ<CFB5><CDB3>־<EFBFBD><D6BE>
|
|
|
|
|
break;
|
|
|
|
|
case 0x0D: //<2F><><EFBFBD>峵<EFBFBD><E5B3B5><EFBFBD><EFBFBD>־<EFBFBD><D6BE>A
|
|
|
|
|
break;
|
|
|
|
|
case 0x0E: //<2F><>ͨ<EFBFBD>Ʊ<EFBFBD>ע<EFBFBD><D7A2>A
|
|
|
|
|
break;
|
|
|
|
|
case 0x0F: //<2F><>ͨ<EFBFBD>Ʊ<EFBFBD>־<EFBFBD><D6BE>B
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Handler::OpenMVRx_Handler(uint8_t* mac)
|
|
|
|
|
{
|
|
|
|
|
switch (mac[2])
|
|
|
|
|
{
|
|
|
|
|
case 0x91: //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
case 0x92: //<2F><>ά<EFBFBD><CEAC>ʶ<EFBFBD><CAB6>
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Handler::MainCarRx_Handler(uint8_t* com)
|
|
|
|
|
{
|
|
|
|
|
switch (com[2])
|
|
|
|
|
{
|
|
|
|
|
case 0x01: //ֹͣ
|
|
|
|
|
DCMotor.Stop();
|
|
|
|
|
break;
|
|
|
|
|
case 0x02: //ǰ<><C7B0>
|
|
|
|
|
DCMotor.Go(com[3], (com[4] + (com[5] << 8)));
|
|
|
|
|
ZigBee_back[2] = 0x03;
|
|
|
|
|
break;
|
|
|
|
|
case 0x03: //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
DCMotor.Back(com[3], (com[4] + (com[5] << 8)));
|
|
|
|
|
ZigBee_back[2] = 0x03;
|
|
|
|
|
break;
|
|
|
|
|
case 0x04: //<2F><>ת
|
|
|
|
|
DCMotor.TurnLeft(com[3]);
|
|
|
|
|
ZigBee_back[2] = 0x02;
|
|
|
|
|
break;
|
|
|
|
|
case 0x05: //<2F><>ת
|
|
|
|
|
DCMotor.TurnRight(com[3]);
|
|
|
|
|
ZigBee_back[2] = 0x02;
|
|
|
|
|
break;
|
|
|
|
|
case 0x06: //ѭ<><D1AD>
|
|
|
|
|
DCMotor.CarTrack(com[3]);
|
|
|
|
|
ZigBee_back[2] = 0x00;
|
|
|
|
|
break;
|
|
|
|
|
case 0x07: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
Command.Judgment(Command.command01); //<2F><><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>
|
|
|
|
|
ExtSRAMInterface.ExMem_Write_Bytes(Command.command01, 8); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
break;
|
|
|
|
|
case 0x10: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
infrare_com[0] = com[3];
|
|
|
|
|
infrare_com[1] = com[4];
|
|
|
|
|
infrare_com[2] = com[5];
|
|
|
|
|
break;
|
|
|
|
|
case 0x11: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
infrare_com[3] = com[3];
|
|
|
|
|
infrare_com[4] = com[4];
|
|
|
|
|
infrare_com[5] = com[5];
|
|
|
|
|
break;
|
|
|
|
|
case 0x12: //<2F><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
Infrare.Transmition(infrare_com, 6);
|
|
|
|
|
break;
|
|
|
|
|
case 0x20: //<2F><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>
|
|
|
|
|
if (com[3] == 0x01)
|
|
|
|
|
LED.LeftTurnOn();
|
|
|
|
|
else
|
|
|
|
|
LED.LeftTurnOff();
|
|
|
|
|
if (com[4] == 0x01)
|
|
|
|
|
LED.RightTurnOn();
|
|
|
|
|
else
|
|
|
|
|
LED.RightTurnOff();
|
|
|
|
|
break;
|
|
|
|
|
case 0x30: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
if (com[3] == 0x01)
|
|
|
|
|
BEEP.TurnOn();
|
|
|
|
|
else
|
|
|
|
|
BEEP.TurnOff();
|
|
|
|
|
break;
|
|
|
|
|
case 0x40: //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
break;
|
|
|
|
|
case 0x50: //LCDͼƬ<CDBC>Ϸ<EFBFBD>ҳ
|
|
|
|
|
Command.Judgment(Command.command13);
|
|
|
|
|
ExtSRAMInterface.ExMem_Write_Bytes(Command.command13, 8);
|
|
|
|
|
break;
|
|
|
|
|
case 0x51: //LCDͼƬ<CDBC>·<EFBFBD>ҳ
|
|
|
|
|
Command.Judgment(Command.command14);
|
|
|
|
|
ExtSRAMInterface.ExMem_Write_Bytes(Command.command14, 8);
|
|
|
|
|
break;
|
|
|
|
|
case 0x61: //<2F><>Դ<EFBFBD><D4B4>һ<EFBFBD><D2BB>
|
|
|
|
|
Infrare.Transmition(Command.HW_Dimming1, 4);
|
|
|
|
|
break;
|
|
|
|
|
case 0x62: //<2F><>Դ<EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD>
|
|
|
|
|
Infrare.Transmition(Command.HW_Dimming2, 4);
|
|
|
|
|
break;
|
|
|
|
|
case 0x63: //<2F><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
Infrare.Transmition(Command.HW_Dimming3, 4);
|
|
|
|
|
break;
|
|
|
|
|
case 0x80: //<2F>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>
|
|
|
|
|
if (com[3] == 0x01)
|
|
|
|
|
{
|
|
|
|
|
sendflag = 0x01; //<2F>ϴ<EFBFBD><CFB4>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
sendflag = 0x00; //<2F>ر<EFBFBD><D8B1>ϴӳ<CFB4><D3B3><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
case 0x91:
|
|
|
|
|
if (com[3] == 0x03) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
//Servoangle_control(com[4]);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Handler::Key_0()
|
|
|
|
|
{
|
|
|
|
|
BEEP.TurnOn();
|
|
|
|
|
delay(50);
|
|
|
|
|
BEEP.TurnOff();
|
|
|
|
|
OpenMVOpt::Servo_Control(-60);
|
|
|
|
|
OpenMVOpt::OpenMV_Track(50);
|
|
|
|
|
DCMotor.TurnLeft_Code(80, 760);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Handler::Key_1()
|
|
|
|
|
{
|
|
|
|
|
BEEP.TurnOn();
|
|
|
|
|
delay(50);
|
|
|
|
|
BEEP.TurnOff();
|
|
|
|
|
delay(50);
|
|
|
|
|
OpenMVOpt::Servo_Control(0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Handler::Key_2()
|
|
|
|
|
{
|
|
|
|
|
DebugOpt::DebugRun();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Handler::Key_3()
|
|
|
|
|
{
|
|
|
|
|
DebugOpt::DebugServo();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Handler::KEY_Handler(uint8_t k_value)
|
|
|
|
|
{
|
|
|
|
|
switch (k_value)
|
|
|
|
|
{
|
|
|
|
|
case 1:
|
|
|
|
|
Key_0();
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
Key_1();
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
Key_2();
|
|
|
|
|
break;
|
|
|
|
|
case 4:
|
|
|
|
|
Key_3();
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|