diff --git a/ISCamRecorder/MainForm.cs b/ISCamRecorder/MainForm.cs
index 65f1bb6..9ebd4b5 100644
--- a/ISCamRecorder/MainForm.cs
+++ b/ISCamRecorder/MainForm.cs
@@ -400,9 +400,10 @@
///
///
private void BtnSetting_Click(object sender, EventArgs e) {
- Setting.TotalConsumedMemoryPerSecond =
- _Cameras.Select(c => c.ConsumedMemoryPerSecond()).Sum()
- + _CvCamera.ConsumedMemoryPerSecond();
+ for (int i = 0; i < _Cameras.Count; i++) {
+ Setting.ConsumedMemoryPerSecond[i] = _Cameras[i].ConsumedMemoryPerSecond();
+ }
+ Setting.ConsumedMemoryPerSecond[4] = _CvCamera.ConsumedMemoryPerSecond();
var lastTriggerSetting = Setting.SWTrigger;
Setting.ShowDialog();
diff --git a/ISCamRecorder/Properties/AssemblyInfo.cs b/ISCamRecorder/Properties/AssemblyInfo.cs
index 4e5eec1..4a742e6 100644
--- a/ISCamRecorder/Properties/AssemblyInfo.cs
+++ b/ISCamRecorder/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@
// すべての値を指定するか、次を使用してビルド番号とリビジョン番号を既定に設定できます
// 既定値にすることができます:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.2.0.0")]
-[assembly: AssemblyFileVersion("1.2.0.0")]
+[assembly: AssemblyVersion("1.3.0.0")]
+[assembly: AssemblyFileVersion("1.3.0.0")]
diff --git a/ISCamRecorder/SensorData.cs b/ISCamRecorder/SensorData.cs
index 14aeca3..783fa90 100644
--- a/ISCamRecorder/SensorData.cs
+++ b/ISCamRecorder/SensorData.cs
@@ -90,7 +90,7 @@
while (_MF.State != STATE.Exit) {
// データ受信
- var values = new int[] { 60, 80, 100, 20, 0 };
+ var values = new int[] { 60, 80, 100, 20, 0 }; // センサー未接続時のダミー値
if (_Serial != null) {
var str = _Serial.ReadLine();
var strs = str.Split(',');
@@ -98,7 +98,7 @@
values = strs.Select(s => int.Parse(s)).ToArray();
}
} else {
- Thread.Sleep(50);
+ Thread.Sleep(50); // センサー未接続時の時間調整
}
// ボタン状態
diff --git a/ISCamRecorder/Setting.Designer.cs b/ISCamRecorder/Setting.Designer.cs
index 9f5338c..10c0d07 100644
--- a/ISCamRecorder/Setting.Designer.cs
+++ b/ISCamRecorder/Setting.Designer.cs
@@ -73,8 +73,8 @@
this.TxtRBDetectCount = new System.Windows.Forms.TextBox();
this.label16 = new System.Windows.Forms.Label();
this.groupBox5 = new System.Windows.Forms.GroupBox();
- this.label17 = new System.Windows.Forms.Label();
this.CboRBDetectCh = new System.Windows.Forms.ComboBox();
+ this.label17 = new System.Windows.Forms.Label();
this.groupBox1.SuspendLayout();
this.panel1.SuspendLayout();
this.groupBox2.SuspendLayout();
@@ -325,7 +325,7 @@
this.TxtRecodingDulation.TabIndex = 50;
this.TxtRecodingDulation.Text = "30";
this.TxtRecodingDulation.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
- this.TxtRecodingDulation.TextChanged += new System.EventHandler(this.TxtRecodingDulation_TextChanged);
+ this.TxtRecodingDulation.TextChanged += new System.EventHandler(this.RecodingParamChanged);
this.TxtRecodingDulation.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.NumberKeyOnly);
//
// TxtMovieRate
@@ -365,6 +365,7 @@
this.ChkRecNear.TabIndex = 46;
this.ChkRecNear.Text = "近";
this.ChkRecNear.UseVisualStyleBackColor = true;
+ this.ChkRecNear.CheckedChanged += new System.EventHandler(this.RecodingParamChanged);
//
// ChkRecRight
//
@@ -375,6 +376,7 @@
this.ChkRecRight.TabIndex = 45;
this.ChkRecRight.Text = "右";
this.ChkRecRight.UseVisualStyleBackColor = true;
+ this.ChkRecRight.CheckedChanged += new System.EventHandler(this.RecodingParamChanged);
//
// ChkRecFront
//
@@ -385,6 +387,7 @@
this.ChkRecFront.TabIndex = 44;
this.ChkRecFront.Text = "前";
this.ChkRecFront.UseVisualStyleBackColor = true;
+ this.ChkRecFront.CheckedChanged += new System.EventHandler(this.RecodingParamChanged);
//
// ChkRecLeft
//
@@ -395,6 +398,7 @@
this.ChkRecLeft.TabIndex = 43;
this.ChkRecLeft.Text = "左";
this.ChkRecLeft.UseVisualStyleBackColor = true;
+ this.ChkRecLeft.CheckedChanged += new System.EventHandler(this.RecodingParamChanged);
//
// ChkRecTop
//
@@ -405,6 +409,7 @@
this.ChkRecTop.TabIndex = 42;
this.ChkRecTop.Text = "上";
this.ChkRecTop.UseVisualStyleBackColor = true;
+ this.ChkRecTop.CheckedChanged += new System.EventHandler(this.RecodingParamChanged);
//
// label9
//
@@ -612,15 +617,6 @@
this.groupBox5.TabStop = false;
this.groupBox5.Text = "逆血検出センサー設定";
//
- // label17
- //
- this.label17.AutoSize = true;
- this.label17.Location = new System.Drawing.Point(11, 55);
- this.label17.Name = "label17";
- this.label17.Size = new System.Drawing.Size(66, 12);
- this.label17.TabIndex = 64;
- this.label17.Text = "検出チャネル";
- //
// CboRBDetectCh
//
this.CboRBDetectCh.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
@@ -634,6 +630,15 @@
this.CboRBDetectCh.Size = new System.Drawing.Size(36, 20);
this.CboRBDetectCh.TabIndex = 65;
//
+ // label17
+ //
+ this.label17.AutoSize = true;
+ this.label17.Location = new System.Drawing.Point(11, 55);
+ this.label17.Name = "label17";
+ this.label17.Size = new System.Drawing.Size(66, 12);
+ this.label17.TabIndex = 64;
+ this.label17.Text = "検出チャネル";
+ //
// Setting
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
diff --git a/ISCamRecorder/Setting.cs b/ISCamRecorder/Setting.cs
index 5aa9668..ead7899 100644
--- a/ISCamRecorder/Setting.cs
+++ b/ISCamRecorder/Setting.cs
@@ -24,19 +24,21 @@
public ACTION ButtonAction { get; private set; }
public bool[] RecCameras { get; private set; }
public bool[] SnapCameras { get; private set; }
- public float TotalConsumedMemoryPerSecond { get; set; }
public List Subjects { get; private set; }
public int RBThreshold { get; private set; } // 逆血検出信号変化閾値
public int RBDetectSize { get; private set; } // 直近信号検出ウインドウサイズ
public int RBDetectCount { get; private set; } // 直近信号検出数
public string RBDetectCh { get; private set; }
+ public float[] ConsumedMemoryPerSecond { get; set; }
+
///
/// コンストラクタ
///
public Setting() {
InitializeComponent();
+ ConsumedMemoryPerSecond = new float[5];
ImageType = "tif";
FrameType = "jpg";
SWTrigger = false;
@@ -182,15 +184,6 @@
}
///
- /// 記録時間上限書き換え時
- ///
- ///
- ///
- private void TxtRecodingDulation_TextChanged(object sender, EventArgs e) {
- this.UpdateMemoryInfo();
- }
-
- ///
/// メモリー情報の更新
///
private void UpdateMemoryInfo() {
@@ -199,7 +192,13 @@
var availableMemory = (int)(info.AvailablePhysicalMemory / bcs); //利用可能な物理メモリ
LblAvailableMemory.Text = $"利用可能メモリー:{availableMemory.ToString("#,0").PadLeft(7)}MB";
- var totalConsumedMemory = (int)(TotalConsumedMemoryPerSecond * float.Parse(TxtRecodingDulation.Text));
+ var totalConsumedMemoryPerSec = 0F;
+ var useCameras = new bool[] {ChkRecTop.Checked, ChkRecLeft.Checked, ChkRecFront.Checked,
+ ChkRecRight.Checked, ChkRecNear.Checked};
+ for (int i = 0; i < useCameras.Length; i++) {
+ totalConsumedMemoryPerSec += useCameras[i] ? ConsumedMemoryPerSecond[i] : 0;
+ }
+ var totalConsumedMemory = (int)(totalConsumedMemoryPerSec * float.Parse(TxtRecodingDulation.Text));
LblRecodingMemory.Text = $"最大消費メモリー:{totalConsumedMemory.ToString("#,0").PadLeft(7)}MB";
if (totalConsumedMemory > availableMemory) LblRecodingMemory.ForeColor = Color.Red;
else LblRecodingMemory.ForeColor = Color.Black;
@@ -213,5 +212,14 @@
private void ChkTrigger_CheckedChanged(object sender, EventArgs e) {
TxtTriggerFPS.Enabled = ChkTrigger.Checked;
}
+
+ ///
+ /// 映像録画条件変更時
+ ///
+ ///
+ ///
+ private void RecodingParamChanged(object sender, EventArgs e) {
+ this.UpdateMemoryInfo();
+ }
}
}