public void Process(HeaderInfo info, IEnumerable <IndexedValue <TimeAndInterval> > values) { var base_group = 50; var group = 50; var variation = 1; switch (info.variation) { case GroupVariation.Group50Var1: group = 50; variation = 1; break; case GroupVariation.Group50Var3: group = 50; variation = 3; break; case GroupVariation.Group50Var4: group = 50; variation = 4; break; } foreach (var idxvalue in values) { var DNP3_Value = new DNP3_Value { address = idxvalue.Index, base_group = base_group, group = group, variation = variation, value = idxvalue.Value.interval, valueBSON = new BsonDocumentWrapper(idxvalue.Value), valueString = idxvalue.Value.ToString(), cot = info.isEvent ? 3 : 20, serverTimestamp = DateTime.Now, hasSourceTimestamp = true, sourceTimestamp = (new DateTime()).AddSeconds(idxvalue.Value.time), timeStampQuality = TimestampQuality.SYNCHRONIZED, qOnline = true, qRestart = false, qCommLost = false, qRemoteForced = false, qLocalForced = false, qOverrange = false, qRollover = false, qDiscontinuity = false, qReferenceError = false, qTransient = false, conn_number = ConnectionNumber }; DNP3DataQueue.Enqueue(DNP3_Value); if (LogLevel >= LogLevelDetailed) { Log(ConnectionName + ": TimeAndInterval, Ind: " + idxvalue.Index + " " + idxvalue.Value.ToString(), LogLevelDetailed); } } }
public void Process(HeaderInfo info, IEnumerable <IndexedValue <AnalogOutputInt16> > values) { var base_group = 41; var group = 41; var variation = 2; switch (info.variation) { case GroupVariation.Group41Var0: group = 41; variation = 0; break; case GroupVariation.Group41Var2: group = 41; variation = 2; break; } foreach (var idxvalue in values) { var DNP3_Value = new DNP3_Value { address = idxvalue.Index, base_group = base_group, group = group, variation = variation, value = idxvalue.Value.value, valueBSON = new BsonDocumentWrapper(idxvalue.Value), valueString = idxvalue.Value.ToString(), cot = info.isEvent ? 3 : 20, serverTimestamp = DateTime.Now, hasSourceTimestamp = false, sourceTimestamp = new DateTime(), timeStampQuality = TimestampQuality.INVALID, qOnline = true, qRestart = false, qCommLost = false, qRemoteForced = false, qLocalForced = false, qOverrange = false, qRollover = false, qDiscontinuity = false, qReferenceError = false, qTransient = false, conn_number = ConnectionNumber }; DNP3DataQueue.Enqueue(DNP3_Value); if (LogLevel >= LogLevelDetailed) { Log(ConnectionName + ": AnalogOutputInt16, Ind: " + idxvalue.Index + " " + idxvalue.Value.ToString(), LogLevelDetailed); } } }
public void Process(HeaderInfo info, IEnumerable <IndexedValue <BinaryCommandEvent> > values) { var base_group = 13; var group = 13; var variation = 1; switch (info.variation) { case GroupVariation.Group13Var1: group = 13; variation = 1; break; case GroupVariation.Group13Var2: group = 13; variation = 2; break; } foreach (var idxvalue in values) { var DNP3_Value = new DNP3_Value { address = idxvalue.Index, base_group = base_group, group = group, variation = variation, value = System.Convert.ToDouble(idxvalue.Value.Value), valueBSON = new BsonDocumentWrapper(idxvalue.Value), valueString = idxvalue.Value.ToString(), cot = info.isEvent ? 3 : 20, serverTimestamp = DateTime.Now, hasSourceTimestamp = (idxvalue.Value.Timestamp.ToEpoch() != 0), sourceTimestamp = idxvalue.Value.Timestamp.Value.Date, timeStampQuality = idxvalue.Value.Timestamp.Quality, qOnline = idxvalue.Value.Status == 0, // success qRestart = false, qCommLost = false, qRemoteForced = false, qLocalForced = false, qOverrange = false, qRollover = false, qDiscontinuity = false, qReferenceError = false, qTransient = false, conn_number = ConnectionNumber }; DNP3DataQueue.Enqueue(DNP3_Value); if (LogLevel >= LogLevelDetailed) { Log(ConnectionName + ": BinaryCommandEvent, Ind: " + idxvalue.Index + " " + idxvalue.Value.ToString(), LogLevelDetailed); } } }
public void Process(HeaderInfo info, IEnumerable <IndexedValue <OctetString> > values) { var base_group = 110; var group = 110; switch (info.variation) { case GroupVariation.Group110Var0: group = 110; break; case GroupVariation.Group111Var0: group = 111; break; } foreach (var idxvalue in values) { var DNP3_Value = new DNP3_Value { address = idxvalue.Index, base_group = base_group, group = group, variation = idxvalue.Value.Bytes.Length, value = idxvalue.Value.Bytes.Length, valueBSON = BsonValue.Create(idxvalue.Value.Bytes), valueString = System.Text.Encoding.Default.GetString(idxvalue.Value.Bytes), cot = info.isEvent ? 3 : 20, serverTimestamp = DateTime.Now, hasSourceTimestamp = false, sourceTimestamp = new DateTime(), timeStampQuality = TimestampQuality.INVALID, qOnline = true, qRestart = false, qCommLost = false, qRemoteForced = false, qLocalForced = false, qOverrange = false, qRollover = false, qDiscontinuity = false, qReferenceError = false, qTransient = false, conn_number = ConnectionNumber }; DNP3DataQueue.Enqueue(DNP3_Value); if (LogLevel >= LogLevelDetailed) { Log(ConnectionName + ": OctetString, Ind: " + idxvalue.Index + " " + idxvalue.Value.ToString(), LogLevelDetailed); } } }
public void Process(HeaderInfo info, IEnumerable <IndexedValue <Binary> > values) { var base_group = 1; var group = 1; var variation = 0; switch (info.variation) { case GroupVariation.Group1Var0: group = 1; variation = 0; break; case GroupVariation.Group1Var1: group = 1; variation = 1; break; case GroupVariation.Group1Var2: group = 1; variation = 2; break; case GroupVariation.Group2Var0: group = 2; variation = 0; break; case GroupVariation.Group2Var1: group = 2; variation = 1; break; case GroupVariation.Group2Var2: group = 2; variation = 2; break; case GroupVariation.Group2Var3: group = 2; variation = 3; break; } foreach (var idxvalue in values) { var DNP3_Value = new DNP3_Value { address = idxvalue.Index, base_group = base_group, group = group, variation = variation, value = idxvalue.Value.Value ? 1 : 0, valueBSON = new BsonDocumentWrapper(idxvalue.Value), valueString = idxvalue.Value.ToString(), cot = info.isEvent ? 3 : 20, serverTimestamp = DateTime.Now, hasSourceTimestamp = (idxvalue.Value.Timestamp.ToEpoch() != 0), sourceTimestamp = idxvalue.Value.Timestamp.Value.Date, timeStampQuality = idxvalue.Value.Timestamp.Quality, qOnline = idxvalue.Value.Quality.IsSet(BinaryQuality.ONLINE), qRestart = idxvalue.Value.Quality.IsSet(BinaryQuality.RESTART), qCommLost = idxvalue.Value.Quality.IsSet(BinaryQuality.COMM_LOST), qRemoteForced = idxvalue.Value.Quality.IsSet(BinaryQuality.REMOTE_FORCED), qLocalForced = idxvalue.Value.Quality.IsSet(BinaryQuality.LOCAL_FORCED), qOverrange = false, qRollover = false, qDiscontinuity = false, qReferenceError = false, qTransient = false, conn_number = ConnectionNumber }; DNP3DataQueue.Enqueue(DNP3_Value); if (LogLevel >= LogLevelDetailed) { Log(ConnectionName + ": Binary, Ind: " + idxvalue.Index + " " + idxvalue.Value.ToString(), LogLevelDetailed); } } }