Example #1
0
        public IRegSEDeviceInfo GetDeviceInfo()
        {
            if (_deviceInfo == null)
            {
                if (!IsConnected)
                {
                    return(null);
                }
                using (var session = new SerialPortSession(_commport))
                {
                    var deviceNameCommand = new DeviceNameCommand();
                    deviceNameCommand.Execute(session.Port);
                    var deviceName  = deviceNameCommand.GetDeviceName();
                    var nameCommand = new NameCommand();
                    nameCommand.Execute(session.Port);
                    var name = nameCommand.GetName();
                    var numberOfPointsCommand = new NumOfPointsCommand();;
                    numberOfPointsCommand.Execute(session.Port);
                    var numberOfPoints = numberOfPointsCommand.GetNumOfPoints();

                    var softwareVersionCommand = new SoftwareVersionCommand();;
                    softwareVersionCommand.Execute(session.Port);
                    var softwareVersion = softwareVersionCommand.GetVersion();

                    var hardwareVersionCommand = new HardwareVersionCommand();;
                    hardwareVersionCommand.Execute(session.Port);
                    var hardwareVersion = hardwareVersionCommand.GetVersion();

                    _deviceInfo = new RegSEDeviceInfo(deviceName, name, softwareVersion, hardwareVersion, numberOfPoints);
                }
            }
            return(_deviceInfo);
        }
Example #2
0
 public void DeleteTracks()
 {
     if (!IsConnected)
     {
         return;
     }
     using (var session = new SerialPortSession(_commport))
     {
         var cmd = new DeleteAllTracksCommand();
         cmd.Execute(session.Port);
     }
 }
 public IGH615MTrack GetTrack(Int16 id)
 {
     lock (this)
     {
         if (_tracks.ContainsKey(id))
         {
             return(_tracks[id]);
         }
         if (!IsConnected)
         {
             return(null);
         }
         GH615MTrack result = null;
         using (var session = new SerialPortSession(_commport))
         {
             var startLoadCommand = new StartLoadTrackCommand(id);
             startLoadCommand.Execute(session.Port);
             var total   = startLoadCommand.Status.TrackInfo.TrackPointsCount;
             var current = startLoadCommand.Status.LastLoadedPointsCount;
             SendProgressChanged(String.Format("Read track data... ({0}/{1})", current, total), current, total);
             if (startLoadCommand.Status.IsFinished)
             {
                 if (startLoadCommand.Status.TrackInfo != null)
                 {
                     result = new GH615MTrack(startLoadCommand.Status.TrackInfo, startLoadCommand.Status.TrackPoints.ToArray());
                 }
             }
             else
             {
                 var command = new ContinueLoadTracksCommand(startLoadCommand.Status);
                 do
                 {
                     command.Execute(session.Port);
                     current += startLoadCommand.Status.LastLoadedPointsCount;
                     SendProgressChanged(String.Format("Read track data... ({0}/{1})", current, total), current, total);
                 }while (!command.Status.IsFinished);
                 result = new GH615MTrack(command.Status.TrackInfo, command.Status.TrackPoints.ToArray());
             }
             SendReadCompleted();
         }
         if (result != null)
         {
             _tracks.Add(id, result);
         }
         return(result);
     }
 }
 public IGH615MDeviceInfo GetDeviceInfo()
 {
     if (_deviceInfo == null)
     {
         if (!IsConnected)
         {
             return(null);
         }
         using (var session = new SerialPortSession(_commport))
         {
             var cmd = new GetDeviceInfoCommand();
             cmd.Execute(session.Port);
             _deviceInfo = cmd.GetDeviceInfo();
         }
     }
     return(_deviceInfo);
 }
 public IGH615MTrackInfo[] GetTracksInfo()
 {
     if (_tracksInfo == null)
     {
         if (!IsConnected)
         {
             return(null);
         }
         using (var session = new SerialPortSession(_commport))
         {
             var cmd = new GetTracksListCommand();
             cmd.Execute(session.Port);
             _tracksInfo = cmd.GetTracksInfo();
             Array.Reverse(_tracksInfo);
         }
     }
     return(_tracksInfo);
 }
