public int GetReadyPointAddress() { IJournalParameter val = this.OscilloscopeTags .First((tag => tag.TagKey == OscilloscopeKeys.READY)).RelatedJournalParameter; return(val.StartAddress); }
public ushort GetReadyPointNumberOfPoints() { IJournalParameter val = this.OscilloscopeTags .First((tag => tag.TagKey == OscilloscopeKeys.READY)).RelatedJournalParameter; return(val.NumberOfPoints); }
public async Task <List <IFormattedValue> > GetValuesForRecord(IJournalParameter parameter, ushort[] recordUshorts, DeviceContext deviceContext) { var formattedValues = new List <IFormattedValue>(); switch (parameter) { case ComplexJournalParameter complexJournalParameter: foreach (ISubJournalParameter childJournalParameter in complexJournalParameter .ChildJournalParameters) { formattedValues.Add(await _formattingService.FormatValueAsync( childJournalParameter.UshortsFormatter, new[] { GetParameterUshortInRecord(recordUshorts, complexJournalParameter, childJournalParameter) }, new FormattingContext(null, deviceContext, false))); } break; case DependentJournalParameter dependentJournalParameter: ushort[] dependentValuesToFormat = recordUshorts.Skip(dependentJournalParameter.StartAddress) .Take(dependentJournalParameter.NumberOfPoints).ToArray(); foreach (IJournalCondition journalParameterDependancyCondition in dependentJournalParameter .JournalParameterDependancyConditions) { if (GetConditionResult(recordUshorts, journalParameterDependancyCondition, dependentJournalParameter)) { //Task loadingTask = (journalParameterDependancyCondition.UshortsFormatter as ILoadable)?.Load(); //if (loadingTask != null) // await loadingTask; formattedValues.Add(await _formattingService.FormatValueAsync( journalParameterDependancyCondition.UshortsFormatter, dependentValuesToFormat, new FormattingContext(null, deviceContext, false))); } } break; case JournalParameter journalParameter: ushort[] valuesToFormat = recordUshorts.Skip(journalParameter.StartAddress) .Take(journalParameter.NumberOfPoints).ToArray(); formattedValues.Add(await _formattingService.FormatValueAsync(journalParameter.UshortsFormatter, valuesToFormat, new FormattingContext(null, deviceContext, false))); break; } return(formattedValues); }
private List <IJournalParameter> GetAllJournalParameters() { List <IJournalParameter> allJournalParameters = new List <IJournalParameter>(); foreach (IJournalParameterEditorViewModel journalParameterEditorViewModel in this.AllJournalParameterEditorViewModels) { IJournalParameter journalParameter = journalParameterEditorViewModel.Model as IJournalParameter; allJournalParameters.Add(journalParameter); if (journalParameter is IComplexJournalParameter) { allJournalParameters.AddRange((journalParameter as IComplexJournalParameter).ChildJournalParameters); } } return(allJournalParameters); }
protected virtual void SetModel(object value) { IJournalParameter journalParameter = value as IJournalParameter; if (journalParameter == null) { return; } this._journalParameter = journalParameter; this.Address = journalParameter.StartAddress.ToString(); this.Header = journalParameter.Name; this.NumberOfPoints = journalParameter.NumberOfPoints.ToString(); this.MeasureUnit = this._journalParameter.MeasureUnit; this.IsMeasureUnitEnabled = this._journalParameter.IsMeasureUnitEnabled; this.RaisePropertyChanged(nameof(this.FormatterString)); FormatterParametersViewModel = StaticContainer.Container.Resolve <IFormatterViewModelFactory>() .CreateFormatterViewModel(_journalParameter.UshortsFormatter); }
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); }
public JournalParameterEditorViewModel(IJournalParameter journalParameter) { this._journalParameter = journalParameter; }
public IJournalParameterEditorViewModel CreateJournalParameterEditorViewModel(IJournalParameter journalParameter) { IJournalParameterEditorViewModel journalParameterEditorViewModel = this._container.Resolve<IJournalParameterEditorViewModel>(); journalParameterEditorViewModel.Model = journalParameter; return journalParameterEditorViewModel; }
private static (bool, int) CheckRecordByParameter(IJournalRecord journalRecord, IJournalParameter journalParameter, int recordTemplateCounter) { if (journalParameter is IComplexJournalParameter complexJournalParameter) { foreach (var childJournalParameter in complexJournalParameter.ChildJournalParameters) { var res = CheckRecordByParameter(journalRecord, childJournalParameter, recordTemplateCounter); if (!res.Item1) { return(false, res.Item2); } recordTemplateCounter = res.Item2; } return(true, recordTemplateCounter); } if (journalRecord.FormattedValues.Count <= recordTemplateCounter) { return(false, ++recordTemplateCounter); } else { return(true, ++recordTemplateCounter); } }