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();
}
}