Ancora renaming progetto Thermo.Cam.Setup
This commit is contained in:
+1
-1
@@ -1,4 +1,4 @@
|
||||
namespace ThermalImageStreamerDemo
|
||||
namespace Thermo.Cam.Setup
|
||||
{
|
||||
partial class DiscoveryForm
|
||||
{
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
Generated
+1
-1
@@ -1,4 +1,4 @@
|
||||
namespace ThermalImageStreamerDemo
|
||||
namespace Thermo.Cam.Setup
|
||||
{
|
||||
partial class MainForm
|
||||
{
|
||||
|
||||
@@ -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
@@ -1,4 +1,4 @@
|
||||
namespace ThermalImageStreamerDemo
|
||||
namespace Thermo.Cam.Setup
|
||||
{
|
||||
partial class PlaybackForm
|
||||
{
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
@@ -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
@@ -8,7 +8,7 @@
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace ThermalImageStreamerDemo.Properties {
|
||||
namespace Thermo.Cam.Setup.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
namespace ThermalImageStreamerDemo
|
||||
namespace Thermo.Cam.Setup
|
||||
{
|
||||
partial class RecorderForm
|
||||
{
|
||||
|
||||
+166
-130
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user