Как правильно реализовать сабж?
Мой подход не работает.... :(
//-------------------------------------------------------------
TdepUserItem * ui;
Variant vl;
OPCConfig->Aliases["WD"]->Connect();
ui = new TdepUserItem(OPCConfig->Aliases["WD"]);
ui->OPCName = "0:D:1";
if(ui->Connected)
{
vl = ui->Value;
}
//-------------------------------------------------------------
т.е. ui->Value -- не возвращает значения!
Получение "Базы текущих значений" (C++Builder)
-
- Сообщения: 465
- Зарегистрирован: 18 ноя 2004, 17:45
- Откуда: Компания ДЭП
- Контактная информация:
Антон Швецов писал(а):Как правильно реализовать сабж?
Мой подход не работает....
//-------------------------------------------------------------
TdepUserItem * ui;
Variant vl;
OPCConfig->Aliases["WD"]->Connect();
ui = new TdepUserItem(OPCConfig->Aliases["WD"]);
ui->OPCName = "0:D:1";
if(ui->Connected)
{
vl = ui->Value;
}
//-------------------------------------------------------------
т.е. ui->Value -- не возвращает значения!
у меня тоже такое было (был уверен что после имзенения OPCName его Value должно обновиться сразу же), после момента коннекта Item'a до получения его Value проходит какое-то время...
-
- Сообщения: 465
- Зарегистрирован: 18 ноя 2004, 17:45
- Откуда: Компания ДЭП
- Контактная информация:
-
- Сообщения: 465
- Зарегистрирован: 18 ноя 2004, 17:45
- Откуда: Компания ДЭП
- Контактная информация:
Потому что работа асинхронная, и ответ от сервера придет через неизвестное время. Необходимо ловить событие OnChange. В наших компонентах это уже реализовано, если есть желание, то, конечно, можно самому все это повторить. Никто не запрещает самим писать код, но если кто-то уже решил эту проблему, зачем писать все с нуля?
С уважением
Компания ДЭП
Москва, Голубинская ул., 10
+7 (495) 995-00-12
Компания ДЭП
Москва, Голубинская ул., 10
+7 (495) 995-00-12