Exemple #1
0
        static void Main(string[] args)
        {
            var tempsensor = new TempSensor();

            Console.WriteLine(tempsensor.CreateFromConnectionString("HostName=iot.azure.com;DeviceId=dev"));
            Console.WriteLine();

            var command = tempsensor.ReceiveMessage();

            //den apparaten få meddelande skickat till sig. ska lässa den :

            Console.WriteLine($"Reseived Command : {command}");

            switch (command)
            {
            case "get":
                tempsensor.SendMessage("temperature=12");
                break;

            case "Reset":
                tempsensor.SendMessage("Device has been reset");
                break;

            default:
                tempsensor.SendMessage("Command not implemented");
                break;
            }
        }
        public void Modbus_HandleFrame(TextBox tb)
        {
            RxIndex        = 0;
            RxBufferLength = 0;
            List <TempSensor> tempArray = new List <TempSensor>();

            //float[] list = new float[4];
            for (ushort i = 0; i < ushort.Parse(tb.Text); i++)
            {
                TempInt   = (ushort)((ModbusRxBuffer[2 * i + 3] << 8) + ModbusRxBuffer[2 * i + 4]);
                TempFloat = (float)TempInt / 100;
                //Console.WriteLine(TempFloat.ToString());

                TempSensor temps = new TempSensor();
                temps.setTempFloat(TempFloat);
                tempArray.Add(temps);
                // list[i] = TempFloat;
            }
            string result = "";

            for (int i = 0; i < tempArray.Count(); i++)
            {
                result += "T" + i.ToString() + " " + tempArray.ElementAt(i).getTempFloat().ToString() + " // ";
            }
            File.WriteAllText("Temperaturi.txt", result);
            //Console.WriteLine(result);
        }
Exemple #3
0
        public ISensor CreateTempSensor()
        {
            var sensor = new TempSensor();

            TypeDescriptor.AddAttributes(sensor, new MeasureCharacteristic(MeasureUnit.Celsius, MeasureType.Temp));
            return(sensor);
        }
Exemple #4
0
        static void Main(string[] args)
        {
            var tempsensor = new TempSensor();

            Console.WriteLine(tempsensor.CreateFromConnectionString("HostName=iot.azure.com;DeviceId=dev1"));
            Console.WriteLine();

            var command = tempsensor.ReceiveMessage();

            Console.WriteLine($"Received Command: {command}");

            switch (command)
            {
            case "get":
                tempsensor.SendMessage("temperature = 12");
                break;

            case "reset":
                tempsensor.SendMessage("device has been reset.");
                break;

            default:
                tempsensor.SendMessage("Command not implemented");
                break;
            }
        }
Exemple #5
0
        //Функция получения WMI информации об узлах компьютера
        public static void GetCompuerData()
        {
            //Вызываем универсальный метод у родительского класса DEVICE с типом CPUDate и дополнительно берем и докидываем статическое поле
            //С названием класса WMI из которого можно почерпнуть информации об устройствах данного типа установленных в данной машине.
            foreach (CPUData cpu in Device.GetDeviceData <CPUData>(CPUData.classWMI)) //В ответ данная функция возвращает массив устройств заданного типа
            {
                mainView.SetInfo(cpu.GetInfo(), TabOfProgramm.cpu, cpu.name);         //У каждого устройства вызывается метод GetInfo, реализация которого в основном
            }
            //Лежит в методе родительского класса. GetInfo возвращает лист специальных классов
            //DeviceForView. Этот лист метод SetInfo обрабатывает и выводит в заданные ListView на главном окне
            //Реализация выгрузки инфы по другим типам устройств иденитчна.
            foreach (RAMData ram in Device.GetDeviceData <RAMData>(RAMData.classWMI))
            {
                mainView.SetInfo(ram.GetInfo(), TabOfProgramm.ram, ram.name);
            }


            foreach (StorageData storage in Device.GetDeviceData <StorageData>(StorageData.classWMI))
            {
                mainView.SetInfo(storage.GetInfo(), TabOfProgramm.storage, storage.name);
            }

            foreach (CatchMemoryData catchMemory in Device.GetDeviceData <CatchMemoryData>(CatchMemoryData.classWMI))
            {
                mainView.SetInfo(catchMemory.GetInfo(), TabOfProgramm.cpu, catchMemory.name);
            }

            foreach (TemperatureSensorDate TempSensor in Device.GetDeviceData <TemperatureSensorDate>(TemperatureSensorDate.classWMI))
            {
                mainView.SetInfo(TempSensor.GetInfo(), TabOfProgramm.general, TempSensor.name);
            }
        }
        static void Main(string[] args)
        {
            ConsoleApplication7.TeleSystem.TeleSystem ts = new ConsoleApplication7.TeleSystem.TeleSystem(
                new List <SensorData>(),
                x =>
            {
                if (x.GetType() == typeof(TempSensor))
                {
                    return("Temp");
                }

                if (x.GetType() == typeof(PressureSensor))
                {
                    return("Press");
                }
                return(null);
            });

            var s1 = new TempSensor()
            {
                Id = 1
            };
            var s2 = new PressureSensor()
            {
                Id = 2
            };

            // ---------------------------------------------

            s1.Peek += ts.OnSensorPeek;
            s2.Peek += ts.OnSensorPeek;

            s1.DoPeek();
            s2.DoPeek();
        }
