static void ReadScratchPad(ref DS18B20 sensor) { //********************* Read Scratchpad ******************************** Console.WriteLine("Reset Bus"); if (!sensor.Reset()) { Console.WriteLine("Nix Sensor\r\n"); return; } //Select Sensor Console.WriteLine("Read Scratchpad für Sensor:\t{0}", sensor.GetSensorAddress()); //Transfer Command und Sensor Adresse 8 Bytes sensor.Transfer(DS18B20.Command.MatchRom, DS18B20.TranferCounts.MatchRom); ScratchPad = sensor.Transfer(DS18B20.Command.ReadScratchpad, DS18B20.TranferCounts.ReadScratchpad); Console.Write("Scratchpad:\t\t\t"); //PrintBytes(ScratchPad.Serialize()); Console.WriteLine(ScratchPad); Console.Write("Check CRC\t\t\t{0:x2} ", DS18B20.CRC8(ScratchPad)); Console.WriteLine("{0}", ScratchPad.CheckCRC() ? "OK" : "Fehler"); Console.WriteLine("Configregister:\t\t\t{0:x2}", (byte)ScratchPad.ConfigRegister); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Temp: {0:F4}°C\r\n", ScratchPad.GetTemp()); Console.ResetColor(); }
/// <summary> /// /// </summary> /// <param name="SkipRom">true SkipROM oder nicht</param> static void StartConvertion(bool SkipRom, ref DS18B20 sensor) { //********************* Start Convertion ******************************** Console.WriteLine("Reset Bus"); if (!sensor.Reset()) { Console.WriteLine("Nix Sensor\r\n"); return; } if (SkipRom) { Console.WriteLine("Skip ROM, alle Sensoren messen zusammen "); sensor.Transfer(DS18B20.Command.SkipRom); } else { //Select Sensor Console.Write("Match ROM jeder Sensor misst Separat. Select Sensor "); Console.WriteLine(sensor.GetSensorAddress()); //Transfer Command und Sensor Adresse 8 Bytes sensor.Transfer(DS18B20.Command.MatchRom, DS18B20.TranferCounts.MatchRom); } //Start Temp Convertion nur Command Console.WriteLine("Start Convertion\r\n"); sensor.Transfer(DS18B20.Command.ConvertT); //Datenblatt max Convertion Time System.Threading.Thread.Sleep(800); }