private bool GetConditionResult(ushort[] recordUshorts, IJournalCondition journalParameterDependancyCondition, DependentJournalParameter dependentJournalParameter) { if (journalParameterDependancyCondition.ConditionsEnum == ConditionsEnum.HaveTrueBitAt) { BitArray bitArray = new BitArray(new int[] { recordUshorts[journalParameterDependancyCondition.BaseJournalParameter.StartAddress] }); if (journalParameterDependancyCondition.BaseJournalParameter is ISubJournalParameter subJournalParameter ) { bitArray = new BitArray(new int[] { GetParameterUshortInRecord(recordUshorts, dependentJournalParameter, subJournalParameter) }); } return(bitArray[journalParameterDependancyCondition.UshortValueToCompare]); } if (journalParameterDependancyCondition.ConditionsEnum == ConditionsEnum.HaveFalseBitAt) { BitArray bitArray = new BitArray(new int[] { recordUshorts[journalParameterDependancyCondition.BaseJournalParameter.StartAddress] }); if (journalParameterDependancyCondition.BaseJournalParameter is ISubJournalParameter subJournalParameter ) { bitArray = new BitArray(new int[] { GetParameterUshortInRecord(recordUshorts, dependentJournalParameter, subJournalParameter) }); } return(!bitArray[journalParameterDependancyCondition.UshortValueToCompare]); } if (journalParameterDependancyCondition.ConditionsEnum == ConditionsEnum.Equal) { ushort resUshort = recordUshorts[journalParameterDependancyCondition.BaseJournalParameter.StartAddress]; if (journalParameterDependancyCondition.BaseJournalParameter is ISubJournalParameter subJournalParameter ) { resUshort = GetParameterUshortInRecord(recordUshorts, dependentJournalParameter, subJournalParameter); } return(resUshort == journalParameterDependancyCondition.UshortValueToCompare); } return(false); }
public IJournalConditionEditorViewModel CreateJournalConditionEditorViewModel(IJournalCondition journalCondition, List <IJournalParameter> availableJournalParameters) { IJournalConditionEditorViewModel journalConditionEditorViewModel = this._container.Resolve <IJournalConditionEditorViewModel>(); journalConditionEditorViewModel.SetAvailablePatameters(availableJournalParameters); journalConditionEditorViewModel.ConditionsList = new List <string>() { ConditionsEnum.HaveFalseBitAt.ToString(), ConditionsEnum.HaveTrueBitAt.ToString(), ConditionsEnum.Equal.ToString() }; journalConditionEditorViewModel.Model = journalCondition; return(journalConditionEditorViewModel); }
public JournalConditionEditorViewModel(IJournalCondition journalCondition, IFormatterEditorFactory formatterEditorFactory) { this._journalCondition = journalCondition; this._formatterEditorFactory = formatterEditorFactory; this.ShowFormatterParameters = new RelayCommand(this.OnShowFormatterParameters); }