Получение "Базы текущих значений" (C++Builder)

Общие вопросы по оборудованию и программному обеспечению Компании ДЭП
Антон Швецов
Сообщения: 2
Зарегистрирован: 04 апр 2005, 03:41

Сообщение Антон Швецов » 05 апр 2005, 23:23

Как правильно реализовать сабж?
Мой подход не работает.... :(
//-------------------------------------------------------------
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 -- не возвращает значения!

Тех. поддержка
Сообщения: 465
Зарегистрирован: 18 ноя 2004, 17:45
Откуда: Компания ДЭП
Контактная информация:

Сообщение Тех. поддержка » 06 апр 2005, 15:17

Если создать пользовательскую привязку, то у нее есть событие OnChange и OnConnected используйте их.
С уважением
Компания ДЭП
Москва, Голубинская ул., 10
+7 (495) 995-00-12

Аватара пользователя
Kirill
Сообщения: 38
Зарегистрирован: 13 дек 2004, 17:12

Сообщение Kirill » 07 апр 2005, 09:13

Антон Швецов писал(а):Как правильно реализовать сабж?
Мой подход не работает.... :(
//-------------------------------------------------------------
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
Откуда: Компания ДЭП
Контактная информация:

Сообщение Тех. поддержка » 07 апр 2005, 10:26

И поэтому удобнее всего пользоваться именно пользовательскими привязками.
С уважением

Компания ДЭП

Москва, Голубинская ул., 10

+7 (495) 995-00-12

Аватара пользователя
Kirill
Сообщения: 38
Зарегистрирован: 13 дек 2004, 17:12

Сообщение Kirill » 08 апр 2005, 11:55

Евгений Рублев писал(а):И поэтому удобнее всего пользоваться именно пользовательскими привязками.

почему поэтому? потому что время требуется для получения Value? :?:

Тех. поддержка
Сообщения: 465
Зарегистрирован: 18 ноя 2004, 17:45
Откуда: Компания ДЭП
Контактная информация:

Сообщение Тех. поддержка » 08 апр 2005, 12:11

Потому что работа асинхронная, и ответ от сервера придет через неизвестное время. Необходимо ловить событие OnChange. В наших компонентах это уже реализовано, если есть желание, то, конечно, можно самому все это повторить. Никто не запрещает самим писать код, но если кто-то уже решил эту проблему, зачем писать все с нуля?
С уважением

Компания ДЭП

Москва, Голубинская ул., 10

+7 (495) 995-00-12