# server **Repository Path**: mos2023-developers/server ## Basic Information - **Project Name**: server - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-30 - **Last Updated**: 2024-04-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TCP 传输要求 ## 传输协议 ### 主动 每小时上传一次日常数据 单片机为交流主动方,向服务器发起request 服务器接收到request后,向单片机回复A表示接收到request,并相应回复相关内容 单片机接收到服务器回复数据后,回复A,表示收到 单片机可以和服务器有多个来回的request 以finish request(下文有示例)表示交流结束 服务器回复A,并关闭端口 单片机接收到A,并结束交流 当发生错误时,立即上报错误 ### 传出 以紧凑的json格式传输 开头加上字符 ‘`’ 标记 ### 回复 接收到数据之后5秒内,回复一个字节的 ‘A’ ### 超时 没有收到回复字符时,重新发送 上限5遍 ## 传输内容 ### request 格式 注:此处格式化方便查阅,实际发送的为紧凑的json 日常逐小时上传数据: ```json { "request": "push data", "data": { "AC Vrms": 0.0, "AC Irms": 0.0, "Apparent Power": 0.0, "BAT Voltage": 0.0, "BAT Current": 0.0, "PV Voltage": 0.0, "PV Current": 0.0, "PLL error": 0.0 } } ``` 到晚上汇报电量: ```json { "request": "battery", "value": 1.0 } ``` 故障报警,error为错误编码 ```json { "request": "sys status", "error": [] } ``` 为其他任务预留的多次交流功能: 比如在线固件更新 ```json { "request": "upgrade" } ``` 结束交流的请求: ```json { "request": "finish" } ``` ### task 格式 正常情况,volume值表示需要拉取的电量(kW.h): ```json { "task": "save power", "volume": 1.4, "timestamp": 1713521437 } ``` 没有任务 ```json { "task": "empty" } ``` 请求天气失败等原因,导致无法进行神经网络推理 单片机根据内置线性回归自行预测 ```json { "task": "auto" } ``` 为其他任务预留信息交流功能 ```json { "task": "upgrade" } ```