www.pudn.com > Lib870-5Demo.rar > Slave101real.cpp
#include "stdafx.h"
#include "Slave101_Demo.h"
#include "Slave101_DemoDlg.h"
#include "Slave101real.h"
CSlave101real::CSlave101real()
{
}
CSlave101real::~CSlave101real()
{
}
void CSlave101real::On_init_ASDU_process()
{
int i;
Init_CauseOfTransfer_Size(1); //initialize COT size for 1 or 2
Init_InfoBodyAddr_Size(2); //initialize information object size for 1, 2 or 3
Init_ASDU_Common_addr_size(1); //initialize Common Addr size 1 or 2
Init_ASDU_Common_addr(1); //initialize Common Addr
Init_Backgroundperiod(300); //Background Scan time period (Unit is second)
//*************** Create single point buffer **************************
init_SP_create( 256,0x0001,0x0100,1 );
for( i=0;i<256;i++)
{
init_SP_setgroup(i,1);
slave_SP_SetData(i,0); //initialize data
}
init_SP_enable(1);
//*************** Create Double point buffer **************************
init_DP_create( 256,0x0201,0x0300,0 );
for( i=0;i<256;i++)
{
init_DP_setgroup(i,2);
slave_DP_SetData(i,1); //initialize data
}
init_DP_enable(1);
//*************** Create ME_NA buffer**************************
init_ME_NA_create(128, 0x4001,0x4080,0);
for( i=0;i<128;i++)
{
init_ME_NA_setgroup(i,9,0,1.0);
slave_ME_NA_SetData(i,5); //initialize data
}
init_ME_NA_enable(1);
//************** Create ME_NC buffer**************************
init_ME_NC_create(128, 0x4401,0x4480,0);
for( i=0;i<128;i++)
{
init_ME_NC_setgroup(i,8,0,1.0);
slave_ME_NC_SetData(i,1.23); //initialize data
}
init_ME_NC_enable(1);
//*************** Create ME_IT buffer **************************
init_IT_NA_create(128, 0x6401,0x6480,1);
for( i=0;i<128;i++)
{
init_IT_NA_setgroup(i,1);
slave_IT_NA_SetData(i,10); //initialize data
}
init_IT_NA_enable(1);
//***************Create C_SC buffer**************************
init_C_SC_create();
init_C_SC_enable(1);
//****************Create C_DC buffer***************************
init_C_DC_create();
init_C_DC_enable(1);
//****************Create SE_NA buffer***************************
init_C_SE_NA_create();
init_C_SE_NA_enable(1);
//***************Create P_ME_NA buffer**************************
init_P_ME_NA_create(128);
for( i=0;i<128;i++)
{
init_P_ME_NA_setgroup(i,14);
}
init_P_ME_NA_enable(1);
}
void CSlave101real::On_init_Link_process()
{
Init_LinkAddr_size(1);
Init_LinkAddr(1);
}
void CSlave101real::On_init_Serial_process()
{
Init_framesize(246);
Init_SerialComm((char*)((LPCSTR)port),atoi((LPCSTR)baudrate));
}
BYTE CSlave101real::On_C_SC_select(WORD point ,BYTE status)
{
CString str;
str.Format("C_SC Select point:%d switch status:%d",point,status);
dlg->m_list.AddString(str);
return 1;
}
void CSlave101real::On_C_SC_operate(WORD point ,BYTE status)
{
CString str;
str.Format("C_SC Execute point:%d switch status:%d",point,status);
dlg->m_list.AddString(str);
}
BYTE CSlave101real::On_C_DC_select(WORD point ,BYTE status)
{
CString str;
str.Format("C_DC Select point:%d switch status:%d",point,status);
dlg->m_list.AddString(str);
return 1;
}
void CSlave101real::On_C_DC_operate(WORD point ,BYTE status)
{
CString str;
str.Format("C_DC Execute point:%d switch status:%d",point,status);
dlg->m_list.AddString(str);
}
BYTE CSlave101real::On_C_RC_select(WORD point ,BYTE status)
{
return 1;
}
void CSlave101real::On_C_RC_operate(WORD point ,BYTE status)
{
}
BYTE CSlave101real::On_C_BO_select(WORD point ,DWORD status)
{
return 1;
}
void CSlave101real::On_C_BO_operate(WORD point ,DWORD status)
{
}
void CSlave101real::On_C_SE_NA_operate(WORD point ,WORD status)
{
CString str;
str.Format("C_SE_NA execute point:%d value:%d",point,status);
dlg->m_list.AddString(str);
}
void CSlave101real::On_C_SE_NB_operate(WORD point ,WORD value)
{
}
void CSlave101real::On_C_SE_NC_operate(WORD point ,float value)
{
}
void CSlave101real::On_C_SE_ND_operate(WORD point ,WORD value)
{
}
void CSlave101real::On_RecvMsg(_BYTE *msgbuf,_int len )
{
TRACE("\nRx:");
for(int i=0;i