Exemple #7
0
        public List <TempSensor> GetSavedProbes()
        {
            foreach (TempSensor t in sensors)
            {
                if (!Readings.ContainsKey(t.SensorId))
                {
                    t.State = SensorState.Deleted;
                }
            }

            foreach (string sensorId in Readings.Keys)
            {
                TempSensor existing = sensors.Find(s => s.SensorId == sensorId);

                if (existing is null)
                {
                    sensors.Add(
                        new TempSensor()
                    {
                        SensorId        = sensorId,
                        DefaultSelected = false,
                        State           = SensorState.New,
                        Name            = ""
                    });
                }
            }

            return(sensors);
        }
        public async Task CreateAsync(TempSensor device)
        {
            if (!await _context.Database.CanConnectAsync())
            {
                throw new InvalidOperationException("Сonnection with MongoDB not established");
            }

            await _context.TempSensors.InsertOneAsync(device);

            _logger.LogInformation($"Created device document: s/n {device.serial_number}");
        }
Exemple #9
0
        public Hardware()
        {
            Lib.Generic.Opcode.Open();
            Lib.Generic.Ring0.Open();
            this.drives        = HardDrive.DetectDrives();
            this.cpu           = CPU.DetectCPU();
            this.ram           = Ram.DetectRam();
            this.gpus          = GPU.DetectGPUS();
            this.envTempSensor = TempSensor.DetectSensor();

            this.Update();
        }
Exemple #10
0
        public static void Main(string[] args)
        {
            var sensor = new TempSensor();
            var heater = new Heater();
            var ecs    = new ECS(28, sensor, heater);

            ecs.Regulate();

            ecs.SetThreshold(20);

            ecs.Regulate();
        }
Exemple #11
0
        public static void Main(string[] args)
        {
            ITempSensor _tempSensor = new TempSensor();
            IHeater     _heater     = new Heater();

            var ecs = new ECS(28, _heater, _tempSensor);

            ecs.Regulate();

            ecs.SetThreshold(20);

            ecs.Regulate();
        }
        public void Regulate()
        {
            var t = TempSensor.GetTemp();

            if (t < _threshold)
            {
                Heater.TurnOn();
            }
            else
            {
                Heater.TurnOff();
            }
        }
        public static void Main(string[] args)
        {
            //Create dependencies
            ITempSensor _tempSensor = new TempSensor();
            IHeater     _heater     = new Heater();

            //Create ECS sytem class
            var ecs = new ECS(28, _tempSensor, _heater);

            ecs.Regulate();


            ecs.SetThreshold(20);
        }
        public void Setup()
        {
            _receivedEventArgs = null;

            _uut = new TempSensor();
            _uut.SetTemp(20);

            // Set up an event listener to check the event occurrence and event data
            _uut.TempChangedEvent +=
                (o, args) =>
            {
                _receivedEventArgs = args;
            };
        }
        public void Setup()
        {
            _uut           = new TempSensor();
            receivedArgs   = null;
            NumberOfEvents = 0;

            // Setup a fake event handler
            // Remember the received arg
            // and count the number of events
            _uut.TempChangedEvent +=
                (s, a) => {
                receivedArgs = a;
                NumberOfEvents++;
            };
        }
