161 lines
3.5 KiB
C
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;
|
|
}
|
|
|
|
|
|
|