Na szybko zrobiłem kolejne podejście. Próbowałem kilku konfiguracji, dwie najciekawsze poniżej.
#!/bin/sh
# plik do obsługi RelayBoard
# usbrelay.sh polecenie [numer_portu]
# polecenie, pierwszy argument:
# off - wylacza przekaznik
# usbrelay.sh off 0
# on - wlacza przekaznik
# usbrelay.sh on 0
# status - podaje status wszystkich przekaznikĂłw w postaci numer_przekaznika:on lub numer_portu:off, kazdy w osobnej linii
# usbrelay.sh status
# 1:on
# 2:on
# 3:off
# 4:off
# 5:off
# 6:off
# 7:off
# 8:off
PORT="/dev/ttyUSB1"
# numer_portu, drugi argument
PK1="/bin/RelayBoard $PORT get 1"
PK2="/bin/RelayBoard $PORT get 2"
PK3="/bin/RelayBoard $PORT get 3"
PK4="/bin/RelayBoard $PORT get 4"
PK5="/bin/RelayBoard $PORT get 5"
PK6="/bin/RelayBoard $PORT get 6"
PK7="/bin/RelayBoard $PORT get 7"
PK8="/bin/RelayBoard $PORT get 8"
case "$1" in
off)
RelayBoard $PORT off $2
;;
on)
RelayBoard $PORT on $2
;;
status)
echo -n "1:"
echo $($PK1)
echo -n "2:"
echo $($PK2)
echo -n "3:"
echo $($PK3)
echo -n "4:"
echo $($PK4)
echo -n "5:"
echo $($PK5)
echo -n "6:"
echo $($PK6)
echo -n "7:"
echo $($PK7)
echo -n "8:"
echo $($PK8)
;;
esac
PORT="/dev/ttyUSB2"
# numer_portu, drugi argument
PK9="/bin/RelayBoard $PORT get 1"
PK10="/bin/RelayBoard $PORT get 2"
PK11="/bin/RelayBoard $PORT get 3"
PK12="/bin/RelayBoard $PORT get 4"
PK13="/bin/RelayBoard $PORT get 5"
PK14="/bin/RelayBoard $PORT get 6"
PK15="/bin/RelayBoard $PORT get 7"
PK16="/bin/RelayBoard $PORT get 8"
case "$1" in
off)
RelayBoard $PORT off $2
;;
on)
RelayBoard $PORT on $2
;;
status)
echo -n "9:"
echo $($PK9)
echo -n "10:"
echo $($PK10)
echo -n "11:"
echo $($PK11)
echo -n "12:"
echo $($PK12)
echo -n "13:"
echo $($PK13)
echo -n "14:"
echo $($PK14)
echo -n "15:"
echo $($PK15)
echo -n "16:"
echo $($PK16)
;;
esac
exit 0
oraz
#!/bin/sh
# plik do obsługi RelayBoard
# usbrelay.sh polecenie [numer_portu]
# polecenie, pierwszy argument:
# off - wylacza przekaznik
# usbrelay.sh off 0
# on - wlacza przekaznik
# usbrelay.sh on 0
# status - podaje status wszystkich przekaznikĂłw w postaci numer_przekaznika:on lub numer_portu:off, kazdy w osobnej linii
# usbrelay.sh status
# 1:on
# 2:on
# 3:off
# 4:off
# 5:off
# 6:off
# 7:off
# 8:off
PORT="/dev/ttyUSB1"
# numer_portu, drugi argument
PK1="/bin/RelayBoard $PORT get 1"
PK2="/bin/RelayBoard $PORT get 2"
PK3="/bin/RelayBoard $PORT get 3"
PK4="/bin/RelayBoard $PORT get 4"
PK5="/bin/RelayBoard $PORT get 5"
PK6="/bin/RelayBoard $PORT get 6"
PK7="/bin/RelayBoard $PORT get 7"
PK8="/bin/RelayBoard $PORT get 8"
case "$1" in
off)
RelayBoard $PORT off $2
;;
on)
RelayBoard $PORT on $2
;;
status)
echo -n "1:"
echo $($PK1)
echo -n "2:"
echo $($PK2)
echo -n "3:"
echo $($PK3)
echo -n "4:"
echo $($PK4)
echo -n "5:"
echo $($PK5)
echo -n "6:"
echo $($PK6)
echo -n "7:"
echo $($PK7)
echo -n "8:"
echo $($PK8)
;;
esac
PORT="/dev/ttyUSB2"
# numer_portu, drugi argument
PK1="/bin/RelayBoard $PORT get 1"
PK2="/bin/RelayBoard $PORT get 2"
PK3="/bin/RelayBoard $PORT get 3"
PK4="/bin/RelayBoard $PORT get 4"
PK5="/bin/RelayBoard $PORT get 5"
PK6="/bin/RelayBoard $PORT get 6"
PK7="/bin/RelayBoard $PORT get 7"
PK8="/bin/RelayBoard $PORT get 8"
case "$1" in
off)
RelayBoard $PORT off $2
;;
on)
RelayBoard $PORT on $2
;;
status)
echo -n "9:"
echo $($PK1)
echo -n "10:"
echo $($PK2)
echo -n "11:"
echo $($PK3)
echo -n "12:"
echo $($PK4)
echo -n "13:"
echo $($PK5)
echo -n "14:"
echo $($PK6)
echo -n "15:"
echo $($PK7)
echo -n "16:"
echo $($PK8)
;;
esac
exit 0
Jednak w obydwu przypadkach pomimo że widzę przekaźniki od 1 do 16 to i tak klikając na 1 włącza się 1 i 9, na 2 włącza się 2 i 10 itd. Natomiast klikając na przekaźniki od 9 do 16 żaden z przekaźników nie włącza się. Na płytce przekaźników mignie czerwona dioda led (jakby informująca o sygnale) lecz właściwa dioda przekaźnika nie zapala się i przekaźnik nie włącza się.
Z konsoli status wygląda ok.
root@Gargoyle:~# /usr/lib/gargoyle/usbrelay.sh status
1:off
2:off
3:off
4:off
5:off
6:off
7:off
8:off
9:off
10:off
11:off
12:off
13:off
14:off
15:off
16:off
Teraz co ustaliłem dla PORT="/dev/ttyUSB2"
PK1="/bin/RelayBoard $PORT get 1" musi być od get 1" do get 8"
oraz
echo -n "9:" musi być od -n "9:" do -n "16:"
Natomiast czy będzie PK1 do PK8 czy PK9 do PK16 wygląda że nie ma znaczenia.
Coraz bardziej się zastanawiam czy jest to wykonalne, czy pozwoli na to plik ("sterownik") /bin/RelayBoard ?
TP-Link TL-WDR4300 Mod, CPU 700MHz, Flash 16 MB, Gargoyle 1.5.11.4, extroot + dysk zewnętrzny Samsung (S2), kamerka MS LifeCam HD-5000
TP-Link TL-WR1043ND Mod, RAM 64 MB, chłodzenie pasywne, Gargoyle 1.5.10.14, extroot, kamerka Logitech HD Webcam C270