コード例 #1
0
ファイル: Demo.cs プロジェクト: jbukys/Nusbio.Samples
        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;
                }
            }
        }
コード例 #2
0
        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();
        }
コード例 #3
0
ファイル: Demo.cs プロジェクト: jbukys/Nusbio.Samples
        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();
        }
コード例 #4
0
ファイル: Demo.cs プロジェクト: jbukys/Nusbio.Samples
        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();
        }
コード例 #5
0
ファイル: Demo.cs プロジェクト: jbukys/Nusbio.Samples
 private static void DisplayTime(LiquidCrystal lc)
 {
     lc.Print(0, 0, DateTime.Now.ToString("d"));
     lc.Print(0, 1, DateTime.Now.ToString("T"));
 }
コード例 #6
0
 public LcdTestRunner(LiquidCrystal lcd)
 {
     _lcd = lcd;
 }