Hoe kan ik de seriële poort op Bash niveau uitlezen zonder dat die qua communicatie zelf op inkomend data reageert en iets verstuurt ?
Ik zit ergens in een deadlock, hoe dit aan te pakken. Ik wil graag de seriële poort inlezen (Linux) zodat ik de daarop inkomende data kan qua bytes uitfilteren en daarmee wat anders actiefs doen.
Zoiets als "cat /dev/ttyUSB0 | xxd" waarmee ik dan de in te lezen poort data bijvoorbeeld naar hex formaat converteer en whatever verder pipe....
Vooraf zet ik de port op een bepaalde snelheid met "stty -F /dev/ttyUSB0 speed 2400 cs8 raw".
Het inlezen gaat op zichzelf prima.... maar wat wil het geval dat op één of andere magische wijze. de seriële poort/software ook zit te antwoorden op inkomende data..... ik zie dit omdat naast het receive ledje dan ook het send ledje druk (?) zit mee te knipperen van de usb-interface.
Kern is, hoe te voorkomen dat "stty" zelfstandig reageert op inkomende data, bijv een willekeurig ENQ opdracht of andere handshaking, die moet gewoon genegeerd worden. Van alles al geprobeerd met opties maar bij mij gaat het licht uit. Ik wil simpelweg alleen plat de poort inlezen zonder dat die ergens via Bash weer iets gaat uitsturen. De data die inkomend op de poort staat is afkomstig van een datasensor en data data daarop is min of meer een random bytestream.
Achtergrond is dat ik ik de seriële-poort wil gebruiken als soort inkomende data-monitor en dan zelf daaruit middels filter-pipes stukjes te selecteren stukjes uit de datastroom kan detecteren en ver(der)plukken.
Wanneer ik dat inlezen voor elkaar heb, wil ik de (bvk zelfde) poort uitgaand (asynchroon) aansturen.
Natuurlijk kan ik een Python of C programma schrijven om die seriële poort programmatisch en rechtstreeks aan te sturen, wat nu net even te veel is. Kan ook allerlei communicatie programma's gebruiken zoals "minicom" waarmee ik echter weer ander uitdagingen krijg (hoe dat dan weer te filteren). Ik kan natuurlijk de TX-wire loslatenen niet koppelen wat weer zonde is omdat ik dat draadje (later) wil proberen te gaan gebruiken om data terug te sturen.
In mijn beleving moet het toch doodeenvoudig (kunnen) zijn dat je op kale wijze een seriële poort uitleest zonder dat die zelf iets antwoordt.....
Vast dank
Ik zit ergens in een deadlock, hoe dit aan te pakken. Ik wil graag de seriële poort inlezen (Linux) zodat ik de daarop inkomende data kan qua bytes uitfilteren en daarmee wat anders actiefs doen.
Zoiets als "cat /dev/ttyUSB0 | xxd" waarmee ik dan de in te lezen poort data bijvoorbeeld naar hex formaat converteer en whatever verder pipe....
Vooraf zet ik de port op een bepaalde snelheid met "stty -F /dev/ttyUSB0 speed 2400 cs8 raw".
Het inlezen gaat op zichzelf prima.... maar wat wil het geval dat op één of andere magische wijze. de seriële poort/software ook zit te antwoorden op inkomende data..... ik zie dit omdat naast het receive ledje dan ook het send ledje druk (?) zit mee te knipperen van de usb-interface.
Kern is, hoe te voorkomen dat "stty" zelfstandig reageert op inkomende data, bijv een willekeurig ENQ opdracht of andere handshaking, die moet gewoon genegeerd worden. Van alles al geprobeerd met opties maar bij mij gaat het licht uit. Ik wil simpelweg alleen plat de poort inlezen zonder dat die ergens via Bash weer iets gaat uitsturen. De data die inkomend op de poort staat is afkomstig van een datasensor en data data daarop is min of meer een random bytestream.
Achtergrond is dat ik ik de seriële-poort wil gebruiken als soort inkomende data-monitor en dan zelf daaruit middels filter-pipes stukjes te selecteren stukjes uit de datastroom kan detecteren en ver(der)plukken.
Wanneer ik dat inlezen voor elkaar heb, wil ik de (bvk zelfde) poort uitgaand (asynchroon) aansturen.
Natuurlijk kan ik een Python of C programma schrijven om die seriële poort programmatisch en rechtstreeks aan te sturen, wat nu net even te veel is. Kan ook allerlei communicatie programma's gebruiken zoals "minicom" waarmee ik echter weer ander uitdagingen krijg (hoe dat dan weer te filteren). Ik kan natuurlijk de TX-wire loslatenen niet koppelen wat weer zonde is omdat ik dat draadje (later) wil proberen te gaan gebruiken om data terug te sturen.
In mijn beleving moet het toch doodeenvoudig (kunnen) zijn dat je op kale wijze een seriële poort uitleest zonder dat die zelf iets antwoordt.....
Vast dank
Go with the flow blocking your way and use AD for achieving results