void ConfigTreeObject_EventAction::slotEventAction_A_Typechanged()
{
    QFile file;
    Operation_Mode_Type mode = (Operation_Mode_Type)ConfigTreeObject \
            ::getConfigObject(EVENT_DELEGATE_EVENT_MODE)->getData().toUInt();

    switch(mode) {
    case Operation_Mode_Type_RisingEdge:
    case Operation_Mode_Type_FallingEdge:
    case Operation_Mode_Type_Edge:
        file.setFileName(XML_EVENT_ACTION_TYPE);
        break;
    case Operation_Mode_Type_Both:
        file.setFileName(XML_EVENT_ACTION_TYPE_C);
        break;
    }

    QVariant value = ConfigTreeObject::getConfigObject(EVENT_DELEGATE_ACTION_TYPE)->getData();

    if(!file.open(QFile::ReadOnly | QFile::Text)){
        qWarning()<< "Can't open the file:EventAction_ActionType!";
    }else{
        XmlConfigParser::parseValueChangeXml(file, value);
        file.close();
    }

    QMap<quint32,QString> m_map;

    Action_Type valueCur = (Action_Type)value.toUInt();
    if(Action_Type1_Recorded == valueCur) {
        m_map.insert(Action_Detail_Start, tr("Start"));
        m_map.insert(Action_Detail_Stop, tr("Stop"));
    } else if (Action_Type1_Computation == valueCur) {
        m_map.insert(Action_Detail_Start, tr("Start"));
        m_map.insert(Action_Detail_Stop, tr("Stop"));
        m_map.insert(Action_Detail_Reset, tr("Reset"));
    } else if (Action_Type1_Message == valueCur) {
        m_map.insert(Action_Detail_AllGrp, tr("All groups"));
        m_map.insert(Action_Detail_SpecGrp, tr("Specified group"));
    } else {
        return;
    }

    ConfigObject* pObj = ConfigTreeObject::getConfigObject(EVENT_DELEGATE_ACTION_DETAIL);
    if(pObj) {
        Action_Detail detailCur = (Action_Detail)pObj->getData().toUInt();
        if(!(m_map.contains(detailCur))) {
            pObj->changeData(m_map.firstKey(), false);
        }
    }

}
示例#2
0
void ConfigTreeObject_Math::slotMathFirst_chanSelectchanged()
{
    QString chanNumF;
    QString chanNumL;
    ConfigObject *pObj = ConfigTreeObject::getConfigObject(MATH_DELEGATE_FIRSTCHAN);
    ConfigObject *qObj = ConfigTreeObject::getConfigObject(MATH_DELEGATE_LASTCHAN);

    if(pObj && qObj){
        chanNumF = pObj->getData().toString();
        chanNumL = qObj->getData().toString();

        pObj->setStrShowOn(chanNumF);
        qObj->changeData(chanNumF, false);
    }
}
示例#3
0
void ConfigTreeObject_Math::slotMathLast_chanSelectchanged()
{
    QString chanNumF;
    QString chanNumL;
    ConfigObject *pObj = ConfigTreeObject::getConfigObject(MATH_DELEGATE_FIRSTCHAN);
    ConfigObject *qObj = ConfigTreeObject::getConfigObject(MATH_DELEGATE_LASTCHAN);

    if(pObj && qObj){
        chanNumL = qObj->getData().toString();
        chanNumF = pObj->getData().toString();
        int value = QString::compare(chanNumF, chanNumL);
        if(value <= 0) {
            qObj->setStrShowOn(chanNumL);
        }
        else{
            qObj->setStrShowOn(chanNumL);
            pObj->changeData(chanNumL ,false);
        }
    }
}
void ConfigTreeObject_EventAction::slotEventAction_E_Typechanged()
{
    QVariant value = ConfigTreeObject::getConfigObject(EVENT_DELEGATE_EVENT_TYPE)->getData();

    QFile file(XML_EVENT_EVENT_TYPE);
    if(!file.open(QFile::ReadOnly | QFile::Text)){
        qWarning()<< "Can't open the file:EventAction_EventType!";
    }else{
        XmlConfigParser::parseValueChangeXml(file, value);
        file.close();
    }

    QMap<quint32,QString> m_map_EventMode;
    m_map_EventMode.insert(Operation_Mode_Type_RisingEdge, tr("Rising edge"));
    m_map_EventMode.insert(Operation_Mode_Type_FallingEdge, tr("Falling edge"));
    m_map_EventMode.insert(Operation_Mode_Type_Both, tr("Rising / Falling edge"));
    m_map_EventMode.insert(Operation_Mode_Type_Edge, tr("Edge"));

    Event_Type valueCur = (Event_Type)value.toUInt();
    if ((Event_Type_Timer == valueCur) || (Event_Type_Timer_Match == valueCur)
            || (Event_Type_UserFunc == valueCur)) {
        m_map_EventMode.remove(Operation_Mode_Type_RisingEdge);
        m_map_EventMode.remove(Operation_Mode_Type_FallingEdge);
        m_map_EventMode.remove(Operation_Mode_Type_Both);
    } else {
        m_map_EventMode.remove(Operation_Mode_Type_Edge);
    }

    ConfigObject* pObj = ConfigTreeObject::getConfigObject(EVENT_DELEGATE_EVENT_MODE);
    if(pObj) {
        Operation_Mode_Type modeCur = (Operation_Mode_Type)pObj->getData().toUInt();
        if(!(m_map_EventMode.contains(modeCur))) {
            pObj->changeData(m_map_EventMode.firstKey(), false);
        }
    }

    ConfigObject* qObj = ConfigTreeObject::getConfigObject(EVENT_DELEGATE_EVENT_NUMBER);
    if(qObj) {
        switch(valueCur) {
        case Event_Type_InterSwitch:
        case Event_Type_Timer:
        case Event_Type_Timer_Match:
        case Event_Type_UserFunc:
            qObj->changeData(1, false);
            break;
        case Event_Type_Remote://need to modify TODO
            qObj->changeData(CfgChannel::instance()->getExistChannelDI().first(), false);
            break;
        case Event_Type_Relay:
            qObj->changeData(CfgChannel::instance()->getExistChannelDO().first(), false);
            break;
        case Event_Type_Alarm_IO:
            qObj->changeData(CfgChannel::instance()->getExistChannel().first(), false);
            break;
        case Event_Type_Alarm_Math:
            qObj->changeData(CfgChannel::instance()->getExistChannelMath().first(), false);
            break;
        case Event_Type_Alarm_Comm:
            qObj->changeData(CfgChannel::instance()->getExistChannelComm().first(), false);
            break;
        case Event_Type_Alarm_All:
        case Event_Type_Status:
            break;
        default:
            break;
        }
    }
}