Пример #1
0
        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);
        }
Пример #4
0
        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");
        }
Пример #5
0
        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();
        }
Пример #6
0
        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();
        }
Пример #7
0
        /// <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;
        }
Пример #8
0
 public MotorSensor(SensorReader sensorReader)
 {
     this.sensorReader = sensorReader;
 }
Пример #9
0
 public BatterySensor(SensorReader sensorReader)
 {
     this.sensorReader = sensorReader;
 }
Пример #10
0
        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));
            }
        }
Пример #11
0
 public OISensor(SensorReader sensorReader)
 {
     this.sensorReader = sensorReader;
 }
Пример #12
0
 public ReceiverSensor(SensorReader sensorReader)
 {
     this.sensorReader = sensorReader;
 }
Пример #13
0
 public SongSensor(SensorReader sensorReader)
 {
     this.sensorReader = sensorReader;
 }
Пример #14
0
 public EnvironmentSensor(SensorReader sensorReader)
 {
     this.sensorReader = sensorReader;
 }
Пример #15
0
 public DriverSensor(SensorReader sensorReader)
 {
     this.sensorReader = sensorReader;
 }
Пример #16
0
 public ButtonsSensor(SensorReader sensorReader)
 {
     this.sensorReader = sensorReader;
 }
Пример #17
0
 public CleanerSensor(SensorReader sensorReader)
 {
     this.sensorReader = sensorReader;
 }