Ubuntu Suomen keskustelualueet

Muut alueet => Yleistä keskustelua => Aiheen aloitti: Mistofelees - 26.10.26 - klo:15.56

Otsikko: socat ja kellonajat
Kirjoitti: Mistofelees - 26.10.26 - klo:15.56
socat on kätevä, mutta hieman hankala ohjelma tiedon siirtoon esimerkiksi Arduinolta palvelimelle.
Dokumentaatiota on monta metriä ja joukosta on työlästä poimia oikeita parametrejä ja oikeaa syntaksia.
Melkeimpä toivoisi, että olisi socat:a yksinkertaisempi työkalu tälläiseen yksinkertaiseen käyttöön.
NC:llä pystyy kikkailemalla tekemään saman, mutta omissa kokeiluissa nc tuotti ongelmia.

Sain jo systeemin toimimaan, mutta sitten menin lisäämään yhden kaksoispisteen paikkaan, jossa en olisi sen kuvitellut vaikuttavan mitään

Leike toimivasta scriptistä:
Koodia: [Valitse]
#!/usr/bin/bash
PORT=12345
saapuneet="/hakemisto/tiedosto.txt"
vastaus=$(date "+%H%M")
socat -d0 TCP-LISTEN:$PORT,readbytes=100,fork SYSTEM:"/usr/bin/echo $vastaus;/usr/bin/cat>>$saapuneet"&

Muutetaan tuota vastaus=$(date "+%H%M") lisäämällä kaksoispiste tuntien ja minuuttien väliin:
vastaus=$(date "+%H:%M")
Eipäs toimikaan enää. Socat itkee virheestä, liikaa adresseja.

(Tuo scripti siis ottaa vastaan ESP8266:n lähettämän TCP datapaketin ja vastaa palauttamalla kellonajan.
Samalla voisi palauttaa enemmänkin parametrejä, mutta koska tämä scripti palvelee useita hyvin erilaisia laitteita, joutuisi vastauslausekkeen muotoa miettimään tarkemmmin.)