diff --git a/buban104.cpp b/buban104.cpp index 84f55cc..52d35d3 100644 --- a/buban104.cpp +++ b/buban104.cpp @@ -32,55 +32,55 @@ extern char IniFilePath[256]; const char *gpStrBuban104Cmd[BUBAN104_TIMER_CMD_NUM] = { - "总召唤电度数据", - "召唤初始化数据", - "帧序应答" + "鎬诲彫鍞ょ數搴︽暟鎹", + "鍙敜鍒濆鍖栨暟鎹", + "甯у簭搴旂瓟" }; /*! - 组织结构:链路(间隔)+装置 + 缁勭粐缁撴瀯:閾捐矾(闂撮殧)+瑁呯疆 */ const char *gpStrBuban104ConfigInfo[] = { - " ; ***** 部颁104规约参数定义 *****", + " ; ***** 閮ㄩ104瑙勭害鍙傛暟瀹氫箟 *****", " ", - " ; 所有命令召唤周期均以秒为单位,可以为xx.xxx秒。", - " ; 注意:104规约只支持网络通讯,作为主站时是客户方式,作为子站时是服务器方式。", - " ; 网络端口 = 2404。", - " 站地址 = 1 ; 缺省= 0 。", - " 总召唤电度数据 = 120", - " 召唤初始化数据 = 300", - " 帧序应答 = 20", - " ; 在对方超时时间之内发送帧序应答帧。", - " 超时时间 = 3.0", - //" 转发返校超时时间 = 10.0", - " 转发是否要求应答 = 0", - " 超时发送测试帧 = 0", - " ; =0:超时不发送测试报文而是帧序应答报文(缺省值),=1:发送测试报文", - " 遥控方式=0", - " ; =0:双点遥控(缺省),=1:单点遥控。", + " ; 鎵鏈夊懡浠ゅ彫鍞ゅ懆鏈熷潎浠ョ涓哄崟浣,鍙互涓簒x.xxx绉掋", + " ; 娉ㄦ剰:104瑙勭害鍙敮鎸佺綉缁滈氳,浣滀负涓荤珯鏃舵槸瀹㈡埛鏂瑰紡,浣滀负瀛愮珯鏃舵槸鏈嶅姟鍣ㄦ柟寮忋", + " ; 缃戠粶绔彛 = 2404銆", + " 绔欏湴鍧 = 1 ; 缂虹渷= 0 銆", + " 鎬诲彫鍞ょ數搴︽暟鎹 = 120", + " 鍙敜鍒濆鍖栨暟鎹 = 300", + " 甯у簭搴旂瓟 = 20", + " ; 鍦ㄥ鏂硅秴鏃舵椂闂翠箣鍐呭彂閫佸抚搴忓簲绛斿抚銆", + " 瓒呮椂鏃堕棿 = 3.0", + //" 杞彂杩旀牎瓒呮椂鏃堕棿 = 10.0", + " 杞彂鏄惁瑕佹眰搴旂瓟 = 0", + " 瓒呮椂鍙戦佹祴璇曞抚 = 0", + " ; =0锛氳秴鏃朵笉鍙戦佹祴璇曟姤鏂囪屾槸甯у簭搴旂瓟鎶ユ枃(缂虹渷鍊)锛=1锛氬彂閫佹祴璇曟姤鏂", + " 閬ユ帶鏂瑰紡=0", + " ; =0锛氬弻鐐归仴鎺(缂虹渷)锛=1锛氬崟鐐归仴鎺с", " ", - " 遥测信息体起始地址=0x701", - " 遥信信息体起始地址=0x001", - " 遥脉信息体起始地址=0xC01", - " 遥控信息体起始地址=0xB01", - " ;以上信息体地址可以配置,缺省值为97版部颁104所规定值", + " 閬ユ祴淇℃伅浣撹捣濮嬪湴鍧=0x701", + " 閬ヤ俊淇℃伅浣撹捣濮嬪湴鍧=0x001", + " 閬ヨ剦淇℃伅浣撹捣濮嬪湴鍧=0xC01", + " 閬ユ帶淇℃伅浣撹捣濮嬪湴鍧=0xB01", + " ;浠ヤ笂淇℃伅浣撳湴鍧鍙互閰嶇疆,缂虹渷鍊间负97鐗堥儴棰104鎵瑙勫畾鍊", " ", - " 帧序应答尺寸=2", + " 甯у簭搴旂瓟灏哄=2", " ", - " 版本号 = 1", - " ;=0 是buban104(缺省值); =1 是IEC_870_5_104规约", - " 发布时间=2000", - " ;=1997; =2000(缺省值)", - " 转发遥测类型标识 = 21", + " 鐗堟湰鍙 = 1", + " ;=0 鏄痓uban104(缂虹渷鍊); =1 鏄疘EC_870_5_104瑙勭害", + " 鍙戝竷鏃堕棿=2000", + " ;=1997; =2000(缂虹渷鍊)", + " 杞彂閬ユ祴绫诲瀷鏍囪瘑 = 21", " ", - "*******部颁104规约结束*******", - "", // 结束标志(中间不能含有该空字符串) + "*******閮ㄩ104瑙勭害缁撴潫*******", + "", // 缁撴潫鏍囧織(涓棿涓嶈兘鍚湁璇ョ┖瀛楃涓) }; //******************************************************************** -//* 读取配置函数 * -//*参数:int commid : 端口号 * +//* 璇诲彇閰嶇疆鍑芥暟 * +//*鍙傛暟锛歩nt commid : 绔彛鍙 * //******************************************************************** void Buban104ReadConfig(int commid) { @@ -110,16 +110,16 @@ void Buban104ReadConfig(int commid) pPortParam = (pBUBAN104PORTPARAM)SioParam[commid].ExtInfo; - /* 只有在SioParam[commid].m_psBaoHu非空时,才会运行到这里 */ + /* 鍙湁鍦⊿ioParam[commid].m_psBaoHu闈炵┖鏃讹紝鎵嶄細杩愯鍒拌繖閲 */ pPortParam->m_psBaoHu = SioParam[commid].m_psBaoHu; sprintf(szSection, "Port%d", commid+1); - if(GetPrivateProString(szSection, "站地址", "0", szbuf, 120, szPortConfig) > 0) + if(GetPrivateProString(szSection, "绔欏湴鍧", "0", szbuf, 120, szPortConfig) > 0) { pPortParam->wLinkAddr = atoi(szbuf); } - // 轮询指令配置 + // 杞鎸囦护閰嶇疆 for(i=0; i 0) + if(GetPrivateProString(szSection, "瓒呮椂鏃堕棿", "20.0", szbuf, 120, szPortConfig) > 0) { pPortParam->lTimeOutConst = (long)(atof(szbuf)*1000/TIMER_CNT); } - pPortParam->ProvAckOrNot = GetPrivateProInt(szSection, "转发是否要求应答", 0, szPortConfig); + pPortParam->ProvAckOrNot = GetPrivateProInt(szSection, "杞彂鏄惁瑕佹眰搴旂瓟", 0, szPortConfig); if(pPortParam->ProvAckOrNot > 0) { pPortParam->ProvAckOrNot = 1; @@ -145,37 +145,37 @@ void Buban104ReadConfig(int commid) pPortParam->ProvAckOrNot = 0; } - // wen 2005.10.28 修改超时时是否发送测试报文 - pPortParam->lTimeOutSendTest = GetPrivateProInt(szSection, "超时发送测试帧", 0, szPortConfig); + // wen 2005.10.28 淇敼瓒呮椂鏃舵槸鍚﹀彂閫佹祴璇曟姤鏂 + pPortParam->lTimeOutSendTest = GetPrivateProInt(szSection, "瓒呮椂鍙戦佹祴璇曞抚", 0, szPortConfig); - if(GetPrivateProString(szSection, "遥控方式", "0", szbuf, 120, szPortConfig) > 0) + if(GetPrivateProString(szSection, "閬ユ帶鏂瑰紡", "0", szbuf, 120, szPortConfig) > 0) { pPortParam->YkMode = atoi(szbuf); } - pPortParam->iAiBaseAddr = GetPrivateProInt(szSection, "遥测信息体起始地址", INFO_AI_BASEADDR, szPortConfig); - pPortParam->iDiBaseAddr = GetPrivateProInt(szSection, "遥信信息体起始地址", INFO_DI_BASEADDR, szPortConfig); - pPortParam->iPiBaseAddr = GetPrivateProInt(szSection, "遥脉信息体起始地址", INFO_PI_BASEADDR, szPortConfig); - pPortParam->iYkBaseAddr = GetPrivateProInt(szSection, "遥控信息体起始地址", INFO_YKYT_BASEADDR, szPortConfig); + pPortParam->iAiBaseAddr = GetPrivateProInt(szSection, "閬ユ祴淇℃伅浣撹捣濮嬪湴鍧", INFO_AI_BASEADDR, szPortConfig); + pPortParam->iDiBaseAddr = GetPrivateProInt(szSection, "閬ヤ俊淇℃伅浣撹捣濮嬪湴鍧", INFO_DI_BASEADDR, szPortConfig); + pPortParam->iPiBaseAddr = GetPrivateProInt(szSection, "閬ヨ剦淇℃伅浣撹捣濮嬪湴鍧", INFO_PI_BASEADDR, szPortConfig); + pPortParam->iYkBaseAddr = GetPrivateProInt(szSection, "閬ユ帶淇℃伅浣撹捣濮嬪湴鍧", INFO_YKYT_BASEADDR, szPortConfig); - pPortParam->m_iFrameSize = GetPrivateProInt(szSection, "帧序应答尺寸", MAX_FRAMEMATCHING_SIZE, szPortConfig); + pPortParam->m_iFrameSize = GetPrivateProInt(szSection, "甯у簭搴旂瓟灏哄", MAX_FRAMEMATCHING_SIZE, szPortConfig); - pPortParam->RtuVersion = GetPrivateProInt(szSection, "版本号", 0, szPortConfig); - pPortParam->m_iPublishYear = GetPrivateProInt(szSection, "发布时间", 2000, szPortConfig); + pPortParam->RtuVersion = GetPrivateProInt(szSection, "鐗堟湰鍙", 0, szPortConfig); + pPortParam->m_iPublishYear = GetPrivateProInt(szSection, "鍙戝竷鏃堕棿", 2000, szPortConfig); - pPortParam->m_bProvAiType = GetPrivateProInt(szSection, "转发遥测类型标识", 13, szPortConfig); + pPortParam->m_bProvAiType = GetPrivateProInt(szSection, "杞彂閬ユ祴绫诲瀷鏍囪瘑", 13, szPortConfig); InitBuban104CommandBuffer(commid); } // // //******************************************************************** -//* 读取端口数据函数 * -//*参数:int commid : 端口号 * -//* u_char buf : 数据源缓冲区指针 * -//* int len : 数据源长度 * +//* 璇诲彇绔彛鏁版嵁鍑芥暟 * +//*鍙傛暟锛歩nt commid : 绔彛鍙 * +//* u_char buf : 鏁版嵁婧愮紦鍐插尯鎸囬拡 * +//* int len : 鏁版嵁婧愰暱搴 * //******************************************************************** -void Buban104RecvData(int commid, u_char *buf, int len)// 规约读数据处理 +void Buban104RecvData(int commid, u_char *buf, int len)// 瑙勭害璇绘暟鎹鐞 { int i; pBUBAN104PORTPARAM pPortParam; @@ -221,7 +221,7 @@ void Buban104RecvData(int commid, u_char *buf, int len)// pPortParam->m_psBaoHu->m_iRevStatus++; } break; - case 2:// 正确接收数据 + case 2:// 姝g‘鎺ユ敹鏁版嵁 pPortParam->m_psBaoHu->m_iNeedRevLength--; pPortParam->m_au8RecvBuf[pPortParam->m_iRecvLen++] = buf[i]; if(pPortParam->m_psBaoHu->m_iNeedRevLength > 0) @@ -239,12 +239,12 @@ void Buban104RecvData(int commid, u_char *buf, int len)// #endif //pPortParam->LinkOkCnt = 0; break; - case 100:// 错误接收数据 + case 100:// 閿欒鎺ユ敹鏁版嵁 default: if(buf[i] == 0x68) { #ifdef _WIN32 - // wen 2004.11.22 增加显示 + // wen 2004.11.22 澧炲姞鏄剧ず if((GetCurPort() == commid) && IsRealDataDisp()) { WatchDataPutDispBuf(commid, SDS_SIO_RECV_DATA, @@ -263,7 +263,7 @@ void Buban104RecvData(int commid, u_char *buf, int len)// if(pPortParam->m_iRecvLen > 200) { #ifdef _WIN32 - // wen 2004.11.22 增加显示 + // wen 2004.11.22 澧炲姞鏄剧ず if((GetCurPort() == commid) && IsRealDataDisp()) { WatchDataPutDispBuf(commid, SDS_SIO_RECV_DATA, @@ -288,8 +288,8 @@ void Buban104RecvData(int commid, u_char *buf, int len)// } //******************************************************************** -//* 定时器处理函数 * -//*参数:int commid : 端口号 * +//* 瀹氭椂鍣ㄥ鐞嗗嚱鏁 * +//*鍙傛暟锛歩nt commid : 绔彛鍙 * //******************************************************************** void Buban104Timer(int commid) { @@ -304,10 +304,10 @@ void Buban104Timer(int commid) if(pPortParam->LinkOk) { - // 超时计数 + // 瓒呮椂璁℃暟 pPortParam->lTimeOutCnt++; } - // 如果为转发端口,则不进行轮询指令的生成。 + // 濡傛灉涓鸿浆鍙戠鍙o紝鍒欎笉杩涜杞鎸囦护鐨勭敓鎴愩 if(PROTOCOL_SLAVE != pPortParam->m_psBaoHu->PortType) { Buban104FindNextCmd(commid); @@ -321,30 +321,30 @@ void Buban104Timer(int commid) } //******************************************************************** -//* 遥控遥调数据处理函数 * -//*参数:int commid : 端口号 * -//* u_char buf : 数据源缓冲区指针 * -//* int len : 数据源长度 * +//* 閬ユ帶閬ヨ皟鏁版嵁澶勭悊鍑芥暟 * +//*鍙傛暟锛歩nt commid : 绔彛鍙 * +//* u_char buf : 鏁版嵁婧愮紦鍐插尯鎸囬拡 * +//* int len : 鏁版嵁婧愰暱搴 * //******************************************************************** -void Buban104YkYtProcess(int commid, u_char *buf, int len) // 遥控遥调处理 +void Buban104YkYtProcess(int commid, u_char *buf, int len) // 閬ユ帶閬ヨ皟澶勭悊 { int portno, ykytpnt; int iDirect; - // buf[0] --- 端口号(=commid) + // buf[0] --- 绔彛鍙(=commid) // buf[1] // buf[2] // buf[3] - // buf[4] --- 控点号 + // buf[4] --- 鎺х偣鍙 // buf[5] // buf[6] // buf[7] - // buf[8] --- 操作类型(遥控:1=选择,2=执行,3=取消,7=直控; - // 遥调:4=选择,5=执行,6=取消,8=急停) - // buf[9] --- 控制状态(1=分到合,2=合到分) - // (最高位为1时,为返校命令, 1=控合, 2=控分, 3=失败) - // 在转发遥控数据点中,只保留了要转发的控点号,实际的端口号应该是该转发点的端口 - // 该转发点并没有指定虚拟的转发控点,则控点和转发点的点号一致。 + // buf[8] --- 鎿嶄綔绫诲瀷(閬ユ帶:1=閫夋嫨,2=鎵ц,3=鍙栨秷,7=鐩存帶; + // 閬ヨ皟:4=閫夋嫨,5=鎵ц,6=鍙栨秷,8=鎬ュ仠) + // buf[9] --- 鎺у埗鐘舵(1=鍒嗗埌鍚堬紝2=鍚堝埌鍒) + // (鏈楂樹綅涓1鏃讹紝涓鸿繑鏍″懡浠, 1=鎺у悎, 2=鎺у垎, 3=澶辫触) + // 鍦ㄨ浆鍙戦仴鎺ф暟鎹偣涓紝鍙繚鐣欎簡瑕佽浆鍙戠殑鎺х偣鍙凤紝瀹為檯鐨勭鍙e彿搴旇鏄杞彂鐐圭殑绔彛 + // 璇ヨ浆鍙戠偣骞舵病鏈夋寚瀹氳櫄鎷熺殑杞彂鎺х偣锛屽垯鎺х偣鍜岃浆鍙戠偣鐨勭偣鍙蜂竴鑷淬 if(IsExtInfoPtr(commid) == FALSE) { @@ -355,7 +355,7 @@ void Buban104YkYtProcess(int commid, u_char *buf, int len) // 遥 portno = buf[0]+buf[1]*256+buf[2]*65536+buf[3]*16777216; ykytpnt = buf[4]+buf[5]*256+buf[6]*65536+buf[7]*16777216; - // 返校信息(反馈信号) + // 杩旀牎淇℃伅(鍙嶉淇″彿) if(iDirect) { Buban104ProvMakeYkYtCommand(commid, buf, len); @@ -367,10 +367,10 @@ void Buban104YkYtProcess(int commid, u_char *buf, int len) // 遥 } //******************************************************************** -//* 系统下发对时函数 * -//*参数:int commid : 端口号 * +//* 绯荤粺涓嬪彂瀵规椂鍑芥暟 * +//*鍙傛暟锛歩nt commid : 绔彛鍙 * //******************************************************************** -void Buban104SendSystemTime(int commid) // 系统对时 +void Buban104SendSystemTime(int commid) // 绯荤粺瀵规椂 { BUBAN104PORTPARAM *pPortParam; @@ -396,15 +396,15 @@ void Buban104SendSystemTime(int commid) // 系统 } //******************************************************************** -//* 系统退出时规约处理函数 * -//*参数:int commid : 端口号 * +//* 绯荤粺閫鍑烘椂瑙勭害澶勭悊鍑芥暟 * +//*鍙傛暟锛歩nt commid : 绔彛鍙 * //******************************************************************** void Buban104Exit(int commid) { - // 释放所有分配的内存 + // 閲婃斁鎵鏈夊垎閰嶇殑鍐呭瓨 } -// 该函数用来驱动由转发端口下发到实际装置的保护命令 +// 璇ュ嚱鏁扮敤鏉ラ┍鍔ㄧ敱杞彂绔彛涓嬪彂鍒板疄闄呰缃殑淇濇姢鍛戒护 void Buban104BaoHuCmdProcess(int commid, RTUMSG *rtumsg, BOOL bUpData) { } @@ -413,10 +413,10 @@ int Buban104GetBaohuDataBase(int commid, int iProvAddr, GROUPDEF **ppBaoHuDB) { return 0; } -/////////////////////////通用函数接口结束/////////////////////////////// +/////////////////////////閫氱敤鍑芥暟鎺ュ彛缁撴潫/////////////////////////////// -/////////////////////////buban104公共函数接口/////////////////////////// -//指令缓冲区初始化 +/////////////////////////buban104鍏叡鍑芥暟鎺ュ彛/////////////////////////// +//鎸囦护缂撳啿鍖哄垵濮嬪寲 void InitBuban104CommandBuffer(int commid) { pBUBAN104PORTPARAM pPortParam; @@ -424,9 +424,9 @@ void InitBuban104CommandBuffer(int commid) pPortParam = (pBUBAN104PORTPARAM)SioParam[commid].ExtInfo; pPortParam->LinkOk = false; - // wen 2005.09.15 将该标识修改为true后, - // 在主站下发总召命令和总召电度后,会将其标识置为false; - // 而子站端不会受此标识的影响,标识为false,不下发数据。 + // wen 2005.09.15 灏嗚鏍囪瘑淇敼涓簍rue鍚庯紝 + // 鍦ㄤ富绔欎笅鍙戞诲彫鍛戒护鍜屾诲彫鐢靛害鍚庯紝浼氬皢鍏舵爣璇嗙疆涓篺alse锛 + // 鑰屽瓙绔欑涓嶄細鍙楁鏍囪瘑鐨勫奖鍝嶏紝鏍囪瘑涓篺alse锛屼笉涓嬪彂鏁版嵁銆 //pPortParam->Initdata = false; pPortParam->Initdata = true; @@ -441,31 +441,31 @@ void InitBuban104CommandBuffer(int commid) ClearAllCmdFromPollCmdBuf(commid); } -//关闭socket通讯 +//鍏抽棴socket閫氳 void Buban104CloseSocket(u_32 commid) { #ifdef OS_LINUX CloseNetPort(commid); #endif } -/////////////////////////buban104公共函数接口结束/////////////////////// +/////////////////////////buban104鍏叡鍑芥暟鎺ュ彛缁撴潫/////////////////////// void Buban104ProvMakeYkYtCommand(int commid, u_char *buf, int len) { - // buf[0] --- 端口号(=commid) + // buf[0] --- 绔彛鍙(=commid) // buf[1] // buf[2] // buf[3] - // buf[4] --- 控点号 + // buf[4] --- 鎺х偣鍙 // buf[5] // buf[6] // buf[7] - // buf[8] --- 操作类型(遥控:1=选择,2=执行,3=取消,7=直控; - // 遥调:4=选择,5=执行,6=取消,8=急停) - // buf[9] --- 控制状态(1=分到合,2=合到分) - // (最高位为1时,为返校命令, 1=控合, 2=控分, 3=失败) - // 在转发遥控数据点中,只保留了要转发的控点号,实际的端口号应该是该转发点的端口 - // 该转发点并没有指定虚拟的转发控点,则控点和转发点的点号一致。 + // buf[8] --- 鎿嶄綔绫诲瀷(閬ユ帶:1=閫夋嫨,2=鎵ц,3=鍙栨秷,7=鐩存帶; + // 閬ヨ皟:4=閫夋嫨,5=鎵ц,6=鍙栨秷,8=鎬ュ仠) + // buf[9] --- 鎺у埗鐘舵(1=鍒嗗埌鍚堬紝2=鍚堝埌鍒) + // (鏈楂樹綅涓1鏃讹紝涓鸿繑鏍″懡浠, 1=鎺у悎, 2=鎺у垎, 3=澶辫触) + // 鍦ㄨ浆鍙戦仴鎺ф暟鎹偣涓紝鍙繚鐣欎簡瑕佽浆鍙戠殑鎺х偣鍙凤紝瀹為檯鐨勭鍙e彿搴旇鏄杞彂鐐圭殑绔彛 + // 璇ヨ浆鍙戠偣骞舵病鏈夋寚瀹氳櫄鎷熺殑杞彂鎺х偣锛屽垯鎺х偣鍜岃浆鍙戠偣鐨勭偣鍙蜂竴鑷淬 int ykpoint, iLen; char commandbuf[MAX_POLLCMD_BUF_LEN]; @@ -493,16 +493,16 @@ void Buban104ProvMakeYkYtCommand(int commid, u_char *buf, int len) commandbuf[1] = 14; switch(pPortParam->YkMode) { - case CONTROL_SINGAL: // 单点控制 + case CONTROL_SINGAL: // 鍗曠偣鎺у埗 commandbuf[6] = 45; break; - case CONTROL_DOUBLE: // 双点控制 - case CONTROL_DIRECT: // 直接控制 + case CONTROL_DOUBLE: // 鍙岀偣鎺у埗 + case CONTROL_DIRECT: // 鐩存帴鎺у埗 commandbuf[6] = 46;//(rtumsg->MsgData[3] == 1) ? 46 : 47; break; } commandbuf[7] = 1; - //commandbuf[8] 传送原因 + //commandbuf[8] 浼犻佸師鍥 iLen = 9; if(VER_BUBAN_104 == pPortParam->RtuVersion) { @@ -523,14 +523,14 @@ void Buban104ProvMakeYkYtCommand(int commid, u_char *buf, int len) switch(buf[8]) { case 1: - case 4: // 选择 + case 4: // 閫夋嫨 bHaveOrder = TRUE; commandbuf[8] = 7; commandbuf[iLen] = 0xfc; break; case 2: - case 5: // 执行 + case 5: // 鎵ц bHaveOrder = TRUE; commandbuf[8] = 7; commandbuf[iLen] = 0x7c; @@ -552,8 +552,8 @@ void Buban104ProvMakeYkYtCommand(int commid, u_char *buf, int len) } else { - // 控分还是控合 - if((buf[9] & 0x03) == 0x01)// 控合 + // 鎺у垎杩樻槸鎺у悎 + if((buf[9] & 0x03) == 0x01)// 鎺у悎 { if(CONTROL_SINGAL == pPortParam->YkMode) { @@ -564,7 +564,7 @@ void Buban104ProvMakeYkYtCommand(int commid, u_char *buf, int len) commandbuf[iLen++] |= 2; } } - else// 控分 + else// 鎺у垎 { if(CONTROL_SINGAL != pPortParam->YkMode) { @@ -583,11 +583,11 @@ void Buban104ProvMakeYkYtCommand(int commid, u_char *buf, int len) } } -//===========================以下为指令生成函数======================= +//===========================浠ヤ笅涓烘寚浠ょ敓鎴愬嚱鏁======================= /*! - \brief 寻找并生成下一条命令 - \param u_32 portno : RTU端口号 - \param i_32 iBuIdx : 间隔装置索引 + \brief 瀵绘壘骞剁敓鎴愪笅涓鏉″懡浠 + \param u_32 portno : RTU绔彛鍙 + \param i_32 iBuIdx : 闂撮殧瑁呯疆绱㈠紩 */ void MakeBuban104Command(u_32 commid, u_char cmdidx) { @@ -604,7 +604,7 @@ void MakeBuban104Command(u_32 commid, u_char cmdidx) switch ( cmdidx ) { // format-i - case RTU_TIME: // 时间同步 + case RTU_TIME: // 鏃堕棿鍚屾 GetLocalTimeEx(&sCurTime); commandbuf[0] = 0x68; iLen = 6; @@ -639,7 +639,7 @@ void MakeBuban104Command(u_32 commid, u_char cmdidx) PutPollCmdToBuf(commid, INSERT_POLL_CMD, 0, commandbuf, iLen); break; - case ASK_DI_DATA: // 召唤2级数据YX + case ASK_DI_DATA: // 鍙敜2绾ф暟鎹甕X for ( i = 0; i < (pPortParam->m_psBaoHu->DiNum+MAX_GROUP_DINUM-1)/MAX_GROUP_DINUM; i++) { commandbuf[0] = 0x68; @@ -671,7 +671,7 @@ void MakeBuban104Command(u_32 commid, u_char cmdidx) } break; - case ASK_AI_DATA: // 召唤2级数据YC + case ASK_AI_DATA: // 鍙敜2绾ф暟鎹甕C for ( i = 0; i < (pPortParam->m_psBaoHu->AiNum+MAX_GROUP_AINUM-1)/MAX_GROUP_AINUM; i++) { commandbuf[0] = 0x68; @@ -702,7 +702,7 @@ void MakeBuban104Command(u_32 commid, u_char cmdidx) } break; - case ASK_PI_DATA: // 召唤2级数据YM + case ASK_PI_DATA: // 鍙敜2绾ф暟鎹甕M for ( i = 0; i < (pPortParam->m_psBaoHu->PiNum+MAX_GROUP_PINUM-1)/MAX_GROUP_PINUM; i++) { commandbuf[0] = 0x68; @@ -733,7 +733,7 @@ void MakeBuban104Command(u_32 commid, u_char cmdidx) } break; - case ASK_PI: //召唤电度量 + case ASK_PI: //鍙敜鐢靛害閲 commandbuf[0] = 0x68; //commandbuf[1] = 14; iLen = 6; @@ -757,7 +757,7 @@ void MakeBuban104Command(u_32 commid, u_char cmdidx) commandbuf[iLen++] = 0; commandbuf[iLen++] = 0; } - // wen 2006.04.03 发布时间97版和2000版组分配不同 + // wen 2006.04.03 鍙戝竷鏃堕棿97鐗堝拰2000鐗堢粍鍒嗛厤涓嶅悓 if(pPortParam->m_iPublishYear == 1997) { commandbuf[iLen++] = 0x41; @@ -772,7 +772,7 @@ void MakeBuban104Command(u_32 commid, u_char cmdidx) pPortParam->Initdata = false; break; - case ASK_ALL_DATA:// 召唤初始化数据 + case ASK_ALL_DATA:// 鍙敜鍒濆鍖栨暟鎹 commandbuf[0] = 0x68; //commandbuf[1] = 14; iLen = 6; @@ -802,8 +802,8 @@ void MakeBuban104Command(u_32 commid, u_char cmdidx) break; // format-s - case FORMAT_S: // S-格式 - // wen 2005.09.21 如果缓冲区内有数据,则不生成S帧 + case FORMAT_S: // S-鏍煎紡 + // wen 2005.09.21 濡傛灉缂撳啿鍖哄唴鏈夋暟鎹紝鍒欎笉鐢熸垚S甯 if(CheckPollCmdBufEmpty(commid) <= 0) { break; @@ -818,7 +818,7 @@ void MakeBuban104Command(u_32 commid, u_char cmdidx) break; // format-u - case FORMAT_U_START_ACT: // U-格式启动 + case FORMAT_U_START_ACT: // U-鏍煎紡鍚姩 commandbuf[iLen++] = 0x68; commandbuf[iLen++] = 4; commandbuf[iLen++] = 0x07; @@ -828,7 +828,7 @@ void MakeBuban104Command(u_32 commid, u_char cmdidx) PutPollCmdToBuf(commid, INSERT_POLL_CMD, 0, commandbuf, iLen); break; - case FORMAT_U_START_CON: // U-格式启动应答 + case FORMAT_U_START_CON: // U-鏍煎紡鍚姩搴旂瓟 commandbuf[iLen++] = 0x68; commandbuf[iLen++] = 4; commandbuf[iLen++] = 0x0b; @@ -838,7 +838,7 @@ void MakeBuban104Command(u_32 commid, u_char cmdidx) PutPollCmdToBuf(commid, FAST_POLL_CMD, 0, commandbuf, iLen); break; - case FORMAT_U_STOP_ACT: // U-格式停止 + case FORMAT_U_STOP_ACT: // U-鏍煎紡鍋滄 commandbuf[iLen++] = 0x68; commandbuf[iLen++] = 4; commandbuf[iLen++] = 0x13; @@ -848,7 +848,7 @@ void MakeBuban104Command(u_32 commid, u_char cmdidx) PutPollCmdToBuf(commid, INSERT_POLL_CMD, 0, commandbuf, iLen); break; - case FORMAT_U_STOP_CON: // U-格式停止应答 + case FORMAT_U_STOP_CON: // U-鏍煎紡鍋滄搴旂瓟 commandbuf[iLen++] = 0x68; commandbuf[iLen++] = 4; commandbuf[iLen++] = 0x23; @@ -858,7 +858,7 @@ void MakeBuban104Command(u_32 commid, u_char cmdidx) PutPollCmdToBuf(commid, FAST_POLL_CMD, 0, commandbuf, iLen); break; - case FORMAT_U_TEST_ACT: // U-格式测试 + case FORMAT_U_TEST_ACT: // U-鏍煎紡娴嬭瘯 commandbuf[iLen++] = 0x68; commandbuf[iLen++] = 4; commandbuf[iLen++] = 0x43; @@ -868,7 +868,7 @@ void MakeBuban104Command(u_32 commid, u_char cmdidx) PutPollCmdToBuf(commid, INSERT_POLL_CMD, 0, commandbuf, iLen); break; - case FORMAT_U_TEST_CON: // U-格式测试应答 + case FORMAT_U_TEST_CON: // U-鏍煎紡娴嬭瘯搴旂瓟 commandbuf[iLen++] = 0x68; commandbuf[iLen++] = 4; commandbuf[iLen++] = (char)0x83; @@ -883,23 +883,23 @@ void MakeBuban104Command(u_32 commid, u_char cmdidx) } } -//生成遥控遥调指令 +//鐢熸垚閬ユ帶閬ヨ皟鎸囦护 void MakeBuBan104YkYtCommand( u_32 commid, u_char *buf, int len ) { - // buf[0] --- 端口号(=commid) + // buf[0] --- 绔彛鍙(=commid) // buf[1] // buf[2] // buf[3] - // buf[4] --- 控点号 + // buf[4] --- 鎺х偣鍙 // buf[5] // buf[6] // buf[7] - // buf[8] --- 操作类型(遥控:1=选择,2=执行,3=取消,7=直控; - // 遥调:4=选择,5=执行,6=取消,8=急停) - // buf[9] --- 控制状态(1=分到合,2=合到分) - // (最高位为1时,为返校命令, 1=成功, 0=失败) - // 在转发遥控数据点中,只保留了要转发的控点号,实际的端口号应该是该转发点的端口 - // 该转发点并没有指定虚拟的转发控点,则控点和转发点的点号一致。 + // buf[8] --- 鎿嶄綔绫诲瀷(閬ユ帶:1=閫夋嫨,2=鎵ц,3=鍙栨秷,7=鐩存帶; + // 閬ヨ皟:4=閫夋嫨,5=鎵ц,6=鍙栨秷,8=鎬ュ仠) + // buf[9] --- 鎺у埗鐘舵(1=鍒嗗埌鍚堬紝2=鍚堝埌鍒) + // (鏈楂樹綅涓1鏃讹紝涓鸿繑鏍″懡浠, 1=鎴愬姛, 0=澶辫触) + // 鍦ㄨ浆鍙戦仴鎺ф暟鎹偣涓紝鍙繚鐣欎簡瑕佽浆鍙戠殑鎺х偣鍙凤紝瀹為檯鐨勭鍙e彿搴旇鏄杞彂鐐圭殑绔彛 + // 璇ヨ浆鍙戠偣骞舵病鏈夋寚瀹氳櫄鎷熺殑杞彂鎺х偣锛屽垯鎺х偣鍜岃浆鍙戠偣鐨勭偣鍙蜂竴鑷淬 int ykpoint, iLen; char commandbuf[MAX_POLLCMD_BUF_LEN]; @@ -917,16 +917,16 @@ void MakeBuBan104YkYtCommand( u_32 commid, u_char *buf, int len ) switch(buf[8]) { case 1: - case 4: // 选择 + case 4: // 閫夋嫨 commandbuf[0] = 0x68; commandbuf[1] = 14; switch(pPortParam->YkMode) { - case CONTROL_SINGAL: // 单点控制 + case CONTROL_SINGAL: // 鍗曠偣鎺у埗 commandbuf[6] = 45; break; - case CONTROL_DOUBLE: // 双点控制 - case CONTROL_DIRECT: // 直接控制 + case CONTROL_DOUBLE: // 鍙岀偣鎺у埗 + case CONTROL_DIRECT: // 鐩存帴鎺у埗 commandbuf[6] = 46;//(rtumsg->MsgData[3] == 1) ? 46 : 47; break; } @@ -944,7 +944,7 @@ void MakeBuBan104YkYtCommand( u_32 commid, u_char *buf, int len ) commandbuf[iLen++] = LOBYTE(pPortParam->wLinkAddr); commandbuf[iLen++] = HIBYTE(pPortParam->wLinkAddr); - // wen 2002.11.18 字节顺序修改 + // wen 2002.11.18 瀛楄妭椤哄簭淇敼 commandbuf[iLen++] = (char)(ykpoint & 0x00ff); commandbuf[iLen++] = (char)((ykpoint & 0xff00)>>8); commandbuf[iLen++] = 0; @@ -977,16 +977,16 @@ void MakeBuBan104YkYtCommand( u_32 commid, u_char *buf, int len ) break; case 2: - case 5: // 执行 + case 5: // 鎵ц commandbuf[0] = 0x68; commandbuf[1] = 14; switch(pPortParam->YkMode) { - case CONTROL_SINGAL: // 单点控制 + case CONTROL_SINGAL: // 鍗曠偣鎺у埗 commandbuf[6] = 45; break; - case CONTROL_DOUBLE: // 双点控制 - case CONTROL_DIRECT: // 直接控制 + case CONTROL_DOUBLE: // 鍙岀偣鎺у埗 + case CONTROL_DIRECT: // 鐩存帴鎺у埗 commandbuf[6] = 46;//(rtumsg->MsgData[3] == 1) ? 46 : 47; break; } @@ -995,7 +995,7 @@ void MakeBuBan104YkYtCommand( u_32 commid, u_char *buf, int len ) if(VER_BUBAN_104 == pPortParam->RtuVersion) { commandbuf[iLen++] = LOBYTE(pPortParam->wLinkAddr); - // wen 2002.11.18 字节顺序修改 + // wen 2002.11.18 瀛楄妭椤哄簭淇敼 commandbuf[iLen++] = (char)(ykpoint & 0x00ff); commandbuf[iLen++] = (char)((ykpoint & 0xff00)>>8); } @@ -1005,7 +1005,7 @@ void MakeBuBan104YkYtCommand( u_32 commid, u_char *buf, int len ) commandbuf[iLen++] = LOBYTE(pPortParam->wLinkAddr); commandbuf[iLen++] = HIBYTE(pPortParam->wLinkAddr); - // wen 2002.11.18 字节顺序修改 + // wen 2002.11.18 瀛楄妭椤哄簭淇敼 commandbuf[iLen++] = (char)(ykpoint & 0x00ff); commandbuf[iLen++] = (char)((ykpoint & 0xff00)>>8); commandbuf[iLen++] = 0; @@ -1021,11 +1021,11 @@ void MakeBuBan104YkYtCommand( u_32 commid, u_char *buf, int len ) commandbuf[1] = 14; switch(pPortParam->YkMode) { - case CONTROL_SINGAL: // 单点控制 + case CONTROL_SINGAL: // 鍗曠偣鎺у埗 commandbuf[6] = 45; break; - case CONTROL_DOUBLE: // 双点控制 - case CONTROL_DIRECT: // 直接控制 + case CONTROL_DOUBLE: // 鍙岀偣鎺у埗 + case CONTROL_DIRECT: // 鐩存帴鎺у埗 commandbuf[6] = 46;//(rtumsg->MsgData[3] == 1) ? 46 : 47; break; } @@ -1035,7 +1035,7 @@ void MakeBuBan104YkYtCommand( u_32 commid, u_char *buf, int len ) { commandbuf[iLen++] = LOBYTE(pPortParam->wLinkAddr); - // wen 2002.11.18 字节顺序修改 + // wen 2002.11.18 瀛楄妭椤哄簭淇敼 commandbuf[iLen++] = (char)(ykpoint & 0x00ff); commandbuf[iLen++] = (char)((ykpoint & 0xff00)>>8); } @@ -1045,7 +1045,7 @@ void MakeBuBan104YkYtCommand( u_32 commid, u_char *buf, int len ) commandbuf[iLen++] = LOBYTE(pPortParam->wLinkAddr); commandbuf[iLen++] = HIBYTE(pPortParam->wLinkAddr); - // wen 2002.11.18 字节顺序修改 + // wen 2002.11.18 瀛楄妭椤哄簭淇敼 commandbuf[iLen++] = (char)(ykpoint & 0x00ff); commandbuf[iLen++] = (char)((ykpoint & 0xff00)>>8); commandbuf[iLen++] = 0; @@ -1068,11 +1068,11 @@ void MakeBuBan104YkYtCommand( u_32 commid, u_char *buf, int len ) } } -//===================以下为POLLING规约常规函数接口====================== +//===================浠ヤ笅涓篜OLLING瑙勭害甯歌鍑芥暟鎺ュ彛====================== /*! - \brief 寻找并生成下一条命令 - \param u_32 portno : RTU端口号 - \param i_32 iBuIdx : 间隔装置索引 + \brief 瀵绘壘骞剁敓鎴愪笅涓鏉″懡浠 + \param u_32 portno : RTU绔彛鍙 + \param i_32 iBuIdx : 闂撮殧瑁呯疆绱㈠紩 */ void Buban104FindNextCmd(int commid) { @@ -1127,7 +1127,7 @@ void Buban104FindNextCmd(int commid) break; } - // wen 2005.09.16 在初始化不成功时,不生成轮询指令 + // wen 2005.09.16 鍦ㄥ垵濮嬪寲涓嶆垚鍔熸椂锛屼笉鐢熸垚杞鎸囦护 if(!pPortParam->Initdata) { break; @@ -1145,7 +1145,7 @@ void Buban104FindNextCmd(int commid) } } - // wen (超时情况下) + // wen (瓒呮椂鎯呭喌涓) if(CheckPollCmdBufEmpty(commid) > 0) { if(pPortParam->lTimeOutCnt >= pPortParam->lTimeOutConst) @@ -1153,7 +1153,7 @@ void Buban104FindNextCmd(int commid) if(!pPortParam->bCloseSocket) { //++++++++++++++++++++++++++++++++++++++++++++++++++++++ - // wen 2005.10.28 修改超时时是否发送测试报文 + // wen 2005.10.28 淇敼瓒呮椂鏃舵槸鍚﹀彂閫佹祴璇曟姤鏂 //MakeBuban104Command(commid, FORMAT_S); //====================================================== if(pPortParam->lTimeOutSendTest) @@ -1171,7 +1171,7 @@ void Buban104FindNextCmd(int commid) else { InitBuban104CommandBuffer(commid); - // 关闭网络端口 + // 鍏抽棴缃戠粶绔彛 Buban104CloseSocket(commid); } } @@ -1204,7 +1204,7 @@ void Buban104FindNextProvCmd(int commid) return; } - // wen (超时情况下) + // wen (瓒呮椂鎯呭喌涓) if(pPortParam->lTimeOutCnt >= pPortParam->lTimeOutConst) { if(!pPortParam->bCloseSocket) @@ -1214,7 +1214,7 @@ void Buban104FindNextProvCmd(int commid) if(pPortParam->Initdata) { //++++++++++++++++++++++++++++++++++++++++++++++++++++++ - // wen 2006.03.23 修改超时时是否发送测试报文 + // wen 2006.03.23 淇敼瓒呮椂鏃舵槸鍚﹀彂閫佹祴璇曟姤鏂 //MakeBuban104Command(commid, FORMAT_U_TEST_ACT); //====================================================== if(pPortParam->lTimeOutSendTest) @@ -1229,14 +1229,14 @@ void Buban104FindNextProvCmd(int commid) else { InitBuban104CommandBuffer(commid); - // 关闭网络端口 + // 鍏抽棴缃戠粶绔彛 Buban104CloseSocket(commid); } } else { InitBuban104CommandBuffer(commid); - // 关闭网络端口 + // 鍏抽棴缃戠粶绔彛 Buban104CloseSocket(commid); } } @@ -1250,7 +1250,7 @@ void Buban104FindNextProvCmd(int commid) { if(pPortParam->Initdata) { - // 一类数据( 遥信变位 ) + // 涓绫绘暟鎹( 閬ヤ俊鍙樹綅 ) //ProvBuban104SendClass1(commid); if(CheckPollCmdBufEmpty(commid) <= 0) { @@ -1258,7 +1258,7 @@ void Buban104FindNextProvCmd(int commid) return; } - // 转发soe数据 + // 杞彂soe鏁版嵁 //ProvBuban104SendSoe(commid); if(CheckPollCmdBufEmpty(commid) <= 0) { @@ -1266,9 +1266,9 @@ void Buban104FindNextProvCmd(int commid) return; } - // 二类数据( 遥测变化) + // 浜岀被鏁版嵁( 閬ユ祴鍙樺寲) //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - // wen 2006.03.23 支持浮点数遥测的传送 + // wen 2006.03.23 鏀寔娴偣鏁伴仴娴嬬殑浼犻 //ProvBuban104SendClass2(commid); //==================================================================== /*if(pPortParam->m_bProvAiType == 13) @@ -1288,7 +1288,7 @@ void Buban104FindNextProvCmd(int commid) } //++++++++++++++++++++++++++++++++++++++++++++++++++++++ - // wen 2006.03.23 修改超时时是否发送测试报文 + // wen 2006.03.23 淇敼瓒呮椂鏃舵槸鍚﹀彂閫佹祴璇曟姤鏂 //pPortParam->m_lNoDataCnt++; //if(pPortParam->m_lNoDataCnt >= pPortParam->lTimeOutConst) //{ @@ -1335,7 +1335,7 @@ void Buban104SendCmdFormPollCmdBuf(int commid) pPortParam->m_psBaoHu->ForceWaitCnt--; if(pPortParam->m_psBaoHu->ForceWaitCnt == 0) { - // 清除当前命令 + // 娓呴櫎褰撳墠鍛戒护 ClearCmdFormPollCmdBuf(commid); //ClearCmdAllFlag(commid); } @@ -1355,7 +1355,7 @@ void Buban104SendCmdFormPollCmdBuf(int commid) pPortParam->m_psBaoHu->RetryCnt++; if(pPortParam->m_psBaoHu->RetryCnt > pPortParam->m_psBaoHu->Retry) { - // 清除当前命令 + // 娓呴櫎褰撳墠鍛戒护 ClearCmdFormPollCmdBuf(commid); //ClearCmdAllFlag(commid); } @@ -1370,7 +1370,7 @@ void Buban104SendCmdFormPollCmdBuf(int commid) if(pPortParam->m_psBaoHu->SendCmdFlag && pPortParam->m_psBaoHu->RevCmdFlag) { - // 清除当前命令 + // 娓呴櫎褰撳墠鍛戒护 ClearCmdFormPollCmdBuf(commid); //ClearCmdAllFlag(commid); if(pPortParam->bSendFormatI) @@ -1399,7 +1399,7 @@ void Buban104SendCmdFormPollCmdBuf(int commid) else { len = GetCmdFormPollCmdBuf(commid, buf, sizeof(buf)); - // 清除标识已经在前面 ClearCmdAllFlag(commid)动作中完成 + // 娓呴櫎鏍囪瘑宸茬粡鍦ㄥ墠闈 ClearCmdAllFlag(commid)鍔ㄤ綔涓畬鎴 //pPortParam->m_psBaoHu->RetryCnt = 0; } @@ -1430,8 +1430,8 @@ void Buban104SendCmdFormPollCmdBuf(int commid) buf[6] = LOBYTE(pPortParam->wRecvSequence << 1); buf[7] = HIBYTE(pPortParam->wRecvSequence << 1); pPortParam->bSendFormatI = TRUE; - //4.bug_1.2.3_20060807_3/bug_2.0.1_20060807_4 104规约不能转发第二个端口的遥测数据 - //发送数据后应当立即将发送序号+1,而不应当在清除命令时+1 + //4.bug_1.2.3_20060807_3/bug_2.0.1_20060807_4 104瑙勭害涓嶈兘杞彂绗簩涓鍙g殑閬ユ祴鏁版嵁 + //鍙戦佹暟鎹悗搴斿綋绔嬪嵆灏嗗彂閫佸簭鍙凤紜1锛岃屼笉搴斿綋鍦ㄦ竻闄ゅ懡浠ゆ椂锛1 pPortParam->wSendSequence++; pPortParam->wSendSequence %= MAX_SEQUENCE; } @@ -1459,8 +1459,8 @@ void Buban104SendCmdFormPollCmdBuf(int commid) } else { - ClearCmdFormPollCmdBuf(commid); // 清除当前命令 - //ClearCmdAllFlag(commid); // 清除当前命令 + ClearCmdFormPollCmdBuf(commid); // 娓呴櫎褰撳墠鍛戒护 + //ClearCmdAllFlag(commid); // 娓呴櫎褰撳墠鍛戒护 if(pPortParam->bSendFormatI) { //pPortParam->wSendSequence++; @@ -1470,9 +1470,9 @@ void Buban104SendCmdFormPollCmdBuf(int commid) } } } -//===========================指令生成函数结束========================= +//===========================鎸囦护鐢熸垚鍑芥暟缁撴潫========================= -//===========================以下为数据处理函数======================= +//===========================浠ヤ笅涓烘暟鎹鐞嗗嚱鏁======================= void Buban104ProcessData(u_32 commid, BUBAN104PORTPARAM *psPortParam, BOOL bProcess) { RTUMSG msg; @@ -1488,11 +1488,11 @@ void Buban104ProcessData(u_32 commid, BUBAN104PORTPARAM *psPortParam, BOOL bProc msg.MsgData[msg.MsgLen] = CHECK_WHOLE; msg.MsgData[msg.MsgLen+1] = 0; - // 超时计数清零 + // 瓒呮椂璁℃暟娓呴浂 pPortParam->lTimeOutCnt = 0; pPortParam->bCloseSocket = FALSE; - // 子站数据处理 + // 瀛愮珯鏁版嵁澶勭悊 if(PROTOCOL_SLAVE == pPortParam->m_psBaoHu->PortType) { ProvBuban104dataProcess(commid, &msg); @@ -1512,15 +1512,15 @@ void Buban104ProcessData(u_32 commid, BUBAN104PORTPARAM *psPortParam, BOOL bProc { Buban104FormatU(&msg); } - // format-s( 主站不会收到's'帧格式) + // format-s( 涓荤珯涓嶄細鏀跺埌's'甯ф牸寮) //else Buban104FormatS(&msg); } } } //*************************************************************** -//* I帧数据的处理程序 -//*参数 RTUMSG* rtumsg:接收到的数据信息 +//* I甯ф暟鎹殑澶勭悊绋嬪簭 +//*鍙傛暟 RTUMSG* rtumsg:鎺ユ敹鍒扮殑鏁版嵁淇℃伅 //*************************************************************** void Buban104FormatI(RTUMSG *rtumsg) { @@ -1542,7 +1542,7 @@ void Buban104FormatI(RTUMSG *rtumsg) pPortParam->wAckSequence = (rtumsg->MsgData[4]+(rtumsg->MsgData[5] << 8)) >> 1; //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// - // wen 2005.09.19 帧序匹配算法修改 + // wen 2005.09.19 甯у簭鍖归厤绠楁硶淇敼 /* if(pPortParam->wSendSequence != pPortParam->wAckSequence ) { @@ -1560,7 +1560,7 @@ void Buban104FormatI(RTUMSG *rtumsg) { iSequenceInc += MAX_SEQUENCE; } - //不大于帧序应答尺寸(缺省值=MAX_FRAMEMATCHING_SIZE) + //涓嶅ぇ浜庡抚搴忓簲绛斿昂瀵(缂虹渷鍊=MAX_FRAMEMATCHING_SIZE) if((pPortParam->wSendSequence != pPortParam->wAckSequence ) && (iSequenceInc > pPortParam->m_iFrameSize)) { @@ -1579,42 +1579,42 @@ void Buban104FormatI(RTUMSG *rtumsg) switch (rtumsg->MsgData[6]) { - case 1: // 单点遥信处理 + case 1: // 鍗曠偣閬ヤ俊澶勭悊 Buban104DiDataProcess( rtumsg, 0 ); - // wen 2004.09.02 修改为对于遥信变位和soe数据帧确认,以使对方能确认数据收到(拓邦公司用) + // wen 2004.09.02 淇敼涓哄浜庨仴淇″彉浣嶅拰soe鏁版嵁甯х‘璁,浠ヤ娇瀵规柟鑳界‘璁ゆ暟鎹敹鍒(鎷撻偊鍏徃鐢) MakeBuban104Command(commid, FORMAT_S ); break; - case 2: // 单点遥信SOE处理 + case 2: // 鍗曠偣閬ヤ俊SOE澶勭悊 Buban104SoeDataProcess( rtumsg, 0 ); - // wen 2004.09.02 修改为对于遥信变位和soe数据帧确认,以使对方能确认数据收到(拓邦公司用) + // wen 2004.09.02 淇敼涓哄浜庨仴淇″彉浣嶅拰soe鏁版嵁甯х‘璁,浠ヤ娇瀵规柟鑳界‘璁ゆ暟鎹敹鍒(鎷撻偊鍏徃鐢) MakeBuban104Command(commid, FORMAT_S); break; - case 3: // 双点遥信处理 + case 3: // 鍙岀偣閬ヤ俊澶勭悊 Buban104DiDataProcess( rtumsg, 1 ); - // wen 2004.09.02 修改为对于遥信变位和soe数据帧确认,以使对方能确认数据收到(拓邦公司用) + // wen 2004.09.02 淇敼涓哄浜庨仴淇″彉浣嶅拰soe鏁版嵁甯х‘璁,浠ヤ娇瀵规柟鑳界‘璁ゆ暟鎹敹鍒(鎷撻偊鍏徃鐢) MakeBuban104Command(commid, FORMAT_S); break; - case 4: // 双点遥信SOE处理 + case 4: // 鍙岀偣閬ヤ俊SOE澶勭悊 Buban104SoeDataProcess( rtumsg, 1 ); - // wen 2004.09.02 修改为对于遥信变位和soe数据帧确认,以使对方能确认数据收到(拓邦公司用) + // wen 2004.09.02 淇敼涓哄浜庨仴淇″彉浣嶅拰soe鏁版嵁甯х‘璁,浠ヤ娇瀵规柟鑳界‘璁ゆ暟鎹敹鍒(鎷撻偊鍏徃鐢) MakeBuban104Command(commid, FORMAT_S); break; - case 5: // 变压器分接头位置 + case 5: // 鍙樺帇鍣ㄥ垎鎺ュご浣嶇疆 break; - case 6: // 变压器分接头位置带时标 + case 6: // 鍙樺帇鍣ㄥ垎鎺ュご浣嶇疆甯︽椂鏍 break; - case 7: // 子站远动终端状态 + case 7: // 瀛愮珯杩滃姩缁堢鐘舵 break; - case 9: // 带品质无时标遥测 + case 9: // 甯﹀搧璐ㄦ棤鏃舵爣閬ユ祴 Buban104AiWithPzDataProcess( rtumsg, 0 ); break; - case 10: // 带品质带时标遥测 + case 10: // 甯﹀搧璐ㄥ甫鏃舵爣閬ユ祴 Buban104AiWithPzDataProcess( rtumsg, 1 ); break; @@ -1622,83 +1622,83 @@ void Buban104FormatI(RTUMSG *rtumsg) Buban104AllFloatAiDataProcess( rtumsg ); break; - case 20: // 子站传送遥信变位帧 + case 20: // 瀛愮珯浼犻侀仴淇″彉浣嶅抚 Buban104AutoSendDiProcess( rtumsg ); break; - case 21: // 全遥测数据处理 或变化数据 + case 21: // 鍏ㄩ仴娴嬫暟鎹鐞 鎴栧彉鍖栨暟鎹 Buban104AllAiDataProcess( rtumsg ); break; - case 15: // 不带时标电度 + case 15: // 涓嶅甫鏃舵爣鐢靛害 Buban104PiDataProcess( rtumsg ); break; - case 16: // 带时标电度 + case 16: // 甯︽椂鏍囩數搴 Buban104PiWithTimeDataProcess( rtumsg ); break; - case 17: // 继电保护装置单个事件顺序记录帧 - case 18: // 继电保护装置成组记录启动事件顺序 - case 19: // 继电保护装置成组输出电路的事件顺序记录 + case 17: // 缁х數淇濇姢瑁呯疆鍗曚釜浜嬩欢椤哄簭璁板綍甯 + case 18: // 缁х數淇濇姢瑁呯疆鎴愮粍璁板綍鍚姩浜嬩欢椤哄簭 + case 19: // 缁х數淇濇姢瑁呯疆鎴愮粍杈撳嚭鐢佃矾鐨勪簨浠堕『搴忚褰 Buban104BaoHuDataProcess( rtumsg ); break; - // wen 2004.05.27 华东104规约修改点(???) - case 30: // 带CP56Time2a时标的单点信息 M_SP_TB_1 + // wen 2004.05.27 鍗庝笢104瑙勭害淇敼鐐(???) + case 30: // 甯P56Time2a鏃舵爣鐨勫崟鐐逛俊鎭 M_SP_TB_1 Buban104SoeDataProcessWithCP56Time2a( rtumsg, 0 ); - // wen 2004.09.02 修改为对于遥信变位和soe数据帧确认,以使对方能确认数据收到(拓邦公司用) + // wen 2004.09.02 淇敼涓哄浜庨仴淇″彉浣嶅拰soe鏁版嵁甯х‘璁,浠ヤ娇瀵规柟鑳界‘璁ゆ暟鎹敹鍒(鎷撻偊鍏徃鐢) MakeBuban104Command( commid, FORMAT_S ); break; - case 31: // 带CP56Time2a时标的双点信息 M_DP_TB_1 + case 31: // 甯P56Time2a鏃舵爣鐨勫弻鐐逛俊鎭 M_DP_TB_1 Buban104SoeDataProcessWithCP56Time2a( rtumsg, 1 ); - // wen 2004.09.02 修改为对于遥信变位和soe数据帧确认,以使对方能确认数据收到(拓邦公司用) + // wen 2004.09.02 淇敼涓哄浜庨仴淇″彉浣嶅拰soe鏁版嵁甯х‘璁,浠ヤ娇瀵规柟鑳界‘璁ゆ暟鎹敹鍒(鎷撻偊鍏徃鐢) MakeBuban104Command( commid, FORMAT_S ); break; - case 32: // 带CP56Time2a时标的步位置信息 M_ST_TB_1 + case 32: // 甯P56Time2a鏃舵爣鐨勬浣嶇疆淇℃伅 M_ST_TB_1 break; - case 33: // 带CP56Time2a时标的32比特串 M_BO_TB_1 + case 33: // 甯P56Time2a鏃舵爣鐨32姣旂壒涓 M_BO_TB_1 break; - case 34: // 带CP56Time2a时标的测量值, 规一化值 M_ME_TD_1 + case 34: // 甯P56Time2a鏃舵爣鐨勬祴閲忓, 瑙勪竴鍖栧 M_ME_TD_1 Buban104AiWithDataProcessWithM_ME_TD_1( rtumsg ); break; - case 35: // 带CP56Time2a时标的测量值, 标度化值 M_ME_TE_1 + case 35: // 甯P56Time2a鏃舵爣鐨勬祴閲忓, 鏍囧害鍖栧 M_ME_TE_1 Buban104AiWithDataProcessWithM_ME_TE_1( rtumsg ); break; - case 36: // 带CP56Time2a时标的测量值, 短浮点数 M_ME_TF_1 + case 36: // 甯P56Time2a鏃舵爣鐨勬祴閲忓, 鐭诞鐐规暟 M_ME_TF_1 Buban104AiWithDataProcessWithM_ME_TF_1( rtumsg ); break; - case 37: // 带CP56Time2a时标的累计量 M_IT_TB_1 + case 37: // 甯P56Time2a鏃舵爣鐨勭疮璁¢噺 M_IT_TB_1 Buban104PiWithTimeDataProcessWithM_IT_TB_1( rtumsg ); break; - case 38: // 带CP56Time2a时标的继电保护装置事件 M_EP_TD_1 + case 38: // 甯P56Time2a鏃舵爣鐨勭户鐢典繚鎶よ缃簨浠 M_EP_TD_1 break; - case 39: // 带CP56Time2a时标的继电保护装置成组启动事件 M_EP_TE_1 + case 39: // 甯P56Time2a鏃舵爣鐨勭户鐢典繚鎶よ缃垚缁勫惎鍔ㄤ簨浠 M_EP_TE_1 break; - case 40: // 带CP56Time2a时标的继电保拌装置成组输出电路信息M_EP_TF_1 + case 40: // 甯P56Time2a鏃舵爣鐨勭户鐢典繚鎷岃缃垚缁勮緭鍑虹數璺俊鎭疢_EP_TF_1 break; case 45: - case 46: // 遥控返校 - case 47: // 遥调返校 + case 46: // 閬ユ帶杩旀牎 + case 47: // 閬ヨ皟杩旀牎 Buban104YkYtAck( rtumsg ); break; - case 48: // 设定确认 + case 48: // 璁惧畾纭 Buban104SetAck( rtumsg ); break; - case 100: // 总召唤确认 + case 100: // 鎬诲彫鍞ょ‘璁 Buban104InitdataProecss( rtumsg ); break; - case 101: // 电度结束帧 + case 101: // 鐢靛害缁撴潫甯 Buban104PidataEnd( rtumsg ); break; - case 103: // 时间同步确认帧 + case 103: // 鏃堕棿鍚屾纭甯 Buban104SynTime( rtumsg ); break; default: #ifdef _DEBUG_MSG_ - DebugPrint("接收到不认识的命令,请检查程序.\n"); + DebugPrint("鎺ユ敹鍒颁笉璁よ瘑鐨勫懡浠わ紝璇锋鏌ョ▼搴.\n"); #endif break; } @@ -1720,15 +1720,15 @@ void Buban104FormatU(RTUMSG *rtumsg) switch(rtumsg->MsgData[2] & 0xfc) { - case 0x08: // 启动动作响应 + case 0x08: // 鍚姩鍔ㄤ綔鍝嶅簲 InitBuban104CommandBuffer(commid); pPortParam->bAckRight = TRUE; pPortParam->LinkOk = TRUE; break; - case 0x20: // 停止动作响应 + case 0x20: // 鍋滄鍔ㄤ綔鍝嶅簲 pPortParam->bAckRight = TRUE; break; - case 0x40: // 测试动作 + case 0x40: // 娴嬭瘯鍔ㄤ綔 //pPortParam->bAckRight = TRUE; MakeBuban104Command(commid, FORMAT_U_TEST_CON); if( !pPortParam->bAckRight ) @@ -1737,20 +1737,20 @@ void Buban104FormatU(RTUMSG *rtumsg) pPortParam->wSendSequence = pPortParam->wAckSequence; } break; - // wen 2005.11.02 增加测试响应处理 - case 0x80: // 测试响应 + // wen 2005.11.02 澧炲姞娴嬭瘯鍝嶅簲澶勭悊 + case 0x80: // 娴嬭瘯鍝嶅簲 if(!pPortParam->bAckRight) { pPortParam->bAckRight = TRUE; } break; - default: // 错误的响应 + default: // 閿欒鐨勫搷搴 pPortParam->bAckRight = FALSE; break; } } -/* Buban104 初始化数据处理 */ +/* Buban104 鍒濆鍖栨暟鎹鐞 */ void Buban104InitdataProecss(RTUMSG * rtumsg) { int commid; @@ -1771,16 +1771,16 @@ void Buban104InitdataProecss(RTUMSG * rtumsg) switch(wTransCause) { case 7: - case 9://总召唤确认 + case 9://鎬诲彫鍞ょ‘璁 break; - case 10://总召唤结束 + case 10://鎬诲彫鍞ょ粨鏉 pPortParam->Initdata = TRUE; break; } } -/* 电度结束帧 */ +/* 鐢靛害缁撴潫甯 */ void Buban104PidataEnd(RTUMSG * rtumsg) { int commid; @@ -1807,22 +1807,22 @@ void Buban104PidataEnd(RTUMSG * rtumsg) switch(wTransCause) { - case 7://总召唤确认 + case 7://鎬诲彫鍞ょ‘璁 break; - case 10://电度召唤结束 + case 10://鐢靛害鍙敜缁撴潫 pPortParam->Initdata = TRUE; break; } } -//设定确认 +//璁惧畾纭 void Buban104SetAck( RTUMSG *rtumsg) { } -//Buban104 遥控遥调返校程序 +//Buban104 閬ユ帶閬ヨ皟杩旀牎绋嬪簭 void Buban104YkYtAck(RTUMSG * rtumsg) { int commid; @@ -1864,11 +1864,11 @@ void Buban104YkYtAck(RTUMSG * rtumsg) bYkOperate = rtumsg->MsgData[15]; } - if(bYkOperate & 0x80) //选择返校 + if(bYkOperate & 0x80) //閫夋嫨杩旀牎 { YkYtParam.m_iYkYtStep = STEP_YKYT_SELECT; - //此位为肯定或否定确认位 || 撤销确认 + //姝や綅涓鸿偗瀹氭垨鍚﹀畾纭浣 || 鎾ら攢纭 if((wTransCause & 0x0040) || (wTransCause == 0x0009)) { YkYtParam.m_iYkYtOperate = 3; @@ -1879,7 +1879,7 @@ void Buban104YkYtAck(RTUMSG * rtumsg) { switch(bYkOperate & 0x03) { - case 1://控分 + case 1://鎺у垎 if(pPortParam->m_psBaoHu->ProvYkYtMsg.m_iYkYtOperate == 2) { YkYtParam.m_iYkYtOperate = pPortParam->m_psBaoHu->ProvYkYtMsg.m_iYkYtOperate; @@ -1889,7 +1889,7 @@ void Buban104YkYtAck(RTUMSG * rtumsg) YkYtParam.m_iYkYtOperate = 3; } break; - case 2://控合 + case 2://鎺у悎 if(pPortParam->m_psBaoHu->ProvYkYtMsg.m_iYkYtOperate == 1) { YkYtParam.m_iYkYtOperate = pPortParam->m_psBaoHu->ProvYkYtMsg.m_iYkYtOperate; @@ -1906,7 +1906,7 @@ void Buban104YkYtAck(RTUMSG * rtumsg) } else { - // 控合 + // 鎺у悎 if( bYkOperate & 0x01 ) { if(pPortParam->m_psBaoHu->ProvYkYtMsg.m_iYkYtOperate == 1) @@ -1918,7 +1918,7 @@ void Buban104YkYtAck(RTUMSG * rtumsg) YkYtParam.m_iYkYtOperate = 3; } } - // 控分 + // 鎺у垎 else { if(pPortParam->m_psBaoHu->ProvYkYtMsg.m_iYkYtOperate == 2) @@ -1936,16 +1936,16 @@ void Buban104YkYtAck(RTUMSG * rtumsg) YkYtParam.m_iYkYtUpDown = YKYT_SEND_UP; SendYkYtCommand2(commid, &YkYtParam); } - else //执行并完成 + else //鎵ц骞跺畬鎴 { - //此位为肯定或否定确认位 + //姝や綅涓鸿偗瀹氭垨鍚﹀畾纭浣 if((wTransCause & 0x0040) == 0) { switch(wTransCause) { - case 0x0007://执行确认 + case 0x0007://鎵ц纭 break; - case 0x000a://执行完成 + case 0x000a://鎵ц瀹屾垚 break; default: break; @@ -1954,7 +1954,7 @@ void Buban104YkYtAck(RTUMSG * rtumsg) } } -/* Buban104 对时程序 */ +/* Buban104 瀵规椂绋嬪簭 */ void Buban104SynTime(RTUMSG * rtumsg) { int commid; @@ -2008,7 +2008,7 @@ void Buban104SynTime(RTUMSG * rtumsg) SetLocalTimeEx(&stime); } -/* 子站主动传送遥信变位帧 */ +/* 瀛愮珯涓诲姩浼犻侀仴淇″彉浣嶅抚 */ void Buban104AutoSendDiProcess(RTUMSG *rtumsg) { int i, j, dipnt, len, istart; @@ -2066,7 +2066,7 @@ void Buban104AutoSendDiProcess(RTUMSG *rtumsg) } } -// Buban104 带品质描述的遥测数据处理 +// Buban104 甯﹀搧璐ㄦ弿杩扮殑閬ユ祴鏁版嵁澶勭悊 void Buban104AiWithPzDataProcess(RTUMSG * rtumsg, int flag) { int i, aipnt, len; @@ -2088,7 +2088,7 @@ void Buban104AiWithPzDataProcess(RTUMSG * rtumsg, int flag) istart = 12; } - //处理变化遥测 + //澶勭悊鍙樺寲閬ユ祴 for(i = istart; i < (2 + len);) { if(VER_BUBAN_104 == pPortParam->RtuVersion) @@ -2104,13 +2104,13 @@ void Buban104AiWithPzDataProcess(RTUMSG * rtumsg, int flag) aipnt -= pPortParam->iAiBaseAddr; pntmsg.RawValue = (short)(rtumsg->MsgData[i]+(rtumsg->MsgData[i+1]<<8)); - // 品质描述 + // 鍝佽川鎻忚堪 // rtumsg->MsgData[i+2]; i += 3; SetPntMsg(commid, aipnt, (void *)&pntmsg, AI_PNT_TYPE, PNT_RAWVALUE); - // 时标 + // 鏃舵爣 if(flag) { i += 3; @@ -2136,7 +2136,7 @@ void Buban104AllAiDataProcess(RTUMSG *rtumsg) } aipnt = 0; - //处理变化遥测 + //澶勭悊鍙樺寲閬ユ祴 if((rtumsg->MsgData[7] & 0x80)==0) { if(VER_BUBAN_104 == pPortParam->RtuVersion) @@ -2171,7 +2171,7 @@ void Buban104AllAiDataProcess(RTUMSG *rtumsg) return; } - //处理全遥测 + //澶勭悊鍏ㄩ仴娴 if(VER_BUBAN_104 == pPortParam->RtuVersion) { istart = 12; @@ -2211,7 +2211,7 @@ void Buban104AllFloatAiDataProcess(RTUMSG *rtumsg) } aipnt = 0; - //处理变化遥测 + //澶勭悊鍙樺寲閬ユ祴 if((rtumsg->MsgData[7] & 0x80)==0) { if(VER_BUBAN_104 == pPortParam->RtuVersion) @@ -2240,7 +2240,7 @@ void Buban104AllFloatAiDataProcess(RTUMSG *rtumsg) fValue = SequenceRtuToHostfloat((*((float *)&rtumsg->MsgData[i]))); pntmsg.RawValue = (unsigned long)fValue; - // 含有一个字节的品质描述 + // 鍚湁涓涓瓧鑺傜殑鍝佽川鎻忚堪 i += sizeof(float)+1; SetPntMsg(commid, aipnt, (void *)&pntmsg, AI_PNT_TYPE, PNT_RAWVALUE); @@ -2248,7 +2248,7 @@ void Buban104AllFloatAiDataProcess(RTUMSG *rtumsg) return; } - //处理全遥测 + //澶勭悊鍏ㄩ仴娴 if(VER_BUBAN_104 == pPortParam->RtuVersion) { istart = 12; @@ -2292,7 +2292,7 @@ void Buban104DiDataProcess(RTUMSG *rtumsg, int flag) wTransCause = rtumsg->MsgData[8] + (rtumsg->MsgData[9]<<8); } - //从站主动上发 变化遥信 + //浠庣珯涓诲姩涓婂彂 鍙樺寲閬ヤ俊 if(wTransCause == 0x0003) { if(VER_BUBAN_104 == pPortParam->RtuVersion) @@ -2494,7 +2494,7 @@ void Buban104SoeDataProcess(RTUMSG *rtumsg, int flag) sec = rtumsg->MsgData[i] + ( rtumsg->MsgData[i+1] << 8 ); pntmsg.SoeTime.mSec = sec % 1000; pntmsg.SoeTime.Sec = sec / 1000; - pntmsg.SoeTime.Min = (rtumsg->MsgData[i+2] & 0x3f); // 分 + pntmsg.SoeTime.Min = (rtumsg->MsgData[i+2] & 0x3f); // 鍒 i += 3; GetLocalTimeEx(&sm); if(abs(pntmsg.SoeTime.Min-sm.Min) > 50) @@ -2502,7 +2502,7 @@ void Buban104SoeDataProcess(RTUMSG *rtumsg, int flag) i64Millseconds = SystemTimeToMillseconds(&sm, 0); if(i64Millseconds > 0) { - // 减去一小时 + // 鍑忓幓涓灏忔椂 iTime = (long)(i64Millseconds/1000) - 3600; testtm = localtime(&iTime); sm.Year = testtm->tm_year + 1900; @@ -2559,7 +2559,7 @@ void Buban104PiDataProcess( RTUMSG * rtumsg ) pntmsg.RawValue = (rtumsg->MsgData[i+3]<<24) + (rtumsg->MsgData[i+2]<<16) + (rtumsg->MsgData[i+1]<<8) + rtumsg->MsgData[i]; - //rtumsg->MsgData[i+4]; // 顺序记号 + //rtumsg->MsgData[i+4]; // 椤哄簭璁板彿 i += 5; SetPntMsg(commid, point, (void *)&pntmsg, PI_PNT_TYPE, PNT_RAWVALUE); @@ -2603,8 +2603,8 @@ void Buban104PiWithTimeDataProcess( RTUMSG *rtumsg ) pntmsg.RawValue = (rtumsg->MsgData[i+3]<<24) + (rtumsg->MsgData[i+2]<<16) + (rtumsg->MsgData[i+1]<<8) + rtumsg->MsgData[i]; - //rtumsg->MsgData[i+4]; // 顺序记号 - // 3bytes 时间 + //rtumsg->MsgData[i+4]; // 椤哄簭璁板彿 + // 3bytes 鏃堕棿 i += 8; SetPntMsg(commid, point, (void *)&pntmsg, PI_PNT_TYPE, PNT_RAWVALUE); @@ -2613,17 +2613,17 @@ void Buban104PiWithTimeDataProcess( RTUMSG *rtumsg ) void Buban104BaoHuDataProcess( RTUMSG *rtumsg ) { - // 该功能不做处理 + // 璇ュ姛鑳戒笉鍋氬鐞 } void Buban104DefaultBaoHuDataProcess( RTUMSG *rtumsg ) { - // 该功能不做处理 + // 璇ュ姛鑳戒笉鍋氬鐞 } -// 新增函数,含有 7 BYTE 的时标 +// 鏂板鍑芥暟锛屽惈鏈 7 BYTE 鐨勬椂鏍 //*************************************************************** -//* Buban104 SOE 数据处理(7 bytes 时间) * +//* Buban104 SOE 鏁版嵁澶勭悊(7 bytes 鏃堕棿) * //*************************************************************** void Buban104SoeDataProcessWithCP56Time2a( RTUMSG *rtumsg, int flag ) { @@ -2705,7 +2705,7 @@ void Buban104SoeDataProcessWithCP56Time2a( RTUMSG *rtumsg, int flag ) i64Millseconds = SystemTimeToMillseconds(&sm, 0); if(i64Millseconds > 0) { - // 减去一小时 + // 鍑忓幓涓灏忔椂 iTime = (long)(i64Millseconds/1000) - 3600; testtm = localtime(&iTime); sm.Year = testtm->tm_year + 1900; @@ -2747,7 +2747,7 @@ void Buban104AiWithDataProcessWithM_ME_TD_1(RTUMSG * rtumsg) istart = 12; istep = 12; } - //处理变化遥测 + //澶勭悊鍙樺寲閬ユ祴 for ( i = istart; i < 2 + len; ) { if( ( i + istep ) > (2 + len)) @@ -2779,7 +2779,7 @@ void Buban104AiWithDataProcessWithM_ME_TD_1(RTUMSG * rtumsg) SetPntMsg(commid, aipnt, (void *)&pntmsg, AI_PNT_TYPE, PNT_RAWVALUE); - // 7字节时标 + // 7瀛楄妭鏃舵爣 i += 9; } } @@ -2813,7 +2813,7 @@ void Buban104AiWithDataProcessWithM_ME_TF_1(RTUMSG * rtumsg) istart = 12; istep = 15; } - //处理变化遥测 + //澶勭悊鍙樺寲閬ユ祴 for ( i = istart; i < 2 + len; ) { if( ( i + istep ) > (2 + len)) @@ -2845,19 +2845,19 @@ void Buban104AiWithDataProcessWithM_ME_TF_1(RTUMSG * rtumsg) fValue = *((float *)&rtumsg->MsgData[i]); SequenceRtuToHost((char *)&fValue, sizeof(float)); - // 品质描述 + // 鍝佽川鎻忚堪 // rtumsg->MsgData[i+1]; - // 保留2位小数 + // 淇濈暀2浣嶅皬鏁 pntmsg.RawValue = (int)(fValue * 100); SetPntMsg(commid, aipnt, (void *)&pntmsg, AI_PNT_TYPE, PNT_RAWVALUE); - // 7字节时标 + // 7瀛楄妭鏃舵爣 i += 12; } } -//Buban104 电度数据处理with time +//Buban104 鐢靛害鏁版嵁澶勭悊with time void Buban104PiWithTimeDataProcessWithM_IT_TB_1(RTUMSG *rtumsg) { int i, point, len; @@ -2912,20 +2912,20 @@ void Buban104PiWithTimeDataProcessWithM_IT_TB_1(RTUMSG *rtumsg) SetPntMsg(commid, point, (void *)&pntmsg, PI_PNT_TYPE, PNT_RAWVALUE); - // 1 BYTE (IV CA CY 顺序号) - // 7 BYTE 时标 + // 1 BYTE (IV CA CY 椤哄簭鍙) + // 7 BYTE 鏃舵爣 i += 12; } } -//=========================以下为Buban104转发数据功能=======================// +//=========================浠ヤ笅涓築uban104杞彂鏁版嵁鍔熻兘=======================// void ProvBuban104dataProcess(int commid, RTUMSG *rtumsg) { BUBAN104PORTPARAM *pPortParam; pPortParam = (BUBAN104PORTPARAM *)SioParam[commid].ExtInfo; - // 数据校验错误( 附加字节的第二个字节) + // 鏁版嵁鏍¢獙閿欒( 闄勫姞瀛楄妭鐨勭浜屼釜瀛楄妭) if(rtumsg->MsgData[rtumsg->MsgLen+1] > 0) { return; @@ -2969,12 +2969,12 @@ void ProvBuban104FormatI(int commid, RTUMSG *rtumsg) pPortParam = (BUBAN104PORTPARAM *)SioParam[commid].ExtInfo; - // 超时计数清零 + // 瓒呮椂璁℃暟娓呴浂 pPortParam->lTimeOutCnt = 0; pPortParam->wAckSequence = (rtumsg->MsgData[4] + (rtumsg->MsgData[5]<<8)) >> 1; //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// - // wen 2005.09.19 帧序匹配算法修改 + // wen 2005.09.19 甯у簭鍖归厤绠楁硶淇敼 /* if(pPortParam->wAckSequence == 0 ) { @@ -3000,7 +3000,7 @@ void ProvBuban104FormatI(int commid, RTUMSG *rtumsg) { iSequenceInc += MAX_SEQUENCE; } - //不大于帧序应答尺寸(缺省值=MAX_FRAMEMATCHING_SIZE) + //涓嶅ぇ浜庡抚搴忓簲绛斿昂瀵(缂虹渷鍊=MAX_FRAMEMATCHING_SIZE) if((pPortParam->wSendSequence != pPortParam->wAckSequence ) && (iSequenceInc > pPortParam->m_iFrameSize)) { @@ -3018,60 +3018,60 @@ void ProvBuban104FormatI(int commid, RTUMSG *rtumsg) switch(rtumsg->MsgData[6]) { - case 1: // 单点遥信处理 + case 1: // 鍗曠偣閬ヤ俊澶勭悊 break; - case 2: // 单点遥信SOE处理 + case 2: // 鍗曠偣閬ヤ俊SOE澶勭悊 break; - case 3: // 双点遥信处理 + case 3: // 鍙岀偣閬ヤ俊澶勭悊 break; - case 4: // 单点遥信SOE处理 + case 4: // 鍗曠偣閬ヤ俊SOE澶勭悊 break; - case 5: // 变压器分接头位置 + case 5: // 鍙樺帇鍣ㄥ垎鎺ュご浣嶇疆 break; - case 6: // 变压器分接头位置带时标 + case 6: // 鍙樺帇鍣ㄥ垎鎺ュご浣嶇疆甯︽椂鏍 break; - case 7: // 总召唤数据 + case 7: // 鎬诲彫鍞ゆ暟鎹 ProvBuban104SendAllData(commid, rtumsg); break; - case 9: // 带品质无时标遥测 + case 9: // 甯﹀搧璐ㄦ棤鏃舵爣閬ユ祴 break; - case 10: // 带品质带时标遥测 + case 10: // 甯﹀搧璐ㄥ甫鏃舵爣閬ユ祴 break; - case 21: // 全遥测数据处理 或变化数据 + case 21: // 鍏ㄩ仴娴嬫暟鎹鐞 鎴栧彉鍖栨暟鎹 break; - case 15: // 不带时标电度 + case 15: // 涓嶅甫鏃舵爣鐢靛害 break; - case 16: // 带时标电度 + case 16: // 甯︽椂鏍囩數搴 break; case 17: case 18: - case 19: // 保护数据 + case 19: // 淇濇姢鏁版嵁 break; case 45: // wen 2006.07.11 - case 46: // 遥控返校 - case 47: // 遥调返校 + case 46: // 閬ユ帶杩旀牎 + case 47: // 閬ヨ皟杩旀牎 //ProvBuban104YkYtData(commid, rtumsg); break; - case 100: // 召唤数据 + case 100: // 鍙敜鏁版嵁 //ProvBuban104SendAllData(commid, rtumsg); break; - case 101: // 召唤电度 + case 101: // 鍙敜鐢靛害 //ProvBuban104SendPIData(commid, rtumsg); break; - case 103: // 时间同步确认帧 + case 103: // 鏃堕棿鍚屾纭甯 //ProvBuban104ProcessTime(commid, rtumsg); break; } @@ -3091,33 +3091,33 @@ void ProvBuban104FormatU(int commid, RTUMSG *rtumsg) switch(rtumsg->MsgData[2] & 0xfc) { - case 0x04: // 启动动作 + case 0x04: // 鍚姩鍔ㄤ綔 InitBuban104CommandBuffer(commid); pPortParam->LinkOk = TRUE; MakeBuban104Command(commid, FORMAT_U_START_CON); break; - case 0x10: // 停止动作 + case 0x10: // 鍋滄鍔ㄤ綔 pPortParam->LinkOk = FALSE; MakeBuban104Command(commid, FORMAT_U_STOP_CON); break; - case 0x80: // 测试动作响应 + case 0x80: // 娴嬭瘯鍔ㄤ綔鍝嶅簲 pPortParam->bAckRight = TRUE; - // 超时计数清零 + // 瓒呮椂璁℃暟娓呴浂 pPortParam->lTimeOutCnt = 0; pPortParam->bCloseSocket = FALSE; break; - case 0x40: // 测试动作 - if(!pPortParam->LinkOk) - { - break; - } - + case 0x40: // 娴嬭瘯鍔ㄤ綔 + //if(!pPortParam->LinkOk) + //{ + // break; + //} + pPortParam->LinkOk = TRUE; MakeBuban104Command(commid, FORMAT_U_TEST_CON); pPortParam->lTimeOutCnt = 0; pPortParam->bCloseSocket = FALSE; pPortParam->bAckRight = TRUE; break; - default: // 错误的响应 + default: // 閿欒鐨勫搷搴 pPortParam->bAckRight = FALSE; break; } @@ -3140,7 +3140,7 @@ void ProvBuban104FormatS(int commid, RTUMSG *rtumsg) pPortParam->wAckSequence = (rtumsg->MsgData[4] + (rtumsg->MsgData[5]<<8)) >> 1; //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// - // wen 2005.09.19 帧序匹配算法修改 + // wen 2005.09.19 甯у簭鍖归厤绠楁硶淇敼 /* if(pPortParam->wAckSequence == 0) { @@ -3165,7 +3165,7 @@ void ProvBuban104FormatS(int commid, RTUMSG *rtumsg) { iSequenceInc += MAX_SEQUENCE; } - //不大于帧序应答尺寸(缺省值=MAX_FRAMEMATCHING_SIZE) + //涓嶅ぇ浜庡抚搴忓簲绛斿昂瀵(缂虹渷鍊=MAX_FRAMEMATCHING_SIZE) if((pPortParam->wSendSequence == pPortParam->wAckSequence) || (iSequenceInc < pPortParam->m_iFrameSize)) { @@ -3176,8 +3176,8 @@ void ProvBuban104FormatS(int commid, RTUMSG *rtumsg) //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// } -//响应分组召唤和总召唤 -//总召唤确认(传送原因[8]=0x07,0x09确认; =0x0a 总召唤结束) +//鍝嶅簲鍒嗙粍鍙敜鍜屾诲彫鍞 +//鎬诲彫鍞ょ‘璁(浼犻佸師鍥燵8]=0x07,0x09纭; =0x0a 鎬诲彫鍞ょ粨鏉) void ProvBuban104SendAllData(int commid, RTUMSG * rtumsg) { char commandbuf[MAX_POLLCMD_BUF_LEN]; @@ -3192,27 +3192,27 @@ void ProvBuban104SendAllData(int commid, RTUMSG * rtumsg) iCmdType = FAST_POLL_CMD; - //总召唤应答 + //鎬诲彫鍞ゅ簲绛 /*commandbuf[0] = 0x68; iLen = 2; commandbuf[iLen++] = 0; commandbuf[iLen++] = 0; commandbuf[iLen++] = 0; commandbuf[iLen++] = 0; - commandbuf[iLen++] = 8; // 应答总召结束 - commandbuf[iLen++] = 0x81; // 限定词VSQ - commandbuf[iLen++] = 9; // 传送原因 - commandbuf[iLen++] = 0; // 应用服务单元公共地址 - commandbuf[iLen++] = 0; // 应用服务单元公共地址 - commandbuf[iLen++] = 0xFF; // 功能类型FUN - commandbuf[iLen++] = 0; // 信息序号INF - commandbuf[iLen++] = 0; // 扫描序号SCN + commandbuf[iLen++] = 8; // 搴旂瓟鎬诲彫缁撴潫 + commandbuf[iLen++] = 0x81; // 闄愬畾璇峍SQ + commandbuf[iLen++] = 9; // 浼犻佸師鍥 + commandbuf[iLen++] = 0; // 搴旂敤鏈嶅姟鍗曞厓鍏叡鍦板潃 + commandbuf[iLen++] = 0; // 搴旂敤鏈嶅姟鍗曞厓鍏叡鍦板潃 + commandbuf[iLen++] = 0xFF; // 鍔熻兘绫诲瀷FUN + commandbuf[iLen++] = 0; // 淇℃伅搴忓彿INF + commandbuf[iLen++] = 0; // 鎵弿搴忓彿SCN commandbuf[1] = (BYTE)(iLen - 2); PutPollCmdToBuf(commid, iCmdType, 0, (char *)commandbuf, iLen);*/ //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - // wen 2006.03.23 支持浮点数遥测的传送 + // wen 2006.03.23 鏀寔娴偣鏁伴仴娴嬬殑浼犻 //ProvBuban104SendAI(commid, rtumsg, 0); //==================================================================== //if(pPortParam->m_bProvAiType == 13) @@ -3227,21 +3227,21 @@ void ProvBuban104SendAllData(int commid, RTUMSG * rtumsg) //ProvBuban104SendDI(commid, rtumsg, 0); memset(&commandbuf, 0, sizeof(commandbuf)); - //总召唤结束 + //鎬诲彫鍞ょ粨鏉 commandbuf[0] = 0x68; iLen = 2; commandbuf[iLen++] = 0; commandbuf[iLen++] = 0; commandbuf[iLen++] = 0; commandbuf[iLen++] = 0; - commandbuf[iLen++] = 8; // 应答总召结束 - commandbuf[iLen++] = 0x81; // 限定词VSQ - commandbuf[iLen++] = 9; // 传送原因 - commandbuf[iLen++] = 0; // 应用服务单元公共地址 - commandbuf[iLen++] = 0; // 应用服务单元公共地址 - commandbuf[iLen++] = 0xFF; // 功能类型FUN - commandbuf[iLen++] = 0; // 信息序号INF - commandbuf[iLen++] = 0; // 扫描序号SCN + commandbuf[iLen++] = 8; // 搴旂瓟鎬诲彫缁撴潫 + commandbuf[iLen++] = 0x81; // 闄愬畾璇峍SQ + commandbuf[iLen++] = 9; // 浼犻佸師鍥 + commandbuf[iLen++] = 0; // 搴旂敤鏈嶅姟鍗曞厓鍏叡鍦板潃 + commandbuf[iLen++] = 0; // 搴旂敤鏈嶅姟鍗曞厓鍏叡鍦板潃 + commandbuf[iLen++] = 0xFF; // 鍔熻兘绫诲瀷FUN + commandbuf[iLen++] = 0; // 淇℃伅搴忓彿INF + commandbuf[iLen++] = 0; // 鎵弿搴忓彿SCN commandbuf[1] = (BYTE)(iLen - 2); PutPollCmdToBuf(commid, iCmdType, 0, (char *)commandbuf, iLen); @@ -3271,11 +3271,11 @@ void ProvBuban104SendAllData(int commid, RTUMSG * rtumsg) wTransCause = rtumsg->MsgData[8] + (rtumsg->MsgData[9] << 8); } - //分组召唤 + //鍒嗙粍鍙敜 if (iGroup != 20) { iGroup -= 20; - //无效组号 + //鏃犳晥缁勫彿 if ((iGroup <= 0) || (iGroup > 12)) { return; @@ -3284,7 +3284,7 @@ void ProvBuban104SendAllData(int commid, RTUMSG * rtumsg) { iGroup -= 8; //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - // wen 2006.03.23 支持浮点数遥测的传送 + // wen 2006.03.23 鏀寔娴偣鏁伴仴娴嬬殑浼犻 //ProvBuban104SendAI(commid, rtumsg, iGroup); //==================================================================== if (pPortParam->m_bProvAiType == 13) @@ -3311,7 +3311,7 @@ void ProvBuban104SendAllData(int commid, RTUMSG * rtumsg) iCmdType = FAST_POLL_CMD; } - //总召唤 + //鎬诲彫鍞 commandbuf[0] = 0x68; iLen = 2; commandbuf[iLen++] = 0; @@ -3324,10 +3324,10 @@ void ProvBuban104SendAllData(int commid, RTUMSG * rtumsg) { switch (wTransCause) { - case 0x0006://激活 + case 0x0006://婵娲 commandbuf[iLen++] = 7; break; - case 0x0008://停止激活 + case 0x0008://鍋滄婵娲 default: commandbuf[iLen++] = 9; break; @@ -3340,11 +3340,11 @@ void ProvBuban104SendAllData(int commid, RTUMSG * rtumsg) { switch (wTransCause) { - case 0x0006://激活 + case 0x0006://婵娲 commandbuf[iLen++] = 7; commandbuf[iLen++] = 0; break; - case 0x0008://停止激活 + case 0x0008://鍋滄婵娲 default: commandbuf[iLen++] = 9; commandbuf[iLen++] = 0; @@ -3366,7 +3366,7 @@ void ProvBuban104SendAllData(int commid, RTUMSG * rtumsg) } //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - // wen 2006.03.23 支持浮点数遥测的传送 + // wen 2006.03.23 鏀寔娴偣鏁伴仴娴嬬殑浼犻 //ProvBuban104SendAI(commid, rtumsg, 0); //==================================================================== if (pPortParam->m_bProvAiType == 13) @@ -3381,7 +3381,7 @@ void ProvBuban104SendAllData(int commid, RTUMSG * rtumsg) ProvBuban104SendDI(commid, rtumsg, 0); - //总召唤结束 + //鎬诲彫鍞ょ粨鏉 ProvMakeBuban104Command(commid, ASK_ALLDATA_END); pPortParam->m_psBaoHu->DiChange = FALSE; pPortParam->Initdata = TRUE; @@ -3405,13 +3405,13 @@ void ProvBuban104SendPIData(int commid, RTUMSG * rtumsg) iGroup = rtumsg->MsgData[15] & 0x3F; } - // wen 2006.04.03 发布时间97版和2000版组分配不同 + // wen 2006.04.03 鍙戝竷鏃堕棿97鐗堝拰2000鐗堢粍鍒嗛厤涓嶅悓 if(pPortParam->m_iPublishYear == 1997) { - //分组召唤 + //鍒嗙粍鍙敜 if( iGroup != 1 ) { - //无效或者扩展组号 + //鏃犳晥鎴栬呮墿灞曠粍鍙 if(( iGroup <= 0 ) || ( iGroup > 5 )) { return; @@ -3423,10 +3423,10 @@ void ProvBuban104SendPIData(int commid, RTUMSG * rtumsg) } else { - //分组召唤 + //鍒嗙粍鍙敜 if( iGroup != 5 ) { - //无效或者扩展组号 + //鏃犳晥鎴栬呮墿灞曠粍鍙 if(( iGroup <= 0 ) || ( iGroup > 5 )) { return; @@ -3446,7 +3446,7 @@ void ProvBuban104SendPIData(int commid, RTUMSG * rtumsg) iCmdType = FAST_POLL_CMD; } - //总召唤确认 + //鎬诲彫鍞ょ‘璁 commandbuf[0] = 0x68; iLen = 2; commandbuf[iLen++] = 0; @@ -3479,7 +3479,7 @@ void ProvBuban104SendPIData(int commid, RTUMSG * rtumsg) ProvBuban104SendPI(commid, rtumsg, 0); - //总召唤结束 + //鎬诲彫鍞ょ粨鏉 commandbuf[0] = 0x68; iLen = 2; //commandbuf[1] = 14; @@ -3532,10 +3532,10 @@ void ProvBuban104ProcessTime(int commid, RTUMSG *rtumsg) { wTransCause = rtumsg->MsgData[8] + (rtumsg->MsgData[9]<<8); } - //传送原因 + //浼犻佸師鍥 switch(wTransCause) { - case 0x0006://激活(对时) + case 0x0006://婵娲(瀵规椂) commandbuf[0] = 0x68; //commandbuf[1] = 20; iLen = 2; @@ -3582,7 +3582,7 @@ void ProvBuban104ProcessTime(int commid, RTUMSG *rtumsg) } PutPollCmdToBuf(commid, FAST_POLL_CMD, 0, (char *)commandbuf, iLen); - // 对时 + // 瀵规椂 if(1 == pPortParam->m_psBaoHu->CheckTime) { if(VER_BUBAN_104 == pPortParam->RtuVersion) @@ -3611,7 +3611,7 @@ void ProvBuban104ProcessTime(int commid, RTUMSG *rtumsg) } break; - case 0x07://激活确认 + case 0x07://婵娲荤‘璁 break; } } @@ -3639,7 +3639,7 @@ void ProvBuban104SendPI(int commid, RTUMSG *rtumsg, int iGroupNo) iCmdType = FAST_POLL_CMD; } - if(iGroupNo == 0)//总召唤 + if(iGroupNo == 0)//鎬诲彫鍞 { dwStartAddr = MAX_GROUP_PINUM*iGroupNo + pPortParam->iPiBaseAddr; @@ -3647,7 +3647,7 @@ void ProvBuban104SendPI(int commid, RTUMSG *rtumsg, int iGroupNo) iSendCount = (iAllDataCount+MAX_104_PINUM-1)/MAX_104_PINUM; iCmdType = FAST_POLL_CMD; } - else//分组召唤 + else//鍒嗙粍鍙敜 { dwStartAddr = MAX_GROUP_PINUM*(iGroupNo-1); iAllDataCount = pPortParam->m_psBaoHu->PiNum - dwStartAddr; @@ -3684,7 +3684,7 @@ void ProvBuban104SendPI(int commid, RTUMSG *rtumsg, int iGroupNo) commandbuf[11] = HIBYTE(pPortParam->wLinkAddr); iLenth = 12; } - //遥测值 + //閬ユ祴鍊 if(iAllDataCount>MAX_104_PINUM) { iAllDataCount -= MAX_104_PINUM; @@ -3751,7 +3751,7 @@ void ProvBuban104SendAI(int commid, RTUMSG *rtumsg, int iGroupNo) iCmdType = FAST_POLL_CMD; } - if( iGroupNo == 0 )//总召唤 + if( iGroupNo == 0 )//鎬诲彫鍞 { dwStartAddr = MAX_GROUP_AINUM*iGroupNo + pPortParam->iAiBaseAddr; @@ -3759,7 +3759,7 @@ void ProvBuban104SendAI(int commid, RTUMSG *rtumsg, int iGroupNo) iSendCount = (iAllDataCount+MAX_AINUM-1)/MAX_AINUM; iCmdType = FAST_POLL_CMD; } - else//分组召唤 + else//鍒嗙粍鍙敜 { dwStartAddr = MAX_GROUP_AINUM*(iGroupNo-1); iAllDataCount = pPortParam->m_psBaoHu->AiNum - dwStartAddr; @@ -3789,7 +3789,7 @@ void ProvBuban104SendAI(int commid, RTUMSG *rtumsg, int iGroupNo) if(VER_BUBAN_104 == pPortParam->RtuVersion) { commandbuf[9] = LOBYTE(pPortParam->wLinkAddr); - // 信息体地址为2个字节 + // 淇℃伅浣撳湴鍧涓2涓瓧鑺 //*((DWORD*)(&commandbuf[12])) = dwStartAddr; commandbuf[10] = LOBYTE(LOWORD(dwStartAddr)); commandbuf[11] = HIBYTE(LOWORD(dwStartAddr)); @@ -3800,7 +3800,7 @@ void ProvBuban104SendAI(int commid, RTUMSG *rtumsg, int iGroupNo) commandbuf[9] = 0; commandbuf[10] = LOBYTE(pPortParam->wLinkAddr); commandbuf[11] = HIBYTE(pPortParam->wLinkAddr); - // 信息体地址为3个字节 + // 淇℃伅浣撳湴鍧涓3涓瓧鑺 //*((DWORD*)(&commandbuf[12])) = dwStartAddr; commandbuf[12] = LOBYTE(LOWORD(dwStartAddr)); commandbuf[13] = HIBYTE(LOWORD(dwStartAddr)); @@ -3808,7 +3808,7 @@ void ProvBuban104SendAI(int commid, RTUMSG *rtumsg, int iGroupNo) iLenth = 15; } - //遥测值 + //閬ユ祴鍊 if(iAllDataCount > MAX_AINUM) { iAllDataCount -= MAX_AINUM; @@ -3862,7 +3862,7 @@ void ProvBuban104SendDI(int commid, RTUMSG *rtumsg, int iGroupNo) iCmdType = FAST_POLL_CMD; } - if(iGroupNo == 0)//总召唤 + if(iGroupNo == 0)//鎬诲彫鍞 { dwStartAddr = MAX_GROUP_DINUM*iGroupNo + pPortParam->iDiBaseAddr; @@ -3870,7 +3870,7 @@ void ProvBuban104SendDI(int commid, RTUMSG *rtumsg, int iGroupNo) iSendCount = (iAllDataCount+MAX_DINUM-1)/MAX_DINUM; iCmdType = FAST_POLL_CMD; } - else//分组召唤 + else//鍒嗙粍鍙敜 { dwStartAddr = MAX_GROUP_DINUM*(iGroupNo-1); iAllDataCount = pPortParam->m_psBaoHu->DiNum - dwStartAddr; @@ -3891,7 +3891,7 @@ void ProvBuban104SendDI(int commid, RTUMSG *rtumsg, int iGroupNo) commandbuf[3] = 0; commandbuf[4] = 0; commandbuf[5] = 0; - commandbuf[6] = 1;//=3,为双点 + commandbuf[6] = 1;//=3,涓哄弻鐐 commandbuf[8] = rtumsg->MsgData[12]; if(VER_BUBAN_104 == pPortParam->RtuVersion) { @@ -3905,7 +3905,7 @@ void ProvBuban104SendDI(int commid, RTUMSG *rtumsg, int iGroupNo) commandbuf[9] = 0; commandbuf[10] = LOBYTE(pPortParam->wLinkAddr); commandbuf[11] = HIBYTE(pPortParam->wLinkAddr); - // 信息体地址为3个字节 + // 淇℃伅浣撳湴鍧涓3涓瓧鑺 //*((DWORD*)(&commandbuf[12])) = dwStartAddr; commandbuf[12] = LOBYTE(LOWORD(dwStartAddr)); commandbuf[13] = HIBYTE(LOWORD(dwStartAddr)); @@ -3975,7 +3975,7 @@ void ProvBuban104SendSoe(int commid) commandbuf[3] = 0; commandbuf[4] = 0; commandbuf[5] = 0; - commandbuf[6] = 2;//单点soe + commandbuf[6] = 2;//鍗曠偣soe commandbuf[8] = 3; if(VER_BUBAN_104 == pPortParam->RtuVersion) { @@ -3993,7 +3993,7 @@ void ProvBuban104SendSoe(int commid) iDataNum = 0; //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - // wen 2006.07.12 修改soe为单个时,数据丢失的问题. + // wen 2006.07.12 淇敼soe涓哄崟涓椂锛屾暟鎹涪澶辩殑闂. /*while(ProvAndDelGetSoeData(commid, &soemsg) > 0) { iDataNum++; @@ -4068,7 +4068,7 @@ void ProvBuban104YkYtData(int commid, RTUMSG *rtumsg) else { bYkOperate = rtumsg->MsgData[15]; - // wen 2005.11.27 修改最高字节信息体地址不做判断 + // wen 2005.11.27 淇敼鏈楂樺瓧鑺備俊鎭綋鍦板潃涓嶅仛鍒ゆ柇 //ykytpnt = rtumsg->MsgData[12] + (rtumsg->MsgData[13]<<8) + (rtumsg->MsgData[14]<<16); ykytpnt = rtumsg->MsgData[12] + (rtumsg->MsgData[13]<<8); } @@ -4079,7 +4079,7 @@ void ProvBuban104YkYtData(int commid, RTUMSG *rtumsg) } else { - if(bYkOperate & 0x80) //选择返校 + if(bYkOperate & 0x80) //閫夋嫨杩旀牎 { step = STEP_YKYT_SELECT; } @@ -4103,7 +4103,7 @@ void ProvBuban104YkYtData(int commid, RTUMSG *rtumsg) if(rtumsg->MsgData[6] == 45) { - // ykytop == 1 控合, == 2 控分 + // ykytop == 1 鎺у悎, == 2 鎺у垎 ykytop = ((bYkOperate & 0x03) == 1) ? 1 : 2; } else if(rtumsg->MsgData[6] == 46) @@ -4118,9 +4118,9 @@ void ProvBuban104YkYtData(int commid, RTUMSG *rtumsg) } provpnt = FindProvPntFromYkYtPnt(commid, ykytpnt, pPortParam->m_psBaoHu); - if(provpnt < 0) // 控点号错 + if(provpnt < 0) // 鎺х偣鍙烽敊 { - sprintf(szbuf, "WARN(%04d): 控点错误.\n", _getpid()); + sprintf(szbuf, "WARN(%04d): 鎺х偣閿欒.\n", _getpid()); DebugPrint(szbuf); MakeProvBuban104YkYtAckMsg(commid, ykytpnt, 3, step); } @@ -4136,7 +4136,7 @@ void ProvBuban104YkYtData(int commid, RTUMSG *rtumsg) if(!SioParam[ykytcommid].m_psBaoHu->DiPtr) { - sprintf(szbuf, "WARN(%04d): 没有控点m_psBaoHu->DiPtr=NULL.\n", _getpid()); + sprintf(szbuf, "WARN(%04d): 娌℃湁鎺х偣m_psBaoHu->DiPtr=NULL.\n", _getpid()); DebugPrint(szbuf); MakeProvBuban104YkYtAckMsg(commid, ykytpnt, 3, step); return; @@ -4144,10 +4144,10 @@ void ProvBuban104YkYtData(int commid, RTUMSG *rtumsg) diptr = (DI_DEF *)SioParam[ykytcommid].m_psBaoHu->DiPtr; - // 如果对应点没有控点或者控点不相等 + // 濡傛灉瀵瑰簲鐐规病鏈夋帶鐐规垨鑰呮帶鐐逛笉鐩哥瓑 if(!diptr[diprovptr[provpnt].PntNo].CtrlEnable) { - sprintf(szbuf, "WARN(%04d): 对应点没有控点或者控点不相等.\n", _getpid()); + sprintf(szbuf, "WARN(%04d): 瀵瑰簲鐐规病鏈夋帶鐐规垨鑰呮帶鐐逛笉鐩哥瓑.\n", _getpid()); DebugPrint(szbuf); MakeProvBuban104YkYtAckMsg(commid, ykytpnt, 3, step); return; @@ -4159,7 +4159,7 @@ void ProvBuban104YkYtData(int commid, RTUMSG *rtumsg) { if(!ProvPortYkYtIsTimeOut(ykytcommid, &SioParam[ykytcommid].m_psBaoHu->ProvYkYtMsg)) { - sprintf(szbuf, "WARN(%04d): 超时 failed.\n", _getpid()); + sprintf(szbuf, "WARN(%04d): 瓒呮椂 failed.\n", _getpid()); DebugPrint(szbuf); MakeProvBuban104YkYtAckMsg(commid, ykytpnt, 3, step); return; @@ -4173,18 +4173,18 @@ void ProvBuban104YkYtData(int commid, RTUMSG *rtumsg) SioParam[ykytcommid].m_psBaoHu->ProvYkYtMsg.m_iYkYtPointIdx = diptr[diprovptr[provpnt].PntNo].ControlNo; SioParam[ykytcommid].m_psBaoHu->ProvYkYtMsg.m_iYkYtOperate = ykytop; - // buf[0] --- 端口号(=commid) + // buf[0] --- 绔彛鍙(=commid) // buf[1] // buf[2] // buf[3] - // buf[4] --- 控点号 + // buf[4] --- 鎺х偣鍙 // buf[5] // buf[6] // buf[7] - // buf[8] --- 操作类型(遥控:1=选择,2=执行,3=取消,7=直控; - // 遥调:4=选择,5=执行,6=取消,8=急停) - // buf[9] --- 控制状态(1=分到合,2=合到分) - // (最高位为1时,为返校命令, 1=成功, 0=失败) + // buf[8] --- 鎿嶄綔绫诲瀷(閬ユ帶:1=閫夋嫨,2=鎵ц,3=鍙栨秷,7=鐩存帶; + // 閬ヨ皟:4=閫夋嫨,5=鎵ц,6=鍙栨秷,8=鎬ュ仠) + // buf[9] --- 鎺у埗鐘舵(1=鍒嗗埌鍚堬紝2=鍚堝埌鍒) + // (鏈楂樹綅涓1鏃讹紝涓鸿繑鏍″懡浠, 1=鎴愬姛, 0=澶辫触) //buf[0] = ykytcommid & 0xFF; //buf[1] = (ykytcommid & 0xFF00) >> 8; //buf[2] = (ykytcommid & 0xFF0000) >> 16; @@ -4195,7 +4195,7 @@ void ProvBuban104YkYtData(int commid, RTUMSG *rtumsg) //buf[7] = (diptr[diprovptr[provpnt].PntNo].ControlNo & 0xFF000000) >> 24; //buf[8] = STEP_YKYT_SELECT; //buf[9] = ykytop; - //SendYkYtCommand(ykytcommid, (char *)buf, 10); // 发送遥控遥调命令 + //SendYkYtCommand(ykytcommid, (char *)buf, 10); // 鍙戦侀仴鎺ч仴璋冨懡浠 YkYtParam.m_iYkYtOperate = ykytop; YkYtParam.m_iYkYtPnt = diptr[diprovptr[provpnt].PntNo].ControlNo; @@ -4225,16 +4225,16 @@ void MakeProvBuban104YkYtAckMsg(int commid, int pnt, int op, int step) commandbuf[1] = 14; switch(pPortParam->YkMode) { - case CONTROL_SINGAL: // 单点控制 + case CONTROL_SINGAL: // 鍗曠偣鎺у埗 commandbuf[6] = 45; break; - case CONTROL_DOUBLE: // 双点控制 - case CONTROL_DIRECT: // 直接控制 + case CONTROL_DOUBLE: // 鍙岀偣鎺у埗 + case CONTROL_DIRECT: // 鐩存帴鎺у埗 commandbuf[6] = 46; // 47; break; } commandbuf[7] = 1; - //commandbuf[8];// 传送原因 + //commandbuf[8];// 浼犻佸師鍥 iLen = 9; ykpoint = (pnt-1) + pPortParam->iYkBaseAddr; @@ -4256,22 +4256,22 @@ void MakeProvBuban104YkYtAckMsg(int commid, int pnt, int op, int step) switch(step) { - case STEP_YKYT_SELECT: // 选择 + case STEP_YKYT_SELECT: // 閫夋嫨 commandbuf[8] = 7; commandbuf[iLen] = 0xfc; break; - case STEP_YKYT_EXEC: // 执行 + case STEP_YKYT_EXEC: // 鎵ц commandbuf[8] = 7; commandbuf[iLen] = 0x7c; break; - case STEP_YKYT_CANCEL: // 撤销 + case STEP_YKYT_CANCEL: // 鎾ら攢 commandbuf[8] = 9; commandbuf[iLen] = 0xfc; break; - default:// 结束帧 + default:// 缁撴潫甯 commandbuf[8] = 10; commandbuf[iLen] = 0; break; @@ -4280,7 +4280,7 @@ void MakeProvBuban104YkYtAckMsg(int commid, int pnt, int op, int step) // DCS/RCS switch(op) { - case 1: // 选择合 + case 1: // 閫夋嫨鍚 if(CONTROL_SINGAL == pPortParam->YkMode) { commandbuf[iLen] |= 1; @@ -4290,13 +4290,13 @@ void MakeProvBuban104YkYtAckMsg(int commid, int pnt, int op, int step) commandbuf[iLen] |= 2; } break; - case 2: // 选择分 + case 2: // 閫夋嫨鍒 if(CONTROL_SINGAL != pPortParam->YkMode) { commandbuf[iLen] |= 1; } break; - case 3: // 选择失败 + case 3: // 閫夋嫨澶辫触 default: commandbuf[8] |= 0x40; break; @@ -4337,7 +4337,7 @@ void ProvBuban104SendClass1(int commid) iCmdType = FAST_POLL_CMD; } - // wen 2005.01.15 修改数据信息体起始地址 + // wen 2005.01.15 淇敼鏁版嵁淇℃伅浣撹捣濮嬪湴鍧 dwStartAddr = pPortParam->iDiBaseAddr; commandbuf[0] = 0x68; @@ -4345,7 +4345,7 @@ void ProvBuban104SendClass1(int commid) commandbuf[3] = 0; commandbuf[4] = 0; commandbuf[5] = 0; - commandbuf[6] = 1;//=3,为双点 + commandbuf[6] = 1;//=3,涓哄弻鐐 commandbuf[8] = 3; if(VER_BUBAN_104 == pPortParam->RtuVersion) { @@ -4441,10 +4441,10 @@ void ProvBuban104SendClass2(int commid) iLenth = 12; } - // wen 2005.01.15 修改数据信息体起始地址 + // wen 2005.01.15 淇敼鏁版嵁淇℃伅浣撹捣濮嬪湴鍧 dwStartAddr = pPortParam->iAiBaseAddr; commandbuf[6] = 21; - //遥测值 + //閬ユ祴鍊 aiprovptr = (PROV_AI_PNT *)pPortParam->m_psBaoHu->AiPtr; for(j = 0, iDataNum = 0; j < pPortParam->m_psBaoHu->AiNum; j++) { @@ -4496,9 +4496,9 @@ void ProvMakeBuban104Command(int commid, u_char cmdidx) switch(cmdidx) { - case ASK_SECOND_DATA: // 召唤2级数据 + case ASK_SECOND_DATA: // 鍙敜2绾ф暟鎹 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - // wen 2006.03.23 支持浮点数遥测的传送 + // wen 2006.03.23 鏀寔娴偣鏁伴仴娴嬬殑浼犻 //ProvBuban104SendClass2(commid); //==================================================================== if(pPortParam->m_bProvAiType == 13) @@ -4512,11 +4512,11 @@ void ProvMakeBuban104Command(int commid, u_char cmdidx) //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ break; - case ASK_FIRST_DATA: // 召唤1级数据 + case ASK_FIRST_DATA: // 鍙敜1绾ф暟鎹 ProvBuban104SendClass1(commid); break; - case ASK_ALLDATA_END: // 总召唤结束帧 + case ASK_ALLDATA_END: // 鎬诲彫鍞ょ粨鏉熷抚 commandbuf[0] = 0x68; //commandbuf[iLen++] = 14; iLen = 2; @@ -4555,31 +4555,31 @@ void ProvMakeBuban104Command(int commid, u_char cmdidx) pPortParam->Initdata = TRUE; break; - case RTU_TIME: // 时间同步 + case RTU_TIME: // 鏃堕棿鍚屾 break; - case ASK_DI_DATA: // 召唤2级数据YX + case ASK_DI_DATA: // 鍙敜2绾ф暟鎹甕X break; - case ASK_AI_DATA: // 召唤2级数据YC + case ASK_AI_DATA: // 鍙敜2绾ф暟鎹甕C break; - case ASK_PI_DATA: // 召唤2级数据YM + case ASK_PI_DATA: // 鍙敜2绾ф暟鎹甕M break; - case ASK_PI: //召唤电度量 + case ASK_PI: //鍙敜鐢靛害閲 break; - case ASK_ALL_DATA: // 召唤初始化数据 + case ASK_ALL_DATA: // 鍙敜鍒濆鍖栨暟鎹 break; } } /* -int j // 对应数据库数据点号 -int *igno // 组号 -int* iItemNo 条目号 -DAY_TIME* sCurTime 时间 -float* pfValue 数据值 +int j // 瀵瑰簲鏁版嵁搴撴暟鎹偣鍙 +int *igno // 缁勫彿 +int* iItemNo 鏉$洰鍙 +DAY_TIME* sCurTime 鏃堕棿 +float* pfValue 鏁版嵁鍊 typedef struct { WORD Year; @@ -4593,7 +4593,7 @@ typedef struct u_char reserved; WORD mSec; } DAY_TIME; -返回值1:成功取值 -1:取值失败 +杩斿洖鍊1锛氭垚鍔熷彇鍊 -1锛氬彇鍊煎け璐 */ int GetAIPntMsg(int j, int *igno, int* iItemNo, DAY_TIME* sCurTime, float* pfValue, int *iaddr) { @@ -4628,7 +4628,7 @@ void ProvBuban104SendAIwithFloat(int commid, RTUMSG *rtumsg, int iGroupNo) iCmdType = FAST_POLL_CMD; - if( iGroupNo == 0 )//总召唤 + if( iGroupNo == 0 )//鎬诲彫鍞 { //dwStartAddr = MAX_GROUP_AINUM*iGroupNo + pPortParam->iAiBaseAddr; @@ -4637,7 +4637,7 @@ void ProvBuban104SendAIwithFloat(int commid, RTUMSG *rtumsg, int iGroupNo) } //aiprovptr = (PROV_AI_PNT *)pPortParam->m_psBaoHu->AiPtr; - for( i = 0; i < iAllDataCount; i++ ) + for( i = 0; i < iAllDataCount; /*i++*/ ) { memset(commandbuf, 0, sizeof(commandbuf)); commandbuf[0] = 0x68; @@ -4645,25 +4645,25 @@ void ProvBuban104SendAIwithFloat(int commid, RTUMSG *rtumsg, int iGroupNo) commandbuf[3] = 0; commandbuf[4] = 0; commandbuf[5] = 0; - commandbuf[6] = 10; // 类型标识TYP - commandbuf[7] = 0x81; // 可变结构限定词VSQ - commandbuf[8] = 0x2A; // 传送原因COT + commandbuf[6] = 10; // 绫诲瀷鏍囪瘑TYP + commandbuf[7] = 0x81; // 鍙彉缁撴瀯闄愬畾璇峍SQ + commandbuf[8] = 0x2A; // 浼犻佸師鍥燙OT commandbuf[9] = 0; // - commandbuf[10] = 0; // 应用服务数据单元公共地址 - commandbuf[11] = 254; // 功能类型FUN - commandbuf[12] = 241; // 信息序号INF - commandbuf[13] = 0; // 返回信息标识码RII + commandbuf[10] = 0; // 搴旂敤鏈嶅姟鏁版嵁鍗曞厓鍏叡鍦板潃 + commandbuf[11] = 254; // 鍔熻兘绫诲瀷FUN + commandbuf[12] = 241; // 淇℃伅搴忓彿INF + commandbuf[13] = 0; // 杩斿洖淇℃伅鏍囪瘑鐮丷II - //遥测值 + //閬ユ祴鍊 if(iAllDataCount-i > MAX_FLOATAINUM) { iSendNum = MAX_FLOATAINUM; - commandbuf[14] = (iSendNum & 0x80); // 通用分类数据集数目NGD + commandbuf[14] = (iSendNum & 0x80); // 閫氱敤鍒嗙被鏁版嵁闆嗘暟鐩甆GD } else { iSendNum = iAllDataCount-i; - commandbuf[14] = iSendNum; // 通用分类数据集数目NGD + commandbuf[14] = iSendNum; // 閫氱敤鍒嗙被鏁版嵁闆嗘暟鐩甆GD } iNo = i; @@ -4686,10 +4686,10 @@ void ProvBuban104SendAIwithFloat(int commid, RTUMSG *rtumsg, int iGroupNo) } commandbuf[iLenth] = igno; commandbuf[iLenth++] = iItemNo; - commandbuf[iLenth++] = 1; // 描述类别KOD(实际值) - commandbuf[iLenth++] = 7; // 数据类型 - commandbuf[iLenth++] = 4; // 数据宽度 - commandbuf[iLenth++] = 4; // 数据数目 + commandbuf[iLenth++] = 1; // 鎻忚堪绫诲埆KOD锛堝疄闄呭硷級 + commandbuf[iLenth++] = 7; // 鏁版嵁绫诲瀷 + commandbuf[iLenth++] = 4; // 鏁版嵁瀹藉害 + commandbuf[iLenth++] = 4; // 鏁版嵁鏁扮洰 commandbuf[iLenth++] = sCurTime.mSec % 256; commandbuf[iLenth++] = sCurTime.mSec / 256; commandbuf[iLenth++] = (u_char)sCurTime.Min; @@ -4706,19 +4706,19 @@ void ProvBuban104SendAIwithFloat(int commid, RTUMSG *rtumsg, int iGroupNo) if (15 == iLenth) break; commandbuf[9] = (u_char)iaddr0; // - commandbuf[10] = (u_char)(iaddr0 >> 8); // 应用服务数据单元公共地址 + commandbuf[10] = (u_char)(iaddr0 >> 8); // 搴旂敤鏈嶅姟鏁版嵁鍗曞厓鍏叡鍦板潃 i += j; - if (flag = -1) + if (flag == -1) { i = iAllDataCount; } if(i >= iAllDataCount) { - commandbuf[14] = j; // 通用分类数据集数目NGD + commandbuf[14] = j; // 閫氱敤鍒嗙被鏁版嵁闆嗘暟鐩甆GD } else - commandbuf[14] = (j & 0x80); // 通用分类数据集数目NGD + commandbuf[14] = (j & 0x80); // 閫氱敤鍒嗙被鏁版嵁闆嗘暟鐩甆GD commandbuf[1] = (char)(iLenth-2); @@ -4749,7 +4749,7 @@ void ProvBuban104SendAIwithFloat(int commid, RTUMSG *rtumsg, int iGroupNo) iCmdType = FAST_POLL_CMD; } - if( iGroupNo == 0 )//总召唤 + if( iGroupNo == 0 )//鎬诲彫鍞 { dwStartAddr = MAX_GROUP_AINUM*iGroupNo + pPortParam->iAiBaseAddr; @@ -4757,7 +4757,7 @@ void ProvBuban104SendAIwithFloat(int commid, RTUMSG *rtumsg, int iGroupNo) iSendCount = (iAllDataCount+MAX_FLOATAINUM-1)/MAX_FLOATAINUM; iCmdType = FAST_POLL_CMD; } - else//分组召唤 + else//鍒嗙粍鍙敜 { dwStartAddr = MAX_GROUP_AINUM*(iGroupNo-1); iAllDataCount = pPortParam->m_psBaoHu->AiNum - dwStartAddr; @@ -4787,7 +4787,7 @@ void ProvBuban104SendAIwithFloat(int commid, RTUMSG *rtumsg, int iGroupNo) if(VER_BUBAN_104 == pPortParam->RtuVersion) { commandbuf[9] = LOBYTE(pPortParam->wLinkAddr); - // 信息体地址为2个字节 + // 淇℃伅浣撳湴鍧涓2涓瓧鑺 //*((DWORD*)(&commandbuf[12])) = dwStartAddr; commandbuf[10] = LOBYTE(LOWORD(dwStartAddr)); commandbuf[11] = HIBYTE(LOWORD(dwStartAddr)); @@ -4798,7 +4798,7 @@ void ProvBuban104SendAIwithFloat(int commid, RTUMSG *rtumsg, int iGroupNo) commandbuf[9] = 0; commandbuf[10] = LOBYTE(pPortParam->wLinkAddr); commandbuf[11] = HIBYTE(pPortParam->wLinkAddr); - // 信息体地址为3个字节 + // 淇℃伅浣撳湴鍧涓3涓瓧鑺 //*((DWORD*)(&commandbuf[12])) = dwStartAddr; commandbuf[12] = LOBYTE(LOWORD(dwStartAddr)); commandbuf[13] = HIBYTE(LOWORD(dwStartAddr)); @@ -4806,7 +4806,7 @@ void ProvBuban104SendAIwithFloat(int commid, RTUMSG *rtumsg, int iGroupNo) iLenth = 15; } - //遥测值 + //閬ユ祴鍊 if(iAllDataCount > MAX_FLOATAINUM) { iAllDataCount -= MAX_FLOATAINUM; @@ -4826,7 +4826,7 @@ void ProvBuban104SendAIwithFloat(int commid, RTUMSG *rtumsg, int iGroupNo) pfValue = (float *)&commandbuf[iLenth]; //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - // wen 2006.07.13 修改负数的传送 + // wen 2006.07.13 淇敼璐熸暟鐨勪紶閫 //*pfValue = SequenceHostToRtufloat((float)pntmsg.RawValue); //============================================================ *pfValue = SequenceHostToRtufloat((float)((int)pntmsg.RawValue)); @@ -4896,10 +4896,10 @@ void ProvBuban104SendClass2withFloat(int commid) iLenth = 12; } - // wen 2005.01.15 修改数据信息体起始地址 + // wen 2005.01.15 淇敼鏁版嵁淇℃伅浣撹捣濮嬪湴鍧 dwStartAddr = pPortParam->iAiBaseAddr; commandbuf[6] = 13; - //遥测值 + //閬ユ祴鍊 aiprovptr = (PROV_AI_PNT *)pPortParam->m_psBaoHu->AiPtr; for(j = 0, iDataNum = 0; j < pPortParam->m_psBaoHu->AiNum; j++) { @@ -4921,7 +4921,7 @@ void ProvBuban104SendClass2withFloat(int commid) pfValue = (float *)&commandbuf[iLenth]; //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - // wen 2006.07.13 修改负数的传送 + // wen 2006.07.13 淇敼璐熸暟鐨勪紶閫 //*pfValue = SequenceHostToRtufloat((float)pntmsg.RawValue); //============================================================ *pfValue = SequenceHostToRtufloat((float)((int)pntmsg.RawValue)); @@ -4929,9 +4929,9 @@ void ProvBuban104SendClass2withFloat(int commid) iLenth += sizeof(float); commandbuf[iLenth++] = 0; - //4.bug_1.2.3_20060807_3/bug_2.0.1_20060807_4 104规约不能转发第二个端口的遥测数据 - //不能操作251(原来使用255可能导致发送报文长度超过255,一个字节不能表述) - //另外命令缓冲区应当使用char而不应当使用u_char + //4.bug_1.2.3_20060807_3/bug_2.0.1_20060807_4 104瑙勭害涓嶈兘杞彂绗簩涓鍙g殑閬ユ祴鏁版嵁 + //涓嶈兘鎿嶄綔251(鍘熸潵浣跨敤255鍙兘瀵艰嚧鍙戦佹姤鏂囬暱搴﹁秴杩255锛屼竴涓瓧鑺備笉鑳借〃杩) + //鍙﹀鍛戒护缂撳啿鍖哄簲褰撲娇鐢╟har鑰屼笉搴斿綋浣跨敤u_char if(iLenth >= 251) { break; @@ -4951,6 +4951,6 @@ void ProvBuban104SendClass2withFloat(int commid) PutPollCmdToBuf(commid, iCmdType, 0, (char *)commandbuf, iLenth); } } -//===========================转发数据处理结束===============================// +//===========================杞彂鏁版嵁澶勭悊缁撴潫===============================// -//===========================数据处理函数结束===============================// \ No newline at end of file +//===========================鏁版嵁澶勭悊鍑芥暟缁撴潫===============================// \ No newline at end of file diff --git a/commport.cpp b/commport.cpp index 8374177..c885609 100644 --- a/commport.cpp +++ b/commport.cpp @@ -2595,6 +2595,7 @@ int AddNodeEx(int commid, char *buf, int len) if (!SioParam[commid].WriteData) //empty before insert { SioParam[commid].WriteData = (struct WR_DATA*)HEAP_MALLOC(iMallocSize); + SioParam[commid].WriteData->MsgData = (u_char*)SioParam[commid].WriteData + sizeof(struct WR_DATA); if (!SioParam[commid].WriteData) { // wen 2004.12.03 @@ -2630,6 +2631,7 @@ int AddNodeEx(int commid, char *buf, int len) }; wdata->Next = (struct WR_DATA*)HEAP_MALLOC(iMallocSize); + wdata->Next->MsgData = (u_char*)wdata->Next + sizeof(struct WR_DATA); if (!wdata->Next) { // wen 2004.12.03