/// <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; } }