public static TelemetryData Random(string deviceID, string seqNo, string msg, int min, int max) { TelemetryTypes type = (TelemetryTypes)random.Next(0, 2); var rnd = random.Next(0, 101); if (rnd <= max && rnd >= min) { type = TelemetryTypes.B; } var ret = new TelemetryData() { Temperature = rnd, SeqNo = seqNo, Timestamp = DateTime.UtcNow, Type = type, DeviceId = deviceID, UID = "UID-" + Guid.NewGuid().ToString(), DCorAC = (DCAC)random.Next(0, 1), ADSLor3G = random.Next(100) >= 50 ? "ADSL" : "3G", Pressure = random.Next(1000), Message = msg, FanSpeed = random.Next(3000) }; return(ret); }
/// <summary> /// Actually write the telemetry. /// </summary> /// <typeparam name="TTelemetryData">The type of the telemetry data.</typeparam> /// <param name="telemetryData">The telemetry data.</param> /// <param name="handleTypes">The types of telemetry to handle.</param> /// <param name="formatter">The output formatter.</param> /// <returns>Task.</returns> protected override async Task DoWriteTelemetry <TTelemetryData>(TTelemetryData telemetryData, TelemetryTypes handleTypes, Func <TTelemetryData, string> formatter) { if (_configuration.Handles(handleTypes)) { await Task.Run(async() => { await AppendToBlob(formatter(telemetryData)); }); } }
/// <summary> /// Actually write the telemetry. /// </summary> /// <typeparam name="TTelemetryData">The type of the telemetry data.</typeparam> /// <param name="telemetryData">The telemetry data.</param> /// <param name="handleTypes">The types of telemetry to handle.</param> /// <param name="formatter">The output formatter.</param> /// <returns>Task.</returns> protected override async Task DoWriteTelemetry <TTelemetryData>(TTelemetryData telemetryData, TelemetryTypes handleTypes, Func <TTelemetryData, string> formatter) { if (_configuration.Handles(handleTypes)) { await Task.Run(() => { ThreadsafeWriteToFile(formatter(telemetryData)); }); } }
/// <summary> /// Identifies whether the specified telemetry type is configured to be handled. /// </summary> /// <param name="telemetryType">Type of the telemetry.</param> /// <returns><c>true</c> if telemetry type is handled, <c>false</c> otherwise.</returns> public bool Handles(TelemetryTypes telemetryType) { return(TelemetryTypesToHandle.HasFlag(telemetryType)); }
/// <summary> /// Initializes a new instance of the <see cref="TypeDiscriminatingTelemetryWriterConfigurationBase"/> class. /// </summary> protected TypeDiscriminatingTelemetryWriterConfigurationBase() { TelemetryTypesToHandle = TelemetryTypes.All; }
/// <summary> /// Actually write the telemetry. /// </summary> /// <typeparam name="TTelemetryData">The type of the telemetry data.</typeparam> /// <param name="telemetryData">The telemetry data.</param> /// <param name="handleTypes">The types of telemetry to handle.</param> /// <param name="formatter">The output formatter.</param> /// <returns>Task.</returns> protected override Task DoWriteTelemetry <TTelemetryData>(TTelemetryData telemetryData, TelemetryTypes handleTypes, Func <TTelemetryData, string> formatter) { if (_configuration.Handles(handleTypes)) { Debug.WriteLine(formatter(telemetryData)); } return(Task.Delay(0)); }
/// <summary> /// Actually write the telemetry. /// </summary> /// <typeparam name="TTelemetryData">The type of the telemetry data.</typeparam> /// <param name="telemetryData">The telemetry data.</param> /// <param name="handleTypes">The types of telemetry to handle.</param> /// <param name="formatter">The output formatter.</param> /// <returns>Task.</returns> protected abstract Task DoWriteTelemetry <TTelemetryData>(TTelemetryData telemetryData, TelemetryTypes handleTypes, Func <TTelemetryData, string> formatter);