Esempio n. 1
0
        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);
 }