📄 fdj_hb_p103.c.bak
字号:
comm_buf_flag->Timing = 0;
comm_buf_flag->Counter++;
}
}
void LPDU_MMI_DSP_Recv(void)
{
int i;
if( comm_buf_flag->FrameRecv == 0x15)
{
comm_buf_flag->FrameRecv = 0;
ComDsp_buf_flag.CommError = 0x00;
comm_buf_flag->Counter = 0;
comm_buf_flag->ACD = (comm_buf_flag->RecvBuf[1]&0x20);
switch( comm_buf_flag->RecvBuf[1]&0x0f)
{
case 0x00:
if( comm_buf_flag->LPDU_Command == 0x03)
{
comm_buf_flag->LPDU_Command = 0x0b;
comm_buf_flag->Counter = 0;
}
break;
case 0x01:
break;
case 0x09: comm_buf_flag->LPDU_Command = 0x0b;
break;
case 0x0b:
break;
default:
break;
}
if(PC_Comm_Flag == 0x00)
{
Comm0.SendBuf[Comm0.SendSet] = comm_buf_flag->Sendbuf[i];
Comm0.SendSet = (Comm0.SendSet+1)%SENDNUM;
}
}
else if( comm_buf_flag->FrameRecv == 0x1a)
{
comm_buf_flag->FrameRecv = 0;
ComDsp_buf_flag.CommError = 0x00;
comm_buf_flag->Counter = 0;
comm_buf_flag->ACD = (comm_buf_flag->RecvBuf[4]&0x20);
switch( comm_buf_flag->RecvBuf[4]&0x0f)
{
case 0x08: ASDU_Analyze();
break;
default:
break;
}
}
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++
// MMI和DSP通信处理
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++
void ProcessMMI_DSP(void)
{
switch(comm_buf_flag->SendSeq>>8) //发送处理
{
case 0x01: //总召唤
Call_WholeData();
break;
case 0x02: //对时
Check_Time();
break;
case 0x05: //读系统参数
Read_SystemConfig();
break;
case 0x06: //读定值
Read_SystemSetting();
break;
case 0x07: //自动调整通道系数
Auto_Adjust_Ration();
break;
case 0x08: //定值预修改
Setting_PreModify();
break;
case 0x09: //定值修改执行
Setting_Modified_Exe();
break;
case 0x0a: //定值区号切换
Setting_Area_Switch();
break;
case 0x0b: //定值区复制
Setting_Area_Copy();
break;
case 0x0c: //系统配置修改选择
Config_PreModify();
break;
case 0x0d: //系统配置修改执行
Config_Modified_Exe();
break;
case 0x0e: //通道系数调整
Modify_Channel_Ration();
break;
case 0x0f: //软压板操作
YYB_Opreation();
break;
case 0x10: //修改密码
Password_Modified_Exe();
break;
case 0x11: //遥控及开出传动
YK_Output_Command();
break;
case 0x12: //查询SOE及故障报告
Demand_Soe_Report();
break;
case 0x13: //装置复归
Device_FUGUI();
break;
default:
comm_buf_flag->SendSeq = 0x0300;
break;
}
}
//-------------------------------------------------------
// 总召唤
//-------------------------------------------------------
void Call_WholeData(void)
{
ASDU_07_Send();
}
//-------------------------------------------------------
// 对时命令
//-------------------------------------------------------
void Check_Time(void)
{
if(comm_buf_flag->SendSeq==0x0200)
ASDU_06_Send0();
else
ASDU_06_Send1();
}
//-----------------------------------------------------------
// 读系统配置
//-----------------------------------------------------------
void Read_SystemConfig(void)
{
ASDU_21_Send0(0x16); //ASDU_10_Send0();
}
//-----------------------------------------------------------
// 读定值
//-----------------------------------------------------------
void Read_SystemSetting(void)
{
ASDU_21_Send0(comm_buf_flag->DzAreaNo);
}
//-----------------------------------------------------------
// 自动调整通道系数
//-----------------------------------------------------------
void Auto_Adjust_Ration(void)
{
ASDU_20_Send7();
}
//-----------------------------------------------------------
// 通道系数调整
//-----------------------------------------------------------
void Modify_Channel_Ration(void)
{
ASDU_20_Send8();
}
//-----------------------------------------------------------
// 定值预修改
//-----------------------------------------------------------
void Setting_PreModify(void)
{
ASDU_10_Send2(0x11);
}
//-----------------------------------------------------------
// 定值修改执行
//-----------------------------------------------------------
void Setting_Modified_Exe(void)
{
ASDU_10_Send2(0x22);
}
//-----------------------------------------------------------
// 定值区号切换
//-----------------------------------------------------------
void Setting_Area_Switch(void)
{
ASDU_20_Send0();
}
//-----------------------------------------------------------
// 软压板操作
//-----------------------------------------------------------
void YYB_Opreation(void)
{
ASDU_20_Send4();
}
//-----------------------------------------------------------
// 定值区复制
//-----------------------------------------------------------
void Setting_Area_Copy(void)
{
ASDU_20_Send1();
}
//-----------------------------------------------------------
// 系统配置预修改
//-----------------------------------------------------------
void Config_PreModify(void)
{
ASDU_10_Send3(0x11);
}
//-----------------------------------------------------------
// 系统配置修改执行
//-----------------------------------------------------------
void Config_Modified_Exe(void)
{
ASDU_10_Send3(0x22);
}
//-----------------------------------------------------------
// 修改密码
//-----------------------------------------------------------
void Password_Modified_Exe(void)
{
ASDU_05_Send1();
}
//-----------------------------------------------------------
// 遥控/开出传动
//-----------------------------------------------------------
void YK_Output_Command(void)
{
ASDU_64_Send0(); //ASDU_20_Send2();
}
//-----------------------------------------------------------
// 查询SOE及故障报告
//-----------------------------------------------------------
void Demand_Soe_Report(void)
{
ASDU_20_Send5();
}
//-----------------------------------------------------------
// 装置复归
//-----------------------------------------------------------
void Device_FUGUI(void)
{
ASDU_20_Send3();
}
//-----------------------------------------------------------
// ASDU1(SOE)
//-----------------------------------------------------------
void ADSU_01_Analyze(void)
{
switch(comm_buf_flag->RecvBuf[11])
{
case 0x17:
case 0x18:
case 0x19:
case 0x1a:
if(comm_buf_flag->RecvBuf[11]==Setting_Switch.DzTarget )
{
if( comm_buf_flag->RecvBuf[12]==0x82) //定值预切换
{
//Memo1->Lines->Add("================定值预切换================");
Setting_Switch.DzSelect = 0x11;
command_statue.Setting_Operation_Flag = 0x00;
}
if( comm_buf_flag->RecvBuf[12]==0xc2) //定值切换
{
// Memo1->Lines->Add("===============定值切换撤销===============");
command_statue.Setting_Operation_Flag = 0x00;
}
if( comm_buf_flag->RecvBuf[12]==0x02) //定值切换
{
command_statue.Setting_Operation_Flag = 0x00;
// Memo1->Lines->Add("===============定值切换成功===============");
}
}
break;
case 0x16:
if(( comm_buf_flag->RecvBuf[18]==Setting_Copy.DzSource) && (comm_buf_flag->RecvBuf[19]==Setting_Copy.DzTarget ))
{
if( comm_buf_flag->RecvBuf[12]==0x82 ) //定值预复制成功
{
//Memo1->Lines->Add("================定值预复制================");
Setting_Copy.DzSelect = 0x11;
command_statue.Setting_Operation_Flag = 0x00;
}
if( comm_buf_flag->RecvBuf[12]==0xc2 ) //定值复制撤销
{
command_statue.Setting_Operation_Flag = 0x00;
// Memo1->Lines->Add("================定值复制撤销================");
}
if( comm_buf_flag->RecvBuf[12]==0x02 ) //定值复制成功
{
command_statue.Setting_Operation_Flag = 0x00;
// Memo1->Lines->Add("================定值复制成功================");
}
}
break;
default://故障报告
break;
}
SOE_Buf_Show0.msec = (comm_buf_flag->RecvBuf[14]*256 + comm_buf_flag->RecvBuf[13])%1000;
SOE_Buf_Show0.sec = (US)((comm_buf_flag->RecvBuf[14]*256 + comm_buf_flag->RecvBuf[13])/1000);
SOE_Buf_Show0.min = comm_buf_flag->RecvBuf[15]; //min
SOE_Buf_Show0.hour = comm_buf_flag->RecvBuf[16]; //hour
SOE_Buf_Show0.day = comm_buf_flag->RecvBuf[17]; //day
SOE_Buf_Show0.mon = comm_buf_flag->RecvBuf[18]; //mon
SOE_Buf_Show0.year = comm_buf_flag->RecvBuf[19]; //year
SOE_Buf_Show0.num = comm_buf_flag->RecvBuf[11]; //NO.
SOE_Buf_Show0.stu = comm_buf_flag->RecvBuf[12];
if(comm_buf_flag->RecvBuf[8]==0x01)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -