diff --git a/红外/ir_config.bin b/红外/ir_config.bin new file mode 100644 index 0000000..26c9843 Binary files /dev/null and b/红外/ir_config.bin differ diff --git a/红外/ir_config.json b/红外/ir_config.json new file mode 100644 index 0000000..97c69c5 --- /dev/null +++ b/红外/ir_config.json @@ -0,0 +1,152 @@ +{ + "protocol_info": { + "protocol_type": "NEC", + "bits": 96 + }, + "raw_data": { + "power_on": { + "raw": "PULSEDISTANCE", + "protocol": 184, + "bits": 1807, + "timestamp": "2025-05-28 21:27:58" + }, + "power_off": { + "raw": "PULSEDISTANCE", + "protocol": 184, + "bits": 1805, + "timestamp": "2025-05-28 21:28:05" + }, + "cool_16": { + "raw": "PULSEDISTANCE", + "protocol": 184, + "bits": 1803, + "timestamp": "2025-05-28 21:28:10" + }, + "cool_17": { + "raw": "PULSEDISTANCE", + "protocol": 184, + "bits": 1805, + "timestamp": "2025-05-28 21:28:16" + }, + "cool_18": { + "raw": "PULSEDISTANCE", + "protocol": 184, + "bits": 1805, + "timestamp": "2025-05-28 21:28:20" + }, + "cool_19": { + "raw": "PULSEDISTANCE", + "protocol": 184, + "bits": 1809, + "timestamp": "2025-05-28 21:28:24" + }, + "cool_20": { + "raw": "PULSEDISTANCE", + "protocol": 184, + "bits": 1802, + "timestamp": "2025-05-28 21:28:30" + }, + "heat_16": { + "raw": "PULSEDISTANCE", + "protocol": 184, + "bits": 1801, + "timestamp": "2025-05-28 21:28:37" + }, + "heat_17": { + "raw": "PULSEDISTANCE", + "protocol": 184, + "bits": 1804, + "timestamp": "2025-05-28 21:28:44" + }, + "heat_18": { + "raw": "PULSEDISTANCE", + "protocol": 184, + "bits": 1803, + "timestamp": "2025-05-28 21:28:49" + }, + "heat_19": { + "raw": "PULSEDISTANCE", + "protocol": 184, + "bits": 1805, + "timestamp": "2025-05-28 21:28:53" + }, + "heat_20": { + "raw": "PULSEDISTANCE", + "protocol": 184, + "bits": 1801, + "timestamp": "2025-05-28 21:28:57" + }, + "mode_cool": { + "raw": "PULSEDISTANCE", + "protocol": 184, + "bits": 1804, + "timestamp": "2025-05-28 21:29:02" + }, + "mode_dry": { + "raw": "PULSEDISTANCE", + "protocol": 184, + "bits": 1811, + "timestamp": "2025-05-28 21:29:06" + }, + "mode_fan": { + "raw": "PULSEDISTANCE", + "protocol": 184, + "bits": 1809, + "timestamp": "2025-05-28 21:29:10" + }, + "up_down": { + "raw": "PULSEDISTANCE", + "protocol": 184, + "bits": 1811, + "timestamp": "2025-05-28 21:29:14" + }, + "left_right": { + "raw": "PULSEDISTANCE", + "protocol": 184, + "bits": 1807, + "timestamp": "2025-05-28 21:29:19" + }, + "fan_low": { + "raw": "PULSEDISTANCE", + "protocol": 184, + "bits": 1807, + "timestamp": "2025-05-28 21:29:23" + }, + "fan_mid": { + "raw": "PULSEDISTANCE", + "protocol": 184, + "bits": 1811, + "timestamp": "2025-05-28 21:29:26" + }, + "fan_high": { + "raw": "PULSEDISTANCE", + "protocol": 184, + "bits": 1809, + "timestamp": "2025-05-28 21:29:32" + }, + "turbo_on": { + "raw": "PULSEDISTANCE", + "protocol": 184, + "bits": 1808, + "timestamp": "2025-05-28 21:29:36" + }, + "turbo_off": { + "raw": "PULSEDISTANCE", + "protocol": 184, + "bits": 1809, + "timestamp": "2025-05-28 21:29:47" + }, + "sleep_on": { + "raw": "PULSEDISTANCE", + "protocol": 184, + "bits": 1804, + "timestamp": "2025-05-28 21:29:51" + }, + "sleep_off": { + "raw": "PULSEDISTANCE", + "protocol": 184, + "bits": 1804, + "timestamp": "2025-05-28 21:29:55" + } + } +} \ No newline at end of file diff --git a/红外/irre(1).py b/红外/irre(1).py new file mode 100644 index 0000000..9bd8423 --- /dev/null +++ b/红外/irre(1).py @@ -0,0 +1,206 @@ +import os +import re +import json +import struct +from datetime import datetime + +# 常量定义 +STEPS = [ + {"desc": "1. [基础] 按电源键开机", "cmd": "power_on"}, + {"desc": "2. [基础] 按电源键关机", "cmd": "power_off"}, + *[{"desc": f"3.{i+1} [制冷] 设置{i+16}℃", "cmd": f"cool_{i+16}"} for i in range(5)],#基础温度为16 + *[{"desc": f"4.{i+1} [制热] 设置{i+16}℃", "cmd": f"heat_{i+16}"} for i in range(5)], + {"desc": "5.1 [模式] 制冷模式", "cmd": "mode_cool"}, + {"desc": "5.2 [模式] 除湿模式", "cmd": "mode_dry"}, + {"desc": "5.3 [模式] 送风模式", "cmd": "mode_fan"}, + {"desc": "5.4 [模式] 上下风", "cmd": "up_down"},#上下风 + {"desc": "6.1 [风速] 左右风", "cmd": "left_right"},#左右风 + {"desc": "6.2 [风速] 低速", "cmd": "fan_low"}, + {"desc": "6.3 [风速] 中速", "cmd": "fan_mid"}, + {"desc": "6.4 [风速] 高速", "cmd": "fan_high"}, + {"desc": "7.1 [特殊] 超强风速", "cmd": "turbo_on"},#超强风速 + {"desc": "7.2 [特殊] 静音风速", "cmd": "turbo_off"},#静音风速 + {"desc": "7.5 [特殊] 睡眠模式开", "cmd": "sleep_on"}, + {"desc": "7.6 [特殊] 睡眠模式关", "cmd": "sleep_off"}, + + + + +] + +def validate_signal(data): + """增强版信号验证""" + pattern = r""" + uint16_t\s+rawData\[(\d+)\]\s*=\s* # 匹配数组声明 + {([\d,\s]+)};?[\s\S]*? # 捕获数组内容 + Protocol\s*=\s*(\w+) # 协议类型 + (?:.*?(\d+)\s+bits)? # 可选位数匹配 + """ + match = re.search(pattern, data, re.VERBOSE | re.IGNORECASE) + + if not match: + return False, None, None, None + + try: + arr_length = int(match.group(1)) + raw_data = list(map(int, match.group(2).split(','))) + protocol = match.group(3).upper() + bits = int(match.group(4)) if match.group(4) else len(raw_data)*16 + + # 数据长度校验 + if len(raw_data) != arr_length: + print(f"数据长度不匹配: 声明{arr_length} 实际{len(raw_data)}") + return False, None, None, None + + return raw_data, protocol, bits, len(data) + except Exception as e: + print(f"解析错误: {str(e)}") + return False, None, None, None + +def analyze_signals(collected_data): + """执行控制变量分析""" + analysis = {"protocols": {}} + + # 按协议分组 + protocol_groups = {} + for cmd, data in collected_data.items(): + proto = data['protocol'] + protocol_groups.setdefault(proto, []).append(data) + + # 分析每个协议 + for proto, group in protocol_groups.items(): + proto_analysis = { + "sample_count": len(group), + "fixed_bits": [], + "variable_bits": [], + "template": [] + } + + # 位级分析 + max_length = max(len(d["raw"]) for d in group) + bit_analysis = [[] for _ in range(max_length)] + + for data in group: + for i, val in enumerate(data["raw"]): + bit_analysis[i].append(val) + + # 识别固定/可变位 + for idx, values in enumerate(bit_analysis): + unique_vals = set(values) + if len(unique_vals) == 1: + proto_analysis["fixed_bits"].append({ + "position": idx, + "value": values[0] + }) + else: + proto_analysis["variable_bits"].append({ + "position": idx, + "values": list(unique_vals) + }) + + # 生成协议模板 + proto_analysis["template"] = [ + "V" if any(idx == b["position"] for b in proto_analysis["variable_bits"]) + else group[0]["raw"][idx] + for idx in range(len(group[0]["raw"])) + ] + + analysis["protocols"][proto] = proto_analysis + + return analysis + +def collect_signals(): + """主采集流程""" + collected = {} + print("\n空调红外信号采集系统启动") + + for step_num, step in enumerate(STEPS, 1): + while True: + print(f"\n[{step_num}/{len(STEPS)}] {step['desc']}") + print("请输入红外信号数据(输入'exit'退出):") + data = input().strip() + + if data.lower() == 'exit': + if input("确认退出?(y/n): ").lower() == 'y': + save_data(collected) + return + + valid, raw, proto, bits = validate_signal(data) + if valid: + collected[step['cmd']] = { + "raw": raw, + "protocol": proto, + "bits": bits, + "timestamp": datetime.now().strftime("%Y-%m-%d %H:%M:%S") + } + print(f"√ 已记录:{step['cmd']}") + break + print("× 格式错误!需包含:\n1.完整C数组 2.协议信息 3.正确数据格式") + + analysis = analyze_signals(collected) + save_data(collected, analysis) + print(f"\n采集完成!有效数据:{len(collected)}条") + +def convert_to_bin(json_path): + """将JSON配置转换为二进制格式""" + with open(json_path, 'r') as f: + config = json.load(f) + + bin_data = bytearray() + for cmd in config['raw_data'].values(): + # 协议类型(4字节) + 位数(4字节) + 时间戳(12字节) + bin_data.extend(struct.pack(' +#include + +#pragma pack(push, 1) +typedef struct { + uint32_t protocol; // 协议类型 (必须与IRRemote库定义一致) + uint32_t bits; // 有效数据位数 (影响后续信号重组精度) + /* 精简后的数据结构: + * 1. 总大小8字节 (原14字节) + * 2. 删除时间戳字段后文件体积减少42% + * 3. 提升ESP32存储和传输效率 */ +} BinHeader; +#pragma pack(pop) + +class IRController { +public: + static void sendIRSignal(uint16_t* rawData, size_t length, uint8_t irPin = 4); +}; + + + +bool IRController::loadConfig(const char* path, BinHeader* header, uint16_t* rawData) { +// File file = SD.open(path); +// if(!file) return false; + +// file.read((byte*)header, sizeof(BinHeader)); +// size_t dataSize = (header->bits + 15) / 16 * 2; +// file.read((byte*)rawData, dataSize); +// file.close(); + return true; +} + +void IRController::sendIRSignal(uint16_t* rawData, size_t length, uint8_t irPin) { + IrSender.sendRaw(rawData, length, 38, false); + delay(100); +} + +#endif \ No newline at end of file diff --git a/红外/红外协议.txt b/红外/红外协议.txt new file mode 100644 index 0000000..e961fc5 --- /dev/null +++ b/红外/红外协议.txt @@ -0,0 +1,49 @@ +[基础] 按电源键开机 uint16_t rawData[371] = {9080,4520, 580,570, 530,570, 580,570, 580,570, 530,620, 530,1720, 530,1720, 530,620, 580,570, 530,570, 580,570, 530,1770, 530,1720, 530,1720, 530,620, 530,620, 530,1720, 530,1720, 530,570, 630,520, 580,1720, 530,620, 530,570, 530,620, 530,1720, 580,570, 580,570, 530,570, 580,570, 530,1720, 580,570, 530,570, 580,620, 530,1720, 530,570, 580,1720, 530,620, 530,570, 530,570, 580,1720, 530,570, 580,620, 530,570, 580,520, 580,620, 530,570, 580,570, 530,620, 530,570, 580,570, 530,620, 530,1720, 580,1670, 580,1720, 580,1670, 580,570, 580,570, 530,570, 580,570, 580,570, 530,570, 580,570, 580,1670, 580,570, 580,1670, 580,1720, 530,570, 580,570, 580,1670, 580,520, 630,520, 580,570, 580,1670, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,570, 580,520, 580,570, 580,520, 630,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 630,520, 580,570, 530,570, 580,570, 580,570, 530,620, 530,620, 530,1720, 530,620, 530,570, 530,1770, 530,570, 530,1770, 530,570, 530,620, 530,1770, 530,1720, 530,620, 480,1770, 530,620, 530,570, 530,1770, 480,1770, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,1770, 480,670, 480,1770, 480,670, 480,670, 480,1770, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 530,1770, 480,620, 530,1770, 480,620, 530,1770, 480,620, 530,1770, 480,1770, 480}; // Protocol=PulseDistance Raw-Data=0xD5000025006594 184 bits LSB first + +[基础] 按电源键关机 uint16_t rawData[371] = {9080,4520, 580,570, 530,620, 530,570, 580,570, 580,570, 530,1720, 580,1670, 580,570, 580,520, 630,570, 530,570, 530,1770, 530,1720, 580,1670, 530,620, 580,570, 530,1720, 530,1720, 580,570, 580,570, 530,1720, 530,570, 580,570, 580,570, 530,620, 530,620, 530,570, 530,570, 630,570, 530,1720, 580,570, 530,570, 580,520, 630,1670, 580,570, 580,1670, 580,570, 580,570, 530,570, 580,1720, 580,520, 580,570, 580,570, 580,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,1670, 580,1670, 630,1670, 580,1670, 580,570, 580,520, 630,520, 580,570, 580,570, 580,520, 580,570, 580,1670, 580,570, 580,1670, 630,1670, 580,520, 580,570, 580,1670, 630,520, 580,570, 580,520, 630,1670, 580,520, 630,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,620, 530,570, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,1770, 480,670, 480,670, 480,1770, 480,670, 480,1770, 480,670, 480,620, 480,1820, 480,1770, 480,670, 480,1770, 480,670, 480,620, 530,1770, 480,1770, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 530,1770, 480,620, 530,1770, 480,620, 530,620, 480,1770, 530,620, 480,670, 480,670, 480,670, 430,670, 480,670, 480,670, 430,670, 480,670, 480,670, 430,670, 480,670, 430,720, 430,670, 480,670, 430,720, 430,670, 480,670, 430,720, 430,720, 430,1820, 430,720, 430,1820, 430,720, 430,1820, 430,1820, 480}; // Protocol=PulseDistance Raw-Data=0xD4000025006594 184 bits LSB first + +制冷16 uint16_t rawData[371] = {9080,4520, 580,570, 580,570, 580,570, 530,570, 580,570, 580,1670, 580,1720, 530,570, 580,520, 630,520, 580,570, 580,1720, 530,1720, 580,1670, 580,570, 580,570, 530,1720, 580,1670, 580,570, 580,520, 580,1720, 580,520, 580,570, 580,570, 580,1720, 530,570, 580,1720, 530,570, 580,520, 630,520, 580,570, 580,570, 580,570, 530,1720, 580,520, 580,1720, 580,520, 580,570, 580,520, 630,1670, 580,570, 580,570, 530,570, 580,570, 580,570, 530,570, 580,570, 580,520, 630,570, 530,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,570, 580,520, 580,570, 580,1720, 530,570, 580,1720, 530,1720, 580,1670, 580,1720, 530,1720, 580,520, 580,570, 580,1720, 580,1670, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 580,570, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,570, 530,570, 530,620, 530,620, 530,1720, 530,620, 530,620, 530,1720, 530,620, 530,1720, 530,620, 480,620, 530,1770, 530,1720, 530,620, 530,1720, 530,620, 530,570, 530,1770, 530,1720, 530,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,1770, 480,1770, 480,670, 480,620, 530,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,1770, 530,1770, 480,670, 480,670, 430,1820, 480,670, 430,670, 480}; // Protocol=PulseDistance Raw-Data=0x26000006006594 184 bits LSB first + +制冷17 uint16_t rawData[371] = {9080,4470, 630,520, 580,570, 580,520, 630,570, 530,570, 580,1720, 530,1720, 580,570, 530,570, 580,570, 580,570, 580,1670, 580,1670, 580,1720, 530,570, 580,570, 580,1720, 530,1720, 580,520, 580,570, 580,1720, 530,570, 580,570, 580,570, 530,1720, 580,570, 530,1720, 580,570, 530,570, 580,520, 630,520, 580,570, 630,520, 580,1670, 580,570, 580,1670, 580,570, 580,570, 530,570, 580,1720, 530,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 630,1670, 580,570, 580,1670, 580,520, 630,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,570, 530,570, 580,520, 630,1670, 580,570, 580,1670, 580,1720, 530,1720, 580,1670, 580,1720, 530,570, 580,520, 630,1720, 530,1720, 580,520, 580,570, 580,520, 630,520, 580,570, 580,520, 580,570, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,520, 630,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 630,520, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,1720, 530,570, 530,620, 530,1720, 530,620, 530,1720, 530,620, 530,620, 530,1720, 530,1770, 480,620, 530,1770, 480,620, 530,620, 530,1720, 530,1770, 480,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,670, 480,620, 530,620, 530,1770, 480,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,1820, 480,1770, 480,670, 480,1770, 480,670, 480,1770, 480,670, 480,620, 530}; // Protocol=PulseDistance Raw-Data=0x2B000001006594 184 bits LSB first + +18 uint16_t rawData[371] = {9080,4520, 580,570, 580,570, 580,570, 530,570, 580,570, 530,1720, 580,1720, 530,570, 580,520, 630,520, 580,570, 580,1720, 530,1720, 580,1670, 580,570, 580,570, 580,1670, 580,1670, 580,520, 630,520, 580,1720, 580,570, 530,570, 580,570, 580,1670, 580,520, 630,1670, 580,570, 580,520, 580,570, 580,520, 630,520, 580,570, 580,1720, 530,570, 580,1720, 530,570, 580,570, 580,520, 580,1720, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 580,570, 580,570, 580,520, 580,1720, 580,520, 630,1670, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,1670, 580,570, 580,1670, 580,1720, 580,1670, 580,1670, 580,1720, 580,520, 580,570, 580,1670, 580,1720, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 530,620, 530,570, 580,570, 580,570, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,620, 480,620, 530,620, 530,570, 530,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,670, 480,620, 530,620, 480,1820, 480,620, 480,670, 480,1770, 480,670, 480,1770, 480,670, 480,620, 530,1770, 480,1770, 530,620, 480,1770, 480,670, 480,670, 480,1770, 480,1770, 480,670, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,670, 480,1770, 480,620, 530,670, 430,670, 480,670, 480,670, 430,670, 480,670, 480,670, 430,670, 480,670, 480,670, 430,670, 480,670, 480,670, 430,720, 430,670, 480,670, 430,670, 480,670, 430,720, 430,670, 480,670, 430,720, 430,1820, 430,720, 430,1820, 430,720, 430,1870, 380,1870, 430,720, 380,770, 380}; // Protocol=PulseDistance Raw-Data=0x35000001006594 184 bits LSB first + + +19 uint16_t rawData[371] = {9080,4520, 580,570, 530,620, 530,570, 580,570, 530,620, 530,1720, 530,1770, 530,570, 580,570, 530,620, 530,570, 530,1770, 530,1720, 580,1670, 530,620, 530,620, 530,1720, 580,1670, 580,570, 580,520, 630,1670, 530,620, 530,570, 580,570, 580,1670, 580,570, 580,1670, 580,570, 580,570, 580,520, 580,570, 580,520, 630,520, 630,1670, 580,520, 580,1720, 580,520, 580,570, 580,520, 580,1720, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 580,570, 580,570, 580,1670, 580,1670, 630,1670, 580,1670, 580,570, 580,520, 580,570, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,1670, 580,570, 580,1670, 630,1670, 580,1670, 580,1670, 630,1670, 580,520, 630,520, 580,1720, 580,1670, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 530,620, 580,520, 580,570, 580,570, 530,570, 580,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,670, 480,670, 480,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,1820, 480,620, 480,670, 480,1770, 480,670, 480,1770, 480,670, 480,620, 530,1770, 480,1770, 530,620, 480,1770, 480,670, 480,670, 480,1770, 480,1770, 480,670, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,1770, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,670, 480,670, 430,670, 480,670, 480,670, 430,670, 480,670, 430,720, 430,670, 480,670, 430,720, 430,1820, 430,1820, 480,1820, 430,1820, 430,1820, 480,1820, 430,670, 480,670, 430}; // Protocol=PulseDistance Raw-Data=0x3F000001006594 184 bits LSB first + +20 uint16_t rawData[371] = {9080,4520, 580,570, 580,570, 530,570, 580,570, 530,620, 530,1720, 580,1670, 580,570, 530,620, 530,570, 580,570, 580,1670, 580,1720, 530,1720, 530,620, 530,620, 530,1720, 530,1720, 530,570, 580,570, 580,1720, 530,570, 580,570, 580,520, 580,1720, 530,620, 530,1720, 580,520, 630,570, 530,570, 580,520, 580,570, 580,570, 580,1720, 530,570, 580,1720, 530,570, 580,520, 630,570, 530,1720, 580,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,1670, 580,570, 580,1670, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,1670, 580,570, 580,1670, 580,1670, 580,1670, 630,1670, 580,1670, 580,570, 580,520, 630,1670, 580,1670, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,1770, 480,670, 480,620, 530,1770, 480,620, 530,1770, 480,620, 530,620, 480,1820, 480,1770, 480,670, 480,1770, 480,670, 480,620, 480,1820, 480,1770, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,1770, 530,620, 480,670, 480,670, 480,670, 430,670, 480,670, 480,670, 430,670, 480,670, 480,670, 430,670, 480,670, 480,670, 430,670, 480,670, 430,720, 430,670, 480,670, 430,720, 430,720, 430,670, 430,720, 430,720, 430,1820, 430,720, 430,670, 430,1870, 430,670, 430,720, 430,720, 430,720, 430}; // Protocol=PulseDistance Raw-Data=0x9000001006594 184 bits LSB first + +制热16 uint16_t rawData[371] = {9080,4520, 580,570, 530,570, 580,570, 580,570, 530,570, 580,1720, 530,1720, 580,570, 580,570, 530,570, 530,620, 530,1720, 530,1770, 530,1720, 530,620, 530,570, 580,1720, 530,1720, 530,620, 530,570, 580,1720, 530,570, 580,570, 530,620, 580,1670, 580,570, 530,570, 580,570, 580,570, 530,1720, 530,620, 530,620, 530,570, 580,1670, 580,570, 580,1720, 530,570, 580,520, 630,520, 580,1720, 580,520, 580,570, 580,520, 580,570, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,1670, 630,520, 580,1670, 630,1670, 580,520, 630,520, 580,1670, 630,520, 580,570, 580,570, 580,1670, 580,570, 580,520, 580,570, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 630,520, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,570, 580,520, 580,570, 530,570, 580,570, 580,570, 530,620, 530,570, 580,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,1720, 530,620, 530,570, 530,1770, 530,620, 480,1770, 530,570, 530,620, 530,1770, 480,1770, 530,620, 480,1770, 530,620, 480,670, 480,1770, 480,1770, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,670, 480,620, 480,1820, 480,1770, 480,670, 480,620, 480,670, 480,620, 530,620, 530,620, 480,670, 480,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 480,670, 480,670, 480,1770, 480,1770, 530,1770, 480,620, 530,620, 480,670, 480,1770, 480}; // Protocol=PulseDistance Raw-Data=0x8E000006006594 184 bits LSB first + +17 uint16_t rawData[371] = {9080,4520, 630,520, 580,570, 580,570, 580,520, 580,570, 580,1720, 530,1720, 580,570, 530,570, 580,570, 580,520, 580,1720, 580,1670, 580,1720, 580,520, 580,570, 580,1670, 580,1720, 530,570, 580,570, 530,1720, 580,570, 530,570, 580,620, 530,1720, 530,570, 580,570, 580,570, 530,570, 580,1720, 530,570, 580,570, 580,520, 630,1670, 580,520, 630,1670, 580,520, 630,520, 580,570, 580,1720, 530,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,1720, 580,520, 580,1720, 580,520, 580,570, 580,520, 630,520, 630,520, 580,570, 580,520, 580,570, 580,570, 580,520, 580,1720, 580,520, 630,1670, 580,1670, 580,570, 580,520, 580,1720, 580,520, 580,570, 580,570, 530,1720, 530,620, 530,570, 580,570, 530,620, 530,570, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 630,520, 580,570, 580,520, 580,570, 580,570, 580,570, 580,520, 580,570, 580,520, 580,570, 580,570, 530,570, 580,570, 580,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,620, 530,1770, 480,670, 480,620, 480,1770, 530,620, 480,1820, 480,620, 480,670, 480,1770, 530,1770, 480,620, 480,1820, 480,620, 530,620, 480,1770, 480,1820, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,1770, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,670, 430,670, 480,670, 480,670, 430,670, 480,670, 480,670, 430,670, 480,670, 480,1820, 430,1820, 480,670, 430,670, 480,670, 430,720, 430,670, 430,1870, 430}; // Protocol=PulseDistance Raw-Data=0x83000001006594 184 bits LSB first + +18 uint16_t rawData[371] = {9080,4520, 580,570, 580,520, 580,570, 580,570, 580,520, 580,1720, 580,1670, 580,570, 580,570, 530,570, 580,570, 580,1670, 580,1720, 530,1720, 580,520, 580,570, 580,1720, 530,1720, 580,520, 580,570, 580,1720, 530,570, 580,570, 580,520, 580,1720, 580,520, 580,620, 530,570, 580,520, 580,1720, 580,520, 580,620, 530,570, 580,1720, 530,570, 580,1720, 530,570, 580,520, 580,570, 580,1720, 580,520, 580,570, 580,520, 580,570, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,1720, 580,520, 580,1720, 580,520, 580,570, 580,570, 580,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,1670, 580,570, 580,1670, 580,1720, 530,570, 580,570, 580,1670, 580,520, 630,520, 580,570, 580,1670, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,570, 580,520, 580,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,1770, 480,620, 530,620, 530,1720, 530,620, 530,1720, 530,620, 530,620, 480,1820, 480,1770, 480,670, 480,1770, 480,670, 480,620, 480,1820, 480,1770, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 480,670, 480,1770, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,670, 430,720, 430,1820, 480,670, 430,1820, 480,1770, 480,1820, 430,670, 480,670, 480,1770, 480}; // Protocol=PulseDistance Raw-Data=0x9D000001006594 184 bits LSB first + +19 uint16_t rawData[371] = {9030,4520, 580,620, 530,570, 580,570, 530,620, 530,570, 530,1770, 530,1720, 530,570, 580,570, 530,570, 630,520, 580,1720, 530,1720, 530,1770, 530,570, 580,570, 530,1720, 580,1720, 530,570, 530,570, 630,1670, 530,620, 530,620, 530,570, 580,1720, 530,570, 580,570, 580,570, 530,570, 580,1720, 530,570, 530,620, 530,620, 530,1720, 580,570, 530,1720, 580,570, 530,570, 580,520, 580,1770, 530,570, 530,570, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 630,520, 580,1720, 580,1670, 530,1770, 530,1720, 580,520, 580,570, 580,570, 580,570, 530,570, 580,570, 580,570, 530,570, 580,570, 580,1670, 580,570, 580,1670, 580,1720, 530,570, 580,520, 630,1670, 580,520, 630,520, 580,570, 580,1670, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 580,570, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,570, 580,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 530,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,620, 530,1720, 530,620, 530,620, 480,1770, 530,620, 530,1720, 530,620, 480,620, 530,1770, 530,1720, 530,620, 530,1720, 530,620, 530,570, 530,1770, 480,1820, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,1770, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 480,670, 480,620, 530,620, 530,620, 480,670, 480,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,1770, 480,1770, 530,1770, 480,620, 530,1770, 480,620, 530,620, 480,1770, 530}; // Protocol=PulseDistance Raw-Data=0x97000001006594 184 bits LSB first + +20 uint16_t rawData[371] = {9080,4520, 580,570, 580,570, 580,520, 580,570, 580,570, 530,1720, 580,1720, 530,570, 580,570, 580,570, 530,570, 580,1720, 530,1720, 580,1670, 580,570, 580,570, 530,1720, 580,1670, 580,570, 580,570, 530,1720, 580,570, 530,570, 580,570, 580,1670, 580,570, 580,570, 530,570, 580,570, 580,1670, 580,570, 580,570, 530,570, 580,1720, 530,570, 580,1720, 530,570, 580,570, 580,520, 580,1720, 580,570, 530,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,1720, 530,570, 580,1720, 530,570, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,1720, 530,570, 580,1720, 530,1720, 580,520, 580,570, 580,1720, 530,570, 580,520, 630,520, 580,1720, 580,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,570, 580,520, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 530,620, 530,620, 530,570, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,1770, 530,570, 530,620, 530,1720, 530,620, 530,1720, 530,620, 530,620, 480,1770, 530,1720, 530,620, 530,1720, 530,620, 530,620, 480,1820, 480,1770, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,1770, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 480,670, 480,1820, 480,620, 480,670, 480,670, 480,670, 430,1820, 480,620, 480,1820, 480}; // Protocol=PulseDistance Raw-Data=0xA1000001006594 184 bits LSB first + +制冷模式 uint16_t rawData[371] = {9030,4570, 530,570, 580,570, 580,570, 530,570, 580,570, 580,1670, 580,1720, 530,570, 580,570, 580,570, 530,570, 580,1720, 530,1720, 580,1670, 580,570, 580,570, 530,1720, 580,1670, 630,520, 580,570, 530,1720, 580,570, 530,570, 580,570, 580,1720, 530,570, 580,1720, 530,570, 580,570, 530,620, 530,570, 580,570, 530,620, 530,1720, 530,620, 530,1720, 530,620, 530,570, 580,570, 530,1720, 580,570, 580,570, 530,570, 580,570, 580,570, 530,570, 580,570, 530,620, 530,570, 580,570, 580,570, 530,1720, 580,570, 530,1770, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,1720, 530,620, 530,1720, 530,1770, 530,1720, 530,1770, 480,1770, 530,570, 530,620, 530,1770, 480,1770, 530,620, 480,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,620, 530,620, 530,570, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,620, 530,620, 530,570, 530,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,1770, 480,620, 530,620, 530,1720, 530,620, 530,1720, 530,620, 530,620, 480,1770, 530,1720, 530,620, 530,1720, 530,620, 530,620, 480,1770, 530,1720, 530,620, 530,620, 530,570, 530,620, 530,620, 530,620, 480,670, 480,620, 480,670, 480,670, 480,1770, 480,1770, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 480,670, 480,670, 430,720, 430,670, 480,1770, 530,1770, 480,1770, 480,670, 480,620, 480,670, 480,670, 480}; // Protocol=PulseDistance Raw-Data=0xE000006006594 184 bits LSB first + +除湿 uint16_t rawData[371] = {9080,4520, 580,570, 580,520, 580,570, 580,570, 580,570, 530,1720, 580,1670, 580,570, 580,570, 580,520, 630,520, 580,1720, 530,1720, 580,1670, 580,570, 580,570, 530,1720, 580,1670, 580,520, 630,570, 530,1720, 580,520, 580,570, 580,570, 580,1670, 580,1720, 530,1720, 580,570, 530,570, 580,570, 580,520, 580,570, 630,520, 580,1670, 580,570, 580,1720, 530,570, 580,520, 580,570, 580,1720, 580,520, 580,570, 580,520, 580,570, 580,570, 580,520, 630,520, 580,570, 580,520, 630,1670, 580,520, 630,1670, 580,1720, 530,570, 580,1720, 530,570, 580,570, 580,520, 580,570, 580,570, 580,520, 630,520, 580,1720, 580,520, 580,1720, 580,1670, 580,1670, 580,1670, 630,1670, 580,520, 630,520, 580,1670, 630,1670, 580,520, 630,520, 580,570, 530,570, 580,570, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,570, 530,570, 580,570, 580,570, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,620, 530,1720, 530,670, 480,620, 480,1820, 480,620, 480,1820, 480,620, 480,670, 480,1770, 530,1770, 480,620, 530,1770, 480,620, 530,620, 480,1770, 530,1770, 480,670, 480,620, 480,1770, 530,1770, 480,670, 480,1770, 480,620, 530,620, 480,670, 480,670, 480,1770, 480,1770, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 530,620, 480,670, 480,670, 480,670, 430,670, 480,670, 480,670, 430,670, 480,670, 480,670, 430,670, 480,670, 480,670, 430,670, 480,670, 480,670, 430,670, 480,670, 430,1820, 480,670, 430,1820, 480,1820, 430,720, 430}; // Protocol=PulseDistance Raw-Data=0x68000006166594 184 bits LSB first + + +送风模式 uint16_t rawData[371] = {9080,4520, 580,570, 580,520, 580,570, 580,520, 630,570, 530,1720, 580,1670, 580,570, 580,520, 580,570, 580,570, 580,1670, 580,1720, 530,1720, 530,620, 530,570, 580,1720, 530,1720, 580,520, 580,570, 580,1720, 530,570, 580,520, 630,570, 530,1720, 580,520, 580,570, 580,1720, 530,570, 580,520, 580,570, 580,570, 580,1720, 530,570, 580,570, 580,520, 630,520, 580,570, 530,570, 580,1720, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,1720, 530,570, 580,1720, 530,1720, 580,520, 580,1720, 580,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,1670, 630,520, 630,1670, 580,1670, 580,1670, 580,1720, 580,1670, 580,570, 580,520, 580,1720, 580,1670, 580,570, 530,570, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 630,520, 580,570, 580,520, 580,570, 580,570, 580,570, 580,520, 580,570, 580,520, 580,570, 580,570, 580,570, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,670, 480,620, 530,1770, 480,670, 480,620, 480,1770, 530,620, 480,1820, 480,620, 480,670, 480,1770, 480,1820, 480,620, 480,1820, 480,620, 480,670, 480,1770, 480,1820, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,1770, 480,1770, 480,670, 480,620, 530,620, 480,670, 480,670, 480,670, 430,670, 480,670, 480,670, 430,670, 480,670, 480,670, 430,670, 480,670, 480,670, 430,670, 480,670, 480,670, 430,670, 480,670, 480,670, 430,1820, 480,1770, 480,670, 430,1820, 480,1820, 430,1820, 430,1820, 480,720, 380}; // Protocol=PulseDistance Raw-Data=0x7B000006006594 184 bits LSB first + +上下风 uint16_t rawData[371] = {9080,4520, 580,570, 580,520, 630,520, 580,570, 580,570, 580,1670, 580,1720, 530,620, 530,570, 530,620, 530,570, 580,1720, 530,1720, 580,1670, 580,570, 580,570, 580,1670, 580,1720, 530,570, 580,520, 580,1720, 530,570, 630,520, 580,570, 530,1770, 530,570, 530,620, 580,1670, 580,570, 580,520, 580,570, 580,520, 630,1670, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,1720, 530,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 630,1670, 580,520, 630,1670, 580,1720, 530,570, 580,1670, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,1670, 580,570, 580,1670, 580,1670, 630,1670, 580,1670, 580,1670, 630,520, 580,570, 580,1670, 580,1670, 630,520, 580,570, 530,570, 580,570, 580,570, 580,520, 630,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,570, 530,620, 530,570, 580,570, 530,620, 530,570, 530,620, 530,620, 480,620, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 480,670, 480,1770, 530,1770, 480,620, 480,1820, 480,620, 530,1770, 480,620, 480,670, 480,1770, 530,1770, 480,620, 530,1770, 480,620, 530,620, 480,1770, 530,1770, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,1770, 480,1770, 530,1770, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,670, 430,670, 480,670, 480,670, 430,670, 480,670, 480,670, 430,670, 480,670, 480,670, 430,670, 480,1820, 430,1820, 430,720, 430,1820, 430,1820, 480,1820, 430,1820, 430,720, 430}; // Protocol=PulseDistance Raw-Data=0x7B000007006595 184 bits LSB first + +左右风 uint16_t rawData[371] = {9080,4520, 580,570, 530,620, 530,570, 530,570, 580,620, 530,1720, 530,1720, 530,620, 530,570, 580,570, 580,570, 580,1720, 530,1720, 530,1720, 530,620, 530,570, 580,1720, 530,1720, 530,570, 580,620, 530,1720, 530,570, 580,570, 530,620, 530,1720, 530,620, 530,620, 530,1720, 580,570, 530,570, 530,620, 580,570, 530,1720, 580,570, 530,570, 530,620, 530,620, 530,570, 580,570, 580,1670, 580,570, 580,520, 580,570, 580,570, 580,570, 530,570, 580,570, 580,570, 580,570, 530,1720, 580,520, 580,1720, 580,1670, 580,570, 580,1670, 580,570, 580,570, 530,570, 580,570, 580,570, 530,570, 580,520, 630,1670, 580,520, 630,1670, 580,1720, 530,1720, 580,1670, 580,1670, 580,570, 580,520, 630,1670, 580,1670, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 530,570, 630,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 530,570, 580,570, 580,570, 580,520, 580,570, 530,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,620, 530,1720, 530,1770, 530,570, 530,1770, 480,620, 530,1770, 480,620, 530,620, 530,1720, 530,1770, 480,1770, 530,620, 480,620, 530,620, 530,1720, 530,1770, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 530,620, 480,670, 480,620, 480,1820, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,1770, 480,670, 480,620, 530,1770, 480,1770, 480,1770, 530,620, 480}; // Protocol=PulseDistance Raw-Data=0x72000008006395 184 bits LSB first + +低速 uint16_t rawData[371] = {9080,4520, 580,570, 580,570, 580,570, 530,570, 580,570, 580,1670, 580,1720, 530,570, 580,570, 580,570, 530,570, 580,1720, 580,1670, 580,1670, 580,570, 580,520, 630,1670, 580,1720, 530,570, 580,520, 630,1670, 580,570, 580,570, 530,570, 580,1720, 530,570, 580,570, 580,1670, 580,570, 580,520, 580,570, 580,570, 580,520, 580,1720, 580,520, 580,1720, 580,570, 530,570, 580,520, 630,1670, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,520, 630,520, 630,570, 530,1720, 530,570, 580,1720, 580,1670, 580,520, 580,1720, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,1670, 580,520, 630,1670, 580,1720, 530,1720, 580,1670, 580,1720, 530,570, 580,520, 630,1670, 580,1670, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 530,570, 580,570, 580,570, 580,570, 530,570, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 630,520, 580,570, 580,520, 580,570, 580,570, 580,570, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,1720, 530,1770, 530,570, 530,1770, 530,570, 530,1770, 530,570, 530,620, 530,1770, 480,1770, 530,1720, 530,620, 530,620, 480,670, 480,1770, 480,1770, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,670, 480,1770, 480,670, 480,620, 480,670, 480,1770, 480,670, 480,620, 530,620, 530,620, 480,670, 480,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,1770, 480,1820, 430,670, 480}; // Protocol=PulseDistance Raw-Data=0x60000011006395 184 bits LSB first + +中速 uint16_t rawData[371] = {9080,4520, 580,570, 580,570, 580,520, 580,620, 530,570, 530,1720, 580,1720, 530,620, 530,570, 530,620, 530,620, 530,1720, 530,1720, 530,1770, 530,570, 530,620, 580,1670, 580,1720, 530,570, 580,570, 530,1720, 580,570, 530,570, 580,570, 580,1720, 530,620, 530,570, 530,1770, 530,570, 530,620, 530,620, 530,570, 580,1720, 530,570, 580,1720, 530,1720, 580,520, 580,1720, 580,570, 530,1720, 580,570, 530,570, 580,520, 630,570, 530,570, 580,570, 580,570, 530,570, 580,570, 580,1670, 580,570, 580,1670, 580,1720, 530,570, 580,1720, 530,570, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,1670, 630,520, 580,1670, 630,1670, 580,1670, 580,1670, 630,1670, 580,520, 580,570, 580,1670, 630,1670, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,570, 580,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 530,620, 530,620, 480,620, 530,620, 530,620, 530,570, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 480,1770, 530,1720, 530,670, 480,1770, 480,670, 480,1770, 480,670, 480,620, 480,1820, 480,1770, 480,1770, 530,620, 480,670, 480,620, 530,1770, 480,1770, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,1820, 480,620, 480,670, 480,670, 480,1770, 480,670, 480,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,670, 480,670, 430,670, 480,1820, 430,1820, 480,1770, 480,670, 480,670, 430,670, 480,1820, 430,670, 480}; // Protocol=PulseDistance Raw-Data=0x47000011006395 184 bits LSB first + +高速 uint16_t rawData[371] = {9080,4520, 530,620, 530,620, 530,570, 530,620, 580,570, 530,1720, 530,1720, 530,620, 530,620, 530,570, 580,570, 580,1670, 580,1720, 530,1720, 580,570, 530,570, 580,1720, 530,1720, 580,570, 530,570, 580,1720, 530,570, 580,570, 580,570, 580,1670, 580,570, 580,520, 580,1720, 580,570, 530,570, 530,620, 580,570, 530,570, 580,570, 580,570, 530,570, 530,1770, 530,570, 580,1720, 530,1720, 580,570, 530,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,1670, 580,520, 580,1720, 580,1670, 580,570, 580,1670, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,1670, 580,570, 580,1670, 580,1720, 580,1670, 580,1670, 580,1720, 580,520, 580,570, 580,1670, 630,1670, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,570, 580,520, 580,570, 580,520, 630,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 530,570, 580,570, 580,570, 580,520, 580,570, 580,570, 530,570, 580,570, 530,620, 580,520, 580,570, 530,620, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 480,1770, 530,1720, 530,620, 530,1720, 530,620, 530,1720, 530,620, 530,620, 480,1770, 530,1720, 530,1770, 530,570, 530,620, 530,620, 530,1720, 530,1720, 530,620, 530,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,1770, 530,620, 480,670, 480,620, 530,1770, 480,620, 530,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 530,620, 480,670, 480,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 530,1770, 480,620, 530,1770, 480,1770, 480,1770, 530,620, 480,670, 480}; // Protocol=PulseDistance Raw-Data=0x3A000011006395 184 bits LSB first + +超强风速 uint16_t rawData[371] = {9130,4470, 580,620, 530,570, 530,620, 530,620, 530,570, 580,1670, 580,1720, 530,620, 530,570, 530,620, 530,620, 530,1720, 580,1670, 580,1720, 530,570, 580,570, 530,1720, 580,1720, 530,570, 580,570, 580,1670, 580,570, 530,620, 530,570, 580,1720, 530,570, 580,520, 580,1720, 580,570, 530,570, 580,570, 580,570, 580,520, 630,520, 580,1670, 580,570, 580,570, 580,1670, 580,1670, 580,1720, 530,570, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 580,570, 580,570, 580,1670, 580,570, 580,1670, 580,1670, 630,520, 580,1670, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,1670, 630,520, 580,1670, 630,1670, 580,1670, 580,1670, 630,1670, 580,520, 630,520, 580,1720, 580,1670, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 530,570, 580,570, 580,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,620, 530,1720, 530,1770, 480,620, 530,1770, 480,620, 530,1770, 480,620, 530,620, 530,1770, 480,1770, 480,1820, 480,620, 480,670, 480,670, 480,1770, 480,1770, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 530,1770, 480,620, 530,620, 480,670, 480,1770, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,670, 480,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,670, 480,1770, 480,1770, 480,1820, 480,620, 480,670, 480,670, 430,720, 430}; // Protocol=PulseDistance Raw-Data=0xE000011006395 184 bits LSB first + +静音风速 uint16_t rawData[371] = {9080,4520, 580,570, 580,570, 580,570, 530,570, 580,570, 530,1720, 580,1720, 530,620, 530,570, 530,620, 530,570, 580,1720, 530,1720, 580,1720, 530,570, 580,570, 530,1720, 580,1720, 530,570, 580,520, 630,1670, 580,570, 580,520, 580,570, 580,1720, 530,570, 580,570, 530,1720, 580,520, 630,520, 580,570, 580,570, 580,1670, 580,570, 530,570, 580,570, 580,570, 530,620, 530,570, 580,1720, 580,520, 580,570, 580,570, 530,570, 580,570, 580,520, 630,520, 580,570, 530,570, 630,1670, 580,520, 630,1670, 580,1720, 530,570, 580,1720, 530,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,1720, 530,570, 580,1720, 580,1670, 580,1670, 580,1670, 630,1670, 580,520, 580,570, 580,1670, 630,1670, 580,520, 630,520, 580,570, 580,520, 580,570, 580,570, 530,570, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 580,570, 580,570, 580,520, 630,520, 580,570, 580,520, 580,570, 580,570, 580,520, 630,520, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,570, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,1770, 530,1720, 530,620, 530,1720, 530,620, 530,1720, 530,620, 530,620, 480,1770, 530,1770, 480,1770, 480,670, 480,620, 530,620, 480,1770, 530,1770, 480,670, 480,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,1770, 480,670, 480,670, 480,620, 480,1820, 480,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 530,620, 480,670, 480,620, 480,670, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,670, 480,1770, 480,1820, 430,670, 480,1820, 430,670, 480,1820, 430,1820, 480,670, 430}; // Protocol=PulseDistance Raw-Data=0x6B000011006395 184 bits LSB first + +睡眠模式开 uint16_t rawData[371] = {9030,4520, 630,570, 530,570, 530,620, 530,570, 580,570, 530,1770, 530,1720, 580,520, 580,570, 580,570, 530,620, 530,1720, 530,1720, 580,1720, 530,570, 580,570, 530,1770, 530,1720, 530,570, 580,570, 530,1770, 530,570, 580,520, 580,570, 580,1720, 580,520, 580,1720, 530,620, 530,570, 580,520, 580,570, 580,570, 580,520, 580,1720, 530,620, 530,1720, 580,520, 630,520, 580,570, 530,1770, 530,570, 580,520, 580,570, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,1670, 580,570, 580,1670, 580,520, 630,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,1670, 580,520, 630,1670, 580,1720, 530,1670, 630,1670, 580,1670, 580,570, 580,520, 630,1670, 580,1670, 580,570, 580,1670, 580,570, 580,520, 580,570, 580,570, 530,570, 580,570, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,570, 580,520, 580,570, 580,570, 530,570, 580,570, 580,570, 580,520, 580,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,570, 530,620, 530,620, 530,620, 480,620, 530,620, 530,620, 480,620, 530,620, 530,570, 530,1770, 530,1720, 530,620, 530,1720, 530,620, 530,1770, 480,620, 530,620, 480,1770, 530,1770, 480,1770, 480,670, 480,620, 530,620, 480,1770, 530,1770, 480,670, 480,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 480,670, 480,1770, 480,1820, 480,620, 480,670, 480,670, 480,620, 480,670, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,670, 480,670, 430,670, 480,670, 480,670, 430,670, 480,670, 480,670, 430,670, 480,670, 480,1770, 480,670, 480,670, 430,670, 480,670, 430}; // Protocol=PulseDistance Raw-Data=0x8000003006395 184 bits LSB first + +睡眠模式关 uint16_t rawData[371] = {9080,4520, 580,570, 580,570, 580,570, 530,570, 580,570, 530,1720, 580,1720, 530,620, 530,570, 530,620, 530,570, 580,1720, 530,1720, 530,1720, 580,570, 530,620, 580,1670, 530,1770, 530,570, 530,620, 530,1720, 580,570, 530,620, 530,570, 580,1720, 530,570, 530,1770, 530,570, 580,570, 580,520, 580,570, 580,570, 530,620, 530,1720, 580,520, 580,1720, 530,570, 580,570, 580,570, 580,1720, 530,570, 530,570, 580,570, 580,570, 530,620, 530,570, 580,570, 530,570, 580,570, 580,570, 580,570, 530,1720, 580,570, 530,1720, 530,620, 530,620, 530,570, 580,520, 630,520, 580,570, 580,570, 580,520, 580,1720, 580,520, 580,1720, 580,1670, 580,1720, 530,1720, 530,1720, 580,570, 580,520, 580,1720, 580,1670, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 580,570, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,520, 580,570, 580,570, 580,520, 630,520, 580,570, 580,520, 630,520, 580,570, 580,570, 580,520, 580,570, 580,520, 630,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,570, 580,570, 580,520, 580,1720, 530,1770, 530,570, 530,1720, 580,570, 530,1770, 480,620, 530,620, 530,1720, 530,1770, 530,1720, 530,620, 530,570, 530,620, 530,1720, 530,1770, 480,620, 530,620, 530,620, 530,570, 530,620, 530,620, 480,670, 480,670, 480,620, 530,1770, 480,1770, 480,670, 480,620, 530,620, 480,670, 480,620, 480,670, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,670, 480,620, 530,620, 480,1770, 530,1770, 480,620, 530,620, 480,670, 480,670, 480}; // Protocol=PulseDistance Raw-Data=0xC000003006395 184 bits LSB first