Exemplo n.º 1
0
        public CharacterDisplay(
            IPwmPort portV0,
            IDigitalOutputPort portRS,
            IDigitalOutputPort portE,
            IDigitalOutputPort portD4,
            IDigitalOutputPort portD5,
            IDigitalOutputPort portD6,
            IDigitalOutputPort portD7,
            ushort rows = 4, ushort columns = 20)
        {
            Console.WriteLine("Constructor with Contrast pin");

            DisplayConfig = new TextDisplayConfig {
                Height = rows, Width = columns
            };

            LCD_V0 = portV0; LCD_V0.Start();
            LCD_RS = portRS;
            LCD_E  = portE;
            LCD_D4 = portD4;
            LCD_D5 = portD5;
            LCD_D6 = portD6;
            LCD_D7 = portD7;

            Initialize();
        }
Exemplo n.º 2
0
        void setDisplay(PwmChannel portV0,
                        GpioPin portRS,
                        GpioPin portE,
                        GpioPin portD4,
                        GpioPin portD5,
                        GpioPin portD6,
                        GpioPin portD7,
                        ushort rows = 4, ushort columns = 20)
        {
            Debug.WriteLine("Constructor with Contrast pin");

            DisplayConfig = new TextDisplayConfig {
                Height = rows, Width = columns
            };

            LCD_V0 = portV0; LCD_V0.Start();
            LCD_RS = portRS;
            LCD_E  = portE;
            LCD_D4 = portD4;
            LCD_D5 = portD5;
            LCD_D6 = portD6;
            LCD_D7 = portD7;

            Initialize();
        }
Exemplo n.º 3
0
        public async Task TestDriverConfigValuesPassedToDriverSucceeds()
        {
            // Arrange
            var testConfigProvider    = new TestConfigProvider();
            var testDriverConfigName  = "testDriverConfigName";
            var testDriverConfigValue = "testDriverConfigValue";

            var testConfig = new TextDisplayConfig()
            {
                DriverType     = "MockDisplayDriver.MockDisplayDriver",
                DriverAssembly = "MockDisplayDriver",
                Height         = 0,
                Width          = 0
            };

            testConfig.DriverConfigurationValues.Add(testDriverConfigName, testDriverConfigValue);
            (testConfigProvider.Configs as List <TextDisplayConfig>).Add(testConfig);

            List <ITextDisplay> returnedDisplays;

            // Act
            returnedDisplays = await TextDisplayManager.GetDisplaysForProvider(testConfigProvider) as List <ITextDisplay>;

            // Assert
            Assert.AreEqual(1, returnedDisplays.Count, "1 display should be returned");
            var mockDriver = returnedDisplays[0] as MockDisplayDriver.MockDisplayDriver;

            Assert.IsNotNull(mockDriver);
            Assert.AreEqual(mockDriver.Config.DriverConfigurationValues[testDriverConfigName], testDriverConfigValue);
        }
Exemplo n.º 4
0
        public async Task TestWriteMessageToDriverSucceeds()
        {
            // Arrange
            var testConfigProvider = new TestConfigProvider();
            var testConfig         = new TextDisplayConfig()
            {
                DriverType     = "MockDisplayDriver.MockDisplayDriver",
                DriverAssembly = "MockDisplayDriver",
                Height         = 0,
                Width          = 0
            };

            (testConfigProvider.Configs as List <TextDisplayConfig>).Add(testConfig);

            var testMessage = "testMessage";

            List <ITextDisplay> returnedDisplays;

            // Act
            returnedDisplays = await TextDisplayManager.GetDisplaysForProvider(testConfigProvider) as List <ITextDisplay>;

            await returnedDisplays[0].WriteMessageAsync(testMessage, 0);

            // Assert
            Assert.AreEqual(1, returnedDisplays.Count, "1 display should be returned");
            var mockDriver = returnedDisplays[0] as MockDisplayDriver.MockDisplayDriver;

            Assert.IsNotNull(mockDriver, "Manager did not return mock driver");
            Assert.AreEqual(testMessage, mockDriver.LastMessage);
        }
