zoukankan      html  css  js  c++  java
  • gx_dlms 的杂乱记录

    
    DLMS_ERROR_CODE_FALSE
    
    
    W3Jehpnc543MuwUz6ZWDshy5kwbbE9Cw
    
    CGXDLMSClient::GetData(CGXByteBuffer& reply, CGXReplyData& data)
    	CGXDLMS::GetData(m_Settings, reply, data, NULL)
    	
    		// hdlc路线,这里的reply 是原始接受的数据,data 要返回的CGXReplyData
    		GetHdlcData(settings.IsServer(), settings, reply, data, frame, notify))
    			帧类型 U/I/S
    			address
    			crc
    		//tcp路线
    		GetTcpData
    		
    		
    		if (!target->IsComplete())
    			return DLMS_ERROR_CODE_FALSE;
    		GetDataFromFrame(reply, *target, settings.GetInterfaceType() == DLMS_INTERFACE_TYPE_HDLC);
    			//提取具体的apdu数据
    		GetPdu(settings, *target)
    			//解析出具体的apdu的头
    			case	HandleGetResponse
    						// 把数据提取出来
    					aare
    					....
    			GetValueFromData
    
    // ua解析
    ParseUAResponse
    	CGXDLMS::ParseSnrmUaResponse(data, &m_Settings.GetLimits());
    	m_Settings.SetConnected(DLMS_CONNECTION_STATE_HDLC);
    // aare
    ParseAAREResponse
    	CGXAPDU::ParsePDU(m_Settings, m_Settings.GetCipher(),reply, result, sd, NULL)) != 0)
    
    流的处理,数据接受完整的处理与判断
    
    
    m_Parser->SNRMRequest
    	根据类型和数据 构造 hdlc的数据帧
    	 CGXDLMS::GetHdlcFrame
    ReadDataBlock
    		ReadDLMSPacket
    			write(m_hComPort, data.GetData(), len);
    			Read(0x7E, bb)
    			m_Parser->GetData(bb, reply, notify)
    				GetHdlcData // 从hdlc 得到数据
    				GetDataFromFrame
    			
    
    
    GetLNPdu   组合  获得 E6 E6 00 开始的数据
    
    
    
    GXHelpers::GetData
    int CGXDLMSTranslator::DataToXml(CGXByteBuffer& data, std::string& xml)
    GetDataTypes
    数据读取 
    m_Parser->Read 组数据
    ReadDataBlock
    	ReadDLMSPacket	发数据
    UpdateValue解析数据	
    		
    if 0==GetData
    	if(m_Complete==flase)
    			
    	else(m_Complete==true)
    	
    	有个positon 指示了当前解析的位置
    
    一些有用的定义
    DLMS_COMMAND_SNRM  表示了具体的帧类型
    
    faq
    	GetHdlcData 里面有些回退操作
    待优化
    GetHDLCAddress
    	可以在size=5时候退出
    GetHdlcData 应先检查crc 再去做帧类型检查	
    	
    	
    关于构造和析构
    	
    
  • 相关阅读:
    SQL SERVER 2005分区表切换
    对SQL SERVER2005中表和索引存储结构的一些理解
    SQL SERVER 2005 DBCC IND命令说明
    面向对象的基本原则
    SQL SERVER 2005 DBCC PAGE命令说明
    Mac 使用ab性能测试工具
    Struts2初始化过程代码分析
    maven开发过程实践之二(配置项与源代码分离 processresources)
    简单之美
    Maven开发过程实践之三—(单元测试报告 test)
  • 原文地址:https://www.cnblogs.com/zongzi10010/p/11991501.html
Copyright © 2011-2022 走看看