📄 fdj_hb_p103.c.bak
字号:
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 + -