public void LoadSignalChannels() { // Channels var channels = Brain.KB.Sources.GetSignalChannels(); ui.listBoxSignals.Items.Clear(); Channels.Clear(); foreach (var channel in channels) { // check if this is a signal channel if (channel.GetType() == typeof(SignalChannel)) { // add to channels list Channels.Add((SignalChannel)channel); // show in the list on the left side ui.listBoxSignals.Items.Add(channel.ChannelName); } } // reload selected index try { ui.listBoxSignals.SelectedIndex = SelectedIndex; } catch (Exception e) { ui.listBoxSignals.SelectedIndex = 0; CurrentChannel = Channels[0]; } }
public void LoadChannel(int i) { // detach from ALL events Brain.KB.Sources.DetachAllEvents(this.Trigger); if (i < 0 || i >= ui.listBoxSignals.Items.Count) return; if (Channels[i].GetType() != typeof(SignalChannel)) { CurrentChannel = null; return; } CurrentChannel = Channels[i]; var ch = CurrentChannel; ui.textBoxSignalName.Text = ch.Name; ui.comboBoxMode.Text = ch.Mode.ToString(); ui.comboBoxA.SelectedIndex = (ch.InputA != null) ? signals.IndexOf(ch.InputA) : -1; ui.comboBoxB.SelectedIndex = (ch.InputB != null) ? signals.IndexOf(ch.InputB) : -1; ui.comboBoxEvent.SelectedIndex = (ch.Trigger != null) ? events.IndexOf(ch.Trigger) : -1; ui.velocityMapControl.Map = ch.VelocityMap; // Attach the trigger that updates the view if (ch.Trigger != null) ch.Trigger.Add(this.Trigger, null); }
public void LoadChannel(int i) { // detach from ALL events Brain.KB.Sources.DetachAllEvents(this.Trigger); if (i < 0 || i >= ui.listBoxSignals.Items.Count) { return; } if (Channels[i].GetType() != typeof(SignalChannel)) { CurrentChannel = null; return; } CurrentChannel = Channels[i]; var ch = CurrentChannel; ui.textBoxSignalName.Text = ch.Name; ui.comboBoxMode.Text = ch.Mode.ToString(); ui.comboBoxA.SelectedIndex = (ch.InputA != null) ? signals.IndexOf(ch.InputA) : -1; ui.comboBoxB.SelectedIndex = (ch.InputB != null) ? signals.IndexOf(ch.InputB) : -1; ui.comboBoxEvent.SelectedIndex = (ch.Trigger != null) ? events.IndexOf(ch.Trigger) : -1; ui.velocityMapControl.Map = ch.VelocityMap; // Attach the trigger that updates the view if (ch.Trigger != null) { ch.Trigger.Add(this.Trigger, null); } }
public void AddSignal() { var ch = new SignalChannel("New Channel"); Brain.KB.Sources.AddSignalChannel(ch); LoadSignalChannels(); ui.listBoxSignals.SelectedIndex = Channels.Count - 1; LoadSignals(); }
bool CheckChannel(SignalChannel givenChannel) { //If the given signal is for all or I am an all, return true if (givenChannel == SignalChannel.ESC_ALL || channel == SignalChannel.ESC_ALL) { return(true); } //Otherwise, search through the given array of possible inputs foreach (SignalChannel c in acceptedChannels) { //If there is a channel that is the same as the given channel, return true if (givenChannel == c) { return(true); } } //Otherwise return false return(false); }
private void ExportProc() { try { exportTotal = 0; exportedSize = 0; for (int i = 0; i < MaxSrcs; i++) { if (selectChannels[i] != null) { exportTotal += selectChannels[i].File.Length; } } for (int i = 0; i < MaxSrcs; i += PropChannelNum) { if (selectChannels[i] != null) { exportFile = selectChannels[i].File; if (i > 0 && (selectChannels[i - PropChannelNum] != null)) { exportedSize += selectChannels[i - PropChannelNum].File.Length; } SignalChannel sigChannel = selectChannels[i].File.Channels[selectChannels[i].Channel - 1]; int srcIndex = i / PropChannelNum; sigChannel.DecodeFM = false; sigChannel.DecodeCurve = 0; sigChannel.DecodeAngle = false; sigChannel.DecodeFM = selectDevice.DevGroup.SourceGroups[srcIndex].AllowFM; int allowCurve = selectDevice.DevGroup.SourceGroups[srcIndex].AllowCurve; sigChannel.DecodeCurve = allowCurve; bool allowAngle = selectDevice.DevGroup.SourceGroups[srcIndex].AllowAngle; sigChannel.DecodeAngle = allowAngle; if (allowAngle && selectChannels[i + 1] != null) //参考相位 { SignalChannel sigChannel1 = selectChannels[i + 1].File.Channels[selectChannels[i + 1].Channel - 1]; sigChannel1.DecodeAngle = true; sigChannel1.IsReference = true; selectChannels[i + 1].File.SignalArgsChanged += new EventHandler <RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChanged); } else if (allowCurve > 0) //解码道岔曲线 { HHDeviceProperty devBindProp = selectDevice.GetProperty(selectDevice.DevGroup.SourceGroups[srcIndex].Properties[0]); DevCurve devCurve = devBindProp.Curves[0]; sigChannel.TimeInterval = devCurve.TimeInterval; if (devCurve.MonitorType == Common.SignalType.SignalDCCurve) { sigChannel.DecodeCurve = 2; } else { sigChannel.DecodeCurve = 1; } if ((selectChannels[i + 1] == null) && (selectChannels[i + 2] == null)) //单相 { sigChannel.SignalArgsChanged += new EventHandler <RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChanged); } else { curveGrp = new Common.CurveGroup(3, devCurve.Group.Type, devCurve.Index); sigChannel.SignalArgsChanged += new EventHandler <RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChangedA); if (selectChannels[i + 1] != null) { selectChannels[i + 1].File.Channels[selectChannels[i + 1].Channel - 1].SignalArgsChanged += new EventHandler <RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChangedB); //B相 } if (selectChannels[i + 2] != null) { selectChannels[i + 2].File.Channels[selectChannels[i + 2].Channel - 1].SignalArgsChanged += new EventHandler <RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChangedC); //C相 } } } else { sigChannel.SignalArgsChanged += new EventHandler <RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChanged); } exportSrcIndex = srcIndex; selectChannels[i].File.Export(); if (allowAngle && selectChannels[i + 1] != null) //参考相位 { SignalChannel sigChannel1 = selectChannels[i + 1].File.Channels[selectChannels[i + 1].Channel - 1]; sigChannel1.DecodeAngle = true; sigChannel1.SignalArgsChanged -= new EventHandler <RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChanged); } else if ((allowCurve > 0) && ((selectChannels[i + 1] != null) || (selectChannels[i + 2] != null))) //有2条以上曲线 { HHDeviceProperty devBindProp = selectDevice.GetProperty(selectDevice.DevGroup.SourceGroups[srcIndex].Properties[0]); DevCurve devCurve = devBindProp.Curves[0]; sigChannel.SignalArgsChanged -= new EventHandler <RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChangedA); if (selectChannels[i + 1] != null) { selectChannels[i + 1].File.Channels[selectChannels[i + 1].Channel - 1].SignalArgsChanged -= new EventHandler <RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChangedB); //B相 } if (selectChannels[i + 2] != null) { selectChannels[i + 2].File.Channels[selectChannels[i + 2].Channel - 1].SignalArgsChanged -= new EventHandler <RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChangedC); //C相 } } else { sigChannel.SignalArgsChanged -= new EventHandler <RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChanged); } } } exportOK = true; } catch (Exception) { } }