/// <summary>
        /// Draws the text.
        /// </summary>
        /// <param name="font">Font.</param>
        /// <param name="text">Text.</param>
        public void DrawText(IFont font, string text)
        {
            var charset = font.GetData();

            foreach (var character in text)
            {
                var charIndex = -1;
                for (var i = 0; i < charset.Length; i++)
                {
                    if (charset[i][0] == character)
                    {
                        charIndex = i;
                        break;
                    }
                }
                if (charIndex == -1)
                {
                    continue;
                }

                var fontData   = charset[charIndex];
                int fontWidth  = fontData[1];
                int fontLength = fontData[2];
                for (var y = 0; y < (fontLength / fontWidth); y++)
                {
                    SendCommand(
                        (byte)(0xB0 + cursorY + y),            //set page address
                        (byte)(0x00 + (cursorX & 0x0F)),       //set column lower address
                        (byte)(0x10 + ((cursorX >> 4) & 0x0F)) //set column higher address
                        );

                    var data = new byte[fontWidth + 1];
                    data[0] = 0x40;
                    Array.Copy(fontData, (y * fontWidth) + 3, data, 1, fontWidth);
                    DrawStride(data);
                }

                cursorX += fontWidth;
            }
        }
        /// <summary>
        /// Draws the text.
        /// </summary>
        /// <param name="font">Font.</param>
        /// <param name="text">Text.</param>
        public void DrawText(IFont font, string text)
        {
            var charset = font.GetData();
            foreach (var character in text)
            {
                var charIndex = -1;
                for(var i = 0; i < charset.Length; i++)
                {
                    if (charset[i][0] == character)
                    {
                        charIndex = i;
                        break;
                    }
                }
                if (charIndex == -1)
                    continue;

                var fontData = charset[charIndex];
                int fontWidth = fontData[1];
                int fontLength = fontData[2];
                for (var y = 0; y < (fontLength / fontWidth); y++)
                {
                    SendCommand(
                        (byte)(0xB0 + cursorY + y),    //set page address
                        (byte)(0x00 + (cursorX & 0x0F)),    //set column lower address
                        (byte)(0x10 + ((cursorX>>4)&0x0F))  //set column higher address
                    );

                    var data = new byte[fontWidth + 1];
                    data[0] = 0x40;
                    Array.Copy(fontData, (y * fontWidth) + 3, data, 1, fontWidth);
                    DrawStride(data);
                }

                cursorX += fontWidth;
            }
        }