<>

<>

Vraag : lezing en besparing van periodieke haven

Hallo daar,

Im aan een programma werkt dat gegevens (een 1MB tekstdossier) van de periodieke haven leest en het aan schijf bewaart. Ik heb twee functies - initComm om de periodieke haven te initialiseren en readComm gegevens van de port.

I behoeftehulp te lezen in het schrijven van de belangrijkste functie die de Comhaven leest en de gegevens aan schijf opslaat. Hebben Ik veel ervaring met c en niet te zekere geen im als dit juiste manier is om het te doen? misschien kan ik het gehele programma doen binnen een hoofdfunctie en niet met initComm en readComm de functies hinderen?

im gebruikend een PC lopende vensters 7 en gebruikend microsoft vc++ om de code te doen. De periodieke verbinding tussen de computers is RS232.
" codeBody "
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
#include 
#include 

BOOL fSuccess;
hSerial HANDVAT;     //Handle voor de Haven van Com

nietige initComm ()
{
COMMTIMEOUTS noblock;
comSettings DCB;	De Montages van de Haven van //Various

// initialiseert Periodieke Haven
hSerial = CreateFile („COM1“, //Open COM1
		     GENERIC_READ, slechts //Read
		     0, //Exclusive Toegang
	             De Attributen van de ONGELDIGE, Veiligheid van //No
		     OPEN_EXISTING, //COM haven bestaat reeds
		     0,
	             ONGELDIG);
als (hSerial==INVALID_HANDLE_VALUE)
{
	printf (de „Waarde %d. \ n“, GetLastError Ongeldige van het Handvat ());
}
//Set Onderbreking in Milisecs
fSuccess = hSerial GetCommTimeouts (, &noblock);
	noblock.ReadTotalTimeoutConstant = 1;
	noblock.ReadTotalTimeoutMultiplier = MAXWORD;
	noblock.ReadIntervalTimeout = MAXWORD;
fSuccess = hSerial SetCommTimeouts (, &noblock);

De Parameters van de Haven van //Set
fSuccess = hSerial GetCommState (, &comSettings);
als (! fSuccess)
{
	printf („nGetCommState Fout \! “);
}
	comSettings.BaudRate = 9600;
	comSettings.ByteSize = 8;
	comSettings.fParity = VALS;
	comSettings.Parity = NOPARITY;
	comSettings.StopBits = ONESTOPBIT;
 fSuccess = hSerial SetCommState (, &comSettings);
 als (! fSuccess) {
	 printf („nSetCommState Fout \! “);
 }
 printf („Comm haven vastgestelde \ n“);
}

De Gegevens van //Read van Periodieke Haven
klusje readComm ()
{
	klusje inBuffer;
	int. bytesRead;
	fSuccess = hSerial ReadFile (, //Handle
			    &inBuffer, //Incoming gegevens
			    1000, //No te lezen bytes
			    &bytesRead, Gelezen //Bytes
		            0);
	als (bytesRead >0)
		terugkeer inBuffer;
	anders terugkeer 0;
}

Antwoord : lezing en besparing van periodieke haven

Ik speelde met het en definitief vond ik de oplossing:

<>
  
Andere oplossingen  
 
programming4us programming4us