using Newtonsoft.Json.Linq; using NucuCar.Telemetry.Publishers; namespace NucuCar.Telemetry.Abstractions { /// /// Interface that specifies that the component implementing it is willing to provide telemetry data and can be /// registered to a publisher such as . /// public interface ITelemeter { /// /// This function should return an identifier that identifies the component providing the telemetry data. /// /// An identifier for the telemetry source. string GetIdentifier(); /// /// This function should return a dictionary containing the telemetry data. /// When implementing this function you should return null if the telemetry is disabled. /// See: /// /// The telemetry data as a Newtonsoft JObject. JObject GetTelemetryJson(); /// /// This function should return whether the sensor has telemetry enabled or not. /// A value of true indicates that the sensor has enabled telemetry, and a value of false indicates /// that telemetry is not enabled. /// /// A boolean indicating if the sensor has enabled telemetry. bool IsTelemetryEnabled(); } }