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); }
public ISensor CreateTempSensor() { var sensor = new TempSensor(); TypeDescriptor.AddAttributes(sensor, new MeasureCharacteristic(MeasureUnit.Celsius, MeasureType.Temp)); return(sensor); }
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; } }
//Функция получения 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(); }
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}"); }
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(); }
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(); }
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++; }; }
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; } } }
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); }
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; }
public void TestTempReturnsResult(int result) { rand = new FakeRandom(); _temp = new TempSensor(rand); Assert.That(_temp.GetTemp(), Is.EqualTo(result)); }
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); } }
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()); }
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" }; }