Russian Qt Forum
Ноябрь 23, 2024, 01:10 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопрос, про простенький client.  (Прочитано 4453 раз)
Spicos
Гость
« : Октябрь 15, 2010, 13:25 »

Вопрос конечно ламерский.
Ковыряю потихоньку OPC Data Access Automation dll.

Разобраться с DIOPCGroupEvent не могу.
может подскажите что как.

Код:
#include <QApplication>
#include <QtGui>
#include <QAxFactory>
#include "opcdaauto.h"

int main(int argc, char **argv)
{
    QApplication app(argc, argv);
    QWidget widget;
    app.setActiveWindow(&widget);
    QLabel *Label=new QLabel(&widget);
    QString temp;
    int i;

    QVariantList ItemCH;//Список для clienthandle
    QVariantList ItemSH;//Список для serverhandle
    QVariantList ItemQ;//Список для качества тэга
    QVariantList ItemTS;//Список для timestamp тэга
    QVariantList ItemV;//Список для значения тэга

    OPCAutomation::OPCServer *Server=new OPCAutomation::OPCServer;//Новый OPCServer
    OPCAutomation::OPCGroups *Groups=new OPCAutomation::OPCGroups;//Новый список групп
    OPCAutomation::OPCGroup *Group=new OPCAutomation::OPCGroup;//Новый группа
    OPCAutomation::OPCItems *Items=new OPCAutomation::OPCItems;//Новый список тэгов
    OPCAutomation::OPCItem *Item1=new OPCAutomation::OPCItem;//Новый тэг
    OPCAutomation::OPCItem *Item2=new OPCAutomation::OPCItem;//Новый тэг
    OPCAutomation::OPCItem *Item3=new OPCAutomation::OPCItem;//Новый тэг
    OPCAutomation::OPCItem *Item4=new OPCAutomation::OPCItem;//Новый тэг

    //OPCAutomation::DIOPCGroupsEvent *DIEGroups=new OPCAutomation::DIOPCGroupsEvent;
    //OPCAutomation::DIOPCGroupEvent *DIEGroup=new OPCAutomation::DIOPCGroupEvent;
    //OPCAutomation::DIOPCServerEvent *DIEServer=new OPCAutomation::DIOPCServerEvent;

    Server->Connect("KepWare.KepServerEx.v4");

    Groups=Server->OPCGroups();
   
    Group=Groups->Add("group1");

    Items=Group->OPCItems();

    for (i=1; i<5; i++) {
      ItemCH.append(i);
    }

    Item1=Items->AddItem("Channel_0_User_Defined.Ramp.Ramp1",ItemCH[0].toInt());
    Item2=Items->AddItem("Channel_0_User_Defined.Ramp.Ramp2",ItemCH[1].toInt());
    Item3=Items->AddItem("Channel_0_User_Defined.Ramp.Ramp3",ItemCH[2].toInt());
    Item4=Items->AddItem("Channel_0_User_Defined.Ramp.Ramp4",ItemCH[3].toInt());

//    Groups->SetDefaultGroupIsActive(true);

    ItemSH.append(Item1->ServerHandle());//что то не получается получить ServerHandle
    ItemSH.append(Item2->ServerHandle());
    ItemSH.append(Item3->ServerHandle());
    ItemSH.append(Item4->ServerHandle());

    for (i=0; i<ItemSH.count(); i++) {
      qDebug()<<"ServerHandle"<<i<<":"<<ItemSH[i].toInt();
    }

    for (i=0; i<100; i++) {
      qDebug()<<"Item1->Value()"<<":"<<Item1->Value().toString();// не читается зараза.
    }

    temp+=(Server->StartTime().toString()+"\r\n"+Server->ServerName());// это так шняга лишь бы что нибудь засветить на окно.

    Label->setText(temp);
    widget.show();

    //DataChange(1,4,&ItemCH,ItemV,&ItemQ,&ItemTS)
    //QObject::connect(DIEGroup,SIGNAL(),widget, SLOT());

    QObject::connect(&app,SIGNAL(lastWindowClosed ()),Server,SLOT(Disconnect()));

    return app.exec();
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.18 секунд. Запросов: 21.