/*!
 * \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;
}
Ejemplo n.º 2
0
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;
}
Ejemplo n.º 4
0
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;
}
Ejemplo n.º 5
0
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;
}