6 |
#include "H7 ServerDlg.h" |
#include "H7 ServerDlg.h" |
7 |
#include ".\h7 serverdlg.h" |
#include ".\h7 serverdlg.h" |
8 |
#include <vector> |
#include <vector> |
9 |
|
#include "Define.h" |
10 |
|
|
11 |
#ifdef _DEBUG |
#ifdef _DEBUG |
12 |
#define new DEBUG_NEW |
#define new DEBUG_NEW |
267 |
reg.SetStringValue("Serial",tmp); |
reg.SetStringValue("Serial",tmp); |
268 |
reg.Close(); |
reg.Close(); |
269 |
StartTcp(); |
StartTcp(); |
270 |
|
StartSerial(); |
271 |
} |
} |
272 |
|
|
273 |
void CH7ServerDlg::OnBnClickedTest() |
void CH7ServerDlg::OnBnClickedTest() |
274 |
{ |
{ |
275 |
|
|
276 |
} |
} |
277 |
bool CH7ServerDlg::ServerInit(void) |
bool CH7ServerDlg::ServerInit(void) |
278 |
{ |
{ |
370 |
char SerialPort[6]; |
char SerialPort[6]; |
371 |
unsigned long size = 6; |
unsigned long size = 6; |
372 |
unsigned long Baud; |
unsigned long Baud; |
373 |
|
|
374 |
CRegKey reg; |
CRegKey reg; |
375 |
|
|
376 |
|
|
377 |
reg.Create(HKEY_LOCAL_MACHINE, "SOFTWARE\\Projekt\\Server"); |
reg.Create(HKEY_LOCAL_MACHINE, "SOFTWARE\\Projekt\\Server"); |
378 |
|
|
379 |
reg.QueryStringValue("Serial", SerialPort, &size); |
reg.QueryStringValue("Serial", SerialPort, &size); |
380 |
reg.QueryDWORDValue("BaudRate", Baud); |
reg.QueryDWORDValue("BaudRate", Baud); |
381 |
|
|
382 |
HANDLE hComPort; |
// Starter Serial forbindelsen, hvis den ikke allerede er startet. |
383 |
|
if (!H7Serial.isOpen()) |
384 |
hComPort = CreateFile( "COM1", |
H7Serial.open(SerialPort,Baud); |
385 |
GENERIC_READ | GENERIC_WRITE, |
|
386 |
0, |
// Updater status vindue. |
387 |
0, |
UpdateStatus( "LED3: ",H7Serial.readTarget(0) ); |
388 |
OPEN_EXISTING, |
UpdateStatus( "LED4: ",H7Serial.readTarget(1) ); |
389 |
FILE_ATTRIBUTE_NORMAL, |
UpdateStatus( "LED5: ",H7Serial.readTarget(2) ); |
390 |
0 |
UpdateStatus( "Switch2: ",H7Serial.readTarget(3) ); |
391 |
); |
UpdateStatus( "Switch3: ", H7Serial.readTarget(4) ); |
392 |
|
UpdateStatus( "Potmeter: ", H7Serial.readTarget(5) ); |
393 |
// Error check. |
UpdateStatus( "Temperatur: ", H7Serial.readTarget(6) ); |
|
if( hComPort == INVALID_HANDLE_VALUE ){ |
|
|
WriteLastError("Fail\n%s\n"); |
|
|
return 1; |
|
|
} |
|
|
|
|
394 |
|
|
|
DCB dcb, dcb_restore; |
|
|
|
|
|
// DCB structure for com port setup |
|
|
dcb.DCBlength = sizeof(DCB); |
|
|
dcb_restore.DCBlength = sizeof(DCB); |
|
|
|
|
|
// Error check. |
|
|
if( (!GetCommState(hComPort, &dcb)) || |
|
|
(!GetCommState(hComPort, &dcb_restore)) ){ |
|
|
WriteLastError("Fail\n%s\n"); |
|
|
return 2; |
|
|
} |
|
395 |
|
|
|
// Init com port setup |
|
|
dcb.BaudRate = Baud; |
|
|
dcb.ByteSize = 8; |
|
|
dcb.Parity = NOPARITY; |
|
|
dcb.StopBits = ONESTOPBIT; |
|
|
dcb.fDtrControl = DTR_CONTROL_DISABLE; |
|
|
dcb.fRtsControl = RTS_CONTROL_DISABLE; |
|
|
dcb.fParity = FALSE; |
|
|
dcb.fDsrSensitivity = FALSE; |
|
|
|
|
|
if( !SetCommState(hComPort,&dcb) ){ |
|
|
WriteLastError("Fail\n%s\n"); |
|
|
return 3; |
|
|
} |
|
|
|
|
|
// ready to send stuff... |
|
396 |
|
|
397 |
|
H7Serial.writeTarget(LED3,OFF); |
398 |
|
return 0; |
399 |
|
} |
400 |
|
|
401 |
unsigned char receive; |
void CH7ServerDlg::NewLine(void) |
402 |
unsigned long rSize; |
{ |
403 |
CString Tmp; |
CString nLine = ""; |
404 |
ReadFile(hComPort,&receive,1,&rSize,0); |
m_Status.GetWindowText(nLine); |
405 |
if( rSize != 1 ){ |
if( nLine.GetLength() != 0 ) |
406 |
MessageBox( "Error when trying to receive date from serial port" ); |
nLine += "\r\n"; |
407 |
return false; |
m_Status.SetWindowText(nLine); |
408 |
} |
} |
|
Tmp.Format( "%s", &receive ); |
|
|
m_Status.SetWindowText(Tmp); |
|
409 |
|
|
410 |
|
CString CH7ServerDlg::OnOff(int value) |
411 |
|
{ |
412 |
|
CString Test; |
413 |
|
if( value == 0 ) |
414 |
|
Test = "Slukket"; |
415 |
|
else |
416 |
|
Test = "Tændt"; |
417 |
|
|
418 |
|
return CString(Test); |
419 |
|
} |
420 |
|
|
421 |
if( !SetCommState( hComPort, &dcb_restore ) ){ |
void CH7ServerDlg::UpdateStatus(CString name, short value) |
422 |
WriteLastError("Fail\n%s\n"); |
{ |
423 |
return 4; |
CString tmp,StatusWindow; |
424 |
} |
tmp.Format( "%d", value ); |
425 |
|
|
426 |
|
m_Status.GetWindowText(StatusWindow); |
427 |
|
StatusWindow += name; |
428 |
|
StatusWindow += tmp; |
429 |
|
m_Status.SetWindowText(StatusWindow); |
430 |
|
NewLine(); |
431 |
|
|
|
return 0; |
|
432 |
} |
} |