private List <IDatablockModel> GetFakeDatablockModels() { var output = new List <IDatablockModel>(); for (int i = 0; i < 10; i++) { var signalModels = new List <SignalModel>(); for (int j = 0; j < 10; j++) { var ctx = new SignalModelContext { Index = j, DbIndex = i, CpuIndex = 0, Name = $"Signal {i}-{j}", DbNumber = 4000 + i, DataTypeStr = "Real" }; var signal = SignalFactory.Create(ctx); signalModels.Add(signal); } IDatablockModel datablockModel = new DatablockModel { }; output.Add(datablockModel); } return(output); }
private SignalModelContext CreateSignalContextItem(DbFileLineItem lineItem) { if (!lineItem.IsDataType) { return(null); } string name = String.Empty; foreach (var structName in _structNames) { name += structName + '.'; } name += lineItem.Name; SignalModelContext ctx = new SignalModelContext { Name = name, Description = lineItem.Description, DataTypeStr = lineItem.DataTypeStr, ByteIndex = _bitByteIndexControl.ByteCounter, BitNumber = _bitByteIndexControl.BitCounter }; return(ctx); }
public static List <SignalModelContext> MapQuotesAndSignalsToSignalModelContext(List <Quote> quotes, List <Signal> signals) { List <SignalModelContext> signalsContext = new List <SignalModelContext>(); for (int i = 0; i < signals.Count(); i++) { Quote matchingQuote = quotes.Where(z => z.Date == signals[i].Date).FirstOrDefault(); SignalModelContext signalContext = _mapper.Map <SignalModelContext>(matchingQuote); signalContext.PartialSignals.Add(signals[i].Value); signalsContext.Add(signalContext); } return(signalsContext); }
public List <SignalModelContext> DeepCloneUsingReflection() { List <SignalModelContext> clonedSignalContextCollection = new List <SignalModelContext>(); Parallel.ForEach(_collectionOfSignalsToBeCloned, (signal) => { SignalModelContext singleClonedSignalContext = ReflectionDeepCopy.CloneObject(signal) as SignalModelContext; lock (_padlock) { clonedSignalContextCollection.Add(singleClonedSignalContext); } }); clonedSignalContextCollection = clonedSignalContextCollection.OrderBy(z => z.Date).ToList(); return(clonedSignalContextCollection); }
private List <SignalModelContext> CloneCollectionUsingJsonOrBinarySerialization() { List <SignalModelContext> clonedSignalContextCollection = new List <SignalModelContext>(); Parallel.ForEach(_collectionOfSignalsToBeCloned, (signal) => { SignalModelContext singleClonedSignalContext = signal.Clone() as SignalModelContext; lock (_padlock) { clonedSignalContextCollection.Add(singleClonedSignalContext); } }); clonedSignalContextCollection = clonedSignalContextCollection.OrderBy(z => z.Date).ToList(); return(clonedSignalContextCollection); }
public static List <SignalModelContext> MapQuotesAndSignalsToSignalModelContext(List <Quote> quotes, List <List <Signal> > signals) { List <SignalModelContext> signalsContext = new List <SignalModelContext>(); for (int i = 0; i < signals.Count(); i++) { for (int j = 0; j < signals[i].Count(); j++) { Quote matchingQuote = quotes.Where(z => z.Date == signals[i][j].Date).FirstOrDefault(); if (matchingQuote == null) { continue; } SignalModelContext signalContext = signalsContext.Where(z => z.Date == matchingQuote.Date).FirstOrDefault(); if (signalContext == null) { signalContext = _mapper.Map <SignalModelContext>(matchingQuote); signalContext.PartialSignals.Add(signals[i][j].Value); signalsContext.Add(signalContext); } else { signalsContext.Where(z => z.Date == matchingQuote.Date).FirstOrDefault().PartialSignals.Add(signals[i][j].Value); } } } List <string> signalsDates = signalsContext.Select(z => z.Date).ToList(); List <Quote> quotesWithoutAnyGeneratedSignal = quotes.Where(z => !signalsDates.Contains(z.Date)).ToList(); foreach (var quote in quotesWithoutAnyGeneratedSignal) { SignalModelContext signalContext = _mapper.Map <SignalModelContext>(quote); signalsContext.Add(signalContext); } return(signalsContext); }
public static DecoratorConcreteComponent MapQuotesAndSignalsToDecoratorObject(SignalModelContext quoteWSignals) { return(_mapper.Map <DecoratorConcreteComponent>(quoteWSignals)); }
public BuySignalState(double signalValue, SignalModelContext context) { this.Context = context; this.SignalValue = signalValue; }
public static SignalModel Create(SignalModelContext context) { string typeSpecifier = Constants.S7DataTypeSpecifiers[context.DataTypeStr]; // DB450.DBD624 string address = "DB" + context.DbNumber + ".DB" + Constants.S7DataTypeSpecifiers[context.DataTypeStr] + context.ByteIndex; if (typeSpecifier == "X") { address += '.'; address += context.BitNumber; } if (!Constants.S7DataTypes.Contains(context.DataTypeStr)) { throw new ArgumentException($"Invalid data type: {context.DataTypeStr} " + $"Unable to create signal {context.Name}. Datablock creation aborted."); } if (!AddressIsValid(address)) { throw new ArgumentException($"Invalid address created: {address} " + $"Unable to create signal {context.Name}. Datablock creation aborted."); } context.Address = address; switch (context.DataTypeStr) { case "Bool": return(new BoolSignalModel(context)); case "Byte": throw new NotImplementedException(); case "Int": return(new Int16SignalModel(context)); case "UInt": return(new Int16SignalModel(context)); case "DInt": return(new Int32SignalModel(context)); case "UDInt": return(new Int32SignalModel(context)); case "Word": return(new Int16SignalModel(context)); case "DWord": return(new Int32SignalModel(context)); case "Real": return(new FloatSignalModel(context)); default: throw new ArgumentException($"Invalid data type: {context.DataTypeStr} " + $"Unable to create signal {context.Name}. Datablock creation aborted."); } }