private async Task SendEvents(DeviceClient deviceClient) { try { SensorReader c = new SensorReader(pinNumber); while (true) { var data = c.Read(); if (data != null && data.IsValid) { try { refreshData(data); await sendData(deviceClient, data); } catch (Exception ex) { Logger.LogException(ex); } } //sensor should be read every 2 seconds await Task.Delay(2000).ConfigureAwait(false); } } catch (Exception ex) { Logger.LogException(ex); } }
/// <summary> /// The Single Responsibility principle states that a class should have only one reason to change. In the below, the SensorReader has two responsibilities, namely reading a sensor value and reporting it to a log. /// </summary> private static void Main() { SensorReader sensorReader = new SensorReader(); string sensorValue = sensorReader.ReadSensorValue(); sensorReader.WriteSensorValueToLog(sensorValue); }
/// <summary> /// The best solution to the SensorReader's multiple responsibilities is to simply seperate them. /// </summary> private static void Main() { // Separating the concerns is better: SensorReader sensorReader = new SensorReader(); string sensorValue = sensorReader.ReadSensorValue(); FileLogger filelOgger = new FileLogger(); filelOgger.WriteToLog(sensorValue); }
private void OnEnable() { sensor = (SensorReader)target; script = MonoScript.FromMonoBehaviour((SensorReader)target); returnTypeProperty = serializedObject.FindProperty("returnType"); updateIntervalProperty = serializedObject.FindProperty("updateInterval"); vector3ValueProperty = serializedObject.FindProperty("vector3Value"); intValueProperty = serializedObject.FindProperty("intValue"); floatValueProperty = serializedObject.FindProperty("floatValue"); sensorOutputNumberProperty = serializedObject.FindProperty("sensorOutputNumber"); sensorProperty = serializedObject.FindProperty("sensor"); modifierProperty = serializedObject.FindProperty("modifiers"); }
public MeadowApp() { _bluetooth = new Hc06(Device, Device.SerialPortNames.Com4); CycleCount = 0; DispatchTime = 0; TelemetrySendTime = 0; _layout = new Layout("control", this); //Components _sensorReader = new SensorReader(Device, _layout); _telemetrySender = new TelemetrySender(new DeviceStream(_bluetooth), TelemetryConfig.Meadow, _layout); _lookup = _layout.GetLookup(); }
static async Task Main(string[] args) { using var loggerFactory = LoggerFactory.Create(opts => opts.AddConsole().SetMinimumLevel(LogLevel.Information)); var portName = SerialPort.GetPortNames().FirstOrDefault(); using var port = new SerialPort(portName, 115200); port.Open(); using var dispatcher = new OIDispatcher(port, loggerFactory.CreateLogger <OIDispatcher>()); var sensorReader = new SensorReader(dispatcher, loggerFactory.CreateLogger <SensorReader>()); var ioSensor = new OISensor(sensorReader); var robot = new Robot(dispatcher, ioSensor, loggerFactory.CreateLogger <Robot>()); await robot.Reset(); Console.WriteLine($"IO Mode: {robot.CurrentMode}"); await robot.Start(); Console.WriteLine($"IO Mode: {robot.CurrentMode}"); await robot.Activate(); Console.WriteLine($"IO Mode: {robot.CurrentMode}"); await robot.Stop(); }
/// <summary> /// Initializes the singleton application object. This is the first line of authored code /// executed, and as such is the logical equivalent of main() or WinMain(). /// </summary> public App() { this.InitializeComponent(); this.Suspending += OnSuspending; #if ARM SensorReader = new SenseHatReader(1000, 15); #else SensorReader = new DummyReader(1000, 15); #endif SensorReader.Init(); MaxNrBfrMaintenance = 1; currentNrofServiceCalls = 0; MaxTemp = float.NegativeInfinity; MinTemp = float.PositiveInfinity; MaxHumi = float.NegativeInfinity; MinHumi = float.PositiveInfinity; MaxPres = float.NegativeInfinity; MinPres = float.PositiveInfinity; }
public MotorSensor(SensorReader sensorReader) { this.sensorReader = sensorReader; }
public BatterySensor(SensorReader sensorReader) { this.sensorReader = sensorReader; }
private async Task SendEvents(DeviceClient deviceClient) { try { string dataBuffer; SensorReader c = new SensorReader(4); Guid id = Guid.NewGuid(); while (true) { var data=c.Read(); if (data!=null && data.IsValid) { try { System.Diagnostics.Debug.WriteLine(string.Format("Temp:{0} Hum:{1}", data.Temperature, data.Humidity)); dataBuffer = string.Format(jsonFormat, GUID, ORGANIZATION, DISPLAYNAME, LOCATION, TEMPMEASURE, TEMPUNITS, data.Temperature, DateTime.UtcNow); Message eventMessage = new Message(Encoding.UTF8.GetBytes(dataBuffer)); await deviceClient.SendEventAsync(eventMessage); dataBuffer = string.Format(jsonFormat, GUID, ORGANIZATION, DISPLAYNAME, LOCATION, HUMIDMEASURE, HUMIDUNITS, data.Humidity, DateTime.UtcNow); eventMessage = new Message(Encoding.UTF8.GetBytes(dataBuffer)); await deviceClient.SendEventAsync(eventMessage); } catch(Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); } } await Task.Delay(2000).ConfigureAwait(false); } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(string.Format("{0}: {1}", ex.Message, ex.StackTrace)); } }
public OISensor(SensorReader sensorReader) { this.sensorReader = sensorReader; }
public ReceiverSensor(SensorReader sensorReader) { this.sensorReader = sensorReader; }
public SongSensor(SensorReader sensorReader) { this.sensorReader = sensorReader; }
public EnvironmentSensor(SensorReader sensorReader) { this.sensorReader = sensorReader; }
public DriverSensor(SensorReader sensorReader) { this.sensorReader = sensorReader; }
public ButtonsSensor(SensorReader sensorReader) { this.sensorReader = sensorReader; }
public CleanerSensor(SensorReader sensorReader) { this.sensorReader = sensorReader; }