/[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 110 by kevin, Fri Nov 30 16:03:46 2007 UTC revision 121 by kevin, Sun Dec 2 12:03:03 2007 UTC
# Line 5  Line 5 
5  #include "FlisServer.h"  #include "FlisServer.h"
6  #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 64  BEGIN_MESSAGE_MAP(CFlisServerDlg, CDialo Line 65  BEGIN_MESSAGE_MAP(CFlisServerDlg, CDialo
65          ON_WM_QUERYDRAGICON()          ON_WM_QUERYDRAGICON()
66          ON_MESSAGE(UWM_MYMESSAGE, OnShowString)          ON_MESSAGE(UWM_MYMESSAGE, OnShowString)
67          //}}AFX_MSG_MAP          //}}AFX_MSG_MAP
         ON_BN_CLICKED(IDC_test, OnBnClickedtest)  
68          ON_BN_CLICKED(IDCLOSE, OnBnClickedClose)          ON_BN_CLICKED(IDCLOSE, OnBnClickedClose)
69          ON_BN_CLICKED(IDC_GSMPIN, OnBnClickedGsmpin)          ON_BN_CLICKED(IDC_GSMPIN, OnBnClickedGsmpin)
70            ON_BN_CLICKED(IDC_Start, OnBnClickedStart)
71  END_MESSAGE_MAP()  END_MESSAGE_MAP()
72    
73    
# Line 102  BOOL CFlisServerDlg::OnInitDialog() Line 103  BOOL CFlisServerDlg::OnInitDialog()
103          // TODO: Add extra initialization here          // TODO: Add extra initialization here
104          StartSerial();          StartSerial();
105          DBConnect();          DBConnect();
106          continueThread = true;          ResetSms = 0;
         //AfxBeginThread(MyMainThread,0,THREAD_PRIORITY_NORMAL,0,0,NULL);  
107                    
108          return TRUE;  // return TRUE  unless you set the focus to a control          return TRUE;  // return TRUE  unless you set the focus to a control
109  }  }
# Line 184  std::vector<unsigned char> CFlisServerDl Line 184  std::vector<unsigned char> CFlisServerDl
184          }          }
185          return buf;          return buf;
186  }  }
 void CFlisServerDlg::OnBnClickedtest()  
 {  
         // TODO: Add your control notification handler code here  
   
 /*  
 ////////////////DBRead stuff//////////////////  
         CString testdata;  
         std::vector<Commands> data;  
         data = DBRead();  
         for (int i=0; i<data.size(); i++)  
         {  
                 testdata.Append(data[i].IDnr);  
                 testdata.Append(data[i].CommandID);  
                 testdata.Append(data[i].InstallationsID);  
         }  
         m_Textwindow.SetWindowText(testdata);  
 ////////////////DBRead stuff//////////////////    
 */  
 /*        
 ///////////////Send sms stuff/////////////////  
         vector<unsigned char> tlfnr;  
         vector<unsigned char> smsdata;  
         tlfnr.push_back('2');  
         tlfnr.push_back('9');  
         tlfnr.push_back('7');  
         tlfnr.push_back('2');  
         tlfnr.push_back('2');  
         tlfnr.push_back('6');  
         tlfnr.push_back('0');  
         tlfnr.push_back('3');  
187    
         SendSmsHead(tlfnr);  
   
          //35:29860132:75 <--- demo pakke;  
         smsdata.push_back('3');  
         smsdata.push_back('5');  
         smsdata.push_back(':');  
         smsdata.push_back('2');  
         smsdata.push_back('9');  
         smsdata.push_back('8');  
         smsdata.push_back('6');  
         smsdata.push_back('0');  
         smsdata.push_back('1');  
         smsdata.push_back('3');  
         smsdata.push_back('2');  
         smsdata.push_back(':');  
         smsdata.push_back('7');  
         smsdata.push_back('5');  
   
         SendSmsData(smsdata);  
 ///////////////Send sms stuff/////////////////  
 */  
 /*  
 ////////////Start Tråd////////////////////////  
         MyThread *t = new MyThread(AfxGetMainWnd());  
         t->start();  
 ////////////Start Tråd////////////////////////  
 */  
         AfxBeginThread(threadWrapper,AfxGetMainWnd());  
   
 }  
