aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Utilities/Tango.Telemetry.Tester.IOT.CLI/Program.cs
diff options
context:
space:
mode:
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.cs107
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}"
+ }
+ });
+ }
+ }
+}