/*! * \brief 功能概述 创建此通道 * \param 参数描述 strChannelFileName_是通道文件绝对路径名,pDatabaseReturn是实时库指针 * \return 返回值描述 成功返回true,失败返回false * \author zzy * \date 2015/5/25 */ bool CProtocolDLT_645_07::OnCreateChannel(const QString strChannelFileName_, CRTDBI *pDatabaseReturn) { SetPROTOCOL_TYPE(Collect_Type); if (!CProtocolBase::OnCreateChannel(strChannelFileName_,pDatabaseReturn)) return false; QFile file(strChannelFileName_); QDomDocument ChannelDoc; if (!file.open(QFile::ReadOnly | QFile::Text)) return false; QString errorStr; int errorLine; int errorColumn; if (!ChannelDoc.setContent(&file, false, &errorStr, &errorLine, &errorColumn)) { qDebug()<<strChannelFileName_<<"XML File Error Message:"<<errorStr<<" Error Line:"<<errorLine<<" Error Column:"<<errorColumn; return false; } file.close(); QDomElement docElem = ChannelDoc.documentElement(); if (docElem.childNodes().count() != 5)///<zzy 2015/1/15 修改: return false; // QDomElement Channel = docElem.childNodes().at(0).toElement(); // QDomElement Top = docElem.childNodes().at(1).toElement(); // QDomElement Protocol = docElem.childNodes().at(2).toElement(); // QDomElement MainPort = docElem.childNodes().at(3).toElement(); QDomElement DeviceList = docElem.childNodes().at(4).toElement(); SetDataTypeMap(DeviceList); m_nTimerID = startTimer(2000); return true; }
bool CProtocolCDT::OnCreateChannel(const QDomElement &ChannelElement_, ChannelType nChannelType_, int nComOrCanNumber_, CRTDBI *pDatabaseReturn_) { SetPROTOCOL_TYPE(Collect_Type);/// 设置驱动类型 分为转发和采集驱动 if (!CProtocolBase::OnCreateChannel(ChannelElement_,nChannelType_,nComOrCanNumber_,pDatabaseReturn_)) return false; if (ChannelElement_.elementsByTagName("Protocol").isEmpty()) return false; if (ChannelElement_.elementsByTagName("DeviceList").isEmpty()) return false; QDomElement Protocol = ChannelElement_.elementsByTagName("Protocol").at(0).toElement(); QDomElement DeviceList = ChannelElement_.elementsByTagName("DeviceList").at(0).toElement(); // <Option value="0" name="D7 09"/> // <Option value="1" name="EB 90"/> if (Protocol.attribute("tongbuziSelect") == "1") { BYTE szPre [] ={0xeb,0x90,0xeb,0x90,0xeb,0x90}; g_bufferSyncWord.SetData(szPre,6); }else if (Protocol.attribute("tongbuziSelect") == "0") { BYTE szPre [] ={0xD7,0x09,0xD7,0x09,0xD7,0x09}; g_bufferSyncWord.SetData(szPre,6); }else { BYTE szPre [] ={0xeb,0x90,0xeb,0x90,0xeb,0x90}; g_bufferSyncWord.SetData(szPre,6); } CGI_InitPointMap(DeviceList); return true; }
bool CProtocolDLT_645_07::OnCreateChannel(const QDomElement &ChannelElement_, ChannelType nChannelType_, int nComOrCanNumber_, CRTDBI *pDatabaseReturn_) { SetPROTOCOL_TYPE(Collect_Type); if (!CProtocolBase::OnCreateChannel(ChannelElement_,nChannelType_,nComOrCanNumber_,pDatabaseReturn_)) return false; if (ChannelElement_.elementsByTagName("DeviceList").isEmpty()) return false; QDomElement DeviceList = ChannelElement_.elementsByTagName("DeviceList").at(0).toElement(); CGI_SetDataTypeMap(DeviceList); m_nTimerID = startTimer(2000); return true; }
bool CProtocolCDT::OnCreateChannel(const QString strChannelFileName_, CRTDBI *pDatabaseReturn) { SetPROTOCOL_TYPE(Collect_Type);/// 设置驱动类型 分为转发和采集驱动 if (!CProtocolBase::OnCreateChannel(strChannelFileName_,pDatabaseReturn)) return false; QDomDocument ChannelDoc; if (!CXmlParser::readFile(strChannelFileName_,ChannelDoc)) return false; QDomElement docElem = ChannelDoc.documentElement(); if (docElem.childNodes().count() != 5)///<zzy 2015/1/14 修改:5个节点 return false; // QDomElement Channel = docElem.childNodes().at(0).toElement(); // QDomElement Top = docElem.childNodes().at(1).toElement(); QDomElement Protocol = docElem.childNodes().at(2).toElement(); // QDomElement MainPort = docElem.childNodes().at(3).toElement(); QDomElement DeviceList = docElem.childNodes().at(4).toElement(); if (Protocol.attribute("tongbuziSelect") == "EB 90") { BYTE szPre [] ={0xeb,0x90,0xeb,0x90,0xeb,0x90}; g_bufferSyncWord.SetData(szPre,6); }else if (Protocol.attribute("tongbuziSelect") == "D7 09") { BYTE szPre [] ={0xD7,0x09,0xD7,0x09,0xD7,0x09}; g_bufferSyncWord.SetData(szPre,6); }else { BYTE szPre [] ={0xeb,0x90,0xeb,0x90,0xeb,0x90}; g_bufferSyncWord.SetData(szPre,6); } InitPointMap(DeviceList); return true; }
bool CProtocolDemo::OnCreateChannel(const QString strChannelFileName_, CRTDBI *pDatabaseReturn) { SetPROTOCOL_TYPE(Collect_Type); if (!CProtocolBase::OnCreateChannel(strChannelFileName_,pDatabaseReturn)) return false; QFile file(strChannelFileName_); QDomDocument ChannelDoc; if (!file.open(QFile::ReadOnly | QFile::Text)) return false; QString errorStr; int errorLine; int errorColumn; if (!ChannelDoc.setContent(&file, false, &errorStr, &errorLine, &errorColumn)) { qDebug()<<strChannelFileName_<<"XML File Error Message:"<<errorStr<<" Error Line:"<<errorLine<<" Error Column:"<<errorColumn; return false; } file.close(); return true; }