--- trunk/FlisServer/FlisServerDlg.cpp 2007/11/30 16:03:46 110 +++ trunk/FlisServer/FlisServerDlg.cpp 2007/12/03 09:22:26 130 @@ -5,6 +5,7 @@ #include "FlisServer.h" #include "FlisServerDlg.h" #include +#include ".\flisserverdlg.h" #ifdef _DEBUG #define new DEBUG_NEW @@ -64,9 +65,9 @@ ON_WM_QUERYDRAGICON() ON_MESSAGE(UWM_MYMESSAGE, OnShowString) //}}AFX_MSG_MAP - ON_BN_CLICKED(IDC_test, OnBnClickedtest) ON_BN_CLICKED(IDCLOSE, OnBnClickedClose) ON_BN_CLICKED(IDC_GSMPIN, OnBnClickedGsmpin) + ON_BN_CLICKED(IDC_Start, OnBnClickedStart) END_MESSAGE_MAP() @@ -102,8 +103,7 @@ // TODO: Add extra initialization here StartSerial(); DBConnect(); - continueThread = true; - //AfxBeginThread(MyMainThread,0,THREAD_PRIORITY_NORMAL,0,0,NULL); + ResetSms = 0; return TRUE; // return TRUE unless you set the focus to a control } @@ -184,67 +184,7 @@ } return buf; } -void CFlisServerDlg::OnBnClickedtest() -{ - // TODO: Add your control notification handler code here - -/* -////////////////DBRead stuff////////////////// - CString testdata; - std::vector data; - data = DBRead(); - for (int i=0; i tlfnr; - vector 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'); - - 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()); -} void CFlisServerDlg::writeFrame(std::vector data) { for (int i=0; i 0) { std::vector answer = readFrame(); @@ -295,6 +235,7 @@ } m_Textwindow.SetWindowText(tekst); } +*/ } void CFlisServerDlg::SendSmsData(std::vector data) { @@ -311,7 +252,7 @@ CString tekst; std::vector answer = readFrame(); Sleep(50); - char array1[25]; + char array1[150]; int i; for (int i=0; i CFlisServerDlg::DBRead(void) @@ -378,17 +319,17 @@ rs.MoveFirst(); while(!rs.IsEOF()) { - Commands Mycom; - rs.GetFieldValue((short)0, IDnr); - rs.GetFieldValue(3, CommandID); - rs.GetFieldValue(4, InstallationsID); - - Mycom.IDnr = IDnr; - Mycom.CommandID = CommandID; - Mycom.InstallationsID = InstallationsID; + Commands Mycom; + rs.GetFieldValue((short)0, IDnr); + rs.GetFieldValue(3, CommandID); + rs.GetFieldValue(4, InstallationsID); + + Mycom.IDnr = IDnr; + Mycom.CommandID = CommandID; + Mycom.InstallationsID = InstallationsID; - buffer.push_back(Mycom); - rs.MoveNext(); + buffer.push_back(Mycom); + rs.MoveNext(); } } rs.Close(); @@ -430,14 +371,14 @@ char CharData[150]; strcpy(CharData,data); - int s=22; + int s=24; for (int i=0; i<=7; i++) { TlfNr.AppendChar(CharData[s]); s++; } - for (int s=55; s<=(data.GetLength()-3); s++) + for (int s=57; s<=(data.GetLength()-3); s++) { FyrData.AppendChar(CharData[s]); } @@ -450,7 +391,7 @@ FremFejl = Splitter(FyrData); PowerFail = Splitter(FyrData); /////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////////////// Her skal sendes data til databasen ////////////////////////////////////////////// +///////////////////// Her skal sendes data til databasen ////NÅR HEDIN KAN SENDE SMS/////////////////// m_Textwindow.GetWindowText(oldtekst); oldtekst.Append("\r\n"); oldtekst.Append("På næste linie kommer SmsCount. \r\n"); @@ -492,7 +433,10 @@ void CFlisServerDlg::OnBnClickedClose() { // TODO: Add your control notification handler code here - continueThread = false; + continueThread = 0; + 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 + + Sleep(500); if( Serial.isOpen() ) { Serial.close(); @@ -502,15 +446,17 @@ { db.Close(); } - DeleteSms(); + OnOK(); + } void CFlisServerDlg::OnBnClickedGsmpin() { // TODO: Add your control notification handler code here SetPin(); - Sleep(5000); + Sleep(35000); + OnBnClickedStart(); } void CFlisServerDlg::DeleteSms() { @@ -529,40 +475,6 @@ writeFrame(atcommand); Sleep(500); - if(Serial.getComstat().cbInQue > 0) - { - std::vector answer = readFrame(); - Sleep(50); - CString tekst, oldtekst; - char array1[250]; - int i; - for (int i=0; i 0) + if(Serial.getComstat().cbInQue > 0) { + Sleep(250); std::vector answer = readFrame(); Sleep(500); CString tekst, oldtekst; @@ -651,7 +560,7 @@ { if (command = "cmti") { - CString smscount; + CString smscount, oldteskst; int pos = tekst.Find(',',0); if (pos != -1) { @@ -674,18 +583,197 @@ { data.push_back(smscount[i]); } - + for (int i=0; i= 50) + if(ResetSms == 50) { DeleteSms(); } + + } + if (continueThread = 1) + { - + CString testdata, dataframe,testprint, sIDnr, sCommandID, sInstallationsID, sImei; + int commandtest = 0; + int iAll = 1; + std::vector data; + data = DBRead(); + for (int i=0; i 1) + { + testdata.Append(data[i].InstallationsID); + testdata.Append(":"); + } + } + sIDnr = Splitter(testdata); + sCommandID = Splitter(testdata); + sInstallationsID = "0"; + if (commandtest > 1) + { + sInstallationsID = Splitter(testdata); + iAll = 0; + } + + if (sIDnr.GetLength() > 0) + { + DBReadData(sIDnr,sCommandID,sInstallationsID); + } + Sleep(500); + } +} +void CFlisServerDlg::DBReadData(CString IDnr,CString CommandID,CString InstallationsID) +{ + CString ServerTlfNr; + int i = 0; + ServerTlfNr = "29860132"; + + + std::vector inst; + inst = DBReadPhone(InstallationsID); + while (i < inst.size()) + { + CString TlfNr, Imei, updaterate; + TlfNr.Empty(); + Imei.Empty(); + updaterate.Empty(); + + CString dataen = inst[i].InstPhoneNr; + TlfNr.Append(dataen); + CString Imeidata = inst[i].Imei; + Imei.Append(Imeidata); + CString updaterat = inst[i].Updaterate; + updaterate.Append(updaterat); + i++; + + vector tlfnr; + for (int i=0; i smsdata; + + for (int i=0; i CFlisServerDlg::DBReadPhone(CString sInstallationsID) +{ + vector buffer; + + CString SQL, phonenr, imei, updaterate; + int installernull; + Installation Myinst; + installernull = atoi(sInstallationsID); + if (installernull > 1) + { + SQL.Format("select installationphonenr, imei, updaterate from installation WHERE id = %s", sInstallationsID); + } + else if(installernull < 2) + { + SQL.Format("select installationphonenr, imei, updaterate from installation"); + } + CRecordset rs(&db); + rs.Open(AFX_DB_USE_DEFAULT_TYPE, SQL); + if (rs.GetRecordCount()>0) + { + rs.MoveFirst(); + while(!rs.IsEOF()) + { + + rs.GetFieldValue((short)0,phonenr); + rs.GetFieldValue(1,imei); + rs.GetFieldValue(2,updaterate); + + Myinst.InstPhoneNr = phonenr; + Myinst.Imei = imei; + Myinst.Updaterate = updaterate; + + buffer.push_back(Myinst); + rs.MoveNext(); } } -} \ No newline at end of file + rs.Close(); + return buffer; +} +int CFlisServerDlg::tversum(__int64 input) +{ + int sum = 0; + while (input > 0) + { + sum += (input %10); + input /= 10; + } + return sum; +} +void CFlisServerDlg::OnBnClickedStart() +{ +// TODO: Add your control notification handler code here + + continueThread = 1; + + AfxBeginThread(threadWrapper,AfxGetMainWnd()); +}