Ancora renaming progetto Thermo.Cam.Setup

This commit is contained in:
Samuele E. Locatelli
2021-02-18 19:11:43 +01:00
parent 12ad1388b9
commit a356169539
12 changed files with 226 additions and 168 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
namespace ThermalImageStreamerDemo
namespace Thermo.Cam.Setup
{
partial class DiscoveryForm
{
+1 -1
View File
@@ -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
{
+1 -1
View File
@@ -1,4 +1,4 @@
namespace ThermalImageStreamerDemo
namespace Thermo.Cam.Setup
{
partial class MainForm
{
+1 -1
View File
@@ -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
{
+1 -1
View File
@@ -1,4 +1,4 @@
namespace ThermalImageStreamerDemo
namespace Thermo.Cam.Setup
{
partial class PlaybackForm
{
+41 -23
View File
@@ -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
}
}
}
+8 -4
View File
@@ -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
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
private static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
#endregion Private Methods
}
}
}
+2 -2
View File
@@ -8,7 +8,7 @@
// </auto-generated>
//------------------------------------------------------------------------------
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;
+1 -1
View File
@@ -8,7 +8,7 @@
// </auto-generated>
//------------------------------------------------------------------------------
namespace ThermalImageStreamerDemo.Properties {
namespace Thermo.Cam.Setup.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+1 -1
View File
@@ -1,4 +1,4 @@
namespace ThermalImageStreamerDemo
namespace Thermo.Cam.Setup
{
partial class RecorderForm
{
+166 -130
View File
@@ -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();
}
/// <summary>
/// Un-initialize the recorder component.
/// </summary>
public void UnInitialize()
{
_timer.Stop();
if (_stream != null)
_stream.ConnectionStatusChanged -= _stream_ConnectionStatusChanged;
_stream = null;
}
#endregion Public Constructors
bool IsInitalizing { get; set; }
#region Public Events
/// <summary>
///
/// Event fired when the selected file is double clicked.
/// </summary>
/// <param name="camera"></param>
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<SelectedFileEventArgs> 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
}
}
/// <summary>
/// Event fired when the selected file is double clicked.
/// </summary>
public event EventHandler<SelectedFileEventArgs> 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
/// <summary>
///
/// </summary>
/// <param name="camera"></param>
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();
}
/// <summary>
/// Un-initialize the recorder component.
/// </summary>
public void UnInitialize()
{
_timer.Stop();
if (_stream != null)
_stream.ConnectionStatusChanged -= _stream_ConnectionStatusChanged;
_stream = null;
}
#endregion Public Methods
}
/// <summary>
@@ -278,13 +305,22 @@ namespace ThermalImageStreamerDemo
/// </summary>
public class SelectedFileEventArgs : EventArgs
{
#region Internal Constructors
internal SelectedFileEventArgs(string path)
{
FilePath = path;
}
#endregion Internal Constructors
#region Public Properties
/// <summary>
/// The full path to the file.
/// </summary>
public string FilePath { get; private set; }
#endregion Public Properties
}
}
}
+2 -2
View File
@@ -7,8 +7,8 @@
<ProjectGuid>{009978D9-A2D0-4354-A4C1-E181D7F34919}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ThermalImageStreamerDemo</RootNamespace>
<AssemblyName>ThermalImageStreamerDemo</AssemblyName>
<RootNamespace>Thermo.Cam.Setup</RootNamespace>
<AssemblyName>Thermo.Cam.Setup</AssemblyName>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<SccProjectName>SAK</SccProjectName>