public ISubJournalParameterEditorViewModel CreateJournalSubParameterEditorViewModel( ISubJournalParameter subJournalParameter, ObservableCollection<ISharedBitViewModel> sharedBitViewModels) { ISubJournalParameterEditorViewModel journalParameterEditorViewModel = this._container.Resolve<ISubJournalParameterEditorViewModel>(); journalParameterEditorViewModel.BitNumbersInWord = sharedBitViewModels; journalParameterEditorViewModel.Model = subJournalParameter; return journalParameterEditorViewModel; }
protected override void SaveModel() { ISubJournalParameter subJournalParameter = this._journalParameter as ISubJournalParameter; subJournalParameter.BitNumbersInWord.Clear(); foreach (ISharedBitViewModel sharedBitViewModel in this.BitNumbersInWord) { if ((sharedBitViewModel.Owner == this) && (sharedBitViewModel.Value)) { subJournalParameter.BitNumbersInWord.Add(sharedBitViewModel.NumberOfBit); } } base.SaveModel(); }
public SubJournalParameterEditorViewModel(ISubJournalParameter journalParameter, IFormatterEditorFactory formatterEditorFactory) : base(journalParameter) { this._formatterEditorFactory = formatterEditorFactory; this.BitNumbersInWord = new ObservableCollection <ISharedBitViewModel>(); this.ShowFormatterParametersCommand = new RelayCommand(this.OnShowFormatterParametersExecute); }
private ushort GetParameterUshortInRecord(ushort[] recordUshorts, IJournalParameter parentJournalParameter, ISubJournalParameter childJournalParameter) { ushort valueToFormat = recordUshorts.Skip(parentJournalParameter.StartAddress).Take(1).ToArray()[0]; BitArray parentBitArray = new BitArray(new[] { (int)valueToFormat }); bool[] subParameterBools = new bool[childJournalParameter.BitNumbersInWord.Count]; foreach (var numInWord in childJournalParameter.BitNumbersInWord) { if (parentBitArray.Count <= numInWord) { subParameterBools[childJournalParameter.BitNumbersInWord.IndexOf(numInWord)] = false; } else { subParameterBools[childJournalParameter.BitNumbersInWord.IndexOf(numInWord)] = parentBitArray[numInWord]; } } ushort res = (ushort)(new BitArray(subParameterBools).GetIntFromBitArray()); return(res); }