Здравствуйте.
Я в С++ ни бум-бум, только немного в С# могу.
Но мне потребовалась линия задержки данных, стал писать, весь мозг сломал, ничего не работает. Такое ощущение, что я не могу уловить даже порядок исполнения команд в этом коде.
Итак, что требуется: с датчика идёт поток данных, т.е. по часам с определённым интервалом времени приходит некоторое значение.
У меня есть определённая сигнатура события, я должен прогонять эти данные через обработку, получать среднее скользящее, но не просто среднее скользящее, а условно говоря, сразу три средних скользящих, для трёх соседних последовательностей значений, ну вы поняли, которые расположены на шкале времени рядом. Например в первом отрезке 1-20 отсчёты, во втором 21-40, в третьем - 21-60.
Опытным путём было установлено какое там среднее скользящее, и когда для всех трёх групп отсчётов средние значения попадают в заданный диапазон, мы считаем, что событие распознано по сигнатуре, и влечёт там за собой всё что надо дальше.
Так вот, чтобы это реализовать, надо записывать в массив значения последовательно, а считывать с некоторым отставанием.
Мы задаём на входе в ноду размер этой задержки(nValue в моём коде), тип integer, принимаем импульс, по которому происходит запись и выдача нужного значения, заводим в ноду тип int, и выводим тоже его.
Я резонно рассудил, что размер массива должен быть равен nValue+1, и он должен быть динамическим.
Написал код, а он не работает, смотрю на него и не понимаю.
Даже i не считается, останавливается на единице.
Прошу, подскажите заради тёмных богов, как заставить этот проклятый код работать, или ткните в документацию, что я пропустил…
Только тут квадратные скобки удаляет сайт, не могу разместить код.
Выяснил, что счётчик считает через 1, если импульс upd подавать с задержкой относительно того, как обновляются данные на входе…
Если значение на входе меняется одновременно с импульсом, то счётчик считает как надо.
задержка данных.txt (681 Bytes)