{"text_format":"2","workbook":"xlsx","n_sheets":2,"sheets":["灯控&遥控器&键盘一代OTA协议","交互流程说明"],"not_rendered":{"charts":0,"images":0,"macros":0,"external_links":0,"defined_names":0,"comments":0,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"run_cost":"one","rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900"}

{"sheet":"灯控&遥控器&键盘一代OTA协议","index":0,"n_rows":22,"n_cols":7,"rows_kept":22,"cut":false,"hidden":false,"merged":[[21,0,21,3]]}
["读固件：\n1、灯控：不跳过\n2、遥控器：前3个字节不读\n3、键盘：前2个字节不读"]
[]
["APP发送命令说明"]
["\n\n","CMD_OTA_START","0xba","0xc0"," "]
[{"$nulls":5},"数据CheckSum换成占3字节16进制，小端格式填入"]
[null,"CMD_OTA_END","0xba","0xc2","2BYTES PACKET ID","3BYTES CHECKSUM","3BYTES 总数据长度，除去跳过字节数"]
[]
[null,"CMD_OTA_DATA","0xba","0xc1","2BYTES PACKET ID","2BYTES  LENGTH","OTA DATA（可变）"]
[]
[null,"CMD_OTA_RESET","0xba","0xff"]
[]
[]
[]
["耳机发送命令说明"]
[null,"CMD_OTA_START_H","0xab","0xc0","2BYTES PACKET NUM","—》指OTA DATA部分数据大小"]
[" "]
[null,"CMD_OTA_DATA_H","0xab","0xc1","2BYTES PACKET ID"]
[]
[null,"CMD_OTA_END_H","0xab","0xc2","2BYTES PACKET ID","55(OTA_SUCCESS)；\n其它(OTA_FAIL)","例如：ABC2 7D01 55 成功"]
[]
[]
["⭐2个、3个字节的内容都是低字节在前，高字节在后"]

{"sheet":"交互流程说明","index":1,"n_rows":17,"n_cols":8,"rows_kept":17,"cut":false,"hidden":false,"merged":[[14,7,16,7],[3,4,3,6],[3,3,4,3],[16,4,16,6],[4,4,4,6],[6,4,6,6],[8,4,12,6],[14,4,14,6]]}
[]
[null,null,null,"APP",null,null,null,"耳机"]
[]
[null,null,null,"重复发送CMD_OTA_START，直到收到CMD_OTA_START_H"]
[{"$nulls":4},"------>\n<-------",null,null,"收到CMD_OTA_START后发送CMD_OTA_START_H"]
[]
[null,null,null,"收到包判断包序号与上一包发送的包序号相同则重复上一包序号ot继续发送下一个序号ota数据；否则发送CMD_OTA_RESET","------>\n<-------",null,null,"收到CMD_OTA_DATA数据，发送CMD_OTA_DATA_H"]
[]
[{"$nulls":4},".\n.\n.\n.\n.\n\n\n"]
[]
[]
[]
[]
[]
[null,null,null,"ota数据发送完毕，发送CMD_OTA_EXIT","\n-------->",null,null,"收到CMD_OTA_EXIT，计算checksum，与收到的checksum比较；checksum相同则回发OTA_SUCCESS包；否则回发OTA_FAIL包；"]
[]
[null,null,null,"收到CMD_OTA_EXIT_H，并在界面中显示是否成功；否则显示失败","<--------"]