189 похожих чатов

Господа. Я тут озадачился, как мне лучше организовать дуплексную связь

между двумя nrf24. Напоминаю для тех, кто не в теме: я хоче сделать некое подобие раций. Вариантов я вижу два:

1) Одно из устройств является ведущим, а второе ведомым. Ведущее устройство отправляет пакеты по 32 байта, ведомое отвечает на них подтверждением, прикрепляя к нему свои 32 байта данных (есть такой режим у nrf24, когда пакет подтверждения может содержать свои данные).

2) Оба устройства равноправны. Эфир делится на окна, каждое из устройств осуществляет передачу только в своё временное окно, в остальное время слушает эфир.

Первый вариант осуществляется вроде как чуть проще, не нужно организовывать временные окна, но линия связи в целом будет хуже работать, так как ведомое устройство не сможет передать свой пакет данных, если потеряется пакет от ведущего. Второй способ лишён этого недостатка, так как оба устройства будут отправлять данные в эфир независимо.

Может есть ещё какие-то варианты? Никогда ничего подобного не делал.

3 ответов

11 просмотров

Не знаю, поожет или нет, посмотри nstreme2

насколько помню nrf24 не позволяет контролировать эфир напрямую. это про вариант 2. я так понимаю хотите передавать речь раз речь про рации. если да то какие характеристики потока? сколько займет передача 1 секунды речи если передавать по 32 бита в зашумленном окружении?

Заранее извиняюсь за нескромный вопрос, а почему решили именно nRF24 использовать для раций?

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
3
Карта сайта