<>

<>

Question : lecture et économie de porte série

Salut là,

Im travaillant sur un programme qui lit des données (un dossier des textes 1MB) de la porte série et les sauve au disque. J'ai deux fonctions - l'initComm pour initialiser la porte série et le readComm pour lire des données du port.

I ont besoin de l'aide en écrivant la fonction principale qui lit le port de COM et sauve les données au disque. Je n'ai pas beaucoup d'expérience avec c et im pas trop sure si c'est bonne manière de la faire ? peut-être je peux faire le programme entier dans une fonction principale et ne pas tracasser avec les fonctions d'initComm et de readComm ?

im using les fenêtres courantes 7 et utilisation d'un PC de Microsoft vc++ pour faire le code. Le raccordement périodique entre les ordinateurs est RS232.
class= > " clair " de
> de " codeSnippet " de class= de
class= " lineNumbers " de
class= de
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 " de l'id= " codeSnippet843796 de
 de class=
#include 

fSuccess de BOOL ;
POIGNÉE hSerial ;     //Handle pour le port de COM

initComm vide ()
{
Noblock de COMMTIMEOUTS ;
comSettings du bloc de contrôle de données ;	Arrangements gauches de //Various

// initialisent la porte série
hSerial = CreateFile (« COM1 », //Open COM1
		     GENERIC_READ, //Read seulement
		     0, accès de //Exclusive
	             NULLE, attributs de sécurité de //No
		     OPEN_EXISTING, port de //COM existe déjà
		     0,
	             NULLE) ;
si (hSerial==INVALID_HANDLE_VALUE)
{
	printf (« valeur inadmissible de poignée %d. \ n », GetLastError ());
}
Temps mort de //Set dans Milisecs
fSuccess = GetCommTimeouts (hSerial, &noblock) ;
	noblock.ReadTotalTimeoutConstant = 1 ;
	noblock.ReadTotalTimeoutMultiplier = MAXWORD ;
	noblock.ReadIntervalTimeout = MAXWORD ;
fSuccess = SetCommTimeouts (hSerial, &noblock) ;

Paramètres gauches de //Set
fSuccess = GetCommState (hSerial, &comSettings) ;
si (! fSuccess)
{
	printf (« \ erreur de nGetCommState ! ") ;
}
	comSettings.BaudRate = 9600 ;
	comSettings.ByteSize = 8 ;
	comSettings.fParity = FAUX ;
	comSettings.Parity = NOPARITY ;
	comSettings.StopBits = ONESTOPBIT ;
 fSuccess = SetCommState (hSerial, &comSettings) ;
 si (! fSuccess) {
	 printf (« \ erreur de nSetCommState ! ") ;
 }
 printf (« port de COMM. réglé \ n ») ;
}

Données de //Read de porte série
readComm de char ()
{
	inBuffer de char ;
	bytesRead d'international ;
	fSuccess = ReadFile (hSerial, //Handle
			    &inBuffer, données de //Incoming
			    1000, bytes de //No à lire
			    le &bytesRead, //Bytes a lu
		            0) ;
	si (bytesRead >0)
		inBuffer de retour ;
	retour d'autre 0 ;
}
class= de

Réponse : lecture et économie de porte série

Je jouais avec lui et finalement j'ai trouvé la solution :

<>
  
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us