private static void DisplaySpeedTest(LiquidCrystal lc) { lc.Clear(); long i = -1; while (i++ < 1000) { lc.Clear(); //lc.SetCursor(0, 0); var date = DateTime.Now.ToString("s"); date = date.Substring(0, date.IndexOf("T")); switch (i % 2) { case 0: _liquidCrystal.PrintRightPadded("[{0}] {1}", i.ToString("00"), DateTime.Now.ToString("T").Replace(" ", "")); break; case 1: _liquidCrystal.Print("[{0}] {1}", i.ToString("00"), date); break; } lc.SetCursor(0, 1); switch (i % 3) { case 0: var cpuInfo = _machineInfo.CpuPercent.NextValue().ToString("0.00"); _liquidCrystal.PrintRightPadded("Cpu {0}%", cpuInfo); break; case 1: _liquidCrystal.PrintRightPadded("DiskR {0}Mb/s", (_machineInfo.DiskReadBytePerSec.NextValue() / 1024 / 1024).ToString("0.00")); break; case 2: _liquidCrystal.PrintRightPadded("DiskW {0}Mb/s", (_machineInfo.DiskWriteBytePerSec.NextValue() / 1024 / 1024).ToString("0.00")); break; } TimePeriod.Sleep(1000); if (Console.KeyAvailable) { var k = Console.ReadKey(true).Key; break; } } }
public static void Main() { Thread.Sleep(1000); // 開発時の標準ピンアサイン var lcd = new LiquidCrystal(Pins.GPIO_PIN_D9, Pins.GPIO_PIN_D8, Pins.GPIO_PIN_D7, Pins.GPIO_PIN_D6, Pins.GPIO_PIN_D5, Pins.GPIO_PIN_D4); // ピン変更テスト //var lcd = new LiquidCrystal(Pins.GPIO_PIN_D9, Pins.GPIO_PIN_D8, // Pins.GPIO_PIN_D3, Pins.GPIO_PIN_D2, Pins.GPIO_PIN_D1, Pins.GPIO_PIN_D0); // GR-PEACHではコマンド間のウェイトなし動作する(ウェイトありでも問題ない) // GR -SAKURAではウェイトを入れないと誤動作する lcd.InitDevice(5); var runner = new LcdTestRunner(lcd); runner.Run(); }
private static void CustomCharDemo(LiquidCrystal lc) { var smiley = new List <string>() { "B00000", "B10001", "B00000", "B00000", "B10001", "B01110", "B00000", "B00000", }; lc.CreateChar(0, BitUtil.ParseBinary(smiley).ToArray()); lc.Clear(); lc.Write(0); lc.Write(0xF4); lc.Write(0xFF); lc.Write(0xFF); var k = Console.ReadKey(); }
public static void Run(string[] args) { Console.WriteLine("Nusbio initialization"); var serialNumber = Nusbio.Detect(); if (serialNumber == null) // Detect the first Nusbio available { Console.WriteLine("Nusbio not detected"); return; } using (var nusbio = new Nusbio(serialNumber)) { Cls(nusbio); int counter = 0; _machineInfo = new MachineInfo(); var secondTimeOut = new TimeOut(1000); _liquidCrystal = new LiquidCrystal(nusbio, rs: 0, enable: 1, d0: 2, d1: 3, d2: 4, d3: 5); _liquidCrystal.Begin(16, 2); _liquidCrystal.Clear(); while (nusbio.Loop()) { if (secondTimeOut.IsTimeOut()) { counter++; DisplayTime(_liquidCrystal); if (counter % 5 == 0) { LiquidCrystalDemo.NusbioRocks(_liquidCrystal); } if (counter % 8 == 0) { LiquidCrystalDemo.ProgressBarDemo(_liquidCrystal); } } if (Console.KeyAvailable) { var k = Console.ReadKey(true).Key; if (k == ConsoleKey.D) { DisplaySpeedTest(_liquidCrystal); _liquidCrystal.Clear(); } if (k == ConsoleKey.A) { LiquidCrystalDemo.ApiDemo(_liquidCrystal); _liquidCrystal.Clear(); } if (k == ConsoleKey.R) { LiquidCrystalDemo.NusbioRocks(_liquidCrystal); _liquidCrystal.Clear(); } if (k == ConsoleKey.C) { CustomCharDemo(_liquidCrystal); _liquidCrystal.Clear(); } if (k == ConsoleKey.F) { Cls(nusbio); } if (k == ConsoleKey.Q) { _liquidCrystal.Clear(); break; } Cls(nusbio); } } } Console.Clear(); }
private static void DisplayTime(LiquidCrystal lc) { lc.Print(0, 0, DateTime.Now.ToString("d")); lc.Print(0, 1, DateTime.Now.ToString("T")); }
public LcdTestRunner(LiquidCrystal lcd) { _lcd = lcd; }