亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gpsprodlg.cpp

?? 一個用VC++做的嵌入式GPS導航的程序
?? CPP
字號:
// GPSProDlg.cpp : implementation file
//

#include "stdafx.h"
#include "GPSPro.h"
#include "GPSProDlg.h"

#include "ConfigDlg.h"



#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// Dialog Data
	//{{AFX_DATA(CAboutDlg)
	enum { IDD = IDD_ABOUTBOX };
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAboutDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	//{{AFX_MSG(CAboutDlg)
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
	//{{AFX_MSG_MAP(CAboutDlg)
		// No message handlers
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CGPSProDlg dialog

CGPSProDlg::CGPSProDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CGPSProDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CGPSProDlg)
	m_strReceChar = _T("");
	m_id = 0;
	m_time = 0;
	m_latitude = _T("");
	m_longlati = _T("");
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CGPSProDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CGPSProDlg)
	DDX_Text(pDX, IDC_RECECHAR, m_strReceChar);
	DDX_Text(pDX, IDC_ID, m_id);
	DDX_DateTimeCtrl(pDX,IDC_TIME,m_time);
	DDX_Text(pDX, IDC_LATITUDE, m_latitude);
	DDX_Text(pDX, IDC_LONGLATI, m_longlati);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CGPSProDlg, CDialog)
	//{{AFX_MSG_MAP(CGPSProDlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_CONFIG, OnConfig)
	ON_BN_CLICKED(IDC_STOP, OnStop)
	ON_BN_CLICKED(IDC_START, OnStart)
	ON_BN_CLICKED(IDC_SAVE, OnSave)
	ON_WM_TIMER()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CGPSProDlg message handlers

BOOL CGPSProDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Add "About..." menu item to system menu.

	// IDM_ABOUTBOX must be in the system command range.
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here
	BaudRates[0]=1200;
	BaudRates[1]=2400;
	BaudRates[2]=4800;
	BaudRates[3]=9600;
	BaudRates[4]=19200;
	BaudRates[5]=38400;
	BaudRates[6]=57600;
	BaudRates[7]=115200;

	PortIDs[0]="COM1:";
	PortIDs[1]="COM2:";
	PortIDs[2]="COM3:";
	PortIDs[3]="COM4:";
	PortIDs[4]="COM5:";
	PortIDs[5]="COM6:";
	PortIDs[6]="COM7:";
	PortIDs[7]="COM8:";
	PortIDs[8]="COM9:";

	PortNo=6;
	BaudRate=2;
	DataBits=3;
	StopBits=ONESTOPBIT;
	Parity=NOPARITY;

	
	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CGPSProDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
	{
		CAboutDlg dlgAbout;
		dlgAbout.DoModal();
	}
	else
	{
		CDialog::OnSysCommand(nID, lParam);
	}
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CGPSProDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CGPSProDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

void CGPSProDlg::OnConfig() 
{
	// TODO: Add your control notification handler code here
	CConfigDlg* Dialog1;
	Dialog1=new CConfigDlg;
	
	Dialog1->BaudRate=BaudRate;
	Dialog1->PortNo=PortNo-1;
	Dialog1->DataBits=DataBits-1;
	Dialog1->StopBits=StopBits;
	Dialog1->Parity=Parity;
	if(Dialog1->DoModal()==IDOK)
	{
		BaudRate = Dialog1->BaudRate;
		PortNo = Dialog1->PortNo;
		DataBits= Dialog1->DataBits;
		StopBits = Dialog1->StopBits;
		Parity = Dialog1->Parity;


		
		if(!m_ceSeries.OpenPort(this,Dialog1->PortNo,Dialog1->BaudRate,Dialog1->Parity,Dialog1->DataBits,Dialog1->StopBits))
		{
			AfxMessageBox("打開串口失敗");
			//SetDlgItemText(IDC_BTN_OPEN,CString("關閉端口"));
		}
		else
		{
			
			m_ceSeries.ClosePort();
			//SetDlgItemText(IDC_BTN_OPEN,CString("打開端口"));
		}
		
		
	}
	delete Dialog1;
	
}

