diff --git a/ISCamRecorder/Properties/AssemblyInfo.cs b/ISCamRecorder/Properties/AssemblyInfo.cs index f0a4857..fc2f540 100644 --- a/ISCamRecorder/Properties/AssemblyInfo.cs +++ b/ISCamRecorder/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // すべての値を指定するか、次を使用してビルド番号とリビジョン番号を既定に設定できます // 既定値にすることができます: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.4.0.0")] -[assembly: AssemblyFileVersion("1.4.0.0")] +[assembly: AssemblyVersion("1.5.0.0")] +[assembly: AssemblyFileVersion("1.5.0.0")] diff --git a/ISCamRecorder/SensorData.cs b/ISCamRecorder/SensorData.cs index be466d8..6a89d14 100644 --- a/ISCamRecorder/SensorData.cs +++ b/ISCamRecorder/SensorData.cs @@ -18,6 +18,7 @@ /// internal class SensorData { + enum BUTTON { PRESS, RELEASE }; readonly string SERIAL_PORT_NAME = "USB シリアル"; // デバイス名 readonly int NUM_SAMPLES_SET_THRES = 20; // 逆血検出閾値を決定するサンプル数(20Hz) SerialPort _Serial = null; // シリアル通信オブジェクト @@ -30,7 +31,6 @@ StreamWriter _CsvWriter = null; // ファイル保存オブジェクト StreamReader _CsvReader = null; // データファイル読込オブジェクト FrameRateCounter _Fps = new FrameRateCounter(10); // FPS計測 - int _LastButtonState = 0; // ボタンの前の状態 MainForm _MF = null; // メインフォームインスタンス bool _IsRecoding = false; // 記録中フラグ bool _ClearPlot = false; // プロット消去フラグ @@ -94,10 +94,11 @@ /// public void Loop() { var baseline = new float[] { 0, 0, 0 }; // ホワイトバランス用RGB基準値 + int lastButtonState = (int)BUTTON.RELEASE; // ボタンの前の状態 while (_MF.State != STATE.Exit) { // データ受信 - var values = new int[] { 60, 80, 100, 20, 1 }; // センサー未接続時のダミー値 + var values = new int[] { 60, 80, 100, 20, (int)BUTTON.RELEASE }; // センサー未接続時のダミー値 if (_Serial != null) { var str = _Serial.ReadLine(); var strs = str.Split(','); @@ -109,9 +110,8 @@ } // ボタン状態 - var buttonState = (1 - values[4]); - if (_LastButtonState == 0 && buttonState == 1) _MF.HWButton(); - _LastButtonState = buttonState; + if (lastButtonState == (int)BUTTON.RELEASE && values[4] == (int)BUTTON.PRESS) _MF.HWButton(); + lastButtonState = values[4]; // サンプリング時間 var dt = DateTime.Now; @@ -218,7 +218,7 @@ var reverseBlood = _IsReverseBlood ? 1 : 0; _CsvWriter.WriteLine( $"{dt.ToString("yyyy/MM/dd,HH:mm:ss.fff")},{elapsed:0.00}" + - $",{values[0]},{values[1]},{values[2]},{values[3]},{sat},{buttonState},{reverseBlood}"); + $",{values[0]},{values[1]},{values[2]},{values[3]},{sat},{1 - values[4]},{reverseBlood}"); } _Fps.Shot();