Передача разных типов данных по NRF24L01

Тема в разделе "Проводная и беспроводная связь", создана пользователем Marsik, 7 май 2019.

  1. Marsik

    Marsik Нерд

    Здравствуйте!
    Как передать данные разных типов по NRF24L01?
    Например, передать массив данных типа int и переменную float.
     
  2. SergeiL

    SergeiL Оракул Модератор

    Любая переменная - это N-ое кол-во байт. Берете и передаете. Потом разбираете побайтно.
    Или еще вариант, переводите в строку с разделителями, типа запятая, можно и в json, и передаете. А на другой стороне разбираете.
     
    Marsik нравится это.
  3. b707

    b707 Гуру

    В примерах все есть.
    Например в примере GettingStarted_HandlingData передают long и float
     
  4. b707

    b707 Гуру

    Зачем? - делаете структуру - и ничего разбирать не надо
    еще хуже :)
     
    Marsik нравится это.
  5. SergeiL

    SergeiL Оракул Модератор

    А чем структура отличается от того что я написал? :)
    А для передачи в OpenHAB Приходится так делать. ;)
    И наглядно и OH понятно! ;)
     
  6. SergeiL

    SergeiL Оракул Модератор

    А вот теперь давайте смотреть, что хуже? :)

    Во первых, На разных платформах размер данных и границы выравнивания отличаются!
    Во вторых, Компиляторы разные, поэтому см. первое!
    В третьих - насколько корректно писатель запихнет данные в структуру?

    А текстовые данные легко читаются и дебажутся.
    Что проще и легче?
     
  7. DIYMan

    DIYMan Guest

    Для этого есть директивы препроцессора, например, #pragma pack.
    Каждый современный компилятор С++ поддерживает указание границ выравнивания директивами препроцессора, насколько я знаю.
    CRC - и будет проверка на корректность. Контрольные суммы используются в куче мест, даже сейчас - отобразив это сообщение на экране вашего компьютера - он (компьютер) много раз проверил чексумму IP header, например.

    Заблуждение, основанное на однобокости личного опыта. Легко дебажатся и читаются как раз структурированные данные, а не абстрактные "текстовые". Если текстовые данные будут структурированными, например, XML - да, легко читаются. Отлаживаются - не всегда легко, у каждой медали есть, как минимум, две стороны.
     
    parovoZZ и DetSimen нравится это.
  8. SergeiL

    SergeiL Оракул Модератор

    Вам и мне это известно. А ТС? Не уверен.
    Вопрос что проще и понятней для ТС, для самостоятельного решения вопроса? :)
     
  9. Marsik

    Marsik Нерд

    Вопрос решился отправкой структуры данных. Всё оказалось просто. Спасибо за наводку!
     
    b707 нравится это.
  10. parovoZZ

    parovoZZ Гуру

    данные разных типов наливаешь по разные ведра. Обязательно красной краской подпиши на ведре - для чего и что внутри. Если перепутаешь - работать не будет!!! Далее, вставляешь воронку в трансивер и поглубже - чтоб ничего мимо не пролилось. И далее из ведер выливаешь. По ту сторону луны также надо поставить воронку, но у же в ведро!!! Смотри не перепутай!!! А то луна спрячется и больше не покажется!!!
     
  11. parovoZZ

    parovoZZ Гуру

    ога, ага))) Выравнивание структуры сделано? А то будет потом - на аюдурине работало, а на малине крякозябры(((
     
  12. DetSimen

    DetSimen Guest

    Потом будет еще веселье, когда в структуре строки захотят появицца. Тут и начнется хлебание сериализации структур полным ртом.