![]() |
|
|
|
|
#1 |
|
Junior Member
Регистрация: 28.04.2013
Сообщений: 2
Вес репутации: 0 ![]() |
Сварганил макет интернет-радиоприемника. Коробочка по UART периодически посылает информацию по UART наружу с информацией о станции и композиции:
Код:
while true
do
name=$(echo "currentsong" | nc localhost 6600 | grep -e "^Name: ")
#echo $name
echo $name > /dev/tts/0
title=$(echo "currentsong" | nc localhost 6600 | grep -e "^Title: ")
if [ -z "$title" ]
then
title="Title: NULL"
fi
#echo $title
echo $title > /dev/tts/0
sleep 1
done
Есть неприятный затык - например по прерыванию таймера опрашиваю клаву и хочу изменить громкость, номер станции и т.д. Периодический прием данных мешает, что сказывается на реакции на нажатие кнопок. Задумка - переделать программу внешнего устройства, чтоб оно само запрашивало по UART необходимые данные, как-то: Name? -> коробочка отвечает Name: Бла-бла-бла Ткните, в какую сторону рыть UART ругается на неправильные команды чувствую, что нужен кой-нить демон для обработки юзеских команд, которые наверно должны идти в качестве параметров... |
|
|
|
|
|
#2 |
|
Junior Member
Регистрация: 28.04.2013
Сообщений: 2
Вес репутации: 0 ![]() |
Решено
Код:
#! /bin/sh
while true
do
input=""
until [ -n "$input" ]
do
input=$(head -n 1 < /dev/tts/0)
done
echo $input #здесь выводится НЕ пустая строка, поступившая по UART
done
|
|
|
|
![]() |
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|
|