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

📄 fdj_hb_p103.c.bak

📁 人机界面程序
💻 BAK
📖 第 1 页 / 共 5 页
字号:
            New_Information_Flag = 1;       				//20r1
            
         command_statue.Demand_Soe_Report_Flag = 0x00;
  
}

//-----------------------------------------------------------
//                      ASDU5
//-----------------------------------------------------------

void   ASDU_05_Send1(void)    //修改密码
{
       comm_buf_flag->Sendbuf[6]=0x05;
       comm_buf_flag->Sendbuf[7]=0x81;
       comm_buf_flag->Sendbuf[8]=0x66;
       comm_buf_flag->Sendbuf[9]=comm_buf_flag->DeviceAddr;
       comm_buf_flag->Sendbuf[10]=FUNTYPE;
       comm_buf_flag->Sendbuf[11]=0xff;
       comm_buf_flag->Sendbuf[12]=0x66;
       comm_buf_flag->Sendbuf[13]=(unsigned char )(System_Info.Password10&0xff);
       comm_buf_flag->Sendbuf[14]=(unsigned char )((System_Info.Password10>>8)&0xff);
       comm_buf_flag->Sendbuf[15]=(unsigned char )((System_Info.Password10>>16)&0xff);
       comm_buf_flag->Sendbuf[16]=(unsigned char )(System_Info.Password20&0xff);
       comm_buf_flag->Sendbuf[17]=(unsigned char )((System_Info.Password20>>8)&0xff);
       comm_buf_flag->Sendbuf[18]=(unsigned char )((System_Info.Password20>>16)&0xff);
       comm_buf_flag->Sendbuf[19]=0xfe;

       comm_buf_flag->FunctionCode = 3;     //功能码
       comm_buf_flag->LPDU_Command = 3;
       comm_buf_flag->ASDU_Length = 14;
}


void   ASDU_05_Analyze(void)
{
        switch(comm_buf_flag->Sendbuf[12])
           {
                case 0x66: //密码修改成功
                          command_statue.Password_Modified_Flag = 0x00;
                          break;
                default:
                          SoftInformation.Model[0] = comm_buf_flag->RecvBuf[13];
                          SoftInformation.Model[1] = comm_buf_flag->RecvBuf[14];
                          SoftInformation.Model[2] = comm_buf_flag->RecvBuf[15];
                          SoftInformation.Model[3] = comm_buf_flag->RecvBuf[16];
                          SoftInformation.Model[4] = comm_buf_flag->RecvBuf[17];
                          SoftInformation.Model[5] = comm_buf_flag->RecvBuf[18];
                          SoftInformation.Model[6] = comm_buf_flag->RecvBuf[19];

                          SoftInformation.Year =  comm_buf_flag->RecvBuf[20];
                          SoftInformation.Month=  comm_buf_flag->RecvBuf[21];
                          SoftInformation.Day  =  comm_buf_flag->RecvBuf[22];

                          SoftInformation.Ver[0] =  comm_buf_flag->RecvBuf[23]+0x30;
                          SoftInformation.Ver[1] =  0x2e;
                          SoftInformation.Ver[2] =  comm_buf_flag->RecvBuf[25]+0x30;

                          
                          break;
          }
}
//-----------------------------------------------------------
//                      ASDU6(对时)
//-----------------------------------------------------------
void   ASDU_06_Send0(void)
{
         comm_buf_flag->Sendbuf[6] = 0x06;
         comm_buf_flag->Sendbuf[7] = 0x81;
         comm_buf_flag->Sendbuf[8] = 0x88;			       //传输原因 08-对时 88-修改
         comm_buf_flag->Sendbuf[9] = comm_buf_flag->DeviceAddr;
         comm_buf_flag->Sendbuf[10]= FUNTYPE;
         comm_buf_flag->Sendbuf[11]= 0x00;
         comm_buf_flag->Sendbuf[12]= realtime.msecond & 0xff;	        //msl
         comm_buf_flag->Sendbuf[13]= (realtime.msecond & 0xff00)>>8;	//msh
         comm_buf_flag->Sendbuf[14]= realtime.minute;		        //minutes
         comm_buf_flag->Sendbuf[15]= realtime.hour;		        //hours
         comm_buf_flag->Sendbuf[16]= realtime.day;		        //date
         comm_buf_flag->Sendbuf[17]= realtime.month;		        //months
         comm_buf_flag->Sendbuf[18]= realtime.year;		        //years

         comm_buf_flag->FunctionCode = 3;     //功能码
         comm_buf_flag->LPDU_Command = 3;
         comm_buf_flag->ASDU_Length = 13;

         comm_buf_flag->Flag_CheckTime = 0x00;

}

