реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Разбить задачи
uriy
сообщение Nov 3 2015, 05:47
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Имеется хост устройство стороннего производителя. И мой девайс.
Между собой они соединяются через UART.
Хост устройство имеет дисплей, клавиатуру, динамик, микрофон.

Через UART я принимаю сообщения о нажатии клавиш, в ответ могу вывести что-то на дисплей и выполнить другие действия с хостом.
Также через тот-же UART ходит звук по RTP.
Протокол на UART с установкой соединения. У каждого пакета порядковый номер.
На каждый пакет надо давать подтверждение с задержкой не более 300мс, иначе соединение будет разорвано.
Хост кроме подтверждения еще и дает пакет о статусе выполнения команды. Статус выполенния команды может быть выдан через несколько сотен миллисекунд.

Сейчас реализовано взаимодействие но без приема/передачи звука.
UART в моем девайса работает по DMA и на прием и на передачу.
Контроллер STM32 после обнаружения IDLE на UART Rx кидает сообщение в очередь в задачу обработчик.

Работа с хостом реализована в одной задаче.
Она кидает пакеты на хост, ждет ответ проверяет его и выдает подтверждение.

В такой вариант очень плохо ложится добавление RTP. Хочется его вынести отдельно и назначить этой задаче более высокий приоритет. По заголовкам пакетов можно однозначно определить это RTP или другие пакеты.

Может быть кто-то делал что-то подобное.
Как лучше сделать?

1. Оставить одну задачу для работы с хостом
2. Две задачи. Одна обрабатывает UART только на прием, вторая только на передачу.
Плюс тут в том что задача приема будет формировать подтверждения.
3. Сделать отдельную задачу для RTP и отдельную для работы с кнопками дисплеем.
Go to the top of the page
 
+Quote Post
Lagman
сообщение Nov 4 2015, 18:18
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 875
Регистрация: 28-10-05
Пользователь №: 10 245



Цитата(uriy @ Nov 3 2015, 08:47) *
Сейчас реализовано взаимодействие но без приема/передачи звука.
UART в моем девайса работает по DMA и на прием и на передачу.
Контроллер STM32 после обнаружения IDLE на UART Rx кидает сообщение в очередь в задачу обработчик.

Работа с хостом реализована в одной задаче.
Она кидает пакеты на хост, ждет ответ проверяет его и выдает подтверждение.

.....

Как лучше сделать?

1. Оставить одну задачу для работы с хостом
2. Две задачи. Одна обрабатывает UART только на прием, вторая только на передачу.
Плюс тут в том что задача приема будет формировать подтверждения.
3. Сделать отдельную задачу для RTP и отдельную для работы с кнопками дисплеем.


Я бы сделал по второму варианту. Задача приема будет отправлять подтверждение через очередь в задачу передачи, и помещать его (подтверждение) в начало очереди.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Nov 4 2015, 20:55
Сообщение #3


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(uriy @ Nov 3 2015, 07:47) *
В такой вариант очень плохо ложится добавление RTP. Хочется его вынести отдельно и назначить этой задаче более высокий приоритет. По заголовкам пакетов можно однозначно определить это RTP или другие пакеты.


Неплохо было бы сначала расшифровать что такое у вас RTP.
Гугль знает только один RTP который поверх IP - UDP, содержит больше десятка кодеков и кучу вспомогательных протоколов.
Такому RTP и десяти задач мало будет.
Go to the top of the page
 
+Quote Post
uriy
сообщение Nov 5 2015, 05:42
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



RTP - Real-time Transport Protocol
Вы правильно нашли, но не вижу прчин использовать только в IP сетях.
Тут разработчики хост устройства решили его использовать на UART.
Хост устройство поддерживает только PCM, Alaw, ulaw.
Какие же еще вспомогательные протоколы вы нашли? Разве что может быть RTCP, но здесь он не исползуется.
Зачем ему десяток задач?
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 04:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01343 секунд с 7
ELECTRONIX ©2004-2016