<>

<>

Pergunta : leitura e economia do porto de série

Olá! lá,

Im que trabalha em um programa que leia dados (uma lima de texto 1MB) do porto de série e os conserve ao disco. Eu tenho duas funções - o initComm para inicializar o porto de série e o readComm para ler dados do port.

I precisam a ajuda em escrever a função principal que lê o porto de COM e conserva os dados ao disco. Eu não tenho muita experiência com c e im não demasiado sure se esta é maneira direita da fazer? talvez eu posso fazer o programa inteiro dentro de uma função principal e não se incomodar com as funções do initComm e do readComm?

im using janelas running 7 e utilização de um PC de microsoft vc++ para fazer o código. A conexão de série entre os computadores é RS232.
class= > " desobstruído " do
> do " codeSnippet " do class= do
class= " lineNumbers " do
class= do
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 " do class= " do id= " codeSnippet843796 do

fSuccess de BOOL;
PUNHO hSerial;     //Handle para o porto de COM

initComm vago ()
{
Noblock de COMMTIMEOUTS;
comSettings do DCB;	Ajustes portuários de //Various

// inicializa o porto de série
hSerial = CreateFile (“COM1”, //Open COM1
		     GENERIC_READ, //Read somente
		     0, acesso de //Exclusive
	             ZERO, atributos de segurança de //No
		     OPEN_EXISTING, porto de //COM já existe
		     0,
	             ZERO);
se (hSerial==INVALID_HANDLE_VALUE)
{
	printf (“valor inválido %d. \ n do punho”, GetLastError ());
}
Intervalo de parada de //Set em Milisecs
fSuccess = GetCommTimeouts (hSerial, &noblock);
	noblock.ReadTotalTimeoutConstant = 1;
	noblock.ReadTotalTimeoutMultiplier = MAXWORD;
	noblock.ReadIntervalTimeout = MAXWORD;
fSuccess = SetCommTimeouts (hSerial, &noblock);

Parâmetros portuários de //Set
fSuccess = GetCommState (hSerial, &comSettings);
se (! fSuccess)
{
	printf (“\ erro do nGetCommState! ");
}
	comSettings.BaudRate = 9600;
	comSettings.ByteSize = 8;
	comSettings.fParity = FALSO;
	comSettings.Parity = NOPARITY;
	comSettings.StopBits = ONESTOPBIT;
 fSuccess = SetCommState (hSerial, &comSettings);
 se (! fSuccess) {
	 printf (“\ erro do nSetCommState! ");
 }
 printf (do “porto Comm ajustado \ n”);
}

Dados de //Read do porto de série
readComm do carvão animal ()
{
	inBuffer do carvão animal;
	bytesRead do int;
	fSuccess = ReadFile (hSerial, //Handle
			    &inBuffer, dados de //Incoming
			    1000, bytes de //No a ler
			    o &bytesRead, //Bytes leu
		            0);
	se (bytesRead >0)
		inBuffer do retorno;
	retorno outro 0;
}
class= do

Resposta : leitura e economia do porto de série

Eu estava jogando com ele e finalmente eu encontrei a solução:

<>
  
Outras soluções  
 
programming4us programming4us