Exemplo n.º 5
0
            public App()
            {
                TextDisplayConfig displayConfig = new TextDisplayConfig()
                {
                    Width = 16, Height = 2
                };

                _lcd = new F.Displays.SerialLCD(displayConfig);
            }
Exemplo n.º 6
0
            public App()
            {
                _hih = new F.Sensors.Atmospheric.HIH6130();
                TextDisplayConfig displayConfig = new TextDisplayConfig()
                {
                    Width = 16, Height = 2
                };

                this._lcd = new F.Displays.SerialLCD(displayConfig);
            }
        public I2cCharacterDisplay(II2cBus i2cBus, byte address = DefaultI2cAddress, byte rows = 4, byte columns = 20)
        {
            i2cPeripheral = new I2cPeripheral(i2cBus, address);
            DisplayConfig = new TextDisplayConfig()
            {
                Width = columns, Height = rows
            };

            backlightValue = LCD_BACKLIGHT;

            Initialize();
        }
Exemplo n.º 8
0
            public App()
            {
                // 20 x 4:
                //TextDisplayConfig displayConfig = new TextDisplayConfig() { Width = 20, Height = 4 };
                // 16 x 2:
                TextDisplayConfig displayConfig = new TextDisplayConfig()
                {
                    Width = 16, Height = 2
                };

                _lcd = new F.Displays.SerialLCD(displayConfig);
            }
Exemplo n.º 9
0
        public Lcd2004(H.Cpu.Pin RS, H.Cpu.Pin E, H.Cpu.Pin D4, H.Cpu.Pin D5, H.Cpu.Pin D6, H.Cpu.Pin D7)
        {
            DisplayConfig = new TextDisplayConfig {
                Height = 4, Width = 20
            };

            LCD_RS = new GPIO.SPOT.DigitalOutputPort(RS);
            LCD_E  = new GPIO.SPOT.DigitalOutputPort(E);
            LCD_D4 = new GPIO.SPOT.DigitalOutputPort(D4);
            LCD_D5 = new GPIO.SPOT.DigitalOutputPort(D5);
            LCD_D6 = new GPIO.SPOT.DigitalOutputPort(D6);
            LCD_D7 = new GPIO.SPOT.DigitalOutputPort(D7);

            Initialize();
        }
Exemplo n.º 10
0
        public Lcd2004(H.Cpu.Pin RS, H.Cpu.Pin E, H.Cpu.Pin D4, H.Cpu.Pin D5, H.Cpu.Pin D6, H.Cpu.Pin D7)
        {
            DisplayConfig = new TextDisplayConfig {
                Height = 4, Width = 20
            };

            LCD_E  = new H.OutputPort(E, false);
            LCD_RS = new H.OutputPort(RS, false);
            LCD_D4 = new H.OutputPort(D4, false);
            LCD_D5 = new H.OutputPort(D5, false);
            LCD_D6 = new H.OutputPort(D6, false);
            LCD_D7 = new H.OutputPort(D7, false);

            Initialize();
        }
        public I2cCharacterDisplay(string i2cBus, byte address = DefaultI2cAddress, byte rows = 4, byte columns = 20)
        {
            var settings   = new I2cConnectionSettings(address, 100_000); //The slave's address and the bus speed.
            var controller = I2cController.FromName(i2cBus);

            i2cPeripheral = controller.GetDevice(settings);
            DisplayConfig = new TextDisplayConfig()
            {
                Width = columns, Height = rows
            };

            backlightValue = LCD_BACKLIGHT;

            Initialize();
        }
