Beispiel #1
0
        private void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            if (isTracking)
            {
                Array lines = data.ToArray();
                parsed = ParseNmea(lines);

                ReceivedTextBox.Text = "";
                //foreach (KeyValuePair<string, string> entry in parsed)
                //{
                //    ReceivedTextBox.AppendText(entry.Key + ": " + entry.Value + "\n");
                //    ReceivedTextBox.ScrollToEnd();
                //}
                ReceivedTextBox.AppendText("time: " + parsed["time"]);
                ReceivedTextBox.AppendText("\nlongitude: " + parsed["lon_readable"]);
                ReceivedTextBox.AppendText("\nlatitude: " + parsed["lat_readable"]);
                ReceivedTextBox.AppendText("\nsatellites: " + parsed["sats"]);


                map = new Map();
                map.Layers.Add(OpenStreetMap.CreateTileLayer());
                var center = CalcPosition();
                var sphericalMercatorCoordinate = SphericalMercator.FromLonLat(center.X, center.Y);
                map.Home         = n => n.NavigateTo(sphericalMercatorCoordinate, map.Resolutions[9]);
                MyMapControl.Map = map;

                worker.RunWorkerAsync();
            }
        }
 private void AddDataToReceivedTextBox(string Data)
 {
     // dzieki dispatcherowi kazdy watek moze dodac tekst w dowolnej chwili
     Dispatcher.BeginInvoke((Action)(() => {
         ReceivedTextBox.Text += Data;
         ReceivedTextBox.ScrollToEnd();
     }));
 }
Beispiel #3
0
 private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)              //串口数据接收事件
 {
     if (!ReceivedValueRadioButton.Checked)                                                //若接收模式为字符模式
     {
         string str = serialPort1.ReadExisting();                                          //字符串方式读
         ReceivedTextBox.AppendText(str);                                                  //接收文本框添加接收数据内容
     }
     else                                                                                  //若接收模式为数值模式
     {
         byte   data = (byte)serialPort1.ReadByte();                                       //将从串口接收的int型数值转换为byte型数值(相当于C语言中的unchar)
         string str  = Convert.ToString(data, 16).ToUpper();                               //将byte型转为十六进制字符串
         ReceivedTextBox.AppendText("0x" + (str.Length % 2 == 1 ? str + "0" : str) + " "); //若为一位则在前面补0
     }
 }
 private void ReceivedTextBox_TextChanged(object sender, EventArgs e)
 {
     ReceivedTextBox.SelectionStart = ReceivedTextBox.Text.Length;
     ReceivedTextBox.ScrollToCaret();
 }