Доброе , можно ли туда добавить вычитывание по ID значения пути ОПЦ, когда его задаю делаю ID =20 Name = 0:Analog:100
Теперь обратное , я знаю ид в группе мне надо знать что за сигнал
так же пример работы с архивами такой же, былобы просто супер.
Добаление функционала в пример depOpcNativeClient
В описанном вами классе, фактически вызов функции TopcGroup.AddItems (Name,id)
Так далее когда присходит постановка на мониторинг мы задаём OPC путь (0:Analog:1 к примеру) а в другой ID++ котороепостоянно прибьавляется , таким образом колгда возникает в форме событие OnChange нам передаётся тока параметр с ID ...
мен теперь надо знать
как удалить из группы по ID
как узнать какой сигнал скрыт за этим ID в группе
Я уж не знаю куда понятнее написать
Так далее когда присходит постановка на мониторинг мы задаём OPC путь (0:Analog:1 к примеру) а в другой ID++ котороепостоянно прибьавляется , таким образом колгда возникает в форме событие OnChange нам передаётся тока параметр с ID ...
мен теперь надо знать
как удалить из группы по ID
как узнать какой сигнал скрыт за этим ID в группе
Я уж не знаю куда понятнее написать
Faster писал(а):как удалить из группы по ID
Используйте функцию IOPCItemMgt::RemoveItems (описание можно найти в OPC Data Access Custom Interface Specification Version 3.0), только братите внимание на то что удаление элементов из группы происходит не по ID, который задал клиент, а по ID, который возратил OPC сервер при вызове IOPCItemMgt::AddItem, в возвращаемом параметре OPCITEMRESULT ** ppAddResults.
Faster писал(а):как узнать какой сигнал скрыт за этим ID в группе
OPC сервер данную информацию не возвращает, клиент должен сам помнить какой сигнал какому ID соответствует. Для этого проще всего использовать словарь или хэш для быстрого поиска, если сигналов много.
С уважением Климов Александр
Компания ДЭП
г. Москва
(495) 995-00-12 доб. 150
Компания ДЭП
г. Москва
(495) 995-00-12 доб. 150
Faster писал(а):вообще пример бы ...
а насчёт возврата, неужели нет метода получить обратно инфу сигнал:ID ? это же бред ?
нет
Faster писал(а):и ещё вопрос если в моём приложении возникает Crash и оно падает не закрывая классы , так сказать экстренно , OPC см высвобождает память из под групп и прочего ?
да, должен освобождать
С уважением Климов Александр
Компания ДЭП
г. Москва
(495) 995-00-12 доб. 150
Компания ДЭП
г. Москва
(495) 995-00-12 доб. 150
Используйте функцию IOPCItemMgt::RemoveItems (описание можно найти в OPC Data Access Custom Interface Specification Version 3.0), только братите внимание на то что удаление элементов из группы происходит не по ID, который задал клиент, а по ID, который возратил OPC сервер при вызове IOPCItemMgt::AddItem, в возвращаемом параметре OPCITEMRESULT ** ppAddResults.
А я сохраняю абор соответствия с своими ID что я давал в OPC сервер , и когда происходит изменение , он какраз выдаёт мои ID
сейчас попробую подругому ...
ещё вопрос , если я создам вторую группу сигналов, то ID должны быть уникальны в пределах группы или уникальность в приделах всего OPC