Exemplo n.º 12
0
        public CharacterDisplay(IIODevice device, IPin pinRS, IPin pinE, IPin pinD4, IPin pinD5, IPin pinD6, IPin pinD7,
                                ushort rows = 4, ushort columns = 20)
        {
            DisplayConfig = new TextDisplayConfig {
                Height = rows, Width = columns
            };

            LCD_RS = device.CreateDigitalOutputPort(pinRS);
            LCD_E  = device.CreateDigitalOutputPort(pinE);
            LCD_D4 = device.CreateDigitalOutputPort(pinD4);
            LCD_D5 = device.CreateDigitalOutputPort(pinD5);
            LCD_D6 = device.CreateDigitalOutputPort(pinD6);
            LCD_D7 = device.CreateDigitalOutputPort(pinD7);

            Initialize();
        }
Exemplo n.º 13
0
        public Lcd2004(MCP23008 mcp)
        {
            DisplayConfig = new TextDisplayConfig {
                Height = 4, Width = 20
            };

            LCD_RS = mcp.CreateOutputPort(1, false);
            LCD_E  = mcp.CreateOutputPort(2, false);
            LCD_D4 = mcp.CreateOutputPort(3, false);
            LCD_D5 = mcp.CreateOutputPort(4, false);
            LCD_D6 = mcp.CreateOutputPort(5, false);
            LCD_D7 = mcp.CreateOutputPort(6, false);

            var lite = mcp.CreateOutputPort(7, true);

            Initialize();
        }
Exemplo n.º 14
0
        public Lcd2004(IDigitalOutputPort portRS,
                       IDigitalOutputPort portE,
                       IDigitalOutputPort portD4,
                       IDigitalOutputPort portD5,
                       IDigitalOutputPort portD6,
                       IDigitalOutputPort portD7,
                       ushort rows = 20, ushort columns = 4)
        {
            DisplayConfig = new TextDisplayConfig {
                Height = rows, Width = columns
            };

            LCD_RS = portRS;
            LCD_E  = portE;
            LCD_D4 = portD4;
            LCD_D5 = portD5;
            LCD_D6 = portD6;
            LCD_D7 = portD7;
        }
Exemplo n.º 15
0
        public async Task TestNonExistentBuiltInDriverTypeFails()
        {
            // Arrange
            var testConfigProvider = new TestConfigProvider();
            var testConfig         = new TextDisplayConfig()
            {
                DriverType = "NonExistentDriver",
                Height     = 0,
                Width      = 0
            };

            (testConfigProvider.Configs as List <TextDisplayConfig>).Add(testConfig);
            List <ITextDisplay> returnedDisplays;

            // Act
            returnedDisplays = await TextDisplayManager.GetDisplaysForProvider(testConfigProvider) as List <ITextDisplay>;

            // Assert
            Assert.AreEqual(0, returnedDisplays.Count, "No displays should be returned");
        }
Exemplo n.º 16
0
        public CharacterDisplay(IDigitalOutputPort portRS,
                                IDigitalOutputPort portE,
                                IDigitalOutputPort portD4,
                                IDigitalOutputPort portD5,
                                IDigitalOutputPort portD6,
                                IDigitalOutputPort portD7,
                                ushort rows = 4, ushort columns = 20)
        {
            DisplayConfig = new TextDisplayConfig {
                Height = rows, Width = columns
            };

            LCD_RS = portRS;
            LCD_E  = portE;
            LCD_D4 = portD4;
            LCD_D5 = portD5;
            LCD_D6 = portD6;
            LCD_D7 = portD7;

            Initialize();
        }
Exemplo n.º 17
0
        public async Task TestOneConfigReturnsOneDisplaySucceeds()
        {
            // Arrange
            var testConfigProvider = new TestConfigProvider();
            var testConfig         = new TextDisplayConfig()
            {
                DriverType     = "MockDisplayDriver.MockDisplayDriver",
                DriverAssembly = "MockDisplayDriver",
                Height         = 0,
                Width          = 0
            };

            (testConfigProvider.Configs as List <TextDisplayConfig>).Add(testConfig);
            List <ITextDisplay> returnedDisplays;

            // Act
            returnedDisplays = await TextDisplayManager.GetDisplaysForProvider(testConfigProvider) as List <ITextDisplay>;

            // Assert
            Assert.AreEqual(1, returnedDisplays.Count, "1 display should be returned");
        }
