УкраїнськаEnglishmRussian
Вхід/Новий
У темі немає нових постів

[BugFixed] daq_Siemens regVal - не все db читаются


Автор Повідомлення
Повідомлення створено: 24. 10. 2011 [11:19]
punk
Василий Петров
Автор теми
Зареєстрован(а) с: 09.05.2011
Повідомлення: 57
После добавления блока в список опрашиваемых (и перезапуска скады), перестал опрашиваться другой блок. Поиск привел к тому, что не регистрируются блоки с меньшими адресами, чем уже зарегистрированные. Кажется, что проблема тут: если срабатывает _первое_условие_, то может не сработать _второе_. По крайней мере, если убрать целиком строчку с break, то опрашивается все.


void TMdContr::regVal( SValData ival, IO::Type itp, bool wr )
{
........
for(i_b = 0; i_b < acqBlks.size(); i_b++)
if(acqBlks[i_b].db > ival.db) break; // _первое_условие_
.........
if(i_b >= acqBlks.size()) //_второе_условие_
acqBlks.insert(acqBlks.begin()+i_b,SDataRec(ival.db,ival.off,iv_sz));


Если нужны доп. данные/тестовая конфигурация - могу сделать.
Повідомлення створено: 24. 10. 2011 [13:06]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
Исправлено, проверяйте!

Learn, learn and learn better than work, work and work.



1602