<>

<>

Cuestión : lectura y ahorro del puerto serial

Hola allí,

Im que trabaja en un programa que lee los datos (un archivo de texto 1MB) del puerto serial y los ahorra al disco. Tengo dos funciones - el initComm para inicializar el puerto serial y el readComm para leer datos del port.

I necesitan ayuda en la escritura de la función principal que lee el puerto de COM y ahorra los datos al disco. ¿No tengo mucha experiencia con c e im no demasiado sure si ésta es manera correcta de hacerla? ¿puedo hacer el programa entero dentro de una función principal y no incomodar quizá con las funciones del initComm y del readComm?

im usar las ventanas corrientes 7 y usar de una PC Microsoft vc++ para hacer el código. La conexión serial entre las computadoras es RS232.
class= > " claro " del
> del " codeSnippet " del class= del
class= " lineNumbers " del
class= del
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 notpretty " del class= " del id= " codeSnippet843796 del

fSuccess de BOOL;
MANIJA hSerial;     //Handle para el puerto de COM

initComm vacío ()
{
Noblock de COMMTIMEOUTS;
comSettings del bcd;	Ajustes portuarios de //Various

// inicializa el puerto serial
hSerial = CreateFile (“COM1”, //Open COM1
		     GENERIC_READ, //Read solamente
		     0, acceso de //Exclusive
	             FALTA DE INFORMACIÓN, cualidades de seguridad de //No
		     OPEN_EXISTING, puerto de //COM existe ya
		     0,
	             FALTA DE INFORMACIÓN);
si (hSerial==INVALID_HANDLE_VALUE)
{
	printf (“valor inválido %d. \ n de la manija”, GetLastError ());
}
Descanso de //Set en Milisecs
fSuccess = GetCommTimeouts (hSerial, &noblock);
	noblock.ReadTotalTimeoutConstant = 1;
	noblock.ReadTotalTimeoutMultiplier = MAXWORD;
	noblock.ReadIntervalTimeout = MAXWORD;
fSuccess = SetCommTimeouts (hSerial, &noblock);

Parámetros portuarios de //Set
fSuccess = GetCommState (hSerial, &comSettings);
¡si (! fSuccess)
{
	¡printf (“\ error del nGetCommState! ");
}
	comSettings.BaudRate = 9600;
	comSettings.ByteSize = 8;
	comSettings.fParity = FALSO;
	comSettings.Parity = NOPARITY;
	comSettings.StopBits = ONESTOPBIT;
 fSuccess = SetCommState (hSerial, &comSettings);
 ¡si (! fSuccess) {
	 ¡printf (“\ error del nSetCommState! ");
 }
 printf (“puerto del Comm fijado \ n”);
}

Datos de //Read del puerto serial
readComm del carbón de leña ()
{
	inBuffer del carbón de leña;
	bytesRead de la internacional;
	fSuccess = ReadFile (hSerial, //Handle
			    &inBuffer, datos de //Incoming
			    1000, octetos de //No a leer
			    el &bytesRead, //Bytes leyó
		            0);
	si (bytesRead >0)
		inBuffer de vuelta;
	vuelta otra 0;
}
class= del

Respuesta : lectura y ahorro del puerto serial

Jugaba con él y finalmente encontré la solución:

<>
  
Otras soluciones  
 
programming4us programming4us