Hjaelp til COM port
Jeg skal bruge en MEGET simpel COM kommunikation. Derfor har jeg soegt til SELV at lave den, istedet for at bruge en af de mange allerede eksisterende komponenter. COM porten skal ikke bruge events, da den skal bruges i en client server model: Client spoerger og faar svar tilbage fra server.Jeg har initialiseret den saaledes:
IntPtr hCom = CreateFile("COM" + comPortNumber, FILE_ACCESS.FILE_GENERIC_READ | FILE_ACCESS.FILE_GENERIC_WRITE, 0, IntPtr.Zero, FILE_CREATION.OPEN_EXISTING, 0, IntPtr.Zero);
Jeg faar en brugbar pointer tilbage... saa lt spiller perfekt. Derefter saetter jeg COM state vha. SetCommState
Jeg har lavet en funktion til at laese fra COM-porten:
private int Read(byte[] bytes, int size)
{
int read = 0;
ReadFile(hCom, bytes, size, ref read, IntPtr.Zero);
return read;
}
Nogen gange saetter jeg f.eks. size = 20, men der findes kun 3 bytes paa COM porten. Derfor blokker funktions kaldet, selvom dokumentationen beskriver at der skulle vaere et meget kort timeout. Det virker alligevel som om der er ikke er et timeout sat.
Hvad goer jeg her?
