Temat: Hex <> string w locie
Dzień Dobry.
Potrzebuję napisać skrypt w bash pod OpenWRT, który będzie w locie tłumaczył string ASCII wysłany przez telnet z mojego laptopa na ciąg hex, który otrzyma urządzenie IoT w mojej sieci i zwróci odpowiedź w odwrotny sposób tymi samymi kanałami.
Geneza jest taka, że korzystam z programu 3-ciego w OS Windows do wysyłania znaków hex do IoT, bo telnetem nie wyślę znaków hex, poza tym chcę się czegoś nowego nauczyć i uprosić swoje czynności.
Wobec powyższego, czy ktoś pomógłby mi stworzyć lub nakreślić zgrubnie strukturę i polecenia, które umożliwią mi zbudowanie skryptu, który pod OpenWRT:
1. Zestawi połączenie TCP/IP socket z urządzeniem IoT podając adress:port (lub nawiążę jeśli będzie taka potrzeba nowe połączenie)
2. Na porcie na routerze będzie nasłuchiwała usługa na połączenie z telnet z mojego laptopa i jeśli takowe otrzyma
3. Zapiszę przychodzący string ASCII z telnet do pliku "in.txt"
4. Zgodnie ze słownikiem (plik inbound) przetłumaczy string ASCII na hex np. "START" na "0x53 0xe3 0xa2 0x94 0xe5"
5. Zapisze w pliku "in.txt" symbol [TAB] plus przetłumaczony ciąg w HEX
6. Wyśle ciąg hex do IoT za pomocą Ad1.
7. Otrzyma odpowiedź w hex z AD2. i zapiszę w pliku "out.txt"
8. Przetłumaczy w lecie korzystając z drugiego słownika "outboud" z hex na string ASCII np. z "0x01" na "OK"
9. W pliku "out.txt" doda znak [TAB] plus przetłumaczony ciąg znaków ASCII
10. Za pomocą AD2. zostanie zwrócona odpowiedź i przetłumaczona odpowiedź, którą będę widział w telnecie
Ktoś pomoże, albo zna podobne gotowe narzędzie/usługę pod Windows/Linux?
Wiem, że będę musiał użyć poleceń "nc" lub "netcat" dla AD2, ale jak tłumaczyć w locie zgodnie z plikiem inboud/outbaund komunikację nie wiem, a potem ją wysyłać do AD1. nie mam pomysłu. Byłbym wdzięczy za każdą pomoc.
Pozdrawiam, Krzysiek