22.05.2014, 21:30 | #71 |
Junior Member
Регистрация: 19.05.2014
Сообщений: 11
Вес репутации: 0 |
Re: CyberWrt модуль "Робот"
Смысл понял. Буду пробовать. Спасибо!
|
22.05.2014, 21:36 | #72 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821 |
Re: CyberWrt модуль "Робот"
Вот скопировал готовый пример из модуля "FTDI драйвер"
PHP код:
|
22.05.2014, 22:17 | #73 |
Junior Member
Регистрация: 19.05.2014
Сообщений: 11
Вес репутации: 0 |
Re: CyberWrt модуль "Робот"
Вот так - никакого вывода. Даже 123 не отправляет
#!/bin/sh if echo "$QUERY_STRING" | egrep -q "tx_com=" ; then line=`echo $QUERY_STRING|sed 's/&/ /g'` for pair in $line do name=`echo $pair|sed 's/=/ /g' | awk '{print $1}'` type=`echo $pair|sed 's/=/ /g' | awk '{print $2}' | sed -e 's/%\(\)/\\\x/g'|sed 's/+/ /g'` eval ${name}=\"${type}\" done echo -e $name > /dev/ttyATH0 echo -e ${name} > /dev/ttyATH0 echo -e "$type" > /dev/ttyATH0 echo -e "123" > /dev/ttyATH0 |
22.05.2014, 22:38 | #74 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821 |
Re: CyberWrt модуль "Робот"
А где потеряли fi ?
|
22.05.2014, 23:17 | #75 |
Junior Member
Регистрация: 19.05.2014
Сообщений: 11
Вес репутации: 0 |
Re: CyberWrt модуль "Робот"
Получилось вот так - отрезает "tx_com=". Ура
#!/bin/sh line=`echo $QUERY_STRING|sed 's/tx_com=/ /g'` echo $line > /dev/ttyATH0 Остальное оказалось лишним. Но теперь второй этап изысканий - передача не кодов символов, а числовых значений. Снова рассчитываю на вашу помощь Admin. |
23.05.2014, 13:23 | #76 |
Junior Member
Регистрация: 19.05.2014
Сообщений: 11
Вес репутации: 0 |
Re: CyberWrt модуль "Робот"
Научите пожалуйста как правильно прописать следующее условие:
если $line=W тогда А=128 если нет - идем дальше если $line=S тогда А=130 если нет - идем дальше echo $A > /dev/ttyATH0 W, S -символы(буквы) в строке переменной $line 128, 130 - числа (в HEX соответственно = 80 и 82) |
23.05.2014, 13:49 | #77 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821 |
Re: CyberWrt модуль "Робот"
1) if <команда> then <команда> fi
Пример условия if ... then: #!/bin/sh if [ $1 -eq 10 ]; then echo var=10 fi Результат работы,при переданном параметре равном 10: >--------------------------------------< var=10 >--------------------------------------< 2) if <команда> then <команда> else <команда> fi Пример if ... then ... else: #!/bin/sh if [ $1 -eq 10 ]; then echo var=10 else echo var!=10 fi Результат работы,при переданном параметре равном 10: >--------------------------------------< var=10 >--------------------------------------< Результат работы,при переданном параметре равном 7: >--------------------------------------< var!=10 >--------------------------------------< 3) if <команда> then <команда> elif <команда> else <команда> fi Пример if ... then ... elif ... else: #!/bin/sh if [ $1 -eq 10 ]; then echo var=10 elif [ $1 -eq 9 ]; then echo var=9 else echo var!=10 and var!=9 fi Результат работы,при переданном параметре равном 10: >--------------------------------------< var=10 >--------------------------------------< Результат работы,при переданном параметре равном 9: >--------------------------------------< var=9 >--------------------------------------< Результат работы,при переданном параметре равном 8: >--------------------------------------< var!=10 and var!=9 >--------------------------------------< 4) case <строка> in <шаблон>) <команды> ;; *) <команды> ;; esac Case-конструкция позволяет выбирать один из нескольких альтернативных вариантов. #!/bin/sh case $1 in 1) echo arg is 1 ;; 2) echo arg is 2 ;; *) echo arg is other ;; esac Результат работы,при переданном параметре равном 1: >--------------------------------------< arg is 1 >--------------------------------------< Результат работы,при переданном параметре равном 2: >--------------------------------------< arg is 2 >--------------------------------------< Результат работы,при переданном параметре равном 10: >--------------------------------------< arg is other >--------------------------------------< Сравнение целых чисел: -gt больше чем -lt меньше чем -ge больше чем либо равно -le меньше чем либо равно -eq равно -ne не равно Сравнение строк: -z проверка на наличие пустой строки -n проверка на наличие строки-значения = равенство != неравенство str проверка на наличие строки,состоящей из нулей Логические операции: -a И -o ИЛИ ! НЕ Проверка файлов: -f установка факта существования файла и его регулярности -s проверка,не является-ли файл пустым -r проверка возможности считывания файла -w проверка возможности записи файла -x проверка исполняемости файла -d проверка,является-ли файл каталогом -h проверка,является-ли файл ссылкой -c проверка,является-ли файл байт-ориентированным устройством -d проверка,является-ли файл блок-ориентированным устройством |
23.05.2014, 13:59 | #78 |
Junior Member
Регистрация: 19.05.2014
Сообщений: 11
Вес репутации: 0 |
Re: CyberWrt модуль "Робот"
Огромное спасибо!
Жаль сейчас на железе не проверить. Вчера аналогичные примеры пробовал на практике, но там синтаксис был другим. |
24.05.2014, 15:19 | #79 |
Junior Member
Регистрация: 19.05.2014
Сообщений: 11
Вес репутации: 0 |
Re: CyberWrt модуль "Робот"
Admin, еще раз благодарю за помощь. Вот, что мне в итоге нужно было:
#!/bin/sh if [ $QUERY_STRING = tx_com=W ]; then echo -e "\x80\x82\x87" > /dev/ttyATH0 fi if [ $QUERY_STRING = tx_com=x ]; then echo -e "\x83" > /dev/ttyATH0 fi Может еще кому пригодится. |
16.07.2014, 21:26 | #80 |
Junior Member
Регистрация: 28.02.2013
Сообщений: 29
Вес репутации: 0 |
Re: CyberWrt модуль "Робот"
Робот зависает при питании от одного источника моторов и логики, зависает роутер при нажатии на кнопки движения. Подскажите в чем дело. Питаю 5в, банки от аккум. шуруповерта. Если питать моторы и логику от разных источников, то все ок. Тока не хватает может быть??
Последний раз редактировалось YUR; 16.07.2014 в 21:28. |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|