Example #6
0
 private void CheckPort()
 {
     if (string.IsNullOrEmpty(_portName))
     {
         IsConnected = false;
         return;
     }
     try
     {
         if (_commport.IsOpen)
         {
             _commport.Close();
         }
         _commport.PortName     = _portName;
         _commport.BaudRate     = 57600;
         _commport.DataBits     = 8;
         _commport.StopBits     = StopBits.One;
         _commport.Parity       = Parity.None;
         _commport.ReadTimeout  = 500;
         _commport.WriteTimeout = 500;
         using (var session = new SerialPortSession(_commport))
         {
             var checkCommand = new CheckRegSEPortCommand();
             checkCommand.Execute(session.Port);
             IsConnected = checkCommand.IsOk();
             if (IsConnected)
             {
                 Settings.Default.PortName = _portName;
                 Settings.Default.Save();
             }
         }
     }
     catch (Exception)
     {
         IsConnected = false;
     }
 }
 public void DeleteAllTracks()
 {
     if (!IsConnected)
     {
         return;
     }
     using (var session = new SerialPortSession(_commport))
     {
         var cmd = new DeleteAllTracksCommand();
         cmd.Execute(session.Port);
     }
 }
 private void CheckPort()
 {
     if (string.IsNullOrEmpty(_portName))
     {
         IsConnected = false;
         return;
     }
     try
     {
         if (_commport.IsOpen)
         {
             _commport.Close();
         }
         _commport.PortName = _portName;
         _commport.BaudRate = 57600;
         _commport.DataBits = 8;
         _commport.StopBits = StopBits.One;
         _commport.Parity = Parity.None;
         _commport.ReadTimeout = 500;
         _commport.WriteTimeout = 500;
         using (var session = new SerialPortSession(_commport))
         {
             var checkCommand = new CheckGH615MPortCommand();
             checkCommand.Execute(session.Port);
             IsConnected = checkCommand.IsOk();
             if (IsConnected)
             {
                 Settings.Default.PortName = _portName;
                 Settings.Default.Save();
             }
         }
     }
     catch (Exception)
     {
         IsConnected = false;
     }
 }
 public IGH615MTrackInfo[] GetTracksInfo()
 {
     if (_tracksInfo == null)
     {
         if (!IsConnected)
         {
             return null;
         }
         using (var session = new SerialPortSession(_commport))
         {
             var cmd = new GetTracksListCommand();
             cmd.Execute(session.Port);
             _tracksInfo = cmd.GetTracksInfo();
             Array.Reverse(_tracksInfo);
         }
     }
     return _tracksInfo;
 }
 public IGH615MTrack GetTrack(Int16 id)
 {
     lock (this)
     {
         if (_tracks.ContainsKey(id))
         {
             return _tracks[id];
         }
         if (!IsConnected)
         {
             return null;
         }
         GH615MTrack result = null;
         using (var session = new SerialPortSession(_commport))
         {
             var startLoadCommand = new StartLoadTrackCommand(id);
             startLoadCommand.Execute(session.Port);
             var total = startLoadCommand.Status.TrackInfo.TrackPointsCount;
             var current = startLoadCommand.Status.LastLoadedPointsCount;
             SendProgressChanged(String.Format("Read track data... ({0}/{1})", current, total), current, total);
             if (startLoadCommand.Status.IsFinished)
             {
                 if (startLoadCommand.Status.TrackInfo != null)
                 {
                     result = new GH615MTrack(startLoadCommand.Status.TrackInfo, startLoadCommand.Status.TrackPoints.ToArray());
                 }
             }
             else
             {
                 var command = new ContinueLoadTracksCommand(startLoadCommand.Status);
                 do
                 {
                     command.Execute(session.Port);
                     current += startLoadCommand.Status.LastLoadedPointsCount;
                     SendProgressChanged(String.Format("Read track data... ({0}/{1})", current, total), current, total);
                 }
                 while (!command.Status.IsFinished);
                 result = new GH615MTrack(command.Status.TrackInfo, command.Status.TrackPoints.ToArray());
             }
             SendReadCompleted();
         }
         if (result != null)
         {
             _tracks.Add(id, result);
         }
         return result;
     }
 }
 public IGH615MDeviceInfo GetDeviceInfo()
 {
     if (_deviceInfo == null)
     {
         if (!IsConnected)
         {
             return null;
         }
         using (var session = new SerialPortSession(_commport))
         {
             var cmd = new GetDeviceInfoCommand();
             cmd.Execute(session.Port);
             _deviceInfo = cmd.GetDeviceInfo();
         }
     }
     return _deviceInfo;
 }