Exemplo n.º 18
0
        void setDisplay(
            GpioPin portRS,
            GpioPin portE,
            GpioPin portD4,
            GpioPin portD5,
            GpioPin portD6,
            GpioPin portD7,
            ushort rows = 4, ushort columns = 20)
        {
            DisplayConfig = new TextDisplayConfig {
                Height = rows, Width = columns
            };

            LCD_RS = portRS;
            LCD_E  = portE;
            LCD_D4 = portD4;
            LCD_D5 = portD5;
            LCD_D6 = portD6;
            LCD_D7 = portD7;

            Initialize();
        }
        public GpioCharacterDisplay(
            IPwmPort portV0,
            IDigitalOutputPort portRS,
            IDigitalOutputPort portE,
            IDigitalOutputPort portD4,
            IDigitalOutputPort portD5,
            IDigitalOutputPort portD6,
            IDigitalOutputPort portD7,
            byte rows = 4, byte columns = 20)
        {
            DisplayConfig = new TextDisplayConfig {
                Height = rows, Width = columns
            };

            LCD_V0 = portV0; LCD_V0.Start();
            LCD_RS = portRS;
            LCD_E  = portE;
            LCD_D4 = portD4;
            LCD_D5 = portD5;
            LCD_D6 = portD6;
            LCD_D7 = portD7;

            Initialize();
        }
Exemplo n.º 20
0
 public MockDisplayDriver(TextDisplayConfig config)
 {
     this.Config = config;
     this.height = config.Height;
     this.width  = config.Width;
 }
Exemplo n.º 21
0
        /// <summary>
        ///     Create a new SerialLcd object.
        /// </summary>
        /// <param name="config">TextDisplayConfig object defining the Lcd dimension (null will default to 16x2).</param>
        /// <param name="baudRate">Baud rate to use (default = 9600).</param>
        /// <param name="parity">Parity to use (default is None).</param>
        /// <param name="dataBits">Number of data bits (default is 8 data bits).</param>
        /// <param name="stopBits">Number of stop bits (default is one stop bit).</param>
        public SerialLcd(string portName, TextDisplayConfig config = null, int baudRate = 9600,
                         UartParity parity = UartParity.None, int dataBits = 8, UartStopBitCount stopBits = UartStopBitCount.One)
        {
            if (config == null)
            {
                // assume a 16x2 Lcd.
                DisplayConfig = new TextDisplayConfig()
                {
                    Height = 2, Width = 16
                };
            }
            else
            {
                DisplayConfig = config;
            }
            var myUart = UartController.FromName(portName);

            var uartSetting = new UartSetting()
            {
                BaudRate    = baudRate,
                DataBits    = dataBits,
                Parity      = parity,
                StopBits    = stopBits,
                Handshaking = UartHandshake.None,
            };

            myUart.SetActiveSettings(uartSetting);

            myUart.Enable();

            // configure the Lcd controller for the appropriate screen size
            byte lines      = 0;
            byte characters = 0;

            switch (DisplayConfig.Width)
            {
            case 16:
                characters = (byte)LcdDimensions.Characters16Wide;
                break;

            case 20:
                characters = (byte)LcdDimensions.Characters20Wide;
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(config.Width), "Display width should be 16 or 20.");
            }
            switch (DisplayConfig.Height)
            {
            case 2:
                lines = (byte)LcdDimensions.Lines2;
                break;

            case 4:
                lines = (byte)LcdDimensions.Lines4;
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(config.Height), "Display height should be 2 or 4 lines.");
            }
            Send(new[] { ConfigurationCommandCharacter, characters, ConfigurationCommandCharacter, lines });
            Thread.Sleep(10);
        }