You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
RaceSubCar/VoiceReportCommand.h

77 lines
1.8 KiB
C

// VoiceRepotCommand.h
2 years ago
#ifndef _VOICEREPORTCOMMAND_h
#define _VOICEREPORTCOMMAND_h
#if defined(ARDUINO) && ARDUINO >= 100
#include "arduino.h"
#else
#include "WProgram.h"
#endif
#include "CommandEncoder.h"
/*
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD>
* 1. <EFBFBD><EFBFBD><EFBFBD>ݵIJ<EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD>ѯ<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǵӳ<EFBFBD><EFBFBD><EFBFBD>
* 2. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϳɣ<EFBFBD><EFBFBD>ӳ<EFBFBD><EFBFBD><EFBFBD>ZigBee<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8λ<EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><EFBFBD>´˹<EFBFBD><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD>ʵ<EFBFBD>֡<EFBFBD>
*/
class VoiceReportCommand : private CommandEncoder
{
private:
const byte RT_VoiceCommand = 0x01;
const byte RT_DateCommand = 0x02;
const byte RT_TimeCommand = 0x03;
const byte RT_WeatherTempCommand = 0x04;
public:
enum class VoiceCmd
{
Fu_Qiang_Lu_Zhan = 0x00, //<2F><>ǿ·վ
Min_Zhu_Lu_Zhan = 0x01, //<2F><><EFBFBD><EFBFBD>·վ
Wen_Ming_Lu_Zhan = 0x02, //<2F><><EFBFBD><EFBFBD>·վ
He_Xie_Lu_Zhan = 0x03, //<2F><>г·վ
Ai_Guo_Lu_Zhan = 0x04, //<2F><><EFBFBD><EFBFBD>·վ
Jing_Ye_Lu_Zhan = 0x05, //<2F><>ҵ·վ
You_Shan_Lu_Zhan = 0x06 //<2F><><EFBFBD><EFBFBD>·վ
};
enum class WeatherCmd
{
Wind = 0x00, //<2F><><EFBFBD><EFBFBD>
Cloudy = 0x01, //<2F><><EFBFBD><EFBFBD>
Sunny = 0x02, //<2F><>
Snow = 0x03, //Сѩ
Rain = 0x04, //С<><D0A1>
Overcast = 0x05 //<2F><><EFBFBD><EFBFBD>
};
enum class TextEncoding
{
GB2312 = 0x00,
GBK = 0x01,
BIG5 = 0x02,
Unicode = 0x03
};
public:
VoiceReportCommand();
public:
byte* CMD_ReportSpecVoice(VoiceCmd type);
byte* CMD_ReportRandomVoice();
byte* CMD_SetRTCStartDate(uint16_t year, byte month, byte day);
byte* CMD_ReadRTCDate();
byte* CMD_SetRTCStartTime(byte hour, byte minute, byte second);
byte* CMD_ReadRTCTime();
byte* CMD_SetWeatherAndTemperature(WeatherCmd weather, byte temp);
byte* CMD_QueryWeatherAndTemperator();
public:
bool IsVoiceCommand(byte* cmd);
bool IsVoiceAvailable(byte* cmd);
bool ReadRTCDate(byte* cmd, uint16_t& year, byte& month, byte& day);
bool ReadRTCTime(byte* cmd, byte& hour, byte& minute, byte& second);
bool ReadWeatherAndTemperature(byte* cmd, WeatherCmd& weather, byte& temp);
};
#endif