10 |
#define new DEBUG_NEW |
#define new DEBUG_NEW |
11 |
#endif |
#endif |
12 |
|
|
13 |
|
|
14 |
|
CString Ip, Delay; |
15 |
|
unsigned long Port; |
16 |
|
UINT Status( LPVOID Param ); |
17 |
|
void Start(); |
18 |
|
void startthread(); |
19 |
|
CButton m_led1; |
20 |
|
CButton m_led2; |
21 |
|
CButton m_led3; |
22 |
|
|
23 |
// CAboutDlg dialog used for App About |
// CAboutDlg dialog used for App About |
24 |
|
|
54 |
// CClientDlg dialog |
// CClientDlg dialog |
55 |
|
|
56 |
|
|
|
|
|
57 |
CClientDlg::CClientDlg(CWnd* pParent /*=NULL*/) |
CClientDlg::CClientDlg(CWnd* pParent /*=NULL*/) |
58 |
: CDialog(CClientDlg::IDD, pParent) |
: CDialog(CClientDlg::IDD, pParent) |
59 |
{ |
{ |
72 |
DDX_Control(pDX, IDC_POT, m_pot); |
DDX_Control(pDX, IDC_POT, m_pot); |
73 |
DDX_Control(pDX, IDC_IPADDRESS1, m_ip); |
DDX_Control(pDX, IDC_IPADDRESS1, m_ip); |
74 |
DDX_Control(pDX, IDC_PORT, m_port); |
DDX_Control(pDX, IDC_PORT, m_port); |
75 |
|
DDX_Control(pDX, IDC_DELAY, m_delay); |
76 |
} |
} |
77 |
|
|
78 |
BEGIN_MESSAGE_MAP(CClientDlg, CDialog) |
BEGIN_MESSAGE_MAP(CClientDlg, CDialog) |
81 |
ON_WM_QUERYDRAGICON() |
ON_WM_QUERYDRAGICON() |
82 |
//}}AFX_MSG_MAP |
//}}AFX_MSG_MAP |
83 |
ON_BN_CLICKED(IDC_IPPORT, OnBnClickedIpport) |
ON_BN_CLICKED(IDC_IPPORT, OnBnClickedIpport) |
84 |
|
ON_BN_CLICKED(IDC_Connect, OnBnClickedConnect) |
85 |
END_MESSAGE_MAP() |
END_MESSAGE_MAP() |
86 |
|
|
87 |
|
|
88 |
// CClientDlg message handlers |
// CClientDlg message handlers |
89 |
|
/*Client socket class*/ |
90 |
|
class ClientSocket : public CSocket{ |
91 |
|
public: |
92 |
|
ClientSocket() { }; |
93 |
|
virtual void OnReceive(int nErrorCode); |
94 |
|
virtual void OnSend(int nErrorCode); |
95 |
|
}; |
96 |
BOOL CClientDlg::OnInitDialog() |
BOOL CClientDlg::OnInitDialog() |
97 |
{ |
{ |
98 |
CDialog::OnInitDialog(); |
CDialog::OnInitDialog(); |
121 |
SetIcon(m_hIcon, FALSE); // Set small icon |
SetIcon(m_hIcon, FALSE); // Set small icon |
122 |
|
|
123 |
// TODO: Add extra initialization here |
// TODO: Add extra initialization here |
124 |
|
|
125 |
|
// Get data from regedit |
126 |
CString strip, strport; |
CString strip, strport; |
127 |
char Ip[16]; |
char chaip[16]; |
128 |
char Port[6]; |
char chadelay[16]; |
129 |
CRegKey reg; |
CRegKey reg; |
130 |
unsigned long size = 16; |
unsigned long size = 16; |
131 |
LONG res=reg.Open(HKEY_CLASSES_ROOT,"Project",KEY_READ); |
LONG res=reg.Open(HKEY_LOCAL_MACHINE, "SOFTWARE\\Projekt\\Client",KEY_READ); |
132 |
|
|
133 |
if (res == ERROR_SUCCESS) |
if (res == ERROR_SUCCESS) |
134 |
{ |
{ |
135 |
res=reg.QueryStringValue("IP", Ip,&size); |
res=reg.QueryStringValue("IP", chaip, &size); |
136 |
} |
} |
137 |
|
Ip = chaip; |
138 |
m_ip.SetWindowText(Ip); |
m_ip.SetWindowText(Ip); |
139 |
LONG res2=reg.Open(HKEY_CLASSES_ROOT,"Project",KEY_READ); |
LONG res2=reg.Open(HKEY_LOCAL_MACHINE, "SOFTWARE\\Projekt\\Client",KEY_READ); |
140 |
|
|
141 |
if (res2 == ERROR_SUCCESS) |
if (res2 == ERROR_SUCCESS) |
142 |
{ |
{ |
143 |
res2=reg.QueryStringValue("Port", Port,&size); |
res2=reg.QueryDWORDValue("Port", Port); |
144 |
} |
} |
145 |
m_port.SetWindowText(Port); |
strport.Format("%d",Port); |
146 |
|
m_port.SetWindowText(strport); |
147 |
|
|
148 |
|
LONG res3=reg.Open(HKEY_LOCAL_MACHINE, "SOFTWARE\\Projekt\\Client",KEY_READ); |
149 |
|
|
150 |
|
if (res3 == ERROR_SUCCESS) |
151 |
|
{ |
152 |
|
res3=reg.QueryStringValue("Delay",chadelay,&size); |
153 |
|
} |
154 |
|
Delay = chadelay; |
155 |
|
m_delay.SetWindowText(Delay); |
156 |
reg.Close(); |
reg.Close(); |
157 |
|
|
158 |
|
//connect til server |
159 |
|
Start(); |
160 |
|
|
161 |
|
|
162 |
return TRUE; // return TRUE unless you set the focus to a control |
return TRUE; // return TRUE unless you set the focus to a control |
212 |
} |
} |
213 |
|
|
214 |
|
|
215 |
|
ClientSocket sockClient; |
216 |
|
CString strIp, strPort; |
217 |
|
|
218 |
|
/*Clientsocket class used for client socket connections*/ |
219 |
|
void ClientSocket::OnReceive( int nErrorCode ) |
220 |
|
{ |
221 |
|
char buffer[4096]; |
222 |
|
int size; |
223 |
|
CString buff; |
224 |
|
|
225 |
|
size = Receive(buffer,4095); |
226 |
|
buffer[size] = 0; |
227 |
|
MessageBox(0,buffer,0,MB_OK); |
228 |
|
buff = buffer; |
229 |
|
if( buff == "Tændt" ) |
230 |
|
{ |
231 |
|
char test[10]; |
232 |
|
int i; |
233 |
|
i = m_led1.GetCheck(); |
234 |
|
// _itot(i,test,10); Fejltjeck |
235 |
|
// MessageBox(0,test,0,MB_OK); |
236 |
|
if(i == 0) |
237 |
|
{ |
238 |
|
m_led1.SetCheck(1); |
239 |
|
} |
240 |
|
else |
241 |
|
{ |
242 |
|
m_led1.SetCheck(0); |
243 |
|
} |
244 |
|
} |
245 |
|
else |
246 |
|
{ |
247 |
|
MessageBox(0,"FEJL i onrecive",0,MB_OK); |
248 |
|
} |
249 |
|
Close(); |
250 |
|
} |
251 |
|
void ClientSocket::OnSend( int nErrorCode ) |
252 |
|
{ |
253 |
|
// CString sendnu; skal ikke sende nu |
254 |
|
|
255 |
|
// sendnu = Sendtekst; skal ikke sende nu |
256 |
|
|
257 |
|
// Send(sendnu,sendnu.GetLength()); skal ikke sende nu |
258 |
|
} |
259 |
void CClientDlg::OnBnClickedIpport() |
void CClientDlg::OnBnClickedIpport() |
260 |
{ |
{ |
261 |
CString Ip, Port; |
//Set new port and ip for the server in regedit |
262 |
m_ip.GetWindowText(Ip); |
m_ip.GetWindowText(strIp); |
263 |
m_port.GetWindowText(Port); |
m_port.GetWindowText(strPort); |
264 |
|
m_delay.GetWindowText(Delay); |
265 |
|
int test; |
266 |
|
test = atoi(Delay); |
267 |
|
if(test < 10000 && test > 100) |
268 |
|
{ |
269 |
CRegKey reg; |
CRegKey reg; |
270 |
reg.Create(HKEY_CLASSES_ROOT, "Project"); |
reg.Create(HKEY_LOCAL_MACHINE, "SOFTWARE\\Projekt\\Client"); |
271 |
reg.SetStringValue("","Project-data"); |
reg.SetStringValue("","Project-data"); |
272 |
reg.Create(HKEY_CLASSES_ROOT, "Project"); |
reg.Create(HKEY_LOCAL_MACHINE, "SOFTWARE\\Projekt\\Client"); |
273 |
reg.SetStringValue("IP",Ip); |
reg.SetStringValue("IP",strIp); |
274 |
reg.Create(HKEY_CLASSES_ROOT, "Project"); |
reg.Create(HKEY_LOCAL_MACHINE, "SOFTWARE\\Projekt\\Client"); |
275 |
reg.SetStringValue("Port",Port); |
reg.SetDWORDValue("Port",atoi(strPort)); |
276 |
|
reg.Create(HKEY_LOCAL_MACHINE, "SOFTWARE\\Projekt\\Client"); |
277 |
|
reg.SetStringValue("Delay",Delay); |
278 |
reg.Close(); |
reg.Close(); |
279 |
|
} |
280 |
|
else |
281 |
|
{ |
282 |
|
MessageBox("fejl i delay",0,MB_OK); |
283 |
|
} |
284 |
|
} |
285 |
|
|
286 |
|
void Start() |
287 |
|
{ |
288 |
|
sockClient.Create(); |
289 |
|
if (sockClient.Connect(Ip,Port)) |
290 |
|
{ |
291 |
|
//sockClient.Send(strPort,strPort.GetLength(),NULL); |
292 |
|
//sockClient.Send(data,data.GetLength(),NULL); |
293 |
|
//sockClient.Close(); |
294 |
|
} |
295 |
|
else |
296 |
|
{ |
297 |
|
int error = GetLastError(); |
298 |
|
CString tmp; |
299 |
|
tmp.Format("%d", error); |
300 |
|
} |
301 |
} |
} |
302 |
|
void CClientDlg::OnBnClickedConnect() |
303 |
|
{ |
304 |
|
|
305 |
|
} |
306 |
|
UINT Status( LPVOID Param ) |
307 |
|
{ |
308 |
|
CString status; |
309 |
|
status = "RB1"; |
310 |
|
Sleep(atoi(Delay)); |
311 |
|
sockClient.Send(status,status.GetLength(),NULL); |
312 |
|
startthread(); |
313 |
|
return TRUE; |
314 |
|
} |
315 |
|
void startthread() |
316 |
|
{ |
317 |
|
AfxBeginThread(Status,0,THREAD_PRIORITY_NORMAL,0,0,NULL); |
318 |
|
} |