Odp: button hotplug
A co masz w '/usr/bin/wifionoff'?
Działa tak bo moje obrazy to mają na stałe wbudowane.
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Oprogramowanie / Software → button hotplug
Strony Poprzednia 1 2
Zaloguj się lub zarejestruj by napisać odpowiedź
A co masz w '/usr/bin/wifionoff'?
Działa tak bo moje obrazy to mają na stałe wbudowane.
w wifionoff mam
#!/bin/sh
SW=$(uci -q get wireless.@wifi-device[0].disabled)
[ "$SW" == "1" ] && uci set wireless.@wifi-device[0].disabled=0
[ "$SW" == "1" ] || uci set wireless.@wifi-device[0].disabled=1
wifi
A masz sekcję wifi-device[0]? Uruchomiony z konsoli działa?
tak
Jeżeli działa z konsoli to ze skryptu tez musi. dodaj sobie logger "test" po każdej linii i zobaczysz czy się w ogóle uruchamia.
ech. nie mam siły do siebie. czerwienię się ze wstydu, bo faktycznie działać musiało.
dzięki za pomoc
czy orientujecie się może ile może zająć czasu od pojawienia się zbocza wciśniętego guzika do wywołania tego skryptu ?
w skrypcie sprawdzam stan drugiego pinu przez state=`cat /sys/class/gpio/gpio29/value` i wygląda na to, że gdy robi się ten odczyt to nie zawsze się łapie na stan wysoki tego pinu.
dodając pin 7 widziałem, że na portach jest debouncing i delay wynosił 20ms, więc tyle może ugram, ale jeśli to trwa więcej to w ten sposób tego nie zrobię.
Pinem 7 wywołujesz skrypt tak ?? a w nim sprawdzasz stan pinu 29 tak ??
tak
A jak wygląda ten skrypt ?? wstaw go tu
Po co co dokładność taka? OpenWrt nie jest systemem RT, więc możesz mieć kilkusekundowy nawet przestój jak system będzie super obciążony i zajęty.
Wstaw sobie "sleep 1" przed odczytem i sprawdź czy Ci odczyta
@wabikboy
teraz nie mam pod ręką całego skryptu, ale to idzie mniej więcej tak.
tak sprawdzam stan drugiego pinu od razu na początku skryptu
state=(cat /sys/class/gpio/gpio29/value)
a później jakieś porównanie i dezycje
@cezary
no tutaj akurat walczę z tym encoderem i te impulsy są takie krótkie.
może użycie kmod-rotary-gpio-custom by tutaj pomogło zamiast ręcznego sprawdzania.
Ah, do tego chcesz. To się przejedziesz na tym
,
mówisz, żeby nie iść tą drogą? ![]()
zobaczę, czy jakaś pojemność nie wydłuży trochę tego impulsu, ale jak piszesz, że może być i kilka sekund to będzie lipa.
Jak potrzebujesz precyzyjnych odczytów to tylko oddzielny układ który tylko tym będzie się zajmował gdyż procesor routera ma wiele innych zadań na rdzeniu i właśnie dlatego nie zawsze masz 20ms podejrzewam że musiał byś wyłaczyć większośc funkcji jak nie wszystkie
co więcej zamiast skryptu uruchamianego przyciskiem spróbuj jeszcze wstawić odczyt w pętle a sam skrypt niech działa w tle.
ok, to może faktycznie tak zrobię z zewnętrznym prockiem, bo i tak będę chciał takiego użyć do komunikacji z RF70.
teraz bardziej tak na szybko chciałem to zrobić.
A co kombinujesz jak można wiedzieć ??
chcę sobie zrobić radiobudzik z bezprzewodowym odczytem danych meteo z czujnika.
Aaa, pewnie coś jak tu plus odczyt temperatury
znam ten design.
mniej więcej to, tylko nie stereo.
Teraz się tak zastanawiam po co chcesz pinem 7 uruchamiać skryp i odczytywać pin 29 ??
jeśli chcesz użyć czegoś takiego to ten skrypt powinien działać ciągle i odczytujesz stan obu pinów gdyż zależnie od tego w którą stronę kręcisz to na danym pinie jest inpuls.
Chyba że to coś innego.
w tym encoderze jest tak, że impuls jest na obu pinach. to w którą stronę kręcę zmienia jedynie przesunięcie jednego względem drugiego.
http://digital.ni.com/public.nsf/allkb/ … 75005E18E2
nie chciałem robić pollingu, żeby chodził cały czas, tylko właśnie w przerwaniu.
gdy na 7 pojawi się zbocze, to sprawdzam czy jest 1 czy 0 na 29 i to rozpoznaje kierunek kręcenia.
zobaczę na oscyloskopie jakie to czasy.
No to chyba Ci się tak prosto nie uda.
Z uwagi właśnie na czasy jedyne co mi przychodzi to nie odczytuj pinu lecz stan o nim w pliku:
robisz dwa skrypty gpio7.sh i gpio29.sh i przypisujesz odpowiednio do pinów
1.
#!/bin/sh
stat=`cat gpio29.txt`
if [ "$stat" == "0" ]; then
echo 1 > gpio7.txt
polecenie
echo 0 > gpio7.txt
fi2.
#!/bin/sh
stat=`cat gpio7.txt`
if [ "$stat" == "0" ]; then
echo 1 > gpio29.txt
polecenie
echo 0 > gpio29.txt
fido plików gpio7.txt i gpio29.txt wstaw 0 "zero"
Myślę że w takiej formie odczytu pozwoli Ci na zbadanie stanu jednego z pinów
Strony Poprzednia 1 2
Zaloguj się lub zarejestruj by napisać odpowiedź
eko.one.pl → Oprogramowanie / Software → button hotplug
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc