aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Software/Visual_Studio/Tango.BL/FineTuning/FineTuningTypes.cs3
-rw-r--r--Software/Visual_Studio/Tango.Telemetry/Mappers/JobRunMapper.cs5
-rw-r--r--Software/Visual_Studio/Tango.Telemetry/Telemetries/TelemetryJobRun.cs23
-rw-r--r--Software/Visual_Studio/Tango.Telemetry/TelemetryPublishPackage.cs4
-rw-r--r--Software/Visual_Studio/Utilities/Tango.Telemetry.Tester.IOT.CLI/Program.cs65
5 files changed, 89 insertions, 11 deletions
diff --git a/Software/Visual_Studio/Tango.BL/FineTuning/FineTuningTypes.cs b/Software/Visual_Studio/Tango.BL/FineTuning/FineTuningTypes.cs
index 81326481d..36644d677 100644
--- a/Software/Visual_Studio/Tango.BL/FineTuning/FineTuningTypes.cs
+++ b/Software/Visual_Studio/Tango.BL/FineTuning/FineTuningTypes.cs
@@ -9,8 +9,11 @@ namespace Tango.BL.FineTuning
{
public enum FineTuningTypes
{
+ //Automatic
[Description("Fine Tuning")]
FineTuning,
+
+ //Manual
[Description("Manual Fine Tuning")]
ManualFineTuning,
}
diff --git a/Software/Visual_Studio/Tango.Telemetry/Mappers/JobRunMapper.cs b/Software/Visual_Studio/Tango.Telemetry/Mappers/JobRunMapper.cs
index 4a08f9645..8d8023c95 100644
--- a/Software/Visual_Studio/Tango.Telemetry/Mappers/JobRunMapper.cs
+++ b/Software/Visual_Studio/Tango.Telemetry/Mappers/JobRunMapper.cs
@@ -79,10 +79,13 @@ namespace Tango.Telemetry.Mappers
tRun.Thread = _rmls.FirstOrDefault(x => x.Guid == run.RmlGuid)?.FinalName;
tRun.NumberOfUnits = Math.Max(run.NumberOfUnits, 1);
+ //Infer Number of Spools.
+ tRun.NumberOfSpools = run.MachineTypeEnum == MachineTypes.Eureka ? 4 : 1;
+
//What the user entered including white gaps leaving out spools and number of units.
tRun.LogicalLength = run.JobLogicalLength;
- //What the user entered talking into account white gaps, spools and number of units.
+ //What the user entered taking into account white gaps, spools and number of units.
//(White gaps between units is not calculated here and is added further here when the JobFile is ready with the inter-segment length).
tRun.ActualLength = (run.MachineTypeEnum == MachineTypes.Eureka ? run.JobLogicalLength * 4 : run.JobLogicalLength) * tRun.NumberOfUnits;
diff --git a/Software/Visual_Studio/Tango.Telemetry/Telemetries/TelemetryJobRun.cs b/Software/Visual_Studio/Tango.Telemetry/Telemetries/TelemetryJobRun.cs
index 502b6397f..883da2b8a 100644
--- a/Software/Visual_Studio/Tango.Telemetry/Telemetries/TelemetryJobRun.cs
+++ b/Software/Visual_Studio/Tango.Telemetry/Telemetries/TelemetryJobRun.cs
@@ -67,26 +67,43 @@ namespace Tango.Telemetry.Telemetries
public String JobName { get; set; }
public String Kind { get; set; }
public String Thread { get; set; }
- public int NumberOfUnits { get; set; }
+ public int NumberOfUnits { get; set; } // Minimum 1.
public int InterSegmentLength { get; set; }
public bool LubricationEnabled { get; set; }
public int SpoolTypeDistribution { get; set; }
public int NumberOfSpools { get; set; }
+ //What the user entered including white gaps leaving out and number of units and number of spools.
public double LogicalLength { get; set; }
+
+ //What the user entered, taking into account white gaps and number of units, all multiplied by the number of spools.
public double ActualLength { get; set; }
+
+ //The actual length the machine had ran, including white gaps, number of units and dryer buffer length, all multiplied by the number of spools.
public double TotalLength { get; set; }
+
+ //The position where the job started relative to the ActualLength (This will greater than zero only if we are resuming a jobrun that had stopped in the middle).
public double StartPosition { get; set; }
+
+ //The position where the job stopped relative to the ActualLength.
public double EndPosition { get; set; }
+
+ //EndPosition - StartPosition
public double Distance { get; set; }
public DateTime StartTime { get; set; }
public DateTime EndTime { get; set; }
+
+ //EndTime - StartTime
public TimeSpan Duration { get; set; }
+
+ //The time it took from the moment the user executed the job to the time it actually started dyeing.
public TimeSpan HeatingDuration { get; set; }
+ //Completed/Failed,Aborted (By the user)
public String Status { get; set; }
+ //Total quantities of ink dispensed during this run in nanoliters (better to display as cubic liter maybe).
public long OutputCyan { get; set; }
public long OutputMagenta { get; set; }
public long OutputYellow { get; set; }
@@ -105,6 +122,7 @@ namespace Tango.Telemetry.Telemetries
public long OutputTransparent { get; set; }
public long OutputLubricant { get; set; }
+ //The error that has occurred when Status = "Failed"
public String FailureReason { get; set; }
public String ApplicationVersion { get; set; }
@@ -114,7 +132,8 @@ namespace Tango.Telemetry.Telemetries
public VectorFineTuningRunModel FineTuning { get; set; } //Dynamic
- public ProcessParameters ProcessParameters { get; set; } //Dynamic
+ //ProcessParamaters.DyeingSpeed = The speed in which the machine is dyeing the thread in centimeters per second.
+ public ProcessParameters ProcessParameters { get; set; }
public TelemetryJobRun()
{
diff --git a/Software/Visual_Studio/Tango.Telemetry/TelemetryPublishPackage.cs b/Software/Visual_Studio/Tango.Telemetry/TelemetryPublishPackage.cs
index b008a210f..2e7a43361 100644
--- a/Software/Visual_Studio/Tango.Telemetry/TelemetryPublishPackage.cs
+++ b/Software/Visual_Studio/Tango.Telemetry/TelemetryPublishPackage.cs
@@ -19,8 +19,8 @@ namespace Tango.Telemetry
public String Environment { get; set; }
public String SerialNumber { get; set; }
public String MachineType { get; set; }
- public String Organization { get; internal set; }
- public String Site { get; internal set; }
+ public String Organization { get; set; }
+ public String Site { get; set; }
public String TelemetryName { get; internal set; }
public int TelemetryVersion { get; internal set; }
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
index 0565ab00d..fee2fe346 100644
--- a/Software/Visual_Studio/Utilities/Tango.Telemetry.Tester.IOT.CLI/Program.cs
+++ b/Software/Visual_Studio/Utilities/Tango.Telemetry.Tester.IOT.CLI/Program.cs
@@ -9,18 +9,24 @@ using Tango.Logging;
using Tango.Telemetry.Destinations;
using Tango.Telemetry.Mappers;
using Tango.Telemetry.Sources;
+using Tango.Telemetry.Telemetries;
+using System.Data.Entity;
+using Tango.BL.Entities;
namespace Tango.Telemetry.Tester.IOT.CLI
{
class Program
{
+ private static List<MachineExtendedInfo> _machineInfos;
+ private static int _counter = 1;
+
static void Main(string[] args)
{
LogManager.Default.RegisterLogger(new Tango.Logging.VSOutputLogger("IOT TESTER"));
TelemetryPublisher publisher = new TelemetryPublisher(new TelemetryPublisherConfiguration()
{
- Environment = "DEV",
+ Environment = "PROD",
SerialNumber = "dev-machine",
Organization = "Twine",
MachineType = MachineTypes.TS1800,
@@ -35,6 +41,7 @@ namespace Tango.Telemetry.Tester.IOT.CLI
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.PublishingPackage += Publisher_PublishingPackage;
publisher.Start().GetAwaiter().GetResult();
@@ -49,6 +56,42 @@ namespace Tango.Telemetry.Tester.IOT.CLI
publisher.Dispose();
}
+ private static void Publisher_PublishingPackage(object sender, TelemetryPackagePublishingEventArgs e)
+ {
+ TelemetryJobRun tRun = e.Package.PendingTelemetry.TelemetryObject as TelemetryJobRun;
+
+ if (_machineInfos == null)
+ {
+ using (ObservablesContext db = ObservablesContext.CreateDefault())
+ {
+ _machineInfos = new List<MachineExtendedInfo>();
+ var machinesOrganizations = db.Machines.Include(x => x.Organization).Select(x => new { x, x.Organization.Name, x.SiteGuid }).ToList();
+ foreach (var item in machinesOrganizations)
+ {
+ MachineExtendedInfo info = new MachineExtendedInfo();
+ info.Machine = item.x;
+ info.Organization = item.Name;
+ info.Site = db.Sites.FirstOrDefault(x => x.Guid == item.SiteGuid)?.Name;
+ _machineInfos.Add(info);
+ }
+ }
+ }
+
+ var machineInfo = _machineInfos.FirstOrDefault(x => x.Machine.Guid == tRun.MachineGuid);
+
+ if (machineInfo == null)
+ {
+ e.Cancel = true;
+ }
+ else
+ {
+ e.Package.Organization = machineInfo.Organization;
+ e.Package.Site = machineInfo.Site;
+ e.Package.SerialNumber = machineInfo.Machine.SerialNumber;
+ e.Package.MachineType = machineInfo.Machine.Type.ToShortName();
+ }
+ }
+
private static void Publisher_PublishResultAvailable(object sender, TelemetryPublishResultAvailableEventArgs e)
{
Console.ForegroundColor = ConsoleColor.DarkGray;
@@ -62,7 +105,7 @@ namespace Tango.Telemetry.Tester.IOT.CLI
else
{
Console.ForegroundColor = ConsoleColor.Green;
- Console.WriteLine("Package successfully published.");
+ Console.WriteLine($"Package {_counter++} successfully published.");
}
Console.ResetColor();
@@ -70,6 +113,13 @@ namespace Tango.Telemetry.Tester.IOT.CLI
}
}
+ public class MachineExtendedInfo
+ {
+ public Machine Machine { get; set; }
+ public String Organization { get; set; }
+ public String Site { get; set; }
+ }
+
public class JobRunsTestSource : ITelemetryHistorySource
{
private bool _busy;
@@ -91,18 +141,21 @@ namespace Tango.Telemetry.Tester.IOT.CLI
public Task<IEnumerable<ITelemetry>> RequestHistory(DateTime from)
{
_busy = true;
-
+
ObservablesContext.OverrideSettingsDataSource(new Core.DataSource()
{
- Address = "localhost\\SQLPPC",
- IntegratedSecurity = true,
+ Address = "twine.database.windows.net",
+ IntegratedSecurity = false,
Catalog = "Tango",
+ UserName = "Roy",
+ Password = "Aa123456",
Type = Core.DataSourceType.SQLServer,
});
using (ObservablesContext db = ObservablesContext.CreateDefault())
{
- var runs = db.JobRuns.OrderByDescending(x => x.LastUpdated).Where(x => x.LastUpdated < from).Take(1).ToList();
+ var runs = db.JobRuns.Where(x => x.LastUpdated < from).OrderByDescending(x => x.LastUpdated).Take(100).ToList();
+
var runsT = runs.Select(x => JobRunMapper.MapJobRun(x)).ToList();
_busy = false;