void CGPSProDlg::OnStop() 
{
	// TODO: Add your control notification handler code here
	m_ceSeries.ClosePort();
	KillTimer(1);
}

void CGPSProDlg::OnStart() 
{
	// TODO: Add your control notification handler code here
	m_ceSeries.m_OnSeriesRead = OnSeriesRead;

	m_nTimer = SetTimer(1, 3000, 0);
	
}

void CGPSProDlg::OnSave() 
{
	// TODO: Add your control notification handler code here
	CString FileName(_T(""));
	CFileDialog FileDlg(FALSE,NULL,NULL,OFN_HIDEREADONLY,TEXT("Text Files(*.txt)|*.txt||"));
	if(FileDlg.DoModal()==IDOK)
	{
		FileName=FileDlg.GetPathName();
	}
	if(FileName!=_T(""))
	{
		SaveReceivedToFile(FileName);
	}
}

BOOL CGPSProDlg::SaveReceivedToFile(LPCTSTR FileName)
{
	int i;
	CFile cf;
	DWORD dwBytesToSave=m_strReceChar.GetLength();
	
	if(!cf.Open(FileName,CFile::modeWrite|CFile::modeCreate))
	{
		AfxMessageBox(_T("無法打開Text文件!"));
	}

	cf.Seek(0,CFile::begin);
	unsigned char * buf=new unsigned char[dwBytesToSave];
	for(i=0;i<dwBytesToSave;i++)
	{
		buf[i]=m_strReceChar.GetAt(i);
	}	

	cf.Write(buf,dwBytesToSave);
	
	delete[] buf;
	cf.Close();

	return TRUE;

}

void CGPSProDlg::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	
	if(nIDEvent!=1)
		return ;

	while((m_strReceived.Find(0x0d)!=-1)&&(m_strReceived.Find(0x0a)!=-1))
	{
		int startLF=m_strReceived.Find(0x0a);
		int endCR=m_strReceived.Find(0x0d);
		if(startLF>endCR)
			endCR=m_strReceived.Find(0x0d,startLF);
		CString msg= m_strReceived.Mid(startLF+1,endCR-startLF-1);
		m_strReceived.Delete(0,endCR+1);

		if(msg.Left(6).Compare("$GPRMC")!=0)
			continue;
		msg.Delete(0,msg.Find(',')+1);
	
		char* pTime=msg.GetBuffer(msg.GetLength()+1);
		int hour,min,sec;
		char temp[9];
		memset(temp,0,9);
		memcpy(temp,pTime,2);
		memcpy(temp+3,pTime+2,2);
		memcpy(temp+6,pTime+4,2);
		hour=atoi(temp);
		min=atoi(temp+3);
		sec=atoi(temp+6);
		msg.ReleaseBuffer();
		msg.Delete(0,msg.Find(',')+1);

		if(msg.GetAt(0)!='A')
			continue;
		msg.Delete(0,msg.Find(',')+1);
//采集到的緯度顯示在edit中
		CString longitude=msg.Left(2);
		longitude+="度";
		longitude+=msg.Mid(2,6);
		longitude+="分";
		msg.Delete(0,msg.Find(',')+1);
		if(msg.GetAt(0)=='N')
			longitude.Insert(0,"北緯");
		if(msg.GetAt(0)=='S')
			longitude.Insert(0,"南緯");
		msg.Delete(0,msg.Find(',')+1);
		SetDlgItemText(IDC_LONGLATI,longitude);
		UpdateData(FALSE);
	
		
//采集到經度顯示到edit中
		CString latitude=msg.Left(3);
		latitude+="度";
		latitude+=msg.Mid(3,6);
		latitude+="分";
		msg.Delete(0,msg.Find(',')+1);
		if(msg.GetAt(0)=='E')
			latitude.Insert(0,"東經");
		if(msg.GetAt(0)=='W')
			latitude.Insert(0,"西經");
		msg.Delete(0,msg.Find(',')+1);
		SetDlgItemText(IDC_LATITUDE,latitude);
		UpdateData(FALSE);

		

//采集到的顯示時間
		char* pDate=msg.GetBuffer(msg.GetLength()+1);
		int day,mon,year;
		memset(temp,0,9);
		memcpy(temp,pDate,2);
		memcpy(temp+3,pDate+2,2);
		memcpy(temp+6,pDate+4,2);
		day=atoi(temp);
		mon=atoi(temp+3);
		year=atoi(temp+6);
		if((year>40)&&(year<97))
			continue;
		if(year>40)
			year+=1900;
		else
			year+=2000;
		CTime t(year,mon,day,hour,min,sec);
		CString t2;
		
		msg.ReleaseBuffer();
		msg.Delete(0,msg.Find(',')+1);

		t = CTime::GetCurrentTime();
		t2 = t.Format("%Y:%M:%D:%H:%M:%S");
		//SetDlgItemText(IDC_TIME,t2);
		::SetDlgItemText(AfxGetMainWnd()->m_hWnd,IDC_TIME,t2);
		UpdateData(FALSE);



		

	}
	
	CDialog::OnTimer(nIDEvent);
}

