📄 new_cfg_handle.c
字号:
#include "top.h"
if(DPS2_GET_IND_NEW_CFG_DATA())
{
UBYTE SPC3_PTR_ATTR *cfg_ptr;
UBYTE config_data_len,cfg_result,result;
cfg_result=DPS2_CFG_FINISHED;
result=DPS_CFG_OK;
do
{
cfg_ptr=DPS2_GET_CFG_BUF_PTR(); /*组态数据的指针*/
config_data_len=DPS2_GET_CFG_LEN(); /*组态数据的长度*/
if(config_data_len!=2)
/*组态数据的长度不为2,组态错误*/
cfg_result=DPS2_SET_CFG_DATA_NOT_OK();
else
{
/*长度为2,但新的组态数据与初始化时的组态数据一样,不改变,组态完成*/
if((cfg_akt[0]==cfg_ptr[0])&&(cfg_akt[1]==cfg_ptr[1]))
result=DPS_CFG_OK;
else
{
/*如果新的组态数据与原组态数据不一样,但为13H,23H或者为11H,21H, 组态正确*/
if(((cfg_ptr[0]==0x13)&&(cfg_ptr[1])==0x23)
||((cfg_ptr[0]==0x11)&&(cfg_ptr[1])==0x21))
{
cfg_akt[0]=cfg_ptr[0];
cfg_akt[1]=cfg_ptr[1];
result=DPS_CFG_UPDATE;
}
/*不一样也不为13H,23H或者为11H,21H,则组态错误*/
else
result=DPS_CFG_FAULT;
/*如果组态正确,进入数据交换*/
if(result==DPS_CFG_UPDATE)
{
user_io_data_len_ptr=dps2_calculate_inp_outp_le--n(cfg_ptr,(UWORD)config_data_len);
if(user_io_data_len_ptr!=(DPS2_IO_DATA_LEN*)0)
{
DPS2_SET_IO_DATA_LEN(user_io_data_len_ptr);
}
else
result=DPS_CFG_FAULT;
}
}
switch(result)
{case DPS_CFG_OK:cfg_result=DPS2_SET_CFG_DATA_OK();
break;
case DPS_CFG_FAULT:cfg_result=DPS2_SET_CFG_DATA_NOT_OK();
break;
case DPS_CFG_UPDATE:cfg_result=DPS2_SET_CFG_DATA_UPDATE();
break;
}
}
while(cfg_result==DPS2_CFG_CONFLICT);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -