Click here to Skip to main content
15,894,343 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: va_arg and VS.NET 2003 Pin
geo_m12-Aug-03 1:06
geo_m12-Aug-03 1:06 
GeneralRe: va_arg and VS.NET 2003 Pin
leppie12-Aug-03 7:13
leppie12-Aug-03 7:13 
GeneralRe: va_arg and VS.NET 2003 Pin
geo_m12-Aug-03 7:34
geo_m12-Aug-03 7:34 
Generallossing focus on a dialog box Pin
(Steven Hicks)n+111-Aug-03 10:34
(Steven Hicks)n+111-Aug-03 10:34 
GeneralRe: lossing focus on a dialog box Pin
valikac11-Aug-03 12:08
valikac11-Aug-03 12:08 
GeneralCOM1 Pin
Anonymous11-Aug-03 9:54
Anonymous11-Aug-03 9:54 
GeneralRe: COM1 Pin
David Crow11-Aug-03 10:33
David Crow11-Aug-03 10:33 
GeneralRe: COM1 Pin
Anonymous11-Aug-03 11:26
Anonymous11-Aug-03 11:26 
#ifndef MESSGERAETE_H
#define MESSGERAETE_H

#include "windows.h"

class Messgeraete{

public:

Messgeraete();
~Messgeraete();

void takeValues();
double getValue(int value);
void stopThread();

//-1: Messung wurde abgerochen, 0 keine gütligen Werte, 1 gültige Werte wurden gelesen
int getMessflag();

static DWORD messenThread(LPVOID);

private:

HANDLE h_com;
HANDLE h_messThread;

DCB dcb;
COMMTIMEOUTS cto;

double value1, value2;
int messflag;

};

#endif


Messgeraete::Messgeraete(){

messflag=0;

h_com = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0 , NULL);


DCB dcb_neu;
COMMTIMEOUTS cto_neu;

GetCommState(h_com, &dcb);
GetCommState(h_com, &dcb_neu);

dcb_neu.BaudRate = 9600;
dcb_neu.ByteSize = 8;
dcb_neu.Parity = NOPARITY;
dcb_neu.StopBits = ONESTOPBIT;
SetCommState(h_com, &dcb_neu);


GetCommTimeouts(h_com,&cto);
GetCommTimeouts(h_com,&cto_neu);
cto_neu.ReadTotalTimeoutConstant=0;
cto_neu.ReadTotalTimeoutMultiplier=0;
SetCommTimeouts(h_com,&cto_neu);


}


Messgeraete::~Messgeraete(){

SetCommTimeouts(h_com,&cto);
SetCommState(h_com, &dcb);
CloseHandle(h_com);

}

DWORD Messgeraete::messenThread(LPVOID lparam){


Messgeraete *mp = (Messgeraete*)lparam;

int i;
unsigned long nBytesRead1,nBytesRead2;
char inbuffer1[13];
char inbuffer2[13];

char temp[9];
temp[8]=0;

ReadFile(mp->h_com, &inbuffer1, 13, &nBytesRead1, NULL);
ReadFile(mp->h_com, &inbuffer2, 13, &nBytesRead2, NULL);

// CString str;
// str.Format("%s\n%s",inbuffer1,inbuffer2);
// AfxMessageBox(str);

for(i=0;i<8;i++) temp[i]=inbuffer1[i+4];
mp->value1=atof(temp);

for(i=0;i<8;i++) temp[i]=inbuffer2[i+4];
mp->value2=atof(temp);

if(inbuffer1[0]=='9'){mp->value1=-1;AfxMessageBox("Messschieber ist nicht eingeschaltet oder nicht richtig angeschlossen");}
if(inbuffer2[0]=='9'){mp->value2=-1;AfxMessageBox("Messuhr ist nicht eingeschaltet oder nicht richtig angeschlossen");}

mp->messflag=1;

return 0;

}


void Messgeraete::takeValues(){

messflag=0;
h_messThread=CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)messenThread, (LPVOID)this, 0, NULL);

}

double Messgeraete::getValue(int value){

if (value==1) return value1;
else return value2;

}

void Messgeraete::stopThread(){

DWORD dw;
GetExitCodeThread(h_messThread, &dw);
TerminateThread(h_messThread, dw);
value1=value2=-1;
messflag=-1;

}

int Messgeraete::getMessflag(){ return messflag; }
GeneralRe: COM1 Pin
David Crow12-Aug-03 2:35
David Crow12-Aug-03 2:35 
GeneralRe: COM1 Pin
Anonymous12-Aug-03 3:34
Anonymous12-Aug-03 3:34 
GeneralRe: COM1 Pin
Anonymous12-Aug-03 9:21
Anonymous12-Aug-03 9:21 
GeneralSOS! Release version crashed Pin
lucy11-Aug-03 9:28
lucy11-Aug-03 9:28 
GeneralRe: SOS! Release version crashed Pin
Maximilien11-Aug-03 9:41
Maximilien11-Aug-03 9:41 
GeneralRe: SOS! Release version crashed Pin
David Crow11-Aug-03 9:48
David Crow11-Aug-03 9:48 
GeneralRe: SOS! Release version crashed Pin
lucy11-Aug-03 9:53
lucy11-Aug-03 9:53 
GeneralRe: SOS! Release version crashed Pin
David Crow11-Aug-03 10:32
David Crow11-Aug-03 10:32 
Generalput my activeX on CfileDailog Pin
sdfdsfa11-Aug-03 6:30
sdfdsfa11-Aug-03 6:30 
GeneralFree the loaded dll Pin
orcun colak11-Aug-03 5:37
orcun colak11-Aug-03 5:37 
GeneralRe: Free the loaded dll Pin
valikac11-Aug-03 12:09
valikac11-Aug-03 12:09 
GeneralRe: Free the loaded dll Pin
igor196011-Aug-03 18:51
igor196011-Aug-03 18:51 
QuestionHow to read from ADO recordset Pin
haritadala11-Aug-03 4:53
haritadala11-Aug-03 4:53 
QuestionHow to delete a dialog class in MFC project? Pin
mr200311-Aug-03 4:09
mr200311-Aug-03 4:09 
AnswerRe: How to delete a dialog class in MFC project? Pin
jhwurmbach11-Aug-03 5:21
jhwurmbach11-Aug-03 5:21 
QuestionWhere to place &quot;OLEMISC_ACTIVATEWHENVISIBLE&quot; at ATL ActiveX control? Pin
vgrigor11-Aug-03 3:59
vgrigor11-Aug-03 3:59 
AnswerRe: Where to place &quot;OLEMISC_ACTIVATEWHENVISIBLE&quot; at ATL ActiveX control? Pin
Mike Dimmick11-Aug-03 11:08
Mike Dimmick11-Aug-03 11:08 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.