static void SetCursorTest(Hd44780Base lcd) { Size size = lcd.Size; int number = 0; for (int i = 0; i < size.Height; i++) { lcd.SetCursorPosition(0, i); lcd.Write($"{number++}"); lcd.SetCursorPosition(size.Width - 1, i); lcd.Write($"{number++}"); } }
static void WalkerTest(Hd44780Base lcd) { CreateWalkCharacters(lcd); string walkOne = new string('\x8', lcd.Size.Width); string walkTwo = new string('\x9', lcd.Size.Width); for (int i = 0; i < 5; i++) { lcd.SetCursorPosition(0, 0); lcd.Write(walkOne); System.Threading.Thread.Sleep(500); lcd.SetCursorPosition(0, 0); lcd.Write(walkTwo); System.Threading.Thread.Sleep(500); } }
static void WriteFromEnd(Hd44780Base lcd, string value) { lcd.Increment = false; lcd.SetCursorPosition(lcd.Size.Width - 1, lcd.Size.Height - 1); lcd.Write(value); lcd.Increment = true; }
static void ShiftDisplayTest(Hd44780Base lcd, Action <Hd44780Base> action) { Size size = lcd.Size; lcd.Write(Eighty.Substring(0, size.Height * size.Width)); ShiftTest(lcd, action); }
static void CharacterSet(Hd44780Base lcd) { StringBuilder sb = new StringBuilder(256); for (int i = 0; i < 256; i++) { sb.Append((char)i); } int character = 0; int line = 0; Size size = lcd.Size; while (character < 256) { lcd.SetCursorPosition(0, line); lcd.Write(sb.ToString(character, Math.Min(size.Width, 256 - character))); line++; character += size.Width; if (line >= size.Height) { line = 0; System.Threading.Thread.Sleep(1000); } } }
static void AutoShift(Hd44780Base lcd) { lcd.AutoShift = true; Size size = lcd.Size; lcd.Write(Eighty.Substring(0, size.Width + size.Width / 2)); lcd.AutoShift = false; }
static void PerfTests(Hd44780Base lcd) { string stars = new string('*', 80); Stopwatch stopwatch = Stopwatch.StartNew(); lcd.Clear(); for (int i = 0; i < 25; i++) { lcd.Write(Eighty); lcd.Write(stars); } lcd.Clear(); stopwatch.Stop(); string result = $"Elapsed ms: {stopwatch.ElapsedMilliseconds}"; lcd.Write(result); Console.WriteLine(result); }