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(); + } } }