chore: 清理废弃模块代码
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
---
|
||||
name: fix-yoxo1007-receive-data
|
||||
description: 修复YOXO1007以太网模块接收数据解析错误问题
|
||||
source: auto-skill
|
||||
extracted_at: '2026-06-17T04:30:00.000Z'
|
||||
---
|
||||
|
||||
# 修复 YOXO1007 以太网模块接收数据解析错误
|
||||
|
||||
## 问题现象
|
||||
|
||||
服务器已收到网关注册请求并响应,但网关端无法接收/解析服务器返回的数据。
|
||||
|
||||
## 根本原因
|
||||
|
||||
YOXO1007 模块在**透传模式**下发送的是**原始二进制数据**,不是 ASCII 格式的 hex 字符串。
|
||||
|
||||
原代码错误地使用了 `AsciiToHex` 函数进行格式转换:
|
||||
|
||||
```c
|
||||
// 错误代码 - CATONE 模式使用的 ASCII 转换不适用于 ETH 透传模式
|
||||
memset(HexData, 0x00, CatOneEthRxLen / 2);
|
||||
uint8_t ret = AsciiToHex(RxBuffTemp, HexData, CatOneEthRxLen);
|
||||
if(ret > 0)
|
||||
GateWay->SvrRevCallBack(GateWay, HexData, ret);
|
||||
```
|
||||
|
||||
这导致服务器返回的二进制数据被错误解析,回调函数无法正确处理。
|
||||
|
||||
## 修复方案
|
||||
|
||||
修改 `CatOneTask.c` 中 ETH 接收线程的数据处理逻辑,直接传递原始二进制数据:
|
||||
|
||||
```c
|
||||
// 修改后的正确代码
|
||||
CAT1_DBG_LOG("Eth Rev: len=%d\r\n", CatOneEthRxLen);
|
||||
/* YOXO1007模块在透传模式下发送原始二进制数据,直接传递 */
|
||||
if(CatOneEthRxLen > 0)
|
||||
GateWay->SvrRevCallBack(GateWay, (uint8_t *)CatOneEthRxBuff, CatOneEthRxLen);
|
||||
```
|
||||
|
||||
## 修改位置
|
||||
|
||||
`Project/GateWay/source/User/Src/CatOneTask.c` 中的 `CatOneRev_Thread_Entry` 函数内的 ETH 分支。
|
||||
|
||||
## 关键区别
|
||||
|
||||
| 模式 | 数据格式 | 解析方式 |
|
||||
|------|----------|----------|
|
||||
| CAT1 (4G) | ASCII 字符串 (AT 命令/响应) | 需要 AsciiToHex 转换 |
|
||||
| ETH (YOXO1007) | 原始二进制 (透传模式) | 直接传递,不转换 |
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 此修改仅影响 ETH 通信模式,CAT1 模式的 ASCII 解析逻辑保持不变
|
||||
- YOXO1007 模块配置参数使用二进制命令协议(识别流 ED F2 A3 56...),与数据透传是不同层面
|
||||
- 模块配置保存后重启会自动进入之前保存的工作模式,无需额外进入透传模式的命令
|
||||
Reference in New Issue
Block a user