1

Temat: OpenWrt a możliwość integracji z Satel ETHM-1 - kilka pytań.

Ostatnio zainteresowałem się możliwością integracji modułu ethernetowego Satela z OpenWrt.
Protokół integracji jest ogólnie dostępny jednakże jak na moje zdolności nie jestem w stanie nic bardzo z tym zrobić, choć bardzo bym chciał smile
Próbowałem nawet z sukcesem preparować ramki i wysyłać je na port ETHM-1 za pomocą echo i netcat oraz otrzymywałem odpowiedź od niej, ale niestety odpowiedź jest w formie binarnej i już nie wiem jak to sparsować w bashu.
Mam więc dwa pytania:
Czy ktoś mógłby się podjąć napisania prostego programu na podstawie udostępnionego protokołu, który by po podaniu komendyjako argumentu preparował ramkę razem z sumą kontrolną, a odpowiedź konwertował na tekstową reprezentację danych hexadecymalnych?
Ewentualnie jak takie odebrane dane parsować w bashu ? Ktoś wie?

2

Odp: OpenWrt a możliwość integracji z Satel ETHM-1 - kilka pytań.

Zobacz polecenie "od" lub hexdump - zamieni ci binarne na np. heksy.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3 (edytowany przez xury 2014-10-30 15:45:31)

Odp: OpenWrt a możliwość integracji z Satel ETHM-1 - kilka pytań.

O dzięki! Cezary. Będę próbował. O wynikach poinformuję na forum.

A i jeszcze jedno. Czy jest możliwość w basu zrobić rotate left  i xor na danych binarnych ?

Dobra pierwsza rzecz jaką chciałem już osiągnięta:

hexdump -v -e ' 1/1 "%02X" '

By wyświetlić dane binarne w postaci hex

4

Odp: OpenWrt a możliwość integracji z Satel ETHM-1 - kilka pytań.

https://gist.github.com/nikki-mccavee/4690672

Google bywa pomocne w takich przypadkach. Ale zadam pytanie: nie prościej program w C do tego napisać?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: OpenWrt a możliwość integracji z Satel ETHM-1 - kilka pytań.

Prościej by było jakby się C znało : ) Wtedy by wystarczyło netcata lekko przerobić do moich potrzeb.

Dzięki jeszcze raz. Powoli składam klocki, i może uda mi się coś wydłubać w bashu. Za C się nie zabieram - chyba już za późno. Umysł już nie ten. sad

6

Odp: OpenWrt a możliwość integracji z Satel ETHM-1 - kilka pytań.

No i mam pierwszy skrypt podający trochę informacji o centrali:

#!/bin/bash
# intver v.1.0 by Xury
# Wypisuje info o centrali alarmowej
# Skladnia: intver <ip> <port>
# np. intver 192.168.2.8 7094

wersja_centrali() {
hex="$(echo -en "\xFE\xFE\x7E\xD8\x60\xFE\x0D" | nc $1 $2 | hexdump -v -e ' 1/1 "%02X" " "')"
echo "teraz zostanie wy¶wietlony tekst hex"
echo $hex
tablica=($hex)
echo  -n "Twoja centrala to: "
case ${tablica[3]} in

    "00") echo "Integra 24" ;;
    "01") echo "Integra 32" ;;
    "02") echo "Integra 64" ;;
    "03") echo "Integra 128" ;;
    "04") echo "Integra 128 WRL Sim300" ;;
    "132") echo "Integra 128 Leon" ;;
    "66") echo "Integra 64 Plus" ;;
    "67") echo "Integra 128 Plus" ;;
    "72") echo "Integra 256 Plus" ;;
esac

echo -n "Wersja centrali: "

for (( i=4; $i <=14; i++ )) ; do
    # echo -n  "${tablica[$i]}"

    string=`echo -n "${tablica[$i]}" | tr -d \\x`

    j=1
    max=$(( ${#string} + 1 ))

        while [ $j -lt $max ]
          do
             hexx='\x'`echo -n $string | cut -c $j-$(( j + 1 ))`
             strhex=$strhex$hexx
             j=$(( j + 2 ))
          done
done
echo -e $strhex
echo -n "Język centrali: "
case ${tablica[15]} in
     "00") echo "Polski" ;;
     "01") echo "Angielski" ;;
     *) echo "Inny" ;;
esac
     
}

wersja_centrali $1 $2

By działał na OpenWrt trzeba zainstalować bash. Na standardowej powłoce ash nie działa.

opkg install bash

7

Odp: OpenWrt a możliwość integracji z Satel ETHM-1 - kilka pytań.

Zaczynam jakieś testy integracji z Satelem Integra 64 i nie jestem pewien czy dobrze do tego podszedłeś. Mi zapytanie o tym centrali zwraca ZERO, mimo, że mam Integre 64. Zgodnie z dokumentacja, tam nie ma rozbicia na Integre 24,32,64,128. Niby na pierwszy rzut oka tak się wydaje, ale chyba jednak dowolna z tych cyfr 0-3 oznacza dowolna z tych central. Dziwne.

Fantom

8

Odp: OpenWrt a możliwość integracji z Satel ETHM-1 - kilka pytań.

Być może. Tak naprawdę nie testowałem tego na innych centralach. Na mojej Integrze 128 wyświetlało 3 więc pomyślałem, że to w ten sposób. Pełno jest niedomówień więc trzeba samemu kombinować.