⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fdj_hb_p103.c.bak

📁 人机界面程序
💻 BAK
📖 第 1 页 / 共 5 页
字号:
         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 + -