Example #12
0
        private void LoadTracks()
        {
            lock (this)
            {
                _loadCompleted = false;
                if (!IsConnected)
                {
                    SendReadError(new RegSEError("No connection with device!"));
                    SendReadCompleted();
                    return;
                }
                using (var session = new SerialPortSession(_commport))
                {
                    var getNumOfPointsCommand = new NumOfPointsCommand();
                    getNumOfPointsCommand.Execute(session.Port);
                    int total             = getNumOfPointsCommand.GetNumOfPoints();
                    int current           = 0;
                    var loadPointsCommand = new LoadPointsCommand(current * 16);
                    loadPointsCommand.Execute(session.Port);
                    var points = new List <IRegSETrackPoint>();
                    points.AddRange(loadPointsCommand.GetPoints());
                    current += loadPointsCommand.GetPoints().Count;

                    SendProgressChanged(String.Format("Read track data... ({0}/{1})", current, total), current, total);
                    do
                    {
                        loadPointsCommand = new LoadPointsCommand(current * 16);
                        loadPointsCommand.Execute(session.Port);
                        points.AddRange(loadPointsCommand.GetPoints());
                        current += loadPointsCommand.GetPoints().Count;
                        SendProgressChanged(String.Format("Read track data... ({0}/{1})", current, total), current,
                                            total);
                    } while (current < total);

                    // split into tracks
                    if (points.Count > 0)
                    {
                        _tracks     = new List <IRegSETrack>();
                        _trackInfos = new List <IRegSETrackInfo>();

                        var startPoint = points[0];
                        if (!startPoint.HasMark(RegSEPointType.TrackStart))
                        {
                            SendReadError(new RegSEError("First point does not marked as track's start point!"));
                            SendReadCompleted();
                            return;
                        }
                        var startPointIndex = 0;
                        var numOfPoints     = 0;

                        for (var i = 1; i < points.Count; i++)
                        {
                            numOfPoints++;
                            IRegSETrackPoint point = points[i];
                            if (point.HasMark(RegSEPointType.TrackStart))
                            {
                                var             duration  = (int)(points[i - 1].Time - startPoint.Time).TotalSeconds;
                                IRegSETrackInfo trackInfo = new RegSETrackInfo(startPoint.Time, duration, numOfPoints);
                                _trackInfos.Add(trackInfo);
                                _tracks.Add(new RegSETrack(trackInfo,
                                                           points.GetRange(startPointIndex, numOfPoints).ToArray()));
                                startPoint      = point;
                                startPointIndex = i;
                                numOfPoints     = 0;
                            }
                        }
                        {
                            var             duration  = (int)(points[points.Count - 1].Time - startPoint.Time).TotalSeconds;
                            IRegSETrackInfo trackInfo = new RegSETrackInfo(startPoint.Time, duration, numOfPoints);
                            _trackInfos.Add(trackInfo);
                            _tracks.Add(new RegSETrack(trackInfo,
                                                       points.GetRange(startPointIndex, numOfPoints).ToArray()));
                        }
                    }
                    _loadCompleted = true;
                    SendReadCompleted();
                }
            }
        }
        private void LoadTracks()
        {
            lock (this)
            {
                _loadCompleted = false;
                if (!IsConnected)
                {
                    SendReadError(new RegSEError("No connection with device!"));
                    SendReadCompleted();
                    return;
                }
                using (var session = new SerialPortSession(_commport))
                {
                    var getNumOfPointsCommand = new NumOfPointsCommand();
                    getNumOfPointsCommand.Execute(session.Port);
                    int total = getNumOfPointsCommand.GetNumOfPoints();
                    int current = 0;
                    var loadPointsCommand = new LoadPointsCommand(current*16);
                    loadPointsCommand.Execute(session.Port);
                    var points = new List<IRegSETrackPoint>();
                    points.AddRange(loadPointsCommand.GetPoints());
                    current += loadPointsCommand.GetPoints().Count;

                    SendProgressChanged(String.Format("Read track data... ({0}/{1})", current, total), current, total);
                    do
                    {
                        loadPointsCommand = new LoadPointsCommand(current*16);
                        loadPointsCommand.Execute(session.Port);
                        points.AddRange(loadPointsCommand.GetPoints());
                        current += loadPointsCommand.GetPoints().Count;
                        SendProgressChanged(String.Format("Read track data... ({0}/{1})", current, total), current,
                                            total);
                    } while (current < total);

                    // split into tracks
                    if (points.Count > 0)
                    {
                        _tracks = new List<IRegSETrack>();
                        _trackInfos = new List<IRegSETrackInfo>();

                        var startPoint = points[0];
                        if (!startPoint.HasMark(RegSEPointType.TrackStart))
                        {
                            SendReadError(new RegSEError("First point does not marked as track's start point!"));
                            SendReadCompleted();
                            return;
                        }
                        var startPointIndex = 0;
                        var numOfPoints = 0;

                        for (var i = 1; i < points.Count; i++)
                        {
                            numOfPoints++;
                            IRegSETrackPoint point = points[i];
                            if (point.HasMark(RegSEPointType.TrackStart))
                            {
                                var duration = (int) (points[i - 1].Time - startPoint.Time).TotalSeconds;
                                IRegSETrackInfo trackInfo = new RegSETrackInfo(startPoint.Time, duration, numOfPoints);
                                _trackInfos.Add(trackInfo);
                                _tracks.Add(new RegSETrack(trackInfo,
                                                           points.GetRange(startPointIndex, numOfPoints).ToArray()));
                                startPoint = point;
                                startPointIndex = i;
                                numOfPoints = 0;
                            }
                        }
                        {
                            var duration = (int) (points[points.Count - 1].Time - startPoint.Time).TotalSeconds;
                            IRegSETrackInfo trackInfo = new RegSETrackInfo(startPoint.Time, duration, numOfPoints);
                            _trackInfos.Add(trackInfo);
                            _tracks.Add(new RegSETrack(trackInfo,
                                                       points.GetRange(startPointIndex, numOfPoints).ToArray()));
                        }
                    }
                    _loadCompleted = true;
                    SendReadCompleted();
                }
            }
        }
        public IRegSEDeviceInfo GetDeviceInfo()
        {
            if (_deviceInfo == null)
            {
                if (!IsConnected)
                {
                    return null;
                }
                using (var session = new SerialPortSession(_commport))
                {
                    var deviceNameCommand = new DeviceNameCommand();
                    deviceNameCommand.Execute(session.Port);
                    var deviceName = deviceNameCommand.GetDeviceName();
                    var nameCommand = new NameCommand();
                    nameCommand.Execute(session.Port);
                    var name = nameCommand.GetName();
                    var numberOfPointsCommand = new NumOfPointsCommand(); ;
                    numberOfPointsCommand.Execute(session.Port);
                    var numberOfPoints = numberOfPointsCommand.GetNumOfPoints();

                    var softwareVersionCommand = new SoftwareVersionCommand(); ;
                    softwareVersionCommand.Execute(session.Port);
                    var softwareVersion = softwareVersionCommand.GetVersion();

                    var hardwareVersionCommand = new HardwareVersionCommand(); ;
                    hardwareVersionCommand.Execute(session.Port);
                    var hardwareVersion = hardwareVersionCommand.GetVersion();

                    _deviceInfo = new RegSEDeviceInfo(deviceName, name, softwareVersion, hardwareVersion, numberOfPoints);
                }
            }
            return _deviceInfo;
        }