示例#1
0
        void gMapControl1_OnMarkerClick(GMapMarker item, MouseEventArgs e)
        {
            //MessageBox.Show(item.ToolTipText);
            string data = item.ToolTipText.Replace("Click for more data", "");

            if (!data.Contains("|"))
            {
                return;
            }
            string[]    splitter    = data.Split('|');
            string      truckNumber = splitter[0].Replace("Truck Number: ", "");
            DateTime    ts          = Convert.ToDateTime(splitter[1].Replace("TimeStamp: ", "").Replace("\\r\\n", ""));
            playBackRow found       = globalData.playbackData.Find(delegate(playBackRow find)
            {
                return(find.TruckNumber == truckNumber && find.timeStamp == ts);
            });

            int rowHandle = gridView1.LocateByValue("timeStamp", found.timeStamp);

            if (rowHandle != DevExpress.XtraGrid.GridControl.InvalidRowHandle)
            {
                gridView1.FocusedRowHandle = rowHandle;

                gridView1.Appearance.FocusedRow.BackColor = Color.Red;
            }
        }
示例#2
0
        void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
        {
            playBackRow selRow = (playBackRow)gridView1.GetRow(e.FocusedRowHandle);

            gMapControl1.Position = new PointLatLng(selRow.Lat, selRow.Lon);
            gridView1.Appearance.FocusedRow.BackColor = Color.Red;
        }
示例#3
0
 private void PlaybackData(bool addCrumbs)
 {
     if (iCounter >= globalData.playbackData.Count)
     {
         mustStop = true;
     }
     else
     {
         playBackRow row = globalData.playbackData[iCounter];
         putTruckOnMap(row);
         iCounter += 1;
     }
 }
示例#4
0
        private void putTruckOnMap(playBackRow row)
        {
            gMapControl1.Position = new PointLatLng(row.Lat, row.Lon);
            GMapOverlay overlay = new GMapOverlay(row.timeStamp.ToString());
            //Image markerImage = Image.FromFile(currentDirectory + geticonName(row.Status));
            Image markerImage = getImage(row.Status);

            markerImage = rotateImageByAngle(markerImage, row.Heading);
            GMapCustomImageMarker marker = new GMapCustomImageMarker(markerImage, new PointLatLng(row.Lat, row.Lon));

            marker.Size        = Size.Add(new System.Drawing.Size(markerImage.Height - 4, markerImage.Width - 4), new System.Drawing.Size(10, 10));
            marker.ToolTipText = "Truck Number: " + row.TruckNumber + "|TimeStamp: " + row.timeStamp.ToString() + Environment.NewLine + "Click for more data";

            overlay.Markers.Add(marker);
            gMapControl1.Overlays.Add(overlay);
        }
示例#5
0
        public void loadBeatPlayback(string Beat, DateTime dtStart, DateTime dtEnd)
        {
            string   connS    = string.Empty;
            TimeSpan ts       = dtStart - DateTime.Now;
            int      startDay = ts.Days;

            if (startDay < 0)
            {
                connS = connAcc;
            }
            else
            {
                connS = connStr;
            }
            try
            {
                globalData.playbackData.Clear();
                using (SqlConnection conn = new SqlConnection(connS))
                {
                    conn.Open();
                    //List<playBackRow> thisTruck = new List<playBackRow>();
                    string SQL = "select TimeStamp, TruckNumber, Driver, CallSign, Contractor, Status, Schedule, Beat, BeatSegment, Speed, Lat, Lon," +
                                 "Heading, HasAlarm, AlarmInfo, RunID from playbackdata WHERE Beat = '" + Beat + "'" +
                                 " AND TimeStamp BETWEEN '" + dtStart + "' AND '" + dtEnd + "'" +
                                 " ORDER BY TimeStamp";
                    SqlCommand    cmd = new SqlCommand(SQL, conn);
                    SqlDataReader rdr = cmd.ExecuteReader();
                    while (rdr.Read())
                    {
                        playBackRow row = new playBackRow();

                        row.timeStamp   = rdr.IsDBNull(0) ? Convert.ToDateTime("01/01/2001 00:00:00") : Convert.ToDateTime(rdr["TimeStamp"].ToString());
                        row.TruckNumber = rdr["TruckNumber"].ToString();
                        row.Driver      = rdr.IsDBNull(2) ? "NO DRIVER" : rdr["Driver"].ToString();
                        row.CallSign    = rdr.IsDBNull(3) ? "NO CS" : rdr["CallSign"].ToString();
                        row.Contractor  = rdr.IsDBNull(4) ? "NO CO" : rdr["Contractor"].ToString();
                        row.Status      = rdr.IsDBNull(5) ? "NO ST" : rdr["Status"].ToString();
                        row.Schedule    = rdr.IsDBNull(6) ? "NO SC" : rdr["Schedule"].ToString();
                        row.Beat        = rdr.IsDBNull(7) ? "NO BT" : rdr["Beat"].ToString();
                        row.BeatSegment = rdr.IsDBNull(8) ? "NO BS" : rdr["BeatSegment"].ToString();
                        row.Speed       = rdr.IsDBNull(9) ? 999 : Convert.ToInt32(rdr["Speed"]);
                        row.Lat         = rdr.IsDBNull(10) ? 0.0 : Convert.ToDouble(rdr["Lat"]);
                        row.Lon         = rdr.IsDBNull(11) ? 0.0 : Convert.ToDouble(rdr["Lon"]);
                        row.Heading     = rdr.IsDBNull(12) ? 361 : Convert.ToInt32(rdr["Heading"]);
                        int hasAlarms = rdr.IsDBNull(13) ? 0 : Convert.ToInt32(rdr["HasAlarm"]);
                        if (hasAlarms == 0)
                        {
                            row.HasAlarms = false;
                        }
                        else
                        {
                            row.HasAlarms = true;
                        }
                        row.AlarmInfo = rdr.IsDBNull(14) ? "NA" : rdr["AlarmInfo"].ToString();
                        row.runID     = rdr.IsDBNull(15) ? new Guid("") : new Guid(rdr["RunID"].ToString());
                        globalData.playbackData.Add(row);
                    }
                    conn.Close();
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.ToString());
            }
        }