Dev - C++ - Programa Puerto Serial

 
Vista:
Imágen de perfil de Alvin
Val: 3
Ha disminuido su posición en 8 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Programa Puerto Serial

Publicado por Alvin (2 intervenciones) el 02/04/2018 16:23:24
Hola a todos.!!! Buenos dias. Por favor necesito su ayuda con un programa en Dev-C++. Se trata de un programa para recibir datos por puerto serial Com1. La idea es que el programa se comunica con otra pc mediante un cable serial null modem RS-232. El programa no compila. da el siguiente Error:

83 J:\Beckman Coulter MAXM-HMX\C++\Goldstein\HMX-Serial.cpp `f' undeclared (first use this function)



Error-Dev-C

El código fuentes es:

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
63
64
65
66
67
68
69
70
71
72
73
74
#include <stdio.h>
#include <windows.h>
#include <iostream>
#include <tchar.h>
#include <afx.h>
#include <afxwin.h>
 
#define STRING_SIZE 100
#define Nombre1 "datahemat.txt"
FILE *fp;
int b = 10;
using namespace std;
unsigned long rebut = 0, recibiendo = 0;
char cadena [512];
int i = 0;
int main(void)
{
    /* Este módulo se encarga de abrir el puerto serial para comunicarse*/
	HANDLE m_hComm;
	DWORD dwBytesRead;
    DWORD dwBufferSize;
    TCHAR szBuffer [STRING_SIZE];
    dwBufferSize = sizeof(TCHAR) * STRING_SIZE;
	m_hComm = CreateFile("Com1",GENERIC_WRITE | GENERIC_READ,
        FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
	if (m_hComm == (HANDLE)-1){
		printf ("Error abriendo el puerto serie COM1");
		/* return; */
	}
    /* Este módulo de encerga de configurar el puerto segun el protocolo
    Beckman Coulter */
	DCB dcb;
    dcb.DCBlength = sizeof(DCB);
    GetCommState(m_hComm, &dcb);
    dcb.BaudRate = CBR_9600;
    dcb.ByteSize = 8;
    dcb.Parity = ODDPARITY;
    dcb.fParity = TRUE;
    dcb.StopBits = ONESTOPBIT;
    dcb.fBinary = TRUE;
    SetCommState (m_hComm,&dcb);
 
    /*CFile f;
    CFileException e;
    TCHAR* pszFileName = _T("Open_File.dat");
    if(!f.Open(pszFileName, CFile::modeCreate | CFile::modeWrite, &e)) {
    	TRACE(_T("File could not be opened %d\n"), e.m_cause);
    }*/
 
 
      fp = fopen(Nombre1, "w");
      //Chequeando si el archivo existe.
      if (fp == NULL) {
           perror("File could not be opened for writing\n");
      }
      else
      {
           printf("File created\n");
      }
      fprintf (fp, " %d ", b) ;
      fclose(fp);
    do {
	    rebut = 0;
	    do {
		    /*bool *flag = &(cadena[rebut]==0)*/
            ReadFile(m_hComm,&cadena[rebut], 1, &recibiendo, NULL);
		    if (cadena[rebut]==0) break;
		    rebut+=recibiendo;
	    } while (rebut<512);
	    f.Write(cadena, rebut);
    } while (rebut==512);
    cout << " Se leyeron " << dwBytesRead << " bytes. " <<"Buffer; " << szBuffer << endl;
    CloseHandle (m_hComm);
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 84
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Programa Puerto Serial

Publicado por Yamil Bracho (41 intervenciones) el 02/04/2018 16:35:41
f no esta declarada. Sera que es "fp" ?
Tiene un codigo comentarizado donde la defines
/* CFile f;
...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alvin
Val: 3
Ha disminuido su posición en 8 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Programa Puerto Serial

Publicado por Alvin (2 intervenciones) el 02/04/2018 18:13:32
Gracias, el codigo comentarizado lo anulé porque el comando CFile no funciona, no se si es por falta de una libreria o algo...
pero probé con fp y me da otro error...

83 \HMX-Serial.cpp `Write' has not been declared
83 \HMX-Serial.cpp request for member of non-aggregate type before '(' token
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 84
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Programa Puerto Serial

Publicado por Yamil Bracho (41 intervenciones) el 02/04/2018 18:24:11
Viendo con mas detalle "fp" no es dino que debria ser "f". Ahora chequea si te hace falta alguna libreria para que se habilite CFile o substituyes el codigo que recibe del puerto y graba al archivo. Puedes usar fOppen, fWrite, etc de C
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Programa Puerto Serial

Publicado por Alex (1 intervención) el 30/06/2019 00:57:19
Este código no me fumciona.
Alguien me pude mandar todo el código con sus correspondientes librerias?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar