Hallo Leute Ich habe ein kleines Problem bei meinem Programm. Ich habe zwei Programmteile eins in der uart.c und uart.h und eins in der mainwindow.c und mainwindow.h. Ich habe eine struct in der mainwindow.h definiert mit dem ich die Daten anzeigen lasse. Die Uart.c empfängt nun die Daten vom RS232 Anschluss und soll ihn in dieselbe Struct schreiben. wie definier ich die struct denn jetzt nun, dass ich sie in der uart.c und in der mainwindow.c benutzen kann ? mfg Jan
Jan schrieb: > Hallo Leute > > Ich habe ein kleines Problem bei meinem Programm. > Ich habe zwei Programmteile eins in der uart.c und uart.h und eins in > der mainwindow.c und mainwindow.h. Uart.c, uart.h? Habe ich nicht gesehen... ;-) > Ich habe eine struct in der mainwindow.h definiert mit dem ich die Daten > anzeigen lasse. > Die Uart.c empfängt nun die Daten vom RS232 Anschluss und soll ihn in > dieselbe Struct schreiben. Schlechte Idee. Wieso sollte der Code für die serielle Schnittstelle irgendwas von der (vielleicht garnicht vorhandenen) Anzeige wissen? > wie definier ich die struct denn jetzt nun, > dass ich sie in der uart.c und in der mainwindow.c benutzen kann ? In einem dritten *.h - aber wie gesagt, ganz schlechte Idee. Besser ist es so: von der seriellen Schnittstelle bekommst Du ein Array von Bytes (genauer gesagt Octets). In mainwindow.c pflückst Du dann die Bytes auseinander (unter Beachtung Little, Big, Sonstige Endian, Representation von Gleitkommazahlen, Representation von Integern, etc. pp.) und stopfst die in Dein struct. Danach kannst Du mit dem struct fröhlich weiterarbeiten. Weil: Serielle Schnittstelle weiss dann nix von irgendeiner Anzeige, und Du behandelst den Fall dass Endianness oder Datenrepresentation an den beiden Enden der seriellen Leitung verschieden sind - was nicht so selten vorkommt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.