Подходит обработчик события изменения данных, но нет события для определенного кадра / завершенного события.
Вместо этого необходим код обработки событийпроявлять творческий подход и справляться с ситуацией, когда вы получаете больше событий, чем вы хотите.Вы действительно интересуетесь только тем событием, которое (также) изменяет последний пиксель изображения (поскольку кадр заполняется последовательно), но вы получаете события, когда изменяются части изображения.
Таким образом, вам необходимо «отфильтровать» эти события - настолько быстро и максимально экономно, насколько это возможно.
Самый простой способ - собрать значение последнего пикселя для каждого события и сравнить его с сохраненным значением.Если значение изменилось, то этот пиксель был изменен, указывая, что кадр «завершен», и вы хотите использовать событие.В противном случае просто вернитесь без дальнейших действий.
Существует очень малая вероятность (- для отсканированных изображений -), что "новый" кадр имеет численно такое же значение , что и предыдущий кадр, поэтомув большинстве случаев это все, что вам нужно сделать.
Если вам этого недостаточно, вы можете посмотреть на более длительные - но также и более загруженные циклы ЦП - проверки, как при каждом вычислении логической карты изменений между "сейчас" и "буферизованным" и отслеживанием"последние изменения.Затем, если есть «перепрыгивание» к более раннему индексу, вы знаете, что ваше «буферизованное» последнее изображение действительно имеет полный кадр.(Обратите внимание, что вы всегда будете видеть обновление данных один раз в конце кадра. Следовательно, это будет работать.)
В этом примере есть сценарий этого типа ответ здесь .Если это не работает для вас, пожалуйста, прокомментируйте или перефразируйте свой вопрос для получения более подробной информации о том, где вы столкнулись с проблемами.