public void DisplayImageSmallTest()
        {
            using var result = new Epd7In5Bc();
            result.Initialize(m_EPaperDisplayHardwareMock.Object);

            var image = CommonTestData.CreateSampleBitmap(result.Width / 2, result.Height / 2);

            var validBuffer = new List <byte>
            {
                (byte)Epd7In5BcCommands.DataStartTransmission1
            };

            m_DataBuffer.Clear();

            validBuffer.AddRange(BitmapToData(image, result.Width, result.Height));
            validBuffer.Add((byte)Epd7In5BcCommands.DataStop);
            validBuffer.Add((byte)Epd7In5BcCommands.PowerOn);
            validBuffer.Add((byte)Epd7In5BcCommands.GetStatus);
            validBuffer.Add((byte)Epd7In5BcCommands.DisplayRefresh);
            validBuffer.Add((byte)Epd7In5BcCommands.GetStatus);

            m_DataBuffer.Clear();

            var bitmapEPaperDisplay = new SKBitmapLoader(result);

            bitmapEPaperDisplay.DisplayImage(image, false);

            Assert.AreEqual(validBuffer.Count, m_DataBuffer.Count, "Data Length is wrong");
            Assert.IsTrue(m_DataBuffer.SequenceEqual(validBuffer), "Command Data Sequence is wrong");
        }
Exemplo n.º 2
0
        public void DisplayImageSmallTest()
        {
            using var result = new Epd7In5b_V2();
            result.Initialize(m_EPaperDisplayHardwareMock.Object);

            var image = CommonTestData.CreateSampleBitmap(result.Width / 2, result.Height / 2);

            var validBuffer = new List <byte>
            {
                (byte)Epd7In5b_V2Commands.DataStartTransmission1
            };

            SeparateColors(image, out var imageBw, out var imageRed);

            using (imageBw)
            {
                validBuffer.AddRange(SendBitmapToDevice(imageBw, result.Width, result.Height, byte.MaxValue));
            }

            validBuffer.Add((byte)Epd7In5b_V2Commands.DataStartTransmission2);

            using (imageRed)
            {
                validBuffer.AddRange(SendBitmapToDevice(imageRed, result.Width, result.Height, 0));
            }

            validBuffer.Add((byte)Epd7In5b_V2Commands.DisplayRefresh);
            validBuffer.Add((byte)Epd7In5b_V2Commands.GetStatus);

            m_DataBuffer.Clear();

            var bitmapEPaperDisplay = new SKBitmapLoader(result);

            bitmapEPaperDisplay.DisplayImage(image);

            for (int i = 0; i < m_DataBuffer.Count; i++)
            {
                if (i < validBuffer.Count)
                {
                    if (m_DataBuffer[i] != validBuffer[i])
                    {
                        Debug.WriteLine($"{i} - {m_DataBuffer[i]} - {validBuffer[i]}");
                    }
                }
                else
                {
                    Debug.WriteLine($"{i} - {m_DataBuffer[i]} - X");
                }
            }

            Assert.AreEqual(validBuffer.Count, m_DataBuffer.Count, "Data Length is wrong");
            Assert.IsTrue(m_DataBuffer.SequenceEqual(validBuffer), "Command Data Sequence is wrong");
        }