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); }
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); }
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; }
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; }