void   ASDU_06_Send1(void)
{
         comm_buf_flag->Sendbuf[6] = 0x06;
         comm_buf_flag->Sendbuf[7] = 0x81;
         comm_buf_flag->Sendbuf[8] = 0x08;			       //传输原因 08-对时 88-修改
         comm_buf_flag->Sendbuf[9] = comm_buf_flag->DeviceAddr;
         comm_buf_flag->Sendbuf[10]= 0xff;
         comm_buf_flag->Sendbuf[11]= 0x00;
         comm_buf_flag->Sendbuf[12]= realtime1.msecond & 0xff;	        //msl
         comm_buf_flag->Sendbuf[13]= (realtime1.msecond & 0xff00)>>8;	//msh
         comm_buf_flag->Sendbuf[14]= realtime1.minute;		        //minutes
         comm_buf_flag->Sendbuf[15]= realtime1.hour;		        //hours
         comm_buf_flag->Sendbuf[16]= realtime1.day;		        //date
         comm_buf_flag->Sendbuf[17]= realtime1.month;		        //months
         comm_buf_flag->Sendbuf[18]= realtime1.year;		        //years

         comm_buf_flag->FunctionCode = 3;     //功能码
         comm_buf_flag->LPDU_Command = 3;
         comm_buf_flag->ASDU_Length = 13;
         //SendValFrm( 0x03, 13 );

}


void   ASDU_06_Analyze(void)
{
      realtime.year    = comm_buf_flag->RecvBuf[18];	//YEAR
      realtime.month   = comm_buf_flag->RecvBuf[17];	//MONTH
      realtime.day     = comm_buf_flag->RecvBuf[16];	//DATE
      realtime.hour    = comm_buf_flag->RecvBuf[15];	//HOUR
      realtime.minute  = comm_buf_flag->RecvBuf[14];	//MIN
      realtime.msecond = (comm_buf_flag->RecvBuf[13]<<8) + comm_buf_flag->RecvBuf[12];
      command_statue.Check_Time_Flag = 0x00;
}

//------------------------------------------------------------
//                    ASDU7(总查询发送)
//------------------------------------------------------------

void   ASDU_07_Send(void)
{
      comm_buf_flag->Sendbuf[6]=0x07;
      comm_buf_flag->Sendbuf[7]=0x81;
      comm_buf_flag->Sendbuf[8]=0x09;
      comm_buf_flag->Sendbuf[9]=comm_buf_flag->DeviceAddr;
      comm_buf_flag->Sendbuf[10]=0xff;
      comm_buf_flag->Sendbuf[11]=0x00;
      comm_buf_flag->Sendbuf[12]=0x00;
      
       comm_buf_flag->FunctionCode = 3;     //功能码
       comm_buf_flag->LPDU_Command = 3;
       comm_buf_flag->ASDU_Length = 7;

      //SendValFrm( 0x03, 7 );

      comm_buf_flag->Flag_CallAll = 0;

}


//-----------------------------------------------------------
//                      定值操作
//-----------------------------------------------------------

