Form1.cs
上传用户:tupian
上传日期:2009-05-04
资源大小:93k
文件大小:6k
源码类别:

GPS编程

开发平台:

C#

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing.Drawing2D;
  6. using System.Drawing.Imaging;
  7. using System.Drawing.Text;
  8. using System.Drawing;
  9. using System.Text;
  10. using System.Windows.Forms;
  11. using System.Windows;
  12. using System.Threading;
  13. using System.IO.Ports;
  14. using System.IO;
  15. using GpsTracer;
  16. namespace GpsTracer
  17. {
  18.     public partial class Form1 : Form
  19.     {
  20.         private reader m_rTh;
  21.         private Mapper m_mapper;
  22.         private Graphics m_graphics;
  23.         private bool m_isDemoMode = false;
  24.         private String m_port = "COM5";
  25.         private bool m_isRunning = false;
  26.         private bool m_log = false;
  27.         private StreamWriter m_logSW;
  28.         public Form1()
  29.         {
  30.             InitializeComponent();
  31.             m_graphics = this.CreateGraphics();
  32.             m_rTh = new reader(m_port);
  33.             m_mapper = new Mapper(m_graphics, 0, 30, 240, 300);
  34.             m_rTh.dataReceived += new reader.DataReceivedEventHandler(parse);
  35.             m_logSW = File.CreateText("GpsTracer.Log");
  36.         }
  37.         private void timer1_Tick(object sender, EventArgs e)
  38.         {
  39.         }
  40.         public void parse(String readed)
  41.         {
  42.             if (m_log)
  43.             {
  44.                 m_logSW.WriteLine(readed);
  45.                 m_logSW.Flush();
  46.             }
  47.             m_mapper.parseAndDraw(readed);
  48.         }
  49.         private void menuItemRunStop_Click(object sender, EventArgs e)
  50.         {
  51.             if (m_isRunning)
  52.             {
  53.                 m_rTh.stop();
  54.             }
  55.             else
  56.             {
  57.                 m_rTh.start(m_isDemoMode);
  58.             }
  59.             menuItemRunStop.Checked = !menuItemRunStop.Checked;
  60.             m_isRunning = !m_isRunning;
  61.         }
  62.         private void menuItem3_Click(object sender, EventArgs e)
  63.         {
  64.         }
  65.         private void menuItem4_Click(object sender, EventArgs e)
  66.         {
  67.             if (m_rTh != null)
  68.             {
  69.                 m_rTh.stop();
  70.                 Thread.Sleep(1000);
  71.             }
  72.             Application.Exit();
  73.         }
  74.         private void trackBar1_ValueChanged(object sender, EventArgs e)
  75.         {
  76.             if (m_mapper != null)
  77.             {
  78.                 m_mapper.Scale = (float)trackBar1.Value;
  79.                 m_mapper.clearAndDraw();
  80.             }
  81.         }
  82.         private void menuItemDemo_Click(object sender, EventArgs e)
  83.         {
  84.             m_isDemoMode = !m_isDemoMode;
  85.             ((MenuItem)sender).Checked = !((MenuItem)sender).Checked;
  86.         }
  87.         private void menuItemLog_Click(object sender, EventArgs e)
  88.         {
  89.             m_log = !m_log;
  90.             menuItemLog.Checked = !menuItemLog.Checked;
  91.         }
  92.         #region Panning
  93.         private Point touch;
  94.         private void Form1_MouseMove(object sender, MouseEventArgs e)
  95.         {
  96.             if (m_mapper != null)
  97.             {
  98.                 m_mapper.moveCenter(touch.X - e.X, touch.Y - e.Y);
  99.                 m_mapper.draw();
  100.             }
  101.             touch.X = e.X;
  102.             touch.Y = e.Y;
  103.         }
  104.         private void Form1_MouseDown(object sender, MouseEventArgs e)
  105.         {
  106.             touch.X = e.X;
  107.             touch.Y = e.Y;
  108.         }
  109.         private void Form1_MouseUp(object sender, MouseEventArgs e)
  110.         {
  111.             Form1_MouseMove(sender, e);
  112.             m_mapper.clearAndDraw();
  113.         }
  114.         #endregion
  115.         #region LoadSaveMenu
  116.         private void menuItemLoadPath_Click(object sender, EventArgs e)
  117.         {
  118.             if (m_isRunning)
  119.             {
  120.                 menuItemRunStop_Click(sender, e);
  121.             }
  122.             openFileDialog1.ShowDialog();
  123.             
  124.             if (openFileDialog1.FileName.Length > 0)
  125.             {
  126.                 m_mapper.loatPath(openFileDialog1.FileName);
  127.             }
  128.         }
  129.         private void menuItemSavePath_Click(object sender, EventArgs e)
  130.         {
  131.             if (m_isRunning)
  132.             {
  133.                 menuItemRunStop_Click(sender, e);
  134.             }
  135.             saveFileDialog1.ShowDialog();
  136.             if (saveFileDialog1.FileName.Length > 0)
  137.             {
  138.                 m_mapper.savePath(saveFileDialog1.FileName);
  139.             }
  140.         }
  141.         #endregion
  142.         #region ComPortMenu
  143.         private void menuItemCom1_Click(object sender, EventArgs e)
  144.         {
  145.             m_port = "COM1";
  146.             comMenuItemUnchecker();
  147.             ((MenuItem)(sender)).Checked = true;
  148.         }
  149.         private void menuItemCom2_Click(object sender, EventArgs e)
  150.         {
  151.             m_port = "COM2";
  152.             comMenuItemUnchecker();
  153.             ((MenuItem)(sender)).Checked = true;
  154.         }
  155.         private void menuItemCom3_Click(object sender, EventArgs e)
  156.         {
  157.             m_port = "COM3";
  158.             comMenuItemUnchecker();
  159.             ((MenuItem)(sender)).Checked = true;
  160.         }
  161.         private void menuItemCom4_Click(object sender, EventArgs e)
  162.         {
  163.             m_port = "COM4";
  164.             comMenuItemUnchecker();
  165.             ((MenuItem)(sender)).Checked = true;
  166.         }
  167.         private void menuItemCom5_Click(object sender, EventArgs e)
  168.         {
  169.             m_port = "COM5";
  170.             comMenuItemUnchecker();
  171.             ((MenuItem)(sender)).Checked = true;
  172.         }
  173.         private void comMenuItemUnchecker()
  174.         {
  175.             menuItemCom1.Checked = false;
  176.             menuItemCom2.Checked = false;
  177.             menuItemCom3.Checked = false;
  178.             menuItemCom4.Checked = false;
  179.             menuItemCom5.Checked = false;
  180.         }
  181.         #endregion
  182.         private void menuItemCenter_Click(object sender, EventArgs e)
  183.         {
  184.             m_mapper.centerInTheMiddle();
  185.         }
  186.         }
  187. }