aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Telemetry
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2025-08-19 23:21:38 +0300
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2025-08-19 23:21:38 +0300
commit9c64ff964e98c5a27bb63cecf3042499b6b50736 (patch)
tree92fedef33c960383720c518a38fc8a68c7093734 /Software/Visual_Studio/Tango.Telemetry
parent9d2bca0f44fe0a4a2f25e819f6c27974181f5221 (diff)
downloadTango-9c64ff964e98c5a27bb63cecf3042499b6b50736.tar.gz
Tango-9c64ff964e98c5a27bb63cecf3042499b6b50736.zip
Telemetry Machine Status.
Diffstat (limited to 'Software/Visual_Studio/Tango.Telemetry')
-rw-r--r--Software/Visual_Studio/Tango.Telemetry/Sources/TelemetryMachineStatusStreamingSource.cs63
-rw-r--r--Software/Visual_Studio/Tango.Telemetry/Tango.Telemetry.csproj2
-rw-r--r--Software/Visual_Studio/Tango.Telemetry/Telemetries/TelemetryMachineStatus.cs15
3 files changed, 80 insertions, 0 deletions
diff --git a/Software/Visual_Studio/Tango.Telemetry/Sources/TelemetryMachineStatusStreamingSource.cs b/Software/Visual_Studio/Tango.Telemetry/Sources/TelemetryMachineStatusStreamingSource.cs
new file mode 100644
index 000000000..c8d4f9216
--- /dev/null
+++ b/Software/Visual_Studio/Tango.Telemetry/Sources/TelemetryMachineStatusStreamingSource.cs
@@ -0,0 +1,63 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.Integration.Operation;
+using Tango.Telemetry.Telemetries;
+
+namespace Tango.Telemetry.Sources
+{
+ public class TelemetryMachineStatusStreamingSource : ITelemetryStreamingSource
+ {
+ private IMachineOperator _machineOperator;
+
+ public bool IsStarted { get; private set; }
+ public string Name { get; } = "Machine Status Streaming";
+ public bool RequiresTelemetryDuplicationTracking { get; }
+
+ public event EventHandler<TelemetryAvailableEventArgs> TelemetryAvailable;
+
+ public TelemetryMachineStatusStreamingSource(IMachineOperator machineOperator)
+ {
+ _machineOperator = machineOperator;
+ }
+
+ public void Start()
+ {
+ if (!IsStarted)
+ {
+ IsStarted = true;
+ _machineOperator.MachineStatusChanged += MachineOperator_MachineStatusChanged;
+ }
+ }
+
+ public void Stop()
+ {
+ if (IsStarted)
+ {
+ IsStarted = false;
+ _machineOperator.MachineStatusChanged -= MachineOperator_MachineStatusChanged;
+ }
+ }
+
+ private void MachineOperator_MachineStatusChanged(object sender, PMR.MachineStatus.MachineStatus status)
+ {
+ if (IsStarted)
+ {
+ TelemetryAvailable?.Invoke(this, new TelemetryAvailableEventArgs()
+ {
+ TelemetryObject = new TelemetryMachineStatus()
+ {
+ Status = status
+ }
+ });
+ }
+ }
+
+ public void Dispose()
+ {
+ Stop();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.Telemetry/Tango.Telemetry.csproj b/Software/Visual_Studio/Tango.Telemetry/Tango.Telemetry.csproj
index 249a9968f..e53d2e99e 100644
--- a/Software/Visual_Studio/Tango.Telemetry/Tango.Telemetry.csproj
+++ b/Software/Visual_Studio/Tango.Telemetry/Tango.Telemetry.csproj
@@ -274,10 +274,12 @@
<Compile Include="Sources\TelemetryJobRunsStreamingSource.cs" />
<Compile Include="Sources\TelemetryLogsStreamingSource.cs" />
<Compile Include="Sources\TelemetryLogsStreamingSourceConfig.cs" />
+ <Compile Include="Sources\TelemetryMachineStatusStreamingSource.cs" />
<Compile Include="Sources\TelemetryMachineUpdatesStreamingSource.cs" />
<Compile Include="Sources\TelemetryMachineUpdatesHistorySource.cs" />
<Compile Include="Telemetries\TelemetryEvent.cs" />
<Compile Include="Telemetries\TelemetryLog.cs" />
+ <Compile Include="Telemetries\TelemetryMachineStatus.cs" />
<Compile Include="Telemetries\TelemetryMachineUpdate.cs" />
<Compile Include="TelemetryConfigurableSource.cs" />
<Compile Include="TelemetryHistorySourceCheckPoint.cs" />
diff --git a/Software/Visual_Studio/Tango.Telemetry/Telemetries/TelemetryMachineStatus.cs b/Software/Visual_Studio/Tango.Telemetry/Telemetries/TelemetryMachineStatus.cs
new file mode 100644
index 000000000..d5de7905b
--- /dev/null
+++ b/Software/Visual_Studio/Tango.Telemetry/Telemetries/TelemetryMachineStatus.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.PMR.MachineStatus;
+
+namespace Tango.Telemetry.Telemetries
+{
+ [TelemetryName("MachineStatus", 1)]
+ public class TelemetryMachineStatus : TelemetryBase
+ {
+ public MachineStatus Status { get; set; }
+ }
+}