/[H7]/trunk/H7 Server/H7 ServerDlg.cpp
ViewVC logotype

Diff of /trunk/H7 Server/H7 ServerDlg.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 5 by hedin, Mon Jan 29 10:52:02 2007 UTC revision 11 by hedin, Mon Jan 29 16:18:31 2007 UTC
# Line 5  Line 5 
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
# Line 70  BEGIN_MESSAGE_MAP(CH7ServerDlg, CDialog) Line 98  BEGIN_MESSAGE_MAP(CH7ServerDlg, 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    
# Line 104  BOOL CH7ServerDlg::OnInitDialog() Line 134  BOOL CH7ServerDlg::OnInitDialog()
134    
135  /**********************************************************************/  /**********************************************************************/
136          // TODO: Add extra initialization here          // TODO: Add extra initialization here
137            
138            ServerInit();
139    
140  /**********************************************************************/  /**********************************************************************/
141          return TRUE;  // return TRUE  unless you set the focus to a control          return TRUE;  // return TRUE  unless you set the focus to a control
# Line 161  HCURSOR CH7ServerDlg::OnQueryDragIcon() Line 192  HCURSOR CH7ServerDlg::OnQueryDragIcon()
192    
193  void CH7ServerDlg::OnBnClickedStart()  void CH7ServerDlg::OnBnClickedStart()
194  {  {
195          CString Port = NULL;  // Get TCp port
         CString Tmp;  
         m_Port.GetWindowText(Port);  
196          CRegKey reg;          CRegKey reg;
197          reg.Create(HKEY_LOCAL_MACHINE, "SOFTWARE\\Projekt\\Server");          reg.Create(HKEY_LOCAL_MACHINE, "SOFTWARE\\Projekt\\Server");
198          reg.SetStringValue("Port",Port);          unsigned long Port;
199            reg.QueryDWORDValue("Port", Port);
200    
201    // Add's user defined Baud-Rate to regedit before the server start.
202            CString Baud;
203            m_BaudRate.GetWindowText(Baud);
204            reg.SetDWORDValue("BaudRate", atoi(Baud) );
205    
206            StartTcp();
207    }
208    
209    int CH7ServerDlg::StartTcp(void)
210    {
211    // Gets the TCP Port number from regedit.
212            unsigned long Port;
213            CRegKey reg;
214            reg.Create(HKEY_LOCAL_MACHINE, "SOFTWARE\\Projekt\\Server");
215            reg.QueryDWORDValue("Port", Port);
216          reg.Close();          reg.Close();
217    
218    // Restats the TCP Connection
219            TcpServer.Close();
220    
221            TcpServer.Create(Port);
222            TcpServer.Listen();
223    
224          m_Status.SetWindowText(Port);  // Prints TCP Port number to the status box.
225            CString tmp;
226            tmp.Format("%d", Port);
227            m_Port.SetWindowText(tmp);
228    
229            return 0;
230    }
231    
232    void CH7ServerDlg::OnBnClickedRestart()
233    {
234            CWaitCursor wait;               // Musen viser timeglas.
235            CString Port;
236            m_Port.GetWindowText(Port);
237            CRegKey reg;
238            reg.Create(HKEY_LOCAL_MACHINE, "SOFTWARE\\Projekt\\Server");
239            reg.SetDWORDValue("Port", atoi(Port) );
240            
241            CString tmp;
242            m_Serial.GetWindowText(tmp);
243            reg.SetStringValue("Serial",tmp);
244            reg.Close();
245            StartTcp();
246  }  }
247    
248  /*CString CH7ServerDlg::SetTcpPort(CString Port)  void CH7ServerDlg::OnBnClickedTest()
249  {        {
250          CString Tmp;          
251          m_Port.GetWindowText(Tmp);  }
252  //      if( Tmp )  void CH7ServerDlg::ServerInit(void)
253  //              Port = atoi(Tmp);  {
254          MessageBox(Port);          int i;
255            CRegKey reg;
256    // Sets values in baud-rate combo box  
257            m_BaudRate.AddString("1200");                                  
258            m_BaudRate.AddString("2400");                                  
259            m_BaudRate.AddString("4800");   // Don't work, used for error test.                    
260            m_BaudRate.AddString("9600");                                  
261            m_BaudRate.AddString("19200");
262    
263            unsigned long Baud;
264            CString GetBaud;
265            reg.Create(HKEY_LOCAL_MACHINE, "SOFTWARE\\Projekt\\Server");
266            reg.QueryDWORDValue("BaudRate", Baud);
267    
268            switch (Baud)
269            {
270            case 1200:
271                    m_BaudRate.SetCurSel(0);
272                    break;
273            case 2400:
274                    m_BaudRate.SetCurSel(1);
275                    break;
276            case 4800:
277                    m_BaudRate.SetCurSel(2);
278                    break;
279            case 9600:
280                    m_BaudRate.SetCurSel(3);
281                    break;
282            case 19200:
283                    m_BaudRate.SetCurSel(4);
284                    break;
285            default:
286                    m_BaudRate.SetCurSel(3);
287                    break;
288            }
289    
290            m_BaudRate.GetWindowText(GetBaud);
291            reg.SetDWORDValue("BaudRate", atoi(GetBaud) );
292    
293    // Checks how many COM ports there are.
294            std::vector<CString> Serial = GetAvailableComPorts();
295            for (i=0; i<Serial.size(); i++)
296                    m_Serial.AddString(Serial[i]);
297    
298    // Load saved settings from regedit.
299            unsigned long Port;
300            unsigned long BaudRate;
301    
302            // Used to format the loaded values.
303            CString TPort;
304            CString TBaudRate;
305    
306            reg.Create(HKEY_LOCAL_MACHINE, "SOFTWARE\\Projekt\\Server");
307            reg.QueryDWORDValue("Port", Port);
308            reg.QueryDWORDValue("BaudRate", BaudRate);
309    
310            char LoadCom[20];
311            unsigned long size = 20;
312            reg.QueryStringValue("Serial", LoadCom, &size);
313    
314            TPort.Format("%d", Port);
315            TBaudRate.Format("%d", BaudRate);
316    
317            m_Port.SetWindowText(TPort);
318            m_BaudRate.SetWindowText(TBaudRate);
319            m_Serial.SetWindowText(LoadCom);
320    
321    // Checks for valid COM port in regedit.
322            for (i=0; i< Serial.size() ; i++)
323            {
324                    if (LoadCom == Serial[i])
325                    {
326                            m_Serial.SetCurSel(i);
327                            break;
328                    }
329            }
330            if (i == Serial.size() )
331            {
332                    m_Serial.SetCurSel(0);
333                    reg.SetStringValue("Serial", Serial[0]);
334            }
335            reg.Close();
336    
         return Port;  
337  }  }
 */  

Legend:
Removed from v.5  
changed lines
  Added in v.11

  ViewVC Help
Powered by ViewVC 1.1.20