📄 procsm.cpp
字号:
{
return false;
}
TmpStr1 = GetString(ReceData,&DataPos); //获取GPS接收状态
TmpStr1 = GetString(ReceData,&DataPos); //获取GPS接收纬度
if(!TmpStr1.IsEmpty())
{
*strLatitude = TmpStr1;
}
else
{
return false;
}
TmpStr1 = GetString(ReceData,&DataPos); //获取GPS接收 南北方向
TmpStr1 = GetString(ReceData,&DataPos); //获取GPS接收经度
if(!TmpStr1.IsEmpty())
{
if(TmpStr1.GetLength() >9)
*strLongitude = TmpStr1;
}
else
{
return false;
}
}
return true;
}
///get string
CString CProcSM::GetString(char *pData, int *pos)
{
BYTE i = 0;
char ArrStr[20];
CString RetStr;
RetStr = "";
while (pData[*pos] != ',') {
ArrStr[i] = pData[*pos];
i++; (*pos)++;
if(i == 20){
return RetStr;
}
}
ArrStr[i] = 0;
(*pos)++;
RetStr = ArrStr;
return RetStr;
}
//congstruct the message whitch to be send to the vehicle and then send it to the vehicle;
void CProcSM::SetMessageType(CString strVehicleNumber, CString strSMConttent)
{
CString str2Send("");
if(!m_bWaveComInite)
{
AfxMessageBox("电话系统没有初始化,请初始化电话系统!");
return;
}
str2Send = ConstructSendstr("AT+CMGS=",strVehicleNumber,strSMConttent);
if(str2Send != "")
{
strToBeWriteToComm = str2Send ;
}
str2Send = "";
}
//begin the thread
void CProcSM::BeginThread()
{
::AfxBeginThread(WriteThread,this);
::AfxBeginThread(ProcessThread,this);
}
//set the doc prointer
void CProcSM::SetDocPointer(CGpsSCDoc *pDoc)
{
m_pDoc = pDoc;
}
void CProcSM::WriteToFile(CString FileName,CString sInfo)
{
CFile f;
if(!f.Open(FileName,CFile::modeReadWrite,NULL)) {
if(!f.Open(FileName,CFile::modeCreate | CFile::modeReadWrite,NULL)) {
AfxMessageBox("open file error!");
return;
}
}
f.SeekToEnd();
CString s;
s.Format("%s%c%c",sInfo,'\r','\n');
f.Write(s,s.GetLength());
f.Close();
}
//simulater the driver
void CProcSM::SimulatorDriver()
{
CDiverNumberDlg numberdlg;
CString strToSend("");
numberdlg.m_strDriverNumber = m_strDriverNumber;
if(numberdlg.DoModal() == IDOK)
{
int a =AfxMessageBox("确实要设定车主电话吗?",MB_YESNO);
if(a = IDYES)
{
m_strDriverNumber.Empty();
m_strDriverNumber = numberdlg.m_strDriverNumber;
strToSend = SETHOSTTELNO;
strToSend += m_strDriverNumber;
strToSend += "#";
SetMessageType(m_sVehicleNumber,strToSend);
}
}
}
//change the la and lt
void CProcSM::ChangLGAndLt(CString &strLongitude,CString &strLatitude,CString &strVehicleNO,CString &strTelNumber)
{
((CGpsSCView *)m_pView)->SendGXGY(strLongitude, strLatitude,strVehicleNO,strTelNumber);
}
//systerm inite
BOOL CProcSM::SystermInite(void * pView)
{
CRect rect;
m_pView = (CGpsSCView *)pView;
CSysIniteDlg *pdlg = new CSysIniteDlg();
pdlg->Create(IDD_SYSINITEDLG,NULL);
pdlg->ShowWindow(SW_SHOW);
pdlg->CenterWindow(NULL);
pdlg->m_strIniteText = "正在初始化系统,可能需要较长时间,请等待......";
pdlg->UpdateData(FALSE);
SetStr2Send(WAVECOMINITETEXT);
SleepEx(1000,TRUE);
SetStr2Send("AT+CMGD=1\r");
pdlg->m_strIniteText = "还剩余12秒......";
pdlg->UpdateData(FALSE);
SleepEx(1000,TRUE);
SetStr2Send("AT+CMGD=2\r");
SleepEx(1000,TRUE);
pdlg->m_strIniteText = "还剩余11秒......";
pdlg->UpdateData(FALSE);
SetStr2Send("AT+CMGD=3\r");
SleepEx(1000,TRUE);
pdlg->m_strIniteText = "还剩余10秒......";
pdlg->UpdateData(FALSE);
SetStr2Send("AT+CMGD=4\r");
SleepEx(1000,TRUE);
pdlg->m_strIniteText = "还剩余9秒......";
pdlg->UpdateData(FALSE);
SetStr2Send("AT+CMGD=5\r");
SleepEx(1000,TRUE);
pdlg->m_strIniteText = "还剩余8秒......";
pdlg->UpdateData(FALSE);
SetStr2Send("AT+CMGD=6\r");
SleepEx(1000,TRUE);
pdlg->m_strIniteText = "还剩余7秒......";
pdlg->UpdateData(FALSE);
SetStr2Send("AT+CMGD=7\r");
SleepEx(1000,TRUE);
pdlg->m_strIniteText = "还剩余6秒......";
pdlg->UpdateData(FALSE);
SetStr2Send("AT+CMGD=8\r");
SleepEx(1000,TRUE);
pdlg->m_strIniteText = "还剩余5秒......";
pdlg->UpdateData(FALSE);
SetStr2Send("AT+CMGD=9\r");
SleepEx(1000,TRUE);
pdlg->m_strIniteText = "还剩余4秒......";
pdlg->UpdateData(FALSE);
SetStr2Send("AT+CMGD=10\r");
SleepEx(1000,TRUE);
pdlg->m_strIniteText = "还剩余3秒......";
pdlg->UpdateData(FALSE);
SetStr2Send("AT+CMGD=11\r");
SleepEx(1000,TRUE);
pdlg->m_strIniteText = "还剩余2秒......";
pdlg->UpdateData(FALSE);
SetStr2Send("AT+CMGD=12\r");
SleepEx(1000,TRUE);
pdlg->m_strIniteText = "还剩余1秒......";
pdlg->UpdateData(FALSE);
SetStr2Send("AT+CMGD=13\r");
SleepEx(1000,TRUE);
pdlg->m_strIniteText = "还剩余1秒......";
pdlg->UpdateData(FALSE);
SetStr2Send("AT+CMGD=14\r");
SleepEx(1000,TRUE);
pdlg->m_strIniteText = "还剩余1秒......";
pdlg->UpdateData(FALSE);
SetStr2Send("AT+CMGD=15\r");
SleepEx(1000,TRUE);
pdlg->m_strIniteText = "还剩余1秒......";
pdlg->UpdateData(FALSE);
pdlg->ShowWindow(SW_HIDE);
pdlg->CloseWindow();
pdlg->DestroyWindow();
m_bSysTemInit = TRUE;
return TRUE;
}
void CProcSM::OnGetvehicleposition(CString strItemText)
{
CMainFrame *pMainFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CDlgAsCenterDlg dlg;
bool Flag;
if(pMainFrame == NULL) return;
Flag = pMainFrame->m_wndTree1.GetCarPhoneAndPassword();
if(m_nUserType == 0)
{
if(strItemText.IsEmpty()) {
if(!Flag) {
if(dlg.DoModal() == IDCANCEL) return;
m_sVehicleNumber = dlg.m_strVehicleNo;
m_sVehicleNumber = m_sVehicleNumber.Right(11);
SetMessageType(m_sVehicleNumber,GETPOSITION);
}
else {
m_sVehicleNumber = pMainFrame->m_wndTree1.m_strCarPhone;
SetMessageType(m_sVehicleNumber,GETPOSITION);
m_sGetPositionCar = m_sVehicleNumber;
}
}
else {
CClientinfoSet cSet;
cSet.FindCarPswAndNO(strItemText,m_sVehicleNumber,m_strPassWord);
SetMessageType(m_sVehicleNumber,GETPOSITION);
m_sGetPositionCar = m_sVehicleNumber;
}
}
else
{
if(strItemText.IsEmpty()) {
if(!Flag) {
if(dlg.DoModal() == IDCANCEL) return;
CClientinfoSet cSet;
m_sVehicleNumber = dlg.m_strVehicleNo;
m_sVehicleNumber = m_sVehicleNumber.Right(11);
m_strPassWord = cSet.GetPassword(m_sVehicleNumber);
m_strPassWord += GETPOSITION;
SetMessageType(m_sVehicleNumber,m_strPassWord);
m_sGetPositionCar = m_sVehicleNumber;
}
else {
m_sVehicleNumber = pMainFrame->m_wndTree1.m_strCarPhone;
m_strPassWord = pMainFrame->m_wndTree1.m_strPassWord;
m_strPassWord += GETPOSITION;
SetMessageType(m_sVehicleNumber,m_strPassWord);
m_sGetPositionCar = m_sVehicleNumber;
}
}
else {
CClientinfoSet cSet;
cSet.FindCarPswAndNO(strItemText,m_sVehicleNumber,m_strPassWord);
m_strPassWord += GETPOSITION;
SetMessageType(m_sVehicleNumber,m_strPassWord);
m_sGetPositionCar = m_sVehicleNumber;
}
}
}
//set the lock
void CProcSM::OnSetlock(CString strItemText)
{
CMainFrame *pMainFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CDlgAsCenterDlg dlg;
bool Flag;
if(pMainFrame == NULL) return;
Flag = pMainFrame->m_wndTree1.GetCarPhoneAndPassword();
if(m_nUserType == 0)
{
if(strItemText.IsEmpty()) {
if(!Flag) {
if(dlg.DoModal() == IDCANCEL) return;
m_sVehicleNumber = dlg.m_strVehicleNo;
m_sVehicleNumber = m_sVehicleNumber.Right(11);
SetMessageType(m_sVehicleNumber,SETLOCK);
}
else {
m_sVehicleNumber = pMainFrame->m_wndTree1.m_strCarPhone;
SetMessageType(m_sVehicleNumber,SETLOCK);
}
}
else {
CClientinfoSet cSet;
cSet.FindCarPswAndNO(strItemText,m_sVehicleNumber,m_strPassWord);
SetMessageType(m_sVehicleNumber,SETLOCK);
}
}
else
{
if(strItemText.IsEmpty()) {
if(!Flag) {
if(dlg.DoModal() == IDCANCEL) return;
CClientinfoSet cSet;
m_sVehicleNumber = dlg.m_strVehicleNo;
m_sVehicleNumber = m_sVehicleNumber.Right(11);
m_strPassWord = cSet.GetPassword(m_sVehicleNumber);
m_strPassWord += SETLOCK;
SetMessageType(m_sVehicleNumber,m_strPassWord);
}
else {
m_sVehicleNumber = pMainFrame->m_wndTree1.m_strCarPhone;
m_strPassWord = pMainFrame->m_wndTree1.m_strPassWord;
m_strPassWord += SETLOCK;
SetMessageType(m_sVehicleNumber,m_strPassWord);
}
}
else {
CClientinfoSet cSet;
cSet.FindCarPswAndNO(strItemText,m_sVehicleNumber,m_strPassWord);
m_strPassWord += SETLOCK;
SetMessageType(m_sVehicleNumber,m_strPassWord);
}
}
}
//shut down oil
void CProcSM::OnShutoil(CString strItemText)
{
CMainFrame *pMainFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CDlgAsCenterDlg dlg;
bool Flag;
if(pMainFrame == NULL) return;
Flag = pMainFrame->m_wndTree1.GetCarPhoneAndPassword();
if(m_nUserType == 0)
{
if(strItemText.IsEmpty()) {
if(!Flag) {
if(dlg.DoModal() == IDCANCEL) return;
m_sVehicleNumber = dlg.m_strVehicleNo;
m_sVehicleNumber = m_sVehicleNumber.Right(11);
SetMessageType(m_sVehicleNumber,SHUTOIL);
}
else {
m_sVehicleNumber = pMainFrame->m_wndTree1.m_strCarPhone;
SetMessageType(m_sVehicleNumber,SHUTOIL);
}
}
else {
CClientinfoSet cSet;
cSet.FindCarPswAndNO(strItemText,m_sVehicleNumber,m_strPassWord);
SetMessageType(m_sVehicleNumber,SHUTOIL);
}
}
else
{
if(strItemText.IsEmpty()) {
if(!Flag) {
if(dlg.DoModal() == IDCANCEL) return;
CClientinfoSet cSet;
m_sVehicleNumber = dlg.m_strVehicleNo;
m_sVehicleNumber = m_sVehicleNumber.Right(11);
m_strPassWord = cSet.GetPassword(m_sVehicleNumber);
m_strPassWord += SHUTOIL;
SetMessageType(m_sVehicleNumber,m_strPassWord);
}
else {
m_sVehicleNumber = pMainFrame->m_wndTree1.m_strCarPhone;
m_strPassWord = pMainFrame->m_wndTree1.m_strPassWord;
m_strPassWord += SHUTOIL;
SetMessageType(m_sVehicleNumber,m_strPassWord);
}
}
else {
CClientinfoSet cSet;
cSet.FindCarPswAndNO(strItemText,m_sVehicleNumber,m_strPassWord);
m_strPassWord += SHUTOIL;
SetMessageType(m_sVehicleNumber,m_strPassWord);
}
}
}
//open the lock
void CProcSM::OnOpenlock(CString strItemText)
{
CMainFrame *pMainFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CDlgAsCenterDlg dlg;
CString Str;
bool Flag;
if(pMainFrame == NULL) return;
Flag = pMainFrame->m_wndTree1.GetCarPhoneAndPassword();
if(m_nUserType == 0) {
if(strItemText.IsEmpty()) {
if(!Flag) {
if(dlg.DoModal() == IDCANCEL) return;
m_sVehicleNumber = dlg.m_strVehicleNo;
m_sVehicleNumber = m_sVehicleNumber.Right(11);
Str.Format("确定要对 % s解锁吗?",m_sVehicleNumber);
if(AfxMessageBox(Str,MB_YESNO) == IDNO) return;
SetMessageType(m_sVehicleNumber,OPENLOCK);
}
else {
m_sVehicleNumber = pMainFrame->m_wndTree1.m_strCarPhone;
Str.Format("确定要对 % s解锁吗?",m_sVehicleNumber);
if(AfxMessageBox(Str,MB_YESNO) == IDNO) return;
SetMessageType(m_sVehicleNumber,OPENLOCK);
}
}
else {
CClientinfoSet cSet;
cSet.FindCarPswAndNO(strItemText,m_sVehicleNumber,m_strPassWord);
Str.Format("确定要对 % s解锁吗?",m_sVehicleNumber);
if(AfxMessageBox(Str,MB_YESNO) == IDNO) return;
SetMessageType(m_sVehicleNumber,OPENLOCK);
}
}
else
{
if(strItemText.IsEmpty()) {
if(!Flag) {
if(dlg.DoModal() == IDCANCEL) return;
CClientinfoSet cSet;
m_sVehicleNumber = dlg.m_strVehicleNo;
m_sVehicleNumber = m_sVehicleNumber.Right(11);
m_strPassWord = cSet.GetPassword(m_sVehicleNumber);
m_strPassWord += OPENLOCK;
Str.Format("确定要对 % s解锁吗?",m_sVehicleNumber);
if(AfxMessageBox(Str,MB_YESNO) == IDNO) return;
SetMessageType(m_sVehicleNumber,m_strPassWord);
}
else {
m_sVehicleNumber = pMainFrame->m_wndTree1.m_strCarPhone;
m_strPassWord = pMainFrame->m_wndTree1.m_strPassWord;
m_strPassWord += OPENLOCK;
Str.Format("确定要对 % s解锁吗?",m_sVehicleNumber);
if(AfxMessageBox(Str,MB_YESNO) == IDNO) return;
SetMessageType(m_sVehicleNumber,m_strPassWord);
}
}
else {
CClientinfoSet cSet;
cSet.FindCarPswAndNO(strItemText,m_sVehicleNumber,m_strPassWord);
m_strPassWord += OPENLOCK;
Str.Format("确定要对 % s解锁吗?",m_sVehicleNumber);
if(AfxMessageBox(Str,MB_YESNO) == IDNO) return;
SetMessageType(m_sVehicleNumber,m_strPassWord);
}
}
}
//as normal user change the normal user password
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -