Получение контрольной суммы из кадра

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: Пред. 1 2
Ответить
RSS
Получение контрольной суммы из кадра
 
Ну все, теперь совсем ерунда осталась - разобраться с лишними байтами :) Дело в том, что вы включили пакетный режим с escape-символами (AP=2). Для чего он нужен подробно описано в п.3.4 документации на SerialStar. Это очень важный и полезный режим и там разъяснено почему именно. Но, если в настоящий момент он Вам не нужен, то можно перевести модуль в простой пакетный режим. Для этого отдайте команду AP=1. Тогда "лишние" байты исчезнут. Поскольку Вы пишете на C++, то рекомендуем Вам воспользоваться нашей бесплатной библиотекой, предназначенной для работы с модулями MBee. Библиотека хорошо документирована и находится здесь http://sysmc.ru/solutions/arduino/description/index.php. Там имеются все базовые классы для работы с SerialStar и Вы сэкономите кучу времени для того, чтобы сосредоточиться на своей целевой задаче.
 
Спасибо большое за ответ, с этим разобрался :) Видимо, не сохранил изменения после ATAP команд.

На самом деле хотелось разобраться более подробно и самому написать всё с нуля, для тренировки, так сказать. Спасибо за ответы и действительно хорошую документацию -- все эти ответы там есть, но получается их найти только после Ваших ответов! :)

Но есть еще вопрос: не получается отправить пакет длиной более 48 байт (уже вместе с информацией и системными байтами). Есть ли какие-нибудь ограничения на размер пакета? Размер буфера из документации составляет 400 байт, скорость работы COM-порта и модемов установлена как 115200, что должно хватать. Эфирная скорость составляет 38400, что также больше пакета.. При отправке таких пакетов поболее не моргает диод отправки на передатчике.
В какую сторону смотреть?
 
Здравствуйте! Максимальная длина полезной нагрузки эфирного пакета в проекте SerialStar равна 40 байт. Использовать все эти байты возможно только при работе в прозрачном режиме UART. В случае пакетных режимов, необходимо понимать, что 40 байт разделяются между служебными полями и полем данных. Единственное исключение - это пакет 0x0F (API-фрейм для передачи данных на UART удаленного модема без возможности управления режимом передачи/подтверждения ). В этом пакете можно также передавать все 40 байт. Для прочих типов пакетов, связанных с передачей данных на UART на принимающем модуле (0x01 и 0x10), длина поля данных не может превышать 39 байт. Это происходит потому, что один байт отводится под байт управляющих опций (см. стр. 20).
Страницы: Пред. 1 2
Ответить
Читают тему (гостей: 1)
Форма ответов
 
Текст сообщения*
Отправить Отменить