Jag har lyckats öppna serieporten från ett C-program i Cygwin. Jag har lyckats skriva och läsa blockerande.
Nu vill jag kunna läsa utan att programmet hänger sig om inget tecken kommer in.
Efter vad jag förstått skall man installera en hanterare för SIGIO-signalen. Inget exempel jag hittat har fungerat för mig. Någon som har ett fungerande exempel eller vet hur man gör?
Serieport i Cygwin
http://www.tldp.org/HOWTO/Serial-Progra ... tml#AEN144
Hela HOWTO:n är nyttig att läsa.
Alternativet om du inte vill använda sig av avbrottssignaler är väl att du pollar om det finns data att läsa, efter att du har öppnat serieporten i "non-blocking mode".
Fast jag har ingen aning om det här fungerar i Cygwin.
Hela HOWTO:n är nyttig att läsa.
Alternativet om du inte vill använda sig av avbrottssignaler är väl att du pollar om det finns data att läsa, efter att du har öppnat serieporten i "non-blocking mode".
Fast jag har ingen aning om det här fungerar i Cygwin.
hm...det är den koden jag har försökt med och inte fått att fungera. (Jag får väl erkänna att jag inte läst varje bokstav i HOWTOn, så jag kan ju ha missat ngt där.)
Hur gör man för att polla? Optionen O_NONBLOCK har inte gjort till eller från för mig.
Cygwin skall vara samma som Linux "i reklamen" men man vet ju aldrig.
Hur gör man för att polla? Optionen O_NONBLOCK har inte gjort till eller från för mig.
Cygwin skall vara samma som Linux "i reklamen" men man vet ju aldrig.
Jag har för mig att det där exemplet fungerade för mig.
För att polla kan man använda select() eller poll(). När jag höll på med det där tyckte jag poll() var smidigast att använda. Med hjälp av svaret från t ex poll() får du reda på när du kan skriva/läsa till/från porten.
Tyvärr har jag inga exempel att ge dig, då jag har dom koderna på en annan dator.
För att polla kan man använda select() eller poll(). När jag höll på med det där tyckte jag poll() var smidigast att använda. Med hjälp av svaret från t ex poll() får du reda på när du kan skriva/läsa till/från porten.
Tyvärr har jag inga exempel att ge dig, då jag har dom koderna på en annan dator.