Merge branch 'bugfix-2.0.x' of https://github.com/MarlinFirmware/Marlin into bugfix-2.0.x

This commit is contained in:
InsanityAutomation
2021-07-19 15:35:57 -04:00
127 changed files with 2615 additions and 2127 deletions
+1
View File
@@ -451,6 +451,7 @@
* 67 : 500kΩ SliceEngineering 450°C Thermistor
* 70 : 100kΩ bq Hephestos 2
* 75 : 100kΩ Generic Silicon Heat Pad with NTC100K MGB18-104F39050L32
* 2000 : 100kΩ Ultimachine Rambo TDK NTCG104LH104KT1 NTC100K motherboard Thermistor
*
* Analog Thermistors - 1kΩ pullup - Atypical, and requires changing out the 4.7kΩ pullup for 1kΩ.
* ------- (but gives greater accuracy and more stable PID)
+1 -1
View File
@@ -41,7 +41,7 @@
* here we define this default string as the date where the latest release
* version was tagged.
*/
//#define STRING_DISTRIBUTION_DATE "2021-07-13"
//#define STRING_DISTRIBUTION_DATE "2021-07-19"
/**
* Defines a generic printer name to be output to the LCD after booting Marlin.
+4 -4
View File
@@ -240,7 +240,7 @@
}
// all the others
static uint32_t spiDelayCyclesX4 = 4 * (F_CPU) / 1000000; // 4µs => 125khz
static uint16_t spiDelayNS = 4000; // 4000ns => 125khz
static uint8_t spiTransferX(uint8_t b) { // using Mode 0
int bits = 8;
@@ -249,12 +249,12 @@
b <<= 1; // little setup time
WRITE(SD_SCK_PIN, HIGH);
DELAY_CYCLES(spiDelayCyclesX4);
DELAY_NS(spiDelayNS);
b |= (READ(SD_MISO_PIN) != 0);
WRITE(SD_SCK_PIN, LOW);
DELAY_CYCLES(spiDelayCyclesX4);
DELAY_NS(spiDelayNS);
} while (--bits);
return b;
}
@@ -510,7 +510,7 @@
spiRxBlock = (pfnSpiRxBlock)spiRxBlockX;
break;
default:
spiDelayCyclesX4 = ((F_CPU) / 1000000) >> (6 - spiRate) << 2; // spiRate of 2 gives the maximum error with current CPU
spiDelayNS = 4000 >> (6 - spiRate); // spiRate of 2 gives the maximum error with current CPU
spiTransferTx = (pfnSpiTransfer)spiTransferX;
spiTransferRx = (pfnSpiTransfer)spiTransferX;
spiTxBlock = (pfnSpiTxBlock)spiTxBlockX;
+247 -270
View File
@@ -28,319 +28,296 @@
#include <stdint.h>
#include <stdbool.h>
#if NONE(STM32F103xE, STM32F103xG, STM32F4xx, STM32F7xx)
#error "ERROR - Only STM32F103xE, STM32F103xG, STM32F4xx or STM32F7xx CPUs supported"
// use local drivers
#if defined(STM32F103xE) || defined(STM32F103xG)
#include <stm32f1xx_hal_rcc_ex.h>
#include <stm32f1xx_hal_sd.h>
#elif defined(STM32F4xx)
#include <stm32f4xx_hal_rcc.h>
#include <stm32f4xx_hal_dma.h>
#include <stm32f4xx_hal_gpio.h>
#include <stm32f4xx_hal_sd.h>
#elif defined(STM32F7xx)
#include <stm32f7xx_hal_rcc.h>
#include <stm32f7xx_hal_dma.h>
#include <stm32f7xx_hal_gpio.h>
#include <stm32f7xx_hal_sd.h>
#else
#error "SDIO only supported with STM32F103xE, STM32F103xG, STM32F4xx, or STM32F7xx."
#endif
#if HAS_SD_HOST_DRIVE
// Fixed
#define SDIO_D0_PIN PC8
#define SDIO_D1_PIN PC9
#define SDIO_D2_PIN PC10
#define SDIO_D3_PIN PC11
#define SDIO_CK_PIN PC12
#define SDIO_CMD_PIN PD2
// use USB drivers
SD_HandleTypeDef hsd; // create SDIO structure
// F4 supports one DMA for RX and another for TX, but Marlin will never
// do read and write at same time, so we use the same DMA for both.
DMA_HandleTypeDef hdma_sdio;
extern "C" {
int8_t SD_MSC_Read(uint8_t lun, uint8_t *buf, uint32_t blk_addr, uint16_t blk_len);
int8_t SD_MSC_Write(uint8_t lun, uint8_t *buf, uint32_t blk_addr, uint16_t blk_len);
extern SD_HandleTypeDef hsd;
}
/*
SDIO_INIT_CLK_DIV is 118
SDIO clock frequency is 48MHz / (TRANSFER_CLOCK_DIV + 2)
SDIO init clock frequency should not exceed 400KHz = 48MHz / (118 + 2)
bool SDIO_Init() {
return hsd.State == HAL_SD_STATE_READY; // return pass/fail status
}
Default TRANSFER_CLOCK_DIV is 2 (118 / 40)
Default SDIO clock frequency is 48MHz / (2 + 2) = 12 MHz
This might be too fast for stable SDIO operations
bool SDIO_ReadBlock(uint32_t block, uint8_t *src) {
int8_t status = SD_MSC_Read(0, (uint8_t*)src, block, 1); // read one 512 byte block
return (bool) status;
}
MKS Robin board seems to have stable SDIO with BusWide 1bit and ClockDiv 8 i.e. 4.8MHz SDIO clock frequency
Additional testing is required as there are clearly some 4bit initialization problems
*/
bool SDIO_WriteBlock(uint32_t block, const uint8_t *src) {
int8_t status = SD_MSC_Write(0, (uint8_t*)src, block, 1); // write one 512 byte block
return (bool) status;
}
#ifndef USBD_OK
#define USBD_OK 0
#endif
#else // !USBD_USE_CDC_COMPOSITE
// Target Clock, configurable. Default is 18MHz, from STM32F1
#ifndef SDIO_CLOCK
#define SDIO_CLOCK 18000000 // 18 MHz
#endif
// use local drivers
#if defined(STM32F103xE) || defined(STM32F103xG)
#include <stm32f1xx_hal_rcc_ex.h>
#include <stm32f1xx_hal_sd.h>
#elif defined(STM32F4xx)
#include <stm32f4xx_hal_rcc.h>
#include <stm32f4xx_hal_dma.h>
#include <stm32f4xx_hal_gpio.h>
#include <stm32f4xx_hal_sd.h>
#elif defined(STM32F7xx)
#include <stm32f7xx_hal_rcc.h>
#include <stm32f7xx_hal_dma.h>
#include <stm32f7xx_hal_gpio.h>
#include <stm32f7xx_hal_sd.h>
#else
#error "ERROR - Only STM32F103xE, STM32F103xG, STM32F4xx or STM32F7xx CPUs supported"
// SDIO retries, configurable. Default is 3, from STM32F1
#ifndef SDIO_READ_RETRIES
#define SDIO_READ_RETRIES 3
#endif
// SDIO Max Clock (naming from STM Manual, don't change)
#define SDIOCLK 48000000
static uint32_t clock_to_divider(uint32_t clk) {
// limit the SDIO master clock to 8/3 of PCLK2. See STM32 Manuals
// Also limited to no more than 48Mhz (SDIOCLK).
const uint32_t pclk2 = HAL_RCC_GetPCLK2Freq();
clk = min(clk, (uint32_t)(pclk2 * 8 / 3));
clk = min(clk, (uint32_t)SDIOCLK);
// Round up divider, so we don't run the card over the speed supported,
// and subtract by 2, because STM32 will add 2, as written in the manual:
// SDIO_CK frequency = SDIOCLK / [CLKDIV + 2]
return pclk2 / clk + (pclk2 % clk != 0) - 2;
}
void go_to_transfer_speed() {
/* Default SDIO peripheral configuration for SD card initialization */
hsd.Init.ClockEdge = hsd.Init.ClockEdge;
hsd.Init.ClockBypass = hsd.Init.ClockBypass;
hsd.Init.ClockPowerSave = hsd.Init.ClockPowerSave;
hsd.Init.BusWide = hsd.Init.BusWide;
hsd.Init.HardwareFlowControl = hsd.Init.HardwareFlowControl;
hsd.Init.ClockDiv = clock_to_divider(SDIO_CLOCK);
/* Initialize SDIO peripheral interface with default configuration */
SDIO_Init(hsd.Instance, hsd.Init);
}
void SD_LowLevel_Init(void) {
uint32_t tempreg;
__HAL_RCC_GPIOC_CLK_ENABLE(); //enable GPIO clocks
__HAL_RCC_GPIOD_CLK_ENABLE(); //enable GPIO clocks
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = 1; //GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
#if DISABLED(STM32F1xx)
GPIO_InitStruct.Alternate = GPIO_AF12_SDIO;
#endif
// Fixed
#define SDIO_D0_PIN PC8
#define SDIO_D1_PIN PC9
#define SDIO_D2_PIN PC10
#define SDIO_D3_PIN PC11
#define SDIO_CK_PIN PC12
#define SDIO_CMD_PIN PD2
GPIO_InitStruct.Pin = GPIO_PIN_8 | GPIO_PIN_12; // D0 & SCK
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
SD_HandleTypeDef hsd; // create SDIO structure
// F4 supports one DMA for RX and another for TX, but Marlin will never
// do read and write at same time, so we use the same DMA for both.
DMA_HandleTypeDef hdma_sdio;
/*
SDIO_INIT_CLK_DIV is 118
SDIO clock frequency is 48MHz / (TRANSFER_CLOCK_DIV + 2)
SDIO init clock frequency should not exceed 400KHz = 48MHz / (118 + 2)
Default TRANSFER_CLOCK_DIV is 2 (118 / 40)
Default SDIO clock frequency is 48MHz / (2 + 2) = 12 MHz
This might be too fast for stable SDIO operations
MKS Robin board seems to have stable SDIO with BusWide 1bit and ClockDiv 8 i.e. 4.8MHz SDIO clock frequency
Additional testing is required as there are clearly some 4bit initialization problems
*/
#ifndef USBD_OK
#define USBD_OK 0
#endif
// Target Clock, configurable. Default is 18MHz, from STM32F1
#ifndef SDIO_CLOCK
#define SDIO_CLOCK 18000000 // 18 MHz
#endif
// SDIO retries, configurable. Default is 3, from STM32F1
#ifndef SDIO_READ_RETRIES
#define SDIO_READ_RETRIES 3
#endif
// SDIO Max Clock (naming from STM Manual, don't change)
#define SDIOCLK 48000000
static uint32_t clock_to_divider(uint32_t clk) {
// limit the SDIO master clock to 8/3 of PCLK2. See STM32 Manuals
// Also limited to no more than 48Mhz (SDIOCLK).
const uint32_t pclk2 = HAL_RCC_GetPCLK2Freq();
clk = min(clk, (uint32_t)(pclk2 * 8 / 3));
clk = min(clk, (uint32_t)SDIOCLK);
// Round up divider, so we don't run the card over the speed supported,
// and subtract by 2, because STM32 will add 2, as written in the manual:
// SDIO_CK frequency = SDIOCLK / [CLKDIV + 2]
return pclk2 / clk + (pclk2 % clk != 0) - 2;
}
void go_to_transfer_speed() {
/* Default SDIO peripheral configuration for SD card initialization */
hsd.Init.ClockEdge = hsd.Init.ClockEdge;
hsd.Init.ClockBypass = hsd.Init.ClockBypass;
hsd.Init.ClockPowerSave = hsd.Init.ClockPowerSave;
hsd.Init.BusWide = hsd.Init.BusWide;
hsd.Init.HardwareFlowControl = hsd.Init.HardwareFlowControl;
hsd.Init.ClockDiv = clock_to_divider(SDIO_CLOCK);
/* Initialize SDIO peripheral interface with default configuration */
SDIO_Init(hsd.Instance, hsd.Init);
}
void SD_LowLevel_Init(void) {
uint32_t tempreg;
__HAL_RCC_GPIOC_CLK_ENABLE(); //enable GPIO clocks
__HAL_RCC_GPIOD_CLK_ENABLE(); //enable GPIO clocks
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = 1; //GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
#if DISABLED(STM32F1xx)
GPIO_InitStruct.Alternate = GPIO_AF12_SDIO;
#endif
GPIO_InitStruct.Pin = GPIO_PIN_8 | GPIO_PIN_12; // D0 & SCK
#if PINS_EXIST(SDIO_D1, SDIO_D2, SDIO_D3) // define D1-D3 only if have a four bit wide SDIO bus
GPIO_InitStruct.Pin = GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11; // D1-D3
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
#endif
#if PINS_EXIST(SDIO_D1, SDIO_D2, SDIO_D3) // define D1-D3 only if have a four bit wide SDIO bus
GPIO_InitStruct.Pin = GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11; // D1-D3
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
#endif
// Configure PD.02 CMD line
GPIO_InitStruct.Pin = GPIO_PIN_2;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
// Configure PD.02 CMD line
GPIO_InitStruct.Pin = GPIO_PIN_2;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
// Setup DMA
#if defined(STM32F1xx)
hdma_sdio.Init.Mode = DMA_NORMAL;
hdma_sdio.Instance = DMA2_Channel4;
HAL_NVIC_EnableIRQ(DMA2_Channel4_5_IRQn);
#elif defined(STM32F4xx)
hdma_sdio.Init.Mode = DMA_PFCTRL;
hdma_sdio.Instance = DMA2_Stream3;
hdma_sdio.Init.Channel = DMA_CHANNEL_4;
hdma_sdio.Init.FIFOMode = DMA_FIFOMODE_ENABLE;
hdma_sdio.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL;
hdma_sdio.Init.MemBurst = DMA_MBURST_INC4;
hdma_sdio.Init.PeriphBurst = DMA_PBURST_INC4;
HAL_NVIC_EnableIRQ(DMA2_Stream3_IRQn);
#endif
HAL_NVIC_EnableIRQ(SDIO_IRQn);
hdma_sdio.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_sdio.Init.MemInc = DMA_MINC_ENABLE;
hdma_sdio.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
hdma_sdio.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
hdma_sdio.Init.Priority = DMA_PRIORITY_LOW;
__HAL_LINKDMA(&hsd, hdmarx, hdma_sdio);
__HAL_LINKDMA(&hsd, hdmatx, hdma_sdio);
// Setup DMA
#if defined(STM32F1xx)
hdma_sdio.Init.Mode = DMA_NORMAL;
hdma_sdio.Instance = DMA2_Channel4;
HAL_NVIC_EnableIRQ(DMA2_Channel4_5_IRQn);
#elif defined(STM32F4xx)
hdma_sdio.Init.Mode = DMA_PFCTRL;
hdma_sdio.Instance = DMA2_Stream3;
hdma_sdio.Init.Channel = DMA_CHANNEL_4;
hdma_sdio.Init.FIFOMode = DMA_FIFOMODE_ENABLE;
hdma_sdio.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL;
hdma_sdio.Init.MemBurst = DMA_MBURST_INC4;
hdma_sdio.Init.PeriphBurst = DMA_PBURST_INC4;
HAL_NVIC_EnableIRQ(DMA2_Stream3_IRQn);
#endif
HAL_NVIC_EnableIRQ(SDIO_IRQn);
hdma_sdio.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_sdio.Init.MemInc = DMA_MINC_ENABLE;
hdma_sdio.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
hdma_sdio.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
hdma_sdio.Init.Priority = DMA_PRIORITY_LOW;
__HAL_LINKDMA(&hsd, hdmarx, hdma_sdio);
__HAL_LINKDMA(&hsd, hdmatx, hdma_sdio);
#if defined(STM32F1xx)
__HAL_RCC_SDIO_CLK_ENABLE();
__HAL_RCC_DMA2_CLK_ENABLE();
#else
__HAL_RCC_SDIO_FORCE_RESET();
delay(2);
__HAL_RCC_SDIO_RELEASE_RESET();
delay(2);
__HAL_RCC_SDIO_CLK_ENABLE();
#if defined(STM32F1xx)
__HAL_RCC_SDIO_CLK_ENABLE();
__HAL_RCC_DMA2_CLK_ENABLE();
#else
__HAL_RCC_SDIO_FORCE_RESET();
delay(2);
__HAL_RCC_SDIO_RELEASE_RESET();
delay(2);
__HAL_RCC_SDIO_CLK_ENABLE();
__HAL_RCC_DMA2_FORCE_RESET();
delay(2);
__HAL_RCC_DMA2_RELEASE_RESET();
delay(2);
__HAL_RCC_DMA2_CLK_ENABLE();
#endif
__HAL_RCC_DMA2_FORCE_RESET();
delay(2);
__HAL_RCC_DMA2_RELEASE_RESET();
delay(2);
__HAL_RCC_DMA2_CLK_ENABLE();
#endif
//Initialize the SDIO (with initial <400Khz Clock)
tempreg = 0; //Reset value
tempreg |= SDIO_CLKCR_CLKEN; // Clock enabled
tempreg |= SDIO_INIT_CLK_DIV; // Clock Divider. Clock = 48000 / (118 + 2) = 400Khz
// Keep the rest at 0 => HW_Flow Disabled, Rising Clock Edge, Disable CLK ByPass, Bus Width = 0, Power save Disable
SDIO->CLKCR = tempreg;
//Initialize the SDIO (with initial <400Khz Clock)
tempreg = 0; //Reset value
tempreg |= SDIO_CLKCR_CLKEN; // Clock enabled
tempreg |= SDIO_INIT_CLK_DIV; // Clock Divider. Clock = 48000 / (118 + 2) = 400Khz
// Keep the rest at 0 => HW_Flow Disabled, Rising Clock Edge, Disable CLK ByPass, Bus Width = 0, Power save Disable
SDIO->CLKCR = tempreg;
// Power up the SDIO
SDIO_PowerState_ON(SDIO);
hsd.Instance = SDIO;
}
// Power up the SDIO
SDIO_PowerState_ON(SDIO);
hsd.Instance = SDIO;
void HAL_SD_MspInit(SD_HandleTypeDef *hsd) { // application specific init
UNUSED(hsd); // Prevent unused argument(s) compilation warning
__HAL_RCC_SDIO_CLK_ENABLE(); // turn on SDIO clock
}
bool SDIO_Init() {
uint8_t retryCnt = SDIO_READ_RETRIES;
bool status;
hsd.Instance = SDIO;
hsd.State = HAL_SD_STATE_RESET;
SD_LowLevel_Init();
uint8_t retry_Cnt = retryCnt;
for (;;) {
TERN_(USE_WATCHDOG, HAL_watchdog_refresh());
status = (bool) HAL_SD_Init(&hsd);
if (!status) break;
if (!--retry_Cnt) return false; // return failing status if retries are exhausted
}
void HAL_SD_MspInit(SD_HandleTypeDef *hsd) { // application specific init
UNUSED(hsd); // Prevent unused argument(s) compilation warning
__HAL_RCC_SDIO_CLK_ENABLE(); // turn on SDIO clock
}
go_to_transfer_speed();
bool SDIO_Init() {
uint8_t retryCnt = SDIO_READ_RETRIES;
bool status;
hsd.Instance = SDIO;
hsd.State = HAL_SD_STATE_RESET;
SD_LowLevel_Init();
uint8_t retry_Cnt = retryCnt;
#if PINS_EXIST(SDIO_D1, SDIO_D2, SDIO_D3) // go to 4 bit wide mode if pins are defined
retry_Cnt = retryCnt;
for (;;) {
TERN_(USE_WATCHDOG, HAL_watchdog_refresh());
status = (bool) HAL_SD_Init(&hsd);
if (!status) break;
if (!--retry_Cnt) return false; // return failing status if retries are exhausted
if (!HAL_SD_ConfigWideBusOperation(&hsd, SDIO_BUS_WIDE_4B)) break; // some cards are only 1 bit wide so a pass here is not required
if (!--retry_Cnt) break;
}
go_to_transfer_speed();
#if PINS_EXIST(SDIO_D1, SDIO_D2, SDIO_D3) // go to 4 bit wide mode if pins are defined
if (!retry_Cnt) { // wide bus failed, go back to one bit wide mode
hsd.State = (HAL_SD_StateTypeDef) 0; // HAL_SD_STATE_RESET
SD_LowLevel_Init();
retry_Cnt = retryCnt;
for (;;) {
TERN_(USE_WATCHDOG, HAL_watchdog_refresh());
if (!HAL_SD_ConfigWideBusOperation(&hsd, SDIO_BUS_WIDE_4B)) break; // some cards are only 1 bit wide so a pass here is not required
if (!--retry_Cnt) break;
status = (bool) HAL_SD_Init(&hsd);
if (!status) break;
if (!--retry_Cnt) return false; // return failing status if retries are exhausted
}
if (!retry_Cnt) { // wide bus failed, go back to one bit wide mode
hsd.State = (HAL_SD_StateTypeDef) 0; // HAL_SD_STATE_RESET
SD_LowLevel_Init();
retry_Cnt = retryCnt;
for (;;) {
TERN_(USE_WATCHDOG, HAL_watchdog_refresh());
status = (bool) HAL_SD_Init(&hsd);
if (!status) break;
if (!--retry_Cnt) return false; // return failing status if retries are exhausted
}
go_to_transfer_speed();
}
#endif
go_to_transfer_speed();
}
#endif
return true;
return true;
}
static bool SDIO_ReadWriteBlock_DMA(uint32_t block, const uint8_t *src, uint8_t *dst) {
if (HAL_SD_GetCardState(&hsd) != HAL_SD_CARD_TRANSFER) return false;
TERN_(USE_WATCHDOG, HAL_watchdog_refresh());
HAL_StatusTypeDef ret;
if (src) {
hdma_sdio.Init.Direction = DMA_MEMORY_TO_PERIPH;
HAL_DMA_Init(&hdma_sdio);
ret = HAL_SD_WriteBlocks_DMA(&hsd, (uint8_t *)src, block, 1);
}
else {
hdma_sdio.Init.Direction = DMA_PERIPH_TO_MEMORY;
HAL_DMA_Init(&hdma_sdio);
ret = HAL_SD_ReadBlocks_DMA(&hsd, (uint8_t *)dst, block, 1);
}
static bool SDIO_ReadWriteBlock_DMA(uint32_t block, const uint8_t *src, uint8_t *dst) {
if (HAL_SD_GetCardState(&hsd) != HAL_SD_CARD_TRANSFER) return false;
if (ret != HAL_OK) {
HAL_DMA_Abort_IT(&hdma_sdio);
HAL_DMA_DeInit(&hdma_sdio);
return false;
}
TERN_(USE_WATCHDOG, HAL_watchdog_refresh());
HAL_StatusTypeDef ret;
if (src) {
hdma_sdio.Init.Direction = DMA_MEMORY_TO_PERIPH;
HAL_DMA_Init(&hdma_sdio);
ret = HAL_SD_WriteBlocks_DMA(&hsd, (uint8_t *)src, block, 1);
}
else {
hdma_sdio.Init.Direction = DMA_PERIPH_TO_MEMORY;
HAL_DMA_Init(&hdma_sdio);
ret = HAL_SD_ReadBlocks_DMA(&hsd, (uint8_t *)dst, block, 1);
}
if (ret != HAL_OK) {
millis_t timeout = millis() + 500;
// Wait the transfer
while (hsd.State != HAL_SD_STATE_READY) {
if (ELAPSED(millis(), timeout)) {
HAL_DMA_Abort_IT(&hdma_sdio);
HAL_DMA_DeInit(&hdma_sdio);
return false;
}
millis_t timeout = millis() + 500;
// Wait the transfer
while (hsd.State != HAL_SD_STATE_READY) {
if (ELAPSED(millis(), timeout)) {
HAL_DMA_Abort_IT(&hdma_sdio);
HAL_DMA_DeInit(&hdma_sdio);
return false;
}
}
while (__HAL_DMA_GET_FLAG(&hdma_sdio, __HAL_DMA_GET_TC_FLAG_INDEX(&hdma_sdio)) != 0
|| __HAL_DMA_GET_FLAG(&hdma_sdio, __HAL_DMA_GET_TE_FLAG_INDEX(&hdma_sdio)) != 0) { /* nada */ }
HAL_DMA_Abort_IT(&hdma_sdio);
HAL_DMA_DeInit(&hdma_sdio);
timeout = millis() + 500;
while (HAL_SD_GetCardState(&hsd) != HAL_SD_CARD_TRANSFER) if (ELAPSED(millis(), timeout)) return false;
return true;
}
bool SDIO_ReadBlock(uint32_t block, uint8_t *dst) {
uint8_t retries = SDIO_READ_RETRIES;
while (retries--) if (SDIO_ReadWriteBlock_DMA(block, NULL, dst)) return true;
return false;
}
while (__HAL_DMA_GET_FLAG(&hdma_sdio, __HAL_DMA_GET_TC_FLAG_INDEX(&hdma_sdio)) != 0
|| __HAL_DMA_GET_FLAG(&hdma_sdio, __HAL_DMA_GET_TE_FLAG_INDEX(&hdma_sdio)) != 0) { /* nada */ }
bool SDIO_WriteBlock(uint32_t block, const uint8_t *src) {
uint8_t retries = SDIO_READ_RETRIES;
while (retries--) if (SDIO_ReadWriteBlock_DMA(block, src, NULL)) return true;
return false;
}
HAL_DMA_Abort_IT(&hdma_sdio);
HAL_DMA_DeInit(&hdma_sdio);
#if defined(STM32F1xx)
#define DMA_IRQ_HANDLER DMA2_Channel4_5_IRQHandler
#elif defined(STM32F4xx)
#define DMA_IRQ_HANDLER DMA2_Stream3_IRQHandler
#else
#error "Unknown STM32 architecture."
#endif
timeout = millis() + 500;
while (HAL_SD_GetCardState(&hsd) != HAL_SD_CARD_TRANSFER) if (ELAPSED(millis(), timeout)) return false;
extern "C" void SDIO_IRQHandler(void) { HAL_SD_IRQHandler(&hsd); }
extern "C" void DMA_IRQ_HANDLER(void) { HAL_DMA_IRQHandler(&hdma_sdio); }
return true;
}
bool SDIO_ReadBlock(uint32_t block, uint8_t *dst) {
uint8_t retries = SDIO_READ_RETRIES;
while (retries--) if (SDIO_ReadWriteBlock_DMA(block, NULL, dst)) return true;
return false;
}
bool SDIO_WriteBlock(uint32_t block, const uint8_t *src) {
uint8_t retries = SDIO_READ_RETRIES;
while (retries--) if (SDIO_ReadWriteBlock_DMA(block, src, NULL)) return true;
return false;
}
bool SDIO_IsReady() {
return hsd.State == HAL_SD_STATE_READY;
}
uint32_t SDIO_GetCardSize() {
return (uint32_t)(hsd.SdCard.BlockNbr) * (hsd.SdCard.BlockSize);
}
#if defined(STM32F1xx)
#define DMA_IRQ_HANDLER DMA2_Channel4_5_IRQHandler
#elif defined(STM32F4xx)
#define DMA_IRQ_HANDLER DMA2_Stream3_IRQHandler
#else
#error "Unknown STM32 architecture."
#endif
extern "C" void SDIO_IRQHandler(void) { HAL_SD_IRQHandler(&hsd); }
extern "C" void DMA_IRQ_HANDLER(void) { HAL_DMA_IRQHandler(&hdma_sdio); }
#endif // !USBD_USE_CDC_COMPOSITE
#endif // SDIO_SUPPORT
#endif // ARDUINO_ARCH_STM32 && !STM32GENERIC && !MAPLE_STM32F1
+1 -1
View File
@@ -19,10 +19,10 @@
#if HAS_SD_HOST_DRIVE
#include "../shared/Marduino.h"
#include "msc_sd.h"
#include "usbd_core.h"
#include "../shared/Marduino.h"
#include "../../sd/cardreader.h"
#include <USB.h>
+4
View File
@@ -184,6 +184,10 @@ bool SDIO_WriteBlock(uint32_t blockAddress, const uint8_t *data) {
inline uint32_t SDIO_GetCardState() { return SDIO_CmdSendStatus(SdCard.RelCardAdd << 16U) ? (SDIO_GetResponse(SDIO_RESP1) >> 9U) & 0x0FU : SDIO_CARD_ERROR; }
// No F1 board with SDIO + MSC using Maple, that I aware of...
bool SDIO_IsReady() { return true; }
uint32_t SDIO_GetCardSize() { return 0; }
// ------------------------
// SD Commands and Responses
// ------------------------
+2 -6
View File
@@ -70,7 +70,7 @@
#if HAS_TFT_LVGL_UI
#include "lcd/extui/mks_ui/tft_lvgl_configuration.h"
#include "lcd/extui/mks_ui/draw_ui.h"
#include "lcd/extui/mks_ui/mks_hardware_test.h"
#include "lcd/extui/mks_ui/mks_hardware.h"
#include <lvgl.h>
#endif
@@ -514,7 +514,6 @@ inline void manage_inactivity(const bool no_stepper_sleep=false) {
constexpr millis_t HOME_DEBOUNCE_DELAY = 1000UL;
static millis_t next_home_key_ms; // = 0
if (!IS_SD_PRINTING() && !READ(HOME_PIN)) { // HOME_PIN goes LOW when pressed
const millis_t ms = millis();
if (ELAPSED(ms, next_home_key_ms)) {
next_home_key_ms = ms + HOME_DEBOUNCE_DELAY;
LCD_MESSAGEPGM(MSG_AUTO_HOME);
@@ -526,7 +525,6 @@ inline void manage_inactivity(const bool no_stepper_sleep=false) {
#if ENABLED(CUSTOM_USER_BUTTONS)
// Handle a custom user button if defined
const bool printer_not_busy = !printingIsActive();
const millis_t ms = millis();
#define HAS_CUSTOM_USER_BUTTON(N) (PIN_EXISTS(BUTTON##N) && defined(BUTTON##N##_HIT_STATE) && defined(BUTTON##N##_GCODE))
#define HAS_BETTER_USER_BUTTON(N) HAS_CUSTOM_USER_BUTTON(N) && defined(BUTTON##N##_DESC)
#define _CHECK_CUSTOM_USER_BUTTON(N, CODE) do{ \
@@ -1275,9 +1273,7 @@ void setup() {
if (mcu & RST_SOFTWARE) SERIAL_ECHOLNPGM(STR_SOFTWARE_RESET);
HAL_clear_reset_source();
SERIAL_ECHOPGM_P(GET_TEXT(MSG_MARLIN));
SERIAL_CHAR(' ');
SERIAL_ECHOLNPGM(SHORT_BUILD_VERSION);
SERIAL_ECHOLNPGM("Marlin " SHORT_BUILD_VERSION);
SERIAL_EOL();
#if defined(STRING_DISTRIBUTION_DATE) && defined(STRING_CONFIG_H_AUTHOR)
SERIAL_ECHO_MSG(
+3 -3
View File
@@ -249,7 +249,7 @@
#define BOARD_BTT_SKR_V1_4_TURBO 2508 // BigTreeTech SKR v1.4 TURBO (Power outputs: Hotend0, Hotend1, Fan, Bed)
#define BOARD_MKS_SGEN_L_V2 2509 // MKS SGEN_L V2 (Power outputs: Hotend0, Hotend1, Bed, Fan)
#define BOARD_BTT_SKR_E3_TURBO 2510 // BigTreeTech SKR E3 Turbo (Power outputs: Hotend0, Hotend1, Bed, Fan0, Fan1)
#define BOARD_FLY_CDY 2511 // FLY_CDY (Power outputs: Hotend0, Hotend1, Hotend2, Bed, Fan0, Fan1, Fan2)
#define BOARD_FLY_CDY 2511 // FLYmaker FLY CDY (Power outputs: Hotend0, Hotend1, Hotend2, Bed, Fan0, Fan1, Fan2)
//
// SAM3X8E ARM Cortex M3
@@ -340,7 +340,7 @@
#define BOARD_CREALITY_V452 4042 // Creality v4.5.2 (STM32F103RE)
#define BOARD_CREALITY_V453 4043 // Creality v4.5.3 (STM32F103RE)
#define BOARD_TRIGORILLA_PRO 4044 // Trigorilla Pro (STM32F103ZET6)
#define BOARD_FLY_MINI 4045 // FLY MINI (STM32F103RCT6)
#define BOARD_FLY_MINI 4045 // FLYmaker FLY MINI (STM32F103RCT6)
#define BOARD_FLSUN_HISPEED 4046 // FLSUN HiSpeedV1 (STM32F103VET6)
#define BOARD_BEAST 4047 // STM32F103RET6 Libmaple-based controller
#define BOARD_MINGDA_MPX_ARM_MINI 4048 // STM32F103ZET6 Mingda MD-16
@@ -380,7 +380,7 @@
#define BOARD_FYSETC_S6 4220 // FYSETC S6 (STM32F446VET6)
#define BOARD_FYSETC_S6_V2_0 4221 // FYSETC S6 v2.0 (STM32F446VET6)
#define BOARD_FYSETC_SPIDER 4222 // FYSETC Spider (STM32F446VET6)
#define BOARD_FLYF407ZG 4223 // FLYF407ZG (STM32F407ZG)
#define BOARD_FLYF407ZG 4223 // FLYmaker FLYF407ZG (STM32F407ZG)
#define BOARD_MKS_ROBIN2 4224 // MKS_ROBIN2 (STM32F407ZE)
#define BOARD_MKS_ROBIN_PRO_V2 4225 // MKS Robin Pro V2 (STM32F407VE)
#define BOARD_MKS_ROBIN_NANO_V3 4226 // MKS Robin Nano V3 (STM32F407VG)
-3
View File
@@ -42,15 +42,12 @@ typedef const char Language_Str[];
#ifndef LCD_LANGUAGE_2
#define LCD_LANGUAGE_2 LCD_LANGUAGE
#endif
#ifndef LCD_LANGUAGE_3
#define LCD_LANGUAGE_3 LCD_LANGUAGE_2
#endif
#ifndef LCD_LANGUAGE_4
#define LCD_LANGUAGE_4 LCD_LANGUAGE_3
#endif
#ifndef LCD_LANGUAGE_5
#define LCD_LANGUAGE_5 LCD_LANGUAGE_4
#endif
+2 -2
View File
@@ -916,11 +916,11 @@ void set_message_with_feedback(PGM_P const msg_P) {
if (do_ubl_mesh_map) display_map(param.T_map_type); // Show user where we're probing
if (parser.seen_test('B')) {
SERIAL_ECHOPGM_P(GET_TEXT(MSG_UBL_BC_INSERT));
SERIAL_ECHOPGM("Place Shim & Measure");
LCD_MESSAGEPGM(MSG_UBL_BC_INSERT);
}
else {
SERIAL_ECHOPGM_P(GET_TEXT(MSG_UBL_BC_INSERT2));
SERIAL_ECHOPGM("Measure");
LCD_MESSAGEPGM(MSG_UBL_BC_INSERT2);
}
+14 -14
View File
@@ -75,7 +75,7 @@ MMU2 mmu2;
#define MMU2_NO_TOOL 99
#define MMU_BAUD 115200
bool MMU2::enabled, MMU2::ready, MMU2::mmu_print_saved;
bool MMU2::_enabled, MMU2::ready, MMU2::mmu_print_saved;
#if HAS_PRUSA_MMU2S
bool MMU2::mmu2s_triggered;
#endif
@@ -219,7 +219,7 @@ void MMU2::mmu_loop() {
DEBUG_ECHOLNPAIR("MMU => ", finda, "\nMMU - ENABLED");
enabled = true;
_enabled = true;
state = 1;
TERN_(HAS_PRUSA_MMU2S, mmu2s_triggered = false);
}
@@ -480,7 +480,7 @@ static void mmu2_not_responding() {
*/
void MMU2::tool_change(const uint8_t index) {
if (!enabled) return;
if (!_enabled) return;
set_runout_valid(false);
@@ -512,7 +512,7 @@ static void mmu2_not_responding() {
* Tc Load to nozzle after filament was prepared by Tx and extruder nozzle is already heated.
*/
void MMU2::tool_change(const char *special) {
if (!enabled) return;
if (!_enabled) return;
set_runout_valid(false);
@@ -561,7 +561,7 @@ static void mmu2_not_responding() {
* Handle tool change
*/
void MMU2::tool_change(const uint8_t index) {
if (!enabled) return;
if (!_enabled) return;
set_runout_valid(false);
@@ -599,7 +599,7 @@ static void mmu2_not_responding() {
* Tc Load to nozzle after filament was prepared by Tx and extruder nozzle is already heated.
*/
void MMU2::tool_change(const char *special) {
if (!enabled) return;
if (!_enabled) return;
set_runout_valid(false);
@@ -665,7 +665,7 @@ static void mmu2_not_responding() {
* Handle tool change
*/
void MMU2::tool_change(const uint8_t index) {
if (!enabled) return;
if (!_enabled) return;
set_runout_valid(false);
@@ -693,7 +693,7 @@ static void mmu2_not_responding() {
* Tc Load to nozzle after filament was prepared by Tx and extruder nozzle is already heated.
*/
void MMU2::tool_change(const char *special) {
if (!enabled) return;
if (!_enabled) return;
set_runout_valid(false);
@@ -744,7 +744,7 @@ static void mmu2_not_responding() {
* Set next command
*/
void MMU2::command(const uint8_t mmu_cmd) {
if (!enabled) return;
if (!_enabled) return;
cmd = mmu_cmd;
ready = false;
}
@@ -833,7 +833,7 @@ void MMU2::manage_response(const bool move_axes, const bool turn_off_nozzle) {
}
void MMU2::set_filament_type(const uint8_t index, const uint8_t filamentType) {
if (!enabled) return;
if (!_enabled) return;
cmd_arg = filamentType;
command(MMU_CMD_F0 + index);
@@ -892,7 +892,7 @@ void MMU2::filament_runout() {
// Load filament into MMU2
void MMU2::load_filament(const uint8_t index) {
if (!enabled) return;
if (!_enabled) return;
command(MMU_CMD_L0 + index);
manage_response(false, false);
@@ -904,7 +904,7 @@ void MMU2::load_filament(const uint8_t index) {
*/
bool MMU2::load_filament_to_nozzle(const uint8_t index) {
if (!enabled) return false;
if (!_enabled) return false;
if (thermalManager.tooColdToExtrude(active_extruder)) {
BUZZ(200, 404);
@@ -940,7 +940,7 @@ void MMU2::load_to_nozzle() {
bool MMU2::eject_filament(const uint8_t index, const bool recover) {
if (!enabled) return false;
if (!_enabled) return false;
if (thermalManager.tooColdToExtrude(active_extruder)) {
BUZZ(200, 404);
@@ -989,7 +989,7 @@ bool MMU2::eject_filament(const uint8_t index, const bool recover) {
*/
bool MMU2::unload() {
if (!enabled) return false;
if (!_enabled) return false;
if (thermalManager.tooColdToExtrude(active_extruder)) {
BUZZ(200, 404);
+2 -1
View File
@@ -43,6 +43,7 @@ public:
static void init();
static void reset();
static inline bool enabled() { return _enabled; }
static void mmu_loop();
static void tool_change(const uint8_t index);
static void tool_change(const char *special);
@@ -88,7 +89,7 @@ private:
static void mmu_continue_loading();
#endif
static bool enabled, ready, mmu_print_saved;
static bool _enabled, ready, mmu_print_saved;
static uint8_t cmd, cmd_arg, last_cmd, extruder;
static int8_t state;
+4
View File
@@ -38,6 +38,8 @@
#include "../gcode/gcode.h"
#endif
#if EITHER(PSU_CONTROL, AUTO_POWER_CONTROL)
Power powerManager;
bool Power::psu_on;
@@ -214,3 +216,5 @@ void Power::power_off() {
#endif
#endif // AUTO_POWER_CONTROL
#endif // PSU_CONTROL || AUTO_POWER_CONTROL
+1 -1
View File
@@ -93,7 +93,7 @@ void GcodeSuite::M852() {
if (!ijk) {
SERIAL_ECHO_START();
SERIAL_ECHOPGM_P(GET_TEXT(MSG_SKEW_FACTOR));
SERIAL_ECHOPGM("Skew Factor");
SERIAL_ECHOPAIR_F(" XY: ", planner.skew_factor.xy, 6);
#if ENABLED(SKEW_CORRECTION_FOR_Z)
SERIAL_ECHOPAIR_F(" XZ: ", planner.skew_factor.xz, 6);
@@ -260,10 +260,10 @@
#endif
case Z_AXIS:
TERN_(Z_HAS_STEALTCHOP, if (index < 2) TMC_SET_PWMTHRS(Z,Z));
TERN_(Z2_HAS_STEALTCHOP, if (index == 0 || index == 2) TMC_SET_PWMTHRS(Z,Z2));
TERN_(Z3_HAS_STEALTCHOP, if (index == 0 || index == 3) TMC_SET_PWMTHRS(Z,Z3));
TERN_(Z4_HAS_STEALTCHOP, if (index == 0 || index == 4) TMC_SET_PWMTHRS(Z,Z4));
TERN_(Z_HAS_STEALTHCHOP, if (index < 2) TMC_SET_PWMTHRS(Z,Z));
TERN_(Z2_HAS_STEALTHCHOP, if (index == 0 || index == 2) TMC_SET_PWMTHRS(Z,Z2));
TERN_(Z3_HAS_STEALTHCHOP, if (index == 0 || index == 3) TMC_SET_PWMTHRS(Z,Z3));
TERN_(Z4_HAS_STEALTHCHOP, if (index == 0 || index == 4) TMC_SET_PWMTHRS(Z,Z4));
break;
#if E_STEPPERS
case E_AXIS: {
+3
View File
@@ -54,6 +54,9 @@ void GcodeSuite::M115() {
"PROTOCOL_VERSION:" PROTOCOL_VERSION " "
"MACHINE_TYPE:" MACHINE_NAME " "
"EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " "
#if LINEAR_AXES != XYZ
"AXIS_COUNT:" STRINGIFY(LINEAR_AXES) " "
#endif
#ifdef MACHINE_UUID
"UUID:" MACHINE_UUID
#endif
+1 -1
View File
@@ -213,7 +213,7 @@
#define LCD_PROGRESS_BAR
#endif
#if ENABLED(TFTGLCD_PANEL_I2C)
#define LCD_I2C_ADDRESS 0x27 // Must be equal to panel's I2C slave addres
#define LCD_I2C_ADDRESS 0x33 // Must be 0x33 for STM32 main boards and equal to panel's I2C slave addres
#endif
#define LCD_USE_I2C_BUZZER // Enable buzzer on LCD, used for both I2C and SPI buses (LiquidTWI2 not required)
#define STD_ENCODER_PULSES_PER_STEP 2
+398 -21
View File
@@ -112,27 +112,9 @@
#undef STEALTHCHOP_E
#endif
#if TEMP_SENSOR_BED == 0
#undef THERMAL_PROTECTION_BED
#undef THERMAL_PROTECTION_BED_PERIOD
#endif
#if TEMP_SENSOR_CHAMBER == 0
#undef THERMAL_PROTECTION_CHAMBER
#endif
#if TEMP_SENSOR_COOLER == 0
#undef THERMAL_PROTECTION_COOLER
#endif
// Usurp a sensor to do redundant readings
#if TEMP_SENSOR_REDUNDANT
#define _HEATER_ID(M) HID_##M
#define HEATER_ID(M) _HEATER_ID(M)
#define REDUNDANT_TEMP_MATCH(M,N) (HEATER_ID(TEMP_SENSOR_REDUNDANT_##M) == _HEATER_ID(N))
#else
#define REDUNDANT_TEMP_MATCH(...) 0
#endif
/**
* Temperature Sensors; define what sensor(s) we have.
*/
// Temperature sensor IDs
#define HID_REDUNDANT -6
@@ -150,6 +132,401 @@
#define HID_E6 6
#define HID_E7 7
#define ANY_TEMP_SENSOR_IS(n) (n == TEMP_SENSOR_0 || n == TEMP_SENSOR_1 || n == TEMP_SENSOR_2 || n == TEMP_SENSOR_3 \
|| n == TEMP_SENSOR_4 || n == TEMP_SENSOR_5 || n == TEMP_SENSOR_6 || n == TEMP_SENSOR_7 \
|| n == TEMP_SENSOR_BED \
|| n == TEMP_SENSOR_PROBE \
|| n == TEMP_SENSOR_CHAMBER \
|| n == TEMP_SENSOR_COOLER \
|| n == TEMP_SENSOR_REDUNDANT )
#if ANY_TEMP_SENSOR_IS(1000)
#define HAS_USER_THERMISTORS 1
#endif
#undef ANY_TEMP_SENSOR_IS
#if TEMP_SENSOR_REDUNDANT
#define _HEATER_ID(M) HID_##M
#define HEATER_ID(M) _HEATER_ID(M)
#define REDUNDANT_TEMP_MATCH(M,N) (HEATER_ID(TEMP_SENSOR_REDUNDANT_##M) == _HEATER_ID(N))
#else
#define REDUNDANT_TEMP_MATCH(...) 0
#endif
#if TEMP_SENSOR_0 == -5 || TEMP_SENSOR_0 == -3 || TEMP_SENSOR_0 == -2
#define TEMP_SENSOR_0_IS_MAX_TC 1
#if TEMP_SENSOR_0 == -5
#define TEMP_SENSOR_0_IS_MAX31865 1
#define TEMP_SENSOR_0_MAX_TC_TMIN 0
#define TEMP_SENSOR_0_MAX_TC_TMAX 1024
#ifndef MAX31865_SENSOR_WIRES_0
#define MAX31865_SENSOR_WIRES_0 2
#endif
#elif TEMP_SENSOR_0 == -3
#define TEMP_SENSOR_0_IS_MAX31855 1
#define TEMP_SENSOR_0_MAX_TC_TMIN -270
#define TEMP_SENSOR_0_MAX_TC_TMAX 1800
#elif TEMP_SENSOR_0 == -2
#define TEMP_SENSOR_0_IS_MAX6675 1
#define TEMP_SENSOR_0_MAX_TC_TMIN 0
#define TEMP_SENSOR_0_MAX_TC_TMAX 1024
#endif
#elif TEMP_SENSOR_0 == -4
#define TEMP_SENSOR_0_IS_AD8495 1
#elif TEMP_SENSOR_0 == -1
#define TEMP_SENSOR_0_IS_AD595 1
#elif TEMP_SENSOR_0 > 0
#define TEMP_SENSOR_0_IS_THERMISTOR 1
#if TEMP_SENSOR_0 == 1000
#define TEMP_SENSOR_0_IS_CUSTOM 1
#elif TEMP_SENSOR_0 == 998 || TEMP_SENSOR_0 == 999
#define TEMP_SENSOR_0_IS_DUMMY 1
#endif
#else
#undef HEATER_0_MINTEMP
#undef HEATER_0_MAXTEMP
#endif
#if TEMP_SENSOR_1 == -5 || TEMP_SENSOR_1 == -3 || TEMP_SENSOR_1 == -2
#define TEMP_SENSOR_1_IS_MAX_TC 1
#if TEMP_SENSOR_1 == -5
#define TEMP_SENSOR_1_IS_MAX31865 1
#define TEMP_SENSOR_1_MAX_TC_TMIN 0
#define TEMP_SENSOR_1_MAX_TC_TMAX 1024
#ifndef MAX31865_SENSOR_WIRES_1
#define MAX31865_SENSOR_WIRES_1 2
#endif
#elif TEMP_SENSOR_1 == -3
#define TEMP_SENSOR_1_IS_MAX31855 1
#define TEMP_SENSOR_1_MAX_TC_TMIN -270
#define TEMP_SENSOR_1_MAX_TC_TMAX 1800
#elif TEMP_SENSOR_1 == -2
#define TEMP_SENSOR_1_IS_MAX6675 1
#define TEMP_SENSOR_1_MAX_TC_TMIN 0
#define TEMP_SENSOR_1_MAX_TC_TMAX 1024
#endif
#if TEMP_SENSOR_1 != TEMP_SENSOR_0
#if TEMP_SENSOR_1 == -5
#error "If MAX31865 Thermocouple (-5) is used for TEMP_SENSOR_1 then TEMP_SENSOR_0 must match."
#elif TEMP_SENSOR_1 == -3
#error "If MAX31855 Thermocouple (-3) is used for TEMP_SENSOR_1 then TEMP_SENSOR_0 must match."
#elif TEMP_SENSOR_1 == -2
#error "If MAX6675 Thermocouple (-2) is used for TEMP_SENSOR_1 then TEMP_SENSOR_0 must match."
#endif
#endif
#elif TEMP_SENSOR_1 == -4
#define TEMP_SENSOR_1_IS_AD8495 1
#elif TEMP_SENSOR_1 == -1
#define TEMP_SENSOR_1_IS_AD595 1
#elif TEMP_SENSOR_1 > 0
#define TEMP_SENSOR_1_IS_THERMISTOR 1
#if TEMP_SENSOR_1 == 1000
#define TEMP_SENSOR_1_IS_CUSTOM 1
#elif TEMP_SENSOR_1 == 998 || TEMP_SENSOR_1 == 999
#define TEMP_SENSOR_1_IS_DUMMY 1
#endif
#else
#undef HEATER_1_MINTEMP
#undef HEATER_1_MAXTEMP
#endif
#if TEMP_SENSOR_REDUNDANT == -5 || TEMP_SENSOR_REDUNDANT == -3 || TEMP_SENSOR_REDUNDANT == -2
#define TEMP_SENSOR_REDUNDANT_IS_MAX_TC 1
#if TEMP_SENSOR_REDUNDANT == -5
#if !REDUNDANT_TEMP_MATCH(SOURCE, E0) && !REDUNDANT_TEMP_MATCH(SOURCE, E1)
#error "MAX31865 Thermocouples (-5) not supported for TEMP_SENSOR_REDUNDANT_SOURCE other than TEMP_SENSOR_0/TEMP_SENSOR_1 (0/1)."
#endif
#define TEMP_SENSOR_REDUNDANT_IS_MAX31865 1
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN 0
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX 1024
#elif TEMP_SENSOR_REDUNDANT == -3
#if !REDUNDANT_TEMP_MATCH(SOURCE, E0) && !REDUNDANT_TEMP_MATCH(SOURCE, E1)
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_REDUNDANT_SOURCE other than TEMP_SENSOR_0/TEMP_SENSOR_1 (0/1)."
#endif
#define TEMP_SENSOR_REDUNDANT_IS_MAX31855 1
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN -270
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX 1800
#elif TEMP_SENSOR_REDUNDANT == -2
#if !REDUNDANT_TEMP_MATCH(SOURCE, E0) && !REDUNDANT_TEMP_MATCH(SOURCE, E1)
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_REDUNDANT_SOURCE other than TEMP_SENSOR_0/TEMP_SENSOR_1 (0/1)."
#endif
#define TEMP_SENSOR_REDUNDANT_IS_MAX6675 1
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN 0
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX 1024
#endif
// mimic setting up the source TEMP_SENSOR
#if REDUNDANT_TEMP_MATCH(SOURCE, E0)
#define TEMP_SENSOR_0_MAX_TC_TMIN TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN
#define TEMP_SENSOR_0_MAX_TC_TMAX TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX
#ifndef MAX31865_SENSOR_WIRES_0
#define MAX31865_SENSOR_WIRES_0 2
#endif
#elif REDUNDANT_TEMP_MATCH(SOURCE, E1)
#define TEMP_SENSOR_1_MAX_TC_TMIN TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN
#define TEMP_SENSOR_1_MAX_TC_TMAX TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX
#ifndef MAX31865_SENSOR_WIRES_1
#define MAX31865_SENSOR_WIRES_1 2
#endif
#endif
#if (TEMP_SENSOR_0_IS_MAX_TC && TEMP_SENSOR_REDUNDANT != TEMP_SENSOR_0) || (TEMP_SENSOR_1_IS_MAX_TC && TEMP_SENSOR_REDUNDANT != TEMP_SENSOR_1)
#if TEMP_SENSOR_REDUNDANT == -5
#error "If MAX31865 Thermocouple (-5) is used for TEMP_SENSOR_0/TEMP_SENSOR_1 then TEMP_SENSOR_REDUNDANT must match."
#elif TEMP_SENSOR_REDUNDANT == -3
#error "If MAX31855 Thermocouple (-3) is used for TEMP_SENSOR_0/TEMP_SENSOR_1 then TEMP_SENSOR_REDUNDANT must match."
#elif TEMP_SENSOR_REDUNDANT == -2
#error "If MAX6675 Thermocouple (-2) is used for TEMP_SENSOR_0/TEMP_SENSOR_1 then TEMP_SENSOR_REDUNDANT must match."
#endif
#endif
#elif TEMP_SENSOR_REDUNDANT == -4
#define TEMP_SENSOR_REDUNDANT_IS_AD8495 1
#elif TEMP_SENSOR_REDUNDANT == -1
#define TEMP_SENSOR_REDUNDANT_IS_AD595 1
#elif TEMP_SENSOR_REDUNDANT > 0
#define TEMP_SENSOR_REDUNDANT_IS_THERMISTOR 1
#if TEMP_SENSOR_REDUNDANT == 1000
#define TEMP_SENSOR_REDUNDANT_IS_CUSTOM 1
#elif TEMP_SENSOR_REDUNDANT == 998 || TEMP_SENSOR_REDUNDANT == 999
#error "Dummy sensors are not supported for TEMP_SENSOR_REDUNDANT."
#endif
#endif
#if TEMP_SENSOR_0_IS_MAX_TC || TEMP_SENSOR_1_IS_MAX_TC || TEMP_SENSOR_REDUNDANT_IS_MAX_TC
#define HAS_MAX_TC 1
#endif
#if TEMP_SENSOR_0_IS_MAX6675 || TEMP_SENSOR_1_IS_MAX6675 || TEMP_SENSOR_REDUNDANT_IS_MAX6675
#define HAS_MAX6675 1
#endif
#if TEMP_SENSOR_0_IS_MAX31855 || TEMP_SENSOR_1_IS_MAX31855 || TEMP_SENSOR_REDUNDANT_IS_MAX31855
#define HAS_MAX31855 1
#endif
#if TEMP_SENSOR_0_IS_MAX31865 || TEMP_SENSOR_1_IS_MAX31865 || TEMP_SENSOR_REDUNDANT_IS_MAX31865
#define HAS_MAX31865 1
#endif
#if TEMP_SENSOR_2 == -4
#define TEMP_SENSOR_2_IS_AD8495 1
#elif TEMP_SENSOR_2 == -3
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_2."
#elif TEMP_SENSOR_2 == -2
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_2."
#elif TEMP_SENSOR_2 == -1
#define TEMP_SENSOR_2_IS_AD595 1
#elif TEMP_SENSOR_2 > 0
#define TEMP_SENSOR_2_IS_THERMISTOR 1
#if TEMP_SENSOR_2 == 1000
#define TEMP_SENSOR_2_IS_CUSTOM 1
#elif TEMP_SENSOR_2 == 998 || TEMP_SENSOR_2 == 999
#define TEMP_SENSOR_2_IS_DUMMY 1
#endif
#else
#undef HEATER_2_MINTEMP
#undef HEATER_2_MAXTEMP
#endif
#if TEMP_SENSOR_3 == -4
#define TEMP_SENSOR_3_IS_AD8495 1
#elif TEMP_SENSOR_3 == -3
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_3."
#elif TEMP_SENSOR_3 == -2
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_3."
#elif TEMP_SENSOR_3 == -1
#define TEMP_SENSOR_3_IS_AD595 1
#elif TEMP_SENSOR_3 > 0
#define TEMP_SENSOR_3_IS_THERMISTOR 1
#if TEMP_SENSOR_3 == 1000
#define TEMP_SENSOR_3_IS_CUSTOM 1
#elif TEMP_SENSOR_3 == 998 || TEMP_SENSOR_3 == 999
#define TEMP_SENSOR_3_IS_DUMMY 1
#endif
#else
#undef HEATER_3_MINTEMP
#undef HEATER_3_MAXTEMP
#endif
#if TEMP_SENSOR_4 == -4
#define TEMP_SENSOR_4_IS_AD8495 1
#elif TEMP_SENSOR_4 == -3
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_4."
#elif TEMP_SENSOR_4 == -2
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_4."
#elif TEMP_SENSOR_4 == -1
#define TEMP_SENSOR_4_IS_AD595 1
#elif TEMP_SENSOR_4 > 0
#define TEMP_SENSOR_4_IS_THERMISTOR 1
#if TEMP_SENSOR_4 == 1000
#define TEMP_SENSOR_4_IS_CUSTOM 1
#elif TEMP_SENSOR_4 == 998 || TEMP_SENSOR_4 == 999
#define TEMP_SENSOR_4_IS_DUMMY 1
#endif
#else
#undef HEATER_4_MINTEMP
#undef HEATER_4_MAXTEMP
#endif
#if TEMP_SENSOR_5 == -4
#define TEMP_SENSOR_5_IS_AD8495 1
#elif TEMP_SENSOR_5 == -3
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_5."
#elif TEMP_SENSOR_5 == -2
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_5."
#elif TEMP_SENSOR_5 == -1
#define TEMP_SENSOR_5_IS_AD595 1
#elif TEMP_SENSOR_5 > 0
#define TEMP_SENSOR_5_IS_THERMISTOR 1
#if TEMP_SENSOR_5 == 1000
#define TEMP_SENSOR_5_IS_CUSTOM 1
#elif TEMP_SENSOR_5 == 998 || TEMP_SENSOR_5 == 999
#define TEMP_SENSOR_5_IS_DUMMY 1
#endif
#else
#undef HEATER_5_MINTEMP
#undef HEATER_5_MAXTEMP
#endif
#if TEMP_SENSOR_6 == -4
#define TEMP_SENSOR_6_IS_AD8495 1
#elif TEMP_SENSOR_6 == -3
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_6."
#elif TEMP_SENSOR_6 == -2
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_6."
#elif TEMP_SENSOR_6 == -1
#define TEMP_SENSOR_6_IS_AD595 1
#elif TEMP_SENSOR_6 > 0
#define TEMP_SENSOR_6_IS_THERMISTOR 1
#if TEMP_SENSOR_6 == 1000
#define TEMP_SENSOR_6_IS_CUSTOM 1
#elif TEMP_SENSOR_6 == 998 || TEMP_SENSOR_6 == 999
#define TEMP_SENSOR_6_IS_DUMMY 1
#endif
#else
#undef HEATER_6_MINTEMP
#undef HEATER_6_MAXTEMP
#endif
#if TEMP_SENSOR_7 == -4
#define TEMP_SENSOR_7_IS_AD8495 1
#elif TEMP_SENSOR_7 == -3
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_7."
#elif TEMP_SENSOR_7 == -2
#error "MAX7775 Thermocouples (-2) not supported for TEMP_SENSOR_7."
#elif TEMP_SENSOR_7 == -1
#define TEMP_SENSOR_7_IS_AD595 1
#elif TEMP_SENSOR_7 > 0
#define TEMP_SENSOR_7_IS_THERMISTOR 1
#if TEMP_SENSOR_7 == 1000
#define TEMP_SENSOR_7_IS_CUSTOM 1
#elif TEMP_SENSOR_7 == 998 || TEMP_SENSOR_7 == 999
#define TEMP_SENSOR_7_IS_DUMMY 1
#endif
#else
#undef HEATER_7_MINTEMP
#undef HEATER_7_MAXTEMP
#endif
#if TEMP_SENSOR_BED == -4
#define TEMP_SENSOR_BED_IS_AD8495 1
#elif TEMP_SENSOR_BED == -3
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_BED."
#elif TEMP_SENSOR_BED == -2
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_BED."
#elif TEMP_SENSOR_BED == -1
#define TEMP_SENSOR_BED_IS_AD595 1
#elif TEMP_SENSOR_BED > 0
#define TEMP_SENSOR_BED_IS_THERMISTOR 1
#if TEMP_SENSOR_BED == 1000
#define TEMP_SENSOR_BED_IS_CUSTOM 1
#elif TEMP_SENSOR_BED == 998 || TEMP_SENSOR_BED == 999
#define TEMP_SENSOR_BED_IS_DUMMY 1
#endif
#else
#undef THERMAL_PROTECTION_BED
#undef THERMAL_PROTECTION_BED_PERIOD
#undef BED_MINTEMP
#undef BED_MAXTEMP
#endif
#if TEMP_SENSOR_CHAMBER == -4
#define TEMP_SENSOR_CHAMBER_IS_AD8495 1
#elif TEMP_SENSOR_CHAMBER == -3
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_CHAMBER."
#elif TEMP_SENSOR_CHAMBER == -2
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_CHAMBER."
#elif TEMP_SENSOR_CHAMBER == -1
#define TEMP_SENSOR_CHAMBER_IS_AD595 1
#elif TEMP_SENSOR_CHAMBER > 0
#define TEMP_SENSOR_CHAMBER_IS_THERMISTOR 1
#if TEMP_SENSOR_CHAMBER == 1000
#define TEMP_SENSOR_CHAMBER_IS_CUSTOM 1
#elif TEMP_SENSOR_CHAMBER == 998 || TEMP_SENSOR_CHAMBER == 999
#define TEMP_SENSOR_CHAMBER_IS_DUMMY 1
#endif
#else
#undef THERMAL_PROTECTION_CHAMBER
#undef CHAMBER_MINTEMP
#undef CHAMBER_MAXTEMP
#endif
#if TEMP_SENSOR_COOLER == -4
#define TEMP_SENSOR_COOLER_IS_AD8495 1
#elif TEMP_SENSOR_COOLER == -3
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_COOLER."
#elif TEMP_SENSOR_COOLER == -2
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_COOLER."
#elif TEMP_SENSOR_COOLER == -1
#define TEMP_SENSOR_COOLER_IS_AD595 1
#elif TEMP_SENSOR_COOLER > 0
#define TEMP_SENSOR_COOLER_IS_THERMISTOR 1
#if TEMP_SENSOR_COOLER == 1000
#define TEMP_SENSOR_COOLER_IS_CUSTOM 1
#elif TEMP_SENSOR_COOLER == 998 || TEMP_SENSOR_COOLER == 999
#define TEMP_SENSOR_COOLER_IS_DUMMY 1
#endif
#else
#undef THERMAL_PROTECTION_COOLER
#undef COOLER_MINTEMP
#undef COOLER_MAXTEMP
#endif
#if TEMP_SENSOR_PROBE == -4
#define TEMP_SENSOR_PROBE_IS_AD8495 1
#elif TEMP_SENSOR_PROBE == -3
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_PROBE."
#elif TEMP_SENSOR_PROBE == -2
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_PROBE."
#elif TEMP_SENSOR_PROBE == -1
#define TEMP_SENSOR_PROBE_IS_AD595 1
#elif TEMP_SENSOR_PROBE > 0
#define TEMP_SENSOR_PROBE_IS_THERMISTOR 1
#if TEMP_SENSOR_PROBE == 1000
#define TEMP_SENSOR_PROBE_IS_CUSTOM 1
#elif TEMP_SENSOR_PROBE == 998 || TEMP_SENSOR_PROBE == 999
#define TEMP_SENSOR_PROBE_IS_DUMMY 1
#endif
#endif
#if TEMP_SENSOR_BOARD == -4
#define TEMP_SENSOR_BOARD_IS_AD8495 1
#elif TEMP_SENSOR_BOARD == -3
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_BOARD."
#elif TEMP_SENSOR_BOARD == -2
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_BOARD."
#elif TEMP_SENSOR_BOARD == -1
#define TEMP_SENSOR_BOARD_IS_AD595 1
#elif TEMP_SENSOR_BOARD > 0
#define TEMP_SENSOR_BOARD_IS_THERMISTOR 1
#if TEMP_SENSOR_BOARD == 1000
#define TEMP_SENSOR_BOARD_IS_CUSTOM 1
#elif TEMP_SENSOR_BOARD == 998 || TEMP_SENSOR_BOARD == 999
#define TEMP_SENSOR_BOARD_IS_DUMMY 1
#endif
#endif
#if ENABLED(MIXING_EXTRUDER) && (ENABLED(RETRACT_SYNC_MIXING) || BOTH(FILAMENT_LOAD_UNLOAD_GCODES, FILAMENT_UNLOAD_ALL_EXTRUDERS))
#define HAS_MIXER_SYNC_CHANNEL 1
#endif
+4 -388
View File
@@ -513,22 +513,9 @@
#endif
/**
* Temp Sensor defines
* Temp Sensor defines; set up pins as needed.
*/
#define ANY_TEMP_SENSOR_IS(n) ( \
n == TEMP_SENSOR_0 || n == TEMP_SENSOR_1 || n == TEMP_SENSOR_2 || n == TEMP_SENSOR_3 \
|| n == TEMP_SENSOR_4 || n == TEMP_SENSOR_5 || n == TEMP_SENSOR_6 || n == TEMP_SENSOR_7 \
|| n == TEMP_SENSOR_BED \
|| n == TEMP_SENSOR_PROBE \
|| n == TEMP_SENSOR_CHAMBER \
|| n == TEMP_SENSOR_COOLER \
|| n == TEMP_SENSOR_REDUNDANT )
#if ANY_TEMP_SENSOR_IS(1000)
#define HAS_USER_THERMISTORS 1
#endif
#undef ANY_TEMP_SENSOR_IS
// Usurp a sensor to do redundant readings
#if TEMP_SENSOR_REDUNDANT
#ifndef TEMP_SENSOR_REDUNDANT_SOURCE
@@ -617,166 +604,9 @@
#endif
#endif
#if TEMP_SENSOR_0 == -5 || TEMP_SENSOR_0 == -3 || TEMP_SENSOR_0 == -2
#define TEMP_SENSOR_0_IS_MAX_TC 1
#if TEMP_SENSOR_0 == -5
#define TEMP_SENSOR_0_IS_MAX31865 1
#define TEMP_SENSOR_0_MAX_TC_TMIN 0
#define TEMP_SENSOR_0_MAX_TC_TMAX 1024
#ifndef MAX31865_SENSOR_WIRES_0
#define MAX31865_SENSOR_WIRES_0 2
#endif
#elif TEMP_SENSOR_0 == -3
#define TEMP_SENSOR_0_IS_MAX31855 1
#define TEMP_SENSOR_0_MAX_TC_TMIN -270
#define TEMP_SENSOR_0_MAX_TC_TMAX 1800
#elif TEMP_SENSOR_0 == -2
#define TEMP_SENSOR_0_IS_MAX6675 1
#define TEMP_SENSOR_0_MAX_TC_TMIN 0
#define TEMP_SENSOR_0_MAX_TC_TMAX 1024
#endif
#elif TEMP_SENSOR_0 == -4
#define TEMP_SENSOR_0_IS_AD8495 1
#elif TEMP_SENSOR_0 == -1
#define TEMP_SENSOR_0_IS_AD595 1
#elif TEMP_SENSOR_0 > 0
#define TEMP_SENSOR_0_IS_THERMISTOR 1
#if TEMP_SENSOR_0 == 1000
#define TEMP_SENSOR_0_IS_CUSTOM 1
#elif TEMP_SENSOR_0 == 998 || TEMP_SENSOR_0 == 999
#define TEMP_SENSOR_0_IS_DUMMY 1
#endif
#else
#undef HEATER_0_MINTEMP
#undef HEATER_0_MAXTEMP
#endif
#if TEMP_SENSOR_1 == -5 || TEMP_SENSOR_1 == -3 || TEMP_SENSOR_1 == -2
#define TEMP_SENSOR_1_IS_MAX_TC 1
#if TEMP_SENSOR_1 == -5
#define TEMP_SENSOR_1_IS_MAX31865 1
#define TEMP_SENSOR_1_MAX_TC_TMIN 0
#define TEMP_SENSOR_1_MAX_TC_TMAX 1024
#ifndef MAX31865_SENSOR_WIRES_1
#define MAX31865_SENSOR_WIRES_1 2
#endif
#elif TEMP_SENSOR_1 == -3
#define TEMP_SENSOR_1_IS_MAX31855 1
#define TEMP_SENSOR_1_MAX_TC_TMIN -270
#define TEMP_SENSOR_1_MAX_TC_TMAX 1800
#elif TEMP_SENSOR_1 == -2
#define TEMP_SENSOR_1_IS_MAX6675 1
#define TEMP_SENSOR_1_MAX_TC_TMIN 0
#define TEMP_SENSOR_1_MAX_TC_TMAX 1024
#endif
#if TEMP_SENSOR_1 != TEMP_SENSOR_0
#if TEMP_SENSOR_1 == -5
#error "If MAX31865 Thermocouple (-5) is used for TEMP_SENSOR_1 then TEMP_SENSOR_0 must match."
#elif TEMP_SENSOR_1 == -3
#error "If MAX31855 Thermocouple (-3) is used for TEMP_SENSOR_1 then TEMP_SENSOR_0 must match."
#elif TEMP_SENSOR_1 == -2
#error "If MAX6675 Thermocouple (-2) is used for TEMP_SENSOR_1 then TEMP_SENSOR_0 must match."
#endif
#endif
#elif TEMP_SENSOR_1 == -4
#define TEMP_SENSOR_1_IS_AD8495 1
#elif TEMP_SENSOR_1 == -1
#define TEMP_SENSOR_1_IS_AD595 1
#elif TEMP_SENSOR_1 > 0
#define TEMP_SENSOR_1_IS_THERMISTOR 1
#if TEMP_SENSOR_1 == 1000
#define TEMP_SENSOR_1_IS_CUSTOM 1
#elif TEMP_SENSOR_1 == 998 || TEMP_SENSOR_1 == 999
#define TEMP_SENSOR_1_IS_DUMMY 1
#endif
#else
#undef HEATER_1_MINTEMP
#undef HEATER_1_MAXTEMP
#endif
#if TEMP_SENSOR_REDUNDANT == -5 || TEMP_SENSOR_REDUNDANT == -3 || TEMP_SENSOR_REDUNDANT == -2
#define TEMP_SENSOR_REDUNDANT_IS_MAX_TC 1
#if TEMP_SENSOR_REDUNDANT == -5
#if !REDUNDANT_TEMP_MATCH(SOURCE, E0) && !REDUNDANT_TEMP_MATCH(SOURCE, E1)
#error "MAX31865 Thermocouples (-5) not supported for TEMP_SENSOR_REDUNDANT_SOURCE other than TEMP_SENSOR_0/TEMP_SENSOR_1 (0/1)."
#endif
#define TEMP_SENSOR_REDUNDANT_IS_MAX31865 1
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN 0
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX 1024
#elif TEMP_SENSOR_REDUNDANT == -3
#if !REDUNDANT_TEMP_MATCH(SOURCE, E0) && !REDUNDANT_TEMP_MATCH(SOURCE, E1)
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_REDUNDANT_SOURCE other than TEMP_SENSOR_0/TEMP_SENSOR_1 (0/1)."
#endif
#define TEMP_SENSOR_REDUNDANT_IS_MAX31855 1
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN -270
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX 1800
#elif TEMP_SENSOR_REDUNDANT == -2
#if !REDUNDANT_TEMP_MATCH(SOURCE, E0) && !REDUNDANT_TEMP_MATCH(SOURCE, E1)
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_REDUNDANT_SOURCE other than TEMP_SENSOR_0/TEMP_SENSOR_1 (0/1)."
#endif
#define TEMP_SENSOR_REDUNDANT_IS_MAX6675 1
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN 0
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX 1024
#endif
// mimic setting up the source TEMP_SENSOR
#if REDUNDANT_TEMP_MATCH(SOURCE, E0)
#define TEMP_SENSOR_0_MAX_TC_TMIN TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN
#define TEMP_SENSOR_0_MAX_TC_TMAX TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX
#ifndef MAX31865_SENSOR_WIRES_0
#define MAX31865_SENSOR_WIRES_0 2
#endif
#elif REDUNDANT_TEMP_MATCH(SOURCE, E1)
#define TEMP_SENSOR_1_MAX_TC_TMIN TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN
#define TEMP_SENSOR_1_MAX_TC_TMAX TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX
#ifndef MAX31865_SENSOR_WIRES_1
#define MAX31865_SENSOR_WIRES_1 2
#endif
#endif
#if (TEMP_SENSOR_0_IS_MAX_TC && TEMP_SENSOR_REDUNDANT != TEMP_SENSOR_0) || (TEMP_SENSOR_1_IS_MAX_TC && TEMP_SENSOR_REDUNDANT != TEMP_SENSOR_1)
#if TEMP_SENSOR_REDUNDANT == -5
#error "If MAX31865 Thermocouple (-5) is used for TEMP_SENSOR_0/TEMP_SENSOR_1 then TEMP_SENSOR_REDUNDANT must match."
#elif TEMP_SENSOR_REDUNDANT == -3
#error "If MAX31855 Thermocouple (-3) is used for TEMP_SENSOR_0/TEMP_SENSOR_1 then TEMP_SENSOR_REDUNDANT must match."
#elif TEMP_SENSOR_REDUNDANT == -2
#error "If MAX6675 Thermocouple (-2) is used for TEMP_SENSOR_0/TEMP_SENSOR_1 then TEMP_SENSOR_REDUNDANT must match."
#endif
#endif
#elif TEMP_SENSOR_REDUNDANT == -4
#define TEMP_SENSOR_REDUNDANT_IS_AD8495 1
#elif TEMP_SENSOR_REDUNDANT == -1
#define TEMP_SENSOR_REDUNDANT_IS_AD595 1
#elif TEMP_SENSOR_REDUNDANT > 0
#define TEMP_SENSOR_REDUNDANT_IS_THERMISTOR 1
#if TEMP_SENSOR_REDUNDANT == 1000
#define TEMP_SENSOR_REDUNDANT_IS_CUSTOM 1
#elif TEMP_SENSOR_REDUNDANT == 998 || TEMP_SENSOR_REDUNDANT == 999
#error "Dummy sensors are not supported for TEMP_SENSOR_REDUNDANT."
#endif
#endif
#if TEMP_SENSOR_0_IS_MAX_TC || TEMP_SENSOR_1_IS_MAX_TC || TEMP_SENSOR_REDUNDANT_IS_MAX_TC
#define HAS_MAX_TC 1
#endif
#if TEMP_SENSOR_0_IS_MAX6675 || TEMP_SENSOR_1_IS_MAX6675 || TEMP_SENSOR_REDUNDANT_IS_MAX6675
#define HAS_MAX6675 1
#endif
#if TEMP_SENSOR_0_IS_MAX31855 || TEMP_SENSOR_1_IS_MAX31855 || TEMP_SENSOR_REDUNDANT_IS_MAX31855
#define HAS_MAX31855 1
#endif
#if TEMP_SENSOR_0_IS_MAX31865 || TEMP_SENSOR_1_IS_MAX31865 || TEMP_SENSOR_REDUNDANT_IS_MAX31865
#define HAS_MAX31865 1
#endif
//
// Compatibility layer for MAX (SPI) temp boards
//
/**
* Compatibility layer for MAX (SPI) temp boards
*/
#if HAS_MAX_TC
// Translate old _SS, _CS, _SCK, _DO, _DI, _MISO, and _MOSI PIN defines.
@@ -938,220 +768,6 @@
#endif //HAS_MAX_TC
#if TEMP_SENSOR_2 == -4
#define TEMP_SENSOR_2_IS_AD8495 1
#elif TEMP_SENSOR_2 == -3
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_2."
#elif TEMP_SENSOR_2 == -2
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_2."
#elif TEMP_SENSOR_2 == -1
#define TEMP_SENSOR_2_IS_AD595 1
#elif TEMP_SENSOR_2 > 0
#define TEMP_SENSOR_2_IS_THERMISTOR 1
#if TEMP_SENSOR_2 == 1000
#define TEMP_SENSOR_2_IS_CUSTOM 1
#elif TEMP_SENSOR_2 == 998 || TEMP_SENSOR_2 == 999
#define TEMP_SENSOR_2_IS_DUMMY 1
#endif
#else
#undef HEATER_2_MINTEMP
#undef HEATER_2_MAXTEMP
#endif
#if TEMP_SENSOR_3 == -4
#define TEMP_SENSOR_3_IS_AD8495 1
#elif TEMP_SENSOR_3 == -3
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_3."
#elif TEMP_SENSOR_3 == -2
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_3."
#elif TEMP_SENSOR_3 == -1
#define TEMP_SENSOR_3_IS_AD595 1
#elif TEMP_SENSOR_3 > 0
#define TEMP_SENSOR_3_IS_THERMISTOR 1
#if TEMP_SENSOR_3 == 1000
#define TEMP_SENSOR_3_IS_CUSTOM 1
#elif TEMP_SENSOR_3 == 998 || TEMP_SENSOR_3 == 999
#define TEMP_SENSOR_3_IS_DUMMY 1
#endif
#else
#undef HEATER_3_MINTEMP
#undef HEATER_3_MAXTEMP
#endif
#if TEMP_SENSOR_4 == -4
#define TEMP_SENSOR_4_IS_AD8495 1
#elif TEMP_SENSOR_4 == -3
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_4."
#elif TEMP_SENSOR_4 == -2
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_4."
#elif TEMP_SENSOR_4 == -1
#define TEMP_SENSOR_4_IS_AD595 1
#elif TEMP_SENSOR_4 > 0
#define TEMP_SENSOR_4_IS_THERMISTOR 1
#if TEMP_SENSOR_4 == 1000
#define TEMP_SENSOR_4_IS_CUSTOM 1
#elif TEMP_SENSOR_4 == 998 || TEMP_SENSOR_4 == 999
#define TEMP_SENSOR_4_IS_DUMMY 1
#endif
#else
#undef HEATER_4_MINTEMP
#undef HEATER_4_MAXTEMP
#endif
#if TEMP_SENSOR_5 == -4
#define TEMP_SENSOR_5_IS_AD8495 1
#elif TEMP_SENSOR_5 == -3
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_5."
#elif TEMP_SENSOR_5 == -2
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_5."
#elif TEMP_SENSOR_5 == -1
#define TEMP_SENSOR_5_IS_AD595 1
#elif TEMP_SENSOR_5 > 0
#define TEMP_SENSOR_5_IS_THERMISTOR 1
#if TEMP_SENSOR_5 == 1000
#define TEMP_SENSOR_5_IS_CUSTOM 1
#elif TEMP_SENSOR_5 == 998 || TEMP_SENSOR_5 == 999
#define TEMP_SENSOR_5_IS_DUMMY 1
#endif
#else
#undef HEATER_5_MINTEMP
#undef HEATER_5_MAXTEMP
#endif
#if TEMP_SENSOR_6 == -4
#define TEMP_SENSOR_6_IS_AD8495 1
#elif TEMP_SENSOR_6 == -3
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_6."
#elif TEMP_SENSOR_6 == -2
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_6."
#elif TEMP_SENSOR_6 == -1
#define TEMP_SENSOR_6_IS_AD595 1
#elif TEMP_SENSOR_6 > 0
#define TEMP_SENSOR_6_IS_THERMISTOR 1
#if TEMP_SENSOR_6 == 1000
#define TEMP_SENSOR_6_IS_CUSTOM 1
#elif TEMP_SENSOR_6 == 998 || TEMP_SENSOR_6 == 999
#define TEMP_SENSOR_6_IS_DUMMY 1
#endif
#else
#undef HEATER_6_MINTEMP
#undef HEATER_6_MAXTEMP
#endif
#if TEMP_SENSOR_7 == -4
#define TEMP_SENSOR_7_IS_AD8495 1
#elif TEMP_SENSOR_7 == -3
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_7."
#elif TEMP_SENSOR_7 == -2
#error "MAX7775 Thermocouples (-2) not supported for TEMP_SENSOR_7."
#elif TEMP_SENSOR_7 == -1
#define TEMP_SENSOR_7_IS_AD595 1
#elif TEMP_SENSOR_7 > 0
#define TEMP_SENSOR_7_IS_THERMISTOR 1
#if TEMP_SENSOR_7 == 1000
#define TEMP_SENSOR_7_IS_CUSTOM 1
#elif TEMP_SENSOR_7 == 998 || TEMP_SENSOR_7 == 999
#define TEMP_SENSOR_7_IS_DUMMY 1
#endif
#else
#undef HEATER_7_MINTEMP
#undef HEATER_7_MAXTEMP
#endif
#if TEMP_SENSOR_BED == -4
#define TEMP_SENSOR_BED_IS_AD8495 1
#elif TEMP_SENSOR_BED == -3
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_BED."
#elif TEMP_SENSOR_BED == -2
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_BED."
#elif TEMP_SENSOR_BED == -1
#define TEMP_SENSOR_BED_IS_AD595 1
#elif TEMP_SENSOR_BED > 0
#define TEMP_SENSOR_BED_IS_THERMISTOR 1
#if TEMP_SENSOR_BED == 1000
#define TEMP_SENSOR_BED_IS_CUSTOM 1
#elif TEMP_SENSOR_BED == 998 || TEMP_SENSOR_BED == 999
#define TEMP_SENSOR_BED_IS_DUMMY 1
#endif
#else
#undef BED_MINTEMP
#undef BED_MAXTEMP
#endif
#if TEMP_SENSOR_CHAMBER == -4
#define TEMP_SENSOR_CHAMBER_IS_AD8495 1
#elif TEMP_SENSOR_CHAMBER == -3
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_CHAMBER."
#elif TEMP_SENSOR_CHAMBER == -2
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_CHAMBER."
#elif TEMP_SENSOR_CHAMBER == -1
#define TEMP_SENSOR_CHAMBER_IS_AD595 1
#elif TEMP_SENSOR_CHAMBER > 0
#define TEMP_SENSOR_CHAMBER_IS_THERMISTOR 1
#if TEMP_SENSOR_CHAMBER == 1000
#define TEMP_SENSOR_CHAMBER_IS_CUSTOM 1
#elif TEMP_SENSOR_CHAMBER == 998 || TEMP_SENSOR_CHAMBER == 999
#define TEMP_SENSOR_CHAMBER_IS_DUMMY 1
#endif
#else
#undef CHAMBER_MINTEMP
#undef CHAMBER_MAXTEMP
#endif
#if TEMP_SENSOR_COOLER == -4
#define TEMP_SENSOR_COOLER_IS_AD8495 1
#elif TEMP_SENSOR_COOLER == -3
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_COOLER."
#elif TEMP_SENSOR_COOLER == -2
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_COOLER."
#elif TEMP_SENSOR_COOLER == -1
#define TEMP_SENSOR_COOLER_IS_AD595 1
#elif TEMP_SENSOR_COOLER > 0
#define TEMP_SENSOR_COOLER_IS_THERMISTOR 1
#if TEMP_SENSOR_COOLER == 1000
#define TEMP_SENSOR_COOLER_IS_CUSTOM 1
#elif TEMP_SENSOR_COOLER == 998 || TEMP_SENSOR_COOLER == 999
#define TEMP_SENSOR_COOLER_IS_DUMMY 1
#endif
#else
#undef COOLER_MINTEMP
#undef COOLER_MAXTEMP
#endif
#if TEMP_SENSOR_PROBE == -4
#define TEMP_SENSOR_PROBE_IS_AD8495 1
#elif TEMP_SENSOR_PROBE == -3
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_PROBE."
#elif TEMP_SENSOR_PROBE == -2
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_PROBE."
#elif TEMP_SENSOR_PROBE == -1
#define TEMP_SENSOR_PROBE_IS_AD595 1
#elif TEMP_SENSOR_PROBE > 0
#define TEMP_SENSOR_PROBE_IS_THERMISTOR 1
#if TEMP_SENSOR_PROBE == 1000
#define TEMP_SENSOR_PROBE_IS_CUSTOM 1
#elif TEMP_SENSOR_PROBE == 998 || TEMP_SENSOR_PROBE == 999
#define TEMP_SENSOR_PROBE_IS_DUMMY 1
#endif
#endif
#if TEMP_SENSOR_BOARD == -4
#define TEMP_SENSOR_BOARD_IS_AD8495 1
#elif TEMP_SENSOR_BOARD == -3
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_BOARD."
#elif TEMP_SENSOR_BOARD == -2
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_BOARD."
#elif TEMP_SENSOR_BOARD == -1
#define TEMP_SENSOR_BOARD_IS_AD595 1
#elif TEMP_SENSOR_BOARD > 0
#define TEMP_SENSOR_BOARD_IS_THERMISTOR 1
#if TEMP_SENSOR_BOARD == 1000
#define TEMP_SENSOR_BOARD_IS_CUSTOM 1
#elif TEMP_SENSOR_BOARD == 998 || TEMP_SENSOR_BOARD == 999
#define TEMP_SENSOR_BOARD_IS_DUMMY 1
#endif
#endif
/**
* X_DUAL_ENDSTOPS endstop reassignment
*/
+1 -1
View File
@@ -42,7 +42,7 @@
* version was tagged.
*/
#ifndef STRING_DISTRIBUTION_DATE
#define STRING_DISTRIBUTION_DATE "2021-07-13"
#define STRING_DISTRIBUTION_DATE "2021-07-19"
#endif
/**
+225 -97
View File
@@ -57,6 +57,18 @@
#include "../../gcode/parser.h"
#endif
#if EITHER(HAS_COOLER, LASER_COOLANT_FLOW_METER)
#include "../../feature/cooler.h"
#endif
#if ENABLED(I2C_AMMETER)
#include "../../feature/ammeter.h"
#endif
#if HAS_CUTTER
#include "../../feature/spindle_laser.h"
#endif
#if ENABLED(AUTO_BED_LEVELING_UBL)
#include "../../feature/bedlevel/bedlevel.h"
#endif
@@ -64,12 +76,12 @@
TFTGLCD lcd;
#define ICON_LOGO B00000001
#define ICON_TEMP1 B00000010 //hotend 1
#define ICON_TEMP2 B00000100 //hotend 2
#define ICON_TEMP3 B00001000 //hotend 3
#define ICON_TEMP1 B00000010 // Hotend 1
#define ICON_TEMP2 B00000100 // Hotend 2
#define ICON_TEMP3 B00001000 // Hotend 3
#define ICON_BED B00010000
#define ICON_FAN B00100000
#define ICON_HOT B01000000 //when any T > 50deg
#define ICON_HOT B01000000 // When any T > 50deg
#define PIC_MASK 0x7F
// LEDs not used, for compatibility with Smoothieware
@@ -433,69 +445,161 @@ FORCE_INLINE void _draw_axis_value(const AxisEnum axis, const char *value, const
lcd_put_u8str(value);
}
FORCE_INLINE void _draw_heater_status(const heater_id_t heater_id, const char *prefix, const bool blink) {
uint8_t pic_hot_bits;
#if HAS_HEATED_BED
const bool isBed = heater_id < 0;
const celsius_t t1 = (isBed ? thermalManager.wholeDegBed() : thermalManager.wholeDegHotend(heater_id)),
t2 = (isBed ? thermalManager.degTargetBed() : thermalManager.degTargetHotend(heater_id));
#else
const celsius_t t1 = thermalManager.wholeDegHotend(heater_id), t2 = thermalManager.degTargetHotend(heater_id);
#endif
#if HAS_HOTEND || HAS_HEATED_BED
#if HOTENDS < 2
if (heater_id == H_E0) {
lcd.setCursor(2, 5); lcd.print(prefix); //HE
lcd.setCursor(1, 6); lcd.print(i16tostr3rj(t1));
lcd.setCursor(1, 7);
}
else {
lcd.setCursor(6, 5); lcd.print(prefix); //BED
lcd.setCursor(6, 6); lcd.print(i16tostr3rj(t1));
lcd.setCursor(6, 7);
}
#else
if (heater_id > H_BED) {
lcd.setCursor(heater_id * 4, 5); lcd.print(prefix); // HE1 or HE2 or HE3
lcd.setCursor(heater_id * 4, 6); lcd.print(i16tostr3rj(t1));
lcd.setCursor(heater_id * 4, 7);
}
else {
lcd.setCursor(13, 5); lcd.print(prefix); //BED
lcd.setCursor(13, 6); lcd.print(i16tostr3rj(t1));
lcd.setCursor(13, 7);
}
#endif // HOTENDS <= 1
FORCE_INLINE void _draw_heater_status(const heater_id_t heater_id, const char *prefix, const bool blink) {
uint8_t pic_hot_bits;
#if HAS_HEATED_BED
const bool isBed = heater_id < 0;
const celsius_t t1 = (isBed ? thermalManager.wholeDegBed() : thermalManager.wholeDegHotend(heater_id)),
t2 = (isBed ? thermalManager.degTargetBed() : thermalManager.degTargetHotend(heater_id));
#else
const celsius_t t1 = thermalManager.wholeDegHotend(heater_id), t2 = thermalManager.degTargetHotend(heater_id);
#endif
#if !HEATER_IDLE_HANDLER
UNUSED(blink);
#else
if (!blink && thermalManager.heater_idle[thermalManager.idle_index_for_id(heater_id)].timed_out) {
lcd.write(' ');
if (t2 >= 10) lcd.write(' ');
if (t2 >= 100) lcd.write(' ');
}
else
#endif // !HEATER_IDLE_HANDLER
lcd.print(i16tostr3rj(t2));
#if HOTENDS < 2
if (heater_id == H_E0) {
lcd.setCursor(2, 5); lcd.print(prefix); //HE
lcd.setCursor(1, 6); lcd.print(i16tostr3rj(t1));
lcd.setCursor(1, 7);
}
else {
lcd.setCursor(6, 5); lcd.print(prefix); //BED
lcd.setCursor(6, 6); lcd.print(i16tostr3rj(t1));
lcd.setCursor(6, 7);
}
#else
if (heater_id > H_BED) {
lcd.setCursor(heater_id * 4, 5); lcd.print(prefix); // HE1 or HE2 or HE3
lcd.setCursor(heater_id * 4, 6); lcd.print(i16tostr3rj(t1));
lcd.setCursor(heater_id * 4, 7);
}
else {
lcd.setCursor(13, 5); lcd.print(prefix); //BED
lcd.setCursor(13, 6); lcd.print(i16tostr3rj(t1));
lcd.setCursor(13, 7);
}
#endif // HOTENDS <= 1
switch (heater_id) {
case H_BED: pic_hot_bits = ICON_BED; break;
case H_E0: pic_hot_bits = ICON_TEMP1; break;
case H_E1: pic_hot_bits = ICON_TEMP2; break;
case H_E2: pic_hot_bits = ICON_TEMP3;
default: break;
#if !HEATER_IDLE_HANDLER
UNUSED(blink);
#else
if (!blink && thermalManager.heater_idle[thermalManager.idle_index_for_id(heater_id)].timed_out) {
lcd.write(' ');
if (t2 >= 10) lcd.write(' ');
if (t2 >= 100) lcd.write(' ');
}
else
#endif // !HEATER_IDLE_HANDLER
lcd.print(i16tostr3rj(t2));
switch (heater_id) {
case H_BED: pic_hot_bits = ICON_BED; break;
case H_E0: pic_hot_bits = ICON_TEMP1; break;
case H_E1: pic_hot_bits = ICON_TEMP2; break;
case H_E2: pic_hot_bits = ICON_TEMP3;
default: break;
}
if (t2) picBits |= pic_hot_bits;
else picBits &= ~pic_hot_bits;
if (t1 > 50) hotBits |= pic_hot_bits;
else hotBits &= ~pic_hot_bits;
if (hotBits) picBits |= ICON_HOT;
else picBits &= ~ICON_HOT;
}
if (t2) picBits |= pic_hot_bits;
else picBits &= ~pic_hot_bits;
#endif // HAS_HOTEND || HAS_HEATED_BED
if (t1 > 50) hotBits |= pic_hot_bits;
else hotBits &= ~pic_hot_bits;
#if HAS_COOLER
if (hotBits) picBits |= ICON_HOT;
else picBits &= ~ICON_HOT;
}
FORCE_INLINE void _draw_cooler_status(const bool blink) {
const celsius_t t2 = thermalManager.degTargetCooler();
lcd.setCursor(0, 5); lcd_put_u8str_P(PSTR("COOL"));
lcd.setCursor(1, 6); lcd_put_u8str(i16tostr3rj(thermalManager.wholeDegCooler()));
lcd.setCursor(1, 7);
#if !HEATER_IDLE_HANDLER
UNUSED(blink);
#else
if (!blink && thermalManager.heater_idle[thermalManager.idle_index_for_id(heater_id)].timed_out) {
lcd_put_wchar(' ');
if (t2 >= 10) lcd_put_wchar(' ');
if (t2 >= 100) lcd_put_wchar(' ');
}
else
#endif
lcd_put_u8str(i16tostr3left(t2));
lcd_put_wchar(' ');
if (t2 < 10) lcd_put_wchar(' ');
if (t2) picBits |= ICON_TEMP1;
else picBits &= ~ICON_TEMP1;
}
#endif // HAS_COOLER
#if ENABLED(LASER_COOLANT_FLOW_METER)
FORCE_INLINE void _draw_flowmeter_status() {
lcd.setCursor(5, 5); lcd_put_u8str_P(PSTR("FLOW"));
lcd.setCursor(7, 6); lcd_put_wchar('L');
lcd.setCursor(6, 7); lcd_put_u8str(ftostr11ns(cooler.flowrate));
if (cooler.flowrate) picBits |= ICON_FAN;
else picBits &= ~ICON_FAN;
}
#endif
#if ENABLED(I2C_AMMETER)
FORCE_INLINE void _draw_ammeter_status() {
lcd.setCursor(10, 5); lcd_put_u8str_P(PSTR("ILAZ"));
ammeter.read();
lcd.setCursor(11, 6);
if (ammeter.current <= 0.999f)
{
lcd_put_u8str("mA");
lcd.setCursor(10, 7);
lcd_put_wchar(' '); lcd_put_u8str(ui16tostr3rj(uint16_t(ammeter.current * 1000 + 0.5f)));
}
else {
lcd_put_u8str(" A");
lcd.setCursor(10, 7);
lcd_put_u8str(ftostr12ns(ammeter.current));
}
if (ammeter.current) picBits |= ICON_BED;
else picBits &= ~ICON_BED;
}
#endif // I2C_AMMETER
#if HAS_CUTTER
FORCE_INLINE void _draw_cutter_status() {
lcd.setCursor(15, 5); lcd_put_u8str_P(PSTR("CUTT"));
#if CUTTER_UNIT_IS(RPM)
lcd.setCursor(16, 6); lcd_put_u8str_P(PSTR("RPM"));
lcd.setCursor(15, 7); lcd_put_u8str(ftostr31ns(float(cutter.unitPower) / 1000));
lcd_put_wchar('K');
#elif CUTTER_UNIT_IS(PERCENT)
lcd.setCursor(17, 6); lcd_put_wchar('%');
lcd.setCursor(18, 7); lcd_put_u8str(cutter_power2str(cutter.unitPower));
#else
lcd.setCursor(17, 7); lcd_put_u8str(cutter_power2str(cutter.unitPower));
#endif
if (cutter.unitPower) picBits |= ICON_HOT;
else picBits &= ~ICON_HOT;
}
#endif // HAS_CUTTER
#if HAS_PRINT_PROGRESS
@@ -533,7 +637,7 @@ FORCE_INLINE void _draw_heater_status(const heater_id_t heater_id, const char *p
}
}
#endif
#endif // LCD_PROGRESS_BAR
void MarlinUI::draw_status_message(const bool blink) {
if (!PanelDetected) return;
@@ -648,6 +752,19 @@ or
or
|X 000 Y 000 Z 000.00|
|FR100% SD100% C--:--|
| Progress bar line |
|Status message |
| |
|COOL FLOW ILAZ CUTT |
| ttc L mA RPM |
| tts f.f aaa rr.rK|
| ICO ICO ICO ICO |
| ICO ICO ICO ICO |
or
Equal to 24x10 text LCD
|X 000 Y 000 Z 000.00 |
@@ -745,50 +862,61 @@ void MarlinUI::draw_status_screen() {
#endif
//
// Line 6..8 Temperatures, FAN
// Line 6..8 Temperatures, FAN for printer or Cooler, Flowmetter, Ampermeter, Cutter for laser/spindle
//
#if HOTENDS < 2
_draw_heater_status(H_E0, "HE", blink); // Hotend Temperature
#else
_draw_heater_status(H_E0, "HE1", blink); // Hotend 1 Temperature
_draw_heater_status(H_E1, "HE2", blink); // Hotend 2 Temperature
#if HOTENDS > 2
_draw_heater_status(H_E2, "HE3", blink); // Hotend 3 Temperature
#endif
#endif
#if HAS_HEATED_BED
#if HAS_LEVELING
_draw_heater_status(H_BED, (planner.leveling_active && blink ? "___" : "BED"), blink);
#else
_draw_heater_status(H_BED, "BED", blink);
#endif
#endif
#if HAS_FAN
uint16_t spd = thermalManager.fan_speed[0];
#if ENABLED(ADAPTIVE_FAN_SLOWING)
if (!blink) spd = thermalManager.scaledFanSpeed(0, spd);
#endif
uint16_t per = thermalManager.pwmToPercent(spd);
#if HAS_HOTEND
#if HOTENDS < 2
#define FANX 11
_draw_heater_status(H_E0, "HE", blink); // Hotend Temperature
#else
#define FANX 17
_draw_heater_status(H_E0, "HE1", blink); // Hotend 1 Temperature
_draw_heater_status(H_E1, "HE2", blink); // Hotend 2 Temperature
#if HOTENDS > 2
_draw_heater_status(H_E2, "HE3", blink); // Hotend 3 Temperature
#endif
#endif
lcd.setCursor(FANX, 5); lcd_put_u8str_P(PSTR("FAN"));
lcd.setCursor(FANX + 1, 6); lcd.write('%');
lcd.setCursor(FANX, 7);
lcd.print(i16tostr3rj(per));
if (TERN0(HAS_FAN0, thermalManager.fan_speed[0]) || TERN0(HAS_FAN1, thermalManager.fan_speed[1]) || TERN0(HAS_FAN2, thermalManager.fan_speed[2]))
picBits |= ICON_FAN;
else
picBits &= ~ICON_FAN;
#if HAS_HEATED_BED
#if HAS_LEVELING
_draw_heater_status(H_BED, (planner.leveling_active && blink ? "___" : "BED"), blink);
#else
_draw_heater_status(H_BED, "BED", blink);
#endif
#endif
#endif // HAS_FAN
#if HAS_FAN
uint16_t spd = thermalManager.fan_speed[0];
#if ENABLED(ADAPTIVE_FAN_SLOWING)
if (!blink) spd = thermalManager.scaledFanSpeed(0, spd);
#endif
uint16_t per = thermalManager.pwmToPercent(spd);
#if HOTENDS < 2
#define FANX 11
#else
#define FANX 17
#endif
lcd.setCursor(FANX, 5); lcd_put_u8str_P(PSTR("FAN"));
lcd.setCursor(FANX + 1, 6); lcd.write('%');
lcd.setCursor(FANX, 7);
lcd.print(i16tostr3rj(per));
if (TERN0(HAS_FAN0, thermalManager.fan_speed[0]) || TERN0(HAS_FAN1, thermalManager.fan_speed[1]) || TERN0(HAS_FAN2, thermalManager.fan_speed[2]))
picBits |= ICON_FAN;
else
picBits &= ~ICON_FAN;
#endif // HAS_FAN
#else
TERN_(HAS_COOLER, _draw_cooler_status(blink));
TERN_(LASER_COOLANT_FLOW_METER, _draw_flowmeter_status());
TERN_(I2C_AMMETER, _draw_ammeter_status());
TERN_(HAS_CUTTER, _draw_cutter_status());
#endif
//
// Line 9, 10 - icons
+3 -3
View File
@@ -624,7 +624,7 @@
#define STATUS_AMMETER_X (LCD_PIXEL_WIDTH - (STATUS_AMMETER_BYTEWIDTH + STATUS_FLOWMETER_BYTEWIDTH + STATUS_FAN_BYTEWIDTH + STATUS_CUTTER_BYTEWIDTH + STATUS_COOLER_BYTEWIDTH) * 8)
#endif
#ifndef STATUS_AMMETER_HEIGHT
#define STATUS_AMMETER_HEIGHT(S) (sizeof(status_ammeter_bmp1) / (STATUS_AMMETER_BYTEWIDTH))
#define STATUS_AMMETER_HEIGHT(S) (sizeof(status_ammeter_bmp_mA) / (STATUS_AMMETER_BYTEWIDTH))
#endif
#ifndef STATUS_AMMETER_Y
#define STATUS_AMMETER_Y(S) (18 - STATUS_AMMETER_HEIGHT(S))
@@ -633,8 +633,8 @@
#define STATUS_AMMETER_TEXT_X (STATUS_AMMETER_X + 7)
#endif
static_assert(
sizeof(status_ammeter_bmp1) == (STATUS_AMMETER_BYTEWIDTH) * STATUS_AMMETER_HEIGHT(0),
"Status ammeter bitmap (status_ammeter_bmp1) dimensions don't match data."
sizeof(status_ammeter_bmp_mA) == (STATUS_AMMETER_BYTEWIDTH) * STATUS_AMMETER_HEIGHT(0),
"Status ammeter bitmap (status_ammeter_bmp_mA) dimensions don't match data."
);
#endif
+23
View File
@@ -0,0 +1,23 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
#pragma once
#include <U8glib-HAL.h>
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
+4 -3
View File
@@ -3,7 +3,8 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
#include "langdata.h"
static const uxg_fontinfo_t g_fontinfo_an[] PROGMEM = {};
+12 -11
View File
@@ -3,7 +3,9 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#include "langdata.h"
const u8g_fntpgm_uint8_t fontpage_8_144_149[96] U8G_FONT_SECTION("fontpage_8_144_149") = {
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x90,0x95,0x00,0x07,0xFF,0x00,
@@ -64,14 +66,13 @@ const u8g_fntpgm_uint8_t fontpage_8_206_207[39] U8G_FONT_SECTION("fontpage_8_206
0x00,0x05,0x05,0x05,0x06,0x00,0x00,0x90,0xA8,0xE8,0xA8,0x90,0x04,0x05,0x05,0x06,
0x01,0x00,0x70,0x90,0x70,0x50,0x90};
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
FONTDATA_ITEM(8, 144, 149, fontpage_8_144_149), // 'А' -- 'Е'
FONTDATA_ITEM(8, 151, 152, fontpage_8_151_152), // 'З' -- 'И'
FONTDATA_ITEM(8, 154, 164, fontpage_8_154_164), // 'К' -- 'Ф'
FONTDATA_ITEM(8, 166, 166, fontpage_8_166_166), // 'Ц' -- 'Ц'
FONTDATA_ITEM(8, 175, 195, fontpage_8_175_195), // 'Я' -- 'у'
FONTDATA_ITEM(8, 197, 200, fontpage_8_197_200), // 'х' -- 'ш'
FONTDATA_ITEM(8, 202, 202, fontpage_8_202_202), // 'ъ' -- 'ъ'
FONTDATA_ITEM(8, 206, 207, fontpage_8_206_207), // 'ю' -- 'я'
static const uxg_fontinfo_t g_fontinfo_bg[] PROGMEM = {
FONTDATA_ITEM(8, 144, 149, fontpage_8_144_149), // 'А' -- 'Е'
FONTDATA_ITEM(8, 151, 152, fontpage_8_151_152), // 'З' -- 'И'
FONTDATA_ITEM(8, 154, 164, fontpage_8_154_164), // 'К' -- 'Ф'
FONTDATA_ITEM(8, 166, 166, fontpage_8_166_166), // 'Ц' -- 'Ц'
FONTDATA_ITEM(8, 175, 195, fontpage_8_175_195), // 'Я' -- 'у'
FONTDATA_ITEM(8, 197, 200, fontpage_8_197_200), // 'х' -- 'ш'
FONTDATA_ITEM(8, 202, 202, fontpage_8_202_202), // 'ъ' -- 'ъ'
FONTDATA_ITEM(8, 206, 207, fontpage_8_206_207), // 'ю' -- 'я'
};
+4 -3
View File
@@ -3,7 +3,8 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
#include "langdata.h"
static const uxg_fontinfo_t g_fontinfo_ca[] PROGMEM = {};
+13 -12
View File
@@ -3,7 +3,9 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#include "langdata.h"
const u8g_fntpgm_uint8_t fontpage_2_140_141[47] U8G_FONT_SECTION("fontpage_2_140_141") = {
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x8C,0x8D,0x00,0x0A,0x00,0x00,
@@ -40,15 +42,14 @@ const u8g_fntpgm_uint8_t fontpage_2_253_254[47] U8G_FONT_SECTION("fontpage_2_253
0x00,0x05,0x0A,0x0A,0x06,0x00,0x00,0x50,0x20,0x00,0xF8,0x08,0x10,0x20,0x40,0x80,
0xF8,0x05,0x08,0x08,0x06,0x00,0x00,0x50,0x20,0x00,0xF8,0x10,0x20,0x40,0xF8};
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
FONTDATA_ITEM(2, 140, 141, fontpage_2_140_141), // 'Č' -- 'č'
FONTDATA_ITEM(2, 143, 143, fontpage_2_143_143), // 'ď' -- 'ď'
FONTDATA_ITEM(2, 154, 155, fontpage_2_154_155), // 'Ě' -- 'ě'
FONTDATA_ITEM(2, 200, 200, fontpage_2_200_200), // 'ň' -- 'ň'
FONTDATA_ITEM(2, 216, 217, fontpage_2_216_217), // 'Ř' -- 'ř'
FONTDATA_ITEM(2, 224, 225, fontpage_2_224_225), // 'Š' -- 'š'
FONTDATA_ITEM(2, 229, 229, fontpage_2_229_229), // 'ť' -- 'ť'
FONTDATA_ITEM(2, 239, 239, fontpage_2_239_239), // 'ů' -- 'ů'
FONTDATA_ITEM(2, 253, 254, fontpage_2_253_254), // 'Ž' -- 'ž'
static const uxg_fontinfo_t g_fontinfo_cz[] PROGMEM = {
FONTDATA_ITEM(2, 140, 141, fontpage_2_140_141), // 'Č' -- 'č'
FONTDATA_ITEM(2, 143, 143, fontpage_2_143_143), // 'ď' -- 'ď'
FONTDATA_ITEM(2, 154, 155, fontpage_2_154_155), // 'Ě' -- 'ě'
FONTDATA_ITEM(2, 200, 200, fontpage_2_200_200), // 'ň' -- 'ň'
FONTDATA_ITEM(2, 216, 217, fontpage_2_216_217), // 'Ř' -- 'ř'
FONTDATA_ITEM(2, 224, 225, fontpage_2_224_225), // 'Š' -- 'š'
FONTDATA_ITEM(2, 229, 229, fontpage_2_229_229), // 'ť' -- 'ť'
FONTDATA_ITEM(2, 239, 239, fontpage_2_239_239), // 'ů' -- 'ů'
FONTDATA_ITEM(2, 253, 254, fontpage_2_253_254), // 'Ž' -- 'ž'
};
+4 -3
View File
@@ -3,7 +3,8 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
#include "langdata.h"
static const uxg_fontinfo_t g_fontinfo_da[] PROGMEM = {};
+4 -3
View File
@@ -3,7 +3,8 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
#include "langdata.h"
static const uxg_fontinfo_t g_fontinfo_de[] PROGMEM = {};
+14 -13
View File
@@ -3,7 +3,9 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#include "langdata.h"
const u8g_fntpgm_uint8_t fontpage_7_136_136[33] U8G_FONT_SECTION("fontpage_7_136_136") = {
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x00,0x0A,0x00,0x00,
@@ -75,16 +77,15 @@ const u8g_fntpgm_uint8_t fontpage_64_166_166[24] U8G_FONT_SECTION("fontpage_64_1
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xA6,0xA6,0x00,0x01,0x00,0x00,
0x00,0x05,0x01,0x01,0x06,0x00,0x00,0xA8};
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
FONTDATA_ITEM(7, 136, 136, fontpage_7_136_136), // 'Έ' -- 'Έ'
FONTDATA_ITEM(7, 145, 157, fontpage_7_145_157), // 'Α' -- 'Ν'
FONTDATA_ITEM(7, 159, 161, fontpage_7_159_161), // 'Ο' -- 'Ρ'
FONTDATA_ITEM(7, 163, 167, fontpage_7_163_167), // 'Σ' -- 'Χ'
FONTDATA_ITEM(7, 172, 175, fontpage_7_172_175), // 'ά' -- 'ί'
FONTDATA_ITEM(7, 177, 181, fontpage_7_177_181), // 'α' -- 'ε'
FONTDATA_ITEM(7, 183, 199, fontpage_7_183_199), // 'η' -- 'χ'
FONTDATA_ITEM(7, 201, 201, fontpage_7_201_201), // 'ω' -- 'ω'
FONTDATA_ITEM(7, 204, 206, fontpage_7_204_206), // 'ό' -- 'ώ'
FONTDATA_ITEM(64, 166, 166, fontpage_64_166_166), // '…' -- '…'
static const uxg_fontinfo_t g_fontinfo_el[] PROGMEM = {
FONTDATA_ITEM(7, 136, 136, fontpage_7_136_136), // 'Έ' -- 'Έ'
FONTDATA_ITEM(7, 145, 157, fontpage_7_145_157), // 'Α' -- 'Ν'
FONTDATA_ITEM(7, 159, 161, fontpage_7_159_161), // 'Ο' -- 'Ρ'
FONTDATA_ITEM(7, 163, 167, fontpage_7_163_167), // 'Σ' -- 'Χ'
FONTDATA_ITEM(7, 172, 175, fontpage_7_172_175), // 'ά' -- 'ί'
FONTDATA_ITEM(7, 177, 181, fontpage_7_177_181), // 'α' -- 'ε'
FONTDATA_ITEM(7, 183, 199, fontpage_7_183_199), // 'η' -- 'χ'
FONTDATA_ITEM(7, 201, 201, fontpage_7_201_201), // 'ω' -- 'ω'
FONTDATA_ITEM(7, 204, 206, fontpage_7_204_206), // 'ό' -- 'ώ'
FONTDATA_ITEM(64, 166, 166, fontpage_64_166_166), // '' -- ''
};
+14 -13
View File
@@ -3,7 +3,9 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#include "langdata.h"
const u8g_fntpgm_uint8_t fontpage_7_136_136[33] U8G_FONT_SECTION("fontpage_7_136_136") = {
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x00,0x0A,0x00,0x00,
@@ -75,16 +77,15 @@ const u8g_fntpgm_uint8_t fontpage_64_166_166[24] U8G_FONT_SECTION("fontpage_64_1
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xA6,0xA6,0x00,0x01,0x00,0x00,
0x00,0x05,0x01,0x01,0x06,0x00,0x00,0xA8};
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
FONTDATA_ITEM(7, 136, 136, fontpage_7_136_136), // 'Έ' -- 'Έ'
FONTDATA_ITEM(7, 145, 157, fontpage_7_145_157), // 'Α' -- 'Ν'
FONTDATA_ITEM(7, 159, 161, fontpage_7_159_161), // 'Ο' -- 'Ρ'
FONTDATA_ITEM(7, 163, 167, fontpage_7_163_167), // 'Σ' -- 'Χ'
FONTDATA_ITEM(7, 172, 175, fontpage_7_172_175), // 'ά' -- 'ί'
FONTDATA_ITEM(7, 177, 181, fontpage_7_177_181), // 'α' -- 'ε'
FONTDATA_ITEM(7, 183, 199, fontpage_7_183_199), // 'η' -- 'χ'
FONTDATA_ITEM(7, 201, 201, fontpage_7_201_201), // 'ω' -- 'ω'
FONTDATA_ITEM(7, 204, 206, fontpage_7_204_206), // 'ό' -- 'ώ'
FONTDATA_ITEM(64, 166, 166, fontpage_64_166_166), // '…' -- '…'
static const uxg_fontinfo_t g_fontinfo_el_gr[] PROGMEM = {
FONTDATA_ITEM(7, 136, 136, fontpage_7_136_136), // 'Έ' -- 'Έ'
FONTDATA_ITEM(7, 145, 157, fontpage_7_145_157), // 'Α' -- 'Ν'
FONTDATA_ITEM(7, 159, 161, fontpage_7_159_161), // 'Ο' -- 'Ρ'
FONTDATA_ITEM(7, 163, 167, fontpage_7_163_167), // 'Σ' -- 'Χ'
FONTDATA_ITEM(7, 172, 175, fontpage_7_172_175), // 'ά' -- 'ί'
FONTDATA_ITEM(7, 177, 181, fontpage_7_177_181), // 'α' -- 'ε'
FONTDATA_ITEM(7, 183, 199, fontpage_7_183_199), // 'η' -- 'χ'
FONTDATA_ITEM(7, 201, 201, fontpage_7_201_201), // 'ω' -- 'ω'
FONTDATA_ITEM(7, 204, 206, fontpage_7_204_206), // 'ό' -- 'ώ'
FONTDATA_ITEM(64, 166, 166, fontpage_64_166_166), // '' -- ''
};
+4 -3
View File
@@ -3,7 +3,8 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
#include "langdata.h"
static const uxg_fontinfo_t g_fontinfo_en[] PROGMEM = {};
+4 -3
View File
@@ -3,7 +3,8 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
#include "langdata.h"
static const uxg_fontinfo_t g_fontinfo_es[] PROGMEM = {};
+4 -3
View File
@@ -3,7 +3,8 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
#include "langdata.h"
static const uxg_fontinfo_t g_fontinfo_eu[] PROGMEM = {};
+4 -3
View File
@@ -3,7 +3,8 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
#include "langdata.h"
static const uxg_fontinfo_t g_fontinfo_fi[] PROGMEM = {};
+4 -3
View File
@@ -3,7 +3,8 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
#include "langdata.h"
static const uxg_fontinfo_t g_fontinfo_fr[] PROGMEM = {};
+4 -3
View File
@@ -3,7 +3,8 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
#include "langdata.h"
static const uxg_fontinfo_t g_fontinfo_gl[] PROGMEM = {};
+9 -8
View File
@@ -3,7 +3,9 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#include "langdata.h"
const u8g_fntpgm_uint8_t fontpage_2_135_135[31] U8G_FONT_SECTION("fontpage_2_135_135") = {
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x87,0x87,0x00,0x08,0x00,0x00,
@@ -22,11 +24,10 @@ const u8g_fntpgm_uint8_t fontpage_2_254_254[31] U8G_FONT_SECTION("fontpage_2_254
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0x00,0x08,0x00,0x00,
0x00,0x05,0x08,0x08,0x06,0x00,0x00,0x50,0x20,0x00,0xF8,0x10,0x20,0x40,0xF8};
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
FONTDATA_ITEM(2, 135, 135, fontpage_2_135_135), // 'ć' -- 'ć'
FONTDATA_ITEM(2, 140, 141, fontpage_2_140_141), // 'Č' -- 'č'
FONTDATA_ITEM(2, 145, 145, fontpage_2_145_145), // 'đ' -- 'đ'
FONTDATA_ITEM(2, 225, 225, fontpage_2_225_225), // 'š' -- 'š'
FONTDATA_ITEM(2, 254, 254, fontpage_2_254_254), // 'ž' -- 'ž'
static const uxg_fontinfo_t g_fontinfo_hr[] PROGMEM = {
FONTDATA_ITEM(2, 135, 135, fontpage_2_135_135), // 'ć' -- 'ć'
FONTDATA_ITEM(2, 140, 141, fontpage_2_140_141), // 'Č' -- 'č'
FONTDATA_ITEM(2, 145, 145, fontpage_2_145_145), // 'đ' -- 'đ'
FONTDATA_ITEM(2, 225, 225, fontpage_2_225_225), // 'š' -- 'š'
FONTDATA_ITEM(2, 254, 254, fontpage_2_254_254), // 'ž' -- 'ž'
};
+5 -4
View File
@@ -3,13 +3,14 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#include "langdata.h"
const u8g_fntpgm_uint8_t fontpage_2_241_241[31] U8G_FONT_SECTION("fontpage_2_241_241") = {
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xF1,0xF1,0x00,0x08,0x00,0x00,
0x00,0x05,0x08,0x08,0x06,0x00,0x00,0x48,0x90,0x00,0x88,0x88,0x88,0x88,0x70};
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
FONTDATA_ITEM(2, 241, 241, fontpage_2_241_241), // 'ű' -- 'ű'
static const uxg_fontinfo_t g_fontinfo_hu[] PROGMEM = {
FONTDATA_ITEM(2, 241, 241, fontpage_2_241_241), // 'ű' -- 'ű'
};
+4 -3
View File
@@ -3,7 +3,8 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
#include "langdata.h"
static const uxg_fontinfo_t g_fontinfo_it[] PROGMEM = {};
+16 -15
View File
@@ -3,7 +3,9 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#include "langdata.h"
const u8g_fntpgm_uint8_t fontpage_97_161_164[65] U8G_FONT_SECTION("fontpage_97_161_164") = {
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xA1,0xA4,0x00,0x07,0x00,0x00,
@@ -94,18 +96,17 @@ const u8g_fntpgm_uint8_t fontpage_97_252_252[25] U8G_FONT_SECTION("fontpage_97_2
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0x00,0x05,0x00,0x00,
0x00,0x05,0x02,0x02,0x06,0x00,0x03,0x80,0x78};
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
FONTDATA_ITEM(97, 161, 164, fontpage_97_161_164), // '' -- ''
FONTDATA_ITEM(97, 166, 166, fontpage_97_166_166), // '' -- ''
FONTDATA_ITEM(97, 168, 168, fontpage_97_168_168), // '' -- ''
FONTDATA_ITEM(97, 170, 187, fontpage_97_170_187), // '' -- ''
FONTDATA_ITEM(97, 189, 193, fontpage_97_189_193), // '' -- ''
FONTDATA_ITEM(97, 195, 211, fontpage_97_195_211), // '' -- ''
FONTDATA_ITEM(97, 213, 217, fontpage_97_213_217), // '' -- ''
FONTDATA_ITEM(97, 219, 220, fontpage_97_219_220), // '' -- ''
FONTDATA_ITEM(97, 222, 223, fontpage_97_222_223), // '' -- ''
FONTDATA_ITEM(97, 225, 237, fontpage_97_225_237), // '' -- ''
FONTDATA_ITEM(97, 242, 243, fontpage_97_242_243), // '' -- ''
FONTDATA_ITEM(97, 252, 252, fontpage_97_252_252), // 'ー' -- 'ー'
static const uxg_fontinfo_t g_fontinfo_jp_kana[] PROGMEM = {
FONTDATA_ITEM(97, 161, 164, fontpage_97_161_164), // 'ァ' -- 'イ'
FONTDATA_ITEM(97, 166, 166, fontpage_97_166_166), // '' -- ''
FONTDATA_ITEM(97, 168, 168, fontpage_97_168_168), // '' -- ''
FONTDATA_ITEM(97, 170, 187, fontpage_97_170_187), // '' -- ''
FONTDATA_ITEM(97, 189, 193, fontpage_97_189_193), // '' -- ''
FONTDATA_ITEM(97, 195, 211, fontpage_97_195_211), // '' -- ''
FONTDATA_ITEM(97, 213, 217, fontpage_97_213_217), // '' -- ''
FONTDATA_ITEM(97, 219, 220, fontpage_97_219_220), // '' -- ''
FONTDATA_ITEM(97, 222, 223, fontpage_97_222_223), // '' -- ''
FONTDATA_ITEM(97, 225, 237, fontpage_97_225_237), // '' -- ''
FONTDATA_ITEM(97, 242, 243, fontpage_97_242_243), // '' -- ''
FONTDATA_ITEM(97, 252, 252, fontpage_97_252_252), // '' -- ''
};
+110 -109
View File
@@ -3,7 +3,9 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#include "langdata.h"
const u8g_fntpgm_uint8_t fontpage_344_240_240[34] U8G_FONT_SECTION("fontpage_344_240_240") = {
0x00,0x0B,0x0D,0x00,0xFD,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x00,0x09,0xFE,0x00,
@@ -436,112 +438,111 @@ const u8g_fntpgm_uint8_t fontpage_431_136_136[34] U8G_FONT_SECTION("fontpage_431
0x00,0x08,0x0B,0x0B,0x0A,0x01,0xFE,0x71,0x01,0xFD,0x01,0x71,0x49,0x89,0x49,0x71,
0x01,0x01};
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
FONTDATA_ITEM(344, 240, 240, fontpage_344_240_240), // '' -- ''
FONTDATA_ITEM(345, 224, 224, fontpage_345_224_224), // '' -- ''
FONTDATA_ITEM(347, 248, 248, fontpage_347_248_248), // '' -- ''
FONTDATA_ITEM(348, 137, 137, fontpage_348_137_137), // '' -- ''
FONTDATA_ITEM(348, 176, 176, fontpage_348_176_176), // '' -- ''
FONTDATA_ITEM(348, 197, 197, fontpage_348_197_197), // '' -- ''
FONTDATA_ITEM(352, 196, 196, fontpage_352_196_196), // '' -- ''
FONTDATA_ITEM(353, 180, 180, fontpage_353_180_180), // '' -- ''
FONTDATA_ITEM(354, 248, 248, fontpage_354_248_248), // '' -- ''
FONTDATA_ITEM(356, 132, 132, fontpage_356_132_132), // '' -- ''
FONTDATA_ITEM(356, 244, 244, fontpage_356_244_244), // '' -- ''
FONTDATA_ITEM(357, 200, 200, fontpage_357_200_200), // '' -- ''
FONTDATA_ITEM(357, 228, 228, fontpage_357_228_228), // '' -- ''
FONTDATA_ITEM(357, 249, 249, fontpage_357_249_249), // '' -- ''
FONTDATA_ITEM(359, 196, 196, fontpage_359_196_196), // '' -- ''
FONTDATA_ITEM(359, 204, 204, fontpage_359_204_204), // '' -- ''
FONTDATA_ITEM(359, 217, 217, fontpage_359_217_217), // '' -- ''
FONTDATA_ITEM(360, 152, 152, fontpage_360_152_152), // '' -- ''
FONTDATA_ITEM(360, 156, 156, fontpage_360_156_156), // '' -- ''
FONTDATA_ITEM(360, 168, 168, fontpage_360_168_168), // '' -- ''
FONTDATA_ITEM(361, 164, 164, fontpage_361_164_164), // '' -- ''
FONTDATA_ITEM(361, 220, 220, fontpage_361_220_220), // '' -- ''
FONTDATA_ITEM(362, 148, 148, fontpage_362_148_148), // '' -- ''
FONTDATA_ITEM(366, 252, 252, fontpage_366_252_252), // '' -- ''
FONTDATA_ITEM(367, 236, 236, fontpage_367_236_236), // '' -- ''
FONTDATA_ITEM(368, 136, 136, fontpage_368_136_136), // '' -- ''
FONTDATA_ITEM(368, 165, 165, fontpage_368_165_165), // '' -- ''
FONTDATA_ITEM(368, 220, 220, fontpage_368_220_220), // '' -- ''
FONTDATA_ITEM(369, 204, 204, fontpage_369_204_204), // '' -- ''
FONTDATA_ITEM(370, 244, 244, fontpage_370_244_244), // '' -- ''
FONTDATA_ITEM(371, 172, 172, fontpage_371_172_172), // '' -- ''
FONTDATA_ITEM(371, 176, 176, fontpage_371_176_176), // '' -- ''
FONTDATA_ITEM(371, 189, 189, fontpage_371_189_189), // '' -- ''
FONTDATA_ITEM(371, 193, 193, fontpage_371_193_193), // '' -- ''
FONTDATA_ITEM(372, 200, 200, fontpage_372_200_200), // '' -- ''
FONTDATA_ITEM(372, 212, 212, fontpage_372_212_212), // '' -- ''
FONTDATA_ITEM(372, 244, 244, fontpage_372_244_244), // '' -- ''
FONTDATA_ITEM(373, 168, 168, fontpage_373_168_168), // '' -- ''
FONTDATA_ITEM(373, 187, 187, fontpage_373_187_187), // '' -- ''
FONTDATA_ITEM(375, 248, 248, fontpage_375_248_248), // '' -- ''
FONTDATA_ITEM(376, 128, 128, fontpage_376_128_128), // '' -- ''
FONTDATA_ITEM(376, 148, 148, fontpage_376_148_148), // '' -- ''
FONTDATA_ITEM(377, 132, 132, fontpage_377_132_132), // '' -- ''
FONTDATA_ITEM(377, 160, 160, fontpage_377_160_160), // '' -- ''
FONTDATA_ITEM(377, 168, 168, fontpage_377_168_168), // '' -- ''
FONTDATA_ITEM(377, 248, 248, fontpage_377_248_248), // '' -- ''
FONTDATA_ITEM(380, 196, 196, fontpage_380_196_196), // '' -- ''
FONTDATA_ITEM(385, 172, 172, fontpage_385_172_172), // '' -- ''
FONTDATA_ITEM(385, 189, 189, fontpage_385_189_189), // '' -- ''
FONTDATA_ITEM(385, 200, 200, fontpage_385_200_200), // '' -- ''
FONTDATA_ITEM(386, 164, 164, fontpage_386_164_164), // '' -- ''
FONTDATA_ITEM(387, 140, 141, fontpage_387_140_141), // '' -- ''
FONTDATA_ITEM(389, 164, 164, fontpage_389_164_164), // '' -- ''
FONTDATA_ITEM(389, 172, 172, fontpage_389_172_172), // '' -- ''
FONTDATA_ITEM(389, 220, 221, fontpage_389_220_221), // '' -- ''
FONTDATA_ITEM(395, 180, 180, fontpage_395_180_180), // '' -- ''
FONTDATA_ITEM(395, 198, 198, fontpage_395_198_198), // '' -- ''
FONTDATA_ITEM(395, 209, 209, fontpage_395_209_209), // '' -- ''
FONTDATA_ITEM(395, 212, 212, fontpage_395_212_212), // '' -- ''
FONTDATA_ITEM(395, 244, 244, fontpage_395_244_244), // '' -- ''
FONTDATA_ITEM(396, 136, 136, fontpage_396_136_136), // '' -- ''
FONTDATA_ITEM(396, 164, 164, fontpage_396_164_164), // '' -- ''
FONTDATA_ITEM(396, 168, 168, fontpage_396_168_168), // '' -- ''
FONTDATA_ITEM(396, 196, 196, fontpage_396_196_196), // '' -- ''
FONTDATA_ITEM(397, 208, 208, fontpage_397_208_208), // '' -- ''
FONTDATA_ITEM(398, 132, 132, fontpage_398_132_132), // '' -- ''
FONTDATA_ITEM(398, 188, 188, fontpage_398_188_188), // '' -- ''
FONTDATA_ITEM(398, 204, 204, fontpage_398_204_204), // '' -- ''
FONTDATA_ITEM(398, 244, 244, fontpage_398_244_244), // '' -- ''
FONTDATA_ITEM(398, 252, 253, fontpage_398_252_253), // '' -- ''
FONTDATA_ITEM(399, 133, 133, fontpage_399_133_133), // '' -- ''
FONTDATA_ITEM(399, 144, 145, fontpage_399_144_145), // '' -- ''
FONTDATA_ITEM(399, 152, 152, fontpage_399_152_152), // '' -- ''
FONTDATA_ITEM(399, 165, 165, fontpage_399_165_165), // '' -- ''
FONTDATA_ITEM(399, 172, 172, fontpage_399_172_172), // '' -- ''
FONTDATA_ITEM(400, 128, 128, fontpage_400_128_128), // '' -- ''
FONTDATA_ITEM(400, 132, 132, fontpage_400_132_132), // '' -- ''
FONTDATA_ITEM(400, 149, 149, fontpage_400_149_149), // '' -- ''
FONTDATA_ITEM(400, 156, 156, fontpage_400_156_156), // '' -- ''
FONTDATA_ITEM(401, 253, 253, fontpage_401_253_253), // '' -- ''
FONTDATA_ITEM(402, 128, 128, fontpage_402_128_128), // '' -- ''
FONTDATA_ITEM(402, 145, 145, fontpage_402_145_145), // '' -- ''
FONTDATA_ITEM(403, 144, 144, fontpage_403_144_144), // '' -- ''
FONTDATA_ITEM(403, 192, 192, fontpage_403_192_192), // '' -- ''
FONTDATA_ITEM(409, 152, 152, fontpage_409_152_152), // '' -- ''
FONTDATA_ITEM(410, 136, 136, fontpage_410_136_136), // '' -- ''
FONTDATA_ITEM(411, 149, 149, fontpage_411_149_149), // '' -- ''
FONTDATA_ITEM(411, 156, 156, fontpage_411_156_156), // '' -- ''
FONTDATA_ITEM(411, 164, 164, fontpage_411_164_164), // '' -- ''
FONTDATA_ITEM(411, 232, 232, fontpage_411_232_232), // '' -- ''
FONTDATA_ITEM(412, 216, 216, fontpage_412_216_216), // '' -- ''
FONTDATA_ITEM(412, 232, 232, fontpage_412_232_232), // '' -- ''
FONTDATA_ITEM(412, 244, 244, fontpage_412_244_244), // '' -- ''
FONTDATA_ITEM(414, 156, 156, fontpage_414_156_156), // '' -- ''
FONTDATA_ITEM(417, 209, 209, fontpage_417_209_209), // '' -- ''
FONTDATA_ITEM(418, 176, 176, fontpage_418_176_176), // '' -- ''
FONTDATA_ITEM(418, 204, 204, fontpage_418_204_204), // '' -- ''
FONTDATA_ITEM(419, 160, 160, fontpage_419_160_160), // '' -- ''
FONTDATA_ITEM(421, 184, 184, fontpage_421_184_184), // '' -- ''
FONTDATA_ITEM(423, 156, 156, fontpage_423_156_156), // '' -- ''
FONTDATA_ITEM(426, 132, 132, fontpage_426_132_132), // '' -- ''
FONTDATA_ITEM(426, 216, 216, fontpage_426_216_216), // '' -- ''
FONTDATA_ITEM(426, 233, 233, fontpage_426_233_233), // '' -- ''
FONTDATA_ITEM(428, 200, 200, fontpage_428_200_200), // '' -- ''
FONTDATA_ITEM(428, 212, 212, fontpage_428_212_212), // '' -- ''
FONTDATA_ITEM(431, 136, 136, fontpage_431_136_136), // '히' -- '히'
static const uxg_fontinfo_t g_fontinfo_ko_KR[] PROGMEM = {
FONTDATA_ITEM(344, 240, 240, fontpage_344_240_240), // '거' -- '거'
FONTDATA_ITEM(345, 224, 224, fontpage_345_224_224), // '' -- ''
FONTDATA_ITEM(347, 248, 248, fontpage_347_248_248), // '' -- ''
FONTDATA_ITEM(348, 137, 137, fontpage_348_137_137), // '' -- ''
FONTDATA_ITEM(348, 176, 176, fontpage_348_176_176), // '' -- ''
FONTDATA_ITEM(348, 197, 197, fontpage_348_197_197), // '' -- ''
FONTDATA_ITEM(352, 196, 196, fontpage_352_196_196), // '' -- ''
FONTDATA_ITEM(353, 180, 180, fontpage_353_180_180), // '' -- ''
FONTDATA_ITEM(354, 248, 248, fontpage_354_248_248), // '' -- ''
FONTDATA_ITEM(356, 132, 132, fontpage_356_132_132), // '' -- ''
FONTDATA_ITEM(356, 244, 244, fontpage_356_244_244), // '' -- ''
FONTDATA_ITEM(357, 200, 200, fontpage_357_200_200), // '' -- ''
FONTDATA_ITEM(357, 228, 228, fontpage_357_228_228), // '' -- ''
FONTDATA_ITEM(357, 249, 249, fontpage_357_249_249), // '' -- ''
FONTDATA_ITEM(359, 196, 196, fontpage_359_196_196), // '' -- ''
FONTDATA_ITEM(359, 204, 204, fontpage_359_204_204), // '' -- ''
FONTDATA_ITEM(359, 217, 217, fontpage_359_217_217), // '' -- ''
FONTDATA_ITEM(360, 152, 152, fontpage_360_152_152), // '' -- ''
FONTDATA_ITEM(360, 156, 156, fontpage_360_156_156), // '' -- ''
FONTDATA_ITEM(360, 168, 168, fontpage_360_168_168), // '' -- ''
FONTDATA_ITEM(361, 164, 164, fontpage_361_164_164), // '' -- ''
FONTDATA_ITEM(361, 220, 220, fontpage_361_220_220), // '' -- ''
FONTDATA_ITEM(362, 148, 148, fontpage_362_148_148), // '' -- ''
FONTDATA_ITEM(366, 252, 252, fontpage_366_252_252), // '' -- ''
FONTDATA_ITEM(367, 236, 236, fontpage_367_236_236), // '' -- ''
FONTDATA_ITEM(368, 136, 136, fontpage_368_136_136), // '' -- ''
FONTDATA_ITEM(368, 165, 165, fontpage_368_165_165), // '' -- ''
FONTDATA_ITEM(368, 220, 220, fontpage_368_220_220), // '' -- ''
FONTDATA_ITEM(369, 204, 204, fontpage_369_204_204), // '' -- ''
FONTDATA_ITEM(370, 244, 244, fontpage_370_244_244), // '' -- ''
FONTDATA_ITEM(371, 172, 172, fontpage_371_172_172), // '' -- ''
FONTDATA_ITEM(371, 176, 176, fontpage_371_176_176), // '' -- ''
FONTDATA_ITEM(371, 189, 189, fontpage_371_189_189), // '' -- ''
FONTDATA_ITEM(371, 193, 193, fontpage_371_193_193), // '' -- ''
FONTDATA_ITEM(372, 200, 200, fontpage_372_200_200), // '' -- ''
FONTDATA_ITEM(372, 212, 212, fontpage_372_212_212), // '' -- ''
FONTDATA_ITEM(372, 244, 244, fontpage_372_244_244), // '' -- ''
FONTDATA_ITEM(373, 168, 168, fontpage_373_168_168), // '' -- ''
FONTDATA_ITEM(373, 187, 187, fontpage_373_187_187), // '' -- ''
FONTDATA_ITEM(375, 248, 248, fontpage_375_248_248), // '' -- ''
FONTDATA_ITEM(376, 128, 128, fontpage_376_128_128), // '' -- ''
FONTDATA_ITEM(376, 148, 148, fontpage_376_148_148), // '' -- ''
FONTDATA_ITEM(377, 132, 132, fontpage_377_132_132), // '' -- ''
FONTDATA_ITEM(377, 160, 160, fontpage_377_160_160), // '' -- ''
FONTDATA_ITEM(377, 168, 168, fontpage_377_168_168), // '' -- ''
FONTDATA_ITEM(377, 248, 248, fontpage_377_248_248), // '' -- ''
FONTDATA_ITEM(380, 196, 196, fontpage_380_196_196), // '' -- ''
FONTDATA_ITEM(385, 172, 172, fontpage_385_172_172), // '' -- ''
FONTDATA_ITEM(385, 189, 189, fontpage_385_189_189), // '' -- ''
FONTDATA_ITEM(385, 200, 200, fontpage_385_200_200), // '' -- ''
FONTDATA_ITEM(386, 164, 164, fontpage_386_164_164), // '' -- ''
FONTDATA_ITEM(387, 140, 141, fontpage_387_140_141), // '' -- ''
FONTDATA_ITEM(389, 164, 164, fontpage_389_164_164), // '' -- ''
FONTDATA_ITEM(389, 172, 172, fontpage_389_172_172), // '' -- ''
FONTDATA_ITEM(389, 220, 221, fontpage_389_220_221), // '' -- ''
FONTDATA_ITEM(395, 180, 180, fontpage_395_180_180), // '' -- ''
FONTDATA_ITEM(395, 198, 198, fontpage_395_198_198), // '' -- ''
FONTDATA_ITEM(395, 209, 209, fontpage_395_209_209), // '' -- ''
FONTDATA_ITEM(395, 212, 212, fontpage_395_212_212), // '' -- ''
FONTDATA_ITEM(395, 244, 244, fontpage_395_244_244), // '' -- ''
FONTDATA_ITEM(396, 136, 136, fontpage_396_136_136), // '' -- ''
FONTDATA_ITEM(396, 164, 164, fontpage_396_164_164), // '' -- ''
FONTDATA_ITEM(396, 168, 168, fontpage_396_168_168), // '' -- ''
FONTDATA_ITEM(396, 196, 196, fontpage_396_196_196), // '' -- ''
FONTDATA_ITEM(397, 208, 208, fontpage_397_208_208), // '' -- ''
FONTDATA_ITEM(398, 132, 132, fontpage_398_132_132), // '' -- ''
FONTDATA_ITEM(398, 188, 188, fontpage_398_188_188), // '' -- ''
FONTDATA_ITEM(398, 204, 204, fontpage_398_204_204), // '' -- ''
FONTDATA_ITEM(398, 244, 244, fontpage_398_244_244), // '' -- ''
FONTDATA_ITEM(398, 252, 253, fontpage_398_252_253), // '' -- ''
FONTDATA_ITEM(399, 133, 133, fontpage_399_133_133), // '' -- ''
FONTDATA_ITEM(399, 144, 145, fontpage_399_144_145), // '' -- ''
FONTDATA_ITEM(399, 152, 152, fontpage_399_152_152), // '' -- ''
FONTDATA_ITEM(399, 165, 165, fontpage_399_165_165), // '' -- ''
FONTDATA_ITEM(399, 172, 172, fontpage_399_172_172), // '' -- ''
FONTDATA_ITEM(400, 128, 128, fontpage_400_128_128), // '' -- ''
FONTDATA_ITEM(400, 132, 132, fontpage_400_132_132), // '' -- ''
FONTDATA_ITEM(400, 149, 149, fontpage_400_149_149), // '' -- ''
FONTDATA_ITEM(400, 156, 156, fontpage_400_156_156), // '' -- ''
FONTDATA_ITEM(401, 253, 253, fontpage_401_253_253), // '' -- ''
FONTDATA_ITEM(402, 128, 128, fontpage_402_128_128), // '' -- ''
FONTDATA_ITEM(402, 145, 145, fontpage_402_145_145), // '' -- ''
FONTDATA_ITEM(403, 144, 144, fontpage_403_144_144), // '' -- ''
FONTDATA_ITEM(403, 192, 192, fontpage_403_192_192), // '' -- ''
FONTDATA_ITEM(409, 152, 152, fontpage_409_152_152), // '' -- ''
FONTDATA_ITEM(410, 136, 136, fontpage_410_136_136), // '' -- ''
FONTDATA_ITEM(411, 149, 149, fontpage_411_149_149), // '' -- ''
FONTDATA_ITEM(411, 156, 156, fontpage_411_156_156), // '' -- ''
FONTDATA_ITEM(411, 164, 164, fontpage_411_164_164), // '' -- ''
FONTDATA_ITEM(411, 232, 232, fontpage_411_232_232), // '' -- ''
FONTDATA_ITEM(412, 216, 216, fontpage_412_216_216), // '' -- ''
FONTDATA_ITEM(412, 232, 232, fontpage_412_232_232), // '' -- ''
FONTDATA_ITEM(412, 244, 244, fontpage_412_244_244), // '' -- ''
FONTDATA_ITEM(414, 156, 156, fontpage_414_156_156), // '' -- ''
FONTDATA_ITEM(417, 209, 209, fontpage_417_209_209), // '' -- ''
FONTDATA_ITEM(418, 176, 176, fontpage_418_176_176), // '' -- ''
FONTDATA_ITEM(418, 204, 204, fontpage_418_204_204), // '' -- ''
FONTDATA_ITEM(419, 160, 160, fontpage_419_160_160), // '' -- ''
FONTDATA_ITEM(421, 184, 184, fontpage_421_184_184), // '' -- ''
FONTDATA_ITEM(423, 156, 156, fontpage_423_156_156), // '' -- ''
FONTDATA_ITEM(426, 132, 132, fontpage_426_132_132), // '' -- ''
FONTDATA_ITEM(426, 216, 216, fontpage_426_216_216), // '' -- ''
FONTDATA_ITEM(426, 233, 233, fontpage_426_233_233), // '' -- ''
FONTDATA_ITEM(428, 200, 200, fontpage_428_200_200), // '' -- ''
FONTDATA_ITEM(428, 212, 212, fontpage_428_212_212), // '' -- ''
FONTDATA_ITEM(431, 136, 136, fontpage_431_136_136), // '' -- ''
};
+4 -3
View File
@@ -3,7 +3,8 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
#include "langdata.h"
static const uxg_fontinfo_t g_fontinfo_nl[] PROGMEM = {};
+10 -9
View File
@@ -3,7 +3,9 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#include "langdata.h"
const u8g_fntpgm_uint8_t fontpage_2_132_133[45] U8G_FONT_SECTION("fontpage_2_132_133") = {
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x84,0x85,0x00,0x07,0xFE,0x00,
@@ -29,12 +31,11 @@ const u8g_fntpgm_uint8_t fontpage_2_252_252[30] U8G_FONT_SECTION("fontpage_2_252
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0x00,0x07,0x00,0x00,
0x00,0x05,0x07,0x07,0x06,0x00,0x00,0x20,0x00,0xF8,0x10,0x20,0x40,0xF8};
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
FONTDATA_ITEM(2, 132, 133, fontpage_2_132_133), // 'Ą' -- 'ą'
FONTDATA_ITEM(2, 135, 135, fontpage_2_135_135), // 'ć' -- 'ć'
FONTDATA_ITEM(2, 153, 153, fontpage_2_153_153), // 'ę' -- 'ę'
FONTDATA_ITEM(2, 193, 196, fontpage_2_193_196), // 'Ł' -- 'ń'
FONTDATA_ITEM(2, 218, 219, fontpage_2_218_219), // 'Ś' -- 'ś'
FONTDATA_ITEM(2, 252, 252, fontpage_2_252_252), // 'ż' -- 'ż'
static const uxg_fontinfo_t g_fontinfo_pl[] PROGMEM = {
FONTDATA_ITEM(2, 132, 133, fontpage_2_132_133), // 'Ą' -- 'ą'
FONTDATA_ITEM(2, 135, 135, fontpage_2_135_135), // 'ć' -- 'ć'
FONTDATA_ITEM(2, 153, 153, fontpage_2_153_153), // 'ę' -- 'ę'
FONTDATA_ITEM(2, 193, 196, fontpage_2_193_196), // 'Ł' -- 'ń'
FONTDATA_ITEM(2, 218, 219, fontpage_2_218_219), // 'Ś' -- 'ś'
FONTDATA_ITEM(2, 252, 252, fontpage_2_252_252), // 'ż' -- 'ż'
};
+4 -3
View File
@@ -3,7 +3,8 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
#include "langdata.h"
static const uxg_fontinfo_t g_fontinfo_pt[] PROGMEM = {};
@@ -3,7 +3,8 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
#include "langdata.h"
static const uxg_fontinfo_t g_fontinfo_pt_br[] PROGMEM = {};
+4 -3
View File
@@ -3,7 +3,8 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
#include "langdata.h"
static const uxg_fontinfo_t g_fontinfo_ro[] PROGMEM = {};
+8 -7
View File
@@ -3,7 +3,9 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#include "langdata.h"
const u8g_fntpgm_uint8_t fontpage_8_144_168[348] U8G_FONT_SECTION("fontpage_8_144_168") = {
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x90,0xA8,0x00,0x0A,0xFE,0x00,
@@ -64,10 +66,9 @@ const u8g_fntpgm_uint8_t fontpage_8_209_209[30] U8G_FONT_SECTION("fontpage_8_209
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xD1,0xD1,0x00,0x07,0x00,0x00,
0x00,0x05,0x07,0x07,0x06,0x00,0x00,0x50,0x00,0x70,0x88,0xF0,0x80,0x70};
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
FONTDATA_ITEM(8, 144, 168, fontpage_8_144_168), // 'А' -- 'Ш'
FONTDATA_ITEM(8, 171, 173, fontpage_8_171_173), // 'Ы' -- 'Э'
FONTDATA_ITEM(8, 175, 207, fontpage_8_175_207), // 'Я' -- 'я'
FONTDATA_ITEM(8, 209, 209, fontpage_8_209_209), // 'ё' -- 'ё'
static const uxg_fontinfo_t g_fontinfo_ru[] PROGMEM = {
FONTDATA_ITEM(8, 144, 168, fontpage_8_144_168), // 'А' -- 'Ш'
FONTDATA_ITEM(8, 171, 173, fontpage_8_171_173), // 'Ы' -- 'Э'
FONTDATA_ITEM(8, 175, 207, fontpage_8_175_207), // 'Я' -- 'я'
FONTDATA_ITEM(8, 209, 209, fontpage_8_209_209), // 'ё' -- 'ё'
};
+11 -10
View File
@@ -3,7 +3,9 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#include "langdata.h"
const u8g_fntpgm_uint8_t fontpage_2_140_143[79] U8G_FONT_SECTION("fontpage_2_140_143") = {
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x8C,0x8F,0x00,0x0A,0x00,0x00,
@@ -37,13 +39,12 @@ const u8g_fntpgm_uint8_t fontpage_2_253_254[47] U8G_FONT_SECTION("fontpage_2_253
0x00,0x05,0x0A,0x0A,0x06,0x00,0x00,0x50,0x20,0x00,0xF8,0x08,0x10,0x20,0x40,0x80,
0xF8,0x05,0x08,0x08,0x06,0x00,0x00,0x50,0x20,0x00,0xF8,0x10,0x20,0x40,0xF8};
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
FONTDATA_ITEM(2, 140, 143, fontpage_2_140_143), // 'Č' -- 'ď'
FONTDATA_ITEM(2, 186, 186, fontpage_2_186_186), // 'ĺ' -- 'ĺ'
FONTDATA_ITEM(2, 189, 190, fontpage_2_189_190), // 'Ľ' -- 'ľ'
FONTDATA_ITEM(2, 199, 200, fontpage_2_199_200), // 'Ň' -- 'ň'
FONTDATA_ITEM(2, 224, 225, fontpage_2_224_225), // 'Š' -- 'š'
FONTDATA_ITEM(2, 229, 229, fontpage_2_229_229), // 'ť' -- 'ť'
FONTDATA_ITEM(2, 253, 254, fontpage_2_253_254), // 'Ž' -- 'ž'
static const uxg_fontinfo_t g_fontinfo_sk[] PROGMEM = {
FONTDATA_ITEM(2, 140, 143, fontpage_2_140_143), // 'Č' -- 'ď'
FONTDATA_ITEM(2, 186, 186, fontpage_2_186_186), // 'ĺ' -- 'ĺ'
FONTDATA_ITEM(2, 189, 190, fontpage_2_189_190), // 'Ľ' -- 'ľ'
FONTDATA_ITEM(2, 199, 200, fontpage_2_199_200), // 'Ň' -- 'ň'
FONTDATA_ITEM(2, 224, 225, fontpage_2_224_225), // 'Š' -- 'š'
FONTDATA_ITEM(2, 229, 229, fontpage_2_229_229), // 'ť' -- 'ť'
FONTDATA_ITEM(2, 253, 254, fontpage_2_253_254), // 'Ž' -- 'ž'
};
+7 -6
View File
@@ -3,7 +3,9 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#include "langdata.h"
const u8g_fntpgm_uint8_t fontpage_8_128_255[1677] U8G_FONT_SECTION("fontpage_8_128_255") = {
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0x00,0x0A,0xFE,0x00,
@@ -223,9 +225,8 @@ const u8g_fntpgm_uint8_t fontpage_97_193_255[822] U8G_FONT_SECTION("fontpage_97_
0x06,0x00,0x02,0x28,0x28,0x00,0x80,0x60,0x10,0x08,0x05,0x06,0x06,0x06,0x00,0x00,
0xF8,0x08,0x08,0x08,0x08,0x08};
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
FONTDATA_ITEM(8, 128, 255, fontpage_8_128_255), // 'Ѐ' -- 'ѿ'
FONTDATA_ITEM(97, 129, 191, fontpage_97_129_191), // '' -- ''
FONTDATA_ITEM(97, 193, 255, fontpage_97_193_255), // 'チ' -- 'ヿ'
static const uxg_fontinfo_t g_fontinfo_test[] PROGMEM = {
FONTDATA_ITEM(8, 128, 255, fontpage_8_128_255), // 'Ѐ' -- 'ѿ'
FONTDATA_ITEM(97, 129, 191, fontpage_97_129_191), // '' -- ''
FONTDATA_ITEM(97, 193, 255, fontpage_97_193_255), // '' -- ''
};
+7 -6
View File
@@ -3,7 +3,9 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#include "langdata.h"
const u8g_fntpgm_uint8_t fontpage_2_158_159[49] U8G_FONT_SECTION("fontpage_2_158_159") = {
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x9E,0x9F,0x00,0x0A,0xFE,0x00,
@@ -19,9 +21,8 @@ const u8g_fntpgm_uint8_t fontpage_2_222_223[45] U8G_FONT_SECTION("fontpage_2_222
0x00,0x05,0x09,0x09,0x06,0x00,0xFE,0x70,0x88,0x80,0x70,0x08,0x88,0x70,0x10,0x60,
0x05,0x07,0x07,0x06,0x00,0xFE,0x78,0x80,0x70,0x08,0xF0,0x10,0x60};
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
FONTDATA_ITEM(2, 158, 159, fontpage_2_158_159), // 'Ğ' -- 'ğ'
FONTDATA_ITEM(2, 176, 177, fontpage_2_176_177), // 'İ' -- 'ı'
FONTDATA_ITEM(2, 222, 223, fontpage_2_222_223), // 'Ş' -- 'ş'
static const uxg_fontinfo_t g_fontinfo_tr[] PROGMEM = {
FONTDATA_ITEM(2, 158, 159, fontpage_2_158_159), // 'Ğ' -- 'ğ'
FONTDATA_ITEM(2, 176, 177, fontpage_2_176_177), // 'İ' -- 'ı'
FONTDATA_ITEM(2, 222, 223, fontpage_2_222_223), // 'Ş' -- 'ş'
};
+12 -11
View File
@@ -3,7 +3,9 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#include "langdata.h"
const u8g_fntpgm_uint8_t fontpage_8_134_134[30] U8G_FONT_SECTION("fontpage_8_134_134") = {
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x86,0x86,0x00,0x07,0x00,0x00,
@@ -72,14 +74,13 @@ const u8g_fntpgm_uint8_t fontpage_8_214_215[41] U8G_FONT_SECTION("fontpage_8_214
0x00,0x03,0x06,0x06,0x06,0x01,0x00,0x40,0x00,0xC0,0x40,0x40,0xE0,0x03,0x06,0x06,
0x06,0x01,0x00,0xA0,0x00,0xC0,0x40,0x40,0xE0};
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
FONTDATA_ITEM(8, 134, 134, fontpage_8_134_134), // 'І' -- 'І'
FONTDATA_ITEM(8, 144, 169, fontpage_8_144_169), // 'А' -- 'Щ'
FONTDATA_ITEM(8, 172, 172, fontpage_8_172_172), // 'Ь' -- 'Ь'
FONTDATA_ITEM(8, 175, 201, fontpage_8_175_201), // 'Я' -- 'щ'
FONTDATA_ITEM(8, 204, 204, fontpage_8_204_204), // 'ь' -- 'ь'
FONTDATA_ITEM(8, 206, 207, fontpage_8_206_207), // 'ю' -- 'я'
FONTDATA_ITEM(8, 212, 212, fontpage_8_212_212), // 'є' -- 'є'
FONTDATA_ITEM(8, 214, 215, fontpage_8_214_215), // 'і' -- 'ї'
static const uxg_fontinfo_t g_fontinfo_uk[] PROGMEM = {
FONTDATA_ITEM(8, 134, 134, fontpage_8_134_134), // 'І' -- 'І'
FONTDATA_ITEM(8, 144, 169, fontpage_8_144_169), // 'А' -- 'Щ'
FONTDATA_ITEM(8, 172, 172, fontpage_8_172_172), // 'Ь' -- 'Ь'
FONTDATA_ITEM(8, 175, 201, fontpage_8_175_201), // 'Я' -- 'щ'
FONTDATA_ITEM(8, 204, 204, fontpage_8_204_204), // 'ь' -- 'ь'
FONTDATA_ITEM(8, 206, 207, fontpage_8_206_207), // 'ю' -- 'я'
FONTDATA_ITEM(8, 212, 212, fontpage_8_212_212), // 'є' -- 'є'
FONTDATA_ITEM(8, 214, 215, fontpage_8_214_215), // 'і' -- 'ї'
};
+49 -48
View File
@@ -3,7 +3,9 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#include "langdata.h"
const u8g_fntpgm_uint8_t fontpage_2_131_131[31] U8G_FONT_SECTION("fontpage_2_131_131") = {
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x83,0x83,0x00,0x08,0x00,0x00,
@@ -177,51 +179,50 @@ const u8g_fntpgm_uint8_t fontpage_61_241_241[32] U8G_FONT_SECTION("fontpage_61_2
0x00,0x06,0x09,0x09,0x07,0x00,0xFE,0x0C,0x04,0x88,0x88,0x88,0x88,0x70,0x00,0x20
};
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
FONTDATA_ITEM(2, 131, 131, fontpage_2_131_131), // 'ă' -- 'ă'
FONTDATA_ITEM(2, 144, 145, fontpage_2_144_145), // 'Đ' -- 'đ'
FONTDATA_ITEM(2, 169, 169, fontpage_2_169_169), // 'ĩ' -- 'ĩ'
FONTDATA_ITEM(3, 161, 161, fontpage_3_161_161), // 'ơ' -- 'ơ'
FONTDATA_ITEM(3, 175, 176, fontpage_3_175_176), // 'Ư' -- 'ư'
FONTDATA_ITEM(6, 131, 131, fontpage_6_131_131), // '̃' -- '̃'
FONTDATA_ITEM(6, 137, 137, fontpage_6_137_137), // '̉' -- '̉'
FONTDATA_ITEM(6, 163, 163, fontpage_6_163_163), // '̣' -- '̣'
FONTDATA_ITEM(6, 192, 193, fontpage_6_192_193), // '̀' -- '́'
FONTDATA_ITEM(61, 161, 161, fontpage_61_161_161), // '' -- ''
FONTDATA_ITEM(61, 163, 163, fontpage_61_163_163), // '' -- ''
FONTDATA_ITEM(61, 165, 165, fontpage_61_165_165), // '' -- ''
FONTDATA_ITEM(61, 167, 167, fontpage_61_167_167), // '' -- ''
FONTDATA_ITEM(61, 169, 169, fontpage_61_169_169), // '' -- ''
FONTDATA_ITEM(61, 173, 173, fontpage_61_173_173), // '' -- ''
FONTDATA_ITEM(61, 175, 175, fontpage_61_175_175), // '' -- ''
FONTDATA_ITEM(61, 177, 177, fontpage_61_177_177), // '' -- ''
FONTDATA_ITEM(61, 179, 179, fontpage_61_179_179), // '' -- ''
FONTDATA_ITEM(61, 181, 181, fontpage_61_181_181), // '' -- ''
FONTDATA_ITEM(61, 183, 183, fontpage_61_183_183), // '' -- ''
FONTDATA_ITEM(61, 191, 191, fontpage_61_191_191), // 'ế' -- 'ế'
FONTDATA_ITEM(61, 193, 193, fontpage_61_193_193), // '' -- ''
FONTDATA_ITEM(61, 195, 195, fontpage_61_195_195), // '' -- ''
FONTDATA_ITEM(61, 199, 199, fontpage_61_199_199), // '' -- ''
FONTDATA_ITEM(61, 201, 201, fontpage_61_201_201), // '' -- ''
FONTDATA_ITEM(61, 203, 203, fontpage_61_203_203), // '' -- ''
FONTDATA_ITEM(61, 205, 205, fontpage_61_205_205), // '' -- ''
FONTDATA_ITEM(61, 207, 207, fontpage_61_207_207), // '' -- ''
FONTDATA_ITEM(61, 209, 209, fontpage_61_209_209), // '' -- ''
FONTDATA_ITEM(61, 211, 211, fontpage_61_211_211), // '' -- ''
FONTDATA_ITEM(61, 213, 213, fontpage_61_213_213), // '' -- ''
FONTDATA_ITEM(61, 215, 215, fontpage_61_215_215), // '' -- ''
FONTDATA_ITEM(61, 217, 217, fontpage_61_217_217), // '' -- ''
FONTDATA_ITEM(61, 219, 219, fontpage_61_219_219), // '' -- ''
FONTDATA_ITEM(61, 221, 221, fontpage_61_221_221), // '' -- ''
FONTDATA_ITEM(61, 223, 223, fontpage_61_223_223), // '' -- ''
FONTDATA_ITEM(61, 225, 225, fontpage_61_225_225), // '' -- ''
FONTDATA_ITEM(61, 227, 227, fontpage_61_227_227), // '' -- ''
FONTDATA_ITEM(61, 229, 229, fontpage_61_229_229), // '' -- ''
FONTDATA_ITEM(61, 231, 231, fontpage_61_231_231), // '' -- ''
FONTDATA_ITEM(61, 233, 233, fontpage_61_233_233), // '' -- ''
FONTDATA_ITEM(61, 235, 235, fontpage_61_235_235), // '' -- ''
FONTDATA_ITEM(61, 237, 237, fontpage_61_237_237), // '' -- ''
FONTDATA_ITEM(61, 239, 239, fontpage_61_239_239), // '' -- ''
FONTDATA_ITEM(61, 241, 241, fontpage_61_241_241), // 'ự' -- 'ự'
static const uxg_fontinfo_t g_fontinfo_vi[] PROGMEM = {
FONTDATA_ITEM(2, 131, 131, fontpage_2_131_131), // 'ă' -- 'ă'
FONTDATA_ITEM(2, 144, 145, fontpage_2_144_145), // 'Đ' -- 'đ'
FONTDATA_ITEM(2, 169, 169, fontpage_2_169_169), // 'ĩ' -- 'ĩ'
FONTDATA_ITEM(3, 161, 161, fontpage_3_161_161), // 'ơ' -- 'ơ'
FONTDATA_ITEM(3, 175, 176, fontpage_3_175_176), // 'Ư' -- 'ư'
FONTDATA_ITEM(6, 131, 131, fontpage_6_131_131), // '̃' -- '̃'
FONTDATA_ITEM(6, 137, 137, fontpage_6_137_137), // '̉' -- '̉'
FONTDATA_ITEM(6, 163, 163, fontpage_6_163_163), // '̣' -- '̣'
FONTDATA_ITEM(6, 192, 193, fontpage_6_192_193), // '̀' -- '́'
FONTDATA_ITEM(61, 161, 161, fontpage_61_161_161), // '' -- ''
FONTDATA_ITEM(61, 163, 163, fontpage_61_163_163), // '' -- ''
FONTDATA_ITEM(61, 165, 165, fontpage_61_165_165), // '' -- ''
FONTDATA_ITEM(61, 167, 167, fontpage_61_167_167), // '' -- ''
FONTDATA_ITEM(61, 169, 169, fontpage_61_169_169), // '' -- ''
FONTDATA_ITEM(61, 173, 173, fontpage_61_173_173), // '' -- ''
FONTDATA_ITEM(61, 175, 175, fontpage_61_175_175), // '' -- ''
FONTDATA_ITEM(61, 177, 177, fontpage_61_177_177), // '' -- ''
FONTDATA_ITEM(61, 179, 179, fontpage_61_179_179), // '' -- ''
FONTDATA_ITEM(61, 181, 181, fontpage_61_181_181), // '' -- ''
FONTDATA_ITEM(61, 183, 183, fontpage_61_183_183), // '' -- ''
FONTDATA_ITEM(61, 191, 191, fontpage_61_191_191), // 'ế' -- 'ế'
FONTDATA_ITEM(61, 193, 193, fontpage_61_193_193), // '' -- ''
FONTDATA_ITEM(61, 195, 195, fontpage_61_195_195), // '' -- ''
FONTDATA_ITEM(61, 199, 199, fontpage_61_199_199), // '' -- ''
FONTDATA_ITEM(61, 201, 201, fontpage_61_201_201), // '' -- ''
FONTDATA_ITEM(61, 203, 203, fontpage_61_203_203), // '' -- ''
FONTDATA_ITEM(61, 205, 205, fontpage_61_205_205), // '' -- ''
FONTDATA_ITEM(61, 207, 207, fontpage_61_207_207), // '' -- ''
FONTDATA_ITEM(61, 209, 209, fontpage_61_209_209), // '' -- ''
FONTDATA_ITEM(61, 211, 211, fontpage_61_211_211), // '' -- ''
FONTDATA_ITEM(61, 213, 213, fontpage_61_213_213), // '' -- ''
FONTDATA_ITEM(61, 215, 215, fontpage_61_215_215), // '' -- ''
FONTDATA_ITEM(61, 217, 217, fontpage_61_217_217), // '' -- ''
FONTDATA_ITEM(61, 219, 219, fontpage_61_219_219), // '' -- ''
FONTDATA_ITEM(61, 221, 221, fontpage_61_221_221), // '' -- ''
FONTDATA_ITEM(61, 223, 223, fontpage_61_223_223), // '' -- ''
FONTDATA_ITEM(61, 225, 225, fontpage_61_225_225), // '' -- ''
FONTDATA_ITEM(61, 227, 227, fontpage_61_227_227), // '' -- ''
FONTDATA_ITEM(61, 229, 229, fontpage_61_229_229), // '' -- ''
FONTDATA_ITEM(61, 231, 231, fontpage_61_231_231), // '' -- ''
FONTDATA_ITEM(61, 233, 233, fontpage_61_233_233), // '' -- ''
FONTDATA_ITEM(61, 235, 235, fontpage_61_235_235), // '' -- ''
FONTDATA_ITEM(61, 237, 237, fontpage_61_237_237), // '' -- ''
FONTDATA_ITEM(61, 239, 239, fontpage_61_239_239), // '' -- ''
FONTDATA_ITEM(61, 241, 241, fontpage_61_241_241), // '' -- ''
};
+360 -359
View File
@@ -3,7 +3,9 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#include "langdata.h"
const u8g_fntpgm_uint8_t fontpage_64_157_157[26] U8G_FONT_SECTION("fontpage_64_157_157") = {
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x9D,0x9D,0x00,0x07,0x00,0x00,
@@ -1462,362 +1464,361 @@ const u8g_fntpgm_uint8_t fontpage_510_154_154[30] U8G_FONT_SECTION("fontpage_510
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x9A,0x9A,0x00,0x08,0x00,0x00,
0x00,0x02,0x07,0x07,0x0C,0x06,0x01,0xC0,0xC0,0x00,0x00,0x00,0xC0,0xC0};
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
FONTDATA_ITEM(64, 157, 157, fontpage_64_157_157), // '' -- ''
FONTDATA_ITEM(69, 191, 191, fontpage_69_191_191), // '' -- ''
FONTDATA_ITEM(156, 128, 128, fontpage_156_128_128), // '' -- ''
FONTDATA_ITEM(156, 137, 139, fontpage_156_137_139), // '' -- ''
FONTDATA_ITEM(156, 141, 141, fontpage_156_141_141), // '' -- ''
FONTDATA_ITEM(156, 147, 147, fontpage_156_147_147), // '' -- ''
FONTDATA_ITEM(156, 157, 157, fontpage_156_157_157), // '' -- ''
FONTDATA_ITEM(156, 170, 170, fontpage_156_170_170), // '' -- ''
FONTDATA_ITEM(156, 173, 173, fontpage_156_173_173), // '' -- ''
FONTDATA_ITEM(156, 186, 187, fontpage_156_186_187), // '' -- ''
FONTDATA_ITEM(156, 201, 201, fontpage_156_201_201), // '' -- ''
FONTDATA_ITEM(156, 203, 203, fontpage_156_203_203), // '' -- ''
FONTDATA_ITEM(157, 134, 134, fontpage_157_134_134), // '' -- ''
FONTDATA_ITEM(157, 140, 140, fontpage_157_140_140), // '' -- ''
FONTDATA_ITEM(157, 142, 142, fontpage_157_142_142), // '' -- ''
FONTDATA_ITEM(157, 164, 164, fontpage_157_164_164), // '' -- ''
FONTDATA_ITEM(157, 174, 174, fontpage_157_174_174), // '' -- ''
FONTDATA_ITEM(157, 206, 206, fontpage_157_206_206), // '' -- ''
FONTDATA_ITEM(157, 228, 229, fontpage_157_228_229), // '' -- ''
FONTDATA_ITEM(157, 246, 246, fontpage_157_246_246), // '' -- ''
FONTDATA_ITEM(157, 253, 253, fontpage_157_253_253), // '' -- ''
FONTDATA_ITEM(158, 145, 145, fontpage_158_145_145), // '' -- ''
FONTDATA_ITEM(158, 160, 160, fontpage_158_160_160), // '' -- ''
FONTDATA_ITEM(158, 205, 206, fontpage_158_205_206), // '' -- ''
FONTDATA_ITEM(158, 211, 211, fontpage_158_211_211), // '' -- ''
FONTDATA_ITEM(158, 217, 217, fontpage_158_217_217), // '' -- ''
FONTDATA_ITEM(158, 220, 220, fontpage_158_220_220), // '' -- ''
FONTDATA_ITEM(158, 255, 255, fontpage_158_255_255), // '使' -- '使'
FONTDATA_ITEM(159, 155, 155, fontpage_159_155_155), // '' -- ''
FONTDATA_ITEM(159, 181, 181, fontpage_159_181_181), // '' -- ''
FONTDATA_ITEM(159, 221, 221, fontpage_159_221_221), // '' -- ''
FONTDATA_ITEM(159, 225, 225, fontpage_159_225_225), // '' -- ''
FONTDATA_ITEM(160, 188, 188, fontpage_160_188_188), // '' -- ''
FONTDATA_ITEM(160, 190, 190, fontpage_160_190_190), // '' -- ''
FONTDATA_ITEM(160, 207, 207, fontpage_160_207_207), // '' -- ''
FONTDATA_ITEM(160, 220, 220, fontpage_160_220_220), // '' -- ''
FONTDATA_ITEM(161, 168, 168, fontpage_161_168_168), // '' -- ''
FONTDATA_ITEM(161, 207, 207, fontpage_161_207_207), // '' -- ''
FONTDATA_ITEM(162, 197, 197, fontpage_162_197_197), // '' -- ''
FONTDATA_ITEM(162, 200, 201, fontpage_162_200_201), // '' -- ''
FONTDATA_ITEM(162, 229, 229, fontpage_162_229_229), // '' -- ''
FONTDATA_ITEM(162, 232, 232, fontpage_162_232_232), // '' -- ''
FONTDATA_ITEM(162, 241, 241, fontpage_162_241_241), // '' -- ''
FONTDATA_ITEM(162, 243, 243, fontpage_162_243_243), // '' -- ''
FONTDATA_ITEM(162, 247, 247, fontpage_162_247_247), // '' -- ''
FONTDATA_ITEM(163, 151, 151, fontpage_163_151_151), // '' -- ''
FONTDATA_ITEM(163, 183, 183, fontpage_163_183_183), // '' -- ''
FONTDATA_ITEM(163, 198, 198, fontpage_163_198_198), // '' -- ''
FONTDATA_ITEM(163, 250, 251, fontpage_163_250_251), // '' -- ''
FONTDATA_ITEM(164, 134, 135, fontpage_164_134_135), // '' -- ''
FONTDATA_ITEM(164, 155, 155, fontpage_164_155_155), // '' -- ''
FONTDATA_ITEM(164, 157, 157, fontpage_164_157_157), // '' -- ''
FONTDATA_ITEM(164, 171, 171, fontpage_164_171_171), // '' -- ''
FONTDATA_ITEM(164, 176, 176, fontpage_164_176_176), // '' -- ''
FONTDATA_ITEM(164, 182, 183, fontpage_164_182_183), // '' -- ''
FONTDATA_ITEM(164, 242, 242, fontpage_164_242_242), // '' -- ''
FONTDATA_ITEM(165, 155, 155, fontpage_165_155_155), // '' -- ''
FONTDATA_ITEM(165, 159, 160, fontpage_165_159_160), // '' -- ''
FONTDATA_ITEM(165, 168, 168, fontpage_165_168_168), // '' -- ''
FONTDATA_ITEM(166, 150, 150, fontpage_166_150_150), // '' -- ''
FONTDATA_ITEM(166, 199, 199, fontpage_166_199_199), // '' -- ''
FONTDATA_ITEM(166, 202, 202, fontpage_166_202_202), // '' -- ''
FONTDATA_ITEM(166, 207, 207, fontpage_166_207_207), // '' -- ''
FONTDATA_ITEM(166, 213, 213, fontpage_166_213_213), // '' -- ''
FONTDATA_ITEM(166, 225, 225, fontpage_166_225_225), // '' -- ''
FONTDATA_ITEM(166, 240, 241, fontpage_166_240_241), // '' -- ''
FONTDATA_ITEM(166, 244, 244, fontpage_166_244_244), // '' -- ''
FONTDATA_ITEM(166, 248, 248, fontpage_166_248_248), // '' -- ''
FONTDATA_ITEM(167, 139, 139, fontpage_167_139_139), // '' -- ''
FONTDATA_ITEM(167, 159, 159, fontpage_167_159_159), // '' -- ''
FONTDATA_ITEM(167, 204, 205, fontpage_167_204_205), // '' -- ''
FONTDATA_ITEM(167, 214, 214, fontpage_167_214_214), // '' -- ''
FONTDATA_ITEM(167, 216, 216, fontpage_167_216_216), // '' -- ''
FONTDATA_ITEM(167, 240, 240, fontpage_167_240_240), // '' -- ''
FONTDATA_ITEM(168, 131, 131, fontpage_168_131_131), // '' -- ''
FONTDATA_ITEM(168, 136, 136, fontpage_168_136_136), // '' -- ''
FONTDATA_ITEM(168, 141, 142, fontpage_168_141_142), // '' -- ''
FONTDATA_ITEM(168, 145, 145, fontpage_168_145_145), // '' -- ''
FONTDATA_ITEM(168, 166, 166, fontpage_168_166_166), // '' -- ''
FONTDATA_ITEM(168, 175, 175, fontpage_168_175_175), // '' -- ''
FONTDATA_ITEM(168, 202, 202, fontpage_168_202_202), // '' -- ''
FONTDATA_ITEM(168, 232, 232, fontpage_168_232_232), // '' -- ''
FONTDATA_ITEM(168, 253, 253, fontpage_168_253_253), // '' -- ''
FONTDATA_ITEM(169, 140, 140, fontpage_169_140_140), // '' -- ''
FONTDATA_ITEM(169, 205, 205, fontpage_169_205_205), // '' -- ''
FONTDATA_ITEM(171, 183, 183, fontpage_171_183_183), // '' -- ''
FONTDATA_ITEM(172, 180, 180, fontpage_172_180_180), // '' -- ''
FONTDATA_ITEM(172, 232, 232, fontpage_172_232_232), // '' -- ''
FONTDATA_ITEM(172, 244, 244, fontpage_172_244_244), // '' -- ''
FONTDATA_ITEM(173, 222, 222, fontpage_173_222_222), // '' -- ''
FONTDATA_ITEM(173, 224, 224, fontpage_173_224_224), // '' -- ''
FONTDATA_ITEM(173, 250, 250, fontpage_173_250_250), // '' -- ''
FONTDATA_ITEM(173, 254, 254, fontpage_173_254_254), // '' -- ''
FONTDATA_ITEM(174, 168, 168, fontpage_174_168_168), // '' -- ''
FONTDATA_ITEM(174, 207, 207, fontpage_174_207_207), // '' -- ''
FONTDATA_ITEM(174, 215, 215, fontpage_174_215_215), // '' -- ''
FONTDATA_ITEM(175, 139, 139, fontpage_175_139_139), // '' -- ''
FONTDATA_ITEM(175, 171, 171, fontpage_175_171_171), // '' -- ''
FONTDATA_ITEM(176, 235, 235, fontpage_176_235_235), // '' -- ''
FONTDATA_ITEM(177, 243, 243, fontpage_177_243_243), // '' -- ''
FONTDATA_ITEM(178, 135, 135, fontpage_178_135_135), // '' -- ''
FONTDATA_ITEM(178, 141, 141, fontpage_178_141_141), // '' -- ''
FONTDATA_ITEM(178, 150, 150, fontpage_178_150_150), // '' -- ''
FONTDATA_ITEM(178, 154, 154, fontpage_178_154_154), // '' -- ''
FONTDATA_ITEM(178, 167, 167, fontpage_178_167_167), // '' -- ''
FONTDATA_ITEM(178, 169, 170, fontpage_178_169_170), // '' -- ''
FONTDATA_ITEM(178, 177, 177, fontpage_178_177_177), // '' -- ''
FONTDATA_ITEM(178, 180, 180, fontpage_178_180_180), // '' -- ''
FONTDATA_ITEM(178, 253, 253, fontpage_178_253_253), // '' -- ''
FONTDATA_ITEM(179, 203, 203, fontpage_179_203_203), // '' -- ''
FONTDATA_ITEM(182, 208, 208, fontpage_182_208_208), // '' -- ''
FONTDATA_ITEM(182, 216, 216, fontpage_182_216_216), // '' -- ''
FONTDATA_ITEM(183, 137, 137, fontpage_183_137_137), // '' -- ''
FONTDATA_ITEM(183, 140, 140, fontpage_183_140_140), // '' -- ''
FONTDATA_ITEM(183, 154, 154, fontpage_183_154_154), // '' -- ''
FONTDATA_ITEM(183, 162, 162, fontpage_183_162_162), // '' -- ''
FONTDATA_ITEM(183, 171, 171, fontpage_183_171_171), // '' -- ''
FONTDATA_ITEM(183, 249, 249, fontpage_183_249_249), // '' -- ''
FONTDATA_ITEM(184, 134, 134, fontpage_184_134_134), // '' -- ''
FONTDATA_ITEM(184, 143, 143, fontpage_184_143_143), // '' -- ''
FONTDATA_ITEM(184, 177, 177, fontpage_184_177_177), // '' -- ''
FONTDATA_ITEM(184, 207, 207, fontpage_184_207_207), // '' -- ''
FONTDATA_ITEM(187, 229, 229, fontpage_187_229_229), // '' -- ''
FONTDATA_ITEM(187, 238, 238, fontpage_187_238_238), // '' -- ''
FONTDATA_ITEM(187, 242, 242, fontpage_187_242_242), // '' -- ''
FONTDATA_ITEM(188, 243, 243, fontpage_188_243_243), // '' -- ''
FONTDATA_ITEM(188, 246, 246, fontpage_188_246_246), // '' -- ''
FONTDATA_ITEM(189, 138, 138, fontpage_189_138_138), // '' -- ''
FONTDATA_ITEM(189, 148, 148, fontpage_189_148_148), // '' -- ''
FONTDATA_ITEM(189, 159, 159, fontpage_189_159_159), // '' -- ''
FONTDATA_ITEM(189, 166, 166, fontpage_189_166_166), // '' -- ''
FONTDATA_ITEM(190, 128, 128, fontpage_190_128_128), // '' -- ''
FONTDATA_ITEM(190, 131, 131, fontpage_190_131_131), // '' -- ''
FONTDATA_ITEM(190, 143, 143, fontpage_190_143_143), // '' -- ''
FONTDATA_ITEM(190, 149, 149, fontpage_190_149_149), // '' -- ''
FONTDATA_ITEM(190, 185, 185, fontpage_190_185_185), // '' -- ''
FONTDATA_ITEM(190, 210, 210, fontpage_190_210_210), // '' -- ''
FONTDATA_ITEM(191, 132, 133, fontpage_191_132_133), // '' -- ''
FONTDATA_ITEM(191, 170, 170, fontpage_191_170_170), // '' -- ''
FONTDATA_ITEM(191, 174, 174, fontpage_191_174_174), // '' -- ''
FONTDATA_ITEM(191, 195, 195, fontpage_191_195_195), // '' -- ''
FONTDATA_ITEM(191, 253, 253, fontpage_191_253_253), // '' -- ''
FONTDATA_ITEM(192, 167, 167, fontpage_192_167_167), // '' -- ''
FONTDATA_ITEM(192, 187, 187, fontpage_192_187_187), // '' -- ''
FONTDATA_ITEM(192, 226, 226, fontpage_192_226_226), // '' -- ''
FONTDATA_ITEM(192, 239, 239, fontpage_192_239_239), // '' -- ''
FONTDATA_ITEM(194, 159, 159, fontpage_194_159_159), // '' -- ''
FONTDATA_ITEM(196, 143, 144, fontpage_196_143_144), // '' -- ''
FONTDATA_ITEM(196, 183, 183, fontpage_196_183_183), // '' -- ''
FONTDATA_ITEM(196, 192, 192, fontpage_196_192_192), // '' -- ''
FONTDATA_ITEM(196, 199, 199, fontpage_196_199_199), // '' -- ''
FONTDATA_ITEM(196, 203, 203, fontpage_196_203_203), // '' -- ''
FONTDATA_ITEM(196, 211, 211, fontpage_196_211_211), // '' -- ''
FONTDATA_ITEM(196, 231, 231, fontpage_196_231_231), // '' -- ''
FONTDATA_ITEM(196, 249, 249, fontpage_196_249_249), // '' -- ''
FONTDATA_ITEM(197, 150, 150, fontpage_197_150_150), // '' -- ''
FONTDATA_ITEM(197, 165, 165, fontpage_197_165_165), // '' -- ''
FONTDATA_ITEM(197, 172, 172, fontpage_197_172_172), // '' -- ''
FONTDATA_ITEM(197, 189, 189, fontpage_197_189_189), // '' -- ''
FONTDATA_ITEM(197, 212, 212, fontpage_197_212_212), // '' -- ''
FONTDATA_ITEM(197, 233, 233, fontpage_197_233_233), // '' -- ''
FONTDATA_ITEM(198, 137, 137, fontpage_198_137_137), // '' -- ''
FONTDATA_ITEM(198, 161, 161, fontpage_198_161_161), // '' -- ''
FONTDATA_ITEM(198, 164, 164, fontpage_198_164_164), // '' -- ''
FONTDATA_ITEM(198, 223, 223, fontpage_198_223_223), // '' -- ''
FONTDATA_ITEM(198, 226, 226, fontpage_198_226_226), // '' -- ''
FONTDATA_ITEM(199, 137, 137, fontpage_199_137_137), // '' -- ''
FONTDATA_ITEM(199, 162, 162, fontpage_199_162_162), // '' -- ''
FONTDATA_ITEM(199, 165, 165, fontpage_199_165_165), // '' -- ''
FONTDATA_ITEM(199, 167, 167, fontpage_199_167_167), // '' -- ''
FONTDATA_ITEM(199, 208, 208, fontpage_199_208_208), // '' -- ''
FONTDATA_ITEM(199, 210, 210, fontpage_199_210_210), // '' -- ''
FONTDATA_ITEM(202, 182, 182, fontpage_202_182_182), // '' -- ''
FONTDATA_ITEM(202, 190, 190, fontpage_202_190_190), // '' -- ''
FONTDATA_ITEM(202, 240, 240, fontpage_202_240_240), // '' -- ''
FONTDATA_ITEM(202, 242, 242, fontpage_202_242_242), // '' -- ''
FONTDATA_ITEM(202, 244, 244, fontpage_202_244_244), // '' -- ''
FONTDATA_ITEM(203, 135, 135, fontpage_203_135_135), // '' -- ''
FONTDATA_ITEM(203, 153, 153, fontpage_203_153_153), // '' -- ''
FONTDATA_ITEM(203, 156, 156, fontpage_203_156_156), // '' -- ''
FONTDATA_ITEM(203, 173, 173, fontpage_203_173_173), // '' -- ''
FONTDATA_ITEM(203, 176, 176, fontpage_203_176_176), // '' -- ''
FONTDATA_ITEM(203, 185, 185, fontpage_203_185_185), // '' -- ''
FONTDATA_ITEM(203, 224, 224, fontpage_203_224_224), // '' -- ''
FONTDATA_ITEM(203, 246, 246, fontpage_203_246_246), // '' -- ''
FONTDATA_ITEM(204, 142, 142, fontpage_204_142_142), // '' -- ''
FONTDATA_ITEM(204, 175, 175, fontpage_204_175_175), // '' -- ''
FONTDATA_ITEM(205, 130, 130, fontpage_205_130_130), // '' -- ''
FONTDATA_ITEM(205, 171, 171, fontpage_205_171_171), // '' -- ''
FONTDATA_ITEM(205, 244, 244, fontpage_205_244_244), // '' -- ''
FONTDATA_ITEM(206, 128, 128, fontpage_206_128_128), // '' -- ''
FONTDATA_ITEM(206, 137, 137, fontpage_206_137_137), // '' -- ''
FONTDATA_ITEM(206, 159, 159, fontpage_206_159_159), // '' -- ''
FONTDATA_ITEM(206, 186, 186, fontpage_206_186_186), // '' -- ''
FONTDATA_ITEM(206, 192, 192, fontpage_206_192_192), // '' -- ''
FONTDATA_ITEM(206, 223, 223, fontpage_206_223_223), // '' -- ''
FONTDATA_ITEM(206, 225, 225, fontpage_206_225_225), // '' -- ''
FONTDATA_ITEM(206, 229, 229, fontpage_206_229_229), // '' -- ''
FONTDATA_ITEM(206, 255, 255, fontpage_206_255_255), // '' -- ''
FONTDATA_ITEM(207, 151, 151, fontpage_207_151_151), // '' -- ''
FONTDATA_ITEM(207, 241, 241, fontpage_207_241_241), // '' -- ''
FONTDATA_ITEM(208, 161, 161, fontpage_208_161_161), // '' -- ''
FONTDATA_ITEM(208, 188, 188, fontpage_208_188_188), // '' -- ''
FONTDATA_ITEM(209, 175, 175, fontpage_209_175_175), // '' -- ''
FONTDATA_ITEM(209, 192, 192, fontpage_209_192_192), // '' -- ''
FONTDATA_ITEM(211, 253, 253, fontpage_211_253_253), // '' -- ''
FONTDATA_ITEM(212, 161, 161, fontpage_212_161_161), // '' -- ''
FONTDATA_ITEM(212, 217, 217, fontpage_212_217_217), // '' -- ''
FONTDATA_ITEM(214, 226, 227, fontpage_214_226_227), // '' -- ''
FONTDATA_ITEM(214, 229, 229, fontpage_214_229_229), // '' -- ''
FONTDATA_ITEM(215, 212, 212, fontpage_215_212_212), // '' -- ''
FONTDATA_ITEM(217, 161, 161, fontpage_217_161_161), // '' -- ''
FONTDATA_ITEM(217, 226, 226, fontpage_217_226_226), // '' -- ''
FONTDATA_ITEM(217, 232, 232, fontpage_217_232_232), // '' -- ''
FONTDATA_ITEM(218, 151, 151, fontpage_218_151_151), // '' -- ''
FONTDATA_ITEM(218, 187, 187, fontpage_218_187_187), // '' -- ''
FONTDATA_ITEM(218, 193, 193, fontpage_218_193_193), // '' -- ''
FONTDATA_ITEM(218, 203, 203, fontpage_218_203_203), // '' -- ''
FONTDATA_ITEM(219, 136, 136, fontpage_219_136_136), // '' -- ''
FONTDATA_ITEM(219, 225, 225, fontpage_219_225_225), // '' -- ''
FONTDATA_ITEM(219, 247, 247, fontpage_219_247_247), // '' -- ''
FONTDATA_ITEM(220, 133, 133, fontpage_220_133_133), // '' -- ''
FONTDATA_ITEM(220, 169, 169, fontpage_220_169_169), // '' -- ''
FONTDATA_ITEM(220, 184, 184, fontpage_220_184_184), // '' -- ''
FONTDATA_ITEM(221, 144, 144, fontpage_221_144_144), // '' -- ''
FONTDATA_ITEM(221, 162, 162, fontpage_221_162_162), // '' -- ''
FONTDATA_ITEM(221, 209, 209, fontpage_221_209_209), // '' -- ''
FONTDATA_ITEM(222, 143, 143, fontpage_222_143_143), // '' -- ''
FONTDATA_ITEM(223, 192, 192, fontpage_223_192_192), // '' -- ''
FONTDATA_ITEM(224, 239, 239, fontpage_224_239_239), // '' -- ''
FONTDATA_ITEM(225, 185, 185, fontpage_225_185_185), // '' -- ''
FONTDATA_ITEM(225, 237, 237, fontpage_225_237_237), // '' -- ''
FONTDATA_ITEM(228, 199, 199, fontpage_228_199_199), // '' -- ''
FONTDATA_ITEM(228, 233, 233, fontpage_228_233_233), // '' -- ''
FONTDATA_ITEM(228, 249, 249, fontpage_228_249_249), // '' -- ''
FONTDATA_ITEM(231, 135, 135, fontpage_231_135_135), // '' -- ''
FONTDATA_ITEM(231, 175, 175, fontpage_231_175_175), // '' -- ''
FONTDATA_ITEM(234, 168, 168, fontpage_234_168_168), // '' -- ''
FONTDATA_ITEM(234, 181, 181, fontpage_234_181_181), // '' -- ''
FONTDATA_ITEM(234, 229, 229, fontpage_234_229_229), // '' -- ''
FONTDATA_ITEM(236, 253, 253, fontpage_236_253_253), // '' -- ''
FONTDATA_ITEM(237, 132, 132, fontpage_237_132_132), // '' -- ''
FONTDATA_ITEM(237, 209, 209, fontpage_237_209_209), // '' -- ''
FONTDATA_ITEM(237, 244, 244, fontpage_237_244_244), // '' -- ''
FONTDATA_ITEM(238, 129, 129, fontpage_238_129_129), // '' -- ''
FONTDATA_ITEM(238, 160, 160, fontpage_238_160_160), // '' -- ''
FONTDATA_ITEM(240, 238, 238, fontpage_240_238_238), // '' -- ''
FONTDATA_ITEM(243, 187, 187, fontpage_243_187_187), // '' -- ''
FONTDATA_ITEM(243, 251, 251, fontpage_243_251_251), // '' -- ''
FONTDATA_ITEM(244, 250, 250, fontpage_244_250_250), // '' -- ''
FONTDATA_ITEM(245, 239, 239, fontpage_245_239_239), // '' -- ''
FONTDATA_ITEM(246, 172, 172, fontpage_246_172_172), // '' -- ''
FONTDATA_ITEM(246, 201, 201, fontpage_246_201_201), // '' -- ''
FONTDATA_ITEM(247, 128, 128, fontpage_247_128_128), // '' -- ''
FONTDATA_ITEM(247, 177, 177, fontpage_247_177_177), // '' -- ''
FONTDATA_ITEM(248, 251, 251, fontpage_248_251_251), // '' -- ''
FONTDATA_ITEM(250, 162, 162, fontpage_250_162_162), // '' -- ''
FONTDATA_ITEM(250, 171, 171, fontpage_250_171_171), // '' -- ''
FONTDATA_ITEM(253, 162, 162, fontpage_253_162_162), // '' -- ''
FONTDATA_ITEM(253, 167, 167, fontpage_253_167_167), // '' -- ''
FONTDATA_ITEM(253, 191, 191, fontpage_253_191_191), // '线' -- '线'
FONTDATA_ITEM(253, 198, 198, fontpage_253_198_198), // '' -- ''
FONTDATA_ITEM(253, 200, 200, fontpage_253_200_200), // '' -- ''
FONTDATA_ITEM(253, 211, 211, fontpage_253_211_211), // '' -- ''
FONTDATA_ITEM(253, 217, 217, fontpage_253_217_217), // '' -- ''
FONTDATA_ITEM(253, 223, 223, fontpage_253_223_223), // '' -- ''
FONTDATA_ITEM(253, 231, 231, fontpage_253_231_231), // '' -- ''
FONTDATA_ITEM(253, 234, 234, fontpage_253_234_234), // '' -- ''
FONTDATA_ITEM(253, 237, 237, fontpage_253_237_237), // '' -- ''
FONTDATA_ITEM(253, 255, 255, fontpage_253_255_255), // '绿' -- '绿'
FONTDATA_ITEM(254, 150, 150, fontpage_254_150_150), // '' -- ''
FONTDATA_ITEM(254, 186, 186, fontpage_254_186_186), // '' -- ''
FONTDATA_ITEM(254, 209, 209, fontpage_254_209_209), // '' -- ''
FONTDATA_ITEM(254, 238, 238, fontpage_254_238_238), // '' -- ''
FONTDATA_ITEM(254, 242, 242, fontpage_254_242_242), // '' -- ''
FONTDATA_ITEM(256, 133, 133, fontpage_256_133_133), // '' -- ''
FONTDATA_ITEM(256, 234, 234, fontpage_256_234_234), // '' -- ''
FONTDATA_ITEM(257, 253, 253, fontpage_257_253_253), // '' -- ''
FONTDATA_ITEM(259, 234, 234, fontpage_259_234_234), // '' -- ''
FONTDATA_ITEM(259, 243, 243, fontpage_259_243_243), // '' -- ''
FONTDATA_ITEM(263, 220, 220, fontpage_263_220_220), // '' -- ''
FONTDATA_ITEM(265, 221, 221, fontpage_265_221_221), // '' -- ''
FONTDATA_ITEM(269, 199, 199, fontpage_269_199_199), // '' -- ''
FONTDATA_ITEM(272, 204, 204, fontpage_272_204_204), // '' -- ''
FONTDATA_ITEM(273, 171, 171, fontpage_273_171_171), // '' -- ''
FONTDATA_ITEM(273, 197, 197, fontpage_273_197_197), // '' -- ''
FONTDATA_ITEM(275, 129, 129, fontpage_275_129_129), // '' -- ''
FONTDATA_ITEM(275, 210, 210, fontpage_275_210_210), // '' -- ''
FONTDATA_ITEM(279, 161, 161, fontpage_279_161_161), // '' -- ''
FONTDATA_ITEM(279, 174, 174, fontpage_279_174_174), // '' -- ''
FONTDATA_ITEM(279, 190, 190, fontpage_279_190_190), // '' -- ''
FONTDATA_ITEM(279, 213, 213, fontpage_279_213_213), // '' -- ''
FONTDATA_ITEM(279, 239, 239, fontpage_279_239_239), // '' -- ''
FONTDATA_ITEM(279, 247, 247, fontpage_279_247_247), // '' -- ''
FONTDATA_ITEM(279, 251, 251, fontpage_279_251_251), // '' -- ''
FONTDATA_ITEM(280, 131, 131, fontpage_280_131_131), // '' -- ''
FONTDATA_ITEM(282, 165, 165, fontpage_282_165_165), // '' -- ''
FONTDATA_ITEM(282, 170, 170, fontpage_282_170_170), // '' -- ''
FONTDATA_ITEM(282, 247, 247, fontpage_282_247_247), // '' -- ''
FONTDATA_ITEM(283, 133, 133, fontpage_283_133_133), // '' -- ''
FONTDATA_ITEM(283, 221, 221, fontpage_283_221_221), // '' -- ''
FONTDATA_ITEM(286, 236, 236, fontpage_286_236_236), // '' -- ''
FONTDATA_ITEM(286, 239, 239, fontpage_286_239_239), // '' -- ''
FONTDATA_ITEM(286, 244, 244, fontpage_286_244_244), // '' -- ''
FONTDATA_ITEM(286, 253, 253, fontpage_286_253_253), // '' -- ''
FONTDATA_ITEM(287, 145, 145, fontpage_287_145_145), // '' -- ''
FONTDATA_ITEM(287, 147, 147, fontpage_287_147_147), // '' -- ''
FONTDATA_ITEM(287, 185, 185, fontpage_287_185_185), // '' -- ''
FONTDATA_ITEM(287, 193, 193, fontpage_287_193_193), // '' -- ''
FONTDATA_ITEM(287, 208, 209, fontpage_287_208_209), // '' -- ''
FONTDATA_ITEM(287, 212, 212, fontpage_287_212_212), // '' -- ''
FONTDATA_ITEM(287, 216, 216, fontpage_287_216_216), // '' -- ''
FONTDATA_ITEM(287, 219, 219, fontpage_287_219_219), // '' -- ''
FONTDATA_ITEM(287, 222, 222, fontpage_287_222_222), // '' -- ''
FONTDATA_ITEM(287, 247, 247, fontpage_287_247_247), // '' -- ''
FONTDATA_ITEM(288, 128, 128, fontpage_288_128_128), // '退' -- '退'
FONTDATA_ITEM(288, 137, 137, fontpage_288_137_137), // '' -- ''
FONTDATA_ITEM(288, 159, 159, fontpage_288_159_159), // '' -- ''
FONTDATA_ITEM(289, 232, 232, fontpage_289_232_232), // '' -- ''
FONTDATA_ITEM(290, 205, 205, fontpage_290_205_205), // '' -- ''
FONTDATA_ITEM(291, 202, 202, fontpage_291_202_202), // '' -- ''
FONTDATA_ITEM(291, 205, 205, fontpage_291_205_205), // '' -- ''
FONTDATA_ITEM(291, 207, 207, fontpage_291_207_207), // '' -- ''
FONTDATA_ITEM(297, 136, 136, fontpage_297_136_136), // '' -- ''
FONTDATA_ITEM(297, 174, 174, fontpage_297_174_174), // '' -- ''
FONTDATA_ITEM(298, 153, 153, fontpage_298_153_153), // '' -- ''
FONTDATA_ITEM(298, 220, 220, fontpage_298_220_220), // '' -- ''
FONTDATA_ITEM(298, 255, 255, fontpage_298_255_255), // '' -- ''
FONTDATA_ITEM(299, 237, 237, fontpage_299_237_237), // '' -- ''
FONTDATA_ITEM(299, 242, 242, fontpage_299_242_242), // '' -- ''
FONTDATA_ITEM(299, 244, 244, fontpage_299_244_244), // '' -- ''
FONTDATA_ITEM(300, 136, 136, fontpage_300_136_136), // '' -- ''
FONTDATA_ITEM(300, 205, 205, fontpage_300_205_205), // '' -- ''
FONTDATA_ITEM(300, 208, 208, fontpage_300_208_208), // '' -- ''
FONTDATA_ITEM(300, 228, 228, fontpage_300_228_228), // '' -- ''
FONTDATA_ITEM(300, 233, 233, fontpage_300_233_233), // '' -- ''
FONTDATA_ITEM(301, 246, 246, fontpage_301_246_246), // '' -- ''
FONTDATA_ITEM(302, 128, 128, fontpage_302_128_128), // '' -- ''
FONTDATA_ITEM(302, 210, 210, fontpage_302_210_210), // '' -- ''
FONTDATA_ITEM(302, 222, 222, fontpage_302_222_222), // '' -- ''
FONTDATA_ITEM(302, 224, 224, fontpage_302_224_224), // '' -- ''
FONTDATA_ITEM(302, 226, 226, fontpage_302_226_226), // '' -- ''
FONTDATA_ITEM(304, 245, 245, fontpage_304_245_245), // '' -- ''
FONTDATA_ITEM(304, 249, 249, fontpage_304_249_249), // '' -- ''
FONTDATA_ITEM(305, 132, 132, fontpage_305_132_132), // '' -- ''
FONTDATA_ITEM(305, 145, 145, fontpage_305_145_145), // '' -- ''
FONTDATA_ITEM(305, 157, 157, fontpage_305_157_157), // '' -- ''
FONTDATA_ITEM(305, 206, 206, fontpage_305_206_206), // '' -- ''
FONTDATA_ITEM(306, 241, 241, fontpage_306_241_241), // '' -- ''
FONTDATA_ITEM(308, 236, 236, fontpage_308_236_236), // '' -- ''
FONTDATA_ITEM(308, 241, 241, fontpage_308_241_241), // '' -- ''
FONTDATA_ITEM(309, 216, 216, fontpage_309_216_216), // '' -- ''
FONTDATA_ITEM(317, 196, 196, fontpage_317_196_196), // '' -- ''
FONTDATA_ITEM(317, 222, 222, fontpage_317_222_222), // '' -- ''
FONTDATA_ITEM(318, 208, 208, fontpage_318_208_208), // '' -- ''
FONTDATA_ITEM(510, 154, 154, fontpage_510_154_154), // '' -- ''
static const uxg_fontinfo_t g_fontinfo_zh_CN[] PROGMEM = {
FONTDATA_ITEM(64, 157, 157, fontpage_64_157_157), // '”' -- '”'
FONTDATA_ITEM(69, 191, 191, fontpage_69_191_191), // '' -- ''
FONTDATA_ITEM(156, 128, 128, fontpage_156_128_128), // '' -- ''
FONTDATA_ITEM(156, 137, 139, fontpage_156_137_139), // '' -- ''
FONTDATA_ITEM(156, 141, 141, fontpage_156_141_141), // '' -- ''
FONTDATA_ITEM(156, 147, 147, fontpage_156_147_147), // '' -- ''
FONTDATA_ITEM(156, 157, 157, fontpage_156_157_157), // '' -- ''
FONTDATA_ITEM(156, 170, 170, fontpage_156_170_170), // '' -- ''
FONTDATA_ITEM(156, 173, 173, fontpage_156_173_173), // '' -- ''
FONTDATA_ITEM(156, 186, 187, fontpage_156_186_187), // '' -- ''
FONTDATA_ITEM(156, 201, 201, fontpage_156_201_201), // '' -- ''
FONTDATA_ITEM(156, 203, 203, fontpage_156_203_203), // '' -- ''
FONTDATA_ITEM(157, 134, 134, fontpage_157_134_134), // '' -- ''
FONTDATA_ITEM(157, 140, 140, fontpage_157_140_140), // '' -- ''
FONTDATA_ITEM(157, 142, 142, fontpage_157_142_142), // '' -- ''
FONTDATA_ITEM(157, 164, 164, fontpage_157_164_164), // '' -- ''
FONTDATA_ITEM(157, 174, 174, fontpage_157_174_174), // '' -- ''
FONTDATA_ITEM(157, 206, 206, fontpage_157_206_206), // '' -- ''
FONTDATA_ITEM(157, 228, 229, fontpage_157_228_229), // '' -- ''
FONTDATA_ITEM(157, 246, 246, fontpage_157_246_246), // '' -- ''
FONTDATA_ITEM(157, 253, 253, fontpage_157_253_253), // '' -- ''
FONTDATA_ITEM(158, 145, 145, fontpage_158_145_145), // '' -- ''
FONTDATA_ITEM(158, 160, 160, fontpage_158_160_160), // '' -- ''
FONTDATA_ITEM(158, 205, 206, fontpage_158_205_206), // '' -- ''
FONTDATA_ITEM(158, 211, 211, fontpage_158_211_211), // '' -- ''
FONTDATA_ITEM(158, 217, 217, fontpage_158_217_217), // '' -- ''
FONTDATA_ITEM(158, 220, 220, fontpage_158_220_220), // '' -- ''
FONTDATA_ITEM(158, 255, 255, fontpage_158_255_255), // '使' -- '使'
FONTDATA_ITEM(159, 155, 155, fontpage_159_155_155), // '' -- ''
FONTDATA_ITEM(159, 181, 181, fontpage_159_181_181), // '' -- ''
FONTDATA_ITEM(159, 221, 221, fontpage_159_221_221), // '' -- ''
FONTDATA_ITEM(159, 225, 225, fontpage_159_225_225), // '' -- ''
FONTDATA_ITEM(160, 188, 188, fontpage_160_188_188), // '' -- ''
FONTDATA_ITEM(160, 190, 190, fontpage_160_190_190), // '' -- ''
FONTDATA_ITEM(160, 207, 207, fontpage_160_207_207), // '' -- ''
FONTDATA_ITEM(160, 220, 220, fontpage_160_220_220), // '' -- ''
FONTDATA_ITEM(161, 168, 168, fontpage_161_168_168), // '' -- ''
FONTDATA_ITEM(161, 207, 207, fontpage_161_207_207), // '' -- ''
FONTDATA_ITEM(162, 197, 197, fontpage_162_197_197), // '' -- ''
FONTDATA_ITEM(162, 200, 201, fontpage_162_200_201), // '' -- ''
FONTDATA_ITEM(162, 229, 229, fontpage_162_229_229), // '' -- ''
FONTDATA_ITEM(162, 232, 232, fontpage_162_232_232), // '' -- ''
FONTDATA_ITEM(162, 241, 241, fontpage_162_241_241), // '' -- ''
FONTDATA_ITEM(162, 243, 243, fontpage_162_243_243), // '' -- ''
FONTDATA_ITEM(162, 247, 247, fontpage_162_247_247), // '' -- ''
FONTDATA_ITEM(163, 151, 151, fontpage_163_151_151), // '' -- ''
FONTDATA_ITEM(163, 183, 183, fontpage_163_183_183), // '' -- ''
FONTDATA_ITEM(163, 198, 198, fontpage_163_198_198), // '' -- ''
FONTDATA_ITEM(163, 250, 251, fontpage_163_250_251), // '' -- ''
FONTDATA_ITEM(164, 134, 135, fontpage_164_134_135), // '' -- ''
FONTDATA_ITEM(164, 155, 155, fontpage_164_155_155), // '' -- ''
FONTDATA_ITEM(164, 157, 157, fontpage_164_157_157), // '' -- ''
FONTDATA_ITEM(164, 171, 171, fontpage_164_171_171), // '' -- ''
FONTDATA_ITEM(164, 176, 176, fontpage_164_176_176), // '' -- ''
FONTDATA_ITEM(164, 182, 183, fontpage_164_182_183), // '' -- ''
FONTDATA_ITEM(164, 242, 242, fontpage_164_242_242), // '' -- ''
FONTDATA_ITEM(165, 155, 155, fontpage_165_155_155), // '' -- ''
FONTDATA_ITEM(165, 159, 160, fontpage_165_159_160), // '' -- ''
FONTDATA_ITEM(165, 168, 168, fontpage_165_168_168), // '' -- ''
FONTDATA_ITEM(166, 150, 150, fontpage_166_150_150), // '' -- ''
FONTDATA_ITEM(166, 199, 199, fontpage_166_199_199), // '' -- ''
FONTDATA_ITEM(166, 202, 202, fontpage_166_202_202), // '' -- ''
FONTDATA_ITEM(166, 207, 207, fontpage_166_207_207), // '' -- ''
FONTDATA_ITEM(166, 213, 213, fontpage_166_213_213), // '' -- ''
FONTDATA_ITEM(166, 225, 225, fontpage_166_225_225), // '' -- ''
FONTDATA_ITEM(166, 240, 241, fontpage_166_240_241), // '' -- ''
FONTDATA_ITEM(166, 244, 244, fontpage_166_244_244), // '' -- ''
FONTDATA_ITEM(166, 248, 248, fontpage_166_248_248), // '' -- ''
FONTDATA_ITEM(167, 139, 139, fontpage_167_139_139), // '' -- ''
FONTDATA_ITEM(167, 159, 159, fontpage_167_159_159), // '' -- ''
FONTDATA_ITEM(167, 204, 205, fontpage_167_204_205), // '' -- ''
FONTDATA_ITEM(167, 214, 214, fontpage_167_214_214), // '' -- ''
FONTDATA_ITEM(167, 216, 216, fontpage_167_216_216), // '' -- ''
FONTDATA_ITEM(167, 240, 240, fontpage_167_240_240), // '' -- ''
FONTDATA_ITEM(168, 131, 131, fontpage_168_131_131), // '' -- ''
FONTDATA_ITEM(168, 136, 136, fontpage_168_136_136), // '' -- ''
FONTDATA_ITEM(168, 141, 142, fontpage_168_141_142), // '' -- ''
FONTDATA_ITEM(168, 145, 145, fontpage_168_145_145), // '' -- ''
FONTDATA_ITEM(168, 166, 166, fontpage_168_166_166), // '' -- ''
FONTDATA_ITEM(168, 175, 175, fontpage_168_175_175), // '' -- ''
FONTDATA_ITEM(168, 202, 202, fontpage_168_202_202), // '' -- ''
FONTDATA_ITEM(168, 232, 232, fontpage_168_232_232), // '' -- ''
FONTDATA_ITEM(168, 253, 253, fontpage_168_253_253), // '' -- ''
FONTDATA_ITEM(169, 140, 140, fontpage_169_140_140), // '' -- ''
FONTDATA_ITEM(169, 205, 205, fontpage_169_205_205), // '' -- ''
FONTDATA_ITEM(171, 183, 183, fontpage_171_183_183), // '' -- ''
FONTDATA_ITEM(172, 180, 180, fontpage_172_180_180), // '' -- ''
FONTDATA_ITEM(172, 232, 232, fontpage_172_232_232), // '' -- ''
FONTDATA_ITEM(172, 244, 244, fontpage_172_244_244), // '' -- ''
FONTDATA_ITEM(173, 222, 222, fontpage_173_222_222), // '' -- ''
FONTDATA_ITEM(173, 224, 224, fontpage_173_224_224), // '' -- ''
FONTDATA_ITEM(173, 250, 250, fontpage_173_250_250), // '' -- ''
FONTDATA_ITEM(173, 254, 254, fontpage_173_254_254), // '' -- ''
FONTDATA_ITEM(174, 168, 168, fontpage_174_168_168), // '' -- ''
FONTDATA_ITEM(174, 207, 207, fontpage_174_207_207), // '' -- ''
FONTDATA_ITEM(174, 215, 215, fontpage_174_215_215), // '' -- ''
FONTDATA_ITEM(175, 139, 139, fontpage_175_139_139), // '' -- ''
FONTDATA_ITEM(175, 171, 171, fontpage_175_171_171), // '' -- ''
FONTDATA_ITEM(176, 235, 235, fontpage_176_235_235), // '' -- ''
FONTDATA_ITEM(177, 243, 243, fontpage_177_243_243), // '' -- ''
FONTDATA_ITEM(178, 135, 135, fontpage_178_135_135), // '' -- ''
FONTDATA_ITEM(178, 141, 141, fontpage_178_141_141), // '' -- ''
FONTDATA_ITEM(178, 150, 150, fontpage_178_150_150), // '' -- ''
FONTDATA_ITEM(178, 154, 154, fontpage_178_154_154), // '' -- ''
FONTDATA_ITEM(178, 167, 167, fontpage_178_167_167), // '' -- ''
FONTDATA_ITEM(178, 169, 170, fontpage_178_169_170), // '' -- ''
FONTDATA_ITEM(178, 177, 177, fontpage_178_177_177), // '' -- ''
FONTDATA_ITEM(178, 180, 180, fontpage_178_180_180), // '' -- ''
FONTDATA_ITEM(178, 253, 253, fontpage_178_253_253), // '' -- ''
FONTDATA_ITEM(179, 203, 203, fontpage_179_203_203), // '' -- ''
FONTDATA_ITEM(182, 208, 208, fontpage_182_208_208), // '' -- ''
FONTDATA_ITEM(182, 216, 216, fontpage_182_216_216), // '' -- ''
FONTDATA_ITEM(183, 137, 137, fontpage_183_137_137), // '' -- ''
FONTDATA_ITEM(183, 140, 140, fontpage_183_140_140), // '' -- ''
FONTDATA_ITEM(183, 154, 154, fontpage_183_154_154), // '' -- ''
FONTDATA_ITEM(183, 162, 162, fontpage_183_162_162), // '' -- ''
FONTDATA_ITEM(183, 171, 171, fontpage_183_171_171), // '' -- ''
FONTDATA_ITEM(183, 249, 249, fontpage_183_249_249), // '' -- ''
FONTDATA_ITEM(184, 134, 134, fontpage_184_134_134), // '' -- ''
FONTDATA_ITEM(184, 143, 143, fontpage_184_143_143), // '' -- ''
FONTDATA_ITEM(184, 177, 177, fontpage_184_177_177), // '' -- ''
FONTDATA_ITEM(184, 207, 207, fontpage_184_207_207), // '' -- ''
FONTDATA_ITEM(187, 229, 229, fontpage_187_229_229), // '' -- ''
FONTDATA_ITEM(187, 238, 238, fontpage_187_238_238), // '' -- ''
FONTDATA_ITEM(187, 242, 242, fontpage_187_242_242), // '' -- ''
FONTDATA_ITEM(188, 243, 243, fontpage_188_243_243), // '' -- ''
FONTDATA_ITEM(188, 246, 246, fontpage_188_246_246), // '' -- ''
FONTDATA_ITEM(189, 138, 138, fontpage_189_138_138), // '' -- ''
FONTDATA_ITEM(189, 148, 148, fontpage_189_148_148), // '' -- ''
FONTDATA_ITEM(189, 159, 159, fontpage_189_159_159), // '' -- ''
FONTDATA_ITEM(189, 166, 166, fontpage_189_166_166), // '' -- ''
FONTDATA_ITEM(190, 128, 128, fontpage_190_128_128), // '' -- ''
FONTDATA_ITEM(190, 131, 131, fontpage_190_131_131), // '' -- ''
FONTDATA_ITEM(190, 143, 143, fontpage_190_143_143), // '' -- ''
FONTDATA_ITEM(190, 149, 149, fontpage_190_149_149), // '' -- ''
FONTDATA_ITEM(190, 185, 185, fontpage_190_185_185), // '' -- ''
FONTDATA_ITEM(190, 210, 210, fontpage_190_210_210), // '' -- ''
FONTDATA_ITEM(191, 132, 133, fontpage_191_132_133), // '' -- ''
FONTDATA_ITEM(191, 170, 170, fontpage_191_170_170), // '' -- ''
FONTDATA_ITEM(191, 174, 174, fontpage_191_174_174), // '' -- ''
FONTDATA_ITEM(191, 195, 195, fontpage_191_195_195), // '' -- ''
FONTDATA_ITEM(191, 253, 253, fontpage_191_253_253), // '' -- ''
FONTDATA_ITEM(192, 167, 167, fontpage_192_167_167), // '' -- ''
FONTDATA_ITEM(192, 187, 187, fontpage_192_187_187), // '' -- ''
FONTDATA_ITEM(192, 226, 226, fontpage_192_226_226), // '' -- ''
FONTDATA_ITEM(192, 239, 239, fontpage_192_239_239), // '' -- ''
FONTDATA_ITEM(194, 159, 159, fontpage_194_159_159), // '' -- ''
FONTDATA_ITEM(196, 143, 144, fontpage_196_143_144), // '' -- ''
FONTDATA_ITEM(196, 183, 183, fontpage_196_183_183), // '' -- ''
FONTDATA_ITEM(196, 192, 192, fontpage_196_192_192), // '' -- ''
FONTDATA_ITEM(196, 199, 199, fontpage_196_199_199), // '' -- ''
FONTDATA_ITEM(196, 203, 203, fontpage_196_203_203), // '' -- ''
FONTDATA_ITEM(196, 211, 211, fontpage_196_211_211), // '' -- ''
FONTDATA_ITEM(196, 231, 231, fontpage_196_231_231), // '' -- ''
FONTDATA_ITEM(196, 249, 249, fontpage_196_249_249), // '' -- ''
FONTDATA_ITEM(197, 150, 150, fontpage_197_150_150), // '' -- ''
FONTDATA_ITEM(197, 165, 165, fontpage_197_165_165), // '' -- ''
FONTDATA_ITEM(197, 172, 172, fontpage_197_172_172), // '' -- ''
FONTDATA_ITEM(197, 189, 189, fontpage_197_189_189), // '' -- ''
FONTDATA_ITEM(197, 212, 212, fontpage_197_212_212), // '' -- ''
FONTDATA_ITEM(197, 233, 233, fontpage_197_233_233), // '' -- ''
FONTDATA_ITEM(198, 137, 137, fontpage_198_137_137), // '' -- ''
FONTDATA_ITEM(198, 161, 161, fontpage_198_161_161), // '' -- ''
FONTDATA_ITEM(198, 164, 164, fontpage_198_164_164), // '' -- ''
FONTDATA_ITEM(198, 223, 223, fontpage_198_223_223), // '' -- ''
FONTDATA_ITEM(198, 226, 226, fontpage_198_226_226), // '' -- ''
FONTDATA_ITEM(199, 137, 137, fontpage_199_137_137), // '' -- ''
FONTDATA_ITEM(199, 162, 162, fontpage_199_162_162), // '' -- ''
FONTDATA_ITEM(199, 165, 165, fontpage_199_165_165), // '' -- ''
FONTDATA_ITEM(199, 167, 167, fontpage_199_167_167), // '' -- ''
FONTDATA_ITEM(199, 208, 208, fontpage_199_208_208), // '' -- ''
FONTDATA_ITEM(199, 210, 210, fontpage_199_210_210), // '' -- ''
FONTDATA_ITEM(202, 182, 182, fontpage_202_182_182), // '' -- ''
FONTDATA_ITEM(202, 190, 190, fontpage_202_190_190), // '' -- ''
FONTDATA_ITEM(202, 240, 240, fontpage_202_240_240), // '' -- ''
FONTDATA_ITEM(202, 242, 242, fontpage_202_242_242), // '' -- ''
FONTDATA_ITEM(202, 244, 244, fontpage_202_244_244), // '' -- ''
FONTDATA_ITEM(203, 135, 135, fontpage_203_135_135), // '' -- ''
FONTDATA_ITEM(203, 153, 153, fontpage_203_153_153), // '' -- ''
FONTDATA_ITEM(203, 156, 156, fontpage_203_156_156), // '' -- ''
FONTDATA_ITEM(203, 173, 173, fontpage_203_173_173), // '' -- ''
FONTDATA_ITEM(203, 176, 176, fontpage_203_176_176), // '' -- ''
FONTDATA_ITEM(203, 185, 185, fontpage_203_185_185), // '' -- ''
FONTDATA_ITEM(203, 224, 224, fontpage_203_224_224), // '' -- ''
FONTDATA_ITEM(203, 246, 246, fontpage_203_246_246), // '' -- ''
FONTDATA_ITEM(204, 142, 142, fontpage_204_142_142), // '' -- ''
FONTDATA_ITEM(204, 175, 175, fontpage_204_175_175), // '' -- ''
FONTDATA_ITEM(205, 130, 130, fontpage_205_130_130), // '' -- ''
FONTDATA_ITEM(205, 171, 171, fontpage_205_171_171), // '' -- ''
FONTDATA_ITEM(205, 244, 244, fontpage_205_244_244), // '' -- ''
FONTDATA_ITEM(206, 128, 128, fontpage_206_128_128), // '' -- ''
FONTDATA_ITEM(206, 137, 137, fontpage_206_137_137), // '' -- ''
FONTDATA_ITEM(206, 159, 159, fontpage_206_159_159), // '' -- ''
FONTDATA_ITEM(206, 186, 186, fontpage_206_186_186), // '' -- ''
FONTDATA_ITEM(206, 192, 192, fontpage_206_192_192), // '' -- ''
FONTDATA_ITEM(206, 223, 223, fontpage_206_223_223), // '' -- ''
FONTDATA_ITEM(206, 225, 225, fontpage_206_225_225), // '' -- ''
FONTDATA_ITEM(206, 229, 229, fontpage_206_229_229), // '' -- ''
FONTDATA_ITEM(206, 255, 255, fontpage_206_255_255), // '' -- ''
FONTDATA_ITEM(207, 151, 151, fontpage_207_151_151), // '' -- ''
FONTDATA_ITEM(207, 241, 241, fontpage_207_241_241), // '' -- ''
FONTDATA_ITEM(208, 161, 161, fontpage_208_161_161), // '' -- ''
FONTDATA_ITEM(208, 188, 188, fontpage_208_188_188), // '' -- ''
FONTDATA_ITEM(209, 175, 175, fontpage_209_175_175), // '' -- ''
FONTDATA_ITEM(209, 192, 192, fontpage_209_192_192), // '' -- ''
FONTDATA_ITEM(211, 253, 253, fontpage_211_253_253), // '' -- ''
FONTDATA_ITEM(212, 161, 161, fontpage_212_161_161), // '' -- ''
FONTDATA_ITEM(212, 217, 217, fontpage_212_217_217), // '' -- ''
FONTDATA_ITEM(214, 226, 227, fontpage_214_226_227), // '' -- ''
FONTDATA_ITEM(214, 229, 229, fontpage_214_229_229), // '' -- ''
FONTDATA_ITEM(215, 212, 212, fontpage_215_212_212), // '' -- ''
FONTDATA_ITEM(217, 161, 161, fontpage_217_161_161), // '' -- ''
FONTDATA_ITEM(217, 226, 226, fontpage_217_226_226), // '' -- ''
FONTDATA_ITEM(217, 232, 232, fontpage_217_232_232), // '' -- ''
FONTDATA_ITEM(218, 151, 151, fontpage_218_151_151), // '' -- ''
FONTDATA_ITEM(218, 187, 187, fontpage_218_187_187), // '' -- ''
FONTDATA_ITEM(218, 193, 193, fontpage_218_193_193), // '' -- ''
FONTDATA_ITEM(218, 203, 203, fontpage_218_203_203), // '' -- ''
FONTDATA_ITEM(219, 136, 136, fontpage_219_136_136), // '' -- ''
FONTDATA_ITEM(219, 225, 225, fontpage_219_225_225), // '' -- ''
FONTDATA_ITEM(219, 247, 247, fontpage_219_247_247), // '' -- ''
FONTDATA_ITEM(220, 133, 133, fontpage_220_133_133), // '' -- ''
FONTDATA_ITEM(220, 169, 169, fontpage_220_169_169), // '' -- ''
FONTDATA_ITEM(220, 184, 184, fontpage_220_184_184), // '' -- ''
FONTDATA_ITEM(221, 144, 144, fontpage_221_144_144), // '' -- ''
FONTDATA_ITEM(221, 162, 162, fontpage_221_162_162), // '' -- ''
FONTDATA_ITEM(221, 209, 209, fontpage_221_209_209), // '' -- ''
FONTDATA_ITEM(222, 143, 143, fontpage_222_143_143), // '' -- ''
FONTDATA_ITEM(223, 192, 192, fontpage_223_192_192), // '' -- ''
FONTDATA_ITEM(224, 239, 239, fontpage_224_239_239), // '' -- ''
FONTDATA_ITEM(225, 185, 185, fontpage_225_185_185), // '' -- ''
FONTDATA_ITEM(225, 237, 237, fontpage_225_237_237), // '' -- ''
FONTDATA_ITEM(228, 199, 199, fontpage_228_199_199), // '' -- ''
FONTDATA_ITEM(228, 233, 233, fontpage_228_233_233), // '' -- ''
FONTDATA_ITEM(228, 249, 249, fontpage_228_249_249), // '' -- ''
FONTDATA_ITEM(231, 135, 135, fontpage_231_135_135), // '' -- ''
FONTDATA_ITEM(231, 175, 175, fontpage_231_175_175), // '' -- ''
FONTDATA_ITEM(234, 168, 168, fontpage_234_168_168), // '' -- ''
FONTDATA_ITEM(234, 181, 181, fontpage_234_181_181), // '' -- ''
FONTDATA_ITEM(234, 229, 229, fontpage_234_229_229), // '' -- ''
FONTDATA_ITEM(236, 253, 253, fontpage_236_253_253), // '' -- ''
FONTDATA_ITEM(237, 132, 132, fontpage_237_132_132), // '' -- ''
FONTDATA_ITEM(237, 209, 209, fontpage_237_209_209), // '' -- ''
FONTDATA_ITEM(237, 244, 244, fontpage_237_244_244), // '' -- ''
FONTDATA_ITEM(238, 129, 129, fontpage_238_129_129), // '' -- ''
FONTDATA_ITEM(238, 160, 160, fontpage_238_160_160), // '' -- ''
FONTDATA_ITEM(240, 238, 238, fontpage_240_238_238), // '' -- ''
FONTDATA_ITEM(243, 187, 187, fontpage_243_187_187), // '' -- ''
FONTDATA_ITEM(243, 251, 251, fontpage_243_251_251), // '' -- ''
FONTDATA_ITEM(244, 250, 250, fontpage_244_250_250), // '' -- ''
FONTDATA_ITEM(245, 239, 239, fontpage_245_239_239), // '' -- ''
FONTDATA_ITEM(246, 172, 172, fontpage_246_172_172), // '' -- ''
FONTDATA_ITEM(246, 201, 201, fontpage_246_201_201), // '' -- ''
FONTDATA_ITEM(247, 128, 128, fontpage_247_128_128), // '' -- ''
FONTDATA_ITEM(247, 177, 177, fontpage_247_177_177), // '' -- ''
FONTDATA_ITEM(248, 251, 251, fontpage_248_251_251), // '' -- ''
FONTDATA_ITEM(250, 162, 162, fontpage_250_162_162), // '' -- ''
FONTDATA_ITEM(250, 171, 171, fontpage_250_171_171), // '' -- ''
FONTDATA_ITEM(253, 162, 162, fontpage_253_162_162), // '' -- ''
FONTDATA_ITEM(253, 167, 167, fontpage_253_167_167), // '' -- ''
FONTDATA_ITEM(253, 191, 191, fontpage_253_191_191), // '线' -- '线'
FONTDATA_ITEM(253, 198, 198, fontpage_253_198_198), // '' -- ''
FONTDATA_ITEM(253, 200, 200, fontpage_253_200_200), // '' -- ''
FONTDATA_ITEM(253, 211, 211, fontpage_253_211_211), // '' -- ''
FONTDATA_ITEM(253, 217, 217, fontpage_253_217_217), // '' -- ''
FONTDATA_ITEM(253, 223, 223, fontpage_253_223_223), // '' -- ''
FONTDATA_ITEM(253, 231, 231, fontpage_253_231_231), // '' -- ''
FONTDATA_ITEM(253, 234, 234, fontpage_253_234_234), // '' -- ''
FONTDATA_ITEM(253, 237, 237, fontpage_253_237_237), // '' -- ''
FONTDATA_ITEM(253, 255, 255, fontpage_253_255_255), // '绿' -- '绿'
FONTDATA_ITEM(254, 150, 150, fontpage_254_150_150), // '' -- ''
FONTDATA_ITEM(254, 186, 186, fontpage_254_186_186), // '' -- ''
FONTDATA_ITEM(254, 209, 209, fontpage_254_209_209), // '' -- ''
FONTDATA_ITEM(254, 238, 238, fontpage_254_238_238), // '' -- ''
FONTDATA_ITEM(254, 242, 242, fontpage_254_242_242), // '' -- ''
FONTDATA_ITEM(256, 133, 133, fontpage_256_133_133), // '' -- ''
FONTDATA_ITEM(256, 234, 234, fontpage_256_234_234), // '' -- ''
FONTDATA_ITEM(257, 253, 253, fontpage_257_253_253), // '' -- ''
FONTDATA_ITEM(259, 234, 234, fontpage_259_234_234), // '' -- ''
FONTDATA_ITEM(259, 243, 243, fontpage_259_243_243), // '' -- ''
FONTDATA_ITEM(263, 220, 220, fontpage_263_220_220), // '' -- ''
FONTDATA_ITEM(265, 221, 221, fontpage_265_221_221), // '' -- ''
FONTDATA_ITEM(269, 199, 199, fontpage_269_199_199), // '' -- ''
FONTDATA_ITEM(272, 204, 204, fontpage_272_204_204), // '' -- ''
FONTDATA_ITEM(273, 171, 171, fontpage_273_171_171), // '' -- ''
FONTDATA_ITEM(273, 197, 197, fontpage_273_197_197), // '' -- ''
FONTDATA_ITEM(275, 129, 129, fontpage_275_129_129), // '' -- ''
FONTDATA_ITEM(275, 210, 210, fontpage_275_210_210), // '' -- ''
FONTDATA_ITEM(279, 161, 161, fontpage_279_161_161), // '' -- ''
FONTDATA_ITEM(279, 174, 174, fontpage_279_174_174), // '' -- ''
FONTDATA_ITEM(279, 190, 190, fontpage_279_190_190), // '' -- ''
FONTDATA_ITEM(279, 213, 213, fontpage_279_213_213), // '' -- ''
FONTDATA_ITEM(279, 239, 239, fontpage_279_239_239), // '' -- ''
FONTDATA_ITEM(279, 247, 247, fontpage_279_247_247), // '' -- ''
FONTDATA_ITEM(279, 251, 251, fontpage_279_251_251), // '' -- ''
FONTDATA_ITEM(280, 131, 131, fontpage_280_131_131), // '' -- ''
FONTDATA_ITEM(282, 165, 165, fontpage_282_165_165), // '' -- ''
FONTDATA_ITEM(282, 170, 170, fontpage_282_170_170), // '' -- ''
FONTDATA_ITEM(282, 247, 247, fontpage_282_247_247), // '' -- ''
FONTDATA_ITEM(283, 133, 133, fontpage_283_133_133), // '' -- ''
FONTDATA_ITEM(283, 221, 221, fontpage_283_221_221), // '' -- ''
FONTDATA_ITEM(286, 236, 236, fontpage_286_236_236), // '' -- ''
FONTDATA_ITEM(286, 239, 239, fontpage_286_239_239), // '' -- ''
FONTDATA_ITEM(286, 244, 244, fontpage_286_244_244), // '' -- ''
FONTDATA_ITEM(286, 253, 253, fontpage_286_253_253), // '' -- ''
FONTDATA_ITEM(287, 145, 145, fontpage_287_145_145), // '' -- ''
FONTDATA_ITEM(287, 147, 147, fontpage_287_147_147), // '' -- ''
FONTDATA_ITEM(287, 185, 185, fontpage_287_185_185), // '' -- ''
FONTDATA_ITEM(287, 193, 193, fontpage_287_193_193), // '' -- ''
FONTDATA_ITEM(287, 208, 209, fontpage_287_208_209), // '' -- ''
FONTDATA_ITEM(287, 212, 212, fontpage_287_212_212), // '' -- ''
FONTDATA_ITEM(287, 216, 216, fontpage_287_216_216), // '' -- ''
FONTDATA_ITEM(287, 219, 219, fontpage_287_219_219), // '' -- ''
FONTDATA_ITEM(287, 222, 222, fontpage_287_222_222), // '' -- ''
FONTDATA_ITEM(287, 247, 247, fontpage_287_247_247), // '' -- ''
FONTDATA_ITEM(288, 128, 128, fontpage_288_128_128), // '退' -- '退'
FONTDATA_ITEM(288, 137, 137, fontpage_288_137_137), // '' -- ''
FONTDATA_ITEM(288, 159, 159, fontpage_288_159_159), // '' -- ''
FONTDATA_ITEM(289, 232, 232, fontpage_289_232_232), // '' -- ''
FONTDATA_ITEM(290, 205, 205, fontpage_290_205_205), // '' -- ''
FONTDATA_ITEM(291, 202, 202, fontpage_291_202_202), // '' -- ''
FONTDATA_ITEM(291, 205, 205, fontpage_291_205_205), // '' -- ''
FONTDATA_ITEM(291, 207, 207, fontpage_291_207_207), // '' -- ''
FONTDATA_ITEM(297, 136, 136, fontpage_297_136_136), // '' -- ''
FONTDATA_ITEM(297, 174, 174, fontpage_297_174_174), // '' -- ''
FONTDATA_ITEM(298, 153, 153, fontpage_298_153_153), // '' -- ''
FONTDATA_ITEM(298, 220, 220, fontpage_298_220_220), // '' -- ''
FONTDATA_ITEM(298, 255, 255, fontpage_298_255_255), // '' -- ''
FONTDATA_ITEM(299, 237, 237, fontpage_299_237_237), // '' -- ''
FONTDATA_ITEM(299, 242, 242, fontpage_299_242_242), // '' -- ''
FONTDATA_ITEM(299, 244, 244, fontpage_299_244_244), // '' -- ''
FONTDATA_ITEM(300, 136, 136, fontpage_300_136_136), // '' -- ''
FONTDATA_ITEM(300, 205, 205, fontpage_300_205_205), // '' -- ''
FONTDATA_ITEM(300, 208, 208, fontpage_300_208_208), // '' -- ''
FONTDATA_ITEM(300, 228, 228, fontpage_300_228_228), // '' -- ''
FONTDATA_ITEM(300, 233, 233, fontpage_300_233_233), // '' -- ''
FONTDATA_ITEM(301, 246, 246, fontpage_301_246_246), // '' -- ''
FONTDATA_ITEM(302, 128, 128, fontpage_302_128_128), // '' -- ''
FONTDATA_ITEM(302, 210, 210, fontpage_302_210_210), // '' -- ''
FONTDATA_ITEM(302, 222, 222, fontpage_302_222_222), // '' -- ''
FONTDATA_ITEM(302, 224, 224, fontpage_302_224_224), // '' -- ''
FONTDATA_ITEM(302, 226, 226, fontpage_302_226_226), // '' -- ''
FONTDATA_ITEM(304, 245, 245, fontpage_304_245_245), // '' -- ''
FONTDATA_ITEM(304, 249, 249, fontpage_304_249_249), // '' -- ''
FONTDATA_ITEM(305, 132, 132, fontpage_305_132_132), // '' -- ''
FONTDATA_ITEM(305, 145, 145, fontpage_305_145_145), // '' -- ''
FONTDATA_ITEM(305, 157, 157, fontpage_305_157_157), // '' -- ''
FONTDATA_ITEM(305, 206, 206, fontpage_305_206_206), // '' -- ''
FONTDATA_ITEM(306, 241, 241, fontpage_306_241_241), // '' -- ''
FONTDATA_ITEM(308, 236, 236, fontpage_308_236_236), // '' -- ''
FONTDATA_ITEM(308, 241, 241, fontpage_308_241_241), // '' -- ''
FONTDATA_ITEM(309, 216, 216, fontpage_309_216_216), // '' -- ''
FONTDATA_ITEM(317, 196, 196, fontpage_317_196_196), // '' -- ''
FONTDATA_ITEM(317, 222, 222, fontpage_317_222_222), // '' -- ''
FONTDATA_ITEM(318, 208, 208, fontpage_318_208_208), // '' -- ''
FONTDATA_ITEM(510, 154, 154, fontpage_510_154_154), // '' -- ''
};
+303 -302
View File
@@ -3,7 +3,9 @@
* Contents will be REPLACED by future processing!
* Use genallfont.sh to generate font data for updated languages.
*/
#include <U8glib-HAL.h>
#pragma once
#include "langdata.h"
const u8g_fntpgm_uint8_t fontpage_69_191_191[28] U8G_FONT_SECTION("fontpage_69_191_191") = {
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xBF,0xBF,0x00,0x05,0x00,0x00,
@@ -1217,305 +1219,304 @@ const u8g_fntpgm_uint8_t fontpage_510_154_154[30] U8G_FONT_SECTION("fontpage_510
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x9A,0x9A,0x00,0x08,0x00,0x00,
0x00,0x02,0x07,0x07,0x0C,0x06,0x01,0xC0,0xC0,0x00,0x00,0x00,0xC0,0xC0};
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
FONTDATA_ITEM(69, 191, 191, fontpage_69_191_191), // '' -- ''
FONTDATA_ITEM(156, 128, 128, fontpage_156_128_128), // '' -- ''
FONTDATA_ITEM(156, 137, 139, fontpage_156_137_139), // '' -- ''
FONTDATA_ITEM(156, 141, 141, fontpage_156_141_141), // '' -- ''
FONTDATA_ITEM(156, 166, 166, fontpage_156_166_166), // '' -- ''
FONTDATA_ITEM(156, 173, 173, fontpage_156_173_173), // '' -- ''
FONTDATA_ITEM(156, 187, 187, fontpage_156_187_187), // '' -- ''
FONTDATA_ITEM(156, 203, 203, fontpage_156_203_203), // '' -- ''
FONTDATA_ITEM(157, 164, 164, fontpage_157_164_164), // '' -- ''
FONTDATA_ITEM(157, 174, 174, fontpage_157_174_174), // '' -- ''
FONTDATA_ITEM(157, 228, 228, fontpage_157_228_228), // '' -- ''
FONTDATA_ITEM(157, 246, 246, fontpage_157_246_246), // '' -- ''
FONTDATA_ITEM(157, 253, 253, fontpage_157_253_253), // '' -- ''
FONTDATA_ITEM(158, 145, 145, fontpage_158_145_145), // '' -- ''
FONTDATA_ITEM(158, 205, 206, fontpage_158_205_206), // '' -- ''
FONTDATA_ITEM(158, 220, 220, fontpage_158_220_220), // '' -- ''
FONTDATA_ITEM(159, 155, 155, fontpage_159_155_155), // '' -- ''
FONTDATA_ITEM(159, 221, 221, fontpage_159_221_221), // '' -- ''
FONTDATA_ITEM(159, 225, 225, fontpage_159_225_225), // '' -- ''
FONTDATA_ITEM(160, 139, 139, fontpage_160_139_139), // '' -- ''
FONTDATA_ITEM(160, 188, 188, fontpage_160_188_188), // '' -- ''
FONTDATA_ITEM(160, 207, 207, fontpage_160_207_207), // '' -- ''
FONTDATA_ITEM(160, 220, 220, fontpage_160_220_220), // '' -- ''
FONTDATA_ITEM(160, 245, 245, fontpage_160_245_245), // '' -- ''
FONTDATA_ITEM(161, 153, 153, fontpage_161_153_153), // '' -- ''
FONTDATA_ITEM(161, 179, 179, fontpage_161_179_179), // '' -- ''
FONTDATA_ITEM(161, 190, 190, fontpage_161_190_190), // '' -- ''
FONTDATA_ITEM(162, 178, 178, fontpage_162_178_178), // '' -- ''
FONTDATA_ITEM(162, 197, 197, fontpage_162_197_197), // '' -- ''
FONTDATA_ITEM(162, 200, 201, fontpage_162_200_201), // '' -- ''
FONTDATA_ITEM(162, 229, 229, fontpage_162_229_229), // '' -- ''
FONTDATA_ITEM(162, 232, 232, fontpage_162_232_232), // '' -- ''
FONTDATA_ITEM(162, 241, 241, fontpage_162_241_241), // '' -- ''
FONTDATA_ITEM(162, 247, 247, fontpage_162_247_247), // '' -- ''
FONTDATA_ITEM(163, 151, 151, fontpage_163_151_151), // '' -- ''
FONTDATA_ITEM(163, 183, 183, fontpage_163_183_183), // '' -- ''
FONTDATA_ITEM(163, 198, 198, fontpage_163_198_198), // '' -- ''
FONTDATA_ITEM(163, 250, 250, fontpage_163_250_250), // '' -- ''
FONTDATA_ITEM(164, 134, 134, fontpage_164_134_134), // '' -- ''
FONTDATA_ITEM(164, 151, 151, fontpage_164_151_151), // '' -- ''
FONTDATA_ITEM(164, 157, 157, fontpage_164_157_157), // '' -- ''
FONTDATA_ITEM(164, 176, 176, fontpage_164_176_176), // '' -- ''
FONTDATA_ITEM(164, 182, 183, fontpage_164_182_183), // '' -- ''
FONTDATA_ITEM(164, 245, 245, fontpage_164_245_245), // '' -- ''
FONTDATA_ITEM(165, 155, 155, fontpage_165_155_155), // '' -- ''
FONTDATA_ITEM(165, 160, 160, fontpage_165_160_160), // '' -- ''
FONTDATA_ITEM(165, 213, 213, fontpage_165_213_213), // '' -- ''
FONTDATA_ITEM(166, 150, 150, fontpage_166_150_150), // '' -- ''
FONTDATA_ITEM(166, 202, 202, fontpage_166_202_202), // '' -- ''
FONTDATA_ITEM(166, 212, 212, fontpage_166_212_212), // '' -- ''
FONTDATA_ITEM(166, 225, 225, fontpage_166_225_225), // '' -- ''
FONTDATA_ITEM(166, 240, 240, fontpage_166_240_240), // '' -- ''
FONTDATA_ITEM(166, 248, 248, fontpage_166_248_248), // '' -- ''
FONTDATA_ITEM(166, 251, 251, fontpage_166_251_251), // '' -- ''
FONTDATA_ITEM(167, 159, 159, fontpage_167_159_159), // '' -- ''
FONTDATA_ITEM(167, 205, 205, fontpage_167_205_205), // '' -- ''
FONTDATA_ITEM(167, 214, 214, fontpage_167_214_214), // '' -- ''
FONTDATA_ITEM(167, 240, 240, fontpage_167_240_240), // '' -- ''
FONTDATA_ITEM(168, 136, 136, fontpage_168_136_136), // '' -- ''
FONTDATA_ITEM(168, 166, 166, fontpage_168_166_166), // '' -- ''
FONTDATA_ITEM(168, 202, 202, fontpage_168_202_202), // '' -- ''
FONTDATA_ITEM(168, 253, 253, fontpage_168_253_253), // '' -- ''
FONTDATA_ITEM(169, 140, 140, fontpage_169_140_140), // '' -- ''
FONTDATA_ITEM(170, 223, 223, fontpage_170_223_223), // '' -- ''
FONTDATA_ITEM(171, 174, 174, fontpage_171_174_174), // '' -- ''
FONTDATA_ITEM(172, 180, 180, fontpage_172_180_180), // '' -- ''
FONTDATA_ITEM(172, 232, 232, fontpage_172_232_232), // '' -- ''
FONTDATA_ITEM(172, 244, 244, fontpage_172_244_244), // '' -- ''
FONTDATA_ITEM(173, 222, 222, fontpage_173_222_222), // '' -- ''
FONTDATA_ITEM(173, 224, 224, fontpage_173_224_224), // '' -- ''
FONTDATA_ITEM(173, 250, 250, fontpage_173_250_250), // '' -- ''
FONTDATA_ITEM(174, 150, 150, fontpage_174_150_150), // '' -- ''
FONTDATA_ITEM(174, 168, 168, fontpage_174_168_168), // '' -- ''
FONTDATA_ITEM(175, 139, 139, fontpage_175_139_139), // '' -- ''
FONTDATA_ITEM(175, 247, 247, fontpage_175_247_247), // '' -- ''
FONTDATA_ITEM(176, 202, 202, fontpage_176_202_202), // '' -- ''
FONTDATA_ITEM(176, 235, 235, fontpage_176_235_235), // '' -- ''
FONTDATA_ITEM(177, 138, 138, fontpage_177_138_138), // '' -- ''
FONTDATA_ITEM(178, 150, 150, fontpage_178_150_150), // '' -- ''
FONTDATA_ITEM(178, 154, 154, fontpage_178_154_154), // '' -- ''
FONTDATA_ITEM(178, 160, 160, fontpage_178_160_160), // '' -- ''
FONTDATA_ITEM(178, 167, 167, fontpage_178_167_167), // '' -- ''
FONTDATA_ITEM(178, 169, 170, fontpage_178_169_170), // '' -- ''
FONTDATA_ITEM(178, 177, 177, fontpage_178_177_177), // '' -- ''
FONTDATA_ITEM(179, 203, 203, fontpage_179_203_203), // '' -- ''
FONTDATA_ITEM(181, 146, 146, fontpage_181_146_146), // '' -- ''
FONTDATA_ITEM(182, 208, 208, fontpage_182_208_208), // '' -- ''
FONTDATA_ITEM(182, 216, 216, fontpage_182_216_216), // '' -- ''
FONTDATA_ITEM(183, 137, 137, fontpage_183_137_137), // '' -- ''
FONTDATA_ITEM(183, 140, 140, fontpage_183_140_140), // '' -- ''
FONTDATA_ITEM(183, 154, 154, fontpage_183_154_154), // '' -- ''
FONTDATA_ITEM(183, 162, 162, fontpage_183_162_162), // '' -- ''
FONTDATA_ITEM(183, 185, 185, fontpage_183_185_185), // '' -- ''
FONTDATA_ITEM(184, 141, 141, fontpage_184_141_141), // '' -- ''
FONTDATA_ITEM(184, 143, 143, fontpage_184_143_143), // '' -- ''
FONTDATA_ITEM(184, 177, 177, fontpage_184_177_177), // '' -- ''
FONTDATA_ITEM(187, 229, 229, fontpage_187_229_229), // '' -- ''
FONTDATA_ITEM(187, 238, 238, fontpage_187_238_238), // '' -- ''
FONTDATA_ITEM(187, 242, 242, fontpage_187_242_242), // '' -- ''
FONTDATA_ITEM(188, 243, 243, fontpage_188_243_243), // '' -- ''
FONTDATA_ITEM(189, 138, 138, fontpage_189_138_138), // '' -- ''
FONTDATA_ITEM(189, 166, 166, fontpage_189_166_166), // '' -- ''
FONTDATA_ITEM(189, 226, 226, fontpage_189_226_226), // '' -- ''
FONTDATA_ITEM(189, 250, 250, fontpage_189_250_250), // '' -- ''
FONTDATA_ITEM(190, 149, 149, fontpage_190_149_149), // '' -- ''
FONTDATA_ITEM(191, 133, 133, fontpage_191_133_133), // '' -- ''
FONTDATA_ITEM(191, 140, 140, fontpage_191_140_140), // '' -- ''
FONTDATA_ITEM(191, 145, 145, fontpage_191_145_145), // '' -- ''
FONTDATA_ITEM(191, 158, 158, fontpage_191_158_158), // '' -- ''
FONTDATA_ITEM(191, 169, 169, fontpage_191_169_169), // '' -- ''
FONTDATA_ITEM(191, 174, 174, fontpage_191_174_174), // '' -- ''
FONTDATA_ITEM(191, 195, 195, fontpage_191_195_195), // '' -- ''
FONTDATA_ITEM(192, 167, 167, fontpage_192_167_167), // '' -- ''
FONTDATA_ITEM(192, 226, 226, fontpage_192_226_226), // '' -- ''
FONTDATA_ITEM(192, 239, 239, fontpage_192_239_239), // '' -- ''
FONTDATA_ITEM(195, 182, 182, fontpage_195_182_182), // '' -- ''
FONTDATA_ITEM(195, 201, 201, fontpage_195_201_201), // '' -- ''
FONTDATA_ITEM(196, 144, 144, fontpage_196_144_144), // '' -- ''
FONTDATA_ITEM(196, 182, 182, fontpage_196_182_182), // '' -- ''
FONTDATA_ITEM(196, 192, 192, fontpage_196_192_192), // '' -- ''
FONTDATA_ITEM(196, 199, 199, fontpage_196_199_199), // '' -- ''
FONTDATA_ITEM(196, 203, 203, fontpage_196_203_203), // '' -- ''
FONTDATA_ITEM(196, 211, 211, fontpage_196_211_211), // '' -- ''
FONTDATA_ITEM(196, 249, 249, fontpage_196_249_249), // '' -- ''
FONTDATA_ITEM(197, 150, 150, fontpage_197_150_150), // '' -- ''
FONTDATA_ITEM(197, 189, 189, fontpage_197_189_189), // '' -- ''
FONTDATA_ITEM(197, 212, 212, fontpage_197_212_212), // '' -- ''
FONTDATA_ITEM(198, 137, 137, fontpage_198_137_137), // '' -- ''
FONTDATA_ITEM(199, 137, 137, fontpage_199_137_137), // '' -- ''
FONTDATA_ITEM(199, 162, 162, fontpage_199_162_162), // '' -- ''
FONTDATA_ITEM(199, 165, 165, fontpage_199_165_165), // '' -- ''
FONTDATA_ITEM(199, 167, 167, fontpage_199_167_167), // '' -- ''
FONTDATA_ITEM(199, 208, 208, fontpage_199_208_208), // '' -- ''
FONTDATA_ITEM(199, 210, 210, fontpage_199_210_210), // '' -- ''
FONTDATA_ITEM(199, 219, 219, fontpage_199_219_219), // '' -- ''
FONTDATA_ITEM(201, 199, 199, fontpage_201_199_199), // '' -- ''
FONTDATA_ITEM(201, 202, 203, fontpage_201_202_203), // '' -- ''
FONTDATA_ITEM(201, 224, 224, fontpage_201_224_224), // '' -- ''
FONTDATA_ITEM(202, 182, 182, fontpage_202_182_182), // '' -- ''
FONTDATA_ITEM(202, 190, 190, fontpage_202_190_190), // '' -- ''
FONTDATA_ITEM(202, 215, 215, fontpage_202_215_215), // '' -- ''
FONTDATA_ITEM(202, 244, 244, fontpage_202_244_244), // '' -- ''
FONTDATA_ITEM(202, 248, 248, fontpage_202_248_248), // '' -- ''
FONTDATA_ITEM(203, 153, 153, fontpage_203_153_153), // '' -- ''
FONTDATA_ITEM(203, 156, 156, fontpage_203_156_156), // '' -- ''
FONTDATA_ITEM(203, 176, 176, fontpage_203_176_176), // '' -- ''
FONTDATA_ITEM(203, 183, 183, fontpage_203_183_183), // '' -- ''
FONTDATA_ITEM(203, 188, 188, fontpage_203_188_188), // '' -- ''
FONTDATA_ITEM(204, 135, 135, fontpage_204_135_135), // '' -- ''
FONTDATA_ITEM(204, 142, 142, fontpage_204_142_142), // '' -- ''
FONTDATA_ITEM(204, 175, 175, fontpage_204_175_175), // '' -- ''
FONTDATA_ITEM(204, 194, 194, fontpage_204_194_194), // '' -- ''
FONTDATA_ITEM(205, 171, 171, fontpage_205_171_171), // '' -- ''
FONTDATA_ITEM(205, 244, 244, fontpage_205_244_244), // '' -- ''
FONTDATA_ITEM(206, 128, 128, fontpage_206_128_128), // '' -- ''
FONTDATA_ITEM(206, 137, 137, fontpage_206_137_137), // '' -- ''
FONTDATA_ITEM(206, 255, 255, fontpage_206_255_255), // '' -- ''
FONTDATA_ITEM(207, 241, 241, fontpage_207_241_241), // '' -- ''
FONTDATA_ITEM(208, 161, 161, fontpage_208_161_161), // '' -- ''
FONTDATA_ITEM(208, 188, 188, fontpage_208_188_188), // '' -- ''
FONTDATA_ITEM(209, 157, 157, fontpage_209_157_157), // '' -- ''
FONTDATA_ITEM(209, 196, 196, fontpage_209_196_196), // '' -- ''
FONTDATA_ITEM(211, 253, 253, fontpage_211_253_253), // '' -- ''
FONTDATA_ITEM(212, 217, 217, fontpage_212_217_217), // '' -- ''
FONTDATA_ITEM(212, 223, 223, fontpage_212_223_223), // '' -- ''
FONTDATA_ITEM(213, 162, 162, fontpage_213_162_162), // '' -- ''
FONTDATA_ITEM(214, 226, 227, fontpage_214_226_227), // '' -- ''
FONTDATA_ITEM(214, 229, 229, fontpage_214_229_229), // '' -- ''
FONTDATA_ITEM(214, 248, 248, fontpage_214_248_248), // '' -- ''
FONTDATA_ITEM(215, 188, 188, fontpage_215_188_188), // '' -- ''
FONTDATA_ITEM(215, 212, 212, fontpage_215_212_212), // '' -- ''
FONTDATA_ITEM(217, 146, 146, fontpage_217_146_146), // '' -- ''
FONTDATA_ITEM(219, 136, 136, fontpage_219_136_136), // '' -- ''
FONTDATA_ITEM(219, 225, 225, fontpage_219_225_225), // '' -- ''
FONTDATA_ITEM(220, 133, 133, fontpage_220_133_133), // '' -- ''
FONTDATA_ITEM(220, 172, 172, fontpage_220_172_172), // '' -- ''
FONTDATA_ITEM(221, 144, 144, fontpage_221_144_144), // '' -- ''
FONTDATA_ITEM(221, 150, 150, fontpage_221_150_150), // '' -- ''
FONTDATA_ITEM(221, 171, 171, fontpage_221_171_171), // '' -- ''
FONTDATA_ITEM(223, 192, 192, fontpage_223_192_192), // '' -- ''
FONTDATA_ITEM(226, 161, 161, fontpage_226_161_161), // '' -- ''
FONTDATA_ITEM(227, 177, 177, fontpage_227_177_177), // '' -- ''
FONTDATA_ITEM(227, 200, 200, fontpage_227_200_200), // '' -- ''
FONTDATA_ITEM(228, 199, 199, fontpage_228_199_199), // '' -- ''
FONTDATA_ITEM(228, 233, 233, fontpage_228_233_233), // '' -- ''
FONTDATA_ITEM(231, 135, 135, fontpage_231_135_135), // '' -- ''
FONTDATA_ITEM(234, 168, 168, fontpage_234_168_168), // '' -- ''
FONTDATA_ITEM(234, 204, 204, fontpage_234_204_204), // '' -- ''
FONTDATA_ITEM(236, 253, 253, fontpage_236_253_253), // '' -- ''
FONTDATA_ITEM(237, 132, 132, fontpage_237_132_132), // '' -- ''
FONTDATA_ITEM(237, 227, 227, fontpage_237_227_227), // '' -- ''
FONTDATA_ITEM(237, 244, 244, fontpage_237_244_244), // '' -- ''
FONTDATA_ITEM(238, 160, 160, fontpage_238_160_160), // '' -- ''
FONTDATA_ITEM(240, 141, 141, fontpage_240_141_141), // '' -- ''
FONTDATA_ITEM(241, 186, 186, fontpage_241_186_186), // '' -- ''
FONTDATA_ITEM(243, 251, 251, fontpage_243_251_251), // '' -- ''
FONTDATA_ITEM(244, 205, 205, fontpage_244_205_205), // '' -- ''
FONTDATA_ITEM(245, 239, 239, fontpage_245_239_239), // '' -- ''
FONTDATA_ITEM(246, 201, 201, fontpage_246_201_201), // '' -- ''
FONTDATA_ITEM(247, 161, 161, fontpage_247_161_161), // '' -- ''
FONTDATA_ITEM(247, 177, 177, fontpage_247_177_177), // '' -- ''
FONTDATA_ITEM(249, 251, 251, fontpage_249_251_251), // '' -- ''
FONTDATA_ITEM(250, 133, 133, fontpage_250_133_133), // '' -- ''
FONTDATA_ITEM(250, 162, 162, fontpage_250_162_162), // '' -- ''
FONTDATA_ITEM(250, 171, 171, fontpage_250_171_171), // '' -- ''
FONTDATA_ITEM(250, 176, 176, fontpage_250_176_176), // '' -- ''
FONTDATA_ITEM(250, 194, 194, fontpage_250_194_194), // '' -- ''
FONTDATA_ITEM(250, 241, 242, fontpage_250_241_242), // '' -- ''
FONTDATA_ITEM(251, 160, 160, fontpage_251_160_160), // '' -- ''
FONTDATA_ITEM(251, 178, 178, fontpage_251_178_178), // '' -- ''
FONTDATA_ITEM(251, 210, 210, fontpage_251_210_210), // '' -- ''
FONTDATA_ITEM(251, 218, 218, fontpage_251_218_218), // '' -- ''
FONTDATA_ITEM(251, 232, 232, fontpage_251_232_232), // '' -- ''
FONTDATA_ITEM(252, 174, 174, fontpage_252_174_174), // '' -- ''
FONTDATA_ITEM(252, 189, 189, fontpage_252_189_189), // '' -- ''
FONTDATA_ITEM(252, 252, 252, fontpage_252_252_252), // '' -- ''
FONTDATA_ITEM(253, 140, 140, fontpage_253_140_140), // '' -- ''
FONTDATA_ITEM(253, 162, 162, fontpage_253_162_162), // '' -- ''
FONTDATA_ITEM(254, 238, 238, fontpage_254_238_238), // '' -- ''
FONTDATA_ITEM(254, 242, 242, fontpage_254_242_242), // '' -- ''
FONTDATA_ITEM(256, 240, 240, fontpage_256_240_240), // '' -- ''
FONTDATA_ITEM(259, 234, 234, fontpage_259_234_234), // '' -- ''
FONTDATA_ITEM(267, 205, 205, fontpage_267_205_205), // '' -- ''
FONTDATA_ITEM(272, 204, 204, fontpage_272_204_204), // '' -- ''
FONTDATA_ITEM(272, 232, 232, fontpage_272_232_232), // '' -- ''
FONTDATA_ITEM(273, 171, 171, fontpage_273_171_171), // '' -- ''
FONTDATA_ITEM(273, 197, 197, fontpage_273_197_197), // '' -- ''
FONTDATA_ITEM(273, 221, 221, fontpage_273_221_221), // '' -- ''
FONTDATA_ITEM(274, 135, 135, fontpage_274_135_135), // '' -- ''
FONTDATA_ITEM(275, 210, 210, fontpage_275_210_210), // '' -- ''
FONTDATA_ITEM(276, 136, 136, fontpage_276_136_136), // '' -- ''
FONTDATA_ITEM(276, 138, 138, fontpage_276_138_138), // '' -- ''
FONTDATA_ITEM(276, 152, 152, fontpage_276_152_152), // '' -- ''
FONTDATA_ITEM(276, 173, 173, fontpage_276_173_173), // '' -- ''
FONTDATA_ITEM(276, 230, 230, fontpage_276_230_230), // '' -- ''
FONTDATA_ITEM(277, 141, 141, fontpage_277_141_141), // '' -- ''
FONTDATA_ITEM(277, 164, 164, fontpage_277_164_164), // '' -- ''
FONTDATA_ITEM(277, 191, 191, fontpage_277_191_191), // '調' -- '調'
FONTDATA_ITEM(277, 203, 203, fontpage_277_203_203), // '' -- ''
FONTDATA_ITEM(278, 240, 240, fontpage_278_240_240), // '' -- ''
FONTDATA_ITEM(279, 128, 128, fontpage_279_128_128), // '' -- ''
FONTDATA_ITEM(279, 138, 138, fontpage_279_138_138), // '' -- ''
FONTDATA_ITEM(281, 199, 199, fontpage_281_199_199), // '' -- ''
FONTDATA_ITEM(283, 221, 221, fontpage_283_221_221), // '' -- ''
FONTDATA_ITEM(285, 202, 202, fontpage_285_202_202), // '' -- ''
FONTDATA_ITEM(285, 223, 223, fontpage_285_223_223), // '' -- ''
FONTDATA_ITEM(285, 248, 248, fontpage_285_248_248), // '' -- ''
FONTDATA_ITEM(286, 137, 137, fontpage_286_137_137), // '' -- ''
FONTDATA_ITEM(286, 175, 175, fontpage_286_175_175), // '' -- ''
FONTDATA_ITEM(286, 184, 184, fontpage_286_184_184), // '' -- ''
FONTDATA_ITEM(286, 201, 201, fontpage_286_201_201), // '' -- ''
FONTDATA_ITEM(287, 209, 209, fontpage_287_209_209), // '' -- ''
FONTDATA_ITEM(287, 212, 212, fontpage_287_212_212), // '' -- ''
FONTDATA_ITEM(288, 128, 128, fontpage_288_128_128), // '退' -- '退'
FONTDATA_ITEM(288, 159, 159, fontpage_288_159_159), // '' -- ''
FONTDATA_ITEM(288, 163, 163, fontpage_288_163_163), // '' -- ''
FONTDATA_ITEM(288, 178, 178, fontpage_288_178_178), // '' -- ''
FONTDATA_ITEM(288, 203, 203, fontpage_288_203_203), // '' -- ''
FONTDATA_ITEM(288, 212, 212, fontpage_288_212_212), // '' -- ''
FONTDATA_ITEM(288, 248, 248, fontpage_288_248_248), // '' -- ''
FONTDATA_ITEM(289, 132, 132, fontpage_289_132_132), // '' -- ''
FONTDATA_ITEM(289, 138, 138, fontpage_289_138_138), // '' -- ''
FONTDATA_ITEM(289, 232, 232, fontpage_289_232_232), // '' -- ''
FONTDATA_ITEM(291, 203, 203, fontpage_291_203_203), // '' -- ''
FONTDATA_ITEM(291, 205, 205, fontpage_291_205_205), // '' -- ''
FONTDATA_ITEM(291, 207, 207, fontpage_291_207_207), // '' -- ''
FONTDATA_ITEM(291, 221, 221, fontpage_291_221_221), // '' -- ''
FONTDATA_ITEM(292, 149, 149, fontpage_292_149_149), // '' -- ''
FONTDATA_ITEM(294, 175, 175, fontpage_294_175_175), // '' -- ''
FONTDATA_ITEM(294, 245, 245, fontpage_294_245_245), // '' -- ''
FONTDATA_ITEM(298, 247, 247, fontpage_298_247_247), // '' -- ''
FONTDATA_ITEM(299, 137, 137, fontpage_299_137_137), // '' -- ''
FONTDATA_ITEM(299, 139, 139, fontpage_299_139_139), // '' -- ''
FONTDATA_ITEM(299, 147, 147, fontpage_299_147_147), // '' -- ''
FONTDATA_ITEM(299, 220, 220, fontpage_299_220_220), // '' -- ''
FONTDATA_ITEM(300, 205, 205, fontpage_300_205_205), // '' -- ''
FONTDATA_ITEM(300, 228, 228, fontpage_300_228_228), // '' -- ''
FONTDATA_ITEM(301, 142, 142, fontpage_301_142_142), // '' -- ''
FONTDATA_ITEM(301, 217, 217, fontpage_301_217_217), // '' -- ''
FONTDATA_ITEM(301, 226, 226, fontpage_301_226_226), // '' -- ''
FONTDATA_ITEM(301, 251, 251, fontpage_301_251_251), // '' -- ''
FONTDATA_ITEM(302, 210, 210, fontpage_302_210_210), // '' -- ''
FONTDATA_ITEM(302, 222, 222, fontpage_302_222_222), // '' -- ''
FONTDATA_ITEM(302, 226, 226, fontpage_302_226_226), // '' -- ''
FONTDATA_ITEM(304, 133, 133, fontpage_304_133_133), // '' -- ''
FONTDATA_ITEM(304, 144, 144, fontpage_304_144_144), // '' -- ''
FONTDATA_ITEM(304, 205, 205, fontpage_304_205_205), // '' -- ''
FONTDATA_ITEM(304, 222, 222, fontpage_304_222_222), // '' -- ''
FONTDATA_ITEM(305, 168, 168, fontpage_305_168_168), // '' -- ''
FONTDATA_ITEM(305, 253, 253, fontpage_305_253_253), // '' -- ''
FONTDATA_ITEM(306, 152, 152, fontpage_306_152_152), // '' -- ''
FONTDATA_ITEM(307, 172, 172, fontpage_307_172_172), // '' -- ''
FONTDATA_ITEM(308, 197, 197, fontpage_308_197_197), // '' -- ''
FONTDATA_ITEM(309, 212, 212, fontpage_309_212_212), // '' -- ''
FONTDATA_ITEM(309, 216, 216, fontpage_309_216_216), // '' -- ''
FONTDATA_ITEM(317, 195, 195, fontpage_317_195_195), // '' -- ''
FONTDATA_ITEM(317, 222, 222, fontpage_317_222_222), // '' -- ''
FONTDATA_ITEM(318, 202, 202, fontpage_318_202_202), // '' -- ''
FONTDATA_ITEM(510, 154, 154, fontpage_510_154_154), // '' -- ''
static const uxg_fontinfo_t g_fontinfo_zh_TW[] PROGMEM = {
FONTDATA_ITEM(69, 191, 191, fontpage_69_191_191), // '⊿' -- '⊿'
FONTDATA_ITEM(156, 128, 128, fontpage_156_128_128), // '' -- ''
FONTDATA_ITEM(156, 137, 139, fontpage_156_137_139), // '' -- ''
FONTDATA_ITEM(156, 141, 141, fontpage_156_141_141), // '' -- ''
FONTDATA_ITEM(156, 166, 166, fontpage_156_166_166), // '' -- ''
FONTDATA_ITEM(156, 173, 173, fontpage_156_173_173), // '' -- ''
FONTDATA_ITEM(156, 187, 187, fontpage_156_187_187), // '' -- ''
FONTDATA_ITEM(156, 203, 203, fontpage_156_203_203), // '' -- ''
FONTDATA_ITEM(157, 164, 164, fontpage_157_164_164), // '' -- ''
FONTDATA_ITEM(157, 174, 174, fontpage_157_174_174), // '' -- ''
FONTDATA_ITEM(157, 228, 228, fontpage_157_228_228), // '' -- ''
FONTDATA_ITEM(157, 246, 246, fontpage_157_246_246), // '' -- ''
FONTDATA_ITEM(157, 253, 253, fontpage_157_253_253), // '' -- ''
FONTDATA_ITEM(158, 145, 145, fontpage_158_145_145), // '' -- ''
FONTDATA_ITEM(158, 205, 206, fontpage_158_205_206), // '' -- ''
FONTDATA_ITEM(158, 220, 220, fontpage_158_220_220), // '' -- ''
FONTDATA_ITEM(159, 155, 155, fontpage_159_155_155), // '' -- ''
FONTDATA_ITEM(159, 221, 221, fontpage_159_221_221), // '' -- ''
FONTDATA_ITEM(159, 225, 225, fontpage_159_225_225), // '' -- ''
FONTDATA_ITEM(160, 139, 139, fontpage_160_139_139), // '' -- ''
FONTDATA_ITEM(160, 188, 188, fontpage_160_188_188), // '' -- ''
FONTDATA_ITEM(160, 207, 207, fontpage_160_207_207), // '' -- ''
FONTDATA_ITEM(160, 220, 220, fontpage_160_220_220), // '' -- ''
FONTDATA_ITEM(160, 245, 245, fontpage_160_245_245), // '' -- ''
FONTDATA_ITEM(161, 153, 153, fontpage_161_153_153), // '' -- ''
FONTDATA_ITEM(161, 179, 179, fontpage_161_179_179), // '' -- ''
FONTDATA_ITEM(161, 190, 190, fontpage_161_190_190), // '' -- ''
FONTDATA_ITEM(162, 178, 178, fontpage_162_178_178), // '' -- ''
FONTDATA_ITEM(162, 197, 197, fontpage_162_197_197), // '' -- ''
FONTDATA_ITEM(162, 200, 201, fontpage_162_200_201), // '' -- ''
FONTDATA_ITEM(162, 229, 229, fontpage_162_229_229), // '' -- ''
FONTDATA_ITEM(162, 232, 232, fontpage_162_232_232), // '' -- ''
FONTDATA_ITEM(162, 241, 241, fontpage_162_241_241), // '' -- ''
FONTDATA_ITEM(162, 247, 247, fontpage_162_247_247), // '' -- ''
FONTDATA_ITEM(163, 151, 151, fontpage_163_151_151), // '' -- ''
FONTDATA_ITEM(163, 183, 183, fontpage_163_183_183), // '' -- ''
FONTDATA_ITEM(163, 198, 198, fontpage_163_198_198), // '' -- ''
FONTDATA_ITEM(163, 250, 250, fontpage_163_250_250), // '' -- ''
FONTDATA_ITEM(164, 134, 134, fontpage_164_134_134), // '' -- ''
FONTDATA_ITEM(164, 151, 151, fontpage_164_151_151), // '' -- ''
FONTDATA_ITEM(164, 157, 157, fontpage_164_157_157), // '' -- ''
FONTDATA_ITEM(164, 176, 176, fontpage_164_176_176), // '' -- ''
FONTDATA_ITEM(164, 182, 183, fontpage_164_182_183), // '' -- ''
FONTDATA_ITEM(164, 245, 245, fontpage_164_245_245), // '' -- ''
FONTDATA_ITEM(165, 155, 155, fontpage_165_155_155), // '' -- ''
FONTDATA_ITEM(165, 160, 160, fontpage_165_160_160), // '' -- ''
FONTDATA_ITEM(165, 213, 213, fontpage_165_213_213), // '' -- ''
FONTDATA_ITEM(166, 150, 150, fontpage_166_150_150), // '' -- ''
FONTDATA_ITEM(166, 202, 202, fontpage_166_202_202), // '' -- ''
FONTDATA_ITEM(166, 212, 212, fontpage_166_212_212), // '' -- ''
FONTDATA_ITEM(166, 225, 225, fontpage_166_225_225), // '' -- ''
FONTDATA_ITEM(166, 240, 240, fontpage_166_240_240), // '' -- ''
FONTDATA_ITEM(166, 248, 248, fontpage_166_248_248), // '' -- ''
FONTDATA_ITEM(166, 251, 251, fontpage_166_251_251), // '' -- ''
FONTDATA_ITEM(167, 159, 159, fontpage_167_159_159), // '' -- ''
FONTDATA_ITEM(167, 205, 205, fontpage_167_205_205), // '' -- ''
FONTDATA_ITEM(167, 214, 214, fontpage_167_214_214), // '' -- ''
FONTDATA_ITEM(167, 240, 240, fontpage_167_240_240), // '' -- ''
FONTDATA_ITEM(168, 136, 136, fontpage_168_136_136), // '' -- ''
FONTDATA_ITEM(168, 166, 166, fontpage_168_166_166), // '' -- ''
FONTDATA_ITEM(168, 202, 202, fontpage_168_202_202), // '' -- ''
FONTDATA_ITEM(168, 253, 253, fontpage_168_253_253), // '' -- ''
FONTDATA_ITEM(169, 140, 140, fontpage_169_140_140), // '' -- ''
FONTDATA_ITEM(170, 223, 223, fontpage_170_223_223), // '' -- ''
FONTDATA_ITEM(171, 174, 174, fontpage_171_174_174), // '' -- ''
FONTDATA_ITEM(172, 180, 180, fontpage_172_180_180), // '' -- ''
FONTDATA_ITEM(172, 232, 232, fontpage_172_232_232), // '' -- ''
FONTDATA_ITEM(172, 244, 244, fontpage_172_244_244), // '' -- ''
FONTDATA_ITEM(173, 222, 222, fontpage_173_222_222), // '' -- ''
FONTDATA_ITEM(173, 224, 224, fontpage_173_224_224), // '' -- ''
FONTDATA_ITEM(173, 250, 250, fontpage_173_250_250), // '' -- ''
FONTDATA_ITEM(174, 150, 150, fontpage_174_150_150), // '' -- ''
FONTDATA_ITEM(174, 168, 168, fontpage_174_168_168), // '' -- ''
FONTDATA_ITEM(175, 139, 139, fontpage_175_139_139), // '' -- ''
FONTDATA_ITEM(175, 247, 247, fontpage_175_247_247), // '' -- ''
FONTDATA_ITEM(176, 202, 202, fontpage_176_202_202), // '' -- ''
FONTDATA_ITEM(176, 235, 235, fontpage_176_235_235), // '' -- ''
FONTDATA_ITEM(177, 138, 138, fontpage_177_138_138), // '' -- ''
FONTDATA_ITEM(178, 150, 150, fontpage_178_150_150), // '' -- ''
FONTDATA_ITEM(178, 154, 154, fontpage_178_154_154), // '' -- ''
FONTDATA_ITEM(178, 160, 160, fontpage_178_160_160), // '' -- ''
FONTDATA_ITEM(178, 167, 167, fontpage_178_167_167), // '' -- ''
FONTDATA_ITEM(178, 169, 170, fontpage_178_169_170), // '' -- ''
FONTDATA_ITEM(178, 177, 177, fontpage_178_177_177), // '' -- ''
FONTDATA_ITEM(179, 203, 203, fontpage_179_203_203), // '' -- ''
FONTDATA_ITEM(181, 146, 146, fontpage_181_146_146), // '' -- ''
FONTDATA_ITEM(182, 208, 208, fontpage_182_208_208), // '' -- ''
FONTDATA_ITEM(182, 216, 216, fontpage_182_216_216), // '' -- ''
FONTDATA_ITEM(183, 137, 137, fontpage_183_137_137), // '' -- ''
FONTDATA_ITEM(183, 140, 140, fontpage_183_140_140), // '' -- ''
FONTDATA_ITEM(183, 154, 154, fontpage_183_154_154), // '' -- ''
FONTDATA_ITEM(183, 162, 162, fontpage_183_162_162), // '' -- ''
FONTDATA_ITEM(183, 185, 185, fontpage_183_185_185), // '' -- ''
FONTDATA_ITEM(184, 141, 141, fontpage_184_141_141), // '' -- ''
FONTDATA_ITEM(184, 143, 143, fontpage_184_143_143), // '' -- ''
FONTDATA_ITEM(184, 177, 177, fontpage_184_177_177), // '' -- ''
FONTDATA_ITEM(187, 229, 229, fontpage_187_229_229), // '' -- ''
FONTDATA_ITEM(187, 238, 238, fontpage_187_238_238), // '' -- ''
FONTDATA_ITEM(187, 242, 242, fontpage_187_242_242), // '' -- ''
FONTDATA_ITEM(188, 243, 243, fontpage_188_243_243), // '' -- ''
FONTDATA_ITEM(189, 138, 138, fontpage_189_138_138), // '' -- ''
FONTDATA_ITEM(189, 166, 166, fontpage_189_166_166), // '' -- ''
FONTDATA_ITEM(189, 226, 226, fontpage_189_226_226), // '' -- ''
FONTDATA_ITEM(189, 250, 250, fontpage_189_250_250), // '' -- ''
FONTDATA_ITEM(190, 149, 149, fontpage_190_149_149), // '' -- ''
FONTDATA_ITEM(191, 133, 133, fontpage_191_133_133), // '' -- ''
FONTDATA_ITEM(191, 140, 140, fontpage_191_140_140), // '' -- ''
FONTDATA_ITEM(191, 145, 145, fontpage_191_145_145), // '' -- ''
FONTDATA_ITEM(191, 158, 158, fontpage_191_158_158), // '' -- ''
FONTDATA_ITEM(191, 169, 169, fontpage_191_169_169), // '' -- ''
FONTDATA_ITEM(191, 174, 174, fontpage_191_174_174), // '' -- ''
FONTDATA_ITEM(191, 195, 195, fontpage_191_195_195), // '' -- ''
FONTDATA_ITEM(192, 167, 167, fontpage_192_167_167), // '' -- ''
FONTDATA_ITEM(192, 226, 226, fontpage_192_226_226), // '' -- ''
FONTDATA_ITEM(192, 239, 239, fontpage_192_239_239), // '' -- ''
FONTDATA_ITEM(195, 182, 182, fontpage_195_182_182), // '' -- ''
FONTDATA_ITEM(195, 201, 201, fontpage_195_201_201), // '' -- ''
FONTDATA_ITEM(196, 144, 144, fontpage_196_144_144), // '' -- ''
FONTDATA_ITEM(196, 182, 182, fontpage_196_182_182), // '' -- ''
FONTDATA_ITEM(196, 192, 192, fontpage_196_192_192), // '' -- ''
FONTDATA_ITEM(196, 199, 199, fontpage_196_199_199), // '' -- ''
FONTDATA_ITEM(196, 203, 203, fontpage_196_203_203), // '' -- ''
FONTDATA_ITEM(196, 211, 211, fontpage_196_211_211), // '' -- ''
FONTDATA_ITEM(196, 249, 249, fontpage_196_249_249), // '' -- ''
FONTDATA_ITEM(197, 150, 150, fontpage_197_150_150), // '' -- ''
FONTDATA_ITEM(197, 189, 189, fontpage_197_189_189), // '' -- ''
FONTDATA_ITEM(197, 212, 212, fontpage_197_212_212), // '' -- ''
FONTDATA_ITEM(198, 137, 137, fontpage_198_137_137), // '' -- ''
FONTDATA_ITEM(199, 137, 137, fontpage_199_137_137), // '' -- ''
FONTDATA_ITEM(199, 162, 162, fontpage_199_162_162), // '' -- ''
FONTDATA_ITEM(199, 165, 165, fontpage_199_165_165), // '' -- ''
FONTDATA_ITEM(199, 167, 167, fontpage_199_167_167), // '' -- ''
FONTDATA_ITEM(199, 208, 208, fontpage_199_208_208), // '' -- ''
FONTDATA_ITEM(199, 210, 210, fontpage_199_210_210), // '' -- ''
FONTDATA_ITEM(199, 219, 219, fontpage_199_219_219), // '' -- ''
FONTDATA_ITEM(201, 199, 199, fontpage_201_199_199), // '' -- ''
FONTDATA_ITEM(201, 202, 203, fontpage_201_202_203), // '' -- ''
FONTDATA_ITEM(201, 224, 224, fontpage_201_224_224), // '' -- ''
FONTDATA_ITEM(202, 182, 182, fontpage_202_182_182), // '' -- ''
FONTDATA_ITEM(202, 190, 190, fontpage_202_190_190), // '' -- ''
FONTDATA_ITEM(202, 215, 215, fontpage_202_215_215), // '' -- ''
FONTDATA_ITEM(202, 244, 244, fontpage_202_244_244), // '' -- ''
FONTDATA_ITEM(202, 248, 248, fontpage_202_248_248), // '' -- ''
FONTDATA_ITEM(203, 153, 153, fontpage_203_153_153), // '' -- ''
FONTDATA_ITEM(203, 156, 156, fontpage_203_156_156), // '' -- ''
FONTDATA_ITEM(203, 176, 176, fontpage_203_176_176), // '' -- ''
FONTDATA_ITEM(203, 183, 183, fontpage_203_183_183), // '' -- ''
FONTDATA_ITEM(203, 188, 188, fontpage_203_188_188), // '' -- ''
FONTDATA_ITEM(204, 135, 135, fontpage_204_135_135), // '' -- ''
FONTDATA_ITEM(204, 142, 142, fontpage_204_142_142), // '' -- ''
FONTDATA_ITEM(204, 175, 175, fontpage_204_175_175), // '' -- ''
FONTDATA_ITEM(204, 194, 194, fontpage_204_194_194), // '' -- ''
FONTDATA_ITEM(205, 171, 171, fontpage_205_171_171), // '' -- ''
FONTDATA_ITEM(205, 244, 244, fontpage_205_244_244), // '' -- ''
FONTDATA_ITEM(206, 128, 128, fontpage_206_128_128), // '' -- ''
FONTDATA_ITEM(206, 137, 137, fontpage_206_137_137), // '' -- ''
FONTDATA_ITEM(206, 255, 255, fontpage_206_255_255), // '' -- ''
FONTDATA_ITEM(207, 241, 241, fontpage_207_241_241), // '' -- ''
FONTDATA_ITEM(208, 161, 161, fontpage_208_161_161), // '' -- ''
FONTDATA_ITEM(208, 188, 188, fontpage_208_188_188), // '' -- ''
FONTDATA_ITEM(209, 157, 157, fontpage_209_157_157), // '' -- ''
FONTDATA_ITEM(209, 196, 196, fontpage_209_196_196), // '' -- ''
FONTDATA_ITEM(211, 253, 253, fontpage_211_253_253), // '' -- ''
FONTDATA_ITEM(212, 217, 217, fontpage_212_217_217), // '' -- ''
FONTDATA_ITEM(212, 223, 223, fontpage_212_223_223), // '' -- ''
FONTDATA_ITEM(213, 162, 162, fontpage_213_162_162), // '' -- ''
FONTDATA_ITEM(214, 226, 227, fontpage_214_226_227), // '' -- ''
FONTDATA_ITEM(214, 229, 229, fontpage_214_229_229), // '' -- ''
FONTDATA_ITEM(214, 248, 248, fontpage_214_248_248), // '' -- ''
FONTDATA_ITEM(215, 188, 188, fontpage_215_188_188), // '' -- ''
FONTDATA_ITEM(215, 212, 212, fontpage_215_212_212), // '' -- ''
FONTDATA_ITEM(217, 146, 146, fontpage_217_146_146), // '' -- ''
FONTDATA_ITEM(219, 136, 136, fontpage_219_136_136), // '' -- ''
FONTDATA_ITEM(219, 225, 225, fontpage_219_225_225), // '' -- ''
FONTDATA_ITEM(220, 133, 133, fontpage_220_133_133), // '' -- ''
FONTDATA_ITEM(220, 172, 172, fontpage_220_172_172), // '' -- ''
FONTDATA_ITEM(221, 144, 144, fontpage_221_144_144), // '' -- ''
FONTDATA_ITEM(221, 150, 150, fontpage_221_150_150), // '' -- ''
FONTDATA_ITEM(221, 171, 171, fontpage_221_171_171), // '' -- ''
FONTDATA_ITEM(223, 192, 192, fontpage_223_192_192), // '' -- ''
FONTDATA_ITEM(226, 161, 161, fontpage_226_161_161), // '' -- ''
FONTDATA_ITEM(227, 177, 177, fontpage_227_177_177), // '' -- ''
FONTDATA_ITEM(227, 200, 200, fontpage_227_200_200), // '' -- ''
FONTDATA_ITEM(228, 199, 199, fontpage_228_199_199), // '' -- ''
FONTDATA_ITEM(228, 233, 233, fontpage_228_233_233), // '' -- ''
FONTDATA_ITEM(231, 135, 135, fontpage_231_135_135), // '' -- ''
FONTDATA_ITEM(234, 168, 168, fontpage_234_168_168), // '' -- ''
FONTDATA_ITEM(234, 204, 204, fontpage_234_204_204), // '' -- ''
FONTDATA_ITEM(236, 253, 253, fontpage_236_253_253), // '' -- ''
FONTDATA_ITEM(237, 132, 132, fontpage_237_132_132), // '' -- ''
FONTDATA_ITEM(237, 227, 227, fontpage_237_227_227), // '' -- ''
FONTDATA_ITEM(237, 244, 244, fontpage_237_244_244), // '' -- ''
FONTDATA_ITEM(238, 160, 160, fontpage_238_160_160), // '' -- ''
FONTDATA_ITEM(240, 141, 141, fontpage_240_141_141), // '' -- ''
FONTDATA_ITEM(241, 186, 186, fontpage_241_186_186), // '' -- ''
FONTDATA_ITEM(243, 251, 251, fontpage_243_251_251), // '' -- ''
FONTDATA_ITEM(244, 205, 205, fontpage_244_205_205), // '' -- ''
FONTDATA_ITEM(245, 239, 239, fontpage_245_239_239), // '' -- ''
FONTDATA_ITEM(246, 201, 201, fontpage_246_201_201), // '' -- ''
FONTDATA_ITEM(247, 161, 161, fontpage_247_161_161), // '' -- ''
FONTDATA_ITEM(247, 177, 177, fontpage_247_177_177), // '' -- ''
FONTDATA_ITEM(249, 251, 251, fontpage_249_251_251), // '' -- ''
FONTDATA_ITEM(250, 133, 133, fontpage_250_133_133), // '' -- ''
FONTDATA_ITEM(250, 162, 162, fontpage_250_162_162), // '' -- ''
FONTDATA_ITEM(250, 171, 171, fontpage_250_171_171), // '' -- ''
FONTDATA_ITEM(250, 176, 176, fontpage_250_176_176), // '' -- ''
FONTDATA_ITEM(250, 194, 194, fontpage_250_194_194), // '' -- ''
FONTDATA_ITEM(250, 241, 242, fontpage_250_241_242), // '' -- ''
FONTDATA_ITEM(251, 160, 160, fontpage_251_160_160), // '' -- ''
FONTDATA_ITEM(251, 178, 178, fontpage_251_178_178), // '' -- ''
FONTDATA_ITEM(251, 210, 210, fontpage_251_210_210), // '' -- ''
FONTDATA_ITEM(251, 218, 218, fontpage_251_218_218), // '' -- ''
FONTDATA_ITEM(251, 232, 232, fontpage_251_232_232), // '' -- ''
FONTDATA_ITEM(252, 174, 174, fontpage_252_174_174), // '' -- ''
FONTDATA_ITEM(252, 189, 189, fontpage_252_189_189), // '' -- ''
FONTDATA_ITEM(252, 252, 252, fontpage_252_252_252), // '' -- ''
FONTDATA_ITEM(253, 140, 140, fontpage_253_140_140), // '' -- ''
FONTDATA_ITEM(253, 162, 162, fontpage_253_162_162), // '' -- ''
FONTDATA_ITEM(254, 238, 238, fontpage_254_238_238), // '' -- ''
FONTDATA_ITEM(254, 242, 242, fontpage_254_242_242), // '' -- ''
FONTDATA_ITEM(256, 240, 240, fontpage_256_240_240), // '' -- ''
FONTDATA_ITEM(259, 234, 234, fontpage_259_234_234), // '' -- ''
FONTDATA_ITEM(267, 205, 205, fontpage_267_205_205), // '' -- ''
FONTDATA_ITEM(272, 204, 204, fontpage_272_204_204), // '' -- ''
FONTDATA_ITEM(272, 232, 232, fontpage_272_232_232), // '' -- ''
FONTDATA_ITEM(273, 171, 171, fontpage_273_171_171), // '' -- ''
FONTDATA_ITEM(273, 197, 197, fontpage_273_197_197), // '' -- ''
FONTDATA_ITEM(273, 221, 221, fontpage_273_221_221), // '' -- ''
FONTDATA_ITEM(274, 135, 135, fontpage_274_135_135), // '' -- ''
FONTDATA_ITEM(275, 210, 210, fontpage_275_210_210), // '' -- ''
FONTDATA_ITEM(276, 136, 136, fontpage_276_136_136), // '' -- ''
FONTDATA_ITEM(276, 138, 138, fontpage_276_138_138), // '' -- ''
FONTDATA_ITEM(276, 152, 152, fontpage_276_152_152), // '' -- ''
FONTDATA_ITEM(276, 173, 173, fontpage_276_173_173), // '' -- ''
FONTDATA_ITEM(276, 230, 230, fontpage_276_230_230), // '' -- ''
FONTDATA_ITEM(277, 141, 141, fontpage_277_141_141), // '' -- ''
FONTDATA_ITEM(277, 164, 164, fontpage_277_164_164), // '' -- ''
FONTDATA_ITEM(277, 191, 191, fontpage_277_191_191), // '調' -- '調'
FONTDATA_ITEM(277, 203, 203, fontpage_277_203_203), // '' -- ''
FONTDATA_ITEM(278, 240, 240, fontpage_278_240_240), // '' -- ''
FONTDATA_ITEM(279, 128, 128, fontpage_279_128_128), // '' -- ''
FONTDATA_ITEM(279, 138, 138, fontpage_279_138_138), // '' -- ''
FONTDATA_ITEM(281, 199, 199, fontpage_281_199_199), // '' -- ''
FONTDATA_ITEM(283, 221, 221, fontpage_283_221_221), // '' -- ''
FONTDATA_ITEM(285, 202, 202, fontpage_285_202_202), // '' -- ''
FONTDATA_ITEM(285, 223, 223, fontpage_285_223_223), // '' -- ''
FONTDATA_ITEM(285, 248, 248, fontpage_285_248_248), // '' -- ''
FONTDATA_ITEM(286, 137, 137, fontpage_286_137_137), // '' -- ''
FONTDATA_ITEM(286, 175, 175, fontpage_286_175_175), // '' -- ''
FONTDATA_ITEM(286, 184, 184, fontpage_286_184_184), // '' -- ''
FONTDATA_ITEM(286, 201, 201, fontpage_286_201_201), // '' -- ''
FONTDATA_ITEM(287, 209, 209, fontpage_287_209_209), // '' -- ''
FONTDATA_ITEM(287, 212, 212, fontpage_287_212_212), // '' -- ''
FONTDATA_ITEM(288, 128, 128, fontpage_288_128_128), // '退' -- '退'
FONTDATA_ITEM(288, 159, 159, fontpage_288_159_159), // '' -- ''
FONTDATA_ITEM(288, 163, 163, fontpage_288_163_163), // '' -- ''
FONTDATA_ITEM(288, 178, 178, fontpage_288_178_178), // '' -- ''
FONTDATA_ITEM(288, 203, 203, fontpage_288_203_203), // '' -- ''
FONTDATA_ITEM(288, 212, 212, fontpage_288_212_212), // '' -- ''
FONTDATA_ITEM(288, 248, 248, fontpage_288_248_248), // '' -- ''
FONTDATA_ITEM(289, 132, 132, fontpage_289_132_132), // '' -- ''
FONTDATA_ITEM(289, 138, 138, fontpage_289_138_138), // '' -- ''
FONTDATA_ITEM(289, 232, 232, fontpage_289_232_232), // '' -- ''
FONTDATA_ITEM(291, 203, 203, fontpage_291_203_203), // '' -- ''
FONTDATA_ITEM(291, 205, 205, fontpage_291_205_205), // '' -- ''
FONTDATA_ITEM(291, 207, 207, fontpage_291_207_207), // '' -- ''
FONTDATA_ITEM(291, 221, 221, fontpage_291_221_221), // '' -- ''
FONTDATA_ITEM(292, 149, 149, fontpage_292_149_149), // '' -- ''
FONTDATA_ITEM(294, 175, 175, fontpage_294_175_175), // '' -- ''
FONTDATA_ITEM(294, 245, 245, fontpage_294_245_245), // '' -- ''
FONTDATA_ITEM(298, 247, 247, fontpage_298_247_247), // '' -- ''
FONTDATA_ITEM(299, 137, 137, fontpage_299_137_137), // '' -- ''
FONTDATA_ITEM(299, 139, 139, fontpage_299_139_139), // '' -- ''
FONTDATA_ITEM(299, 147, 147, fontpage_299_147_147), // '' -- ''
FONTDATA_ITEM(299, 220, 220, fontpage_299_220_220), // '' -- ''
FONTDATA_ITEM(300, 205, 205, fontpage_300_205_205), // '' -- ''
FONTDATA_ITEM(300, 228, 228, fontpage_300_228_228), // '' -- ''
FONTDATA_ITEM(301, 142, 142, fontpage_301_142_142), // '' -- ''
FONTDATA_ITEM(301, 217, 217, fontpage_301_217_217), // '' -- ''
FONTDATA_ITEM(301, 226, 226, fontpage_301_226_226), // '' -- ''
FONTDATA_ITEM(301, 251, 251, fontpage_301_251_251), // '' -- ''
FONTDATA_ITEM(302, 210, 210, fontpage_302_210_210), // '' -- ''
FONTDATA_ITEM(302, 222, 222, fontpage_302_222_222), // '' -- ''
FONTDATA_ITEM(302, 226, 226, fontpage_302_226_226), // '' -- ''
FONTDATA_ITEM(304, 133, 133, fontpage_304_133_133), // '' -- ''
FONTDATA_ITEM(304, 144, 144, fontpage_304_144_144), // '' -- ''
FONTDATA_ITEM(304, 205, 205, fontpage_304_205_205), // '' -- ''
FONTDATA_ITEM(304, 222, 222, fontpage_304_222_222), // '' -- ''
FONTDATA_ITEM(305, 168, 168, fontpage_305_168_168), // '' -- ''
FONTDATA_ITEM(305, 253, 253, fontpage_305_253_253), // '' -- ''
FONTDATA_ITEM(306, 152, 152, fontpage_306_152_152), // '' -- ''
FONTDATA_ITEM(307, 172, 172, fontpage_307_172_172), // '' -- ''
FONTDATA_ITEM(308, 197, 197, fontpage_308_197_197), // '' -- ''
FONTDATA_ITEM(309, 212, 212, fontpage_309_212_212), // '' -- ''
FONTDATA_ITEM(309, 216, 216, fontpage_309_216_216), // '' -- ''
FONTDATA_ITEM(317, 195, 195, fontpage_317_195_195), // '' -- ''
FONTDATA_ITEM(317, 222, 222, fontpage_317_222_222), // '' -- ''
FONTDATA_ITEM(318, 202, 202, fontpage_318_202_202), // '' -- ''
FONTDATA_ITEM(510, 154, 154, fontpage_510_154_154), // '' -- ''
};
+35 -1
View File
@@ -79,6 +79,18 @@
U8G_CLASS u8g;
#include LANGUAGE_DATA_INCL(LCD_LANGUAGE)
#ifdef LCD_LANGUAGE_2
#include LANGUAGE_DATA_INCL(LCD_LANGUAGE_2)
#endif
#ifdef LCD_LANGUAGE_3
#include LANGUAGE_DATA_INCL(LCD_LANGUAGE_3)
#endif
#ifdef LCD_LANGUAGE_4
#include LANGUAGE_DATA_INCL(LCD_LANGUAGE_4)
#endif
#ifdef LCD_LANGUAGE_5
#include LANGUAGE_DATA_INCL(LCD_LANGUAGE_5)
#endif
#if HAS_LCD_CONTRAST
@@ -293,7 +305,29 @@ void MarlinUI::init_lcd() {
TERN_(LCD_SCREEN_ROT_180, u8g.setRot180());
TERN_(LCD_SCREEN_ROT_270, u8g.setRot270());
uxg_SetUtf8Fonts(g_fontinfo, COUNT(g_fontinfo));
update_language_font();
}
void MarlinUI::update_language_font() {
#if HAS_MULTI_LANGUAGE
switch (language) {
default: uxg_SetUtf8Fonts(LANG_FONT_INFO(LCD_LANGUAGE), COUNT(LANG_FONT_INFO(LCD_LANGUAGE))); break;
#ifdef LCD_LANGUAGE_2
case 1: uxg_SetUtf8Fonts(LANG_FONT_INFO(LCD_LANGUAGE_2), COUNT(LANG_FONT_INFO(LCD_LANGUAGE_2))); break;
#endif
#ifdef LCD_LANGUAGE_3
case 2: uxg_SetUtf8Fonts(LANG_FONT_INFO(LCD_LANGUAGE_3), COUNT(LANG_FONT_INFO(LCD_LANGUAGE_3))); break;
#endif
#ifdef LCD_LANGUAGE_4
case 3: uxg_SetUtf8Fonts(LANG_FONT_INFO(LCD_LANGUAGE_4), COUNT(LANG_FONT_INFO(LCD_LANGUAGE_4))); break;
#endif
#ifdef LCD_LANGUAGE_5
case 4: uxg_SetUtf8Fonts(LANG_FONT_INFO(LCD_LANGUAGE_5), COUNT(LANG_FONT_INFO(LCD_LANGUAGE_5))); break;
#endif
}
#else
uxg_SetUtf8Fonts(LANG_FONT_INFO(LCD_LANGUAGE), COUNT(LANG_FONT_INFO(LCD_LANGUAGE)));
#endif
}
// The kill screen is displayed for unrecoverable conditions
@@ -57,6 +57,10 @@
#include "../../feature/cooler.h"
#endif
#if ENABLED(I2C_AMMETER)
#include "../../feature/ammeter.h"
#endif
#if HAS_POWER_MONITOR
#include "../../feature/power_monitor.h"
#endif
+3
View File
@@ -35,3 +35,6 @@ int uxg_GetUtf8StrPixelWidth(u8g_t *pu8g, const char *utf8_msg);
int uxg_GetUtf8StrPixelWidthP(u8g_t *pu8g, PGM_P utf8_msg);
#define uxg_GetFont(puxg) ((puxg)->font)
#define _LANG_FONT_INFO(L) g_fontinfo_##L
#define LANG_FONT_INFO(L) _LANG_FONT_INFO(L)
@@ -87,7 +87,7 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) {
.tag(13) .button(BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(MSG_INTERFACE))
.tag(14) .button(BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_RESTORE_DEFAULTS))
.colors(action_btn)
.tag(1). button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK));
.tag(1). button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXT_F(MSG_BUTTON_DONE));
#undef GRID_COLS
#undef GRID_ROWS
}
@@ -54,7 +54,7 @@ void MainMenu::onRedraw(draw_mode_t what) {
.tag(8).button(BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_ADVANCED_SETTINGS))
.tag(9).button(BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXT_F(MSG_INFO_MENU))
.colors(action_btn)
.tag(1).button(BTN_POS(1,10), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK));
.tag(1).button(BTN_POS(1,10), BTN_SIZE(2,1), GET_TEXT_F(MSG_BUTTON_DONE));
}
#undef GRID_COLS
@@ -54,7 +54,7 @@ void TuneMenu::onRedraw(draw_mode_t what) {
.enabled(!isPrinting()).tag(5).button(BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(MSG_MOVE_TO_HOME))
.enabled(!isPrinting()).tag(6).button(BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_RAISE_PLUNGER))
.enabled(!isPrinting()).tag(7).button(BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(MSG_RELEASE_XY_AXIS))
.colors(action_btn) .tag(1).button(BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK));
.colors(action_btn) .tag(1).button(BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_BUTTON_DONE));
}
#undef GRID_COLS
#undef GRID_ROWS
@@ -67,7 +67,7 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) {
.tag(10).button(DISPLAY_POS, GET_TEXT_F(MSG_DISPLAY_MENU))
.tag(11).button(RESTORE_DEFAULTS_POS, GET_TEXT_F(MSG_RESTORE_DEFAULTS))
.colors(action_btn)
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BACK));
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE));
}
}
@@ -71,7 +71,7 @@ void LevelingMenu::onRedraw(draw_mode_t what) {
#undef GRID_COLS
#define GRID_COLS 3
.colors(action_btn)
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BACK));
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE));
}
}
@@ -90,7 +90,7 @@ void LoadChocolateScreen::draw_buttons(draw_mode_t what) {
cmd.tag(3).button(x, y, h, v, GET_TEXT_F(MSG_FULL_LOAD));
ui.bounds(POLY(load_screen_back_btn), x, y, h, v);
cmd.tag(1).colors(action_btn).button(x, y, h, v, GET_TEXT_F(MSG_BACK));
cmd.tag(1).colors(action_btn).button(x, y, h, v, GET_TEXT_F(MSG_BUTTON_DONE));
}
void LoadChocolateScreen::draw_text(draw_mode_t what) {
@@ -68,7 +68,7 @@ void MainMenu::onRedraw(draw_mode_t what) {
.tag(10).button(LEVELING_POS, GET_TEXT_F(MSG_LEVELING))
.tag(11).button(ABOUT_PRINTER_POS, GET_TEXT_F(MSG_INFO_MENU))
.colors(action_btn)
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BACK));
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE));
}
}
@@ -65,7 +65,7 @@ void PreheatMenu::onRedraw(draw_mode_t what) {
}
#endif
cmd.colors(action_btn)
.tag(1) .button(BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK));
.tag(1) .button(BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(MSG_BUTTON_DONE));
}
}
@@ -77,7 +77,7 @@ void PreheatTimerScreen::draw_interaction_buttons(draw_mode_t what) {
CommandProcessor cmd;
cmd.colors(normal_btn)
.font(font_medium)
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BACK));
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE));
}
}
@@ -94,7 +94,7 @@ void AboutScreen::onRedraw(draw_mode_t) {
.tag(2).button(STATS_POS, GET_TEXT_F(MSG_INFO_STATS_MENU));
#endif
cmd.colors(action_btn)
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BACK));
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE));
}
bool AboutScreen::onTouchEnd(uint8_t tag) {
@@ -111,7 +111,7 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) {
.enabled(ENABLED(BACKLASH_GCODE))
.tag(8).button(BACKLASH_POS, GET_TEXT_F(MSG_BACKLASH))
.colors(action_btn)
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BACK));
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE));
}
}
@@ -61,7 +61,7 @@ BaseNumericAdjustmentScreen::widgets_t::widgets_t(draw_mode_t what) : _what(what
#else
BTN_POS(15,7), BTN_SIZE(4,1),
#endif
GET_TEXT_F(MSG_BACK), true, true
GET_TEXT_F(MSG_BUTTON_DONE), true, true
);
_line = 1;
@@ -136,7 +136,7 @@ void BedMeshEditScreen::drawHighlightedPointValue() {
if (mydata.highlight.x != NONE)
draw_adjuster(cmd, Z_VALUE_POS, 3, getHighlightedValue(), GET_TEXT_F(MSG_UNITS_MM), 4, 3);
cmd.colors(mydata.needSave ? normal_btn : action_btn)
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BUTTON_BACK))
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE))
.colors(mydata.needSave ? action_btn : normal_btn)
.enabled(mydata.needSave)
.tag(2).button(SAVE_POS, GET_TEXT_F(MSG_TOUCHMI_SAVE));
@@ -224,7 +224,7 @@ void ChangeFilamentScreen::onRedraw(draw_mode_t what) {
.tag(6) .enabled(t_ok).button (LOAD_MOMN_POS, GET_TEXT_F(MSG_MOMENTARY))
.tag(7).TOG_STYLE(tog7).enabled(t_ok).button (UNLD_CONT_POS, GET_TEXT_F(MSG_CONTINUOUS))
.tag(8).TOG_STYLE(tog8).enabled(t_ok).button (LOAD_CONT_POS, GET_TEXT_F(MSG_CONTINUOUS))
.tag(1).colors(action_btn) .button (BACK_POS, GET_TEXT_F(MSG_BACK));
.tag(1).colors(action_btn) .button (BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE));
}
}
@@ -135,7 +135,7 @@ void CustomUserMenus::onRedraw(draw_mode_t what) {
_USER_ITEM(20)
#endif
.colors(action_btn)
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BACK));
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE));
}
}
@@ -120,7 +120,7 @@ void EndstopStatesScreen::onRedraw(draw_mode_t) {
cmd.font(font_medium)
.colors(action_btn)
.tag(1).button(BTN_POS(1,7), BTN_SIZE(6,1), GET_TEXT_F(MSG_BACK));
.tag(1).button(BTN_POS(1,7), BTN_SIZE(6,1), GET_TEXT_F(MSG_BUTTON_DONE));
#undef GRID_COLS
#undef GRID_ROWS
}
@@ -63,7 +63,7 @@ void FilamentMenu::onRedraw(draw_mode_t what) {
.enabled(ENABLED(LIN_ADVANCE))
.tag(3).button(LIN_ADVANCE_POS, GET_TEXT_F(MSG_LINEAR_ADVANCE))
.colors(action_btn)
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BACK));
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE));
}
}
@@ -168,7 +168,7 @@ void FilesScreen::drawFooter() {
cmd.colors(normal_btn)
.font(font_medium)
.colors(has_selection ? normal_btn : action_btn)
.tag(back_tag).button(BTN_POS(4,y), BTN_SIZE(3,h), GET_TEXT_F(MSG_BACK))
.tag(back_tag).button(BTN_POS(4,y), BTN_SIZE(3,h), GET_TEXT_F(MSG_BUTTON_DONE))
.enabled(has_selection)
.colors(has_selection ? action_btn : normal_btn);
@@ -108,11 +108,11 @@ void InterfaceSettingsScreen::onRedraw(draw_mode_t what) {
.colors(normal_btn)
.tag(6).button (BTN_POS(1,6), BTN_SIZE(4,1), GET_TEXT_F(MSG_SOUNDS))
.colors(action_btn)
.tag(1).button (BTN_POS(1,7), BTN_SIZE(4,1), GET_TEXT_F(MSG_BACK));
.tag(1).button (BTN_POS(1,7), BTN_SIZE(4,1), GET_TEXT_F(MSG_BUTTON_DONE));
#else
.tag(6).button (BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_SOUNDS))
.colors(action_btn)
.tag(1).button (BTN_POS(3,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK));
.tag(1).button (BTN_POS(3,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_BUTTON_DONE));
#endif
}
}
@@ -102,7 +102,7 @@ void InterfaceSoundsScreen::onRedraw(draw_mode_t what) {
.tag(5).button (BTN_POS(3,6), BTN_SIZE(2,1), getSoundSelection(PRINTING_FINISHED))
.tag(6).button (BTN_POS(3,7), BTN_SIZE(2,1), getSoundSelection(PRINTING_FAILED))
.colors(action_btn)
.tag(1).button (BTN_POS(1,9), BTN_SIZE(4,1), GET_TEXT_F(MSG_BACK));
.tag(1).button (BTN_POS(1,9), BTN_SIZE(4,1), GET_TEXT_F(MSG_BUTTON_DONE));
}
}
@@ -96,7 +96,7 @@ void LevelingMenu::onRedraw(draw_mode_t what) {
.tag(8).button(BLTOUCH_TEST_POS, GET_TEXT_F(MSG_BLTOUCH_SELFTEST))
#endif
.colors(action_btn)
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BACK));
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE));
}
}
@@ -95,7 +95,7 @@ void MainMenu::onRedraw(draw_mode_t what) {
.tag(11).button(CUSTOM_MENU_POS, GET_TEXT_F(MSG_CUSTOM_COMMANDS))
#endif
.colors(action_btn)
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BACK));
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE));
}
}
@@ -63,7 +63,7 @@ void StatisticsScreen::onRedraw(draw_mode_t what) {
if (what & FOREGROUND) {
cmd.font(Theme::font_medium)
.colors(action_btn)
.tag(1).button(BTN_POS(1,7), BTN_SIZE(4,1), GET_TEXT_F(MSG_BACK));
.tag(1).button(BTN_POS(1,7), BTN_SIZE(4,1), GET_TEXT_F(MSG_BUTTON_DONE));
}
}
@@ -92,7 +92,7 @@ void TuneMenu::onRedraw(draw_mode_t what) {
.tag(10).button(CASE_LIGHT_POS, GET_TEXT_F(MSG_CASE_LIGHT))
.tag(11).button(ADVANCED_SETTINGS_POS, GET_TEXT_F(MSG_ADVANCED_SETTINGS))
.tag(1).colors(action_btn)
.button(BACK_POS, GET_TEXT_F(MSG_BACK));
.button(BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE));
}
#undef GRID_COLS
#undef GRID_ROWS
@@ -25,15 +25,10 @@
#include "draw_ui.h"
#include <lv_conf.h>
#include "tft_lvgl_configuration.h"
#include "SPI_TFT.h"
#include "../../../inc/MarlinConfig.h"
#if ENABLED(MKS_TEST)
#include "mks_hardware_test.h"
#endif
#include "mks_hardware.h"
static lv_obj_t *scr;
@@ -39,10 +39,7 @@
#include "draw_touch_calibration.h"
#endif
#if ENABLED(MKS_TEST)
#include "mks_hardware_test.h"
#endif
#include "mks_hardware.h"
#include <stdio.h>
#define ICON_POS_Y 38
@@ -129,7 +126,7 @@ void lv_draw_ready_print() {
ZERO(disp_state_stack._disp_state);
scr = lv_screen_create(PRINT_READY_UI, "");
if (mks_test_flag == 0x1E) {
if (TERN0(SDSUPPORT, mks_test_flag == 0x1E)) {
// Create image buttons
buttonTool = lv_imgbtn_create(scr, "F:/bmp_tool.bin", event_handler, ID_TOOL);
+2 -2
View File
@@ -52,7 +52,7 @@
#endif
#if ENABLED(MKS_TEST)
#include "mks_hardware_test.h"
#include "mks_hardware.h"
#endif
CFG_ITMES gCfgItems;
@@ -1366,7 +1366,7 @@ void print_time_count() {
void LV_TASK_HANDLER() {
lv_task_handler();
#if ENABLED(MKS_TEST)
#if BOTH(MKS_TEST, SDSUPPORT)
if (mks_test_flag == 0x1E) mks_hardware_test();
#endif
@@ -37,7 +37,7 @@
#if ENABLED(MKS_TEST)
#include "mks_hardware_test.h"
#include "mks_hardware.h"
bool pw_det_sta, pw_off_sta, mt_det_sta;
#if PIN_EXISTS(MT_DET_2)
@@ -613,10 +613,9 @@ void disp_assets_update_progress(const char *msg) {
disp_string(100, 165, buf, 0xFFFF, 0x0000);
}
uint8_t mks_test_flag = 0;
const char *MKSTestPath = "MKS_TEST";
#if ENABLED(SDSUPPORT)
uint8_t mks_test_flag = 0;
const char *MKSTestPath = "MKS_TEST";
void mks_test_get() {
SdFile dir, root = card.getroot();
if (dir.open(&root, MKSTestPath, O_RDONLY))
@@ -21,15 +21,22 @@
*/
#pragma once
#include "../../../inc/MarlinConfigPre.h"
#include <lvgl.h>
void mks_gpio_test();
void mks_hardware_test();
void mks_test_get();
// Functions for MKS_TEST
#if ENABLED(MKS_TEST)
void mks_gpio_test();
void mks_hardware_test();
void mks_test_get();
#endif
void disp_char_1624(uint16_t x, uint16_t y, uint8_t c, uint16_t charColor, uint16_t bkColor);
// String display and assets
void disp_string(uint16_t x, uint16_t y, const char * string, uint16_t charColor, uint16_t bkColor);
void disp_assets_update();
void disp_assets_update_progress(const char *msg);
extern uint8_t mks_test_flag;
#if ENABLED(SDSUPPORT)
extern uint8_t mks_test_flag;
#endif
+1 -6
View File
@@ -27,14 +27,9 @@
#include "draw_ui.h"
#include "pic_manager.h"
#include "draw_ready_print.h"
#if ENABLED(MKS_TEST)
#include "mks_hardware_test.h"
#endif
#include "mks_hardware.h"
#include "SPIFlashStorage.h"
#include "../../../libs/W25Qxx.h"
#include "../../../sd/cardreader.h"
#include "../../../MarlinCore.h"
@@ -29,7 +29,7 @@
#include "draw_ready_print.h"
#include "pic_manager.h"
#include "mks_hardware_test.h"
#include "mks_hardware.h"
#include "draw_ui.h"
#include "SPIFlashStorage.h"
#include <lvgl.h>
@@ -231,7 +231,7 @@ void tft_lvgl_init() {
if (ready) lv_draw_ready_print();
#if ENABLED(MKS_TEST)
#if BOTH(MKS_TEST, SDSUPPORT)
if (mks_test_flag == 0x1E) mks_gpio_test();
#endif
}
+1 -1
View File
@@ -31,7 +31,7 @@ namespace Language_zh_CN {
using namespace Language_en; // Inherit undefined strings from English
constexpr uint8_t CHARSIZE = 3;
PROGMEM Language_Str LANGUAGE = _UxGT("简体中文");
PROGMEM Language_Str LANGUAGE = _UxGT("Simplified Chinese");
PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT("已就绪."); //" ready."
PROGMEM Language_Str MSG_MARLIN = _UxGT("马林");
+8
View File
@@ -88,6 +88,14 @@ constexpr uint8_t epps = ENCODER_PULSES_PER_STEP;
#if HAS_MULTI_LANGUAGE
uint8_t MarlinUI::language; // Initialized by settings.load()
void MarlinUI::set_language(const uint8_t lang) {
if (lang < NUM_LANGUAGES) {
language = lang;
TERN_(HAS_MARLINUI_U8GLIB, update_language_font());
return_to_status();
refresh();
}
}
#endif
#if ENABLED(SOUND_MENU_ITEM)
+5 -7
View File
@@ -200,13 +200,11 @@ public:
#if HAS_MULTI_LANGUAGE
static uint8_t language;
static inline void set_language(const uint8_t lang) {
if (lang < NUM_LANGUAGES) {
language = lang;
return_to_status();
refresh();
}
}
static void set_language(const uint8_t lang);
#endif
#if HAS_MARLINUI_U8GLIB
static void update_language_font();
#endif
#if ENABLED(SOUND_MENU_ITEM)
+1 -1
View File
@@ -211,7 +211,7 @@ void menu_change_filament() {
if (thermalManager.targetHotEnoughToExtrude(active_extruder))
queue.inject_P(PSTR("M600B0"));
else
_menu_temp_filament_op(PAUSE_MODE_CHANGE_FILAMENT, 0);
ui.goto_screen([]{ _menu_temp_filament_op(PAUSE_MODE_CHANGE_FILAMENT, 0); });
#endif
}
+2
View File
@@ -128,6 +128,8 @@
#define THERMISTOR_NAME "Pt100 1K"
#elif THERMISTOR_ID == 666
#define THERMISTOR_NAME "Einstart S"
#elif THERMISTOR_ID == 2000
#define THERMISTOR_NAME "TDK NTCG104LH104JT1"
// High Temperature thermistors
#elif THERMISTOR_ID == 61
+20 -1
View File
@@ -107,6 +107,24 @@
#if (TEMP_SENSOR_0_USES_SW_SPI || TEMP_SENSOR_1_USES_SW_SPI) && !HAS_MAXTC_LIBRARIES
#include "../libs/private_spi.h"
#define HAS_MAXTC_SW_SPI 1
// Define pins for SPI-based sensors
#if TEMP_SENSOR_0_USES_SW_SPI
#define SW_SPI_SCK_PIN TEMP_0_SCK_PIN
#define SW_SPI_MISO_PIN TEMP_0_MISO_PIN
#if PIN_EXISTS(TEMP_0_MOSI)
#define SW_SPI_MOSI_PIN TEMP_0_MOSI_PIN
#endif
#else
#define SW_SPI_SCK_PIN TEMP_1_SCK_PIN
#define SW_SPI_MISO_PIN TEMP_1_MISO_PIN
#if PIN_EXISTS(TEMP_1_MOSI)
#define SW_SPI_MOSI_PIN TEMP_1_MOSI_PIN
#endif
#endif
#ifndef SW_SPI_MOSI_PIN
#define SW_SPI_MOSI_PIN SD_MOSI_PIN
#endif
#endif
#if ENABLED(PID_EXTRUSION_SCALING)
@@ -198,7 +216,8 @@ const char str_t_thermal_runaway[] PROGMEM = STR_T_THERMAL_RUNAWAY,
// Initialize SoftSPI for non-lib Software SPI; Libraries take care of it themselves.
template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin>
SoftSPI<MisoPin, MosiPin, SckPin> SPIclass<MisoPin, MosiPin, SckPin>::softSPI;
SPIclass<TEMP_0_MISO_PIN, TEMP_0_MOSI_PIN, TEMP_0_SCK_PIN> max_tc_spi;
SPIclass<SW_SPI_MISO_PIN, SW_SPI_MOSI_PIN, SW_SPI_SCK_PIN> max_tc_spi;
#endif
#define MAXTC_INIT(n, M) \
@@ -0,0 +1,60 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
#pragma once
// R25 = 100 KOhm, beta25 = 4550 K, 4.7 kOhm pull-up, TDK NTCG104LH104KT1 https://product.tdk.com/en/search/sensor/ntc/chip-ntc-thermistor/info?part_no=NTCG104LH104KT1
constexpr temp_entry_t temptable_2000[] PROGMEM = {
{ OV(313), 125 },
{ OV(347), 120 },
{ OV(383), 115 },
{ OV(422), 110 },
{ OV(463), 105 },
{ OV(506), 100 },
{ OV(549), 95 },
{ OV(594), 90 },
{ OV(638), 85 },
{ OV(681), 80 },
{ OV(722), 75 },
{ OV(762), 70 },
{ OV(799), 65 },
{ OV(833), 60 },
{ OV(863), 55 },
{ OV(890), 50 },
{ OV(914), 45 },
{ OV(934), 40 },
{ OV(951), 35 },
{ OV(966), 30 },
{ OV(978), 25 },
{ OV(988), 20 },
{ OV(996), 15 },
{ OV(1002), 10 },
{ OV(1007), 5 },
{ OV(1012), 0 },
{ OV(1015), -5 },
{ OV(1017), -10 },
{ OV(1019), -15 },
{ OV(1020), -20 },
{ OV(1021), -25 },
{ OV(1022), -30 },
{ OV(1023), -35 },
{ OV(1023), -40 }
};
@@ -201,6 +201,9 @@ typedef struct { int16_t value; celsius_t celsius; } temp_entry_t;
#if ANY_THERMISTOR_IS(1047) // Pt1000 with 4k7 pullup
#include "thermistor_1047.h"
#endif
#if ANY_THERMISTOR_IS(2000) // "Ultimachine Rambo TDK NTCG104LH104KT1 NTC100K motherboard Thermistor" https://product.tdk.com/en/search/sensor/ntc/chip-ntc-thermistor/info?part_no=NTCG104LH104KT1
#include "thermistor_2000.h"
#endif
#if ANY_THERMISTOR_IS(998) // User-defined table 1
#include "thermistor_998.h"
#endif
+16 -16
View File
@@ -486,17 +486,17 @@
#elif MB(MKS_ROBIN)
#include "stm32f1/pins_MKS_ROBIN.h" // STM32F1 env:mks_robin env:mks_robin_maple
#elif MB(MKS_ROBIN_MINI)
#include "stm32f1/pins_MKS_ROBIN_MINI.h" // STM32F1 env:mks_robin_mini
#include "stm32f1/pins_MKS_ROBIN_MINI.h" // STM32F1 env:mks_robin_mini env:mks_robin_mini_maple
#elif MB(MKS_ROBIN_NANO)
#include "stm32f1/pins_MKS_ROBIN_NANO.h" // STM32F1 env:mks_robin_nano35 env:mks_robin_nano35_maple
#elif MB(MKS_ROBIN_NANO_V2)
#include "stm32f1/pins_MKS_ROBIN_NANO_V2.h" // STM32F1 env:mks_robin_nano35 env:mks_robin_nano35_maple
#elif MB(MKS_ROBIN_LITE)
#include "stm32f1/pins_MKS_ROBIN_LITE.h" // STM32F1 env:mks_robin_lite
#include "stm32f1/pins_MKS_ROBIN_LITE.h" // STM32F1 env:mks_robin_lite env:mks_robin_lite_maple
#elif MB(MKS_ROBIN_LITE3)
#include "stm32f1/pins_MKS_ROBIN_LITE3.h" // STM32F1 env:mks_robin_lite3
#include "stm32f1/pins_MKS_ROBIN_LITE3.h" // STM32F1 env:mks_robin_lite3 env:mks_robin_lite3_maple
#elif MB(MKS_ROBIN_PRO)
#include "stm32f1/pins_MKS_ROBIN_PRO.h" // STM32F1 env:mks_robin_pro
#include "stm32f1/pins_MKS_ROBIN_PRO.h" // STM32F1 env:mks_robin_pro env:mks_robin_pro_maple
#elif MB(MKS_ROBIN_E3)
#include "stm32f1/pins_MKS_ROBIN_E3.h" // STM32F1 env:mks_robin_e3 env:mks_robin_e3_maple
#elif MB(MKS_ROBIN_E3_V1_1)
@@ -506,7 +506,7 @@
#elif MB(MKS_ROBIN_E3D_V1_1)
#include "stm32f1/pins_MKS_ROBIN_E3D_V1_1.h" // STM32F1 env:mks_robin_e3
#elif MB(MKS_ROBIN_E3P)
#include "stm32f1/pins_MKS_ROBIN_E3P.h" // STM32F1 env:mks_robin_e3p
#include "stm32f1/pins_MKS_ROBIN_E3P.h" // STM32F1 env:mks_robin_e3p env:mks_robin_e3p_maple
#elif MB(BTT_SKR_MINI_V1_1)
#include "stm32f1/pins_BTT_SKR_MINI_V1_1.h" // STM32F1 env:STM32F103RC_btt env:STM32F103RC_btt_USB env:STM32F103RC_btt_maple env:STM32F103RC_btt_USB_maple
#elif MB(BTT_SKR_MINI_E3_V1_0)
@@ -522,21 +522,21 @@
#elif MB(BTT_SKR_CR6)
#include "stm32f1/pins_BTT_SKR_CR6.h" // STM32F1 env:STM32F103RE_btt env:STM32F103RE_btt_USB env:STM32F103RE_btt_maple env:STM32F103RE_btt_USB_maple
#elif MB(JGAURORA_A5S_A1)
#include "stm32f1/pins_JGAURORA_A5S_A1.h" // STM32F1 env:jgaurora_a5s_a1
#include "stm32f1/pins_JGAURORA_A5S_A1.h" // STM32F1 env:jgaurora_a5s_a1 env:jgaurora_a5s_a1_maple
#elif MB(FYSETC_AIO_II)
#include "stm32f1/pins_FYSETC_AIO_II.h" // STM32F1 env:STM32F103RC_fysetc
#include "stm32f1/pins_FYSETC_AIO_II.h" // STM32F1 env:STM32F103RC_fysetc env:STM32F103RC_fysetc_maple
#elif MB(FYSETC_CHEETAH)
#include "stm32f1/pins_FYSETC_CHEETAH.h" // STM32F1 env:STM32F103RC_fysetc
#include "stm32f1/pins_FYSETC_CHEETAH.h" // STM32F1 env:STM32F103RC_fysetc env:STM32F103RC_fysetc_maple
#elif MB(FYSETC_CHEETAH_V12)
#include "stm32f1/pins_FYSETC_CHEETAH_V12.h" // STM32F1 env:STM32F103RC_fysetc
#include "stm32f1/pins_FYSETC_CHEETAH_V12.h" // STM32F1 env:STM32F103RC_fysetc env:STM32F103RC_fysetc_maple
#elif MB(LONGER3D_LK)
#include "stm32f1/pins_LONGER3D_LK.h" // STM32F1 env:STM32F103VE_longer
#include "stm32f1/pins_LONGER3D_LK.h" // STM32F1 env:STM32F103VE_longer env:STM32F103VE_longer_maple
#elif MB(CCROBOT_MEEB_3DP)
#include "stm32f1/pins_CCROBOT_MEEB_3DP.h" // STM32F1 env:STM32F103RC_meeb
#elif MB(CHITU3D_V5)
#include "stm32f1/pins_CHITU3D_V5.h" // STM32F1 env:chitu_f103 env:chitu_v5_gpio_init
#include "stm32f1/pins_CHITU3D_V5.h" // STM32F1 env:chitu_f103 env:chitu_f103_maple env:chitu_v5_gpio_init env:chitu_v5_gpio_init_maple
#elif MB(CHITU3D_V6)
#include "stm32f1/pins_CHITU3D_V6.h" // STM32F1 env:chitu_f103
#include "stm32f1/pins_CHITU3D_V6.h" // STM32F1 env:chitu_f103 env:chitu_f103_maple
#elif MB(CREALITY_V4)
#include "stm32f1/pins_CREALITY_V4.h" // STM32F1 env:STM32F103RET6_creality env:STM32F103RET6_creality_maple
#elif MB(CREALITY_V4210)
@@ -550,9 +550,9 @@
#elif MB(CREALITY_V453)
#include "stm32f1/pins_CREALITY_V453.h" // STM32F1 env:STM32F103RET6_creality env:STM32F103RET6_creality_maple
#elif MB(TRIGORILLA_PRO)
#include "stm32f1/pins_TRIGORILLA_PRO.h" // STM32F1 env:trigorilla_pro
#include "stm32f1/pins_TRIGORILLA_PRO.h" // STM32F1 env:trigorilla_pro env:trigorilla_pro_maple
#elif MB(FLY_MINI)
#include "stm32f1/pins_FLY_MINI.h" // STM32F1 env:FLY_MINI
#include "stm32f1/pins_FLY_MINI.h" // STM32F1 env:FLY_MINI env:FLY_MINI_maple
#elif MB(FLSUN_HISPEED)
#include "stm32f1/pins_FLSUN_HISPEED.h" // STM32F1 env:flsun_hispeedv1
#elif MB(BEAST)
@@ -594,9 +594,9 @@
#elif MB(BTT_E3_RRF)
#include "stm32f4/pins_BTT_E3_RRF.h" // STM32F4 env:BIGTREE_E3_RRF
#elif MB(BTT_SKR_V2_0_REV_A)
#include "stm32f4/pins_BTT_SKR_V2_0_REV_A.h" // STM32F4 env:BIGTREE_SKR_2
#include "stm32f4/pins_BTT_SKR_V2_0_REV_A.h" // STM32F4 env:BIGTREE_SKR_2 env:BIGTREE_SKR_2_USB
#elif MB(BTT_SKR_V2_0_REV_B)
#include "stm32f4/pins_BTT_SKR_V2_0_REV_B.h" // STM32F4 env:BIGTREE_SKR_2
#include "stm32f4/pins_BTT_SKR_V2_0_REV_B.h" // STM32F4 env:BIGTREE_SKR_2 env:BIGTREE_SKR_2_USB
#elif MB(BTT_OCTOPUS_V1_0)
#include "stm32f4/pins_BTT_OCTOPUS_V1_0.h" // STM32F4 env:BIGTREE_OCTOPUS_V1 env:BIGTREE_OCTOPUS_V1_USB
#elif MB(BTT_OCTOPUS_V1_1)
+1 -1
View File
@@ -116,7 +116,7 @@
//
#define TEMP_0_PIN 0 // Analog Input, Header J2
#define TEMP_1_PIN 1 // Analog Input, Header J3
#define TEMP_BOARD_PIN TEMP_1_PIN // Analog Input, Header J3
#define TEMP_BOARD_PIN 91 // Onboard thermistor, 100k TDK NTCG104LH104JT1
#define TEMP_BED_PIN 2 // Analog Input, Header J6
#define TEMP_PROBE_PIN 3 // Analog Input, Header J15
+3 -5
View File
@@ -117,13 +117,9 @@
#define W25QXX_SCK_PIN PB13
//
// TronXY TFT Support
// TFT with FSMC interface
//
#if HAS_FSMC_TFT
// Shared FSMC
#define TOUCH_CS_PIN PB7 // SPI1_NSS
#define TOUCH_SCK_PIN PA5 // SPI1_SCK
#define TOUCH_MISO_PIN PA6 // SPI1_MISO
@@ -138,6 +134,8 @@
#define FSMC_DMA_DEV DMA2
#define FSMC_DMA_CHANNEL DMA_CH5
#define TFT_CS_PIN FSMC_CS_PIN
#define TFT_RS_PIN FSMC_RS_PIN
#endif
#if ENABLED(TFT_LVGL_UI)

Some files were not shown because too many files have changed in this diff Show More