📄 fdj_hb_p103.c.bak
字号:
command_statue.Config_Operation_Flag = 0xaa;
command_statue.Config_Operation_Count = 0;
break;
case 0x0e00: //通道系数调整选择
Channel_Ration_Flag.Select = 0x00;
Channel_Ration_Flag.Command = per1&0xff;
Order_Array.Order[ Order_Array.Set ] = 0x0e00;
Order_Array.Set = (Order_Array.Set+1)%10;
command_statue.Channel_Ration_Flag = 0xaa;
command_statue.Channel_Ration_Count = 0x00;
break;
case 0x0e01: //通道系数调整执行
if(Channel_Ration_Flag.Select == 0x11)
{
Channel_Ration_Flag.Command = per1&0xff;
Order_Array.Order[ Order_Array.Set ] = 0x0e00;
Order_Array.Set = (Order_Array.Set+1)%10;
command_statue.Channel_Ration_Flag = 0xaa;
command_statue.Channel_Ration_Count = 0x00;
}
else
Res = 0;
break;
case 0x0e02: //通道系数调整撤销
if(Channel_Ration_Flag.Select == 0x11)
{
Channel_Ration_Flag.Command = per1&0xff;
Order_Array.Order[ Order_Array.Set ] = 0x0e00;
Order_Array.Set = (Order_Array.Set+1)%10;
command_statue.Channel_Ration_Flag = 0xaa;
command_statue.Channel_Ration_Count = 0x00;
}
else
Res = 0;
break;
case 0x0f00: //软压板操作选择
YYB_Modify_Flag.Select = 0x00;
YYB_Modify_Flag.Command = 0x82;
YYB_Modify_Flag.YYB_temp = per1&0xffff;
Order_Array.Order[ Order_Array.Set ] = 0x0f00;
Order_Array.Set = (Order_Array.Set+1)%10;
command_statue.YYB_Opreation_Flag = 0xaa;
command_statue.YYB_Opreation_Count = 0x00;
break;
case 0x0f01: //软压板操作执行
if(YYB_Modify_Flag.Select == 0x11)
{
YYB_Modify_Flag.Command = 0x02;
YYB_Modify_Flag.YYB_temp = per1&0xffff;
Order_Array.Order[ Order_Array.Set ] = 0x0f00;
Order_Array.Set = (Order_Array.Set+1)%10;
command_statue.YYB_Opreation_Flag = 0xaa;
command_statue.YYB_Opreation_Count = 0x00;
}
else
Res = 0;
break;
case 0x0f02: //软压板操作撤销
if(YYB_Modify_Flag.Select == 0x11)
{
YYB_Modify_Flag.Command = 0xc2;
YYB_Modify_Flag.YYB_temp = per1&0xffff;
Order_Array.Order[ Order_Array.Set ] = 0x0f00;
Order_Array.Set = (Order_Array.Set+1)%10;
command_statue.YYB_Opreation_Flag = 0xaa;
command_statue.YYB_Opreation_Count = 0x00;
}
else
Res = 0;
break;
case 0x1000: //修改密码
Order_Array.Order[ Order_Array.Set ] = 0x1000;
Order_Array.Set = (Order_Array.Set+1)%10;
command_statue.Password_Modified_Flag = 0xaa;
command_statue.Password_Modified_Count = 0;
break;
case 0x1100: //开出传动选择
YK_Command_Style(per1,0x11,0x55);
Output_Test_YK.YkSelect = 0;
Order_Array.Order[ Order_Array.Set ] = 0x1100;
Order_Array.Set = (Order_Array.Set+1)%10;
command_statue.YK_Output_Command_Flag = 0xaa;
command_statue.YK_Output_Command_Count = 0;
break;
case 0x1101: //开出传动执行
if(Output_Test_YK.YkSelect == 0x11)
{
YK_Command_Style(per1,0x11,0xAA);
Output_Test_YK.YkSelect = 0;
Order_Array.Order[ Order_Array.Set ] = 0x1100;
Order_Array.Set = (Order_Array.Set+1)%10;
command_statue.YK_Output_Command_Flag = 0xaa;
command_statue.YK_Output_Command_Count = 0;
}
else
Res = 0;
break;
case 0x1102: //开出传动撤销
if(Output_Test_YK.YkSelect == 0x11)
{
YK_Command_Style(per1,0x11,0xcc);
Output_Test_YK.YkSelect = 0;
Order_Array.Order[ Order_Array.Set ] = 0x1100;
Order_Array.Set = (Order_Array.Set+1)%10;
command_statue.YK_Output_Command_Flag = 0xaa;
command_statue.YK_Output_Command_Count = 0;
}
else
Res = 0;
break;
case 0x1110: //遥控合选择
YK_Command_Style(per1,0x11,0x55);
Output_Test_YK.YkSelect = 0;
Order_Array.Order[ Order_Array.Set ] = 0x1100;
Order_Array.Set = (Order_Array.Set+1)%10;
command_statue.YK_Output_Command_Flag = 0xaa;
command_statue.YK_Output_Command_Count = 0;
break;
case 0x1111: //遥控合执行
if(Output_Test_YK.YkSelect == 0x11)
{
YK_Command_Style(per1,0x11,0xaa);
Output_Test_YK.YkSelect = 0;
Order_Array.Order[ Order_Array.Set ] = 0x1100;
Order_Array.Set = (Order_Array.Set+1)%10;
command_statue.YK_Output_Command_Flag = 0xaa;
command_statue.YK_Output_Command_Count = 0;
}
else
Res = 0;
break;
case 0x1112: //遥控合撤销
if(Output_Test_YK.YkSelect == 0x11)
{
YK_Command_Style(per1,0x11,0xcc);
Output_Test_YK.YkSelect = 0;
Order_Array.Order[ Order_Array.Set ] = 0x1100;
Order_Array.Set = (Order_Array.Set+1)%10;
command_statue.YK_Output_Command_Flag = 0xaa;
command_statue.YK_Output_Command_Count = 0;
}
else
Res = 0;
break;
case 0x1120: //遥控分选择
YK_Command_Style(per1,0x22,0x55);
Output_Test_YK.YkSelect = 0;
Order_Array.Order[ Order_Array.Set ] = 0x1100;
Order_Array.Set = (Order_Array.Set+1)%10;
command_statue.YK_Output_Command_Flag = 0xaa;
command_statue.YK_Output_Command_Count = 0;
break;
case 0x1121: //遥控分执行
if(Output_Test_YK.YkSelect == 0x11)
{
YK_Command_Style(per1,0x22,0xaa);
Output_Test_YK.YkSelect = 0;
Order_Array.Order[ Order_Array.Set ] = 0x1100;
Order_Array.Set = (Order_Array.Set+1)%10;
command_statue.YK_Output_Command_Flag = 0xaa;
command_statue.YK_Output_Command_Count = 0;
}
else
Res = 0;
break;
case 0x1122: //遥控分撤销
if(Output_Test_YK.YkSelect == 0x11)
{
YK_Command_Style(per1,0x22,0xcc);
Output_Test_YK.YkSelect = 0;
Order_Array.Order[ Order_Array.Set ] = 0x1100;
Order_Array.Set = (Order_Array.Set+1)%10;
command_statue.YK_Output_Command_Flag = 0xaa;
command_statue.YK_Output_Command_Count = 0;
}
else
Res = 0;
break;
case 0x1200: //查询SOE及故障报告
Fault_Recode_Flag.Number = per1;
Fault_Recode_Flag.Type = per2;
Order_Array.Order[ Order_Array.Set ] = 0x1200;
Order_Array.Set = (Order_Array.Set+1)%10;
command_statue.Demand_Soe_Report_Flag = 0xaa;
command_statue.Demand_Soe_Report_Count = 0x00;
break;
case 0x1300: //装置复归
Order_Array.Order[ Order_Array.Set ] = 0x1300;
Order_Array.Set = (Order_Array.Set+1)%10;
command_statue.Device_FUGUI_Flag = 0xaa;
command_statue.Device_FUGUI_Count = 0x00;
break;
case 0x1500: //装置复归
Order_Array.Order[ Order_Array.Set ] = 0x1500;
Order_Array.Set = (Order_Array.Set+1)%10;
break;
default:
break;
}
return(Res);
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++
// 组装并发送固定帧
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++
void SendFixFrm(UC SFunCode)
{
int i;
comm_buf_flag->Sendbuf[0] = 0x10;
comm_buf_flag->Sendbuf[1] = (SFunCode & 0x0F) + (comm_buf_flag->FCB& 0x20)
+ (comm_buf_flag->FCV& 0x10) + 0x40;
comm_buf_flag->Sendbuf[2] = comm_buf_flag->DeviceAddr;
comm_buf_flag->Sendbuf[3] = comm_buf_flag->Sendbuf[1] + comm_buf_flag->Sendbuf[2];
comm_buf_flag->Sendbuf[4] = 0x16;
comm_buf_flag->Length = 5;
ComSend();
for(i=0;i<comm_buf_flag->Length;i++)
comm_buf_flag->TempBuf[i] = comm_buf_flag->Sendbuf[i];
comm_buf_flag->FCB = comm_buf_flag->FCB^0x20;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++
// 组装并发送可变帧
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++
void SendValFrm(UC SFunCode, UC len )
{
int i;
comm_buf_flag->Sendbuf[0] = comm_buf_flag->Sendbuf[3] = 0x68;
comm_buf_flag->Sendbuf[1] = len+2;
comm_buf_flag->Sendbuf[2] = comm_buf_flag->Sendbuf[1];
comm_buf_flag->Sendbuf[4] = (SFunCode & 0x0F) + (comm_buf_flag->FCB& 0x20)
+ (comm_buf_flag->FCV& 0x10) + 0x40;
comm_buf_flag->Sendbuf[5] = comm_buf_flag->DeviceAddr;
comm_buf_flag->Sendbuf[6+len] = comm_buf_flag->Sendbuf[4] + comm_buf_flag->Sendbuf[5] ;
for(i=0; i<len; i++)
{
comm_buf_flag->Sendbuf[6+len] = comm_buf_flag->Sendbuf[6+len] + comm_buf_flag->Sendbuf[6+i];
}
comm_buf_flag->Sendbuf[7+len] = 0x16;
comm_buf_flag->Length = 8+len;
ComSend();
for(i=0;i<comm_buf_flag->Length;i++)
comm_buf_flag->TempBuf[i] = comm_buf_flag->Sendbuf[i];
comm_buf_flag->FCB = comm_buf_flag->FCB^0x20;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++
// 链路层通信处理
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++
void LPDU_MMI_DSP_Send(void)
{
if(comm_buf_flag->Timing >= DELAYACK)
{
comm_buf_flag->Timing = 0;
if(comm_buf_flag->Counter>=6)
{
comm_buf_flag->Counter = 6;
comm_buf_flag->LPDU_Command = 0x09;
ComDsp_buf_flag.CommError = 0x11;
}
else if( comm_buf_flag->ACD == 0x20 )
comm_buf_flag->LPDU_Command = 0x0a;
else if( comm_buf_flag->LPDU_Command == 0x0b )
{
if( Order_Array.Set != Order_Array.Get) //有其他命令
{
comm_buf_flag->SendSeq = Order_Array.Order[Order_Array.Get];
Order_Array.Order[Order_Array.Get] = 0xFF00;
Order_Array.Get=(Order_Array.Get+1)%10;
ProcessMMI_DSP();
}
}
switch( comm_buf_flag->LPDU_Command )
{
case 0x00: comm_buf_flag->FCV = 0;
SendFixFrm( 0x00 );
break;
case 0x03: comm_buf_flag->FCV = 1;
SendValFrm( 0x03,comm_buf_flag->ASDU_Length );
break;
case 0x04: comm_buf_flag->FCV = 0;
SendValFrm( 0x04,comm_buf_flag->ASDU_Length );
break;
case 0x07: comm_buf_flag->FCV = 0;
SendFixFrm( 0x07 );
break;
case 0x09: comm_buf_flag->FCV = 0;
SendFixFrm( 0x09 );
break;
case 0x0a: comm_buf_flag->FCV = 1;
SendFixFrm( 0x0a );
comm_buf_flag->LPDU_Command = 0x0b;
break;
case 0x0b: comm_buf_flag->FCV = 1;
SendFixFrm( 0x0b );
break;
default: comm_buf_flag->LPDU_Command = 9;
break;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -