5 |
#include "H7 Server.h" |
#include "H7 Server.h" |
6 |
#include "H7 ServerDlg.h" |
#include "H7 ServerDlg.h" |
7 |
#include ".\h7 serverdlg.h" |
#include ".\h7 serverdlg.h" |
8 |
|
#include <vector> |
9 |
|
|
10 |
#ifdef _DEBUG |
#ifdef _DEBUG |
11 |
#define new DEBUG_NEW |
#define new DEBUG_NEW |
12 |
#endif |
#endif |
13 |
|
|
14 |
|
|
15 |
|
std::vector<CString> GetAvailableComPorts() |
16 |
|
{ |
17 |
|
std::vector<CString> ports; |
18 |
|
|
19 |
|
for (int i = 1; i < 20; i++) |
20 |
|
{ |
21 |
|
CString port; |
22 |
|
port.Format("COM%d", i); |
23 |
|
|
24 |
|
|
25 |
|
HANDLE handle = CreateFile(port, |
26 |
|
GENERIC_READ | GENERIC_WRITE, |
27 |
|
0, |
28 |
|
0, |
29 |
|
OPEN_EXISTING, |
30 |
|
0, |
31 |
|
NULL); |
32 |
|
|
33 |
|
if (handle != INVALID_HANDLE_VALUE) |
34 |
|
{ |
35 |
|
CloseHandle(handle); |
36 |
|
ports.push_back(port); |
37 |
|
} |
38 |
|
} |
39 |
|
return ports; |
40 |
|
} |
41 |
|
|
42 |
// CAboutDlg dialog used for App About |
// CAboutDlg dialog used for App About |
43 |
|
|
44 |
class CAboutDlg : public CDialog |
class CAboutDlg : public CDialog |
98 |
ON_WM_QUERYDRAGICON() |
ON_WM_QUERYDRAGICON() |
99 |
//}}AFX_MSG_MAP |
//}}AFX_MSG_MAP |
100 |
ON_BN_CLICKED(IDC_Start, OnBnClickedStart) |
ON_BN_CLICKED(IDC_Start, OnBnClickedStart) |
101 |
|
ON_BN_CLICKED(IDC_TEST, OnBnClickedTest) |
102 |
|
ON_BN_CLICKED(IDC_RESTART, OnBnClickedRestart) |
103 |
END_MESSAGE_MAP() |
END_MESSAGE_MAP() |
104 |
|
|
105 |
|
|
134 |
|
|
135 |
/**********************************************************************/ |
/**********************************************************************/ |
136 |
// TODO: Add extra initialization here |
// TODO: Add extra initialization here |
137 |
|
|
138 |
|
// Sets values in baud-rate combo box |
139 |
|
m_BaudRate.AddString("1200"); |
140 |
|
m_BaudRate.AddString("2400"); |
141 |
|
m_BaudRate.AddString("4800"); // Don't work, used for error test. |
142 |
|
m_BaudRate.AddString("9600"); |
143 |
|
m_BaudRate.AddString("19200"); |
144 |
|
|
145 |
|
// Checks how many COM ports there are. |
146 |
|
std::vector<CString> Serial = GetAvailableComPorts(); |
147 |
|
for (unsigned int i=0; i<Serial.size(); i++) |
148 |
|
m_Serial.AddString(Serial[i]); |
149 |
|
m_Serial.SetCurSel(0); |
150 |
|
|
151 |
|
// Load saved settings from regedit. |
152 |
|
unsigned long Port; |
153 |
|
unsigned long BaudRate; |
154 |
|
// CString LoadCom; |
155 |
|
|
156 |
|
// Used to format the loaded values. |
157 |
|
CString TPort; |
158 |
|
CString TBaudRate; |
159 |
|
|
160 |
|
CRegKey reg; |
161 |
|
reg.Create(HKEY_LOCAL_MACHINE, "SOFTWARE\\Projekt\\Server"); |
162 |
|
reg.QueryDWORDValue("Port", Port); |
163 |
|
reg.QueryDWORDValue("BaudRate", BaudRate); |
164 |
|
|
165 |
|
char LoadCom[20]; |
166 |
|
unsigned long size = 20; |
167 |
|
reg.QueryStringValue("Serial", LoadCom, &size); |
168 |
|
|
169 |
|
TPort.Format("%d", Port); |
170 |
|
TBaudRate.Format("%d", BaudRate); |
171 |
|
// TLoadCom.Format("%s", TLoadCom); |
172 |
|
|
173 |
|
m_Port.SetWindowText(TPort); |
174 |
|
m_BaudRate.SetWindowText(TBaudRate); |
175 |
|
m_Serial.SetWindowText(LoadCom); |
176 |
|
MessageBox(LoadCom); |
177 |
/**********************************************************************/ |
/**********************************************************************/ |
178 |
return TRUE; // return TRUE unless you set the focus to a control |
return TRUE; // return TRUE unless you set the focus to a control |
179 |
} |
} |
229 |
|
|
230 |
void CH7ServerDlg::OnBnClickedStart() |
void CH7ServerDlg::OnBnClickedStart() |
231 |
{ |
{ |
|
CString Port = NULL; |
|
|
CString Tmp; |
|
|
m_Port.GetWindowText(Port); |
|
232 |
CRegKey reg; |
CRegKey reg; |
233 |
reg.Create(HKEY_LOCAL_MACHINE, "SOFTWARE\\Projekt\\Server"); |
reg.Create(HKEY_LOCAL_MACHINE, "SOFTWARE\\Projekt\\Server"); |
234 |
reg.SetStringValue("Port",Port); |
unsigned long Port; |
235 |
reg.Close(); |
reg.QueryDWORDValue("Port", Port); |
236 |
|
|
237 |
|
CString tmp; |
238 |
|
tmp.Format("%d", Port); |
239 |
|
m_Port.SetWindowText(tmp); |
240 |
|
} |
241 |
|
|
242 |
|
int CH7ServerDlg::StartTcp(void) |
243 |
|
{ |
244 |
|
unsigned long Port; |
245 |
|
CRegKey reg; |
246 |
|
reg.Create(HKEY_LOCAL_MACHINE, "SOFTWARE\\Projekt\\Server"); |
247 |
|
reg.QueryDWORDValue("Port", Port); |
248 |
|
TcpServer.Close(); |
249 |
|
|
250 |
|
TcpServer.Create(Port); |
251 |
|
TcpServer.Listen(); |
252 |
|
return 0; |
253 |
|
} |
254 |
|
|
255 |
|
void CH7ServerDlg::OnBnClickedTest() |
256 |
|
{ |
257 |
|
//**************** <TCP Port section> ****************/ |
258 |
|
CString Port = ""; |
259 |
|
|
260 |
|
m_Port.GetWindowText(Port); |
261 |
|
// Saving Port number in regedit as int |
262 |
|
CRegKey reg; |
263 |
|
reg.Create(HKEY_LOCAL_MACHINE, "SOFTWARE\\Projekt\\Server"); |
264 |
|
reg.SetDWORDValue("Port", atoi(Port) ); |
265 |
|
reg.Close(); |
266 |
|
// Debug info to the status edit box. |
267 |
m_Status.SetWindowText(Port); |
m_Status.SetWindowText(Port); |
268 |
|
//**************** </TCP Port section> ****************/ |
269 |
|
StartTcp(); |
270 |
} |
} |
271 |
|
|
|
/*CString CH7ServerDlg::SetTcpPort(CString Port) |
|
|
{ |
|
|
CString Tmp; |
|
|
m_Port.GetWindowText(Tmp); |
|
|
// if( Tmp ) |
|
|
// Port = atoi(Tmp); |
|
|
MessageBox(Port); |
|
272 |
|
|
273 |
return Port; |
void CH7ServerDlg::OnBnClickedRestart() |
274 |
|
{ |
275 |
|
CWaitCursor wait; // Musen viser timeglas. |
276 |
|
CString Port; |
277 |
|
m_Port.GetWindowText(Port); |
278 |
|
CRegKey reg; |
279 |
|
reg.Create(HKEY_LOCAL_MACHINE, "SOFTWARE\\Projekt\\Server"); |
280 |
|
reg.SetDWORDValue("Port", atoi(Port) ); |
281 |
|
StartTcp(); |
282 |
} |
} |
|
*/ |
|