g0b1vetx-board/Comm/netrecv.c
2023-11-30 08:10:01 +08:00

161 lines
3.5 KiB
C

#include "main.h"
#include <string.h>
// 下行数据回调函数
// 应答 type
int netDownloadHandle (uint8_t type, char *data, int length)
{
int IntData;//filenamesize = 0;
char filename[32] = {0};
char buffer[100];
switch (type)
{
case 0x4E: // 闸门操作
{
//data += 2; // 去掉流水号和闸门操作方式
//IntData = ty_byte2int (data, 4);
//sprintf(buffer,"open:%02X%02X%02X%02X\r\n",data[0],data[1],data[2],data[3]);
//NETSendLog(buffer);
// sprintf(buffer,"open:%02X%02X%02X%02Xopen:%u\r\n",data[0],data[1],data[2],data[3],IntData);
// NETSendLog(buffer);
// MM_SluiceSetOpen (IntData / 100);
// MM_SluiceStart();
//IntData = IntData;
// NETSendSluiceAck();
// dbg_printf("remote sluice%d\r\n",IntData);
break;
}
case 0xE0: // 远程升级
{
// todo : 发起升级请求
// memset (g_ymodeinfo.updatePacket, 0, 64);
// memset (filename, 0, 32);
// memcpy (filename, data, length); // 去掉帧尾和校验=
// sprintf (g_ymodeinfo.updatePacket, "N %s,%d", filename, g_ymodeinfo.PacketSize);
// dbg_printf ("g_ymodeinfo.fileName:%s\r\n", g_ymodeinfo.updatePacket);
// NETSendUpdateAck (1);
// dbg_printf ("Jump To Remote Update Firmware\r\n");
break;
}
case 0xE1: // 停止执行
{
//MM_SluiceStop();
// SluiceScram();
break;
}
case 0xE2: // 远程修改参数
{
// SysInfoConfig_t config ;
// data[length] = 0;
// // 设置参数
// int k = Json651UnpackInfo (data, length, &config);
// if (k < 0)
// {
// fmtprintf ("ERROR +CME:%d\r\n", k);
// }
// else
// {
// if (config.type == 1) // 基础参数配置
// {
// SysWriteBaseConfig (config.info.base);
// SysInfoWriteParam();
// NETSendConfigAck (1);
// }
// else if (config.type == 2) // 接口参数配置
// {
// SysWriteInterfaceInfo (config.info.interface);
// SysInfoWriteParam();
// NETSendConfigAck (1);
// }
// else if (config.type == 3) // 闸门参数配置
// {
// SysWriteSluiceInfo (config.info.sluice);
// SysInfoWriteParam();
// NETSendConfigAck (1);
// }
// else if (config.type == 4) // 闸门参数配置
// {
// SysWriteWaterInfo (config.info.water);
// SysInfoWriteParam();
// NETSendConfigAck (1);
// }
// else
// {
// NETSendConfigAck (2);
// }
// }
// break;
}
case 0xE3: // 远程读取参数
{
// if (data[0] == 1) // 上报基础参数
// {
// netWritebaseParams();
// }
// else if (data[0] == 2) //
// {
// netWriteInterfaceParams();
// }
// else if (data[0] == 3) // 保存
// {
// netWriteSluiceParams();
// }
// else if (data[0] == 4) // 保存
// {
// //static void netWriteWaterParams (void)
// netWriteWaterParams();
// }
// break;
}
case 0xE4: //远程读取流量计数据
{
// memset(data, 0, 256);
// memcpy(data, &rxdata_decode[14], dataLength);
// instantSpeed = MyJsonReadNumber(data, "instantSpeed", dataLength);
// instantFlow = MyJsonReadNumber(data, "instantFlow", dataLength);
// waterLevel = MyJsonReadNumber(data, "waterLevel", dataLength);
}
case 0XE5:
{
HAL_NVIC_SystemReset();
break;
}
case 0XE6: // 上升
{
//sluice_run_motor(SysInfo.SlMotorType,RunOpen);
//NETSendLog("debug runopen");
break;
}
case 0XE7: // 下降
{
//sluice_run_motor(SysInfo.SlMotorType,RunClose);
//NETSendLog("debug runclose");
break;
}
case 0XE8: // 停止
{
//sluice_run_motor(SysInfo.SlMotorType,RunStop);
//NETSendLog("debug runstop");
break;
}
case 0XE9: // 召测开度
{
//sprintf(buffer,"open:%u,%u,%u,%u\r\n",FF_ReadEcodeData(),FF_ReadCalcEcodeData(),FF_ReadMaxEcodeData(),FF_ReadMinEcodeData());
//NETSendLog(buffer);
break;
}
default:
break;
}
return type;
}