Slave104real.cpp
上传用户:tengfei
上传日期:2014-02-20
资源大小:423k
文件大小:4k
源码类别:

邮电通讯系统

开发平台:

Visual C++

  1. #include "stdafx.h"
  2. #include "Slave104_Demo.h"
  3. #include "Slave104_DemoDlg.h"
  4. #include "Slave104real.h"
  5. CSlave104real::CSlave104real()
  6. {
  7. }
  8. CSlave104real::~CSlave104real()
  9. {
  10. }
  11. void CSlave104real::On_init_ASDU_process()
  12. {
  13. int i;
  14. Init_CauseOfTransfer_Size(2); //设置传输原因占字节 1 or 2
  15. Init_InfoBodyAddr_Size(3); //设置信息体占字节 1 2 or 3
  16. Init_ASDU_Common_addr_size(2); //设置公共地址占字节 1 or  2
  17. Init_ASDU_Common_addr(1); //设置应用公共服务地址
  18. Init_Backgroundperiod(300); //背景扫描时间间隔(秒)
  19. //***************单点信息**************************
  20. init_SP_create( 256,0x0001,0x0100,1 );
  21. for( i=0;i<256;i++)
  22. {
  23. init_SP_setgroup(i,1);
  24. slave_SP_SetData(i,0); //初始化遥信
  25. }
  26. init_SP_enable(1);
  27. //***************单点信息**************************
  28. init_DP_create( 256,0x0201,0x0300,0 );
  29. for( i=0;i<256;i++)
  30. {
  31. init_DP_setgroup(i,2);
  32. slave_DP_SetData(i,1); //初始化遥信
  33. }
  34. init_DP_enable(1);
  35. //***************归一化模拟量**************************
  36. init_ME_NA_create(128, 0x4001,0x4080,0);
  37. for( i=0;i<128;i++)
  38. {
  39. init_ME_NA_setgroup(i,9,1,1.0);
  40. slave_ME_NA_SetData(i,5); //初始化遥测
  41. }
  42. init_ME_NA_enable(1);
  43. //***************短浮点模拟量**************************
  44. init_ME_NC_create(128, 0x4401,0x4480,0);
  45. for( i=0;i<128;i++)
  46. {
  47. init_ME_NC_setgroup(i,8,0,1.0);
  48. slave_ME_NC_SetData(i,1.23); //初始化遥测
  49. }
  50. init_ME_NC_enable(1);
  51. //***************电度量**************************
  52. init_IT_NA_create(128, 0x6401,0x6480,1);
  53. for( i=0;i<128;i++)
  54. {
  55. init_IT_NA_setgroup(i,1);
  56. slave_IT_NA_SetData(i,10); //初始化电镀
  57. }
  58. init_IT_NA_enable(1);
  59. //***************单点遥控**************************
  60. init_C_SC_create();
  61. init_C_SC_enable(1);
  62. //***************双点遥控**************************
  63. init_C_DC_create();
  64. init_C_DC_enable(1);
  65. //***************归一化遥调**************************
  66. init_C_SE_NA_create();
  67. init_C_SE_NA_enable(1);
  68. //***************归一化参数**************************
  69. init_P_ME_NA_create(128);
  70. for( i=0;i<128;i++)
  71. {
  72. init_P_ME_NA_setgroup(i,14);
  73. }
  74. init_P_ME_NA_enable(1);
  75. }
  76. void CSlave104real::On_init_Link_process()
  77. {
  78. Init_Linkpara();
  79. }
  80. void CSlave104real::On_init_Sock_process()
  81. {
  82. Init_SockServerport();
  83. }
  84. BYTE CSlave104real::On_C_SC_select(WORD point ,BYTE status)
  85. {
  86. CString str;
  87. str.Format("单点遥控  选择   点号:%d  合分状态:%d",point,status);
  88. dlg->m_list.AddString(str);
  89. return 1;
  90. }
  91. void CSlave104real::On_C_SC_operate(WORD point ,BYTE status)
  92. {
  93. CString str;
  94. str.Format("单点遥控  执行   点号:%d  合分状态:%d",point,status);
  95. dlg->m_list.AddString(str);
  96. }
  97. BYTE CSlave104real::On_C_DC_select(WORD point ,BYTE status)
  98. {
  99. CString str;
  100. str.Format("双点遥控  选择   点号:%d  合分状态:%d",point,status);
  101. dlg->m_list.AddString(str);
  102. return 1;
  103. }
  104. void CSlave104real::On_C_DC_operate(WORD point ,BYTE status)
  105. {
  106. CString str;
  107. str.Format("双点遥控  执行   点号:%d  合分状态:%d",point,status);
  108. dlg->m_list.AddString(str);
  109. }
  110. BYTE CSlave104real::On_C_RC_select(WORD point ,BYTE status)
  111. {
  112. return 1;
  113. }
  114. void CSlave104real::On_C_RC_operate(WORD point ,BYTE status)
  115. {
  116. }
  117. BYTE CSlave104real::On_C_BO_select(WORD point ,DWORD status)
  118. {
  119. return 1;
  120. }
  121. void CSlave104real::On_C_BO_operate(WORD point ,DWORD status)
  122. {
  123. }
  124. void CSlave104real::On_C_SE_NA_operate(WORD point ,WORD status)
  125. {
  126. CString str;
  127. str.Format("归一化遥调  执行   点号:%d  值:%d",point,status);
  128. dlg->m_list.AddString(str);
  129. }
  130. void CSlave104real::On_C_SE_NB_operate(WORD point ,WORD value)
  131. {
  132. }
  133. void CSlave104real::On_C_SE_NC_operate(WORD point ,float value)
  134. {
  135. }
  136. void CSlave104real::On_C_SE_ND_operate(WORD point ,WORD value)
  137. {
  138. }
  139. void CSlave104real::On_RecvMsg(_BYTE *msgbuf,_int len )//显示接收报文
  140. {
  141. TRACE("nRx:");
  142. for(int i=0;i<len;i++)
  143. TRACE(" %02x ",msgbuf[i]); 
  144. }
  145. void CSlave104real::On_SendMsg(_BYTE *msgbuf,_int len)//显示发送报文
  146. {
  147. TRACE("nTx:");
  148. for(int i=0;i<len;i++)
  149. TRACE(" %02x ",msgbuf[i]); 
  150. }
  151. void CSlave104real::On_ErrorMsg(char *msgbuf)
  152. {
  153. TRACE("n%s",msgbuf);
  154. }