Hallo! Ich bin gerade dabei mir ein Contol-Pannel für mein 19" Server-Rack zu bauen. Ich habe vor 4 Displays und zu jedem dieser Displays jeweis eine 3x3Folientastatur(y/x) und 2 Statusleuchten für den Alarmzustand des über das Display Überwachte system. Gesteuert wird das ganze von einer selbstgeschriebenen software die die sytemdaten der anderen server über das netztwerk erhält. Die LCD Displays habe ich bereits erfolgreich über den LPT Port angeschlossen. Sie verwenden jeweils 2 SED 1520 controler. Mein Prolem ist nun, ich möchte eine platine bauen, um die 4 3x3 Tastenfelder und die 8 Kontroll-LED's über meine RS232 Schnittstelle (9-pol subD) an den pc anzuschließen. Habe leider Absolut keine ahnung wie is das anstellen soll. Habe schon bei google nach bauanleitungen für soetwas gesucht, aber nichts gefunden. Kann mir jemand helfen und sagen, was ich dazu benötige? Wenn jmd Hilfe mit C/C++ programmierung benötigt bin ich gern dazu bereit zu helfen ... Vielen Dank!!
lies dir das tutorial hier auf der seite durch, da ist fast alles drin was du brauchst: led's ansteuern, schalter auslesen und die serielle schnittstelle. als 'anfang' sollte das ganz gut sein
Ja, Danke ... So weit hatte ich net nach unten gelesen, um die links zu finden ... danke!! Mein Fehler, sorry ... Wenn jmd wissen möche, wie man unter windows in C++ einen MFC Device Context in einen für LCD-Grafik-Displays verständlichen ASCII Code umwandelt, einfach ne Mail an TheFallen@f2s.com schreiben ... Un danke nochma ... Greetz.
hi Würd mich mal interessieren, wie du das Problem hdc to lcd gelöst hast... Ich hab das damals mittels eines HBITMAP gemacht und das dann per GetDIBits in ein grosses Array gelesen Oder geht das vielleicht noch eleganter? Gruss Benjamin
klar ... Der DC muss folgede vorraussetzungen haben: a) er muss kopatibel zu einem ClientDC erzeugt werden und dann muss als erstes ein Monochom Bitmap in der Größe des LCDs geladen werden. so: CDC local; CClientDC dc(this); CBitmap temp; temp.CreateBitmap(122,32,1,1,NULL); local.CreateCompatibleDC( &dc ); local.SelectObject( &temp ); Nun kann local alles aufnehmen, was gezeichnet werden soll. Sogar ganze bitmaps können per BitBlt oder StechBlt hineintransferiert werden. Die Converter-funktion wird dann so aufgerufen: bmp2fb(&local); Die eigentliche funktion ist in der datei im anhang. Sie ist hier für ein display mit 122x32 pixeln mit SED1520 controllern ausgelegt. immer 8 Pixel übereinander ergeben ein Byte. Also besteht mein framebuffer aus 4 Zeilen a 122 bytes. Also: char framebuf[488]; Der Framebuffer wird dann einfach der reihe nach an den Controller gesendet, da dieser nach einem Byte automatisch den Pointer in die nächste Spalte setzt. Die neue Page wird auch automatisch angewählt. Bitta darauf achten, dass ein display evtl von 2 oder mehr controllern gesteuert wird, und der Framebuffer entspechend beim senden aufgeteilt werden muss. Ich hoffe, das ist was du brauchst. Gruß, TF
Hallo Ich würde nur mit der GetPixel Funktion aufpassen, die ist nämlich erbärmlich langsam Meine erste Variante arbeitete auch mit der Funktion, doch der Rechner war richtig ausgelastet und das Display (640x480) brauchte knapp 2 Sekunden bis es aufgebaut war Dann hab ich das ganze auf GetDIBBits umgebaut und ab dann war nur noch die serielle Schnittstelle der limitierende Faktor ich muss mal suchen, vielleicht hab ich den Source davon noch Benjamin
Ja, danke für den Tipp. Für mich spielte das keine rolle, da ich nur diese 122x32 displays betreiben will. der server der das ganze trägt is lediglich mein datenserver mit einem alten Athlon XP 1700+ 1024MB DDR ... Da werden sich für mich keine probleme auftuen ... Was jedoch wesentlich schneller ist, wenn nur eine textausgabe benötigt wird, ist mit fontmaps zu arbeiten ... da kann der Framebuffer dann mit Bitwise Operatoren erstellt werden .. //TF
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.