Вопрос конечно ламерский.
Ковыряю потихоньку 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();
}