////////////////////////////////////////////////////////////////////////////////
void   ASDU_10_Send2(unsigned char Type)           //下传定值
{
  unsigned int i,j=0;
       comm_buf_flag->Sendbuf[6] = 0x0a;
       comm_buf_flag->Sendbuf[7] = 0x81;
       comm_buf_flag->Sendbuf[8] = 40;
       comm_buf_flag->Sendbuf[9] = comm_buf_flag->DeviceAddr;;
       comm_buf_flag->Sendbuf[10]= 254;

       comm_buf_flag->Sendbuf[12]= 0x00;   //
       comm_buf_flag->Sendbuf[13]= 0x01;
       comm_buf_flag->Sendbuf[14]= comm_buf_flag->DzAreaNo;
       comm_buf_flag->Sendbuf[15]= 0x00;
       comm_buf_flag->Sendbuf[16]= 0x01;
       comm_buf_flag->Sendbuf[17]= 0x03;
       comm_buf_flag->Sendbuf[18]= 0x02;
       comm_buf_flag->Sendbuf[19]= Setting_Total+1;

       if(Type == 0x11)
         {
           comm_buf_flag->Sendbuf[11]= 249;  //预修改
           for(i=0;i<Setting_Total;i++)
            {
              comm_buf_flag->Sendbuf[j + 20] = (unsigned char)(~System_setting[ i ]&0xff);
              comm_buf_flag->Sendbuf[j + 21] = (unsigned char)((~System_setting[ i ]>>8)&0xff);
              j++;
              j++;
            }
           comm_buf_flag->Sendbuf[j+20]= (unsigned char)(~(System_Info.DZ_Area+0x17));
           comm_buf_flag->Sendbuf[j+21]= 0xff;
         }
       else 
         {
           if(Type == 0x22)
             comm_buf_flag->Sendbuf[11]= 250;  //修改
           else
             comm_buf_flag->Sendbuf[11]= 251;  //未知

           for(i=0;i<Setting_Total;i++)
            {
              comm_buf_flag->Sendbuf[j + 20] = (unsigned char)(System_setting[ i ]&0xff);
              comm_buf_flag->Sendbuf[j + 21] = (unsigned char)((System_setting[ i ]>>8)&0xff);
              j++;
              j++;
            }
           comm_buf_flag->Sendbuf[j+20]= (unsigned char)(System_Info.DZ_Area+0x17);
           comm_buf_flag->Sendbuf[j+21]= 0x00;
         }

       comm_buf_flag->FunctionCode = 3;     //功能码
       comm_buf_flag->LPDU_Command = 3;
       comm_buf_flag->ASDU_Length = j + 16;

       //SendValFrm( 0x03, 80 );
}

void   ASDU_10_Send3(unsigned char Type)           //下传配置
{
  unsigned int i,j=0;
       comm_buf_flag->Sendbuf[6] = 0x0a;
       comm_buf_flag->Sendbuf[7] = 0x81;
       comm_buf_flag->Sendbuf[8] = 40;
       comm_buf_flag->Sendbuf[9] = comm_buf_flag->DeviceAddr;;
       comm_buf_flag->Sendbuf[10]= 254;

       comm_buf_flag->Sendbuf[12]= 0x00;   //
       comm_buf_flag->Sendbuf[13]= 0x01;
       comm_buf_flag->Sendbuf[14]= 0x16;
       comm_buf_flag->Sendbuf[15]= 0x00;
       comm_buf_flag->Sendbuf[16]= 0x01;
       comm_buf_flag->Sendbuf[17]= 0x03;
       comm_buf_flag->Sendbuf[18]= 0x02;
       comm_buf_flag->Sendbuf[19]= Sys_Cfg_Total+1;

       if(Type == 0x11)
         {
           comm_buf_flag->Sendbuf[11]= 249;  //预修改
           for(i=0;i<Sys_Cfg_Total;i++)
            {
              comm_buf_flag->Sendbuf[j + 20] = (unsigned char)(~System_config[ i ]&0xff);
              comm_buf_flag->Sendbuf[j + 21] = (unsigned char)((~System_config[ i ]>>8)&0xff);
              j++;
              j++;
            }
           comm_buf_flag->Sendbuf[j+20]= 0xe9;
           comm_buf_flag->Sendbuf[j+21]= 0xff;
         }
       else
         {
            if(Type == 0x22)
               comm_buf_flag->Sendbuf[11]= 250;  //修改
            else
               comm_buf_flag->Sendbuf[11]= 251;  //未知
           for(i=0;i<Sys_Cfg_Total;i++)
            {
              comm_buf_flag->Sendbuf[j + 20] = (unsigned char)(System_config[ i ]&0xff);
              comm_buf_flag->Sendbuf[j + 21] = (unsigned char)((System_config[ i ]>>8)&0xff);
              j++;
              j++;
            }
           comm_buf_flag->Sendbuf[j+20]= 0x16;
           comm_buf_flag->Sendbuf[j+21]= 0x00;

        }
       comm_buf_flag->FunctionCode = 3;     //功能码
       comm_buf_flag->LPDU_Command = 3;
       comm_buf_flag->ASDU_Length = j + 16;

       //SendValFrm( 0x03, 102 );
}



