diff --git a/libs/epaper/CMakeLists.txt b/libs/epaper/CMakeLists.txt index dd7bccf..9179961 100644 --- a/libs/epaper/CMakeLists.txt +++ b/libs/epaper/CMakeLists.txt @@ -1,4 +1,3 @@ add_subdirectory(Config) add_subdirectory(e-Paper) add_subdirectory(Fonts) -add_subdirectory(GUI) diff --git a/libs/epaper/Fonts/font12CN.c b/libs/epaper/Fonts/font12CN.c deleted file mode 100644 index cf29da2..0000000 --- a/libs/epaper/Fonts/font12CN.c +++ /dev/null @@ -1,120 +0,0 @@ -/** - ****************************************************************************** - * @file Font12.c - * @author MCD Application Team - * @version V1.0.0 - * @date 18-February-2014 - * @brief This file provides text Font12 for STM32xx-EVAL's LCD driver. - ****************************************************************************** - * @attention - * - *

© COPYRIGHT(c) 2014 STMicroelectronics

- * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. Neither the name of STMicroelectronics nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "fonts.h" - - -// -// Font data for Courier New 12pt -// - -const CH_CN Font12CN_Table[] = -{ -/*-- ÎÄ×Ö: Äã --*/ -/*-- ΢ÈíÑźÚ12; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=16x21 --*/ -{{"Äã"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0xC0,0x1D,0x80,0x3B,0xFF,0x3B,0x07, -0x3F,0x77,0x7E,0x76,0xF8,0x70,0xFB,0xFE,0xFB,0xFE,0x3F,0x77,0x3F,0x77,0x3E,0x73, -0x38,0x70,0x38,0x70,0x3B,0xE0,0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: ºÃ --*/ -/*-- ΢ÈíÑźÚ12; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=16x21 --*/ -{{"ºÃ"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x73,0xFF,0x70,0x0F,0xFE,0x1E, -0x7E,0x3C,0x6E,0x38,0xEE,0x30,0xEF,0xFF,0xFC,0x30,0x7C,0x30,0x38,0x30,0x3E,0x30, -0x7E,0x30,0xE0,0x30,0xC1,0xF0,0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: Ê÷ --*/ -/*-- ΢ÈíÑźÚ12; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=16x21 --*/ -{{"Ê÷"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x0E,0x30,0x0E,0x3F,0xEE,0x30,0xEE, -0xFC,0xFF,0x76,0xCE,0x77,0xFE,0x7B,0xFE,0xFF,0xFE,0xF3,0xDE,0xF3,0xCE,0x37,0xEE, -0x3E,0x6E,0x3C,0x0E,0x30,0x3E,0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: Ý® --*/ -/*-- ΢ÈíÑźÚ12; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=16x21 --*/ -{{"Ý®"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x70,0xFF,0xFF,0x3E,0x70,0x38,0x00, -0x7F,0xFF,0xE0,0x00,0xFF,0xFC,0x3B,0x8C,0x39,0xCC,0xFF,0xFF,0x73,0x9C,0x71,0xDC, -0x7F,0xFF,0x00,0x1C,0x01,0xF8,0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: ÅÉ --*/ -/*-- ΢ÈíÑźÚ12; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=16x21 --*/ -{{"ÅÉ"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x1F,0xFF,0xF0,0x3E,0x00,0x0E,0x1F, -0xCF,0xFB,0xFF,0xF8,0x3F,0xFF,0x0F,0xFF,0x7F,0xD8,0x7F,0xDC,0x6F,0xCE,0xED,0xFF, -0xFD,0xF7,0xF9,0xC0,0x00,0x00,0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: a --*/ -/*-- ΢ÈíÑźÚ12; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=16x21 --*/ -{{"a"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x3E,0x00,0x67,0x00,0x07,0x80,0x0F,0x80,0x7F,0x80,0xE3,0x80,0xE7,0x80,0xE7,0x80, -0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: b --*/ -/*-- ΢ÈíÑźÚ12; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=16x21 --*/ -{{"b"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00, -0x7F,0x00,0x7B,0x80,0x71,0xC0,0x71,0xC0,0x71,0xC0,0x71,0xC0,0x71,0xC0,0x7B,0x80, -0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: c --*/ -/*-- ΢ÈíÑźÚ12; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=16x21 --*/ -{{"c"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x3F,0x00,0x73,0x00,0xF0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xF0,0x00,0x73,0x00, -0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: A --*/ -/*-- ΢ÈíÑźÚ12; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=16x21 --*/ -{{"A"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x1F,0x00,0x1F,0x00, -0x1F,0x00,0x3B,0x80,0x3B,0x80,0x71,0x80,0x7F,0xC0,0x71,0xC0,0xE0,0xE0,0xE0,0xE0, -0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}, -}; - -cFONT Font12CN = { - Font12CN_Table, - sizeof(Font12CN_Table)/sizeof(CH_CN), /*size of table*/ - 11, /* ASCII Width */ - 16, /* Width */ - 21, /* Height */ -}; - -/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/libs/epaper/Fonts/font24CN.c b/libs/epaper/Fonts/font24CN.c deleted file mode 100644 index d3c9584..0000000 --- a/libs/epaper/Fonts/font24CN.c +++ /dev/null @@ -1,465 +0,0 @@ -/** - ****************************************************************************** - * @file Font12.c - * @author MCD Application Team - * @version V1.0.0 - * @date 18-February-2014 - * @brief This file provides text Font12 for STM32xx-EVAL's LCD driver. - ****************************************************************************** - * @attention - * - *

© COPYRIGHT(c) 2014 STMicroelectronics

- * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. Neither the name of STMicroelectronics nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "fonts.h" - - -// -// Font data for Courier New 12pt -// - -const CH_CN Font24CN_Table[] = -{ -/*-- ÎÄ×Ö: Äã --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"Äã"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC1,0xC0,0x00, -0x01,0xE3,0xE0,0x00,0x03,0xE3,0xC0,0x00,0x03,0xC7,0x80,0x00,0x03,0xC7,0xFF,0xFF, -0x07,0x8F,0xFF,0xFF,0x07,0x8F,0x00,0x0F,0x0F,0x1E,0x00,0x1E,0x0F,0x3C,0x1E,0x1E, -0x1F,0x3C,0x1E,0x3E,0x1F,0x18,0x1E,0x3C,0x3F,0x00,0x1E,0x1C,0x7F,0x00,0x1E,0x00, -0x7F,0x07,0x9E,0x70,0xFF,0x07,0x9E,0xF0,0xEF,0x0F,0x9E,0x78,0x6F,0x0F,0x1E,0x78, -0x0F,0x0F,0x1E,0x3C,0x0F,0x1E,0x1E,0x3C,0x0F,0x1E,0x1E,0x1E,0x0F,0x3C,0x1E,0x1E, -0x0F,0x3C,0x1E,0x1F,0x0F,0x7C,0x1E,0x0F,0x0F,0x78,0x1E,0x0E,0x0F,0x00,0x1E,0x00, -0x0F,0x00,0x1E,0x00,0x0F,0x00,0x3C,0x00,0x0F,0x07,0xFC,0x00,0x0F,0x07,0xF8,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: ºÃ --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"ºÃ"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x0F,0x00,0x00,0x00, -0x0F,0x07,0xFF,0xFE,0x0F,0x07,0xFF,0xFE,0x0F,0x00,0x00,0x3E,0x1E,0x00,0x00,0xFC, -0xFF,0xF8,0x01,0xF0,0xFF,0xF8,0x03,0xE0,0x1E,0x78,0x07,0xC0,0x1E,0x78,0x0F,0x80, -0x3C,0x78,0x0F,0x00,0x3C,0x78,0x0F,0x00,0x3C,0x78,0x0F,0x00,0x3C,0x78,0x0F,0x00, -0x3C,0x7F,0xFF,0xFF,0x78,0xFF,0xFF,0xFF,0x78,0xF0,0x0F,0x00,0x78,0xF0,0x0F,0x00, -0x3D,0xE0,0x0F,0x00,0x1F,0xE0,0x0F,0x00,0x0F,0xE0,0x0F,0x00,0x07,0xC0,0x0F,0x00, -0x07,0xE0,0x0F,0x00,0x07,0xF0,0x0F,0x00,0x0F,0xF8,0x0F,0x00,0x1E,0x7C,0x0F,0x00, -0x3C,0x38,0x0F,0x00,0x78,0x00,0x0F,0x00,0xF0,0x03,0xFF,0x00,0x60,0x01,0xFE,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: ΢ --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"΢"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x01,0xE0,0x07,0x87,0x01,0xE0, -0x07,0x07,0x01,0xC0,0x0F,0xF7,0x79,0xC0,0x1E,0xF7,0x7B,0xC0,0x1E,0xF7,0x7B,0x80, -0x3C,0xF7,0x7B,0xFF,0x78,0xF7,0x7B,0xFF,0xF8,0xF7,0x7F,0x9E,0xF7,0xFF,0xFF,0x9E, -0x67,0xFF,0xFF,0x9E,0x07,0x00,0x7F,0x9C,0x0F,0x00,0x0F,0x9C,0x1E,0x00,0x1F,0x9C, -0x1E,0x7F,0xFF,0xBC,0x3E,0x7F,0xF3,0xFC,0x3E,0x00,0x03,0xFC,0x7E,0x00,0x01,0xF8, -0xFE,0x00,0x01,0xF8,0xFE,0x7F,0xE1,0xF8,0xDE,0x7F,0xE1,0xF8,0x1E,0x78,0xE0,0xF0, -0x1E,0x78,0xEE,0xF0,0x1E,0x78,0xFF,0xF0,0x1E,0x78,0xFD,0xF8,0x1E,0x79,0xFB,0xFC, -0x1E,0xF1,0xF7,0xBC,0x1E,0xF0,0xEF,0x9E,0x1F,0xE0,0x0F,0x0F,0x1E,0xC0,0x1E,0x0F, -0x1E,0x00,0x0C,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: Èí --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"Èí"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x03,0xC0,0x78,0x00,0x07,0x80,0x78,0x00,0x07,0x80,0x78,0x00, -0x07,0x80,0xF0,0x00,0x0F,0x00,0xF0,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0x1E,0x03,0xC0,0x1F,0x1E,0x03,0xC0,0x1E,0x1F,0xE7,0x8F,0x3E,0x3D,0xE7,0x8F,0x3C, -0x3D,0xEF,0x0F,0x7C,0x3D,0xE7,0x0F,0x78,0x79,0xE0,0x0F,0x00,0x79,0xE0,0x0E,0x00, -0x7F,0xFE,0x0E,0x00,0x7F,0xFE,0x1F,0x00,0x01,0xE0,0x1F,0x00,0x01,0xE0,0x1F,0x00, -0x01,0xE0,0x1F,0x80,0x01,0xE0,0x1F,0x80,0x01,0xE0,0x3F,0x80,0x01,0xFF,0x3F,0xC0, -0x0F,0xFF,0x7B,0xC0,0xFF,0xF0,0x79,0xE0,0xF9,0xE0,0xF1,0xF0,0x01,0xE1,0xF0,0xF0, -0x01,0xE3,0xE0,0xF8,0x01,0xE7,0xC0,0x7C,0x01,0xFF,0x80,0x3F,0x01,0xFF,0x00,0x1F, -0x01,0xEC,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: ÑÅ --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"ÑÅ"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0xFF,0x00, -0x7F,0xFC,0xF7,0x80,0x7F,0xFD,0xE3,0xC0,0x01,0xC1,0xE3,0xC0,0x01,0xC3,0xC1,0x80, -0x3D,0xC7,0xFF,0xFF,0x39,0xC7,0xFF,0xFF,0x39,0xCF,0x83,0x80,0x79,0xDF,0x83,0x80, -0x79,0xFF,0x83,0x80,0x79,0xDF,0x83,0x80,0x71,0xC3,0x83,0x80,0x7F,0xFF,0xFF,0xFE, -0x7F,0xFF,0xFF,0xFE,0x03,0xC3,0x83,0x80,0x07,0xC3,0x83,0x80,0x07,0xC3,0x83,0x80, -0x0F,0xC3,0x83,0x80,0x0F,0xC3,0x83,0x80,0x1F,0xC3,0xFF,0xFE,0x1D,0xC3,0xFF,0xFE, -0x3D,0xC3,0x83,0x80,0x79,0xC3,0x83,0x80,0xF1,0xC3,0x83,0x80,0xF1,0xC3,0x83,0x80, -0x61,0xC3,0x83,0x80,0x01,0xC3,0xFF,0xFF,0x03,0xC3,0xFF,0xFF,0x1F,0xC3,0x80,0x00, -0x1F,0x83,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: ºÚ --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"ºÚ"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x1F,0xFF,0xFF,0xFC,0x1F,0xFF,0xFF,0xFC,0x1E,0x03,0xC0,0x3C,0x1E,0xC3,0xC7,0x3C, -0x1F,0xE3,0xC7,0xBC,0x1E,0xF3,0xCF,0x3C,0x1E,0xFB,0xDF,0x3C,0x1E,0x7B,0xDE,0x3C, -0x1E,0x33,0xDC,0x3C,0x1E,0x03,0xC0,0x3C,0x1F,0xFF,0xFF,0xFC,0x1F,0xFF,0xFF,0xFC, -0x1E,0x03,0xC0,0x3C,0x00,0x03,0xC0,0x00,0x00,0x03,0xC0,0x00,0x3F,0xFF,0xFF,0xFC, -0x3F,0xFF,0xFF,0xFC,0x00,0x03,0xC0,0x00,0x00,0x03,0xC0,0x00,0x00,0x03,0xC0,0x00, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x1C,0x38,0x70,0x70, -0x3E,0x78,0xF8,0xF8,0x3C,0x7C,0x78,0x7C,0x7C,0x3C,0x3C,0x3E,0xF8,0x3E,0x3C,0x1F, -0xF0,0x1C,0x18,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: ´Ë --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"´Ë"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x3C,0x00, -0x00,0x78,0x3C,0x00,0x00,0x78,0x3C,0x00,0x00,0x78,0x3C,0x00,0x00,0x78,0x3C,0x00, -0x00,0x78,0x3C,0x0C,0x3C,0x78,0x3C,0x1E,0x3C,0x78,0x3C,0x3F,0x3C,0x78,0x3C,0xF8, -0x3C,0x7F,0xFD,0xF0,0x3C,0x7F,0xFF,0xE0,0x3C,0x78,0x3F,0x80,0x3C,0x78,0x3E,0x00, -0x3C,0x78,0x3C,0x00,0x3C,0x78,0x3C,0x00,0x3C,0x78,0x3C,0x00,0x3C,0x78,0x3C,0x00, -0x3C,0x78,0x3C,0x00,0x3C,0x78,0x3C,0x00,0x3C,0x78,0x3C,0x0E,0x3C,0x78,0x3C,0x0F, -0x3C,0x78,0x3C,0x0F,0x3C,0x79,0xFC,0x0F,0x3C,0x7F,0xFC,0x0F,0x3F,0xFF,0x3C,0x0F, -0x3F,0xF0,0x3E,0x1E,0xFF,0x00,0x1F,0xFE,0xF0,0x00,0x0F,0xFC,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: ×Ö --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"×Ö"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x07,0x80,0x00,0x00,0x03,0xC0,0x00, -0x00,0x03,0xE0,0x00,0x00,0x01,0xE0,0x00,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE, -0x78,0x00,0x00,0x1E,0x78,0x00,0x00,0x1E,0x78,0x00,0x00,0x1E,0x78,0x00,0x00,0x1E, -0x7B,0xFF,0xFF,0xDE,0x03,0xFF,0xFF,0xC0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00, -0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xE0,0x00,0x00,0x01,0xE0,0x00, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x01,0xE0,0x00,0x00,0x01,0xE0,0x00, -0x00,0x01,0xE0,0x00,0x00,0x01,0xE0,0x00,0x00,0x01,0xE0,0x00,0x00,0x01,0xE0,0x00, -0x00,0x03,0xE0,0x00,0x00,0x03,0xC0,0x00,0x00,0xFF,0xC0,0x00,0x00,0xFF,0x80,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: Ìå --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"Ìå"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x3C,0x00, -0x03,0xC0,0x3C,0x00,0x03,0xC0,0x3C,0x00,0x07,0x80,0x3C,0x00,0x07,0x80,0x3C,0x00, -0x07,0x80,0x3C,0x00,0x0F,0xFF,0xFF,0xFF,0x0F,0xFF,0xFF,0xFF,0x1F,0x01,0xFE,0x00, -0x1F,0x01,0xFF,0x00,0x3F,0x01,0xFF,0x00,0x3F,0x03,0xFF,0x00,0x7F,0x03,0xFF,0x80, -0x7F,0x07,0xBF,0x80,0xFF,0x07,0xBF,0xC0,0xEF,0x0F,0x3D,0xC0,0xCF,0x0F,0x3D,0xE0, -0x0F,0x1E,0x3D,0xE0,0x0F,0x1E,0x3C,0xF0,0x0F,0x3C,0x3C,0x78,0x0F,0x7C,0x3C,0x7C, -0x0F,0xF8,0x3C,0x3E,0x0F,0xF7,0xFF,0xDF,0x0F,0xE7,0xFF,0xCF,0x0F,0xC0,0x3C,0x06, -0x0F,0x00,0x3C,0x00,0x0F,0x00,0x3C,0x00,0x0F,0x00,0x3C,0x00,0x0F,0x00,0x3C,0x00, -0x0F,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: Ï --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"ÏÂ"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x0F,0x80,0x00,0x00,0x0F,0x80,0x00, -0x00,0x0F,0x80,0x00,0x00,0x0F,0x80,0x00,0x00,0x0F,0x80,0x00,0x00,0x0F,0x80,0x00, -0x00,0x0F,0xE0,0x00,0x00,0x0F,0xF8,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xBF,0x00, -0x00,0x0F,0x9F,0x80,0x00,0x0F,0x87,0xE0,0x00,0x0F,0x83,0xF0,0x00,0x0F,0x80,0xF8, -0x00,0x0F,0x80,0x7C,0x00,0x0F,0x80,0x38,0x00,0x0F,0x80,0x00,0x00,0x0F,0x80,0x00, -0x00,0x0F,0x80,0x00,0x00,0x0F,0x80,0x00,0x00,0x0F,0x80,0x00,0x00,0x0F,0x80,0x00, -0x00,0x0F,0x80,0x00,0x00,0x0F,0x80,0x00,0x00,0x0F,0x80,0x00,0x00,0x0F,0x80,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: ¶Ô --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"¶Ô"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78, -0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x78,0x7F,0xFC,0x00,0x78,0x7F,0xFC,0x00,0x78, -0x00,0x3C,0x00,0x78,0x00,0x3F,0xFF,0xFF,0x30,0x3F,0xFF,0xFF,0x78,0x3C,0x00,0x78, -0x3C,0x38,0x00,0x78,0x3E,0x78,0x00,0x78,0x1E,0x78,0xC0,0x78,0x0F,0x79,0xE0,0x78, -0x0F,0xF0,0xF0,0x78,0x07,0xF0,0xF8,0x78,0x03,0xF0,0x78,0x78,0x01,0xE0,0x3C,0x78, -0x03,0xF0,0x3E,0x78,0x03,0xF0,0x18,0x78,0x07,0xF8,0x00,0x78,0x07,0xFC,0x00,0x78, -0x0F,0x3E,0x00,0x78,0x1F,0x1E,0x00,0x78,0x3E,0x1F,0x00,0x78,0x7C,0x0E,0x00,0xF8, -0xF8,0x00,0x00,0xF0,0xF0,0x00,0x3F,0xF0,0x60,0x00,0x3F,0xE0,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: Ó¦ --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"Ó¦"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x03,0xE0,0x00,0x00,0x01,0xE0,0x00, -0x00,0x01,0xF0,0x00,0x00,0x00,0xF0,0x00,0x1F,0xFF,0xFF,0xFF,0x1F,0xFF,0xFF,0xFF, -0x1E,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x1E,0x01,0xE0,0x78,0x1E,0x01,0xE0,0x78, -0x1E,0xE1,0xE0,0x78,0x1F,0xF1,0xF0,0xF8,0x1E,0xF0,0xF0,0xF0,0x1E,0xF0,0xF0,0xF0, -0x1E,0xF8,0xF0,0xF0,0x1E,0x78,0xF1,0xF0,0x1E,0x78,0xF9,0xE0,0x1E,0x78,0x79,0xE0, -0x1E,0x7C,0x7B,0xE0,0x1E,0x3C,0x7B,0xC0,0x1E,0x3C,0x7B,0xC0,0x1E,0x3C,0x7B,0xC0, -0x3C,0x3E,0x07,0x80,0x3C,0x1C,0x07,0x80,0x3C,0x00,0x07,0x80,0x3C,0x00,0x0F,0x00, -0x78,0x00,0x0F,0x00,0x7B,0xFF,0xFF,0xFF,0xF3,0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00, -0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: µÄ --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"µÄ"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x3C,0x00,0x07,0xC0,0x3E,0x00, -0x07,0x80,0x3C,0x00,0x07,0x80,0x7C,0x00,0x0F,0x00,0x78,0x00,0x7F,0xFE,0x7F,0xFE, -0x7F,0xFE,0xFF,0xFE,0x78,0x1E,0xF0,0x1E,0x78,0x1F,0xE0,0x1E,0x78,0x1F,0xE0,0x1E, -0x78,0x1F,0xC0,0x1E,0x78,0x1F,0xC0,0x1E,0x78,0x1F,0xF0,0x1E,0x78,0x1E,0xF8,0x1E, -0x78,0x1E,0x7C,0x1E,0x7F,0xFE,0x3C,0x1E,0x7F,0xFE,0x1E,0x1E,0x78,0x1E,0x1F,0x1E, -0x78,0x1E,0x0F,0x9E,0x78,0x1E,0x07,0x9E,0x78,0x1E,0x07,0x1E,0x78,0x1E,0x00,0x1E, -0x78,0x1E,0x00,0x1E,0x78,0x1E,0x00,0x3E,0x78,0x1E,0x00,0x3C,0x78,0x1E,0x00,0x3C, -0x7F,0xFE,0x00,0x3C,0x7F,0xFE,0x00,0x7C,0x78,0x1E,0x3F,0xF8,0x78,0x1E,0x3F,0xF0, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: µã --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"µã"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x03,0xC0,0x00, -0x00,0x03,0xC0,0x00,0x00,0x03,0xC0,0x00,0x00,0x03,0xFF,0xFF,0x00,0x03,0xFF,0xFF, -0x00,0x03,0xC0,0x00,0x00,0x03,0xC0,0x00,0x00,0x03,0xC0,0x00,0x00,0x03,0xC0,0x00, -0x0F,0xFF,0xFF,0xF8,0x0F,0xFF,0xFF,0xF8,0x0F,0x00,0x00,0x78,0x0F,0x00,0x00,0x78, -0x0F,0x00,0x00,0x78,0x0F,0x00,0x00,0x78,0x0F,0x00,0x00,0x78,0x0F,0x00,0x00,0x78, -0x0F,0xFF,0xFF,0xF8,0x0F,0xFF,0xFF,0xF8,0x0F,0x00,0x00,0x78,0x00,0x00,0x00,0x00, -0x0C,0x38,0x38,0x30,0x1E,0x7C,0x78,0x78,0x3E,0x3C,0x78,0x78,0x3C,0x3C,0x3C,0x3C, -0x7C,0x3E,0x3C,0x3E,0xF8,0x1E,0x3C,0x1E,0xF0,0x1E,0x1E,0x1F,0x70,0x1E,0x1C,0x0E, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: Õó --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"Õó"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x78,0x00, -0x7F,0xF0,0x78,0x00,0x7F,0xF0,0x78,0x00,0x79,0xFF,0xFF,0xFF,0x79,0xFF,0xFF,0xFF, -0x79,0xE1,0xE0,0x00,0x79,0xE1,0xE0,0x00,0x7B,0xC1,0xEF,0x80,0x7B,0xC3,0xCF,0x80, -0x7B,0xC3,0xCF,0x80,0x7F,0x87,0xCF,0x80,0x7F,0x87,0x8F,0x80,0x7F,0x87,0x8F,0x80, -0x7B,0xCF,0x0F,0x80,0x7B,0xCF,0xFF,0xFE,0x79,0xEF,0xFF,0xFE,0x79,0xE0,0x0F,0x80, -0x78,0xE0,0x0F,0x80,0x78,0xF0,0x0F,0x80,0x78,0xF0,0x0F,0x80,0x78,0xF0,0x0F,0x80, -0x78,0xFF,0xFF,0xFF,0x79,0xFF,0xFF,0xFF,0x7F,0xE0,0x0F,0x80,0x7F,0xC0,0x0F,0x80, -0x78,0x00,0x0F,0x80,0x78,0x00,0x0F,0x80,0x78,0x00,0x0F,0x80,0x78,0x00,0x0F,0x80, -0x78,0x00,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: Ϊ --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"Ϊ"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00, -0x0E,0x07,0x80,0x00,0x1F,0x07,0x80,0x00,0x0F,0x87,0x80,0x00,0x07,0xC7,0x80,0x00, -0x01,0xE7,0x80,0x00,0x00,0xC7,0x80,0x00,0x00,0x07,0x80,0x00,0x7F,0xFF,0xFF,0xFC, -0x7F,0xFF,0xFF,0xFC,0x00,0x07,0x80,0x3C,0x00,0x0F,0x80,0x3C,0x00,0x0F,0x00,0x3C, -0x00,0x0F,0x00,0x3C,0x00,0x0F,0x60,0x3C,0x00,0x1F,0xF0,0x3C,0x00,0x1E,0x78,0x3C, -0x00,0x3E,0x3C,0x3C,0x00,0x3C,0x3E,0x3C,0x00,0x7C,0x1F,0x3C,0x00,0x78,0x0F,0x3C, -0x00,0xF8,0x06,0x3C,0x01,0xF0,0x00,0x3C,0x03,0xE0,0x00,0x7C,0x07,0xC0,0x00,0x7C, -0x0F,0x80,0x00,0x78,0x1F,0x00,0x00,0xF8,0x3E,0x00,0xFF,0xF0,0x7C,0x00,0xFF,0xE0, -0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: Ê÷ --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"Ê÷"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x38, -0x0F,0x00,0x00,0x38,0x0F,0x00,0x00,0x38,0x0F,0x3F,0xF8,0x38,0x0F,0x3F,0xF8,0x38, -0x0F,0x00,0x78,0x38,0xFF,0xE0,0x7F,0xFF,0xFF,0xE0,0x7F,0xFF,0x0F,0x00,0x70,0x38, -0x0F,0x18,0xF0,0x38,0x1F,0x3C,0xF0,0x38,0x1F,0x1C,0xFE,0x38,0x1F,0xDE,0xFE,0x38, -0x3F,0xEF,0xEF,0x38,0x3F,0xFF,0xEF,0x38,0x3F,0xF7,0xE7,0xB8,0x7F,0x67,0xC7,0xB8, -0x7F,0x03,0xC3,0xB8,0xFF,0x07,0xE0,0x38,0xEF,0x07,0xE0,0x38,0xEF,0x0F,0xF0,0x38, -0xCF,0x1F,0xF0,0x38,0x0F,0x1E,0x78,0x38,0x0F,0x3C,0x7C,0x38,0x0F,0x78,0x3C,0x38, -0x0F,0xF8,0x38,0x38,0x0F,0x60,0x00,0x78,0x0F,0x00,0x0F,0xF8,0x0F,0x00,0x07,0xF0, -0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: Ý® --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"Ý®"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x1E,0x00,0x00,0x3C,0x1E,0x00, -0x00,0x3C,0x1E,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x3C,0x1E,0x00, -0x07,0xBC,0x1E,0x00,0x07,0x80,0x00,0x00,0x0F,0xFF,0xFF,0xFC,0x0F,0xFF,0xFF,0xFC, -0x1E,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xF0, -0xF7,0xFF,0xFF,0xF0,0x37,0x83,0x80,0xF0,0x07,0x87,0xC0,0xF0,0x07,0x83,0xF0,0xF0, -0x07,0x00,0xE0,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0x0F,0x00,0xE0, -0x0F,0x0F,0x81,0xE0,0x0E,0x03,0xE1,0xE0,0x1E,0x01,0xC1,0xE0,0x1F,0xFF,0xFF,0xFE, -0x1F,0xFF,0xFF,0xFE,0x00,0x00,0x01,0xE0,0x00,0x00,0x03,0xC0,0x00,0x00,0xFF,0xC0, -0x00,0x00,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: ÅÉ --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"ÅÉ"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x3E, -0x7C,0x00,0x3F,0xFE,0x3F,0x3F,0xFF,0xF0,0x1F,0xBF,0xE0,0x00,0x07,0xBC,0x00,0x00, -0x03,0x3C,0x00,0x00,0x00,0x3C,0x00,0x3C,0x00,0x3C,0x0F,0xFE,0x70,0x3D,0xFF,0xF8, -0xF8,0x3D,0xFF,0x00,0x7C,0x3D,0xE7,0x80,0x3F,0x3D,0xE7,0x80,0x1F,0x3D,0xE7,0x8E, -0x0E,0x3D,0xE7,0x9F,0x00,0x3D,0xE7,0xFE,0x00,0x39,0xE7,0xF8,0x00,0x39,0xE3,0xF0, -0x1C,0x39,0xE3,0xC0,0x1E,0x79,0xE3,0xC0,0x1E,0x79,0xE1,0xE0,0x1E,0x79,0xE1,0xE0, -0x3C,0x79,0xE0,0xF0,0x3C,0x79,0xE0,0xF8,0x3C,0xF1,0xE0,0x7C,0x3C,0xF1,0xE3,0x7C, -0x7D,0xF1,0xEF,0x3F,0x79,0xE1,0xFE,0x1F,0x7B,0xE1,0xF8,0x0E,0x7B,0xC3,0xE0,0x00, -0x79,0x81,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: A --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{ -"A"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x7C,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0xFE,0x00,0x00, -0x01,0xFF,0x00,0x00,0x01,0xFF,0x00,0x00,0x01,0xEF,0x00,0x00,0x03,0xEF,0x80,0x00, -0x03,0xCF,0x80,0x00,0x07,0xC7,0x80,0x00,0x07,0xC7,0xC0,0x00,0x07,0x87,0xC0,0x00, -0x0F,0x83,0xE0,0x00,0x0F,0x83,0xE0,0x00,0x0F,0x01,0xE0,0x00,0x1F,0xFF,0xF0,0x00, -0x1F,0xFF,0xF0,0x00,0x3F,0xFF,0xF8,0x00,0x3E,0x00,0xF8,0x00,0x3C,0x00,0xF8,0x00, -0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x78,0x00,0x3C,0x00,0xF8,0x00,0x3E,0x00, -0xF8,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: a --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"a"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF8,0x00,0x00, -0x1F,0xFE,0x00,0x00,0x3F,0xFE,0x00,0x00,0x3E,0x3F,0x00,0x00,0x38,0x1F,0x00,0x00, -0x00,0x0F,0x00,0x00,0x00,0x0F,0x00,0x00,0x03,0xFF,0x00,0x00,0x1F,0xFF,0x00,0x00, -0x3F,0x8F,0x00,0x00,0x7C,0x0F,0x00,0x00,0x7C,0x0F,0x00,0x00,0x78,0x1F,0x00,0x00, -0x7C,0x1F,0x00,0x00,0x7E,0x7F,0x00,0x00,0x7F,0xFF,0x00,0x00,0x3F,0xFF,0x00,0x00, -0x0F,0xCF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: b --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"b"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00, -0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00, -0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x3C,0xFE,0x00,0x00, -0x3D,0xFF,0x80,0x00,0x3F,0xFF,0xC0,0x00,0x3F,0x8F,0xC0,0x00,0x3F,0x07,0xE0,0x00, -0x3E,0x03,0xE0,0x00,0x3E,0x03,0xE0,0x00,0x3C,0x01,0xE0,0x00,0x3C,0x01,0xE0,0x00, -0x3C,0x01,0xE0,0x00,0x3C,0x03,0xE0,0x00,0x3E,0x03,0xE0,0x00,0x3E,0x03,0xE0,0x00, -0x3F,0x07,0xC0,0x00,0x3F,0x8F,0xC0,0x00,0x3F,0xFF,0x80,0x00,0x3F,0xFF,0x00,0x00, -0x3C,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: c --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"c"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFC,0x00,0x00, -0x07,0xFE,0x00,0x00,0x1F,0xFE,0x00,0x00,0x3F,0x86,0x00,0x00,0x3E,0x00,0x00,0x00, -0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x78,0x00,0x00,0x00, -0x78,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00, -0x3E,0x00,0x00,0x00,0x3F,0x86,0x00,0x00,0x1F,0xFE,0x00,0x00,0x0F,0xFE,0x00,0x00, -0x03,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: ΢ --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"΢"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x01,0xE0,0x07,0x87,0x01,0xE0, -0x07,0x07,0x01,0xC0,0x0F,0xF7,0x79,0xC0,0x1E,0xF7,0x7B,0xC0,0x1E,0xF7,0x7B,0x80, -0x3C,0xF7,0x7B,0xFF,0x78,0xF7,0x7B,0xFF,0xF8,0xF7,0x7F,0x9E,0xF7,0xFF,0xFF,0x9E, -0x67,0xFF,0xFF,0x9E,0x07,0x00,0x7F,0x9C,0x0F,0x00,0x0F,0x9C,0x1E,0x00,0x1F,0x9C, -0x1E,0x7F,0xFF,0xBC,0x3E,0x7F,0xF3,0xFC,0x3E,0x00,0x03,0xFC,0x7E,0x00,0x01,0xF8, -0xFE,0x00,0x01,0xF8,0xFE,0x7F,0xE1,0xF8,0xDE,0x7F,0xE1,0xF8,0x1E,0x78,0xE0,0xF0, -0x1E,0x78,0xEE,0xF0,0x1E,0x78,0xFF,0xF0,0x1E,0x78,0xFD,0xF8,0x1E,0x79,0xFB,0xFC, -0x1E,0xF1,0xF7,0xBC,0x1E,0xF0,0xEF,0x9E,0x1F,0xE0,0x0F,0x0F,0x1E,0xC0,0x1E,0x0F, -0x1E,0x00,0x0C,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: Ñ© --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"Ñ©"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x1F,0xFF,0xFF,0xF8,0x1F,0xFF,0xFF,0xF8,0x00,0x03,0xC0,0x00,0x00,0x03,0xC0,0x00, -0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x78,0x03,0xC0,0x1E,0x78,0x03,0xC0,0x1E, -0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x00,0x03,0xC0,0x00,0x00,0x03,0xC0,0x00, -0x07,0xFF,0xFF,0xE0,0x07,0xFF,0xFF,0xE0,0x00,0x03,0xC0,0x00,0x00,0x00,0x00,0x00, -0x1F,0xFF,0xFF,0xF8,0x1F,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x78, -0x1F,0xFF,0xFF,0xF8,0x1F,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x78, -0x00,0x00,0x00,0x78,0x3F,0xFF,0xFF,0xF8,0x3F,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x78, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: µç --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"µç"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x07,0x80,0x00, -0x00,0x07,0x80,0x00,0x00,0x07,0x80,0x00,0x7F,0xFF,0xFF,0xF8,0x7F,0xFF,0xFF,0xF8, -0x78,0x07,0x80,0xF8,0x78,0x07,0x80,0xF8,0x78,0x07,0x80,0xF8,0x78,0x07,0x80,0xF8, -0x78,0x07,0x80,0xF8,0x78,0x07,0x80,0xF8,0x7F,0xFF,0xFF,0xF8,0x7F,0xFF,0xFF,0xF8, -0x78,0x07,0x80,0xF8,0x78,0x07,0x80,0xF8,0x78,0x07,0x80,0xF8,0x78,0x07,0x80,0xF8, -0x78,0x07,0x80,0xF8,0x78,0x07,0x80,0xF8,0x7F,0xFF,0xFF,0xF8,0x7F,0xFF,0xFF,0xF8, -0x78,0x07,0x80,0x0E,0x78,0x07,0x80,0x0F,0x00,0x07,0x80,0x0F,0x00,0x07,0x80,0x0F, -0x00,0x07,0x80,0x1F,0x00,0x07,0x80,0x1E,0x00,0x03,0xFF,0xFE,0x00,0x01,0xFF,0xFC, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - -/*-- ÎÄ×Ö: ×Ó --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{{"×Ó"},{ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x1F,0xFF,0xFF,0xF8,0x1F,0xFF,0xFF,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0, -0x00,0x00,0x0F,0xC0,0x00,0x00,0x1F,0x80,0x00,0x00,0x3E,0x00,0x00,0x00,0xFC,0x00, -0x00,0x01,0xF8,0x00,0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00, -0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00, -0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00, -0x00,0x03,0xE0,0x00,0x00,0x03,0xC0,0x00,0x01,0xFF,0xC0,0x00,0x00,0xFF,0x80,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}}, - - -}; - -cFONT Font24CN = { - Font24CN_Table, - sizeof(Font24CN_Table)/sizeof(CH_CN), /*size of table*/ - 24, /* ASCII Width */ - 32, /* Width */ - 41, /* Height */ -}; - -/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/libs/epaper/Fonts/fonts.h b/libs/epaper/Fonts/fonts.h index c183f04..214ceb9 100644 --- a/libs/epaper/Fonts/fonts.h +++ b/libs/epaper/Fonts/fonts.h @@ -39,7 +39,7 @@ #ifndef __FONTS_H #define __FONTS_H -/*×î´ó×ÖÌå΢ÈíÑźÚ24 (32x41) */ +/*�������΢���ź�24 (32x41) */ #define MAX_HEIGHT_FONT 41 #define MAX_WIDTH_FONT 32 #define OFFSET_BITMAP @@ -62,31 +62,31 @@ typedef struct _tFont //GB2312 -typedef struct // ºº×Ö×ÖÄ£Êý¾Ý½á¹¹ -{ - const char index[2]; // ºº×ÖÄÚÂëË÷Òý - const char matrix[MAX_HEIGHT_FONT*MAX_WIDTH_FONT/8+2]; // µãÕóÂëÊý¾Ý -}CH_CN; +// typedef struct // ������ģ���ݽṹ +// { +// const char index[2]; // ������������ +// const char matrix[MAX_HEIGHT_FONT*MAX_WIDTH_FONT/8+2]; // ���������� +// }CH_CN; -typedef struct -{ - const CH_CN *table; - uint16_t size; - uint16_t ASCII_Width; - uint16_t Width; - uint16_t Height; +// typedef struct +// { +// const CH_CN *table; +// uint16_t size; +// uint16_t ASCII_Width; +// uint16_t Width; +// uint16_t Height; -}cFONT; +// }cFONT; -extern sFONT Font24; -extern sFONT Font20; -extern sFONT Font16; -extern sFONT Font12; -extern sFONT Font8; +// extern sFONT Font24; +// extern sFONT Font20; +// extern sFONT Font16; +// extern sFONT Font12; +// extern sFONT Font8; -extern cFONT Font12CN; -extern cFONT Font24CN; +// extern cFONT Font12CN; +// extern cFONT Font24CN; #ifdef __cplusplus } #endif diff --git a/libs/epaper/GUI/CMakeLists.txt b/libs/epaper/GUI/CMakeLists.txt deleted file mode 100644 index 180c579..0000000 --- a/libs/epaper/GUI/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -# Find all source files in a single current directory -# Save the name to DIR_GUI_SRCS -aux_source_directory(. DIR_GUI_SRCS) - -include_directories(../Config) - -# Generate the link library -add_library(GUI ${DIR_GUI_SRCS}) -target_link_libraries(GUI PUBLIC Config) \ No newline at end of file diff --git a/libs/epaper/GUI/GUI_Paint.c b/libs/epaper/GUI/GUI_Paint.c deleted file mode 100644 index 6a14b49..0000000 --- a/libs/epaper/GUI/GUI_Paint.c +++ /dev/null @@ -1,779 +0,0 @@ -/****************************************************************************** -* | File : GUI_Paint.c -* | Author : Waveshare electronics -* | Function : Achieve drawing: draw points, lines, boxes, circles and -* their size, solid dotted line, solid rectangle hollow -* rectangle, solid circle hollow circle. -* | Info : -* Achieve display characters: Display a single character, string, number -* Achieve time display: adaptive size display time minutes and seconds -*---------------- -* | This version: V3.2 -* | Date : 2020-07-10 -* | Info : -* ----------------------------------------------------------------------------- -* V3.2(2020-07-10): -* 1.Change: Paint_SetScale(UBYTE scale) -* Add scale 7 for 5.65f e-Parper -* 2.Change: Paint_SetPixel(UWORD Xpoint, UWORD Ypoint, UWORD Color) -* Add the branch for scale 7 -* 3.Change: Paint_Clear(UWORD Color) -* Add the branch for scale 7 -* ----------------------------------------------------------------------------- -* V3.1(2019-10-10): -* 1. Add gray level -* PAINT Add Scale -* 2. Add void Paint_SetScale(UBYTE scale); -* ----------------------------------------------------------------------------- -* V3.0(2019-04-18): -* 1.Change: -* Paint_DrawPoint(..., DOT_STYLE DOT_STYLE) -* => Paint_DrawPoint(..., DOT_STYLE Dot_Style) -* Paint_DrawLine(..., LINE_STYLE Line_Style, DOT_PIXEL Dot_Pixel) -* => Paint_DrawLine(..., DOT_PIXEL Line_width, LINE_STYLE Line_Style) -* Paint_DrawRectangle(..., DRAW_FILL Filled, DOT_PIXEL Dot_Pixel) -* => Paint_DrawRectangle(..., DOT_PIXEL Line_width, DRAW_FILL Draw_Fill) -* Paint_DrawCircle(..., DRAW_FILL Draw_Fill, DOT_PIXEL Dot_Pixel) -* => Paint_DrawCircle(..., DOT_PIXEL Line_width, DRAW_FILL Draw_Filll) -* -* ----------------------------------------------------------------------------- -* V2.0(2018-11-15): -* 1.add: Paint_NewImage() -* Create an image's properties -* 2.add: Paint_SelectImage() -* Select the picture to be drawn -* 3.add: Paint_SetRotate() -* Set the direction of the cache -* 4.add: Paint_RotateImage() -* Can flip the picture, Support 0-360 degrees, -* but only 90.180.270 rotation is better -* 4.add: Paint_SetMirroring() -* Can Mirroring the picture, horizontal, vertical, origin -* 5.add: Paint_DrawString_CN() -* Can display Chinese(GB1312) -* -* ----------------------------------------------------------------------------- -* V1.0(2018-07-17): -* Create library -* -* Permission is hereby granted, free of charge, to any person obtaining a copy -* of this software and associated documnetation files (the "Software"), to deal -* in the Software without restriction, including without limitation the rights -* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -* copies of the Software, and to permit persons to whom the Software is -* furished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included in -* all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -* LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -* THE SOFTWARE. -* -******************************************************************************/ -#include "GUI_Paint.h" -#include "DEV_Config.h" -#include "Debug.h" -#include -#include -#include //memset() -#include - -PAINT Paint; - -/****************************************************************************** -function: Create Image -parameter: - image : Pointer to the image cache - width : The width of the picture - Height : The height of the picture - Color : Whether the picture is inverted -******************************************************************************/ -void Paint_NewImage(UBYTE *image, UWORD Width, UWORD Height, UWORD Rotate, UWORD Color) -{ - Paint.Image = NULL; - Paint.Image = image; - - Paint.WidthMemory = Width; - Paint.HeightMemory = Height; - Paint.Color = Color; - Paint.Scale = 2; - Paint.WidthByte = (Width % 8 == 0)? (Width / 8 ): (Width / 8 + 1); - Paint.HeightByte = Height; -// printf("WidthByte = %d, HeightByte = %d\r\n", Paint.WidthByte, Paint.HeightByte); -// printf(" EPD_WIDTH / 8 = %d\r\n", 122 / 8); - - Paint.Rotate = Rotate; - Paint.Mirror = MIRROR_NONE; - - if(Rotate == ROTATE_0 || Rotate == ROTATE_180) { - Paint.Width = Width; - Paint.Height = Height; - } else { - Paint.Width = Height; - Paint.Height = Width; - } -} - -/****************************************************************************** -function: Select Image -parameter: - image : Pointer to the image cache -******************************************************************************/ -void Paint_SelectImage(UBYTE *image) -{ - Paint.Image = image; -} - -/****************************************************************************** -function: Select Image Rotate -parameter: - Rotate : 0,90,180,270 -******************************************************************************/ -void Paint_SetRotate(UWORD Rotate) -{ - if(Rotate == ROTATE_0 || Rotate == ROTATE_90 || Rotate == ROTATE_180 || Rotate == ROTATE_270) { - Debug("Set image Rotate %d\r\n", Rotate); - Paint.Rotate = Rotate; - } else { - Debug("rotate = 0, 90, 180, 270\r\n"); - } -} - -/****************************************************************************** -function: Select Image mirror -parameter: - mirror :Not mirror,Horizontal mirror,Vertical mirror,Origin mirror -******************************************************************************/ -void Paint_SetMirroring(UBYTE mirror) -{ - if(mirror == MIRROR_NONE || mirror == MIRROR_HORIZONTAL || - mirror == MIRROR_VERTICAL || mirror == MIRROR_ORIGIN) { - Debug("mirror image x:%s, y:%s\r\n",(mirror & 0x01)? "mirror":"none", ((mirror >> 1) & 0x01)? "mirror":"none"); - Paint.Mirror = mirror; - } else { - Debug("mirror should be MIRROR_NONE, MIRROR_HORIZONTAL, \ - MIRROR_VERTICAL or MIRROR_ORIGIN\r\n"); - } -} - -void Paint_SetScale(UBYTE scale) -{ - if(scale == 2){ - Paint.Scale = scale; - Paint.WidthByte = (Paint.WidthMemory % 8 == 0)? (Paint.WidthMemory / 8 ): (Paint.WidthMemory / 8 + 1); - }else if(scale == 4){ - Paint.Scale = scale; - Paint.WidthByte = (Paint.WidthMemory % 4 == 0)? (Paint.WidthMemory / 4 ): (Paint.WidthMemory / 4 + 1); - }else if(scale == 7){//Only applicable with 5in65 e-Paper - Paint.Scale = scale; - Paint.WidthByte = (Paint.WidthMemory % 2 == 0)? (Paint.WidthMemory / 2 ): (Paint.WidthMemory / 2 + 1);; - }else{ - Debug("Set Scale Input parameter error\r\n"); - Debug("Scale Only support: 2 4 7\r\n"); - } -} -/****************************************************************************** -function: Draw Pixels -parameter: - Xpoint : At point X - Ypoint : At point Y - Color : Painted colors -******************************************************************************/ -void Paint_SetPixel(UWORD Xpoint, UWORD Ypoint, UWORD Color) -{ - if(Xpoint > Paint.Width || Ypoint > Paint.Height){ - Debug("Exceeding display boundaries\r\n"); - return; - } - UWORD X, Y; - switch(Paint.Rotate) { - case 0: - X = Xpoint; - Y = Ypoint; - break; - case 90: - X = Paint.WidthMemory - Ypoint - 1; - Y = Xpoint; - break; - case 180: - X = Paint.WidthMemory - Xpoint - 1; - Y = Paint.HeightMemory - Ypoint - 1; - break; - case 270: - X = Ypoint; - Y = Paint.HeightMemory - Xpoint - 1; - break; - default: - return; - } - - switch(Paint.Mirror) { - case MIRROR_NONE: - break; - case MIRROR_HORIZONTAL: - X = Paint.WidthMemory - X - 1; - break; - case MIRROR_VERTICAL: - Y = Paint.HeightMemory - Y - 1; - break; - case MIRROR_ORIGIN: - X = Paint.WidthMemory - X - 1; - Y = Paint.HeightMemory - Y - 1; - break; - default: - return; - } - - if(X > Paint.WidthMemory || Y > Paint.HeightMemory){ - Debug("Exceeding display boundaries\r\n"); - return; - } - - if(Paint.Scale == 2){ - UDOUBLE Addr = X / 8 + Y * Paint.WidthByte; - UBYTE Rdata = Paint.Image[Addr]; - if(Color == BLACK) - Paint.Image[Addr] = Rdata & ~(0x80 >> (X % 8)); - else - Paint.Image[Addr] = Rdata | (0x80 >> (X % 8)); - }else if(Paint.Scale == 4){ - UDOUBLE Addr = X / 4 + Y * Paint.WidthByte; - Color = Color % 4;//Guaranteed color scale is 4 --- 0~3 - UBYTE Rdata = Paint.Image[Addr]; - - Rdata = Rdata & (~(0xC0 >> ((X % 4)*2)));//Clear first, then set value - Paint.Image[Addr] = Rdata | ((Color << 6) >> ((X % 4)*2)); - }else if(Paint.Scale == 7){ - UDOUBLE Addr = X / 2 + Y * Paint.WidthByte; - UBYTE Rdata = Paint.Image[Addr]; - Rdata = Rdata & (~(0xF0 >> ((X % 2)*4)));//Clear first, then set value - Paint.Image[Addr] = Rdata | ((Color << 4) >> ((X % 2)*4)); - // printf("Add = %d ,data = %d\r\n",Addr,Rdata); - } -} - -/****************************************************************************** -function: Clear the color of the picture -parameter: - Color : Painted colors -******************************************************************************/ -void Paint_Clear(UWORD Color) -{ - if(Paint.Scale == 2 || Paint.Scale == 4){ - for (UWORD Y = 0; Y < Paint.HeightByte; Y++) { - for (UWORD X = 0; X < Paint.WidthByte; X++ ) {//8 pixel = 1 byte - UDOUBLE Addr = X + Y*Paint.WidthByte; - Paint.Image[Addr] = Color; - } - } - }else if(Paint.Scale == 7){ - for (UWORD Y = 0; Y < Paint.HeightByte; Y++) { - for (UWORD X = 0; X < Paint.WidthByte; X++ ) { - UDOUBLE Addr = X + Y*Paint.WidthByte; - Paint.Image[Addr] = (Color<<4)|Color; - } - } - } - -} - -/****************************************************************************** -function: Clear the color of a window -parameter: - Xstart : x starting point - Ystart : Y starting point - Xend : x end point - Yend : y end point - Color : Painted colors -******************************************************************************/ -void Paint_ClearWindows(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend, UWORD Color) -{ - UWORD X, Y; - for (Y = Ystart; Y < Yend; Y++) { - for (X = Xstart; X < Xend; X++) {//8 pixel = 1 byte - Paint_SetPixel(X, Y, Color); - } - } -} - -/****************************************************************************** -function: Draw Point(Xpoint, Ypoint) Fill the color -parameter: - Xpoint : The Xpoint coordinate of the point - Ypoint : The Ypoint coordinate of the point - Color : Painted color - Dot_Pixel : point size - Dot_Style : point Style -******************************************************************************/ -void Paint_DrawPoint(UWORD Xpoint, UWORD Ypoint, UWORD Color, - DOT_PIXEL Dot_Pixel, DOT_STYLE Dot_Style) -{ - if (Xpoint > Paint.Width || Ypoint > Paint.Height) { - Debug("Paint_DrawPoint Input exceeds the normal display range\r\n"); - return; - } - - int16_t XDir_Num , YDir_Num; - if (Dot_Style == DOT_FILL_AROUND) { - for (XDir_Num = 0; XDir_Num < 2 * Dot_Pixel - 1; XDir_Num++) { - for (YDir_Num = 0; YDir_Num < 2 * Dot_Pixel - 1; YDir_Num++) { - if(Xpoint + XDir_Num - Dot_Pixel < 0 || Ypoint + YDir_Num - Dot_Pixel < 0) - break; - // printf("x = %d, y = %d\r\n", Xpoint + XDir_Num - Dot_Pixel, Ypoint + YDir_Num - Dot_Pixel); - Paint_SetPixel(Xpoint + XDir_Num - Dot_Pixel, Ypoint + YDir_Num - Dot_Pixel, Color); - } - } - } else { - for (XDir_Num = 0; XDir_Num < Dot_Pixel; XDir_Num++) { - for (YDir_Num = 0; YDir_Num < Dot_Pixel; YDir_Num++) { - Paint_SetPixel(Xpoint + XDir_Num - 1, Ypoint + YDir_Num - 1, Color); - } - } - } -} - -/****************************************************************************** -function: Draw a line of arbitrary slope -parameter: - Xstart :Starting Xpoint point coordinates - Ystart :Starting Xpoint point coordinates - Xend :End point Xpoint coordinate - Yend :End point Ypoint coordinate - Color :The color of the line segment - Line_width : Line width - Line_Style: Solid and dotted lines -******************************************************************************/ -void Paint_DrawLine(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend, - UWORD Color, DOT_PIXEL Line_width, LINE_STYLE Line_Style) -{ - if (Xstart > Paint.Width || Ystart > Paint.Height || - Xend > Paint.Width || Yend > Paint.Height) { - Debug("Paint_DrawLine Input exceeds the normal display range\r\n"); - return; - } - - UWORD Xpoint = Xstart; - UWORD Ypoint = Ystart; - int dx = (int)Xend - (int)Xstart >= 0 ? Xend - Xstart : Xstart - Xend; - int dy = (int)Yend - (int)Ystart <= 0 ? Yend - Ystart : Ystart - Yend; - - // Increment direction, 1 is positive, -1 is counter; - int XAddway = Xstart < Xend ? 1 : -1; - int YAddway = Ystart < Yend ? 1 : -1; - - //Cumulative error - int Esp = dx + dy; - char Dotted_Len = 0; - - for (;;) { - Dotted_Len++; - //Painted dotted line, 2 point is really virtual - if (Line_Style == LINE_STYLE_DOTTED && Dotted_Len % 3 == 0) { - //Debug("LINE_DOTTED\r\n"); - Paint_DrawPoint(Xpoint, Ypoint, IMAGE_BACKGROUND, Line_width, DOT_STYLE_DFT); - Dotted_Len = 0; - } else { - Paint_DrawPoint(Xpoint, Ypoint, Color, Line_width, DOT_STYLE_DFT); - } - if (2 * Esp >= dy) { - if (Xpoint == Xend) - break; - Esp += dy; - Xpoint += XAddway; - } - if (2 * Esp <= dx) { - if (Ypoint == Yend) - break; - Esp += dx; - Ypoint += YAddway; - } - } -} - -/****************************************************************************** -function: Draw a rectangle -parameter: - Xstart :Rectangular Starting Xpoint point coordinates - Ystart :Rectangular Starting Xpoint point coordinates - Xend :Rectangular End point Xpoint coordinate - Yend :Rectangular End point Ypoint coordinate - Color :The color of the Rectangular segment - Line_width: Line width - Draw_Fill : Whether to fill the inside of the rectangle -******************************************************************************/ -void Paint_DrawRectangle(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend, - UWORD Color, DOT_PIXEL Line_width, DRAW_FILL Draw_Fill) -{ - if (Xstart > Paint.Width || Ystart > Paint.Height || - Xend > Paint.Width || Yend > Paint.Height) { - Debug("Input exceeds the normal display range\r\n"); - return; - } - - if (Draw_Fill) { - UWORD Ypoint; - for(Ypoint = Ystart; Ypoint < Yend; Ypoint++) { - Paint_DrawLine(Xstart, Ypoint, Xend, Ypoint, Color , Line_width, LINE_STYLE_SOLID); - } - } else { - Paint_DrawLine(Xstart, Ystart, Xend, Ystart, Color, Line_width, LINE_STYLE_SOLID); - Paint_DrawLine(Xstart, Ystart, Xstart, Yend, Color, Line_width, LINE_STYLE_SOLID); - Paint_DrawLine(Xend, Yend, Xend, Ystart, Color, Line_width, LINE_STYLE_SOLID); - Paint_DrawLine(Xend, Yend, Xstart, Yend, Color, Line_width, LINE_STYLE_SOLID); - } -} - -/****************************************************************************** -function: Use the 8-point method to draw a circle of the - specified size at the specified position-> -parameter: - X_Center :Center X coordinate - Y_Center :Center Y coordinate - Radius :circle Radius - Color :The color of the :circle segment - Line_width: Line width - Draw_Fill : Whether to fill the inside of the Circle -******************************************************************************/ -void Paint_DrawCircle(UWORD X_Center, UWORD Y_Center, UWORD Radius, - UWORD Color, DOT_PIXEL Line_width, DRAW_FILL Draw_Fill) -{ - if (X_Center > Paint.Width || Y_Center >= Paint.Height) { - Debug("Paint_DrawCircle Input exceeds the normal display range\r\n"); - return; - } - - //Draw a circle from(0, R) as a starting point - int16_t XCurrent, YCurrent; - XCurrent = 0; - YCurrent = Radius; - - //Cumulative error,judge the next point of the logo - int16_t Esp = 3 - (Radius << 1 ); - - int16_t sCountY; - if (Draw_Fill == DRAW_FILL_FULL) { - while (XCurrent <= YCurrent ) { //Realistic circles - for (sCountY = XCurrent; sCountY <= YCurrent; sCountY ++ ) { - Paint_DrawPoint(X_Center + XCurrent, Y_Center + sCountY, Color, DOT_PIXEL_DFT, DOT_STYLE_DFT);//1 - Paint_DrawPoint(X_Center - XCurrent, Y_Center + sCountY, Color, DOT_PIXEL_DFT, DOT_STYLE_DFT);//2 - Paint_DrawPoint(X_Center - sCountY, Y_Center + XCurrent, Color, DOT_PIXEL_DFT, DOT_STYLE_DFT);//3 - Paint_DrawPoint(X_Center - sCountY, Y_Center - XCurrent, Color, DOT_PIXEL_DFT, DOT_STYLE_DFT);//4 - Paint_DrawPoint(X_Center - XCurrent, Y_Center - sCountY, Color, DOT_PIXEL_DFT, DOT_STYLE_DFT);//5 - Paint_DrawPoint(X_Center + XCurrent, Y_Center - sCountY, Color, DOT_PIXEL_DFT, DOT_STYLE_DFT);//6 - Paint_DrawPoint(X_Center + sCountY, Y_Center - XCurrent, Color, DOT_PIXEL_DFT, DOT_STYLE_DFT);//7 - Paint_DrawPoint(X_Center + sCountY, Y_Center + XCurrent, Color, DOT_PIXEL_DFT, DOT_STYLE_DFT); - } - if (Esp < 0 ) - Esp += 4 * XCurrent + 6; - else { - Esp += 10 + 4 * (XCurrent - YCurrent ); - YCurrent --; - } - XCurrent ++; - } - } else { //Draw a hollow circle - while (XCurrent <= YCurrent ) { - Paint_DrawPoint(X_Center + XCurrent, Y_Center + YCurrent, Color, Line_width, DOT_STYLE_DFT);//1 - Paint_DrawPoint(X_Center - XCurrent, Y_Center + YCurrent, Color, Line_width, DOT_STYLE_DFT);//2 - Paint_DrawPoint(X_Center - YCurrent, Y_Center + XCurrent, Color, Line_width, DOT_STYLE_DFT);//3 - Paint_DrawPoint(X_Center - YCurrent, Y_Center - XCurrent, Color, Line_width, DOT_STYLE_DFT);//4 - Paint_DrawPoint(X_Center - XCurrent, Y_Center - YCurrent, Color, Line_width, DOT_STYLE_DFT);//5 - Paint_DrawPoint(X_Center + XCurrent, Y_Center - YCurrent, Color, Line_width, DOT_STYLE_DFT);//6 - Paint_DrawPoint(X_Center + YCurrent, Y_Center - XCurrent, Color, Line_width, DOT_STYLE_DFT);//7 - Paint_DrawPoint(X_Center + YCurrent, Y_Center + XCurrent, Color, Line_width, DOT_STYLE_DFT);//0 - - if (Esp < 0 ) - Esp += 4 * XCurrent + 6; - else { - Esp += 10 + 4 * (XCurrent - YCurrent ); - YCurrent --; - } - XCurrent ++; - } - } -} - -/****************************************************************************** -function: Show English characters -parameter: - Xpoint :X coordinate - Ypoint :Y coordinate - Acsii_Char :To display the English characters - Font :A structure pointer that displays a character size - Color_Foreground : Select the foreground color - Color_Background : Select the background color -******************************************************************************/ -void Paint_DrawChar(UWORD Xpoint, UWORD Ypoint, const char Acsii_Char, - sFONT* Font, UWORD Color_Foreground, UWORD Color_Background) -{ - UWORD Page, Column; - - if (Xpoint > Paint.Width || Ypoint > Paint.Height) { - Debug("Paint_DrawChar Input exceeds the normal display range\r\n"); - return; - } - - uint32_t Char_Offset = (Acsii_Char - ' ') * Font->Height * (Font->Width / 8 + (Font->Width % 8 ? 1 : 0)); - const unsigned char *ptr = &Font->table[Char_Offset]; - - for (Page = 0; Page < Font->Height; Page ++ ) { - for (Column = 0; Column < Font->Width; Column ++ ) { - - //To determine whether the font background color and screen background color is consistent - if (FONT_BACKGROUND == Color_Background) { //this process is to speed up the scan - if (*ptr & (0x80 >> (Column % 8))) - Paint_SetPixel(Xpoint + Column, Ypoint + Page, Color_Foreground); - // Paint_DrawPoint(Xpoint + Column, Ypoint + Page, Color_Foreground, DOT_PIXEL_DFT, DOT_STYLE_DFT); - } else { - if (*ptr & (0x80 >> (Column % 8))) { - Paint_SetPixel(Xpoint + Column, Ypoint + Page, Color_Foreground); - // Paint_DrawPoint(Xpoint + Column, Ypoint + Page, Color_Foreground, DOT_PIXEL_DFT, DOT_STYLE_DFT); - } else { - Paint_SetPixel(Xpoint + Column, Ypoint + Page, Color_Background); - // Paint_DrawPoint(Xpoint + Column, Ypoint + Page, Color_Background, DOT_PIXEL_DFT, DOT_STYLE_DFT); - } - } - //One pixel is 8 bits - if (Column % 8 == 7) - ptr++; - }// Write a line - if (Font->Width % 8 != 0) - ptr++; - }// Write all -} - -/****************************************************************************** -function: Display the string -parameter: - Xstart :X coordinate - Ystart :Y coordinate - pString :The first address of the English string to be displayed - Font :A structure pointer that displays a character size - Color_Foreground : Select the foreground color - Color_Background : Select the background color -******************************************************************************/ -void Paint_DrawString_EN(UWORD Xstart, UWORD Ystart, const char * pString, - sFONT* Font, UWORD Color_Foreground, UWORD Color_Background) -{ - UWORD Xpoint = Xstart; - UWORD Ypoint = Ystart; - - if (Xstart > Paint.Width || Ystart > Paint.Height) { - Debug("Paint_DrawString_EN Input exceeds the normal display range\r\n"); - return; - } - - while (* pString != '\0') { - //if X direction filled , reposition to(Xstart,Ypoint),Ypoint is Y direction plus the Height of the character - if ((Xpoint + Font->Width ) > Paint.Width ) { - Xpoint = Xstart; - Ypoint += Font->Height; - } - - // If the Y direction is full, reposition to(Xstart, Ystart) - if ((Ypoint + Font->Height ) > Paint.Height ) { - Xpoint = Xstart; - Ypoint = Ystart; - } - Paint_DrawChar(Xpoint, Ypoint, * pString, Font, Color_Background, Color_Foreground); - - //The next character of the address - pString ++; - - //The next word of the abscissa increases the font of the broadband - Xpoint += Font->Width; - } -} - - -/****************************************************************************** -function: Display the string -parameter: - Xstart :X coordinate - Ystart :Y coordinate - pString :The first address of the Chinese string and English - string to be displayed - Font :A structure pointer that displays a character size - Color_Foreground : Select the foreground color - Color_Background : Select the background color -******************************************************************************/ -void Paint_DrawString_CN(UWORD Xstart, UWORD Ystart, const char * pString, cFONT* font, - UWORD Color_Foreground, UWORD Color_Background) -{ - const char* p_text = pString; - int x = Xstart, y = Ystart; - int i, j,Num; - - /* Send the string character by character on EPD */ - while (*p_text != 0) { - if(*p_text <= 0x7F) { //ASCII < 126 - for(Num = 0; Num < font->size; Num++) { - if(*p_text== font->table[Num].index[0]) { - const char* ptr = &font->table[Num].matrix[0]; - - for (j = 0; j < font->Height; j++) { - for (i = 0; i < font->Width; i++) { - if (FONT_BACKGROUND == Color_Background) { //this process is to speed up the scan - if (*ptr & (0x80 >> (i % 8))) { - Paint_SetPixel(x + i, y + j, Color_Foreground); - // Paint_DrawPoint(x + i, y + j, Color_Foreground, DOT_PIXEL_DFT, DOT_STYLE_DFT); - } - } else { - if (*ptr & (0x80 >> (i % 8))) { - Paint_SetPixel(x + i, y + j, Color_Foreground); - // Paint_DrawPoint(x + i, y + j, Color_Foreground, DOT_PIXEL_DFT, DOT_STYLE_DFT); - } else { - Paint_SetPixel(x + i, y + j, Color_Background); - // Paint_DrawPoint(x + i, y + j, Color_Background, DOT_PIXEL_DFT, DOT_STYLE_DFT); - } - } - if (i % 8 == 7) { - ptr++; - } - } - if (font->Width % 8 != 0) { - ptr++; - } - } - break; - } - } - /* Point on the next character */ - p_text += 1; - /* Decrement the column position by 16 */ - x += font->ASCII_Width; - } else { //Chinese - for(Num = 0; Num < font->size; Num++) { - if((*p_text== font->table[Num].index[0]) && (*(p_text+1) == font->table[Num].index[1])) { - const char* ptr = &font->table[Num].matrix[0]; - - for (j = 0; j < font->Height; j++) { - for (i = 0; i < font->Width; i++) { - if (FONT_BACKGROUND == Color_Background) { //this process is to speed up the scan - if (*ptr & (0x80 >> (i % 8))) { - Paint_SetPixel(x + i, y + j, Color_Foreground); - // Paint_DrawPoint(x + i, y + j, Color_Foreground, DOT_PIXEL_DFT, DOT_STYLE_DFT); - } - } else { - if (*ptr & (0x80 >> (i % 8))) { - Paint_SetPixel(x + i, y + j, Color_Foreground); - // Paint_DrawPoint(x + i, y + j, Color_Foreground, DOT_PIXEL_DFT, DOT_STYLE_DFT); - } else { - Paint_SetPixel(x + i, y + j, Color_Background); - // Paint_DrawPoint(x + i, y + j, Color_Background, DOT_PIXEL_DFT, DOT_STYLE_DFT); - } - } - if (i % 8 == 7) { - ptr++; - } - } - if (font->Width % 8 != 0) { - ptr++; - } - } - break; - } - } - /* Point on the next character */ - p_text += 2; - /* Decrement the column position by 16 */ - x += font->Width; - } - } -} - -/****************************************************************************** -function: Display nummber -parameter: - Xstart :X coordinate - Ystart : Y coordinate - Nummber : The number displayed - Font :A structure pointer that displays a character size - Color_Foreground : Select the foreground color - Color_Background : Select the background color -******************************************************************************/ -#define ARRAY_LEN 255 -void Paint_DrawNum(UWORD Xpoint, UWORD Ypoint, int32_t Nummber, - sFONT* Font, UWORD Color_Foreground, UWORD Color_Background) -{ - - int16_t Num_Bit = 0, Str_Bit = 0; - uint8_t Str_Array[ARRAY_LEN] = {0}, Num_Array[ARRAY_LEN] = {0}; - uint8_t *pStr = Str_Array; - - if (Xpoint > Paint.Width || Ypoint > Paint.Height) { - Debug("Paint_DisNum Input exceeds the normal display range\r\n"); - return; - } - - //Converts a number to a string - while (Nummber) { - Num_Array[Num_Bit] = Nummber % 10 + '0'; - Num_Bit++; - Nummber /= 10; - } - - //The string is inverted - while (Num_Bit > 0) { - Str_Array[Str_Bit] = Num_Array[Num_Bit - 1]; - Str_Bit ++; - Num_Bit --; - } - - //show - Paint_DrawString_EN(Xpoint, Ypoint, (const char*)pStr, Font, Color_Background, Color_Foreground); -} - -/****************************************************************************** -function: Display time -parameter: - Xstart :X coordinate - Ystart : Y coordinate - pTime : Time-related structures - Font :A structure pointer that displays a character size - Color_Foreground : Select the foreground color - Color_Background : Select the background color -******************************************************************************/ -void Paint_DrawTime(UWORD Xstart, UWORD Ystart, PAINT_TIME *pTime, sFONT* Font, - UWORD Color_Foreground, UWORD Color_Background) -{ - uint8_t value[10] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'}; - - UWORD Dx = Font->Width; - - //Write data into the cache - Paint_DrawChar(Xstart , Ystart, value[pTime->Hour / 10], Font, Color_Background, Color_Foreground); - Paint_DrawChar(Xstart + Dx , Ystart, value[pTime->Hour % 10], Font, Color_Background, Color_Foreground); - Paint_DrawChar(Xstart + Dx + Dx / 4 + Dx / 2 , Ystart, ':' , Font, Color_Background, Color_Foreground); - Paint_DrawChar(Xstart + Dx * 2 + Dx / 2 , Ystart, value[pTime->Min / 10] , Font, Color_Background, Color_Foreground); - Paint_DrawChar(Xstart + Dx * 3 + Dx / 2 , Ystart, value[pTime->Min % 10] , Font, Color_Background, Color_Foreground); - Paint_DrawChar(Xstart + Dx * 4 + Dx / 2 - Dx / 4, Ystart, ':' , Font, Color_Background, Color_Foreground); - Paint_DrawChar(Xstart + Dx * 5 , Ystart, value[pTime->Sec / 10] , Font, Color_Background, Color_Foreground); - Paint_DrawChar(Xstart + Dx * 6 , Ystart, value[pTime->Sec % 10] , Font, Color_Background, Color_Foreground); -} - -/****************************************************************************** -function: Display monochrome bitmap -parameter: - image_buffer :A picture data converted to a bitmap -info: - Use a computer to convert the image into a corresponding array, - and then embed the array directly into Imagedata.cpp as a .c file. -******************************************************************************/ -void Paint_DrawBitMap(const unsigned char* image_buffer) -{ - UWORD x, y; - UDOUBLE Addr = 0; - - for (y = 0; y < Paint.HeightByte; y++) { - for (x = 0; x < Paint.WidthByte; x++) {//8 pixel = 1 byte - Addr = x + y * Paint.WidthByte; - Paint.Image[Addr] = (unsigned char)image_buffer[Addr]; - } - } -} diff --git a/libs/epaper/GUI/GUI_Paint.h b/libs/epaper/GUI/GUI_Paint.h deleted file mode 100644 index 59a2f87..0000000 --- a/libs/epaper/GUI/GUI_Paint.h +++ /dev/null @@ -1,215 +0,0 @@ -/****************************************************************************** -* | File : GUI_Paint.h -* | Author : Waveshare electronics -* | Function : Achieve drawing: draw points, lines, boxes, circles and -* their size, solid dotted line, solid rectangle hollow -* rectangle, solid circle hollow circle. -* | Info : -* Achieve display characters: Display a single character, string, number -* Achieve time display: adaptive size display time minutes and seconds -*---------------- -* | This version: V3.1 -* | Date : 2019-10-10 -* | Info : -* ----------------------------------------------------------------------------- -* V3.1(2019-10-10): -* 1. Add gray level -* PAINT Add Scale -* 2. Add void Paint_SetScale(UBYTE scale); -* -* V3.0(2019-04-18): -* 1.Change: -* Paint_DrawPoint(..., DOT_STYLE DOT_STYLE) -* => Paint_DrawPoint(..., DOT_STYLE Dot_Style) -* Paint_DrawLine(..., LINE_STYLE Line_Style, DOT_PIXEL Dot_Pixel) -* => Paint_DrawLine(..., DOT_PIXEL Line_width, LINE_STYLE Line_Style) -* Paint_DrawRectangle(..., DRAW_FILL Filled, DOT_PIXEL Dot_Pixel) -* => Paint_DrawRectangle(..., DOT_PIXEL Line_width, DRAW_FILL Draw_Fill) -* Paint_DrawCircle(..., DRAW_FILL Draw_Fill, DOT_PIXEL Dot_Pixel) -* => Paint_DrawCircle(..., DOT_PIXEL Line_width, DRAW_FILL Draw_Filll) -* -* ----------------------------------------------------------------------------- -* V2.0(2018-11-15): -* 1.add: Paint_NewImage() -* Create an image's properties -* 2.add: Paint_SelectImage() -* Select the picture to be drawn -* 3.add: Paint_SetRotate() -* Set the direction of the cache -* 4.add: Paint_RotateImage() -* Can flip the picture, Support 0-360 degrees, -* but only 90.180.270 rotation is better -* 4.add: Paint_SetMirroring() -* Can Mirroring the picture, horizontal, vertical, origin -* 5.add: Paint_DrawString_CN() -* Can display Chinese(GB1312) -* -* ----------------------------------------------------------------------------- -* V1.0(2018-07-17): -* Create library -* -* Permission is hereby granted, free of charge, to any person obtaining a copy -* of this software and associated documnetation files (the "Software"), to deal -* in the Software without restriction, including without limitation the rights -* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -* copies of the Software, and to permit persons to whom the Software is -* furished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included in -* all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -* LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -* THE SOFTWARE. -* -******************************************************************************/ -#ifndef __GUI_PAINT_H -#define __GUI_PAINT_H - -#include "DEV_Config.h" -#include "../Fonts/fonts.h" - -/** - * Image attributes -**/ -typedef struct { - UBYTE *Image; - UWORD Width; - UWORD Height; - UWORD WidthMemory; - UWORD HeightMemory; - UWORD Color; - UWORD Rotate; - UWORD Mirror; - UWORD WidthByte; - UWORD HeightByte; - UWORD Scale; -} PAINT; -extern PAINT Paint; - -/** - * Display rotate -**/ -#define ROTATE_0 0 -#define ROTATE_90 90 -#define ROTATE_180 180 -#define ROTATE_270 270 - -/** - * Display Flip -**/ -typedef enum { - MIRROR_NONE = 0x00, - MIRROR_HORIZONTAL = 0x01, - MIRROR_VERTICAL = 0x02, - MIRROR_ORIGIN = 0x03, -} MIRROR_IMAGE; -#define MIRROR_IMAGE_DFT MIRROR_NONE - -/** - * image color -**/ -#define WHITE 0xFF -#define BLACK 0x00 -#define RED BLACK - -#define IMAGE_BACKGROUND WHITE -#define FONT_FOREGROUND BLACK -#define FONT_BACKGROUND WHITE - -//4 Gray level -#define GRAY1 0x03 //Blackest -#define GRAY2 0x02 -#define GRAY3 0x01 //gray -#define GRAY4 0x00 //white -/** - * The size of the point -**/ -typedef enum { - DOT_PIXEL_1X1 = 1, // 1 x 1 - DOT_PIXEL_2X2 , // 2 X 2 - DOT_PIXEL_3X3 , // 3 X 3 - DOT_PIXEL_4X4 , // 4 X 4 - DOT_PIXEL_5X5 , // 5 X 5 - DOT_PIXEL_6X6 , // 6 X 6 - DOT_PIXEL_7X7 , // 7 X 7 - DOT_PIXEL_8X8 , // 8 X 8 -} DOT_PIXEL; -#define DOT_PIXEL_DFT DOT_PIXEL_1X1 //Default dot pilex - -/** - * Point size fill style -**/ -typedef enum { - DOT_FILL_AROUND = 1, // dot pixel 1 x 1 - DOT_FILL_RIGHTUP , // dot pixel 2 X 2 -} DOT_STYLE; -#define DOT_STYLE_DFT DOT_FILL_AROUND //Default dot pilex - -/** - * Line style, solid or dashed -**/ -typedef enum { - LINE_STYLE_SOLID = 0, - LINE_STYLE_DOTTED, -} LINE_STYLE; - -/** - * Whether the graphic is filled -**/ -typedef enum { - DRAW_FILL_EMPTY = 0, - DRAW_FILL_FULL, -} DRAW_FILL; - -/** - * Custom structure of a time attribute -**/ -typedef struct { - UWORD Year; //0000 - UBYTE Month; //1 - 12 - UBYTE Day; //1 - 30 - UBYTE Hour; //0 - 23 - UBYTE Min; //0 - 59 - UBYTE Sec; //0 - 59 -} PAINT_TIME; -extern PAINT_TIME sPaint_time; - -//init and Clear -void Paint_NewImage(UBYTE *image, UWORD Width, UWORD Height, UWORD Rotate, UWORD Color); -void Paint_SelectImage(UBYTE *image); -void Paint_SetRotate(UWORD Rotate); -void Paint_SetMirroring(UBYTE mirror); -void Paint_SetPixel(UWORD Xpoint, UWORD Ypoint, UWORD Color); -void Paint_SetScale(UBYTE scale); - -void Paint_Clear(UWORD Color); -void Paint_ClearWindows(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend, UWORD Color); - -//Drawing -void Paint_DrawPoint(UWORD Xpoint, UWORD Ypoint, UWORD Color, DOT_PIXEL Dot_Pixel, DOT_STYLE Dot_FillWay); -void Paint_DrawLine(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend, UWORD Color, DOT_PIXEL Line_width, LINE_STYLE Line_Style); -void Paint_DrawRectangle(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend, UWORD Color, DOT_PIXEL Line_width, DRAW_FILL Draw_Fill); -void Paint_DrawCircle(UWORD X_Center, UWORD Y_Center, UWORD Radius, UWORD Color, DOT_PIXEL Line_width, DRAW_FILL Draw_Fill); - -//Display string -void Paint_DrawChar(UWORD Xstart, UWORD Ystart, const char Acsii_Char, sFONT* Font, UWORD Color_Foreground, UWORD Color_Background); -void Paint_DrawString_EN(UWORD Xstart, UWORD Ystart, const char * pString, sFONT* Font, UWORD Color_Foreground, UWORD Color_Background); -void Paint_DrawString_CN(UWORD Xstart, UWORD Ystart, const char * pString, cFONT* font, UWORD Color_Foreground, UWORD Color_Background); -void Paint_DrawNum(UWORD Xpoint, UWORD Ypoint, int32_t Nummber, sFONT* Font, UWORD Color_Foreground, UWORD Color_Background); -void Paint_DrawTime(UWORD Xstart, UWORD Ystart, PAINT_TIME *pTime, sFONT* Font, UWORD Color_Foreground, UWORD Color_Background); - -//pic -void Paint_DrawBitMap(const unsigned char* image_buffer); - - -#endif - - - - - diff --git a/libs/mare/charmap.h b/libs/mare/charmap.h new file mode 100644 index 0000000..1823b19 --- /dev/null +++ b/libs/mare/charmap.h @@ -0,0 +1,2 @@ +#include +#include diff --git a/libs/mare/mare.h b/libs/mare/mare.h index 2351303..7aa08b2 100644 --- a/libs/mare/mare.h +++ b/libs/mare/mare.h @@ -18,12 +18,15 @@ extern "C" { #include #include #include +#include namespace Render{ typedef int32_t p_t; struct pos_t { + friend bool operator==(const pos_t a, const pos_t b){ return a.x==b.x && a.y==b.y;}; + friend bool operator!=(const pos_t a, const pos_t b){ return a.x!=b.x || a.y!=b.y;}; p_t x; p_t y; }; @@ -50,11 +53,24 @@ namespace Render{ Black }; + enum class Font { + Font8, + Font12, + Font16, + Font20, + Font24 + }; + + typedef ScreenRotation TextRotation; + class Page; class Drawable; class DrawablePoint; class DrawableLine; class DrawableRectangle; + class DrawableCircle; + class DrawableString; + class DrawableCustom; typedef pos_t dim_t; typedef std::vector> Pages; @@ -244,45 +260,68 @@ namespace Render{ }; class DrawableCircle: public Drawable { - - DrawableCircle(); - ~DrawableCircle(); + public: + DrawableCircle(const size_t id, Drawable* parent, Mare* engine); + ~DrawableCircle(); public: + void setThickness(uint16_t thickness) { _thickness = thickness; }; + const uint16_t getThickness() {return _thickness; }; + void setRadius(uint16_t radius) { _radius = radius; }; + const uint16_t getRadius() { return _radius; }; + void setOutline(bool outline) { _outline = outline; }; + const getOutline() { return _outline; }; private: - void render() {}; + void render(); // members private: + uint16_t _thickness; + uint16_t _radius; + bool _outline; }; class DrawableChar: public Drawable { - - DrawableChar(); - ~DrawableChar(); + friend class DrawableString; + public: + DrawableChar(const size_t id, Drawable* parent, Mare* engine, char c, Font f); + ~DrawableChar(); public: private: - void render() {}; + void render(); // members private: + Font _fontEnum; + _tFont _font; + char _char; }; class DrawableString: public Drawable { - - DrawableString(); - ~DrawableString(); + public: + DrawableString(const size_t id, Drawable* parent, Mare* engine, std::string &s, Font f); + ~DrawableString(); public: - + void setString(std::string& s) { _s = s; }; + const std::string& getString() { return &s; }; + void setFont(Font f) { _fontEnum = f; }; + const Font getFont() { return _fontEnum; }; + void setRotation(TextRotation rotation) { _rotation = rotation; }; + const TextRotation getRotation() { return _rotation; }; + private: - void render() {}; + void render(); // members private: + Font _fontEnum; + TextRotation _rotation; + std::string _s; + std::vector _chars; }; class DrawableCustom: public Drawable { diff --git a/libs/mare/mare_drawables.cpp b/libs/mare/mare_drawables.cpp index 79ab2d5..a756597 100644 --- a/libs/mare/mare_drawables.cpp +++ b/libs/mare/mare_drawables.cpp @@ -1,4 +1,5 @@ #include "mare.h" +#include "charmap.h" namespace Render { @@ -76,11 +77,11 @@ namespace Render { for (uint16_t t(0); t < _thickness; ++t) { for (uint16_t xx(0); xx < _length; ++xx) { if (_rotation == 0 || _rotation == 180){ - res.x = _rotation == 0 ? xx : (_length-xx); - res.y = t-(_thickness>>1); + res.x = _rotation == 0 ? xx : -xx; + res.y = t-_ofst; } else if (_rotation == 90 || _rotation == 270){ - res.x = t-(_thickness>>1); - res.y = _rotation == 90 ? xx : _length-xx; + res.x = t-_ofst; + res.y = _rotation == 90 ? xx : -xx; } else { res = e->rotateXY(xx,t-_ofst,_rotation/180.0f*M_PI); } @@ -172,11 +173,143 @@ namespace Render { //--------+--------+--------+--------+--------+--------+--------+--------+--------+--------// //Circle + DrawableCircle::DrawableCircle(const size_t id, Drawable* parent, Mare* engine): + Drawable(id, parent,engine), + _thickness(1), + _radius(8), + _outline(false) + { + + } + + DrawableCircle::~DrawableCircle () + { + + } + + void DrawableCircle::render() + { + auto e = engine(); + uint8_t* buf = getBuffer(); + auto tt = _thickness; + auto bm = getBlendMode(); + const pos_t o = getOrigin(); + const uint8_t t2 = _thickness >> 1; + const pos_t oo = {o.x-t2, o.y-t2}; + + auto dot = [buf, tt, e, bm] (p_t x, p_t y) { + for (uint16_t xx(0); xx < tt; ++xx) { + for (uint16_t yy(0); yy < tt; ++yy) { + e->setPixel(buf, xx+x, yy+y, bm); + } + } + }; + auto pix = [buf,e,bm](p_t x, p_t y) { + e->setPixel(buf, x, y, bm); + }; + + if (isDirty()){ + if (_outline){ + const float st = M_PI_2/45; + pos_t pres; + for (float t(0); t <= M_TWOPI; t+=st){ + auto res = e->rotateXY(_radius,0,t); + if (res != pres) { + dot(oo.x+res.x, oo.y+res.y); + dot(oo.x-res.x, oo.y+res.y); + dot(oo.x-res.x, oo.y+res.y); + dot(oo.x-res.x, oo.y-res.y); + pres=res; + } + } + } + resetDirty(); + } + + } + //--------+--------+--------+--------+--------+--------+--------+--------+--------+--------// //Character + extern const _tFont* Font8; + extern const _tFont* Font12; + extern const _tFont* Font16; + extern const _tFont* Font20; + extern const _tFont* Font24; + + + DrawableChar::DrawableChar(const size_t id, Drawable* parent, Mare* engine, char c, Font f) : + Drawable(id, parent,engine), + _fontEnum(f), + _char(c) + { + switch (_fontEnum) + { + case Font::Font8: + _font = *Font8; + break; + + case Font::Font12: + _font = *Font12; + break; + + case Font::Font16: + _font = *Font16; + break; + + case Font::Font20: + _font = *Font20; + break; + + case Font::Font24: + _font = *Font24; + break; + + default: + break; + } + } + + DrawableChar::~DrawableChar() { + + } + + void DrawableChar::render() { + + } + //--------+--------+--------+--------+--------+--------+--------+--------+--------+--------// //String + + DrawableString::DrawableString(const size_t id, Drawable* parent, Mare* engine, std::string &s, Font f) : + Drawable(id, parent,engine), + _fontEnum(f), + _s(s) + { + _chars.reserve(s.size()); + uint16_t idx(0); + for(auto c : _s){ + _chars.push_back(engine->addDrawable(c.c_str(),_fontEnum)); + } + + } + + DrawableString::~DrawableString() + { + //free heap of drawable characters + for (auto c : _chars) { + delete c; + } + _chars.clear(); + } + + void DrawableString::render() { + for (auto c : _chars){ + if (c != nullptr){ + c->render(); + } + } + } //--------+--------+--------+--------+--------+--------+--------+--------+--------+--------// //Custom diff --git a/src/main.cpp b/src/main.cpp index 8bc1058..6455131 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -21,6 +21,7 @@ int main(){ auto c2 = viewer.addDrawable(); auto line3 = viewer.addDrawable(); auto rect = viewer.addDrawable(); + auto circle = viewer.addDrawable(); c1->setOrigin({0,63}); c1->setLength(296); @@ -42,6 +43,11 @@ int main(){ rect->setOutline(true); rect->setThickness(6); + circle->setRadius(32); + circle->setOrigin(viewer.getCenter()); + circle->setOutline(true); + circle->setThickness(3); + while (true){ line3->setThickness(2); for (uint16_t a(0); a<=360; a+=360/36){ @@ -51,6 +57,7 @@ int main(){ c1->setDirty(); c2->setDirty(); rect->setDirty(); + circle->setDirty(); viewer.render(); } viewer.clearScreen();