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);
        }
        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();
                }
            }
        }
Example #3
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();
                }
            }
        }
        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;
        }