Refactorization: TBF.UI namespace, no change of function, ver. 2.18.1314
This commit is contained in:
@@ -0,0 +1,163 @@
|
||||
///
|
||||
/// Copyright (c) 2017 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows.Forms;
|
||||
using log4net;
|
||||
using Config.Entities;
|
||||
using TBF.UiBridge;
|
||||
|
||||
namespace TBF.UI.Camera
|
||||
{
|
||||
public partial class PicturesTabPageCtrl : UserControl
|
||||
{
|
||||
static readonly ILog log = LogManager.GetLogger(typeof(TBF.UI.MainWnd));
|
||||
|
||||
CameraDisplayResolution resolution;
|
||||
IList<ICameraPicture> cameraPictures;
|
||||
|
||||
public PicturesTabPageCtrl()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
cameraPictures = new List<ICameraPicture>();
|
||||
if (Program.LocalSettings != null) resolution = Program.LocalSettings.Resolution;
|
||||
|
||||
System.Windows.Forms.Timer timer;
|
||||
timer = new System.Windows.Forms.Timer();
|
||||
timer.Tick += (s, e) => { TimerTick(); };
|
||||
timer.Interval = 250;
|
||||
timer.Start();
|
||||
|
||||
Bridge.ImageHandler += delegate(object sender, ImageEventArgs args)
|
||||
{
|
||||
if (InvokeRequired)
|
||||
Invoke(new EventHandler<ImageEventArgs>(ShowImage), sender, args);
|
||||
else
|
||||
ShowImage(sender, args);
|
||||
};
|
||||
|
||||
Bridge.CameraInfoHandler += delegate(object sender, CameraInfoEventArgs args)
|
||||
{
|
||||
if (InvokeRequired)
|
||||
Invoke(new EventHandler<CameraInfoEventArgs>(ShowInfo), sender, args);
|
||||
else
|
||||
ShowInfo(sender, args);
|
||||
};
|
||||
}
|
||||
|
||||
private void TimerTick()
|
||||
{
|
||||
DateTime now = DateTime.Now;
|
||||
for (int i = 0; i < cameraPictures.Count; i++)
|
||||
{
|
||||
if (cameraPictures[i] != null) cameraPictures[i].UpdateLed(now);
|
||||
}
|
||||
}
|
||||
|
||||
void ShowInfo(object sender, CameraInfoEventArgs args)
|
||||
{
|
||||
if (args.CameraIdx < cameraPictures.Count)
|
||||
{
|
||||
cameraPictures[args.CameraIdx].Caption = args.Info;
|
||||
}
|
||||
else if (args.CameraIdx == cameraPictures.Count)
|
||||
{
|
||||
UserControl ctrl;
|
||||
switch (resolution)
|
||||
{
|
||||
default:
|
||||
case CameraDisplayResolution.Small: ctrl = new CameraPictureCtrl(); break;
|
||||
case CameraDisplayResolution.Medium: ctrl = new CameraPictureCtrl2(); break;
|
||||
case CameraDisplayResolution.Large: ctrl = new CameraPictureCtrl3(); break;
|
||||
}
|
||||
cameraPictures.Add(ctrl as ICameraPicture);
|
||||
picturesFlowLayoutPanel.Controls.Add(ctrl);
|
||||
(ctrl as ICameraPicture).Caption = args.Info;
|
||||
}
|
||||
else
|
||||
{
|
||||
log.ErrorFormat("Unexpected camera: Idx={0} Info={1}", args.CameraIdx, args.Info);
|
||||
}
|
||||
}
|
||||
|
||||
void ShowImage(object sender, ImageEventArgs args)
|
||||
{
|
||||
if (args.CameraIdx < cameraPictures.Count && cameraPictures[args.CameraIdx] != null)
|
||||
{
|
||||
cameraPictures[args.CameraIdx].NewImage = args.Image;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Increase image resolution
|
||||
/// </summary>
|
||||
private void plusButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (resolution < CameraDisplayResolution.Count - 1)
|
||||
{
|
||||
Program.LocalSettings.Resolution = ++resolution;
|
||||
RedrawPictures();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Decrease image resolution
|
||||
/// </summary>
|
||||
private void minusButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (resolution > 0)
|
||||
{
|
||||
Program.LocalSettings.Resolution = --resolution;
|
||||
RedrawPictures();
|
||||
}
|
||||
}
|
||||
|
||||
void RedrawPictures()
|
||||
{
|
||||
int nrControls = cameraPictures.Count;
|
||||
ICameraPicture[] oriCamPictures = new ICameraPicture[nrControls];
|
||||
for (int i = 0; i < nrControls; i++) oriCamPictures[i] = cameraPictures[i];
|
||||
|
||||
cameraPictures.Clear();
|
||||
picturesFlowLayoutPanel.Controls.Clear();
|
||||
|
||||
for (int i = 0; i < nrControls; i++)
|
||||
{
|
||||
UserControl ctrl;
|
||||
switch (resolution)
|
||||
{
|
||||
default:
|
||||
case CameraDisplayResolution.Small: ctrl = new CameraPictureCtrl(oriCamPictures[i]); break;
|
||||
case CameraDisplayResolution.Medium: ctrl = new CameraPictureCtrl2(oriCamPictures[i]); break;
|
||||
case CameraDisplayResolution.Large: ctrl = new CameraPictureCtrl3(oriCamPictures[i]); break;
|
||||
}
|
||||
|
||||
cameraPictures.Add(ctrl as ICameraPicture);
|
||||
picturesFlowLayoutPanel.Controls.Add(ctrl);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void grabButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
Bridge.OnCameraUICmd(this, new CameraUICmdEventArgs(CameraUICmd.Grab, -1));
|
||||
}
|
||||
|
||||
private void liveButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
Bridge.OnCameraUICmd(this, new CameraUICmdEventArgs(CameraUICmd.Live, -1));
|
||||
}
|
||||
|
||||
private void stopButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
Bridge.OnCameraUICmd(this, new CameraUICmdEventArgs(CameraUICmd.Stop, -1));
|
||||
}
|
||||
|
||||
private void saveImageButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
Bridge.OnCameraUICmd(this, new CameraUICmdEventArgs(CameraUICmd.SaveImage, -1));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user