NucuCar.Domain: Modify ITelemeter interface to add new method: IsTelemetryEnabled.

This commit is contained in:
Denis-Cosmin Nutiu 2020-01-26 12:52:09 +02:00
parent bc245cb5f6
commit 943aafdf40
7 changed files with 28 additions and 2 deletions

View file

@ -9,7 +9,6 @@ namespace NucuCar.Domain.Sensors
/// </summary>
public abstract class GenericSensor
{
protected bool TelemetryEnabled;
protected ILogger Logger;
protected SensorStateEnum CurrentState;

View file

@ -11,7 +11,9 @@ namespace NucuCar.Domain.Sensors
/// </summary>
public abstract class GenericTelemeterSensor : GenericSensor, ITelemeter
{
protected bool TelemetryEnabled;
public abstract string GetIdentifier();
public abstract Dictionary<string, object> GetTelemetryData();
public abstract bool IsTelemetryEnabled();
}
}

View file

@ -16,8 +16,18 @@ namespace NucuCar.Domain.Telemetry
/// <summary>
/// This function should return a dictionary containing the telemetry data.
/// When implementing this function you should return null if the telemetry is disabled.
/// See: <see cref="IsTelemetryEnabled"/>
/// </summary>
/// <returns>The telemetry data. It should be JSON serializable.</returns>
Dictionary<string, object> GetTelemetryData();
/// <summary>
/// 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.
/// </summary>
/// <returns>A boolean indicating if the sensor has enabled telemetry.</returns>
bool IsTelemetryEnabled();
}
}

View file

@ -60,7 +60,7 @@ namespace NucuCar.Domain.Telemetry
/// <returns>Returns true if the telemeter has registered successfully and false otherwise.</returns>
public bool RegisterTelemeter(ITelemeter t)
{
if (RegisteredTelemeters.Contains(t)) return false;
if (RegisteredTelemeters.Contains(t) || !t.IsTelemetryEnabled()) return false;
Logger?.LogDebug($"Registering telemeter {t.GetIdentifier()}");
RegisteredTelemeters.Add(t);
return true;

View file

@ -149,6 +149,11 @@ namespace NucuCar.Sensors.Environment
return returnValue;
}
public override bool IsTelemetryEnabled()
{
return TelemetryEnabled;
}
public Bme680Sensor Object { get; }
}
}

View file

@ -98,6 +98,11 @@ namespace NucuCar.Sensors.Health
return returnValue;
}
public override bool IsTelemetryEnabled()
{
return TelemetryEnabled;
}
public CpuTempSensor Object { get; }
}
}

View file

@ -41,6 +41,11 @@ namespace NucuCar.TestClient.Telemetry
{
return _dummyTelemeterData;
}
public bool IsTelemetryEnabled()
{
return true;
}
}
public static async Task RunAzurePublisherTelemetryTest(AzureTelemetryPublishOptions opts)