public void AddValue(T val, MqttMsgPublishEventArgs mqttMsgPublishEventArgs) { lock (this) { if (_onlyChanges && Equals(CurrentItem?.Value, val)) { return; } var now = DateTime.UtcNow; if (_minInterval != null) { var diff = now - (CurrentItem?.TimeUtc ?? DateTime.MinValue); if (diff < _minInterval) { return; } } CurrentItem = new SingleDataRow <T>(now, val); if (!mqttMsgPublishEventArgs.Retain) { QueuedItems.Add(CurrentItem); Flush(); } } }
public override ISingleDataRow <T> ReadRow <T>(BinaryReader reader) { var row = new SingleDataRow <T>(ReadDate(reader), (T)Convert.ChangeType(DateTime.FromBinary(reader.ReadInt64()), typeof(T))); return(row); }
private IEnumerable <IDataRow> CreateFloatRows(int numberOfRows) { DateTime time = new DateTime(2000, 1, 1, 0, 0, 33, DateTimeKind.Utc); for (int i = 0; i < numberOfRows; i++) { var row = new SingleDataRow <float>(time, (float)(i * 0.5)); time += TimeSpan.FromMinutes(1); yield return(row); } }
private void ResetSearchCriteriaValuesToDefault() { DataRow SingleDataRow; if (FFindCriteriaDataTable.Rows.Count != 0) { SingleDataRow = FFindCriteriaDataTable.Rows[0]; SingleDataRow.BeginEdit(); SetSearchCriteriaDefaultValues(ref SingleDataRow); SingleDataRow.EndEdit(); } else { SingleDataRow = FFindCriteriaDataTable.NewRow(); SetSearchCriteriaDefaultValues(ref SingleDataRow); FFindCriteriaDataTable.Rows.Add(SingleDataRow); } FFindCriteriaDataTable.Rows[0].BeginEdit(); FDefaultValues.ItemArray = FFindCriteriaDataTable.Rows[0].ItemArray; }
public override ISingleDataRow <T> ReadRow <T>(BinaryReader reader) { var row = new SingleDataRow <T>(ReadDate(reader), (T)Convert.ChangeType(reader.ReadByte(), typeof(T))); return(row); }