Карма: 1
Рейтинг сообщений: 7
Зарегистрирован: Чт май 14, 2015 15:11:39 Сообщений: 424 Откуда: Саратов
Рейтинг сообщения:0
Здравствуйте. Организую прием данных с устройства. Устройство отправляет данные, упакованные в виде: 0xff - заголовок 0x00 - идентификатор устройства 0x06 - длина сообщения 0x00 - дата0 0x00 - дата1 0x00 - дата2 0x00 - дата3 0x00 - дата4 0x?? - контрольная сумма
Принимаю на компьютер под windows. Данные приходят с частотой 100 Гц. Сейчас сделано так: 1. Циклический буфер наполняется данными с UART 2. Раз в 5мс если в буфере есть новые данные, они отправляются на расшифровку. 3. Там находится по очереди ff, 00, и т.д. 4. Проверяется crc 5. Если неуспешно, то машина сбрасывается до пункта 3
результат: 80% времени сумма не совпадает, потому что сообщения накладываются друг на друга. Как это побороть?
А как насчет второго условия? Тогда гребите почаще, или передавайте пореже
Цитата:
Данные приходят с частотой 100 Гц.
10мс
Цитата:
2. Раз в 5мс если в буфере есть новые данные, они отправляются на расшифровку.
Это у вас таймер тикает 5мс, винда ни разу не система реального времени, почитайте какие лаги могут быть. Да и хоть якобы в два раза быстрее при асинхронном опросе - это на грани фола, в итоге имеете что имеете - результат закономерен
_________________ Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Карма: 1
Рейтинг сообщений: 7
Зарегистрирован: Чт май 14, 2015 15:11:39 Сообщений: 424 Откуда: Саратов
Рейтинг сообщения:0
Сейчас мне подсказали вот такую схему расшифровки данных. Смысл в том, что есть заголовок 0xFF, который может встретится среди пакета как данные. Отсюда и отказы моей машины состояний. Смысл её в том, что находится пакет не побайтно, а целиком. При этом данные, не прошедшие проверку, не стираются. Может кто что сказать за эту схему? Спойлер
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Буфер заведомо побольше для начала, чтобы убедиться что индексы головы и хвоста нормально с приёмом обработкой синхронизируются. Перед добавлением данных в буффер проверять не догнала-ли голова хвост. Иметь ввиду, что буффер после первого оборота заполнен уже обработанными данными - и не высовываться при разборе ненароком за пределы голова-хвост. Может эти 80% и являются франкенштейнами, собранными из кусков разных фреймов.
_________________ Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR!
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 46
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения