Example #1
0
        public async Task <bool> GetRunningStateAsync(ModuleAddress module, ModuleChannel channel)
        {
            byte[] requset;
            if (channel == ModuleChannel.CH1)
            {
                requset = MakeRetriveDataFrame((byte)module, RetrieveCommand.GetCh1Control);
            }
            else if (channel == ModuleChannel.CH2)
            {
                requset = MakeRetriveDataFrame((byte)module, RetrieveCommand.GetCh2Control);
            }
            else
            {
                throw new InvalidOperationException();
            }
            var response = await _commDriver.SendByteAsync(requset);

            var address      = response[AddressFieldIndex];
            var functionCode = response[FunctionFieldIndex];

            // Error Check
            if ((functionCode & ErrorFlag) == 1)
            {
                var errorCode = (ErrorCodes)response[3];
                throw new Exception($"Error Code: {errorCode.ToString()}");
            }
            else
            {
                var isRunning = ExtractDataFromDataFrame(response) == 0;
                return(isRunning);
            }
        }
        public DialogSettingViewModel(SettingWindow settingWindow, SettingFBGA settingFBGA, SettingMIC settingMIC, SettingECG settingECG) : base("Settings")
        {
            this.okCommand     = new DelegateCommand(OnOKClicked);
            this.cancelCommand = new DelegateCommand(OnCancelClicked);

            TimeAxisSelectedItem = settingWindow.TimeAxis.ToString();
            #region DISPLAY_CH_NUMBERS
            int      micNoChannels  = settingWindow.UserTabDisplays.ElementAt(0);
            int      fbgaNoChannels = settingWindow.UserTabDisplays.ElementAt(1);
            int      ecgNoChannels  = settingWindow.UserTabDisplays.ElementAt(2);
            int      accNoChannels  = settingWindow.UserTabDisplays.ElementAt(3);
            int      ppgNoChannels  = settingWindow.UserTabDisplays.ElementAt(4);
            string[] items          = new string[micNoChannels + fbgaNoChannels + ecgNoChannels + 3 * accNoChannels + ppgNoChannels];
            int      index          = 0;
            for (int i = 0; i < micNoChannels; i++)
            {
                items[index++] = "MIC_CH" + (i + 1).ToString();
            }
            for (int i = 0; i < fbgaNoChannels; i++)
            {
                items[index++] = "FBGA_CH" + (i + 1).ToString();
            }
            for (int i = 0; i < ecgNoChannels; i++)
            {
                items[index++] = "ECG_CH" + (i + 1).ToString();
            }
            for (int i = 0; i < accNoChannels; i++)
            {
                items[index++] = "ACC_CH" + (i + 1).ToString() + "x";
            }
            for (int i = 0; i < accNoChannels; i++)
            {
                items[index++] = "ACC_CH" + (i + 1).ToString() + "y";
            }
            for (int i = 0; i < accNoChannels; i++)
            {
                items[index++] = "ACC_CH" + (i + 1).ToString() + "z";
            }
            for (int i = 0; i < ppgNoChannels; i++)
            {
                items[index++] = "PPG_CH" + (i + 1).ToString();
            }
            UserTabDisplay1 = new List <string>(items);
            UserTabDisplay2 = new List <string>(items);
            UserTabDisplay3 = new List <string>(items);
            UserTabDisplay4 = new List <string>(items);
            UserTabDisplay5 = new List <string>(items);
            UserTabDisplay6 = new List <string>(items);

            #endregion
            #region DISPLAY_SELECTION
            display1Selection = new ModuleChannel(settingWindow.UserTabSelectedDisplays.ElementAt(0));
            if (String.Compare("MIC", display1Selection.ModuleName) == 0)
            {
                UserTabDisplay1SelectedItem = "MIC_CH" + display1Selection.ChannelNumber.ToString() + display1Selection.Axis;
            }
            if (String.Compare("FBGA", display1Selection.ModuleName) == 0)
            {
                UserTabDisplay1SelectedItem = "FBGA_CH" + display1Selection.ChannelNumber.ToString() + display1Selection.Axis;
            }
            if (String.Compare("ECG", display1Selection.ModuleName) == 0)
            {
                UserTabDisplay1SelectedItem = "ECG_CH" + display1Selection.ChannelNumber.ToString() + display1Selection.Axis;
            }
            if (String.Compare("ACC", display1Selection.ModuleName) == 0)
            {
                UserTabDisplay1SelectedItem = "ACC_CH" + display1Selection.ChannelNumber.ToString() + display1Selection.Axis;
            }
            if (String.Compare("PPG", display1Selection.ModuleName) == 0)
            {
                UserTabDisplay1SelectedItem = "PPG_CH" + display1Selection.ChannelNumber.ToString() + display1Selection.Axis;
            }

            display2Selection = new ModuleChannel(settingWindow.UserTabSelectedDisplays.ElementAt(1));
            if (String.Compare("MIC", display2Selection.ModuleName) == 0)
            {
                UserTabDisplay2SelectedItem = "MIC_CH" + display2Selection.ChannelNumber.ToString() + display2Selection.Axis;
            }
            if (String.Compare("FBGA", display2Selection.ModuleName) == 0)
            {
                UserTabDisplay2SelectedItem = "FBGA_CH" + display2Selection.ChannelNumber.ToString() + display2Selection.Axis;
            }
            if (String.Compare("ECG", display2Selection.ModuleName) == 0)
            {
                UserTabDisplay2SelectedItem = "ECG_CH" + display2Selection.ChannelNumber.ToString() + display2Selection.Axis;
            }
            if (String.Compare("ACC", display2Selection.ModuleName) == 0)
            {
                UserTabDisplay2SelectedItem = "ACC_CH" + display2Selection.ChannelNumber.ToString() + display2Selection.Axis;
            }
            if (String.Compare("PPG", display2Selection.ModuleName) == 0)
            {
                UserTabDisplay2SelectedItem = "PPG_CH" + display2Selection.ChannelNumber.ToString() + display2Selection.Axis;
            }

            display3Selection = new ModuleChannel(settingWindow.UserTabSelectedDisplays.ElementAt(2));
            if (String.Compare("MIC", display3Selection.ModuleName) == 0)
            {
                UserTabDisplay3SelectedItem = "MIC_CH" + display3Selection.ChannelNumber.ToString() + display3Selection.Axis;
            }
            if (String.Compare("FBGA", display3Selection.ModuleName) == 0)
            {
                UserTabDisplay3SelectedItem = "FBGA_CH" + display3Selection.ChannelNumber.ToString() + display3Selection.Axis;
            }
            if (String.Compare("ECG", display3Selection.ModuleName) == 0)
            {
                UserTabDisplay3SelectedItem = "ECG_CH" + display3Selection.ChannelNumber.ToString() + display3Selection.Axis;
            }
            if (String.Compare("ACC", display3Selection.ModuleName) == 0)
            {
                UserTabDisplay3SelectedItem = "ACC_CH" + display3Selection.ChannelNumber.ToString() + display3Selection.Axis;
            }
            if (String.Compare("PPG", display3Selection.ModuleName) == 0)
            {
                UserTabDisplay3SelectedItem = "PPG_CH" + display3Selection.ChannelNumber.ToString() + display3Selection.Axis;
            }

            display4Selection = new ModuleChannel(settingWindow.UserTabSelectedDisplays.ElementAt(3));
            if (String.Compare("MIC", display4Selection.ModuleName) == 0)
            {
                UserTabDisplay4SelectedItem = "MIC_CH" + display4Selection.ChannelNumber.ToString() + display4Selection.Axis;
            }
            if (String.Compare("FBGA", display4Selection.ModuleName) == 0)
            {
                UserTabDisplay4SelectedItem = "FBGA_CH" + display4Selection.ChannelNumber.ToString() + display4Selection.Axis;
            }
            if (String.Compare("ECG", display4Selection.ModuleName) == 0)
            {
                UserTabDisplay4SelectedItem = "ECG_CH" + display4Selection.ChannelNumber.ToString() + display4Selection.Axis;
            }
            if (String.Compare("ACC", display4Selection.ModuleName) == 0)
            {
                UserTabDisplay4SelectedItem = "ACC_CH" + display4Selection.ChannelNumber.ToString() + display4Selection.Axis;
            }
            if (String.Compare("PPG", display4Selection.ModuleName) == 0)
            {
                UserTabDisplay4SelectedItem = "PPG_CH" + display4Selection.ChannelNumber.ToString() + display4Selection.Axis;
            }

            display5Selection = new ModuleChannel(settingWindow.UserTabSelectedDisplays.ElementAt(4));
            if (String.Compare("MIC", display5Selection.ModuleName) == 0)
            {
                UserTabDisplay5SelectedItem = "MIC_CH" + display5Selection.ChannelNumber.ToString() + display5Selection.Axis;
            }
            if (String.Compare("FBGA", display5Selection.ModuleName) == 0)
            {
                UserTabDisplay5SelectedItem = "FBGA_CH" + display5Selection.ChannelNumber.ToString() + display5Selection.Axis;
            }
            if (String.Compare("ECG", display5Selection.ModuleName) == 0)
            {
                UserTabDisplay5SelectedItem = "ECG_CH" + display5Selection.ChannelNumber.ToString() + display5Selection.Axis;
            }
            if (String.Compare("ACC", display5Selection.ModuleName) == 0)
            {
                UserTabDisplay5SelectedItem = "ACC_CH" + display5Selection.ChannelNumber.ToString() + display5Selection.Axis;
            }
            if (String.Compare("PPG", display5Selection.ModuleName) == 0)
            {
                UserTabDisplay5SelectedItem = "PPG_CH" + display5Selection.ChannelNumber.ToString() + display5Selection.Axis;
            }

            display6Selection = new ModuleChannel(settingWindow.UserTabSelectedDisplays.ElementAt(5));
            if (String.Compare("MIC", display6Selection.ModuleName) == 0)
            {
                UserTabDisplay6SelectedItem = "MIC_CH" + display6Selection.ChannelNumber.ToString() + display6Selection.Axis;
            }
            if (String.Compare("FBGA", display6Selection.ModuleName) == 0)
            {
                UserTabDisplay6SelectedItem = "FBGA_CH" + display6Selection.ChannelNumber.ToString() + display6Selection.Axis;
            }
            if (String.Compare("ECG", display6Selection.ModuleName) == 0)
            {
                UserTabDisplay6SelectedItem = "ECG_CH" + display6Selection.ChannelNumber.ToString() + display6Selection.Axis;
            }
            if (String.Compare("ACC", display6Selection.ModuleName) == 0)
            {
                UserTabDisplay6SelectedItem = "ACC_CH" + display6Selection.ChannelNumber.ToString() + display6Selection.Axis;
            }
            if (String.Compare("PPG", display6Selection.ModuleName) == 0)
            {
                UserTabDisplay6SelectedItem = "PPG_CH" + display6Selection.ChannelNumber.ToString() + display6Selection.Axis;
            }
            #endregion
            this.settingWindow = settingWindow;
            TabWindowEnabled   = settingWindow.TabEnabled;
            if (!TabWindowEnabled)
            {
                TabFBGASelected = true;
            }

            this.settingFBGA = settingFBGA;
            FbgaIntegrationTimeSelectedItem = settingFBGA.IntegrationTime.ToString();
            SLEDPowerSelectedItem           = String.Format(new System.Globalization.CultureInfo("en-GB"), "{0:#0.0#}", settingFBGA.SLEDPower);
            HighDynamicRangeModeChecked     = settingFBGA.HighDynamicRange;

            this.settingMIC        = settingMIC;
            MIC1MuteSelected       = settingMIC.MuteMIC1;
            MIC2MuteSelected       = settingMIC.MuteMIC2;
            MIC3MuteSelected       = settingMIC.MuteMIC3;
            MIC4MuteSelected       = settingMIC.MuteMIC4;
            HighPassFilterSelected = settingMIC.HighPassFilter;
            MICSyncSelected        = settingMIC.SyncTest;

            this.settingECG        = settingECG;
            EcgGainSelectedItem    = settingECG.Gain.ToString();
            ECGCH4modeSelectedItem = settingECG.CH4Mode;
            #region SENSP_SELECTION
            if ((settingECG.SensP & 0x80) == 0x80)
            {
                SensP8Selected = true;
            }
            else
            {
                SensP8Selected = false;
            }
            if ((settingECG.SensP & 0x40) == 0x40)
            {
                SensP7Selected = true;
            }
            else
            {
                SensP7Selected = false;
            }
            if ((settingECG.SensP & 0x20) == 0x20)
            {
                SensP6Selected = true;
            }
            else
            {
                SensP6Selected = false;
            }
            if ((settingECG.SensP & 0x10) == 0x10)
            {
                SensP5Selected = true;
            }
            else
            {
                SensP5Selected = false;
            }
            if ((settingECG.SensP & 0x08) == 0x08)
            {
                SensP4Selected = true;
            }
            else
            {
                SensP4Selected = false;
            }
            if ((settingECG.SensP & 0x04) == 0x04)
            {
                SensP3Selected = true;
            }
            else
            {
                SensP3Selected = false;
            }
            if ((settingECG.SensP & 0x02) == 0x02)
            {
                SensP2Selected = true;
            }
            else
            {
                SensP2Selected = false;
            }
            if ((settingECG.SensP & 0x01) == 0x01)
            {
                SensP1Selected = true;
            }
            else
            {
                SensP1Selected = false;
            }
            #endregion
            #region SENSN_SELECTION
            if ((settingECG.SensN & 0x80) == 0x80)
            {
                SensN8Selected = true;
            }
            else
            {
                SensN8Selected = false;
            }
            if ((settingECG.SensN & 0x40) == 0x40)
            {
                SensN7Selected = true;
            }
            else
            {
                SensN7Selected = false;
            }
            if ((settingECG.SensN & 0x20) == 0x20)
            {
                SensN6Selected = true;
            }
            else
            {
                SensN6Selected = false;
            }
            if ((settingECG.SensN & 0x10) == 0x10)
            {
                SensN5Selected = true;
            }
            else
            {
                SensN5Selected = false;
            }
            if ((settingECG.SensN & 0x08) == 0x08)
            {
                SensN4Selected = true;
            }
            else
            {
                SensN4Selected = false;
            }
            if ((settingECG.SensN & 0x04) == 0x04)
            {
                SensN3Selected = true;
            }
            else
            {
                SensN3Selected = false;
            }
            if ((settingECG.SensN & 0x02) == 0x02)
            {
                SensN2Selected = true;
            }
            else
            {
                SensN2Selected = false;
            }
            if ((settingECG.SensN & 0x01) == 0x01)
            {
                SensN1Selected = true;
            }
            else
            {
                SensN1Selected = false;
            }
            #endregion
        }