Exemple #16
0
        public void Update()
        {
            // update GPU data
            if (this.gpus != null)
            {
                foreach (GPU gpu in this.gpus)
                {
                    gpu.Update();
                }
            }

            // update hardDrive data
            if (this.drives != null)
            {
                foreach (HardDrive drive in this.drives)
                {
                    drive.Update();
                }
            }

            // update cpu data
            if (this.cpu != null)
            {
                this.cpu.Update();
            }

            // update ram data
            if (this.ram != null)
            {
                this.ram.Update();
            }

            // check external sensor Data
            if (this.envTempSensor == null)
            {
                this.envTempSensor = TempSensor.DetectSensor();
            }
            else
            {
                this.envTempSensor.Update();
                if (this.envTempSensor.IsFailure())
                {
                    this.envTempSensor = null;
                }
            }
        }
Exemple #17
0
        public async Task <ReplaceOneResult> ReplaceAsync(TempSensor device)
        {
            if (!await _context.Database.CanConnectAsync())
            {
                throw new InvalidOperationException("Сonnection with MongoDB not established");
            }

            var result = await _context.TempSensors.ReplaceOneAsync(x => x.id == device.id, device);

            if (result.IsAcknowledged)
            {
                _logger.LogInformation($"Replaced device document: _id {device.id}");
            }
            else
            {
                _logger.LogWarning($"Failed to replace device document: _id {device.id}");
            }

            return(result);
        }
Exemple #18
0
        TtlSensor CreateTtlSensor(SensorType sensorType, String name, Channel channel, float sampleRate, bool queueData)
        {
            TtlSensor sensor;
            switch (sensorType)
            {

                //case SensorType.Brain:
                //    sensor = new BrainSensor(new BrainSensor.Processor(), name, channel, sampleRate, queueData);
                //    break;

                case SensorType.Bvp:
                    sensor = new BvpSensor(new BvpSensor.Processor(), name, channel, sampleRate, queueData);
                    break;

                case SensorType.Gsr:
                    sensor = new GsrSensor(new GsrSensor.Processor(), name, channel, sampleRate, queueData);
                    break;

                case SensorType.Heart:
                    sensor = new HeartSensor(new HeartSensor.Processor(), name, channel, sampleRate, queueData);
                    break;

                case SensorType.Muscle:
                    sensor = new MuscleSensor(new MuscleSensor.Processor(), name, channel, sampleRate, queueData);
                    break;

                case SensorType.Strain:
                    sensor = new StrainSensor(new StrainSensor.Processor(), name, channel, sampleRate, queueData);
                    break;

                case SensorType.Temperature:
                    sensor = new TempSensor(new TempSensor.Processor(), name, channel, sampleRate, queueData);
                    break;

                case SensorType.Raw:
                    sensor = new RawSensor(new RawSensor.Processor(), name, channel, sampleRate, queueData);
                    break;

                default:
                    sensor = null;
                    Debug.Assert(false);
                    break;
            }

            return sensor;
        }
Exemple #19
0
 public void TestTempReturnsResult(int result)
 {
     rand  = new FakeRandom();
     _temp = new TempSensor(rand);
     Assert.That(_temp.GetTemp(), Is.EqualTo(result));
 }
Exemple #20
0
        static void Main(string[] args)
        {
            try
            {
                /*
                 #region lora
                 * string SerialPortName = ConfigurationManager.AppSettings["Port"];
                 * UART = new SimpleSerial(SerialPortName, 57600);
                 * UART.ReadTimeout = 0;
                 *
                 * //UART.ReadBufferSize = 1024;
                 * //UART.WriteBufferSize = 1024;
                 * //UART.BaudRate = 38400;
                 * //UART.DataBits = 8;
                 * //UART.Parity = Parity.None;
                 * //UART.StopBits = StopBits.One;
                 *
                 * UART.DataReceived += UART_DataReceived;
                 * Console.WriteLine("57600");
                 * Console.WriteLine("RN2483 Test");
                 *
                 * var reset = Pi.Gpio[BcmPin.Gpio06]; //pin 6
                 * var reset2 =  Pi.Gpio[BcmPin.Gpio06]; //pin 3
                 #endregion
                 */
                Pi.Init <BootstrapWiringPi>();
                Console.WriteLine(">> Init mqtt");
                MqttService mqtt       = new MqttService();
                DS1307      jam        = new DS1307();
                TempSensor  tempSensor = new TempSensor();
                var         nowDate    = DateTime.Now;
                Console.WriteLine("Device Date :" + nowDate);
                jam.SetDateAsync(nowDate).GetAwaiter().GetResult();
                Console.WriteLine("TGL RTC:" + jam.GetDateAsync().GetAwaiter().GetResult().ToString());
                ADS1115_PY analog = new ADS1115_PY();
                Relay1       = Pi.Gpio[BcmPin.Gpio06]; //Pi.Gpio.Pin06;
                Relay2       = Pi.Gpio[BcmPin.Gpio13]; //Pi.Gpio.Pin13;
                Limit1       = Pi.Gpio[BcmPin.Gpio19]; //Pi.Gpio.Pin19;
                Limit2       = Pi.Gpio[BcmPin.Gpio26]; //Pi.Gpio.Pin26;
                Relay1Status = true;
                Relay2Status = true;

                WriteDigital(Relay1, Relay1Status);
                WriteDigital(Relay2, Relay2Status);
                mqtt.CommandReceived += (string Message) =>
                {
                    Task.Run(async() => { await DoAction(Message); });
                };
                var INTERVAL = int.Parse(ConfigurationManager.AppSettings["Interval"]);
                //analog.Start();

                /*
                 * analog.ChannelChanged += (object sender, ChannelReadingDone e) =>
                 * {
                 *  Console.WriteLine($">> channel {e.Channel} : {e.RawValue}");
                 * };*/
                /*
                 #region lora
                 * reset.Write(true);
                 * reset2.Write(true);
                 *
                 * Thread.Sleep(100);
                 * reset.Write(false);
                 * reset2.Write(false);
                 *
                 * Thread.Sleep(100);
                 * reset.Write(true);
                 * reset2.Write(true);
                 *
                 * Thread.Sleep(100);
                 *
                 * waitForResponse();
                 *
                 * sendCmd("sys factoryRESET");
                 * sendCmd("sys get hweui");
                 * sendCmd("mac get deveui");
                 *
                 * // For TTN
                 * sendCmd("mac set devaddr AAABBBEE");  // Set own address
                 * Thread.Sleep(1000);
                 * sendCmd("mac set appskey 2B7E151628AED2A6ABF7158809CF4F3D");
                 * Thread.Sleep(1000);
                 *
                 * sendCmd("mac set nwkskey 2B7E151628AED2A6ABF7158809CF4F3D");
                 * Thread.Sleep(1000);
                 *
                 * sendCmd("mac set adr off");
                 * Thread.Sleep(1000);
                 *
                 * sendCmd("mac set rx2 3 868400000");//869525000
                 * Thread.Sleep(1000);
                 *
                 * sendCmd("mac join abp");
                 * sendCmd("mac get status");
                 * sendCmd("mac get devaddr");
                 * Thread.Sleep(1000);
                 #endregion
                 */
                while (true)
                {
                    /*
                     * for (int i = 0; i < 4; i++)
                     * {
                     *  Console.WriteLine($"A{i} = {analog.read_adc(i)}");
                     * }*/
                    var sensor = new DeviceData()
                    {
                        LimitSwitch1 = ReadDigital(Limit1), LimitSwitch2 = ReadDigital(Limit2), Relay1 = Relay1Status, Relay2 = Relay2Status, TDS1 = analog.read_adc(0),
                        TDS2         = analog.read_adc(1), Temp = tempSensor.Read()
                    };
                    Console.WriteLine(">>------------------>>");
                    Console.WriteLine($"TDS 1: {sensor.TDS1}");
                    Console.WriteLine($"TDS 2: {sensor.TDS2}");
                    Console.WriteLine($"Relay 1: {sensor.Relay1}");
                    Console.WriteLine($"Relay 2: {sensor.Relay2}");
                    Console.WriteLine($"Limit 1: {sensor.LimitSwitch1}");
                    Console.WriteLine($"Limit 2: {sensor.LimitSwitch2}");
                    Console.WriteLine($"Temp: {sensor.Temp}");
                    mqtt.PublishMessage(JsonConvert.SerializeObject(sensor));

                    /*
                     #region lora
                     * var jsonStr = JsonConvert.SerializeObject(sensor);
                     * Debug.Print("kirim :" + jsonStr);
                     * //PrintToLcd("send count: " + counter);
                     * sendData(jsonStr);
                     * Thread.Sleep(INTERVAL);
                     * byte[] rx_data = new byte[20];
                     *
                     * if (UART.BytesToRead > 0)
                     * {
                     *  var count = UART.Read(rx_data, 0, rx_data.Length);
                     *  if (count > 0)
                     *  {
                     *      Debug.Print("count:" + count);
                     *      var hasil = new string(System.Text.Encoding.UTF8.GetChars(rx_data));
                     *      Debug.Print("read:" + hasil);
                     *
                     *      //mac_rx 2 AABBCC
                     *  }
                     * }
                     #endregion
                     */
                    Thread.Sleep(INTERVAL);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
Exemple #21
0
 public ECS(int thr)
 {
     SetThreshold(thr);
     _tempSensor = new TempSensor();
     _heater     = new Heater();
 }
 public int GetCurTemp()
 {
     return(TempSensor.GetTemp());
 }
 public bool RunSelfTest()
 {
     return(TempSensor.RunSelfTest() && Heater.RunSelfTest());
 }
Exemple #24
0
        public static void Initialize(MiLightGateway miLightGateway)
        {
            //Sonoff Switches
            ChristmasLights = new SonoffSwitch("192.168.10.84");
            KitchenLights   = new SonoffSwitch("192.168.10.81");
            GlobusLight     = new SonoffSwitch("192.168.10.81"); //TODO IP
            BedLightBalls   = new SonoffSwitch("192.168.10.81"); //TODO IP

            //Yee Light Devices
            LightHallway = new YeelightDevice("192.168.10.77", "0x000000000361df8b", false, 0, "mono");
            StripeA      = new YeelightDevice("192.168.10.75", "0x000000000361afc3", false, 0, "stripe");
            StripeB      = new YeelightDevice("192.168.10.74", "0x0000000004555e6d", false, 0, "stripe");

            //Mi Light Devices
            BulbA = new MiBulb(miLightGateway, 1);
            BulbB = new MiBulb(miLightGateway, 2);
            BulbC = new MiBulb(miLightGateway, 3);

            //Mi Home Devices
            DoorBathroom = new DoorWindowSensor("158d0001e037e5")
            {
                CustomName = "Badezimmertür"
            };
            ApartmentDoor = new DoorWindowSensor("158d0001a5db48")
            {
                CustomName = "Wohnungstür"
            };
            SwitchA = new SimpleSwitch("158d00019dbac7")
            {
                CustomName = "Switch A"
            };
            SwitchB = new SimpleSwitch("158d00016da2ed")
            {
                CustomName = "Switch B"
            };
            MotionBathroom = new MotionSensor("158d0001d87940")
            {
                CustomName = "Motion Bathroom"
            };
            MotionHall = new MotionSensor("158d0001d47c2f")
            {
                CustomName = "Motion Hall"
            };
            MotionLivingRoom = new MotionSensor("158d00014dc328")
            {
                CustomName = "Motion Living Room"
            };
            SwitchC = new SensorSwitch("158d0001b86fed")
            {
                CustomName = "Switch C"
            };
            SwitchD = new SensorSwitch("158d0001b86f59")
            {
                CustomName = "SwitchD"
            };
            WaterLeakBathroom = new WaterLeakSensor("158d0001bb89e9")
            {
                CustomName = "Water Leak"
            };
            TempSensorLivingRoom = new TempSensor("158d0001b7edbb")
            {
                CustomName = "Temperatur Wohnzimmer"
            };
            SwitchE = new DoubleKeySwitch("158d0001718576")
            {
                CustomName = "Switch Wandregal"
            };
        }