diff --git a/Thermo.Cam.Setup/DiscoveryForm.Designer.cs b/Thermo.Cam.Setup/DiscoveryForm.Designer.cs
index 61e6d359..58e2e737 100644
--- a/Thermo.Cam.Setup/DiscoveryForm.Designer.cs
+++ b/Thermo.Cam.Setup/DiscoveryForm.Designer.cs
@@ -1,4 +1,4 @@
-namespace ThermalImageStreamerDemo
+namespace Thermo.Cam.Setup
{
partial class DiscoveryForm
{
diff --git a/Thermo.Cam.Setup/DiscoveryForm.cs b/Thermo.Cam.Setup/DiscoveryForm.cs
index b33717f8..7e4d9f39 100644
--- a/Thermo.Cam.Setup/DiscoveryForm.cs
+++ b/Thermo.Cam.Setup/DiscoveryForm.cs
@@ -4,7 +4,7 @@ using System.Windows.Forms;
using Flir.Atlas.Live.Device;
using Flir.Atlas.Live.Discovery;
-namespace ThermalImageStreamerDemo
+namespace Thermo.Cam.Setup
{
public partial class DiscoveryForm : Form
{
diff --git a/Thermo.Cam.Setup/MainForm.Designer.cs b/Thermo.Cam.Setup/MainForm.Designer.cs
index 1a3ac970..c99caf01 100644
--- a/Thermo.Cam.Setup/MainForm.Designer.cs
+++ b/Thermo.Cam.Setup/MainForm.Designer.cs
@@ -1,4 +1,4 @@
-namespace ThermalImageStreamerDemo
+namespace Thermo.Cam.Setup
{
partial class MainForm
{
diff --git a/Thermo.Cam.Setup/MainForm.cs b/Thermo.Cam.Setup/MainForm.cs
index 661148d9..4137ef76 100644
--- a/Thermo.Cam.Setup/MainForm.cs
+++ b/Thermo.Cam.Setup/MainForm.cs
@@ -12,7 +12,7 @@ using Flir.Atlas.Live.Discovery;
using Newtonsoft.Json;
using ThermoCamUtils;
-namespace ThermalImageStreamerDemo
+namespace Thermo.Cam.Setup
{
public partial class MainForm : Form
{
diff --git a/Thermo.Cam.Setup/PlaybackForm.Designer.cs b/Thermo.Cam.Setup/PlaybackForm.Designer.cs
index 37f9c867..4c5c7263 100644
--- a/Thermo.Cam.Setup/PlaybackForm.Designer.cs
+++ b/Thermo.Cam.Setup/PlaybackForm.Designer.cs
@@ -1,4 +1,4 @@
-namespace ThermalImageStreamerDemo
+namespace Thermo.Cam.Setup
{
partial class PlaybackForm
{
diff --git a/Thermo.Cam.Setup/PlaybackForm.cs b/Thermo.Cam.Setup/PlaybackForm.cs
index 8a9a1836..44fc033a 100644
--- a/Thermo.Cam.Setup/PlaybackForm.cs
+++ b/Thermo.Cam.Setup/PlaybackForm.cs
@@ -8,36 +8,44 @@ using System.Text;
using System.Windows.Forms;
using Flir.Atlas.Image;
-namespace ThermalImageStreamerDemo
+namespace Thermo.Cam.Setup
{
// Simple playback of a SEQ (radiometric data) file.
// Also see IRImageReaderDemo on how to open Thermal image files.
public partial class PlaybackForm : Form
{
+ #region Private Fields
+
+ private readonly Timer _timer = new Timer();
private ThermalImageFile _imageFile;
- private string Path { get; set; }
- private bool IsDirty { get; set; }
- readonly Timer _timer = new Timer();
+
+ #endregion Private Fields
+
+ #region Public Constructors
+
public PlaybackForm(string path)
{
Path = path;
InitializeComponent();
}
- private void PlaybackForm_Load(object sender, EventArgs e)
+ #endregion Public Constructors
+
+ #region Private Properties
+
+ private bool IsDirty { get; set; }
+ private string Path { get; set; }
+
+ #endregion Private Properties
+
+ #region Private Methods
+
+ private void _imageFile_Changed(object sender, ImageChangedEventArgs e)
{
- _imageFile = new ThermalImageFile(Path);
- _imageFile.Changed += _imageFile_Changed;
- pictureBox1.Image = _imageFile.Image;
- if (_imageFile.ThermalSequencePlayer.Count() > 1)
- {
- _timer.Interval = 20;
- _timer.Tick += _timer_Tick;
- _timer.Start();
- }
+ IsDirty = true;
}
- void _timer_Tick(object sender, EventArgs e)
+ private void _timer_Tick(object sender, EventArgs e)
{
if (!IsDirty) return;
IsDirty = false;
@@ -57,9 +65,9 @@ namespace ThermalImageStreamerDemo
}
}
- void _imageFile_Changed(object sender, ImageChangedEventArgs e)
+ private void buttonPause_Click(object sender, EventArgs e)
{
- IsDirty = true;
+ _imageFile.ThermalSequencePlayer.Pause();
}
private void buttonPlay_Click(object sender, EventArgs e)
@@ -72,14 +80,24 @@ namespace ThermalImageStreamerDemo
_imageFile.ThermalSequencePlayer.Stop();
}
- private void buttonPause_Click(object sender, EventArgs e)
- {
- _imageFile.ThermalSequencePlayer.Pause();
- }
-
private void PlaybackForm_FormClosing(object sender, FormClosingEventArgs e)
{
_timer.Stop();
}
+
+ private void PlaybackForm_Load(object sender, EventArgs e)
+ {
+ _imageFile = new ThermalImageFile(Path);
+ _imageFile.Changed += _imageFile_Changed;
+ pictureBox1.Image = _imageFile.Image;
+ if (_imageFile.ThermalSequencePlayer.Count() > 1)
+ {
+ _timer.Interval = 20;
+ _timer.Tick += _timer_Tick;
+ _timer.Start();
+ }
+ }
+
+ #endregion Private Methods
}
-}
+}
\ No newline at end of file
diff --git a/Thermo.Cam.Setup/Program.cs b/Thermo.Cam.Setup/Program.cs
index 068069cf..92f1f686 100644
--- a/Thermo.Cam.Setup/Program.cs
+++ b/Thermo.Cam.Setup/Program.cs
@@ -3,19 +3,23 @@ using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
-namespace ThermalImageStreamerDemo
+namespace Thermo.Cam.Setup
{
- static class Program
+ internal static class Program
{
+ #region Private Methods
+
///
/// The main entry point for the application.
///
[STAThread]
- static void Main()
+ private static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
+
+ #endregion Private Methods
}
-}
+}
\ No newline at end of file
diff --git a/Thermo.Cam.Setup/Properties/Resources.Designer.cs b/Thermo.Cam.Setup/Properties/Resources.Designer.cs
index 8d3bf132..ff4aa994 100644
--- a/Thermo.Cam.Setup/Properties/Resources.Designer.cs
+++ b/Thermo.Cam.Setup/Properties/Resources.Designer.cs
@@ -8,7 +8,7 @@
//
//------------------------------------------------------------------------------
-namespace ThermalImageStreamerDemo.Properties {
+namespace Thermo.Cam.Setup.Properties {
using System;
@@ -39,7 +39,7 @@ namespace ThermalImageStreamerDemo.Properties {
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ThermalImageStreamerDemo.Properties.Resources", typeof(Resources).Assembly);
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Thermo.Cam.Setup.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
diff --git a/Thermo.Cam.Setup/Properties/Settings.Designer.cs b/Thermo.Cam.Setup/Properties/Settings.Designer.cs
index d6eeb57a..c358e31c 100644
--- a/Thermo.Cam.Setup/Properties/Settings.Designer.cs
+++ b/Thermo.Cam.Setup/Properties/Settings.Designer.cs
@@ -8,7 +8,7 @@
//
//------------------------------------------------------------------------------
-namespace ThermalImageStreamerDemo.Properties {
+namespace Thermo.Cam.Setup.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
diff --git a/Thermo.Cam.Setup/RecorderForm.Designer.cs b/Thermo.Cam.Setup/RecorderForm.Designer.cs
index 10cf4cac..97615a10 100644
--- a/Thermo.Cam.Setup/RecorderForm.Designer.cs
+++ b/Thermo.Cam.Setup/RecorderForm.Designer.cs
@@ -1,4 +1,4 @@
-namespace ThermalImageStreamerDemo
+namespace Thermo.Cam.Setup
{
partial class RecorderForm
{
diff --git a/Thermo.Cam.Setup/RecorderForm.cs b/Thermo.Cam.Setup/RecorderForm.cs
index 19a997bb..b2fbf671 100644
--- a/Thermo.Cam.Setup/RecorderForm.cs
+++ b/Thermo.Cam.Setup/RecorderForm.cs
@@ -13,108 +13,88 @@ using Flir.Atlas.Live;
using Flir.Atlas.Live.Device;
using Flir.Atlas.Live.Recorder;
-namespace ThermalImageStreamerDemo
+namespace Thermo.Cam.Setup
{
public partial class RecorderForm : Form
{
- private Camera _stream;
+ #region Private Fields
+
private readonly Stopwatch _elapedTimeRecording = new Stopwatch();
private readonly Timer _timer = new Timer();
+ private int _nextIndex = 1;
+ private Camera _stream;
+
+ #endregion Private Fields
+
+ #region Public Constructors
+
public RecorderForm()
{
InitializeComponent();
}
- ///
- /// Un-initialize the recorder component.
- ///
- public void UnInitialize()
- {
- _timer.Stop();
- if (_stream != null)
- _stream.ConnectionStatusChanged -= _stream_ConnectionStatusChanged;
- _stream = null;
- }
+ #endregion Public Constructors
- bool IsInitalizing { get; set; }
+ #region Public Events
///
- ///
+ /// Event fired when the selected file is double clicked.
///
- ///
- public void Initialize(Camera camera)
- {
- if (camera == null)
- {
- throw new InvalidOperationException("camera is null");
- }
- _stream = camera;
- _stream.ConnectionStatusChanged += _stream_ConnectionStatusChanged;
- labelOutputPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures) + @"\FLIR\";
+ public event EventHandler SelectedFileMouseDoubleClick;
- _timer.Interval = 110;
- _timer.Tick += _timer_Tick;
- _timer.Start();
- UpdateStatus();
- }
+ #endregion Public Events
- void _stream_ConnectionStatusChanged(object sender, ConnectionStatusChangedEventArgs e)
+ #region Private Properties
+
+ private bool IsInitalizing { get; set; }
+
+ #endregion Private Properties
+
+ #region Private Methods
+
+ private void _stream_ConnectionStatusChanged(object sender, ConnectionStatusChangedEventArgs e)
{
BeginInvoke((Action)UpdateStatus);
}
- void UpdateStatus()
- {
- IsInitalizing = true;
- if (_stream != null && _stream.ConnectionStatus == ConnectionStatus.Connected)
- {
- if (_stream.Recorder.IsTimeSpanEnabled)
- {
- radioButtonRecSpeedInterval.Checked = true;
- textBoxTimeSpan.Enabled = true;
- }
- else
- {
- radioButtonRecSpeed.Checked = true;
- textBoxTimeSpan.Enabled = false;
- }
- if (_stream.Recorder is ThermalImageRecorder)
- {
- groupBoxPreRecording.Enabled = true;
- checkBoxPreRecording.Checked = (_stream.Recorder as ThermalImageRecorder).IsPreRecordingEnabled;
- textBoxNumFramesPreRec.Text =
- (_stream.Recorder as ThermalImageRecorder).NumberOfFramesToPreRecord.ToString(
- CultureInfo.InvariantCulture);
- }
- groupBoxRecSpeed.Enabled = true;
- buttonPause.Enabled = true;
- buttonRec.Enabled = true;
- textBoxTimeSpan.Text = _stream.Recorder.TimeSpan.TotalSeconds.ToString(CultureInfo.InvariantCulture);
- }
- else
- {
- groupBoxPreRecording.Enabled = false;
- groupBoxRecSpeed.Enabled = false;
- buttonPause.Enabled = false;
- buttonRec.Enabled = false;
- }
- IsInitalizing = false;
- }
-
- void _timer_Tick(object sender, EventArgs e)
+ private void _timer_Tick(object sender, EventArgs e)
{
RefreshData();
}
- void RefreshData()
+ private void btnTakeImage_Click(object sender, EventArgs e)
{
- if (_stream.Recorder == null) return;
-
- labelStatus.Text = _stream.Recorder.Status.ToString();
- labelFrameCounter.Text = _stream.Recorder.FrameCount.ToString(CultureInfo.InvariantCulture);
- labelLostImages.Text = _stream.Recorder.LostImages.ToString(CultureInfo.InvariantCulture);
- labelElapsedTime.Text = _elapedTimeRecording.Elapsed.ToString();
+ ThermalImage myImg = (ThermalImage)_stream.GetImage();
+ myImg.TemperatureUnit = TemperatureUnit.Celsius;
+ string currPath = $"{labelOutputPath.Text}\\{DateTime.Now:yyyyMMyy_HHmmss}.jpg";
+ myImg.SaveSnapshot(currPath);
}
+
+ private void buttonBrowse_Click(object sender, EventArgs e)
+ {
+ var dialog = new FolderBrowserDialog();
+ if (dialog.ShowDialog() == DialogResult.OK)
+ {
+ labelOutputPath.Text = dialog.SelectedPath;
+ }
+ }
+
+ private void buttonPause_Click(object sender, EventArgs e)
+ {
+ switch (_stream.Recorder.Status)
+ {
+ case RecorderState.Paused:
+ _stream.Recorder.Continue();
+ buttonPause.Text = "Pause";
+ break;
+
+ case RecorderState.Recording:
+ _stream.Recorder.Pause();
+ buttonPause.Text = "Continue";
+ break;
+ }
+ }
+
private void buttonRec_Click(object sender, EventArgs e)
{
if (_stream.Recorder.Status == RecorderState.Stopped || _stream.Recorder.Status == RecorderState.PreRecording)
@@ -153,48 +133,6 @@ namespace ThermalImageStreamerDemo
}
}
- private string GetNextFileName()
- {
- string fileName;
- do
- {
- fileName = CreateFileName();
- } while (System.IO.File.Exists(fileName));
- return fileName;
- }
-
- private int _nextIndex = 1;
- private string CreateFileName()
- {
- var fileName = labelOutputPath.Text;
- fileName += string.Format("{0:0000}", _nextIndex++);
- return fileName + _stream.Recorder.Extension;
- }
-
- private void buttonPause_Click(object sender, EventArgs e)
- {
- switch (_stream.Recorder.Status)
- {
- case RecorderState.Paused:
- _stream.Recorder.Continue();
- buttonPause.Text = "Pause";
- break;
- case RecorderState.Recording:
- _stream.Recorder.Pause();
- buttonPause.Text = "Continue";
- break;
- }
- }
-
- private void buttonBrowse_Click(object sender, EventArgs e)
- {
- var dialog = new FolderBrowserDialog();
- if (dialog.ShowDialog() == DialogResult.OK)
- {
- labelOutputPath.Text = dialog.SelectedPath;
- }
- }
-
private void checkBoxPreRecording_CheckStateChanged(object sender, EventArgs e)
{
if (!(_stream.Recorder is ThermalImageRecorder)) return;
@@ -216,10 +154,23 @@ namespace ThermalImageStreamerDemo
}
}
- ///
- /// Event fired when the selected file is double clicked.
- ///
- public event EventHandler SelectedFileMouseDoubleClick;
+ private string CreateFileName()
+ {
+ var fileName = labelOutputPath.Text;
+ fileName += string.Format("{0:0000}", _nextIndex++);
+ return fileName + _stream.Recorder.Extension;
+ }
+
+ private string GetNextFileName()
+ {
+ string fileName;
+ do
+ {
+ fileName = CreateFileName();
+ } while (System.IO.File.Exists(fileName));
+ return fileName;
+ }
+
private void listViewRecordings_MouseDoubleClick(object sender, MouseEventArgs e)
{
var items = listViewRecordings.SelectedItems;
@@ -231,7 +182,7 @@ namespace ThermalImageStreamerDemo
}
}
- void OnMouseDoubleClick(SelectedFileEventArgs args)
+ private void OnMouseDoubleClick(SelectedFileEventArgs args)
{
if (SelectedFileMouseDoubleClick != null)
{
@@ -261,16 +212,92 @@ namespace ThermalImageStreamerDemo
private void RecorderForm_Load(object sender, EventArgs e)
{
-
}
- private void btnTakeImage_Click(object sender, EventArgs e)
+ private void RefreshData()
{
- ThermalImage myImg = (ThermalImage)_stream.GetImage();
- myImg.TemperatureUnit = TemperatureUnit.Celsius;
- string currPath = $"{labelOutputPath.Text}\\{DateTime.Now:yyyyMMyy_HHmmss}.jpg";
- myImg.SaveSnapshot(currPath);
+ if (_stream.Recorder == null) return;
+
+ labelStatus.Text = _stream.Recorder.Status.ToString();
+ labelFrameCounter.Text = _stream.Recorder.FrameCount.ToString(CultureInfo.InvariantCulture);
+ labelLostImages.Text = _stream.Recorder.LostImages.ToString(CultureInfo.InvariantCulture);
+ labelElapsedTime.Text = _elapedTimeRecording.Elapsed.ToString();
}
+
+ private void UpdateStatus()
+ {
+ IsInitalizing = true;
+ if (_stream != null && _stream.ConnectionStatus == ConnectionStatus.Connected)
+ {
+ if (_stream.Recorder.IsTimeSpanEnabled)
+ {
+ radioButtonRecSpeedInterval.Checked = true;
+ textBoxTimeSpan.Enabled = true;
+ }
+ else
+ {
+ radioButtonRecSpeed.Checked = true;
+ textBoxTimeSpan.Enabled = false;
+ }
+ if (_stream.Recorder is ThermalImageRecorder)
+ {
+ groupBoxPreRecording.Enabled = true;
+ checkBoxPreRecording.Checked = (_stream.Recorder as ThermalImageRecorder).IsPreRecordingEnabled;
+ textBoxNumFramesPreRec.Text =
+ (_stream.Recorder as ThermalImageRecorder).NumberOfFramesToPreRecord.ToString(
+ CultureInfo.InvariantCulture);
+ }
+ groupBoxRecSpeed.Enabled = true;
+ buttonPause.Enabled = true;
+ buttonRec.Enabled = true;
+ textBoxTimeSpan.Text = _stream.Recorder.TimeSpan.TotalSeconds.ToString(CultureInfo.InvariantCulture);
+ }
+ else
+ {
+ groupBoxPreRecording.Enabled = false;
+ groupBoxRecSpeed.Enabled = false;
+ buttonPause.Enabled = false;
+ buttonRec.Enabled = false;
+ }
+ IsInitalizing = false;
+ }
+
+ #endregion Private Methods
+
+ #region Public Methods
+
+ ///
+ ///
+ ///
+ ///
+ public void Initialize(Camera camera)
+ {
+ if (camera == null)
+ {
+ throw new InvalidOperationException("camera is null");
+ }
+ _stream = camera;
+ _stream.ConnectionStatusChanged += _stream_ConnectionStatusChanged;
+ labelOutputPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures) + @"\FLIR\";
+
+ _timer.Interval = 110;
+ _timer.Tick += _timer_Tick;
+ _timer.Start();
+ UpdateStatus();
+ }
+
+ ///
+ /// Un-initialize the recorder component.
+ ///
+ public void UnInitialize()
+ {
+ _timer.Stop();
+ if (_stream != null)
+ _stream.ConnectionStatusChanged -= _stream_ConnectionStatusChanged;
+ _stream = null;
+ }
+
+ #endregion Public Methods
}
///
@@ -278,13 +305,22 @@ namespace ThermalImageStreamerDemo
///
public class SelectedFileEventArgs : EventArgs
{
+ #region Internal Constructors
+
internal SelectedFileEventArgs(string path)
{
FilePath = path;
}
+
+ #endregion Internal Constructors
+
+ #region Public Properties
+
///
/// The full path to the file.
///
public string FilePath { get; private set; }
+
+ #endregion Public Properties
}
-}
+}
\ No newline at end of file
diff --git a/Thermo.Cam.Setup/Thermo.Cam.Setup.csproj b/Thermo.Cam.Setup/Thermo.Cam.Setup.csproj
index 670919c9..ea2ef10d 100644
--- a/Thermo.Cam.Setup/Thermo.Cam.Setup.csproj
+++ b/Thermo.Cam.Setup/Thermo.Cam.Setup.csproj
@@ -7,8 +7,8 @@
{009978D9-A2D0-4354-A4C1-E181D7F34919}
WinExe
Properties
- ThermalImageStreamerDemo
- ThermalImageStreamerDemo
+ Thermo.Cam.Setup
+ Thermo.Cam.Setup
v4.6.2
512
SAK