188  void CFlisServerDlg::writeFrame(std::vector<unsigned char> data)  void CFlisServerDlg::writeFrame(std::vector<unsigned char> data)
189  {  {
190          for (int i=0; i<data.size(); i++)          for (int i=0; i<data.size(); i++)
# Line 274  void CFlisServerDlg::SetPin() Line 214  void CFlisServerDlg::SetPin()
214          data.push_back('5');          data.push_back('5');
215    
216          writeFrame(data);          writeFrame(data);
217          Sleep(750);  /*      Sleep(750);
218          if(Serial.getComstat().cbInQue > 0)          if(Serial.getComstat().cbInQue > 0)
219          {          {
220                  std::vector<unsigned char> answer = readFrame();                  std::vector<unsigned char> answer = readFrame();
# Line 295  void CFlisServerDlg::SetPin() Line 235  void CFlisServerDlg::SetPin()
235                          }                          }
236                          m_Textwindow.SetWindowText(tekst);                          m_Textwindow.SetWindowText(tekst);
237          }          }
238    */
239  }  }
240  void CFlisServerDlg::SendSmsData(std::vector<unsigned char> data)  void CFlisServerDlg::SendSmsData(std::vector<unsigned char> data)
241  {        {      
# Line 430  void CFlisServerDlg::SmsSplit(CString da Line 371  void CFlisServerDlg::SmsSplit(CString da
371          char CharData[150];          char CharData[150];
372          strcpy(CharData,data);          strcpy(CharData,data);
373    
374          int s=22;          int s=24;
375          for (int i=0; i<=7; i++)          for (int i=0; i<=7; i++)
376          {          {
377                  TlfNr.AppendChar(CharData[s]);                  TlfNr.AppendChar(CharData[s]);
378                  s++;                  s++;
379          }          }
380    
381          for (int s=55; s<=(data.GetLength()-3); s++)          for (int s=57; s<=(data.GetLength()-3); s++)
382          {          {
383                  FyrData.AppendChar(CharData[s]);                  FyrData.AppendChar(CharData[s]);
384          }          }
# Line 450  void CFlisServerDlg::SmsSplit(CString da Line 391  void CFlisServerDlg::SmsSplit(CString da
391          FremFejl = Splitter(FyrData);          FremFejl = Splitter(FyrData);
392          PowerFail = Splitter(FyrData);          PowerFail = Splitter(FyrData);
393  ///////////////////////////////////////////////////////////////////////////////////////////////////////  ///////////////////////////////////////////////////////////////////////////////////////////////////////
394  ///////////////////// Her skal sendes data til databasen //////////////////////////////////////////////  ///////////////////// Her skal sendes data til databasen ////NÅR HEDIN KAN SENDE SMS///////////////////
395                  m_Textwindow.GetWindowText(oldtekst);                  m_Textwindow.GetWindowText(oldtekst);
396                  oldtekst.Append("\r\n");                  oldtekst.Append("\r\n");
397                  oldtekst.Append("På næste linie kommer SmsCount. \r\n");                  oldtekst.Append("På næste linie kommer SmsCount. \r\n");
# Line 492  CString CFlisServerDlg::Splitter(CString Line 433  CString CFlisServerDlg::Splitter(CString
433  void CFlisServerDlg::OnBnClickedClose()  void CFlisServerDlg::OnBnClickedClose()
434  {  {
435          // TODO: Add your control notification handler code here          // TODO: Add your control notification handler code here
436          continueThread = false;          continueThread = 0;
437            DeleteSms();   //<--- crasher, men gider ikke bruge flere af mine penge på at teste det med sms'er, hele close laver crash, bare ikke når jeg stepper. :S
438    
439            Sleep(500);
440          if( Serial.isOpen() )          if( Serial.isOpen() )
441          {          {
442                  Serial.close();                  Serial.close();
# Line 502  void CFlisServerDlg::OnBnClickedClose() Line 446  void CFlisServerDlg::OnBnClickedClose()
446          {          {
447          db.Close();          db.Close();
448          }          }
449          DeleteSms();          
450          OnOK();          OnOK();
451    
452  }  }
453    
454  void CFlisServerDlg::OnBnClickedGsmpin()  void CFlisServerDlg::OnBnClickedGsmpin()
455  {  {
456          // TODO: Add your control notification handler code here          // TODO: Add your control notification handler code here
457          SetPin();          SetPin();
458          Sleep(5000);          Sleep(35000);
459            OnBnClickedStart();
460  }  }
461  void CFlisServerDlg::DeleteSms()  void CFlisServerDlg::DeleteSms()
462  {  {
# Line 529  void CFlisServerDlg::DeleteSms() Line 475  void CFlisServerDlg::DeleteSms()
475    
476          writeFrame(atcommand);          writeFrame(atcommand);
477          Sleep(500);          Sleep(500);
         if(Serial.getComstat().cbInQue > 0)  
         {  
                 std::vector<unsigned char> answer = readFrame();  
                 Sleep(50);  
                         CString tekst, oldtekst;  
                         char array1[250];  
                         int i;  
                         for (int i=0; i<answer.size(); i++)  
                         {  
                                 array1[i] = answer[i];  
                         }  
                   
                         for (int i=0; i<answer.size(); i++)  
                         {  
                                 if ((array1[i] != 0x0A) && (array1[i] != 0x0D))  
                                 {  
                                         tekst.AppendChar(array1[i]);  
                                 }  
                         }  
                         if(tekst == "OK")  
                         {        
                                 m_Textwindow.GetWindowText(oldtekst);  
                                 oldtekst.Append("\r\n");  
                                 oldtekst.Append("Old Sms messages deleted");  
                                 m_Textwindow.SetWindowText(oldtekst);  
                         }  
                         else  
                         {  
                                 m_Textwindow.GetWindowText(oldtekst);  
                                 oldtekst.Append("\r\n");  
                                 oldtekst.Append(tekst);  
                                 m_Textwindow.SetWindowText(oldtekst);  
                         }  
         }  
478  }  }
479  LRESULT CFlisServerDlg::OnShowString(WPARAM wParam, LPARAM lParam)  LRESULT CFlisServerDlg::OnShowString(WPARAM wParam, LPARAM lParam)
480  {  {
# Line 586  void CFlisServerDlg::startthread() Line 498  void CFlisServerDlg::startthread()
498    
499  void CFlisServerDlg::runthread()  void CFlisServerDlg::runthread()
500  {  {
501          int count = 0;          while (continueThread != 0)
         while (continueThread = true)  
502          {          {
503                  Reader();                  Reader();
504          }          }
505  }  }
506  void CFlisServerDlg::Reader()  void CFlisServerDlg::Reader()
507  {  {
508          int ResetSms = 0;          if(Serial.getComstat().cbInQue > 0)
         while(1)  
         {  
                 if(Serial.getComstat().cbInQue > 0)  
509                  {                  {
510                            Sleep(250);
511                          std::vector<unsigned char> answer = readFrame();                          std::vector<unsigned char> answer = readFrame();
512                          Sleep(500);                          Sleep(500);
513                          CString tekst, oldtekst;                          CString tekst, oldtekst;
# Line 651  void CFlisServerDlg::Reader() Line 560  void CFlisServerDlg::Reader()
560                          {                          {
561                                  if (command = "cmti")                                  if (command = "cmti")
562                                  {                                  {
563                                          CString smscount;                                          CString smscount, oldteskst;
564                                          int pos = tekst.Find(',',0);                                          int pos = tekst.Find(',',0);
565                                          if (pos != -1)                                          if (pos != -1)
566                                          {                                          {
# Line 674  void CFlisServerDlg::Reader() Line 583  void CFlisServerDlg::Reader()
583                                                  {                                                  {
584                                                          data.push_back(smscount[i]);                                                          data.push_back(smscount[i]);
585                                                  }                                                  }
586                                                    for (int i=0; i<data.size();i++)
587                                                    {
588                                                    oldteskst.AppendChar(data[i]);
589                                                    }
590                                                    m_Textwindow.SetWindowText(oldteskst);
591                                                  writeFrame(data);                                                  writeFrame(data);
592                                                    Sleep(200);
593                                                  ReadSms();                                                  ReadSms();
594                                                    ResetSms++;
595    
596                                  }                                  }
597                                    else if(command = "wind")
598                                    {
599                                            m_Textwindow.GetWindowText(oldtekst);
600                                            oldtekst.Append("\r\n");
601                                            oldtekst.Append("Først lidt tekst på næste linie\r\n");
602                                            oldtekst.Append(tekst);
603                                            m_Textwindow.SetWindowText(oldtekst);
604                                    }
605                          }                          }
606                          if(ResetSms >= 50)                          if(ResetSms == 50)
607                          {                          {
608                                  DeleteSms();                                  DeleteSms();
609                          }                          }
610    
611                    }
612                    if (continueThread = 1)
613                    {
614                                                    
615                                                    ////////////////DBRead stuff//////////////////
616                            CString testdata, dataframe,testprint, sIDnr, sCommandID, sInstallationsID, sImei;
617                            std::vector<Commands> data;
618                            data = DBRead();
619                            for (int i=0; i<data.size(); i++)
620                            {
621                                    testdata.Append(data[i].IDnr);
622                                    testdata.Append(":");
623                                    testdata.Append(data[i].CommandID);
624                                    testdata.Append(":");
625                                    testdata.Append(data[i].InstallationsID);
626                                    testdata.Append(":");
627                            }
628                            sIDnr = Splitter(testdata);
629                            sCommandID = Splitter(testdata);
630                            sInstallationsID = Splitter(testdata);
631    
632                            if (sIDnr.GetLength() > 0)
633                            {
634                                    DBReadData(sIDnr,sCommandID,sInstallationsID);
635                            }
636                            Sleep(500);
637                            ////////////////DBRead stuff//////////////////  
638                  }                  }
639    }
640    void CFlisServerDlg::DBReadData(CString IDnr,CString CommandID,CString InstallationsID)
641    {
642            CString TlfNr, Imei, ServerTlfNr, updaterate;
643    
644            ServerTlfNr = "29860132";
645                    
646            //kald dbreadphone som du kalder dbread
647            std::vector<Installation> inst;
648            inst = DBReadPhone(InstallationsID);
649            for (int i=0; i<inst.size(); i++)
650            {
651                    CString dataen = inst[i].InstPhoneNr;
652                    TlfNr.Append(dataen);
653                    CString Imeidata = inst[i].Imei;
654                    Imei.Append(Imeidata);
655                    CString updaterat = inst[i].Updaterate;
656                    updaterate.Append(updaterat);
657            }
658            vector<unsigned char> tlfnr;
659            for (int i=0; i<TlfNr.GetLength(); i++)
660            {
661                    tlfnr.push_back(TlfNr[i]);
662            }
663            
664            int calcimei;
665            double buf;
666            Imei.Remove('0');
667    
668            buf = atof(Imei);
669            
670            calcimei = tversum(buf);
671            
672            Imei.Format("%d",calcimei);
673            
674            SendSmsHead(tlfnr);
675            Sleep(500);
676            //35:29860132:75 <--- demo pakke;
677            vector<unsigned char> smsdata;
678            
679            for (int i=0; i<Imei.GetLength(); i++)
680            {
681                    smsdata.push_back(Imei[i]);
682            }
683            smsdata.push_back(':');
684            for (int i=0; i<ServerTlfNr.GetLength(); i++)
685            {
686                    smsdata.push_back(ServerTlfNr[i]);
687            }
688            smsdata.push_back(':');
689            for (int i=0; i<updaterate.GetLength(); i++)
690            {
691                    smsdata.push_back(updaterate[i]);
692          }          }
 }  
693    
694            SendSmsData(smsdata);
695            Sleep(250);
696    
697            CString SQL;
698    
699            SQL.Format("update command set executed=now() where id=%s",IDnr);
700            db.ExecuteSQL(SQL);
701            Sleep(150);
702    
703    }
704    vector<Installation> CFlisServerDlg::DBReadPhone(CString sInstallationsID)
705    {
706            vector<Installation> buffer;
707    
708            CString SQL, phonenr, imei, updaterate;
709            SQL.Format("select installationphonenr, imei, updaterate from installation WHERE id = %s",sInstallationsID);
710            CRecordset rs(&db);
711            rs.Open(AFX_DB_USE_DEFAULT_TYPE, SQL);
712            if (rs.GetRecordCount()>0)
713            {
714                    rs.MoveFirst();
715                    while(!rs.IsEOF())
716                    {
717                    Installation Myinst;
718                    rs.GetFieldValue((short)0,phonenr);
719                    rs.GetFieldValue(1,imei);
720                    rs.GetFieldValue(2,updaterate);
721    
722                    Myinst.InstPhoneNr.Append(phonenr);
723                    Myinst.Imei.Append(imei);
724                    Myinst.Updaterate.Append(updaterate);
725    
726                    buffer.push_back(Myinst);
727                    rs.MoveNext();
728                    }
729            }
730            rs.Close();
731            return buffer;
732    }
733    int CFlisServerDlg::tversum(unsigned input)
734    {
735            int sum = 0;
736            while (input > 0)
737            {
738                    sum += (input %10);
739                    input /= 10;
740            }
741            return sum;
742    }
743    void CFlisServerDlg::OnBnClickedStart()
744    {
745    // TODO: Add your control notification handler code here
746    
747            continueThread = 1;
748    
749            AfxBeginThread(threadWrapper,AfxGetMainWnd());
750    }

Legend:
Removed from v.110  
changed lines
  Added in v.121

  ViewVC Help
Powered by ViewVC 1.1.20