/[H9]/trunk/FlisServer/FlisServerDlg.cpp
ViewVC logotype

Diff of /trunk/FlisServer/FlisServerDlg.cpp

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

revision 81 by kevin, Wed Nov 28 16:24:04 2007 UTC revision 136 by kevin, Mon Dec 3 14:13:20 2007 UTC
# Line 4  Line 4 
4  #include "stdafx.h"  #include "stdafx.h"
5  #include "FlisServer.h"  #include "FlisServer.h"
6  #include "FlisServerDlg.h"  #include "FlisServerDlg.h"
 #include ".\flisserverdlg.h"  
7  #include <vector>  #include <vector>
8    #include ".\flisserverdlg.h"
9    
10  #ifdef _DEBUG  #ifdef _DEBUG
11  #define new DEBUG_NEW  #define new DEBUG_NEW
# Line 51  CFlisServerDlg::CFlisServerDlg(CWnd* pPa Line 51  CFlisServerDlg::CFlisServerDlg(CWnd* pPa
51          : CDialog(CFlisServerDlg::IDD, pParent)          : CDialog(CFlisServerDlg::IDD, pParent)
52  {  {
53          m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);          m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
         db = 0;  
54  }  }
55    
56  void CFlisServerDlg::DoDataExchange(CDataExchange* pDX)  void CFlisServerDlg::DoDataExchange(CDataExchange* pDX)
# Line 65  BEGIN_MESSAGE_MAP(CFlisServerDlg, CDialo Line 64  BEGIN_MESSAGE_MAP(CFlisServerDlg, CDialo
64          ON_WM_PAINT()          ON_WM_PAINT()
65          ON_WM_QUERYDRAGICON()          ON_WM_QUERYDRAGICON()
66          //}}AFX_MSG_MAP          //}}AFX_MSG_MAP
67          ON_BN_CLICKED(IDOK, OnBnClickedOk)          ON_BN_CLICKED(IDCLOSE, OnBnClickedClose)
68          ON_BN_CLICKED(IDCANCEL, OnBnClickedCancel)          ON_BN_CLICKED(IDC_GSMPIN, OnBnClickedGsmpin)
69          ON_BN_CLICKED(IDC_test, OnBnClickedtest)          ON_BN_CLICKED(IDC_Start, OnBnClickedStart)
70  END_MESSAGE_MAP()  END_MESSAGE_MAP()
71    
72    
# Line 102  BOOL CFlisServerDlg::OnInitDialog() Line 101  BOOL CFlisServerDlg::OnInitDialog()
101    
102          // TODO: Add extra initialization here          // TODO: Add extra initialization here
103          StartSerial();          StartSerial();
         //SetPin();  
104          DBConnect();          DBConnect();
105            ResetSms = 0;
106                    
107          return TRUE;  // return TRUE  unless you set the focus to a control          return TRUE;  // return TRUE  unless you set the focus to a control
108  }  }
# Line 158  HCURSOR CFlisServerDlg::OnQueryDragIcon( Line 157  HCURSOR CFlisServerDlg::OnQueryDragIcon(
157  }  }
158  int CFlisServerDlg::StartSerial(void)  int CFlisServerDlg::StartSerial(void)
159  {  {
160            
161          int Baud;          int Baud;
         CString SerialPort = "COM3";  
162    
163            ConfigFile config;
164            try {
165                    config.ReadSettings();
166            } catch(...) {
167                    MessageBox("Could not open config file");
168                    OnOK();
169                    return true;
170            }
171            
172          Baud = 1200;          Baud = 1200;
173          if( Serial.isOpen() ){          if( Serial.isOpen() )
174                  Serial.close();          {
175                  Serial.open( SerialPort, Baud );                  try
176                    {
177                            Serial.close();
178                            Serial.open( config.comport, Baud );
179                    }
180                    catch (exception* e)
181                    {
182                            MessageBox( "Serial.open() exception" );
183                            return 0;
184                    }
185          }          }
186          else {          else
187                  Serial.open( SerialPort, Baud );          {
188                    try
189                    {
190                            Serial.open( config.comport, Baud );
191                    }
192                    catch (exception* e)
193                    {
194                            MessageBox( "Serial.open() exception 2" );
195                            return 0;
196                    }
197          }          }
198            
199                                    
200  return 0;  return 0;
201  }  }
# Line 178  std::vector<unsigned char> CFlisServerDl Line 204  std::vector<unsigned char> CFlisServerDl
204          std::vector<unsigned char> buf;          std::vector<unsigned char> buf;
205          while(Serial.getComstat().cbInQue > 0)          while(Serial.getComstat().cbInQue > 0)
206          {          {
207          unsigned char data = Serial.readByte();                  unsigned char data = Serial.readByte();
208    
209          buf.push_back(data);                  buf.push_back(data);
210          }          }
211          return buf;          return buf;
212  }  }
 void CFlisServerDlg::OnBnClickedOk()  
 {  
         // TODO: Add your control notification handler code here  
         OnOK();  
         if( Serial.isOpen() ){  
                 Serial.close();  
         }  
   
         if (db != 0)  
         {  
                 //db->Close();  
                 delete db;  
                 db=0;  
         }  
 }  
   
 void CFlisServerDlg::OnBnClickedCancel()  
 {  
         // TODO: Add your control notification handler code here  
         OnCancel();  
         if( Serial.isOpen() ){  
                 Serial.close();  
         }  
   
         if (db != 0)  
         {  
                 db->Close();  
                 delete db;  
                 db = 0;  
         }  
 }  
   
 void CFlisServerDlg::OnBnClickedtest()  
 {  
         // TODO: Add your control notification handler code here  
         CString tekst;  
         std::vector<unsigned char> data;  
         data.push_back('a');  
         data.push_back('t');  
         data.push_back('+');  
         data.push_back('c');  
         data.push_back('m');  
         data.push_back('g');  
         data.push_back('r');  
         data.push_back('=');  
         data.push_back('1');  
213    
         writeFrame(data);  
         ReadSms();  
 }  
214  void CFlisServerDlg::writeFrame(std::vector<unsigned char> data)  void CFlisServerDlg::writeFrame(std::vector<unsigned char> data)
215  {  {
216          for (int i=0; i<data.size(); i++)          for (int i=0; i<data.size(); i++)
# Line 245  void CFlisServerDlg::writeFrame(std::vec Line 222  void CFlisServerDlg::writeFrame(std::vec
222          Sleep(100);          Sleep(100);
223    
224  }  }
225  int CFlisServerDlg::SetPin(void)  void CFlisServerDlg::SetPin()
226  {  {
227          CString tekst;          CString tekst;
228          std::vector<unsigned char> data;          std::vector<unsigned char> data;
# Line 263  int CFlisServerDlg::SetPin(void) Line 240  int CFlisServerDlg::SetPin(void)
240          data.push_back('5');          data.push_back('5');
241    
242          writeFrame(data);          writeFrame(data);
243          Sleep(750);  }
244    void CFlisServerDlg::SendSmsData(std::vector<unsigned char> data)
245    {      
246            
247            for (int i=0; i<data.size(); i++)
248            {
249                    Serial.writeByte( data[i] );
250                    Sleep(5);
251            }
252            Serial.writeByte(0x1A);
253            Sleep(3000);
254          if(Serial.getComstat().cbInQue > 0)          if(Serial.getComstat().cbInQue > 0)
255          {          {
256                    CString tekst;
257                  std::vector<unsigned char> answer = readFrame();                  std::vector<unsigned char> answer = readFrame();
258                  Sleep(50);                  Sleep(50);
259                          char array1[25];  
260                          int i;                  for (int i=0; i<answer.size(); i++)
                         for (int i=0; i<answer.size(); i++)  
                         {  
                                 array1[i] = answer[i];  
                         }  
                   
                         for (int i=0; i<answer.size(); i++)  
261                          {                          {
262                                  if ((array1[i] != 0x0A) && (array1[i] != 0x0D))                                  if ((answer[i] != 0x0A) && (answer[i] != 0x0D))
263                                  {                                  {
264                                          tekst.AppendChar(array1[i]);                                          tekst.AppendChar(answer[i]);
265                                  }                                  }
266                          }                          }
267                          m_Textwindow.SetWindowText(tekst);                          AppendText(tekst);
268          }          }
269  return 0;  
270  }  }
271  void CFlisServerDlg::SendSmsData(std::vector<unsigned char> data)  void CFlisServerDlg::SendSmsHead(std::vector<unsigned char> tlfnr)
272  {  {
273          for (int i=0; i<data.size(); i++)          vector<unsigned char> atcommand;
274            atcommand.push_back('a');
275            atcommand.push_back('t');
276            atcommand.push_back('+');
277            atcommand.push_back('c');
278            atcommand.push_back('m');
279            atcommand.push_back('g');
280            atcommand.push_back('s');
281            atcommand.push_back('=');
282            atcommand.push_back('"');
283            int s = (atcommand.size() -1 );
284            
285            for (int i=0; i<(atcommand.size()); i++)
286          {          {
287                  Serial.writeByte( data[i] );                  Serial.writeByte( atcommand[i] );
288                  Sleep(5);                  Sleep(5);
289          }          }
290          Serial.writeByte(0x1A);          
291          Sleep(100);          for (int i=0; i<tlfnr.size(); i++)
   
 }  
 void CFlisServerDlg::SendSmsHead(std::vector<unsigned char> data)  
 {  
         for (int i=0; i<data.size(); i++)  
292          {          {
293                  Serial.writeByte( data[i] );                  Serial.writeByte( tlfnr[i] );
294                  Sleep(5);                  Sleep(5);
295          }          }
296            Serial.writeByte(atcommand[s]);
297          Serial.writeByte(0x0D);          Serial.writeByte(0x0D);
298          Sleep(100);          Sleep(250);
   
299  }  }
300  void CFlisServerDlg::DBConnect()  void CFlisServerDlg::DBConnect()
301  {  {
         db = new CDatabase();  
   
302          CString dsn;          CString dsn;
303          dsn.Format("ODBC;Description=asd;DRIVER=PostgreSQL ANSI;SERVER=192.168.134.132; uid=serrenab;password=furnacemonitor;database=flisfyr");          ConfigFile config;
304          //db->OpenEx(dsn, CDatabase::noOdbcDialog);          try {
305                    config.ReadSettings();
306            } catch(...) {
307                    MessageBox("Could not open config file");
308            }
309                    
310            dsn.Format("ODBC;Description=asd;DRIVER=PostgreSQL ANSI;SERVER=%s; uid=%s;password=%s;database=%s;sslmode=prefer",config.host,config.username, config.password, config.database);
311            db.OpenEx(dsn, CDatabase::noOdbcDialog);
312  }  }
313  void CFlisServerDlg::DBRead()  vector<Commands> CFlisServerDlg::DBReadCommands(void)
314  {  {
315            vector<Commands> buffer;
316    
317            CString SQL, IDnr, CommandID, InstallationsID;
318            SQL = "select id,date_trunc('second', created) as created,executed,commandid,installationid from command WHERE executed IS NULL ORDER BY created ASC LIMIT 1;";
319            CRecordset rs(&db);
320            rs.Open(AFX_DB_USE_DEFAULT_TYPE, SQL);
321            if (rs.GetRecordCount()>0)
322            {
323                    rs.MoveFirst();
324                            
325                    Commands Mycom;
326                    rs.GetFieldValue((short)0, IDnr);
327                    rs.GetFieldValue(3, CommandID);
328                    rs.GetFieldValue(4, InstallationsID);
329                    
330                    Mycom.IDnr = IDnr;
331                    Mycom.CommandID = CommandID;
332                    Mycom.InstallationsID = InstallationsID;
333    
334                    buffer.push_back(Mycom);
335                    rs.MoveNext();
336    
337            }
338            rs.Close();
339            return buffer;
340  }  }
341  void CFlisServerDlg::ReadSms()  void CFlisServerDlg::ReadSms()
342  {  {
343          CString tekst, oldtekst;          CString tekst, oldtekst;
344          Sleep(950);          Sleep(950);             //Holder en pause for at lade hele sms'en komme ind i serial køen.
345          if(Serial.getComstat().cbInQue > 0)          if(Serial.getComstat().cbInQue > 0)
346          {          {
347                  std::vector<unsigned char> answer = readFrame();                  std::vector<unsigned char> answer = readFrame();
348                  Sleep(50);                  //Sleep(50);
349                          char array1[250];  
                         int i;  
                         for (int i=0; i<answer.size(); i++)  
                         {  
                                 array1[i] = answer[i];  
                         }  
                   
350                          for (int i=0; i<answer.size(); i++)                          for (int i=0; i<answer.size(); i++)
351                          {                          {
352                                  if ((array1[i] != 0x0A) && (array1[i] != 0x0D))                                  if ((answer[i] != 0x0A) && (answer[i] != 0x0D))
353                                  {                                  {
354                                          tekst.AppendChar(array1[i]);                                          tekst.AppendChar(answer[i]);
355                                  }                                  }
356                          }                          }
357    
358                          m_Textwindow.GetWindowText(oldtekst);                          AppendText(tekst);
                         oldtekst.Append("\r\n");  
                         oldtekst.Append(tekst);  
                         m_Textwindow.SetWindowText(oldtekst);  
359                          SmsSplit(tekst);                          SmsSplit(tekst);
360          }          }
361  }  }
# Line 356  void CFlisServerDlg::SmsSplit(CString da Line 364  void CFlisServerDlg::SmsSplit(CString da
364          CString FyrData, TlfNr, SmsCount, Temper, Flamme, Flis, FremFejl, PowerFail, oldtekst;          CString FyrData, TlfNr, SmsCount, Temper, Flamme, Flis, FremFejl, PowerFail, oldtekst;
365          char CharData[150];          char CharData[150];
366          strcpy(CharData,data);          strcpy(CharData,data);
367            TlfNr = data.Mid(24,8);
368          int s=22;          FyrData = data.Mid(57,data.GetLength()-3);
         for (int i=0; i<=7; i++)  
         {  
                 TlfNr.AppendChar(CharData[s]);  
                 s++;  
         }  
   
         for (int s=55; s<=(data.GetLength()-3); s++)  
         {  
                 FyrData.AppendChar(CharData[s]);  
         }  
369          FyrData.Append(":");          FyrData.Append(":");
370                    
371          SmsCount = Splitter(FyrData);          SmsCount = Splitter(FyrData);
# Line 376  void CFlisServerDlg::SmsSplit(CString da Line 374  void CFlisServerDlg::SmsSplit(CString da
374          Flis = Splitter(FyrData);          Flis = Splitter(FyrData);
375          FremFejl = Splitter(FyrData);          FremFejl = Splitter(FyrData);
376          PowerFail = Splitter(FyrData);          PowerFail = Splitter(FyrData);
377  ///////////////////////////////////////////////////////////////////////////////////////////////////////                  
378  ///////////////////// Her skal sendes data til databasen //////////////////////////////////////////////                  CString SQL, Textwindow, InstallNR;
379                  m_Textwindow.GetWindowText(oldtekst);                  SQL.Format("select ID from installation where installationphonenr=%s",TlfNr);
380                  oldtekst.Append("\r\n");          
381                  oldtekst.Append("På næste linie kommer SmsCount. \r\n");                  CRecordset rs(&db);
382                  oldtekst.Append(SmsCount);                  rs.Open(AFX_DB_USE_DEFAULT_TYPE, SQL);
383                  oldtekst.Append("\r\n");                  if (rs.GetRecordCount()>0)
384                  oldtekst.Append("På næste linie kommer Temper. \r\n");                  {
385                  oldtekst.Append(Temper);                          rs.MoveFirst();        
386                  oldtekst.Append("\r\n");                          rs.GetFieldValue((short)0,InstallNR);
387                  oldtekst.Append("På næste linie kommer Flamme. \r\n");                  }
388                  oldtekst.Append(Flamme);                  rs.Close();
389                  oldtekst.Append("\r\n");  
390                  oldtekst.Append("På næste linie kommer Flis. \r\n");                  SQL.Format("insert into logtable (logtime,temperature,flamedetector,solidfuelempty,conveyorerror,powerfailure,messagenr,installationnr) Values (now(),%s,'%s','%s','%s','%s',%s,%s)",Temper, Flamme, Flis, FremFejl, PowerFail, SmsCount,InstallNR);
391                  oldtekst.Append(Flis);                  db.ExecuteSQL(SQL);
392                  oldtekst.Append("\r\n");  
393                  oldtekst.Append("På næste linie kommer FremFejl. \r\n");                  AppendText("Sms added to Log");
394                  oldtekst.Append(FremFejl);                  Sleep(150);
                 oldtekst.Append("\r\n");  
                 oldtekst.Append("På næste linie kommer PowerFail. \r\n");  
                 oldtekst.Append(PowerFail);  
                 m_Textwindow.SetWindowText(oldtekst);  
 ///////////////////////////////////////////////////////////////////////////////////////////////////////  
 ///////////////////// Her skal sendes data til databasen //////////////////////////////////////////////  
395  }  }
396  CString CFlisServerDlg::Splitter(CString& fyrdata)  CString CFlisServerDlg::Splitter(CString& fyrdata)
397  {  {
# Line 412  CString CFlisServerDlg::Splitter(CString Line 404  CString CFlisServerDlg::Splitter(CString
404                          fyrdata = fyrdata.Right( fyrdata.GetLength() - pos -1);                          fyrdata = fyrdata.Right( fyrdata.GetLength() - pos -1);
405                  }                  }
406          return Output;          return Output;
407    }
408    void CFlisServerDlg::OnBnClickedClose()
409    {
410            // TODO: Add your control notification handler code here
411            continueThread = 0;
412            DeleteSms();
413    
414            Sleep(500);
415            if( Serial.isOpen() )
416            {
417                    Serial.close();
418            }
419            
420            if(db.IsOpen())
421            {
422                    db.Close();
423            }
424            
425            OnOK();
426    
427    }
428    
429    void CFlisServerDlg::OnBnClickedGsmpin()
430    {
431            // TODO: Add your control notification handler code here
432            m_Textwindow.SetWindowText("Indsætter Pinkode, efterfuldt af 60sec pause");
433            UpdateWindow();
434            SetPin();
435            Sleep(50000);
436    
437            while (Serial.getComstat().cbInQue > 0)
438            {
439                    Serial.readByte(); //Flush the incoming queue
440            }
441    
442            OnBnClickedStart();
443    }
444    void CFlisServerDlg::DeleteSms()
445    {
446            vector<unsigned char> atcommand;
447            atcommand.push_back('a');
448            atcommand.push_back('t');
449            atcommand.push_back('+');
450            atcommand.push_back('c');
451            atcommand.push_back('m');
452            atcommand.push_back('g');
453            atcommand.push_back('d');
454            atcommand.push_back('=');
455            atcommand.push_back('1');
456            atcommand.push_back(',');
457            atcommand.push_back('3');
458    
459            writeFrame(atcommand);
460            Sleep(500);
461    }
462    UINT threadWrapper(LPVOID thread)
463    {
464            CFlisServerDlg *t = (CFlisServerDlg*) thread;
465            t->runthread();
466            return 0;
467    }
468    
469    void CFlisServerDlg::startthread()
470    {
471            AfxBeginThread(threadWrapper, (LPVOID) this);
472    }
473    
474    void CFlisServerDlg::runthread()
475    {
476            while (continueThread != 0)
477            {
478                    Reader();
479            }
480    }
481    void CFlisServerDlg::Reader()
482    {
483            if(Serial.getComstat().cbInQue > 0)
484                    {
485                            Sleep(250);
486                            std::vector<unsigned char> answer = readFrame();
487                            Sleep(500);
488                            CString tekst, oldtekst;
489                            int lol;
490                    
491                            for (int i=0; i<answer.size(); i++)
492                            {
493                                    if ((answer[i] != 0x0A) && (answer[i] != 0x0D))
494                                    {
495                                            tekst.AppendChar(answer[i]);
496                                    }
497                            }
498                            tekst.Append(":");
499    
500                            CString command;
501                            bool plus;
502                                    int pos = tekst.Find('+',0);
503                                    if (pos != -1)
504                                    {
505                                            plus = true;
506                                            tekst = tekst.Right( tekst.GetLength() - pos -1);
507                                            pos = tekst.Find(':');
508                                            command = tekst.Left(pos);
509                                            tekst = tekst.Right( tekst.GetLength() - pos -1);
510                                    }
511                            
512                            
513                            if(tekst == "OK")
514                            {      
515                                    AppendText("OK tekst modtaget");
516                            }
517                            else if (tekst == "error")
518                            {
519                                    CString send;
520                                    send.Append("error tekst");
521                                    send.Append("\r\n");
522                                    send.Append(tekst);
523                                    AppendText(send);
524                            }
525                            else if (plus == true)
526                            {
527                                    if (command == "cmti")
528                                    {
529                                            CString smscount, oldteskst;
530                                            int pos = tekst.Find(',',0);
531                                            if (pos != -1)
532                                            {
533                                                    smscount = tekst.Right( tekst.GetLength() - pos -1);
534                                                    smscount.Remove(':');
535                                                    ResetSms++;
536                                            }
537                                                    ////////////////Read sms ting//////////////////
538                                                    std::vector<unsigned char> data;
539                                                    data.push_back('a');
540                                                    data.push_back('t');
541                                                    data.push_back('+');
542                                                    data.push_back('c');
543                                                    data.push_back('m');
544                                                    data.push_back('g');
545                                                    data.push_back('r');
546                                                    data.push_back('=');
547                                                    
548                                                    for (int i=0; i< smscount.GetLength(); i++)
549                                                    {
550                                                            data.push_back(smscount[i]);
551                                                    }
552                                                    m_Textwindow.GetWindowText(oldteskst);
553                                                    oldteskst.Append("\r\n");
554                                                    for (int i=0; i<data.size();i++)
555                                                    {
556                                                            oldteskst.AppendChar(data[i]);
557                                                    }
558                                                    m_Textwindow.SetWindowText(oldteskst);
559                                                    writeFrame(data);
560                                                    Sleep(200);
561                                                    ReadSms();
562                                                    ResetSms++;
563    
564                                    }
565                                    else if(command == "wind")
566                                    {
567    
568                                            CString send;
569                                            send.Append("Wind modtaget");
570                                            send.Append("\r\n");
571                                            send.Append(tekst);
572                                            AppendText(send);
573                                    }
574                            }
575                            else
576                            {
577                                    CString send;
578                                    send.Append("Anden tekst end forventet");
579                                    send.Append("\r\n");
580                                    send.Append(tekst);
581                                    AppendText(send);
582                            }
583                            if(ResetSms == 20)
584                            {
585                                    DeleteSms();
586                                    AppendText("Sms'er slettet da vi nåede grænsen");
587                            }
588    
589                    }
590                    if (continueThread == 1)
591                    {
592                            
593                            CString testdata, dataframe,testprint, sIDnr, sCommandID, sInstallationsID, sImei;
594                            int commandtest = 0;
595                            int iAll = 1;
596                            std::vector<Commands> data;
597                            data = DBReadCommands();
598                            for (int i=0; i<data.size(); i++)
599                            {
600                                    sIDnr = data[i].IDnr;
601                                    sCommandID = data[i].CommandID;
602                                    commandtest = atoi(data[i].CommandID);
603    
604                                    if(commandtest > 1)
605                                    {
606                                            sInstallationsID = data[i].InstallationsID;
607                                    }
608                            }
609                            sIDnr = Splitter(testdata);
610                            sCommandID = Splitter(testdata);
611                            sInstallationsID = "0";
612                            if (commandtest > 1)
613                            {
614                                    sInstallationsID = Splitter(testdata);
615                                    iAll = 0;
616                            }
617    
618                            if (sIDnr.GetLength() > 0)
619                            {
620                                    SendConfig(sIDnr,sCommandID,sInstallationsID);
621                            }
622                            Sleep(500);
623                    }
624    }
625    void CFlisServerDlg::SendConfig(CString IDnr,CString CommandID,CString InstallationsID)
626    {
627            CString ServerTlfNr;
628            int i = 0;
629            ServerTlfNr = "29860132";
630                    
631            
632            std::vector<Installation> inst;
633            inst = DBReadPhone(InstallationsID);
634            while (i < inst.size())
635            {
636                    CString TlfNr, Imei, updaterate;
637                    TlfNr.Empty();
638                    Imei.Empty();
639                    updaterate.Empty();
640    
641                    CString dataen = inst[i].InstPhoneNr;
642                    TlfNr.Append(dataen);
643                    CString Imeidata = inst[i].Imei;
644                    Imei.Append(Imeidata);
645                    CString updaterat = inst[i].Updaterate;
646                    updaterate.Append(updaterat);
647                    i++;
648            
649            vector<unsigned char> tlfnr;
650            for (int i=0; i<TlfNr.GetLength(); i++)
651            {
652                    tlfnr.push_back(TlfNr[i]);
653            }
654            
655            int calcimei;
656            __int64 buf;
657    
658            buf = atof(Imei);
659            
660            calcimei = tversum(buf);
661            
662            Imei.Format("%d",calcimei);
663            
664            SendSmsHead(tlfnr);
665            Sleep(250);
666            
667            vector<unsigned char> smsdata;
668            
669            for (int i=0; i<Imei.GetLength(); i++)
670            {
671                    smsdata.push_back(Imei[i]);
672            }
673            smsdata.push_back(':');
674            for (int i=0; i<ServerTlfNr.GetLength(); i++)
675            {
676                    smsdata.push_back(ServerTlfNr[i]);
677            }
678            smsdata.push_back(':');
679            for (int i=0; i<updaterate.GetLength(); i++)
680            {
681                    smsdata.push_back(updaterate[i]);
682            }
683    
684            SendSmsData(smsdata);
685            Sleep(500);
686            
687            }
688                    CString SQL, Textwindow;
689                    SQL.Format("update command set executed=now() where id=%s",IDnr);
690                    db.ExecuteSQL(SQL);
691                    AppendText("Command executed");
692                    Sleep(150);
693    
694    }
695    vector<Installation> CFlisServerDlg::DBReadPhone(CString sInstallationsID)
696    {
697            vector<Installation> buffer;
698    
699            CString SQL, phonenr, imei, updaterate;
700            int installernull;
701            Installation Myinst;
702            installernull = atoi(sInstallationsID);
703            if (installernull > 1)
704            {
705                    SQL.Format("select installationphonenr, imei, updaterate from installation WHERE id = %s", sInstallationsID);
706            }
707            else if(installernull < 2)
708            {
709                    SQL.Format("select installationphonenr, imei, updaterate from installation");
710            }
711            CRecordset rs(&db);
712            rs.Open(AFX_DB_USE_DEFAULT_TYPE, SQL);
713            if (rs.GetRecordCount()>0)
714            {
715                    rs.MoveFirst();
716                    while(!rs.IsEOF())
717                    {
718                    
719                            rs.GetFieldValue((short)0,phonenr);
720                            rs.GetFieldValue(1,imei);
721                            rs.GetFieldValue(2,updaterate);
722    
723                            Myinst.InstPhoneNr = phonenr;
724                            Myinst.Imei = imei;
725                            Myinst.Updaterate = updaterate;
726    
727                            buffer.push_back(Myinst);
728                            rs.MoveNext();
729                    }
730            }
731            rs.Close();
732            return buffer;
733    }
734    int CFlisServerDlg::tversum(__int64 input)
735    {
736            int sum = 0;
737            while (input > 0)
738            {
739                    sum += (input %10);
740                    input /= 10;
741            }
742            return sum;
743    }
744    void CFlisServerDlg::OnBnClickedStart()
745    {
746    // TODO: Add your control notification handler code here
747    
748            continueThread = 1;
749            m_Textwindow.SetWindowText("Started");
750            AfxBeginThread(threadWrapper,AfxGetMainWnd());
751    }
752    void CFlisServerDlg::AppendText(CString s)
753    {
754            CString Tekst;
755            m_Textwindow.GetWindowText(Tekst);
756            Tekst.Append("\r\n");
757            Tekst.Append(s);
758            m_Textwindow.SetWindowText(Tekst);
759    
760    }
761    void ConfigFile::ReadSettings()
762    {
763            ifstream file("Server-Settings.ini");
764            if (!file.is_open())
765                    throw("Could not open file");
766    
767            char buf[200];
768            while (!file.eof() ) {
769                    file.getline(buf,200);
770                    CString tmp(buf);
771    
772                    if (tmp.GetAt(0) == '#')
773                            continue;
774    
775                    int pos = tmp.Find('=');
776                    if (pos>0) {
777                            CString key = tmp.Left(pos).Trim().MakeLower();;
778                            CString value = tmp.Right(tmp.GetLength()-pos-1).Trim();
779    
780                            if (key == "host")
781                                    host = value;
782                            else if (key == "username")
783                                    username = value;
784                            else if (key == "password")
785                                    password = value;
786                            else if (key == "database")
787                                    database = value;
788                            else if (key == "comport")
789                                    comport = value;
790                    }
791    
792            }
793    
794            file.close();
795  }  }

Legend:
Removed from v.81  
changed lines
  Added in v.136

  ViewVC Help
Powered by ViewVC 1.1.20