diff options
Diffstat (limited to 'Software/Visual_Studio/Utilities/Tango.Telemetry.Tester.IOT.CLI/Program.cs')
| -rw-r--r-- | Software/Visual_Studio/Utilities/Tango.Telemetry.Tester.IOT.CLI/Program.cs | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/Software/Visual_Studio/Utilities/Tango.Telemetry.Tester.IOT.CLI/Program.cs b/Software/Visual_Studio/Utilities/Tango.Telemetry.Tester.IOT.CLI/Program.cs new file mode 100644 index 000000000..cb8a79288 --- /dev/null +++ b/Software/Visual_Studio/Utilities/Tango.Telemetry.Tester.IOT.CLI/Program.cs @@ -0,0 +1,107 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL.Enumerations; +using Tango.Telemetry.Destinations; +using Tango.Telemetry.Sources; + +namespace Tango.Telemetry.Tester.IOT.CLI +{ + class Program + { + static void Main(string[] args) + { + TelemetryPublisher publisher = new TelemetryPublisher(new TelemetryPublisherConfiguration() + { + Environment = "DEV", + SerialNumber = "dev-machine", + MachineType = MachineTypes.TS1800, + HistorySourcesRequestInterval = TimeSpan.FromSeconds(1), + EnableBackoff = false, + + }, null); + + (publisher.StorageManager as TelemetryLiteDBStorageManager).EnableCheckPointsRecovery = false; + + publisher.RegisterSource(new JobRunsTestSource()); + publisher.RegisterDestination(new TelemetryAzureHubDestination("HostName=iot-twine-dev-weu.azure-devices.net;DeviceId=telemetry-dev-01;SharedAccessKey=cZhCMhiVL+TF7p13fpX+lFmyxoy8ZqCkbxUwumWw18Q=")); + + publisher.PublishResultAvailable += Publisher_PublishResultAvailable; + + publisher.Start().GetAwaiter().GetResult(); + + Console.Clear(); + Console.WriteLine("=== Telemetry IoT Hub Test Utility ==="); + Console.WriteLine($"Publisher started. Streaming every {publisher.Config.HistorySourcesRequestInterval.TotalSeconds} seconds."); + Console.WriteLine("Press any key to stop streaming data..."); + + Console.ReadKey(); + + Console.WriteLine("Disposing publisher..."); + publisher.Dispose(); + } + + private static void Publisher_PublishResultAvailable(object sender, TelemetryPublishResultAvailableEventArgs e) + { + Console.ForegroundColor = ConsoleColor.DarkGray; + Console.WriteLine($"Package publish result available:\n{e.PublishResult.ToString()}"); + + if (e.PublishResult.DestinationsResults.Any(d => d.Status == TelemetryPublishResult.DestinationStatus.Failed)) + { + Console.ForegroundColor = ConsoleColor.Red; + Console.WriteLine("One or more destinations failed to receive the package."); + } + else + { + Console.ForegroundColor = ConsoleColor.Green; + Console.WriteLine("Package successfully published."); + } + Console.ResetColor(); + + Console.WriteLine("Press any key to stop streaming data..."); + } + } + + [TelemetryName("JobRun")] + public class JobRunTestTelemetry : TelemetryBase + { + public String JobName { get; set; } + public String Thread { get; set; } + public double Length { get; set; } + } + + public class JobRunsTestSource : ITelemetryHistorySource + { + private int counter = 1; + + public string Name { get; } = "Persons Source"; + public bool RequiresTelemetryDuplicationTracking { get; } = false; + + public Task<bool> CanRequestHistory(DateTime from) + { + return Task.FromResult(true); + } + + public void Dispose() + { + + } + + public Task<IEnumerable<ITelemetry>> RequestHistory(DateTime from) + { + return Task. + FromResult<IEnumerable<ITelemetry>>(new List<JobRunTestTelemetry>() + { + new JobRunTestTelemetry() + { + Time = DateTime.UtcNow, + JobName = $"Job For Materialized {counter++}", + Length = 1000 + counter, + Thread = $"Coats Thread {counter}" + } + }); + } + } +} |