void   ASDU_10_Analyze(void)
{
   unsigned int i;
          if(comm_buf_flag->RecvBuf[14]==0x16 && comm_buf_flag->RecvBuf[11]==241 && comm_buf_flag->RecvBuf[8]==42) //读系统参数
            {
                for(i=0;i<Sys_Cfg_Total;i++)
                  System_config[i] = comm_buf_flag->RecvBuf[20+2*i]+(comm_buf_flag->RecvBuf[21+2*i]<<8);

                command_statue.Config_Operation_Flag = 0x00;

            }
          else  if(comm_buf_flag->RecvBuf[14]==comm_buf_flag->DzAreaNo && comm_buf_flag->RecvBuf[11]==241 && comm_buf_flag->RecvBuf[8]==42)
            {
                for(i=0;i<Setting_Total;i++)
                  System_setting[i] = comm_buf_flag->RecvBuf[20+2*i]+(comm_buf_flag->RecvBuf[21+2*i]<<8);

                 command_statue.Setting_Operation_Flag = 0x00;

            }
          else if(comm_buf_flag->RecvBuf[14]==comm_buf_flag->DzAreaNo && comm_buf_flag->RecvBuf[11]==249 && comm_buf_flag->RecvBuf[8]==40)
            {
                comm_buf_flag->DzSelect = 0x11;
                command_statue.Setting_Operation_Flag = 0x00;
                       //预改定值成功
            }
          else if(comm_buf_flag->RecvBuf[14]==comm_buf_flag->DzAreaNo && comm_buf_flag->RecvBuf[11]==250 && comm_buf_flag->RecvBuf[8]==40)
            {
                    comm_buf_flag->DzSelect = 0x00;   //改定值成功
                    command_statue.Setting_Operation_Flag = 0x00;
             }
          else if(comm_buf_flag->RecvBuf[14]==comm_buf_flag->DzAreaNo && comm_buf_flag->RecvBuf[11]==250 && comm_buf_flag->RecvBuf[8]==41)
             {
                     comm_buf_flag->DzSelect = 0x00; 
                     command_statue.Setting_Operation_Flag = 0x55;  
          	   //break;
             }
          else if(comm_buf_flag->RecvBuf[14]==0x16 && comm_buf_flag->RecvBuf[11]==249 && comm_buf_flag->RecvBuf[8]==40)
            {
                comm_buf_flag->DzSelect = 0x11;
                command_statue.Config_Operation_Flag = 0x00;
            }
         else if(comm_buf_flag->RecvBuf[14]==0x16 && comm_buf_flag->RecvBuf[11]==250 && comm_buf_flag->RecvBuf[8]==40)
            {
                    comm_buf_flag->DzSelect = 0x00;   //改系统配置成功
                    command_statue.Config_Operation_Flag = 0x00;
          	   //break;
             }
          else if(comm_buf_flag->RecvBuf[14]==0x16 && comm_buf_flag->RecvBuf[11]==250 && comm_buf_flag->RecvBuf[8]==41)
             {
                     comm_buf_flag->DzSelect = 0x00; 
                     command_statue.Config_Operation_Flag = 0x55;  
          	   //break;
             }
}

//-----------------------------------------------------------
//                     遥控操作&通道系数
//-----------------------------------------------------------
void   ASDU_20_Send0(void)     //定值区号切换
{
    comm_buf_flag->Sendbuf[6]=0x14;
    comm_buf_flag->Sendbuf[7]=0x81;
    comm_buf_flag->Sendbuf[8]=0x11;
    comm_buf_flag->Sendbuf[9]=comm_buf_flag->DeviceAddr;
    comm_buf_flag->Sendbuf[10]=FUNTYPE;
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -