Ich kommuniziere inmeinem Programm mit einem GSM-Modem über rs232. Nun ist das Modem aber etwas zickig . Sobald ich etwas per write ans Modem schicken will, es aber selbst gerade was an den Rechner schickt meldet es Error. Nun möchte ich gern wissen wie ich denn herausfinden kann ob das Modem gerade sendet oder im idle-Modus ist und ich ihm was schicken kann. Hat jemand eine Idee? Ahja... das ganze findet unter Linux über /dev/ttyUSB0 statt....
aber dein Problem ist wohl nicht C sondern die Bibliothek die du benutzt, und diese ist keine Standard Bibliothek. -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth!
naja ich mach das ganz normal mit open(), read() und write() mit ioctl kann ich die größe der vom modem empfangenen daten abrufen. aber gibt es irgendwie ne möglich keit (vielleicht auch mit ioctl.h) dass ich nen pin überprüf? was vielleicth vom modem gesetzt wird, wenn es sendet?
aber gibt es irgendwie ne möglich keit (vielleicht auch mit ioctl.h) dass ich nen pin überprüf? was vielleicth vom modem gesetzt wird, wenn es sendet?
Nein. Es gibt keinen Pin "Bin gerade am Senden". Aber du kannst folgendes versuchen: Bei RS232 wird die Bereitschaft zu *empfangen* über Handshake-Leitungen angezeigt. Nimm also deine eigene Empfangsbereitschaft weg (CTS löschen) und das Modem muss aufhören zu senden.
das modem hat aber vorrang.... weil ich weiß nicht was es tut, wenn ich einfach das empfangen unterbinde, aber es ne SMS empfängt und an den pc übermitteln will.... jedoch hast du recht... sobald ich vom pc aus was senden willl könnte ich somit "kollisionen" verhindern... aber hmm die sms wartet in der leitung aber leider nciht, bis mein pc bereit ist :/
seltsames modem, hier wenn ich das handy dranhäng kann ich auch gleichzeitig empfangen und senden? bzw schau ich erst ob handy grad was zum senden hat, wenn ja, empfange ich erstmal und sende dann -- class God : public ChuckNorris { };