Written on: 04. 03. 2015 [16:37]
|
Vandrizm
Игорь М
Topic creator
registered since: 31.07.2010
Posts: 55
|
Здравствуйте!
Разбираюсь с разработкой модуля DAQ.
Подскажите примером.
Вот у контроллера создал поле
fldAdd(new TFld("ARR_CONT",_("Array contecnt"),TFld::Object,TFld::NoFlag));
Теперь необходимо записать в поле ARR_CONT содержимое vector<TArrItem> размером в 10 элементов.
class TArrItem {
public:
string daq_sys; // Name of DAQ subsystem.
int lvl; // Level for a log
int64_t trig; // Trigger
TAlmCfgItem(string const &_daq_sys, int _lvl, int64_t _trig);
};
Как правильно это сделать?
|
Written on: 05. 03. 2015 [09:11]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"Vandrizm" wrote:
Разбираюсь с разработкой модуля DAQ.
Подскажите примером.
Вот у контроллера создал поле
fldAdd(new TFld("ARR_CONT",_("Array contecnt"),TFld::Object,TFld::NoFlag));
В OpenSCADA все DAQ модули можно брать за пример. А для атрибутов объектного типа можете в DAQ.MMS посмотреть, который сейчас единственный из модулей прямого источника, использующего объекты для предоставления сложных типов данных.
Вкратце:
TArrayObj *curArr = new TArrayObj();
for(int i=0; i < 10; i++) curArr->arSet(i, i);
vlAt("ARR_CONT").at().set(curArr, 0, true);
Learn, learn and learn better than work, work and work.
|