Українська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
Сообщения: 3747
Исправлено, проверяйте!

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



21138