Zugriff auf LCD Display


Roger66

Grünschnabel
Hallo Leute,
ich habe ein großes Problem.
Für ein Schulprojekt muss ich es schaffen, Text auf einer LCD-Anzeige (LK202-24-USB) auszugeben und die Tastensignale vom integrierten Keypad Interface auszuwerten.
Das Programm muss in C# erstellt werden.

Im Manual steht, dass es zwei Möglichkeiten gibt das Modul anzusprechen:
1. Indem man direkt auf den USB Display Treiber zugreift.
2. Oder mittels eines virtuellen COM-Ports eine Kommunikation aufbaut.

Deshalb meine Frage:
- Gibt es eine fertige KLasse (in C#) die ich verwenden kann?
- Oder kann mir jemand helfen/zeigen wie ich die Verbindung herstellen und die im Manual beschriebenen Commands verwenden kann?

Ich bin für jede Hilfe dankbar die ich bekommen kann.
 

Alexander Schuc

crazy-weasel
Hi.

Hast du dafür irgendwie Beispielcode, oder Anleitungen für einen Treiber, oder sonstwas?
Das gnaze wirst, so denke ich, über p/invoke lösen müssen.


MfG,
Alex
 

Roger66

Grünschnabel
Hi Leute!
Danke dass Ihr so schnell geantwortet habt.

Der Vorschlag das Problem mit pinvoke zulösen erscheint mir nicht schlecht.
Ich habe die letzten Tage bereits damit rumprobiert. Deshalb hat's auch etwas länger gedauert bis ich mich wieder melde.
Unter C kann ich jetzt schon auf das LCDschreibend zugreifen. Lesen klappt auch da noch nicht.
Kann mir jemand helfen die folgenden API-Funktionen in C# umzuschreiben?
- CreateFile
- WriteFile
- ReadFile
- CloseHandle
In der Hilfe fand ich bisher nichts was mir weitergeholfen hätte.
Wo kann man z.B. BaudRate, ByteSize; Parity und StopBits angeben?
Ihr seht ich brauche noch dringend weitere Hilfe.

Gruß Roger66
 

Roger66

Grünschnabel
Hallo Leute,

ich bin übers Wochenende etwas weiter gekommen.
CreateFile und CloseHandle funktionieren jetzt - glaube ich zumindest.
Aber mit WriteFile und ReadFile habe ich noch meine Probleme. Im Netz hatte ich zwar ein Beispiel für WriteFile gefunden, das kann aber nur mit Strings umgehen.
Ich bräuchte also doch nochmal Hilfe um meine C - Funktion in C# zu übersetzen.
Im folgenden nun den C-Code:
Code:
#include <windows.h>
HANDLE hComm;
//******************************************************
DWORD WriteComm(char* buf, int len)
{
DWORD nSend;
if(!WriteFile(hComm, buf, len, &nSend, NULL)) exit(1);
return nSend;
} 
//******************************************************
void WriteCommByte(BYTE b)
{
WriteComm(&b, 1);
}
//******************************************************
void main()
{
OpenComm();//CreateFile
	//Clear display
	WriteCommByte(0xfe);
	WriteCommByte('X');
	//schreibe Text Buchstabe
	WriteCommByte('R'); //ASCII
	WriteCommByte(82); //DEZ
	WriteCommByte(0x52);//HEX
CloseComm();//CloseHandle
}
Vorab schonmal vielen Dank für jeden der sich daran versucht.

Roger66
 

Roger66

Grünschnabel
Hallo Leute,

das mit den APIs habe ich so nicht ganz hinbekommen.
Ich habe die Aufgabe jetzt mit dem MSComm-Steuerelement gelöst.
Das war bedeutend einfacher und wesendlich schneller.