Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
31.08.2010, 13:16
|
|
Заблокирован
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
|
Re: Обработка массива данных
Сделайте Ваш буфер 1000 байт кольцевым, т.е. записывайте по кругу, при поступлении 51-го пакета он пишется на место 1-го, 52-й на место 2-го и т.д. Тем самым старые пакеты будут автоматически удаляться.
|
|
|
|
31.08.2010, 13:26
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Обработка массива данных
Сообщение от i-mir
|
С точки зрения целостности данных этот алгоритм может терять актуальные пакеты.
|
Это Вы про какой алгоритм? И почему может терять?
|
|
|
|
31.08.2010, 15:12
|
|
Заблокирован
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
|
Re: Обработка массива данных
Для точного времени жизни пакета делаете кольцевой буфер чуть больше, 1050Байт. При поступлении пакета добавляете байт времени = 20. По таймеру каждую секунду пробегаете по буферу и уменьшаете на 1 величину всех 50-ти байтов времени. При достижении каким-либо байтом времени = 0 заменяете соотвествующий ID на несуществующий, типа 0xFF, и данный пакет перестаёт существовать.
|
|
|
|
31.08.2010, 16:19
|
|
Гражданин KAZUS.RU
Регистрация: 17.09.2006
Сообщений: 633
Сказал спасибо: 78
Сказали Спасибо 69 раз(а) в 57 сообщении(ях)
|
Re: Обработка массива данных
Сообщение от Yurkin2007
|
Сделайте Ваш буфер 1000 байт кольцевым, т.е. записывайте по кругу, при поступлении 51-го пакета он пишется на место 1-го, 52-й на место 2-го и т.д. Тем самым старые пакеты будут автоматически удаляться.
|
Нельзя, потому что возможны и некоторое превышение количества пакетов и на оборот их может прийти всего 10 за 20 секунд и что тогда делать?. Я за 20 секунд не смогу вытеснить из массива старые пакеты
|
|
|
|
31.08.2010, 16:25
|
|
Гражданин KAZUS.RU
Регистрация: 17.09.2006
Сообщений: 633
Сказал спасибо: 78
Сказали Спасибо 69 раз(а) в 57 сообщении(ях)
|
Re: Обработка массива данных
Сообщение от kison
|
А что это за данные такие, что за 20 секунд устаревают? Если конечно не коммерческая тайна.
|
Координаты положения объекта в пространстве, и еще сопроводительные характеристики
Цитата:
|
И что делать если пакет с нужным идентификатором в хранилище не найдется? Или найдется, но просроченный?
|
Отсылать запрос на сервер ,на получение новых данных для данного ID. Доступ к просроченным пакетам не допустим.
|
|
|
|
31.08.2010, 16:37
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Обработка массива данных
Сообщение от Zemlyanov
|
Координаты положения объекта в пространстве
|
Ну и еще вопрос, если не секрет - что за объект?
|
|
|
|
31.08.2010, 18:13
|
|
Гражданин KAZUS.RU
Регистрация: 17.09.2006
Сообщений: 633
Сказал спасибо: 78
Сказали Спасибо 69 раз(а) в 57 сообщении(ях)
|
Re: Обработка массива данных
Объект на видео
|
|
|
|
31.08.2010, 18:35
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,018
Сказал спасибо: 348
Сказали Спасибо 1,024 раз(а) в 552 сообщении(ях)
|
Re: Обработка массива данных
Zemlyanov, может как уже советовали реализовать FIFO буфер??? Ведь самая старая информация будет та, которая пришла первой. Просто ограничите длину буфера, и на место самой старой инфы поверх будете писать новую.
|
|
|
|
31.08.2010, 23:41
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Обработка массива данных
Сообщение от Zemlyanov
|
Объект на видео
|
Качество - жесть. Это сырки? Шоколадки? Модели машинок?
|
|
|
|
01.09.2010, 00:03
|
|
Частый гость
Регистрация: 23.07.2008
Сообщений: 16
Сказал спасибо: 5
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Обработка массива данных
Сообщение от Zemlyanov
|
Данные в МК поступают не равномерно, может в секунду прийти 5 пакетов , а может за 5 секунд прийти всего 1.
|
Ну так делайте циклический буфер для посылок и буфер на 20 байт со счетчиками пакетов, одна секунда-байт. Таким образом, вы будете знать сколько пакетов у вас "живых" путем сложения счетчиков. При "переполнении" буфера, естественно, будут стираться старые данные, а значения более 50 пакетов рассматривать не стоит.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Как сделать преобразование данных?
|
Zemlyanov |
Микроконтроллеры, АЦП, память и т.д |
9 |
30.08.2010 16:00 |
Передача 8-битных данных через мобильник
|
begun |
Микроконтроллеры, АЦП, память и т.д |
9 |
12.07.2010 13:36 |
Контроль целостности передаваемых данных
|
ksd034 |
Микроконтроллеры, АЦП, память и т.д |
4 |
08.07.2010 21:46 |
Последовательный вывод данных
|
Mitrar |
Микроконтроллеры, АЦП, память и т.д |
9 |
14.05.2010 11:57 |
AVR USART+прерывания=потеря данных
|
umgah |
Микроконтроллеры, АЦП, память и т.д |
54 |
10.04.2010 16:22 |
Часовой пояс GMT +4, время: 19:15.
|
|