void CGPSProDlg::OnSeriesRead(CWnd *pWnd, BYTE *buf, int bufLen)
{
	CGPSProDlg *pDlg = (CGPSProDlg*)pWnd;
	CEdit * pEdit;
	pEdit = (CEdit*)pDlg->GetDlgItem(IDC_RECECHAR);

	CString strRecv = (char*)buf;
	CString strOld;
	pEdit->GetWindowText(strOld);
	pEdit->SetWindowText(strOld + strRecv);

	delete[] buf;

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久影院| 激情六月婷婷久久| 久久69国产一区二区蜜臀| www.亚洲色图| 精品久久国产老人久久综合| 亚洲视频在线一区| 激情综合亚洲精品| 欧美日韩国产一级二级| 中文字幕字幕中文在线中不卡视频| 日韩高清一区在线| 色域天天综合网| 中文字幕在线播放不卡一区| 看片网站欧美日韩| 51精品国自产在线| 一区二区国产视频| 色综合久久久久久久| 国产农村妇女毛片精品久久麻豆 | 成人性生交大片免费| 欧美一区二区三区成人| 亚洲国产视频一区二区| 色综合色狠狠综合色| 日本一区二区成人在线| 国产传媒欧美日韩成人| 欧美成人a∨高清免费观看| 日韩成人一级大片| 99久久免费精品高清特色大片| 国模娜娜一区二区三区| 国产原创一区二区| 国产不卡视频一区| 欧美专区在线观看一区| 6080国产精品一区二区| 欧美高清在线视频| 亚洲成人黄色影院| 高清不卡一区二区在线| 欧美大白屁股肥臀xxxxxx| 亚洲欧美影音先锋| 免费的国产精品| 成人av片在线观看| 日韩欧美精品在线| 亚洲视频中文字幕| 国产乱子伦视频一区二区三区| 日本精品视频一区二区三区| 欧美videos大乳护士334| 亚洲欧美在线视频观看| 国精品**一区二区三区在线蜜桃| 99r国产精品| 久久综合狠狠综合久久综合88| 亚洲三级电影网站| 国产成人免费xxxxxxxx| 欧美精品在线观看一区二区| 国产精品电影一区二区三区| 男人的j进女人的j一区| 91久久精品一区二区二区| 久久久久久久久99精品| 日韩黄色小视频| 色综合久久天天| 国产精品久久久久影院| 精彩视频一区二区三区 | 国产日韩欧美一区二区三区综合| 亚洲一区二区精品视频| 91亚洲资源网| 欧美国产精品一区二区| 久久aⅴ国产欧美74aaa| 欧美精品一二三四| 亚洲综合色视频| 91老师片黄在线观看| 国产精品女同一区二区三区| 韩国视频一区二区| 精品久久一区二区| 麻豆免费精品视频| 欧美一区二区三区四区在线观看| 亚洲成a人片在线不卡一二三区| 色综合天天综合| 国产精品女主播av| 不卡av免费在线观看| 亚洲国产成人午夜在线一区| 国产精品一区二区三区四区| 久久色在线视频| 精品一区二区三区免费视频| 欧美成人精品3d动漫h| 看片网站欧美日韩| 久久久不卡影院| 成人黄色免费短视频| 国产精品午夜在线观看| 北岛玲一区二区三区四区| 中文字幕在线不卡一区二区三区| 成人福利视频网站| 亚洲精品国产成人久久av盗摄 | 久久99久久99| 26uuu色噜噜精品一区二区| 国产精品一区三区| 中文字幕中文乱码欧美一区二区| 99精品视频一区二区三区| 亚洲精品免费播放| 欧美老肥妇做.爰bbww视频| 蓝色福利精品导航| 中文文精品字幕一区二区| 色天天综合色天天久久| 首页国产欧美日韩丝袜| 久久美女艺术照精彩视频福利播放| 懂色av噜噜一区二区三区av| 悠悠色在线精品| 欧美一级生活片| 成人高清伦理免费影院在线观看| 亚洲在线成人精品| 久久五月婷婷丁香社区| 色综合色狠狠综合色| 久久国产乱子精品免费女| 中文字幕一区二区三区蜜月| 欧美在线观看视频一区二区| 美女视频网站久久| 亚洲人成在线播放网站岛国| 欧美一级国产精品| av资源站一区| 激情久久久久久久久久久久久久久久| 国产片一区二区| 91精品免费在线| 99国产精品国产精品久久| 免费观看久久久4p| 亚洲综合999| 欧美国产日韩亚洲一区| 91精品国产入口| 色综合久久久久综合体 | 国产视频在线观看一区二区三区| 色成年激情久久综合| 国产精品中文字幕一区二区三区| 一区二区三区四区视频精品免费| 久久精品一区四区| 日韩一区二区三区免费观看| 91久久线看在观草草青青| 国产成人av电影在线观看| 美女被吸乳得到大胸91| 亚洲国产精品久久久男人的天堂| 日本一区二区三区视频视频| 日韩一区二区三区电影在线观看 | 亚洲一区二区三区四区五区黄 | 欧美久久久久久蜜桃| 91原创在线视频| 成人免费毛片片v| 久久97超碰国产精品超碰| 日韩成人免费看| 午夜精品福利一区二区三区av| 亚洲欧洲精品天堂一级| 国产精品久久久久久户外露出 | 成人动漫一区二区在线| 久草中文综合在线| 看电视剧不卡顿的网站| 欧美aⅴ一区二区三区视频| 婷婷综合在线观看| 五月天精品一区二区三区| 亚洲一区二区三区视频在线播放 | 精品国产免费视频| 91精品国产全国免费观看| 欧美精品丝袜中出| 91精品国产综合久久福利软件| 欧美巨大另类极品videosbest| 欧美日韩在线播| 欧美日韩二区三区| 91精品欧美综合在线观看最新| 91精品国产一区二区三区蜜臀| 欧美一个色资源| 精品国精品国产尤物美女| 久久久久久久久免费| 久久精品视频在线看| 国产精品久久国产精麻豆99网站| 国产精品久久久久久一区二区三区| 亚洲欧洲性图库| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲国产日韩a在线播放性色| 午夜欧美大尺度福利影院在线看| 日韩1区2区3区| 国产精品白丝jk黑袜喷水| 成人激情图片网| 欧美性色欧美a在线播放| 91精品免费观看| 欧美韩国一区二区| 亚洲六月丁香色婷婷综合久久| 亚洲国产一区二区在线播放| 日本欧美一区二区三区乱码| 国产一本一道久久香蕉| 99国产精品久久久| 日韩三级伦理片妻子的秘密按摩| 久久午夜羞羞影院免费观看| 综合久久国产九一剧情麻豆| 亚洲国产精品久久久久婷婷884| 精品在线播放免费| 91在线porny国产在线看| 欧美久久久久久久久久| 久久精品一区蜜桃臀影院| 夜夜嗨av一区二区三区中文字幕| 免费精品视频最新在线| 99久久久久久| 日韩视频免费观看高清完整版在线观看 | 久久激情五月激情| 色呦呦国产精品| 精品福利一区二区三区 | 免费视频一区二区| 91美女在线观看| 久久色成人在线| 日韩在线卡一卡二|