Compare commits
31 Commits
v2.0-alpha
...
v2.01
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
662b39cbd4 | ||
|
|
39295c9705 | ||
|
|
87c2ed4f53 | ||
|
|
3c2e8765f2 | ||
|
|
5b4ed06013 | ||
|
|
c5c89a516e | ||
|
|
9d536c4d25 | ||
|
|
c68dee6ff3 | ||
|
|
121feef977 | ||
|
|
17e7d92463 | ||
|
|
b0e20b9e2f | ||
|
|
0f4ceb131c | ||
|
|
1447b1cad8 | ||
|
|
d03443e783 | ||
|
|
40516cd5b1 | ||
|
|
21b766bf96 | ||
|
|
b6c193309d | ||
|
|
53399f5866 | ||
|
|
d0aaea8d6f | ||
|
|
d0f56ae4ff | ||
|
|
dfa4c6e65b | ||
|
|
ed2f0db7f0 | ||
|
|
7cc0fd7c84 | ||
|
|
afa8257bce | ||
|
|
d7a9e1a9ea | ||
|
|
1bcdf42315 | ||
|
|
43b6d37bc6 | ||
|
|
bcf78dff4c | ||
|
|
0e7e304f4e | ||
|
|
0aae546dc9 | ||
|
|
2bf06caa09 |
@@ -1,24 +1,23 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
VERSION_STRING = '0.01'
|
||||
|
||||
|
||||
# coding=utf-8
|
||||
from __future__ import division
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
||||
try:
|
||||
import PIL, PIL.Image, PIL.ImageOps
|
||||
except ImportError,error:
|
||||
raise ImportError, "%s: %s requres Python Imaging Library (PIL). " \
|
||||
"Install with `pip` or OS-specific package " \
|
||||
"management tool." \
|
||||
% (error, sys.argv[0])
|
||||
|
||||
from PIL import Image, ImageOps
|
||||
except ImportError as error:
|
||||
raise ImportError("{}: {} requres Python Imaging Library (PIL). "
|
||||
"Install with `pip` or OS-specific package "
|
||||
"management tool."
|
||||
.format(error, sys.argv[0]))
|
||||
|
||||
VERSION_STRING = '0.01'
|
||||
|
||||
LCD_WIDTH = 96
|
||||
LCD_HEIGHT = 16
|
||||
LCD_NUM_BYTES = LCD_WIDTH * LCD_HEIGHT / 8
|
||||
LCD_NUM_BYTES = LCD_WIDTH * LCD_HEIGHT // 8
|
||||
LCD_PADDED_SIZE = 1024
|
||||
|
||||
INTELHEX_DATA_RECORD = 0x00
|
||||
@@ -28,40 +27,36 @@ INTELHEX_BYTES_PER_LINE = 16
|
||||
INTELHEX_MINIMUM_SIZE = 4096
|
||||
|
||||
|
||||
|
||||
def split16(word):
|
||||
'''return high and low byte of 16-bit word value as tuple'''
|
||||
return ((word >> 8) & 0xff, word & 0xff)
|
||||
|
||||
"""return high and low byte of 16-bit word value as tuple"""
|
||||
return (word >> 8) & 0xff, word & 0xff
|
||||
|
||||
|
||||
def intel_hex_line(file, record_type, offset, data):
|
||||
'''write a line of data in Intel hex format'''
|
||||
"""write a line of data in Intel hex format"""
|
||||
# length, address offset, record type
|
||||
record_length = len(data)
|
||||
file.write(':%02X%04X%02X' % (record_length, offset, record_type))
|
||||
file.write(':{:02X}{:04X}{:02X}'.format(record_length, offset, record_type))
|
||||
|
||||
# data
|
||||
map(lambda byte: file.write("%02X" % byte), data)
|
||||
map(lambda byte: file.write("{:02X}".format(byte)), data)
|
||||
|
||||
# compute and write checksum (with DOS line ending for compatibility/safety)
|
||||
file.write( "%02X\r\n"
|
||||
% ( ( ( sum(data, # sum data ...
|
||||
record_length # ... and other ...
|
||||
+ sum(split16(offset)) # ... fields ...
|
||||
+ record_type) # ... on line
|
||||
& 0xff) # low 8 bits
|
||||
^ 0xff) # two's ...
|
||||
+ 1)) # ... complement
|
||||
file.write("{:02X}\r\n"
|
||||
.format(((sum(data, # sum data ...
|
||||
record_length # ... and other ...
|
||||
+ sum(split16(offset)) # ... fields ...
|
||||
+ record_type) # ... on line
|
||||
& 0xff) # low 8 bits
|
||||
^ 0xff) # two's ...
|
||||
+ 1)) # ... complement
|
||||
|
||||
|
||||
|
||||
def intel_hex(file, bytes, start_address = 0x0):
|
||||
'''write block of data in Intel hex format'''
|
||||
if len(bytes) % INTELHEX_BYTES_PER_LINE != 0:
|
||||
raise ValueError, \
|
||||
"Program error: Size of LCD data is not evenly divisible by %s" \
|
||||
% INTELHEX_BYTES_PER_LINE
|
||||
def intel_hex(file, bytes_, start_address=0x0):
|
||||
"""write block of data in Intel hex format"""
|
||||
if len(bytes_) % INTELHEX_BYTES_PER_LINE != 0:
|
||||
raise ValueError("Program error: Size of LCD data is not evenly divisible by {}"
|
||||
.format(INTELHEX_BYTES_PER_LINE))
|
||||
|
||||
address_lo = start_address & 0xffff
|
||||
address_hi = (start_address >> 16) & 0xffff
|
||||
@@ -74,11 +69,11 @@ def intel_hex(file, bytes, start_address = 0x0):
|
||||
size_written = 0
|
||||
while size_written < INTELHEX_MINIMUM_SIZE:
|
||||
offset = address_lo
|
||||
for line_start in range(0, len(bytes), INTELHEX_BYTES_PER_LINE):
|
||||
for line_start in range(0, len(bytes_), INTELHEX_BYTES_PER_LINE):
|
||||
intel_hex_line(file,
|
||||
INTELHEX_DATA_RECORD,
|
||||
offset,
|
||||
bytes[line_start:line_start+INTELHEX_BYTES_PER_LINE])
|
||||
bytes_[line_start:line_start + INTELHEX_BYTES_PER_LINE])
|
||||
size_written += INTELHEX_BYTES_PER_LINE
|
||||
if size_written >= INTELHEX_MINIMUM_SIZE:
|
||||
break
|
||||
@@ -87,14 +82,13 @@ def intel_hex(file, bytes, start_address = 0x0):
|
||||
intel_hex_line(file, INTELHEX_END_OF_FILE_RECORD, 0, ())
|
||||
|
||||
|
||||
|
||||
def img2hex(input_filename,
|
||||
output_file,
|
||||
preview_filename=None,
|
||||
threshold=128,
|
||||
dither=False,
|
||||
negative=False):
|
||||
'''
|
||||
"""
|
||||
Convert 'input_filename' image file into Intel hex format with data
|
||||
formatted for display on TS100 LCD and file object.
|
||||
Input image is converted from color or grayscale to black-and-white,
|
||||
@@ -107,13 +101,12 @@ def img2hex(input_filename,
|
||||
dithering algorithm used.
|
||||
Optional `negative' inverts black/white regardless of input image type
|
||||
or other options.
|
||||
'''
|
||||
"""
|
||||
|
||||
try:
|
||||
image = PIL.Image.open(input_filename)
|
||||
except BaseException,error:
|
||||
raise IOError, \
|
||||
"error reading image file \"%s\": %s" % (input_filename, error)
|
||||
image = Image.open(input_filename)
|
||||
except BaseException as e:
|
||||
raise IOError("error reading image file \"{}\": {}".format(input_filename, e))
|
||||
|
||||
# convert to luminance
|
||||
# do even if already black/white because PIL can't invert 1-bit so
|
||||
@@ -124,10 +117,10 @@ def img2hex(input_filename,
|
||||
image = image.convert('L')
|
||||
|
||||
if image.size != (LCD_WIDTH, LCD_HEIGHT):
|
||||
image = image.resize((LCD_WIDTH, LCD_HEIGHT), PIL.Image.BICUBIC)
|
||||
image = image.resize((LCD_WIDTH, LCD_HEIGHT), Image.BICUBIC)
|
||||
|
||||
if negative:
|
||||
image = PIL.ImageOps.invert(image)
|
||||
image = ImageOps.invert(image)
|
||||
threshold = 255 - threshold # have to invert threshold
|
||||
|
||||
if dither:
|
||||
@@ -135,7 +128,8 @@ def img2hex(input_filename,
|
||||
else:
|
||||
image = image.point(lambda pixel: 0 if pixel < threshold else 1, '1')
|
||||
|
||||
if preview_filename: image.save(preview_filename)
|
||||
if preview_filename:
|
||||
image.save(preview_filename)
|
||||
|
||||
''' DEBUG
|
||||
for row in range(LCD_HEIGHT):
|
||||
@@ -155,7 +149,7 @@ def img2hex(input_filename,
|
||||
data[3] = 0xF0
|
||||
|
||||
# convert to TS100 LCD format
|
||||
for ndx in range(LCD_WIDTH * 16 / 8):
|
||||
for ndx in range(LCD_WIDTH * 16 // 8):
|
||||
bottom_half_offset = 0 if ndx < LCD_WIDTH else 8
|
||||
byte = 0
|
||||
for y in range(8):
|
||||
@@ -167,7 +161,6 @@ def img2hex(input_filename,
|
||||
intel_hex(output_file, data, 0x0800B800)
|
||||
|
||||
|
||||
|
||||
def parse_commandline():
|
||||
parser = argparse.ArgumentParser(
|
||||
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
||||
@@ -175,10 +168,8 @@ def parse_commandline():
|
||||
"at startup")
|
||||
|
||||
def zero_to_255(text):
|
||||
try:
|
||||
value = int(text)
|
||||
assert(value >= 0 and value <= 255)
|
||||
except:
|
||||
value = int(text)
|
||||
if not 0 <= value <= 255:
|
||||
raise argparse.ArgumentTypeError("must be integer from 0 to 255 ")
|
||||
return value
|
||||
|
||||
@@ -215,37 +206,36 @@ def parse_commandline():
|
||||
|
||||
parser.add_argument('-v', '--version',
|
||||
action='version',
|
||||
version="%(prog)s version " + VERSION_STRING,
|
||||
version="%(prog)s version " + VERSION_STRING,
|
||||
help="print version info")
|
||||
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import argparse
|
||||
args = parse_commandline()
|
||||
|
||||
if os.path.exists(args.output_filename) and not args.force:
|
||||
sys.stderr.write( "Won't overwrite existing file \"%s\" (use --force "
|
||||
"option to override)\n"
|
||||
% args.output_filename)
|
||||
sys.stderr.write("Won't overwrite existing file \"{}\" (use --force "
|
||||
"option to override)\n"
|
||||
.format(args.output_filename))
|
||||
sys.exit(1)
|
||||
|
||||
if args.preview and os.path.exists(args.preview) and not args.force:
|
||||
sys.stderr.write( "Won't overwrite existing file \"%s\" (use --force "
|
||||
"option to override)\n"
|
||||
% args.preview)
|
||||
sys.stderr.write("Won't overwrite existing file \"{}\" (use --force "
|
||||
"option to override)\n"
|
||||
.format(args.preview))
|
||||
sys.exit(1)
|
||||
|
||||
try:
|
||||
with open(args.output_filename, 'w') as output_file:
|
||||
with open(args.output_filename, 'w') as output:
|
||||
img2hex(args.input_filename,
|
||||
output_file,
|
||||
output,
|
||||
args.preview,
|
||||
args.threshold,
|
||||
args.dither,
|
||||
args.negative)
|
||||
except BaseException,error:
|
||||
sys.stderr.write("Error converting file: %s\n" % error)
|
||||
except BaseException as error:
|
||||
sys.stderr.write("Error converting file: {}\n".format(error))
|
||||
sys.exit(1)
|
||||
|
||||
11
README.md
11
README.md
@@ -1,12 +1,3 @@
|
||||
# Version 2 development branch
|
||||
|
||||
This firmware is not complete, it is missing some features such as :
|
||||
|
||||
* Russian font has issues atm
|
||||
* Soldering detailed view coming
|
||||
While it most likely will work, It is not meant for production use *just* yet!
|
||||
|
||||
|
||||
# TS100
|
||||
This is a complete rewrite of the open source software for the ts100 soldering iron.
|
||||
The version two fork of this code has no shared code with the original firmware from Miniware (E-design) group.
|
||||
@@ -78,7 +69,7 @@ Holding the button at the front of the iron will enter boost mode (if enabled).
|
||||
## Settings Menu
|
||||
|
||||
This menu allows you to cycle through all the options and set their values.
|
||||
The button near the tip cycles through the options, and the one near the usb changes the selected option.
|
||||
The button near the USB cycles through the options, and the one near the tip changes the selected option.
|
||||
Note that settings are not saved until you exit the menu, and some settings such as screen flip do not apply until a power cycle is applied.
|
||||
If you leave the unit alone (ie don't press any buttons) on a setting, after 3 seconds the screen will scroll a longer version of the name
|
||||
|
||||
|
||||
@@ -24,34 +24,36 @@ extern "C" {
|
||||
|
||||
class OLED {
|
||||
public:
|
||||
OLED(I2C_HandleTypeDef* i2cHandle); // Initialize Driver and store I2C pointer
|
||||
void initialize(); // Startup the I2C coms (brings screen out of reset etc)
|
||||
void refresh(); // Draw the buffer out to the LCD using the DMA Channel
|
||||
void drawChar(char c, char preCursorCommand = '\0'); // Draw a character to a specific location
|
||||
OLED(I2C_HandleTypeDef* i2cHandle); // Initialize Driver and store I2C pointer
|
||||
void initialize(); // Startup the I2C coms (brings screen out of reset etc)
|
||||
void refresh(); // Draw the buffer out to the LCD using the DMA Channel
|
||||
void drawChar(char c, char preCursorCommand = '\0');// Draw a character to a specific location
|
||||
void displayOnOff(bool on); // Turn the screen on or not
|
||||
void setRotation(bool leftHanded); // Set the rotation for the screen
|
||||
bool getRotation(); // Get the current rotation of the LCD
|
||||
void print(const char* string); // Draw a string to the current location, with current font
|
||||
void setCursor(int16_t x, int16_t y); // Set the cursor location
|
||||
void setFont(uint8_t fontNumber); // (Future) Set the font that is being used
|
||||
bool getRotation(); // Get the current rotation of the LCD
|
||||
void print(const char* string); // Draw a string to the current location, with current font
|
||||
void setCursor(int16_t x, int16_t y); // Set the cursor location by pixels
|
||||
void setCharCursor(int16_t x, int16_t y); //Set cursor location by chars in current font
|
||||
void setFont(uint8_t fontNumber);// (Future) Set the font that is being used
|
||||
void drawImage(const uint8_t* buffer, uint8_t x, uint8_t width);
|
||||
// Draws an image to the buffer, at x offset from top to bottom (fixed height renders)
|
||||
void printNumber(uint16_t number, uint8_t places);
|
||||
// Draws a number at the current cursor location
|
||||
void clearScreen(); // Clears the buffer
|
||||
void drawBattery(uint8_t state); // Draws the battery level symbol
|
||||
void drawSymbol(uint8_t symbolID); //Used for drawing symbols of a predictable width
|
||||
void drawArea(int16_t x, int8_t y, uint8_t wide, uint8_t height, const uint8_t* ptr);
|
||||
void drawSymbol(uint8_t symbolID);//Used for drawing symbols of a predictable width
|
||||
void drawArea(int16_t x, int8_t y, uint8_t wide, uint8_t height,
|
||||
const uint8_t* ptr);
|
||||
private:
|
||||
|
||||
//Draw a buffer to the screen buffer
|
||||
|
||||
I2C_HandleTypeDef* i2c; //i2c Pointer
|
||||
const uint8_t* currentFont; // Pointer to the current font used for rendering to the buffer
|
||||
const uint8_t* currentFont; // Pointer to the current font used for rendering to the buffer
|
||||
uint8_t screenBuffer[12 + 96 + 96 + 10]; // The data buffer
|
||||
uint8_t* firstStripPtr; // Pointers to the strips to allow for buffer having extra content
|
||||
uint8_t* firstStripPtr; // Pointers to the strips to allow for buffer having extra content
|
||||
uint8_t* secondStripPtr; //Pointers to the strips
|
||||
bool inLeftHandedMode; // Whether the screen is in left or not (used for offsets in GRAM)
|
||||
bool inLeftHandedMode; // Whether the screen is in left or not (used for offsets in GRAM)
|
||||
bool displayOnOffState; // If the display is on or not
|
||||
uint8_t fontWidth, fontHeight;
|
||||
int16_t cursor_x, cursor_y;
|
||||
|
||||
@@ -8,8 +8,17 @@
|
||||
#ifndef TRANSLATION_H_
|
||||
#define TRANSLATION_H_
|
||||
|
||||
enum ShortNameType {
|
||||
SHORT_NAME_SINGLE_LINE = 1, SHORT_NAME_DOUBLE_LINE = 2,
|
||||
};
|
||||
|
||||
/*
|
||||
* When SettingsShortNameType is SHORT_NAME_SINGLE_LINE
|
||||
* use SettingsShortNames as SettingsShortNames[16][1].. second column undefined
|
||||
*/
|
||||
extern const enum ShortNameType SettingsShortNameType;
|
||||
extern const char* SettingsShortNames[16][2];
|
||||
extern const char* SettingsLongNames[16];
|
||||
extern const char* SettingsShortNames[16];
|
||||
extern const char* SettingsCalibrationWarning;
|
||||
extern const char* UVLOWarningString;
|
||||
extern const char* SleepingSimpleString;
|
||||
@@ -24,16 +33,16 @@ extern const char SettingLeftChar;
|
||||
extern const char SettingAutoChar;
|
||||
|
||||
#define LANG_EN
|
||||
#define LANG
|
||||
|
||||
#ifndef LANG
|
||||
#define LANG_EN
|
||||
#define LANG
|
||||
#endif
|
||||
|
||||
#ifndef LANG
|
||||
#error NO LANGUAGE DEFINED
|
||||
#endif
|
||||
|
||||
//#define LANG_RU
|
||||
//#define LANG_ES
|
||||
//#define LANG_SE
|
||||
//#define LANG_IT
|
||||
//#define LANG_FR
|
||||
//#define LANG_DE
|
||||
//#define LANG_CS_CZ
|
||||
//#define LANG_TR
|
||||
//#define LANG_HR
|
||||
//#define LANG_PL
|
||||
//#define LANG_DK
|
||||
|
||||
#endif /* TRANSLATION_H_ */
|
||||
|
||||
@@ -63,7 +63,8 @@ void OLED::initialize() {
|
||||
HAL_GPIO_WritePin(OLED_RESET_GPIO_Port, OLED_RESET_Pin, GPIO_PIN_SET);
|
||||
HAL_Delay(5);
|
||||
//Send the setup settings
|
||||
HAL_I2C_Master_Transmit(i2c, DEVICEADDR_OLED, (uint8_t*) OLED_Setup_Array, configLength, 0xFFFF);
|
||||
HAL_I2C_Master_Transmit(i2c, DEVICEADDR_OLED, (uint8_t*) OLED_Setup_Array,
|
||||
configLength, 0xFFFF);
|
||||
//displayOnOff(true);
|
||||
|
||||
}
|
||||
@@ -73,9 +74,9 @@ void OLED::refresh() {
|
||||
screenBuffer[0] = 0x80;
|
||||
screenBuffer[1] = 0x21;
|
||||
screenBuffer[2] = 0x80;
|
||||
screenBuffer[3] = inLeftHandedMode ? 0 : 32; //display is shifted by 32 in left handed mode as driver ram is 128 wide
|
||||
screenBuffer[3] = inLeftHandedMode ? 0 : 32; //display is shifted by 32 in left handed mode as driver ram is 128 wide
|
||||
screenBuffer[4] = 0x80;
|
||||
screenBuffer[5] = inLeftHandedMode ? 95 : 0x7F; //End address of the ram segment we are writing to (96 wide)
|
||||
screenBuffer[5] = inLeftHandedMode ? 95 : 0x7F; //End address of the ram segment we are writing to (96 wide)
|
||||
|
||||
screenBuffer[6] = 0x80; //Set pages to rollover after 2
|
||||
screenBuffer[7] = 0x22;
|
||||
@@ -86,48 +87,67 @@ void OLED::refresh() {
|
||||
|
||||
screenBuffer[12] = 0x40; //start of data marker
|
||||
taskENTER_CRITICAL();
|
||||
//Because I2C is shared, we cant task switch in the middle of the xfer
|
||||
|
||||
HAL_I2C_Master_Transmit(i2c, DEVICEADDR_OLED, screenBuffer, 12 + 96 * 2 + 1, 0xFFFF);
|
||||
HAL_I2C_Master_Transmit(i2c, DEVICEADDR_OLED, screenBuffer, 12 + 96 * 2 + 1,
|
||||
0xFFFF);
|
||||
taskEXIT_CRITICAL();
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Prints a char to the screen.
|
||||
* UTF font handling is done using the two input chars.
|
||||
* Precursor is the command char that is used to select the table.
|
||||
*/
|
||||
void OLED::drawChar(char c, char PrecursorCommand) {
|
||||
//prints a char to the screen
|
||||
if (c < ' ')
|
||||
if (c < ' ') {
|
||||
return;
|
||||
//We are left with
|
||||
uint8_t* charPointer;
|
||||
//Fonts are offset to start at the space char.
|
||||
/*
|
||||
* UTF font handling is done using the two input chars
|
||||
* Precursor is the command char that is used to select the table
|
||||
*
|
||||
*/
|
||||
}
|
||||
uint16_t index = 0;
|
||||
if (PrecursorCommand == 0)
|
||||
if (PrecursorCommand == 0) {
|
||||
//Fonts are offset to start at the space char
|
||||
index = (c - ' ');
|
||||
else {
|
||||
|
||||
} else {
|
||||
//This is for extended range
|
||||
//We decode the precursor command to find the offset
|
||||
//Latin stats at 96
|
||||
//Latin starts at 96
|
||||
c -= 0x80;
|
||||
if (PrecursorCommand == 0xC3)
|
||||
index = (128) + (c);
|
||||
else if (PrecursorCommand == 0xC2)
|
||||
index = (96) + (c);
|
||||
else if (PrecursorCommand == 0xD0)
|
||||
index = (192) + (c);
|
||||
else if (PrecursorCommand == 0xD1)
|
||||
index = (256) + (c);
|
||||
else
|
||||
return;
|
||||
}
|
||||
charPointer = ((uint8_t*) currentFont) + ((fontWidth * (fontHeight / 8)) * index);
|
||||
|
||||
if (cursor_x >= 0 && cursor_x < 96)
|
||||
drawArea(cursor_x, cursor_y, fontWidth, fontHeight, charPointer);
|
||||
switch (PrecursorCommand) {
|
||||
|
||||
case 0xC2:
|
||||
index = (96 - 32) + (c);
|
||||
break; //-32 compensate for chars excluded from font C2 section
|
||||
case 0xC3:
|
||||
index = (128-32) + (c);
|
||||
break;
|
||||
#if defined(LANG_RU) || defined(LANG_UK) || defined(LANG_SR) || defined(LANG_BG) || defined(LANG_MK)
|
||||
case 0xD0:
|
||||
index = (192) + (c);
|
||||
break;
|
||||
case 0xD1:
|
||||
index = (256) + (c);
|
||||
break;
|
||||
#else
|
||||
case 0xC4:
|
||||
index = (192) + (c);
|
||||
break;
|
||||
case 0xC5:
|
||||
index = (256) + (c);
|
||||
break;
|
||||
#endif
|
||||
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
uint8_t* charPointer;
|
||||
charPointer = ((uint8_t*) currentFont)
|
||||
+ ((fontWidth * (fontHeight / 8)) * index);
|
||||
|
||||
drawArea(cursor_x, cursor_y, fontWidth, fontHeight, charPointer);
|
||||
|
||||
cursor_x += fontWidth;
|
||||
}
|
||||
|
||||
@@ -159,7 +179,8 @@ void OLED::setRotation(bool leftHanded) {
|
||||
}
|
||||
taskENTER_CRITICAL();
|
||||
|
||||
HAL_I2C_Master_Transmit(i2c, DEVICEADDR_OLED, (uint8_t*) OLED_Setup_Array, 50, 0xFFFF);
|
||||
HAL_I2C_Master_Transmit(i2c, DEVICEADDR_OLED,
|
||||
(uint8_t*) OLED_Setup_Array, 50, 0xFFFF);
|
||||
taskEXIT_CRITICAL();
|
||||
inLeftHandedMode = leftHanded;
|
||||
}
|
||||
@@ -181,7 +202,10 @@ void OLED::setCursor(int16_t x, int16_t y) {
|
||||
cursor_x = x;
|
||||
cursor_y = y;
|
||||
}
|
||||
|
||||
void OLED::setCharCursor(int16_t x, int16_t y) {
|
||||
cursor_x = x * fontWidth;
|
||||
cursor_y = y * fontHeight;
|
||||
}
|
||||
void OLED::setFont(uint8_t fontNumber) {
|
||||
if (fontNumber == 1) {
|
||||
//small font
|
||||
@@ -251,26 +275,31 @@ void OLED::drawBattery(uint8_t state) {
|
||||
void OLED::drawSymbol(uint8_t symbolID) {
|
||||
//draw a symbol to the current cursor location
|
||||
setFont(2);
|
||||
drawChar(' ' + symbolID); // space offset is in all fonts, so we pad it here and remove it later
|
||||
drawChar(' ' + symbolID); // space offset is in all fonts, so we pad it here and remove it later
|
||||
setFont(0);
|
||||
}
|
||||
|
||||
//Draw an area, but y must be aligned on 0/8 offset
|
||||
void OLED::drawArea(int16_t x, int8_t y, uint8_t wide, uint8_t height, const uint8_t* ptr) {
|
||||
void OLED::drawArea(int16_t x, int8_t y, uint8_t wide, uint8_t height,
|
||||
const uint8_t* ptr) {
|
||||
// Splat this from x->x+wide in two strides
|
||||
if (x < 0)
|
||||
return; //cutoffleft
|
||||
if ((x + wide) > 96)
|
||||
if ((x) > 96)
|
||||
return; //cutoff right
|
||||
uint8_t width = wide;
|
||||
if ((x + wide) > 96)
|
||||
width = 96 - x; // trimming to draw partials
|
||||
|
||||
if (y == 0) {
|
||||
//Splat first line of data
|
||||
for (uint8_t xx = 0; xx < (wide); xx++) {
|
||||
for (uint8_t xx = 0; xx < (width); xx++) {
|
||||
firstStripPtr[xx + x] = ptr[xx];
|
||||
}
|
||||
}
|
||||
if (y == 8 || height == 16) {
|
||||
// Splat the second line
|
||||
for (uint8_t xx = 0; xx < wide; xx++) {
|
||||
for (uint8_t xx = 0; xx < width; xx++) {
|
||||
secondStripPtr[x + xx] = ptr[xx + (height == 16 ? wide : 0)];
|
||||
|
||||
}
|
||||
|
||||
@@ -6,29 +6,72 @@
|
||||
*/
|
||||
#include "Translation.h"
|
||||
|
||||
#ifdef LANG_EN
|
||||
const char* SettingsLongNames[16] = {
|
||||
/*These are all the help text for all the settings.*/
|
||||
/*No requirements on spacing or length*/
|
||||
"Power source. Sets cutoff voltage. <DC 10V> <S 3.3V per cell>", //Power Source
|
||||
"Sleep Temperature <C>", //Sleep Temp
|
||||
"Sleep Timeout <Minutes>", //Sleep Timeout
|
||||
"Shutdown Timeout <Minutes>", //Shutdown Time
|
||||
"Motion Sensitivity <0.Off 1.least sensitive 9.most sensitive>", //Motion Sensitivity
|
||||
"Temperature Unit <C=Celsius F=Fahrenheit>", //Temp Unit
|
||||
"Display detailed information in a smaller font on the idle screen.", //Detailed Information
|
||||
"Display Orientation <A. Automatic L. Left Handed R. Right Handed>", //Orientation
|
||||
"Enable front key enters boost mode 450C mode when soldering", //Boost enable
|
||||
"Temperature when in \"boost\" mode", //Boost Temp
|
||||
"Automatically starts the iron into soldering on power up. T=Soldering, S= Sleep mode,F=Off", //Auto start
|
||||
"Blink the temperature on the cooling screen while the tip is still hot.", //Cooling Blink
|
||||
"Calibrate tip offset.", //Calibrate Tip
|
||||
"Reset all settings", //Reset Settings
|
||||
"VIN Calibration. Buttons adjust, long press to exit", //VIN Cal
|
||||
"Display detailed information while soldering",//ADV SLD
|
||||
};
|
||||
// TEMPLATES for short names - choose one and use it as base for your translation:
|
||||
|
||||
const char* SettingsCalibrationWarning = "Please ensure the tip is at room temperature before continuing!";
|
||||
//const enum ShortNameType SettingsShortNameType = SHORT_NAME_SINGLE_LINE;
|
||||
//const char* SettingsShortNames[16][2] = {
|
||||
// /* (<= 5) Power source (DC or batt) */ {"PWRSC"},
|
||||
// /* (<= 4) Sleep temperature */ {"STMP"},
|
||||
// /* (<= 4) Sleep timeout */ {"STME"},
|
||||
// /* (<= 5) Shutdown timeout */ {"SHTME"},
|
||||
// /* (<= 6) Motion sensitivity level */ {"MSENSE"},
|
||||
// /* (<= 6) Temperature in F and C */ {"TMPUNT"},
|
||||
// /* (<= 6) Advanced idle display mode enabled */ {"ADVIDL"},
|
||||
// /* (<= 6) Display rotation mode */ {"DSPROT"},
|
||||
// /* (<= 6) Boost enabled */ {"BOOST"},
|
||||
// /* (<= 4) Boost temperature */ {"BTMP"},
|
||||
// /* (<= 6) Automatic start mode */ {"ASTART"},
|
||||
// /* (<= 6) Cooldown blink */ {"CLBLNK"},
|
||||
// /* (<= 8) Temperature calibration enter menu */ {"TMP CAL?"},
|
||||
// /* (<= 8) Settings reset command */ {"RESET?"},
|
||||
// /* (<= 8) Calibrate input voltage */ {"CAL VIN?"},
|
||||
// /* (<= 6) Advanced soldering screen enabled */ {"ADVSLD"},
|
||||
//};
|
||||
|
||||
//const enum ShortNameType SettingsShortNameType = SHORT_NAME_DOUBLE_LINE;
|
||||
//const char* SettingsShortNames[16][2] = {
|
||||
// /* (<= 11) Power source (DC or batt) */ {"Power", "source"},
|
||||
// /* (<= 9) Sleep temperature */ {"Sleep", "temp"},
|
||||
// /* (<= 9) Sleep timeout */ {"Sleep", "timeout"},
|
||||
// /* (<= 11) Shutdown timeout */ {"Shutdown", "timeout"},
|
||||
// /* (<= 13) Motion sensitivity level */ {"Motion", "sensitivity"},
|
||||
// /* (<= 13) Temperature in F and C */ {"Temperature", "units"},
|
||||
// /* (<= 13) Advanced idle display mode enabled */ {"Detailed", "idle screen"},
|
||||
// /* (<= 13) Display rotation mode */ {"Display", "orientation"},
|
||||
// /* (<= 13) Boost enabled */ {"Boost mode", "enabled"},
|
||||
// /* (<= 9) Boost temperature */ {"Boost", "temp"},
|
||||
// /* (<= 13) Automatic start mode */ {"Auto", "start"},
|
||||
// /* (<= 13) Cooldown blink */ {"Cooldown", "blink"},
|
||||
// /* (<= 16) Temperature calibration enter menu */ {"Calibrate", "temperature?"},
|
||||
// /* (<= 16) Settings reset command */ {"Factory", "Reset?"},
|
||||
// /* (<= 16) Calibrate input voltage */ {"Calibrate", "input voltage?"},
|
||||
// /* (<= 13) Advanced soldering screen enabled */ {"Detailed", "solder screen"},
|
||||
//};
|
||||
|
||||
#ifdef LANG_EN
|
||||
const char* SettingsLongNames[16] =
|
||||
{
|
||||
// These are all the help text for all the settings.
|
||||
// No requirements on spacing or length.
|
||||
/* Power source (DC or batt) */"Power source. Sets cutoff voltage. <DC 10V> <S 3.3V per cell>",
|
||||
/* Sleep temperature */"Sleep Temperature <C>",
|
||||
/* Sleep timeout */"Sleep Timeout <Minutes/Seconds>",
|
||||
/* Shutdown timeout */"Shutdown Timeout <Minutes>",
|
||||
/* Motion sensitivity level */"Motion Sensitivity <0.Off 1.least sensitive 9.most sensitive>",
|
||||
/* Temperature in F and C */"Temperature Unit <C=Celsius F=Fahrenheit>",
|
||||
/* Advanced idle display mode enabled */"Display detailed information in a smaller font on the idle screen.",
|
||||
/* Display rotation mode */"Display Orientation <A. Automatic L. Left Handed R. Right Handed>",
|
||||
/* Boost enabled */"Enable front key enters boost mode 450C mode when soldering",
|
||||
/* Boost temperature */"Temperature when in \"boost\" mode",
|
||||
/* Automatic start mode */"Automatically starts the iron into soldering on power up. T=Soldering, S= Sleep mode,F=Off",
|
||||
/* Cooldown blink */"Blink the temperature on the cooling screen while the tip is still hot.",
|
||||
/* Temperature calibration enter menu */"Calibrate tip offset.",
|
||||
/* Settings reset command */"Reset all settings",
|
||||
/* Calibrate input voltage */"VIN Calibration. Buttons adjust, long press to exit",
|
||||
/* Advanced soldering screen enabled */"Display detailed information while soldering", };
|
||||
|
||||
const char* SettingsCalibrationWarning =
|
||||
"Please ensure the tip is at room temperature before continuing!";
|
||||
const char* UVLOWarningString = "LOW VOLT"; //Fixed width 8 chars
|
||||
const char* SleepingSimpleString = "Zzzz"; // Must be <= 4 chars
|
||||
const char* SleepingAdvancedString = "Sleeping..."; // <=17 chars
|
||||
@@ -40,23 +83,817 @@ const char SettingFalseChar = 'F';
|
||||
const char SettingRightChar = 'R';
|
||||
const char SettingLeftChar = 'L';
|
||||
const char SettingAutoChar = 'A';
|
||||
|
||||
const enum ShortNameType SettingsShortNameType = SHORT_NAME_DOUBLE_LINE;
|
||||
const char* SettingsShortNames[16][2] = {
|
||||
/* (<= 11) Power source (DC or batt) */{ "Power", "source" },
|
||||
/* (<= 9) Sleep temperature */{ "Sleep", "temp" },
|
||||
/* (<= 9) Sleep timeout */{ "Sleep", "timeout" },
|
||||
/* (<= 11) Shutdown timeout */{ "Shutdown", "timeout" },
|
||||
/* (<= 13) Motion sensitivity level */{ "Motion", "sensitivity" },
|
||||
/* (<= 13) Temperature in F and C */{ "Temperature", "units" },
|
||||
/* (<= 13) Advanced idle display mode enabled */{ "Detailed", "idle screen" },
|
||||
/* (<= 13) Display rotation mode */{ "Display", "orientation" },
|
||||
/* (<= 13) Boost enabled */{ "Boost mode", "enabled" },
|
||||
/* (<= 9) Boost temperature */{ "Boost", "temp" },
|
||||
/* (<= 13) Automatic start mode */{ "Auto", "start" },
|
||||
/* (<= 13) Cooldown blink */{ "Cooldown", "blink" },
|
||||
/* (<= 16) Temperature calibration enter menu */{ "Calibrate", "temperature?" },
|
||||
/* (<= 16) Settings reset command */{ "Factory", "Reset?" },
|
||||
/* (<= 16) Calibrate input voltage */{ "Calibrate",
|
||||
"input voltage?" },
|
||||
/* (<= 13) Advanced soldering screen enabled */{ "Detailed",
|
||||
"solder screen" }, };
|
||||
#endif
|
||||
|
||||
const char* SettingsShortNames[16] = { /**/
|
||||
"PWRSC ", // Power Source (DC or batt)
|
||||
"STMP ", // Sleep Temperature
|
||||
"STME ", // Sleep Timeout
|
||||
"SHTME ", // Shutdown Temperature
|
||||
"MSENSE ", // Motion sensitivity level
|
||||
"TMPUNT ", //Temp in F and C
|
||||
"ADVIDL ", // Advanced idle display mode enable
|
||||
"DSPROT ", // Display rotation mode
|
||||
"BOOST ", // Boost enabled
|
||||
"BTMP ", // Boost temperature
|
||||
"ASTART ", // Automatic Start mode
|
||||
"CLBLNK ", // Cooldown blink
|
||||
"TMP CAL?", // Temperature calibration enter menu
|
||||
"RESET? ", // Settings reset command
|
||||
"CAL VIN?",
|
||||
"ADVSLD ", //advanced soldering screens
|
||||
};
|
||||
#ifdef LANG_RU
|
||||
const char* SettingsLongNames[16] = {
|
||||
// These are all the help text for all the settings.
|
||||
// No requirements on spacing or length.
|
||||
/* Power source (DC or batt) */"Источник питания. Установка напряжения отключения. <DC 10V> <S 3.3 V на батарею>",
|
||||
/* Sleep temperature */"Температура режима ожидания <С>",
|
||||
/* Sleep timeout */"Время до перехода в режим ожидания <Минуты>",
|
||||
/* Shutdown timeout */"Время до отключения <Минуты>",
|
||||
/* Motion sensitivity level */"Акселерометр <0. Выкл. 1. мин. чувствительный 9. макс. чувствительный>",
|
||||
/* Temperature in F and C */"В чем измерять температуру",
|
||||
/* Advanced idle display mode enabled */"Показывать детальную информацию маленьким шрифтом на домашнем экране",
|
||||
/* Display rotation mode */"Ориентация дисплея <A. Автоматический, Л. Левая рука, П. Правая рука>",
|
||||
/* Boost enabled */"Турбо-режим при удержании кнопки А при пайке ",
|
||||
/* Boost temperature */"Температура в турбо-режиме",
|
||||
/* Automatic start mode */"Автоматический запуск паяльника при включении питания. T=Нагрев, S=Режим ожидания,F=Выкл.",
|
||||
/* Cooldown blink */"Показывать температуру на экране охлаждения, пока жало остается горячим.",
|
||||
/* Temperature calibration enter menu */"Калибровка термодатчика.",
|
||||
/* Settings reset command */"Сброс всех настроек.",
|
||||
/* Calibrate input voltage */"Калибровка напряжения входа. Настройка кнопками, нажать и удержать чтобы завершить.",
|
||||
/* Advanced soldering screen enabled */"Показывать детальную информацию при пайке.",
|
||||
};
|
||||
|
||||
const char* SettingsCalibrationWarning = "Убедитесь, что жало остыло до комнатной температуры, прежде чем продолжать!";
|
||||
const char* UVLOWarningString = "БАТ РАЗР"; //Fixed width 8 chars
|
||||
const char* SleepingSimpleString = "Хррр";// Must be <= 4 chars
|
||||
const char* SleepingAdvancedString = "Ожидание...";// <=17 chars
|
||||
const char* WarningSimpleString = " АЙ!";//Must be <= 4 chars
|
||||
const char* WarningAdvancedString = "ОСТОРОЖНО! ГОРЯЧО";
|
||||
|
||||
const char SettingTrueChar = '+';
|
||||
const char SettingFalseChar = '-';
|
||||
/*
|
||||
* #TODO change support for multibyte constants here
|
||||
const char SettingRightChar = 'П';
|
||||
const char SettingLeftChar = 'Л';
|
||||
const char SettingAutoChar = 'A';*/
|
||||
|
||||
const char SettingRightChar = 'R';
|
||||
const char SettingLeftChar = 'L';
|
||||
const char SettingAutoChar = 'A';
|
||||
|
||||
const enum ShortNameType SettingsShortNameType = SHORT_NAME_SINGLE_LINE;
|
||||
const char* SettingsShortNames[16][2] = {
|
||||
/* (<= 5) Power source (DC or batt) */{"ИстП "},
|
||||
/* (<= 4) Sleep temperature */{"Тожд"},
|
||||
/* (<= 4) Sleep timeout */{"Вожд "},
|
||||
/* (<= 5) Shutdown timeout */{"Тоткл "},
|
||||
/* (<= 6) Motion sensitivity level */{"ЧувсДв "},
|
||||
/* (<= 6) Temperature in F and C */{"ЕдТемп "},
|
||||
/* (<= 6) Advanced idle display mode enabled */{"ИнфОжд "},
|
||||
/* (<= 6) Display rotation mode */{"ПовЭкр "},
|
||||
/* (<= 6) Boost enabled */{"Турбо "},
|
||||
/* (<= 4) Boost temperature */{"Ттур "},
|
||||
/* (<= 6) Automatic start mode */{"Астарт"},
|
||||
/* (<= 6) Cooldown blink */{"Охлажд "},
|
||||
/* (<= 8) Temperature calibration enter menu */{"КалибрТ"},
|
||||
/* (<= 8) Settings reset command */{"СБРОС?"},
|
||||
/* (<= 8) Calibrate input voltage */{"КалибрU?"},
|
||||
/* (<= 6) Advanced soldering screen enabled */{"ИнфПай "},
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef LANG_ES
|
||||
const char* SettingsLongNames[16] = {
|
||||
// These are all the help text for all the settings.
|
||||
// No requirements on spacing or length.
|
||||
/* Power source (DC or batt) */"Fuente de energía. Ajusta el límite inferior de voltaje. <DC=10V S=3.3V por celda>",
|
||||
/* Sleep temperature */"Temperatura en reposo. <C>",
|
||||
/* Sleep timeout */"Tiempo hasta activar reposo. <Minutos>",
|
||||
/* Shutdown timeout */"Tiempo hasta apagado. <Minutos>",
|
||||
/* Motion sensitivity level */"Sensibilidad del movimiento. <0=Apagado 1=El menos sensible 9=El más sensible>",
|
||||
/* Temperature in F and C */"Unidad de temperatura.",
|
||||
/* Advanced idle display mode enabled */"Display detailed information in a smaller font on the idle screen.",
|
||||
/* Display rotation mode */"Orientación de la pantalla <A=Automático I=Mano izquierda D=Mano derecha>",
|
||||
/* Boost enabled */"Activar el botón \"Boost\" en modo soldadura.",
|
||||
/* Boost temperature */"Temperatura en modo \"Boost\". <C>",
|
||||
/* Automatic start mode */"Iniciar modo soldadura en el encendido. <V=Sí S=Modo reposo F=No>",
|
||||
/* Cooldown blink */"Parpadea la temperatura en el enfriamiento si la punta sigue caliente."
|
||||
/* Temperature calibration enter menu */"Calibrate tip offset.",
|
||||
/* Settings reset command */"Reset all settings",
|
||||
/* Calibrate input voltage */"VIN Calibration. Buttons adjust, long press to exit",
|
||||
/* Advanced soldering screen enabled */"Display detailed information while soldering",
|
||||
};
|
||||
|
||||
const char* SettingsCalibrationWarning = "Please ensure the tip is at room temperature before continuing!";
|
||||
const char* UVLOWarningString = "LOW VOLT"; //Fixed width 8 chars
|
||||
const char* SleepingSimpleString = "Zzzz";// Must be <= 4 chars
|
||||
const char* SleepingAdvancedString = "Sleeping...";// <=17 chars
|
||||
const char* WarningSimpleString = "HOT!";//Must be <= 4 chars
|
||||
const char* WarningAdvancedString = "WARNING! TIP HOT!";
|
||||
|
||||
const char SettingTrueChar = 'T';
|
||||
const char SettingFalseChar = 'F';
|
||||
const char SettingRightChar = 'R';
|
||||
const char SettingLeftChar = 'L';
|
||||
const char SettingAutoChar = 'A';
|
||||
|
||||
const enum ShortNameType SettingsShortNameType = SHORT_NAME_SINGLE_LINE;
|
||||
const char* SettingsShortNames[16][2] = {
|
||||
/* (<= 5) Power source (DC or batt) */{"PWRSC"},
|
||||
/* (<= 4) Sleep temperature */{"STMP"},
|
||||
/* (<= 4) Sleep timeout */{"STME"},
|
||||
/* (<= 5) Shutdown timeout */{"SHTME"},
|
||||
/* (<= 6) Motion sensitivity level */{"MSENSE"},
|
||||
/* (<= 6) Temperature in F and C */{"TMPUNT"},
|
||||
/* (<= 6) Advanced idle display mode enabled */{"ADVIDL"},
|
||||
/* (<= 6) Display rotation mode */{"DSPROT"},
|
||||
/* (<= 6) Boost enabled */{"BOOST"},
|
||||
/* (<= 4) Boost temperature */{"BTMP"},
|
||||
/* (<= 6) Automatic start mode */{"ASTART"},
|
||||
/* (<= 6) Cooldown blink */{"CLBLNK"},
|
||||
/* (<= 8) Temperature calibration enter menu */{"TMP CAL?"},
|
||||
/* (<= 8) Settings reset command */{"RESET?"},
|
||||
/* (<= 8) Calibrate input voltage */{"CAL VIN?"},
|
||||
/* (<= 6) Advanced soldering screen enabled */{"ADVSLD"},
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef LANG_SE
|
||||
const char* SettingsLongNames[16] = {
|
||||
// These are all the help text for all the settings.
|
||||
// No requirements on spacing or length.
|
||||
/* Power source (DC or batt) */"Источник питания. Установка напряжения отключения. <DC 10V> <S 3.3 V на батарею>",
|
||||
/* Sleep temperature */"Температура Сна <С>",
|
||||
/* Sleep timeout */"Переход в режим Сна <Минуты>",
|
||||
/* Shutdown timeout */"Переходит в режим ожидания <Минуты>",
|
||||
/* Motion sensitivity level */"Акселерометр <0. Выкл. 1. мин. чувствительный 9. макс. чувствительный>",
|
||||
/* Temperature in F and C */"В чем измерять температуру",
|
||||
/* Advanced idle display mode enabled */"Display detailed information in a smaller font on the idle screen.",
|
||||
/* Display rotation mode */"Ориентация Дисплея <A. Автоматический L. Левая Рука R. Правая Рука>",
|
||||
/* Boost enabled */"Активация кнопки A для Турбо режима до 450С при пайке ",
|
||||
/* Boost temperature */"Установка температуры для Турбо режима",
|
||||
/* Automatic start mode */"Автоматический запуск паяльника при включении питания. T=Нагрев, S= Режим Сна,F=Выкл.",
|
||||
/* Cooldown blink */"Мигает температура на экране охлаждения, пока жало остается горячим."
|
||||
/* Temperature calibration enter menu */"Calibrate tip offset.",
|
||||
/* Settings reset command */"Reset all settings",
|
||||
/* Calibrate input voltage */"VIN Calibration. Buttons adjust, long press to exit",
|
||||
/* Advanced soldering screen enabled */"Display detailed information while soldering",
|
||||
};
|
||||
|
||||
const char* SettingsCalibrationWarning = "Please ensure the tip is at room temperature before continuing!";
|
||||
const char* UVLOWarningString = "LOW VOLT"; //Fixed width 8 chars
|
||||
const char* SleepingSimpleString = "Zzzz";// Must be <= 4 chars
|
||||
const char* SleepingAdvancedString = "Sleeping...";// <=17 chars
|
||||
const char* WarningSimpleString = "HOT!";//Must be <= 4 chars
|
||||
const char* WarningAdvancedString = "WARNING! TIP HOT!";
|
||||
|
||||
const char SettingTrueChar = 'T';
|
||||
const char SettingFalseChar = 'F';
|
||||
const char SettingRightChar = 'R';
|
||||
const char SettingLeftChar = 'L';
|
||||
const char SettingAutoChar = 'A';
|
||||
|
||||
const enum ShortNameType SettingsShortNameType = SHORT_NAME_SINGLE_LINE;
|
||||
const char* SettingsShortNames[16][2] = {
|
||||
/* (<= 5) Power source (DC or batt) */{"PWRSC"},
|
||||
/* (<= 4) Sleep temperature */{"STMP"},
|
||||
/* (<= 4) Sleep timeout */{"STME"},
|
||||
/* (<= 5) Shutdown timeout */{"SHTME"},
|
||||
/* (<= 6) Motion sensitivity level */{"MSENSE"},
|
||||
/* (<= 6) Temperature in F and C */{"TMPUNT"},
|
||||
/* (<= 6) Advanced idle display mode enabled */{"ADVIDL"},
|
||||
/* (<= 6) Display rotation mode */{"DSPROT"},
|
||||
/* (<= 6) Boost enabled */{"BOOST"},
|
||||
/* (<= 4) Boost temperature */{"BTMP"},
|
||||
/* (<= 6) Automatic start mode */{"ASTART"},
|
||||
/* (<= 6) Cooldown blink */{"CLBLNK"},
|
||||
/* (<= 8) Temperature calibration enter menu */{"TMP CAL?"},
|
||||
/* (<= 8) Settings reset command */{"RESET?"},
|
||||
/* (<= 8) Calibrate input voltage */{"CAL VIN?"},
|
||||
/* (<= 6) Advanced soldering screen enabled */{"ADVSLD"},
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef LANG_IT
|
||||
const char* SettingsLongNames[16] = {
|
||||
// These are all the help text for all the settings.
|
||||
// No requirements on spacing or length.
|
||||
/* Power source (DC or batt) */"Sorgente di alimentazione; imposta il limite minimo di tensione <DC: 10V; S: 3.3V per cella>",
|
||||
/* Sleep temperature */"Temperatura standby <°C>",
|
||||
/* Sleep timeout */"Timeout standby <minuti/secondi>",
|
||||
/* Shutdown timeout */"Timeout spegnimento <minuti>",
|
||||
/* Motion sensitivity level */"Sensibilità al movimento <0: nessuna; 1: minima; 9: massima>",
|
||||
/* Temperature in F and C */"Unità di misura della temperatura <C: Celsius; F: Farenheit>",
|
||||
/* Advanced idle display mode enabled */"Mostra informazioni dettagliate con un carattere più piccolo sulla schermata di inattività",
|
||||
/* Display rotation mode */"Orientamento del display <A: automatico; S: mano sinistra; D: mano destra>",
|
||||
/* Boost enabled */"Il tasto anteriore attiva la modalità \"boost\" durante la saldatura",
|
||||
/* Boost temperature */"Temperatura in modalità \"boost\"",
|
||||
/* Automatic start mode */"Attiva automaticamente il saldatore quando viene alimentato <A: saldatura; S: standby; D: disattiva>",
|
||||
/* Cooldown blink */"Durante il raffreddamento mostra la temperatura sul display se la punta è ancora calda"
|
||||
/* Temperature calibration enter menu */"Calibra l'offset della punta",
|
||||
/* Settings reset command */"Ripristina tutte le impostazioni",
|
||||
/* Calibrate input voltage */"Calibra la tensione in entrata; regola con i bottoni, tieni permuto per uscire",
|
||||
/* Advanced soldering screen enabled */"Mostra informazioni dettagliate mentre stai saldando",
|
||||
};
|
||||
|
||||
const char* SettingsCalibrationWarning = "Assicurati che la punta si trovi a temperatura ambiente prima di continuare!";
|
||||
const char* UVLOWarningString = "LOW VOLT"; //Fixed width 8 chars
|
||||
const char* SleepingSimpleString = "Zzzz";// Must be <= 4 chars
|
||||
const char* SleepingAdvancedString = "Standby";// <=17 chars
|
||||
const char* WarningSimpleString = "HOT!";//Must be <= 4 chars
|
||||
const char* WarningAdvancedString = "ATTENZIONE! PUNTA CALDA!";
|
||||
|
||||
const char SettingTrueChar = 'A';
|
||||
const char SettingFalseChar = 'D';
|
||||
const char SettingRightChar = 'D';
|
||||
const char SettingLeftChar = 'S';
|
||||
const char SettingAutoChar = 'A';
|
||||
|
||||
const enum ShortNameType SettingsShortNameType = SHORT_NAME_SINGLE_LINE;
|
||||
const char* SettingsShortNames[16][2] = {
|
||||
/* (<= 5) Power source (DC or batt) */{"PWRSC"},
|
||||
/* (<= 4) Sleep temperature */{"STMP"},
|
||||
/* (<= 4) Sleep timeout */{"STME"},
|
||||
/* (<= 5) Shutdown timeout */{"SHTME"},
|
||||
/* (<= 6) Motion sensitivity level */{"MSENSE"},
|
||||
/* (<= 6) Temperature in F and C */{"TMPUNT"},
|
||||
/* (<= 6) Advanced idle display mode enabled */{"ADVIDL"},
|
||||
/* (<= 6) Display rotation mode */{"DSPROT"},
|
||||
/* (<= 6) Boost enabled */{"BOOST"},
|
||||
/* (<= 4) Boost temperature */{"BTMP"},
|
||||
/* (<= 6) Automatic start mode */{"ASTART"},
|
||||
/* (<= 6) Cooldown blink */{"CLBLNK"},
|
||||
/* (<= 8) Temperature calibration enter menu */{"TMP CAL?"},
|
||||
/* (<= 8) Settings reset command */{"RESET?"},
|
||||
/* (<= 8) Calibrate input voltage */{"CAL VIN?"},
|
||||
/* (<= 6) Advanced soldering screen enabled */{"ADVSLD"},
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef LANG_FR
|
||||
const char* SettingsLongNames[16] = {
|
||||
// These are all the help text for all the settings.
|
||||
// No requirements on spacing or length.
|
||||
/* Power source (DC or batt) */"Type d\'alimentation. Regle la tension de coupure. <DC=10V S=3.3V par cellules>",
|
||||
/* Sleep temperature */"Temperature en veille. <C>",
|
||||
/* Sleep timeout */"Temps avant mise en veille. <Minutes>",
|
||||
/* Shutdown timeout */"Temps avant extinction. <Minutes>",
|
||||
/* Motion sensitivity level */"Sensibilitee du capteur de mouvement. <0=Inactif 1=Peu sensible 9=Tres sensible>",
|
||||
/* Temperature in F and C */"Unitee de temperature.",
|
||||
/* Advanced idle display mode enabled */"Afficher des informations detaillees en petit lors de la veille",
|
||||
/* Display rotation mode */"Orientation de l\'affichage. <A=Automatique G=Gaucher D=Droitier>",
|
||||
/* Boost enabled */"Active le mode \"Boost\" 450C sur le bouton de devant pendant la soudure.",
|
||||
/* Boost temperature */"Temperature du mode \"Boost\". <C>",
|
||||
/* Automatic start mode */"Demarre automatiquement la soudure a l\'allumage. <A=Active, V=Mode Veille, D=Desactive>",
|
||||
/* Cooldown blink */"Fait clignotter la temperature lors du refroidissement pendant que la panne est chaude."
|
||||
/* Temperature calibration enter menu */"Compenser l\'erreur de la panne",
|
||||
/* Settings reset command */"Reinitialiser tout les reglages",
|
||||
/* Calibrate input voltage */"Calibration VIN. Boutons pour ajuster, appui long pour quitter",
|
||||
/* Advanced soldering screen enabled */"Afficher des informations detaillees pendant la soudure",
|
||||
};
|
||||
|
||||
const char* SettingsCalibrationWarning = "Please ensure the tip is at room temperature before continuing!";
|
||||
const char* UVLOWarningString = "LOW VOLT"; //Fixed width 8 chars
|
||||
const char* SleepingSimpleString = "Zzzz";// Must be <= 4 chars
|
||||
const char* SleepingAdvancedString = "Sleeping...";// <=17 chars
|
||||
const char* WarningSimpleString = "HOT!";//Must be <= 4 chars
|
||||
const char* WarningAdvancedString = "WARNING! TIP HOT!";
|
||||
|
||||
const char SettingTrueChar = 'T';
|
||||
const char SettingFalseChar = 'F';
|
||||
const char SettingRightChar = 'R';
|
||||
const char SettingLeftChar = 'L';
|
||||
const char SettingAutoChar = 'A';
|
||||
|
||||
const enum ShortNameType SettingsShortNameType = SHORT_NAME_SINGLE_LINE;
|
||||
const char* SettingsShortNames[16][2] = {
|
||||
/* (<= 5) Power source (DC or batt) */{"PWRSC"},
|
||||
/* (<= 4) Sleep temperature */{"STMP"},
|
||||
/* (<= 4) Sleep timeout */{"STME"},
|
||||
/* (<= 5) Shutdown timeout */{"SHTME"},
|
||||
/* (<= 6) Motion sensitivity level */{"MSENSE"},
|
||||
/* (<= 6) Temperature in F and C */{"TMPUNT"},
|
||||
/* (<= 6) Advanced idle display mode enabled */{"ADVIDL"},
|
||||
/* (<= 6) Display rotation mode */{"DSPROT"},
|
||||
/* (<= 6) Boost enabled */{"BOOST"},
|
||||
/* (<= 4) Boost temperature */{"BTMP"},
|
||||
/* (<= 6) Automatic start mode */{"ASTART"},
|
||||
/* (<= 6) Cooldown blink */{"CLBLNK"},
|
||||
/* (<= 8) Temperature calibration enter menu */{"TMP CAL?"},
|
||||
/* (<= 8) Settings reset command */{"RESET?"},
|
||||
/* (<= 8) Calibrate input voltage */{"CAL VIN?"},
|
||||
/* (<= 6) Advanced soldering screen enabled */{"ADVSLD"},
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef LANG_DE
|
||||
const char* SettingsLongNames[16] = {
|
||||
// These are all the help text for all the settings.
|
||||
// No requirements on spacing or length.
|
||||
/* Power source (DC or batt) */"Spannungsquelle (Abschaltspannung) <DC=10V, nS=n*3.3V für n LiIon-Zellen>",
|
||||
/* Sleep temperature */"Ruhetemperatur (In der eingestellten Einheit)",
|
||||
/* Sleep timeout */"Ruhemodus nach <Sekunden/Minuten>",
|
||||
/* Shutdown timeout */"Abschaltzeit <Minuten>",
|
||||
/* Motion sensitivity level */"Bewegungsempfindlichkeit <0=Aus, 1=Minimal ... 9=Maximal>",
|
||||
/* Temperature in F and C */"Temperatureinheit <C=Celsius, F=Fahrenheit>",
|
||||
/* Advanced idle display mode enabled */"Detaillierte Anzeige im Ruhemodus <T=An, F=Aus>",
|
||||
/* Display rotation mode */"Ausrichtung der Anzeige <A=Auto, L=Linkshändig, R=Rechtshändig>",
|
||||
/* Boost enabled */"Vordere Taste für Temperaturboost verwenden <T=An, F=Aus>",
|
||||
/* Boost temperature */"Temperatur im Boostmodus (In der eingestellten Einheit)",
|
||||
/* Automatic start mode */"Automatischer Start des Lötmodus beim Einschalten der Spannungsversorgung. <T=An, F=Aus>",
|
||||
/* Cooldown blink */"Blinkende Temperaturanzeige beim Abkühlen, solange heiß. <T=An, F=Aus>"
|
||||
/* Temperature calibration enter menu */"Kalibrierung der Lötspitzentemperatur",
|
||||
/* Settings reset command */"Alle Einstellungen zurücksetzen",
|
||||
/* Calibrate input voltage */"Kalibrierung der Eingangsspannung. Kurzer Tastendruck zum Einstellen, langer Tastendruck zum Verlassen.",
|
||||
/* Advanced soldering screen enabled */"Detaillierte Anzeige im Lötmodus <T=An, F=Aus>",
|
||||
};
|
||||
|
||||
const char* SettingsCalibrationWarning = "Vor dem Fortfahren muss die Lötspitze vollständig abgekühlt sein!";
|
||||
const char* UVLOWarningString = "LOW VOLT"; //Fixed width 8 chars
|
||||
const char* SleepingSimpleString = "Zzz ";// Must be <= 4 chars
|
||||
const char* SleepingAdvancedString = "Ruhemodus...";// <=17 chars
|
||||
const char* WarningSimpleString = "HEIß";//Must be <= 4 chars
|
||||
const char* WarningAdvancedString = "Achtung! Spitze Heiß!";
|
||||
|
||||
const char SettingTrueChar = 'T';
|
||||
const char SettingFalseChar = 'F';
|
||||
const char SettingRightChar = 'R';
|
||||
const char SettingLeftChar = 'L';
|
||||
const char SettingAutoChar = 'A';
|
||||
|
||||
const enum ShortNameType SettingsShortNameType = SHORT_NAME_SINGLE_LINE;
|
||||
const char* SettingsShortNames[16][2] = {
|
||||
/* (<= 5) Power source (DC or batt) */{"PWRSC"},
|
||||
/* (<= 4) Sleep temperature */{"STMP"},
|
||||
/* (<= 4) Sleep timeout */{"STME"},
|
||||
/* (<= 5) Shutdown timeout */{"SHTME"},
|
||||
/* (<= 6) Motion sensitivity level */{"MSENSE"},
|
||||
/* (<= 6) Temperature in F and C */{"TMPUNT"},
|
||||
/* (<= 6) Advanced idle display mode enabled */{"ADVIDL"},
|
||||
/* (<= 6) Display rotation mode */{"DSPROT"},
|
||||
/* (<= 6) Boost enabled */{"BOOST"},
|
||||
/* (<= 4) Boost temperature */{"BTMP"},
|
||||
/* (<= 6) Automatic start mode */{"ASTART"},
|
||||
/* (<= 6) Cooldown blink */{"CLBLNK"},
|
||||
/* (<= 8) Temperature calibration enter menu */{"TMP CAL?"},
|
||||
/* (<= 8) Settings reset command */{"RESET?"},
|
||||
/* (<= 8) Calibrate input voltage */{"CAL VIN?"},
|
||||
/* (<= 6) Advanced soldering screen enabled */{"ADVSLD"},
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef LANG_SK
|
||||
const char* SettingsLongNames[16] = {
|
||||
// These are all the help text for all the settings.
|
||||
// No requirements on spacing or length.
|
||||
/* Power source (DC or batt) */"Zdroj napatia. Nastavit napatie pre vypnutie (cutoff) <DC=10V, nS=n*3.3V pre LiIon clanky>",
|
||||
/* Sleep temperature */"Kludova teplota (v nastavenych jednotkach)",
|
||||
/* Sleep timeout */"Kludovy rezim po <sekundach/minutach>",
|
||||
/* Shutdown timeout */"Cas na vypnutie <minuty>",
|
||||
/* Motion sensitivity level */"Citlivost detekcie pohybu <0=Vyp, 1=Min ... 9=Max>",
|
||||
/* Temperature in F and C */"Jednotky merania teploty <C=stupne Celzia, F=stupne Fahrenheita>",
|
||||
/* Advanced idle display mode enabled */"Zobrazit detailne informacie v kludovom rezime <T=Zap, F=Vyp>",
|
||||
/* Display rotation mode */"Orientacia displeja <A=Auto, L=Lavak, R=Pravak>",
|
||||
/* Boost enabled */"Povolit tlacidlo pre prudky nahrev <T=Zap, F=Vyp>",
|
||||
/* Boost temperature */"Cielova teplota pre prudky nahrev (v nastavenych jednotkach)",
|
||||
/* Automatic start mode */"Pri starte spustit rezim spajkovania <T=Zap, F=Vyp, S=Spanok>",
|
||||
/* Cooldown blink */"Blikanie ukazovatela teploty pocas chladnutia hrotu <T=Zap, F=Vyp>"
|
||||
/* Temperature calibration enter menu */"Kalibracia posunu hrotu",
|
||||
/* Settings reset command */"Tovarenske nastavenia",
|
||||
/* Calibrate input voltage */"Kalibracia VIN. Kratke stlacenie meni nastavenie, dlhe stlacenie pre navrat",
|
||||
/* Advanced soldering screen enabled */"Zobrazenie detailov pocas spajkovania <T=Zap, F=Vyp>",
|
||||
};
|
||||
|
||||
const char* SettingsCalibrationWarning = "Najprv sa prosim uistite, ze hrot ma izbovu teplotu!";
|
||||
const char* UVLOWarningString = "LOW VOLT"; //Fixed width 8 chars
|
||||
const char* SleepingSimpleString = "Chrr";// Must be <= 4 chars
|
||||
const char* SleepingAdvancedString = "Kludovy rezim...";// <=17 chars
|
||||
const char* WarningSimpleString = "HOT!";//Must be <= 4 chars
|
||||
const char* WarningAdvancedString = "Pozor! Hrot je horuci!";
|
||||
|
||||
const char SettingTrueChar = 'T';
|
||||
const char SettingFalseChar = 'F';
|
||||
const char SettingRightChar = 'R';
|
||||
const char SettingLeftChar = 'L';
|
||||
const char SettingAutoChar = 'A';
|
||||
|
||||
const enum ShortNameType SettingsShortNameType = SHORT_NAME_SINGLE_LINE;
|
||||
const char* SettingsShortNames[16][2] = {
|
||||
/* (<= 5) Power source (DC or batt) */{"PWRSC"},
|
||||
/* (<= 4) Sleep temperature */{"STMP"},
|
||||
/* (<= 4) Sleep timeout */{"STME"},
|
||||
/* (<= 5) Shutdown timeout */{"SHTME"},
|
||||
/* (<= 6) Motion sensitivity level */{"MSENSE"},
|
||||
/* (<= 6) Temperature in F and C */{"TMPUNT"},
|
||||
/* (<= 6) Advanced idle display mode enabled */{"ADVIDL"},
|
||||
/* (<= 6) Display rotation mode */{"DSPROT"},
|
||||
/* (<= 6) Boost enabled */{"BOOST"},
|
||||
/* (<= 4) Boost temperature */{"BTMP"},
|
||||
/* (<= 6) Automatic start mode */{"ASTART"},
|
||||
/* (<= 6) Cooldown blink */{"CLBLNK"},
|
||||
/* (<= 8) Temperature calibration enter menu */{"TMP CAL?"},
|
||||
/* (<= 8) Settings reset command */{"RESET?"},
|
||||
/* (<= 8) Calibrate input voltage */{"CAL VIN?"},
|
||||
/* (<= 6) Advanced soldering screen enabled */{"ADVSLD"},
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef LANG_TR
|
||||
const char* SettingsLongNames[16] = {
|
||||
// These are all the help text for all the settings.
|
||||
// No requirements on spacing or length.
|
||||
/* Power source (DC or batt) */"Güç Kaynağı. kesim geriliminı ayarlar. <DC 10V> <S 3.3V hücre başına>",
|
||||
/* Sleep temperature */"Uyku Sıcaklığı <C>",
|
||||
/* Sleep timeout */"Uyku Zaman Aşımı <Dakika/Saniye>",
|
||||
/* Shutdown timeout */"Kapatma Zaman Aşımı <Dakika>",
|
||||
/* Motion sensitivity level */"Hareket Hassasiyeti <0.Kapalı 1.En az duyarlı 9.En duyarlı>",
|
||||
/* Temperature in F and C */"Sıcaklık Ünitesi <C=Celsius F=Fahrenheit>",
|
||||
/* Advanced idle display mode enabled */"Boş ekranda ayrıntılı bilgileri daha küçük bir yazı tipi ile göster.",
|
||||
/* Display rotation mode */"Görüntü Yönlendirme <A. Otomatik L. Solak R. Sağlak>",
|
||||
/* Boost enabled */"Lehimleme yaparken ön tuşa basmak Boost moduna sokar(450C)",
|
||||
/* Boost temperature */"\"boost\" Modu Derecesi",
|
||||
/* Automatic start mode */"Güç verildiğinde otomatik olarak lehimleme modunda başlat. T=Lehimleme Modu, S= Uyku Modu,F=Kapalı",
|
||||
/* Cooldown blink */"Soğutma ekranında uç hala sıcakken derece yanıp sönsün.",
|
||||
/* Temperature calibration enter menu */"Ucu kalibre et.",
|
||||
/* Settings reset command */"Bütün ayarları sıfırla",
|
||||
/* Calibrate input voltage */"VIN Kalibrasyonu. Düğmeler ayarlar, çıkmak için uzun bas.",
|
||||
/* Advanced soldering screen enabled */"Lehimleme yaparken detaylı bilgi göster",
|
||||
};
|
||||
|
||||
const char* SettingsCalibrationWarning = "Lütfen devam etmeden önce ucun oda sıcaklığında olduğunu garantiye alın!";
|
||||
const char* UVLOWarningString = "LOW VOLT"; //Fixed width 8 chars
|
||||
const char* SleepingSimpleString = "Zzzz";// Must be <= 4 chars
|
||||
const char* SleepingAdvancedString = "Uyuyor...";// <=17 chars
|
||||
const char* WarningSimpleString = "HOT!";//Must be <= 4 chars
|
||||
const char* WarningAdvancedString = "UYARI! UÇ SICAK!";
|
||||
|
||||
const char SettingTrueChar = 'T';
|
||||
const char SettingFalseChar = 'F';
|
||||
const char SettingRightChar = 'R';
|
||||
const char SettingLeftChar = 'L';
|
||||
const char SettingAutoChar = 'A';
|
||||
|
||||
const enum ShortNameType SettingsShortNameType = SHORT_NAME_SINGLE_LINE;
|
||||
const char* SettingsShortNames[16][2] = {
|
||||
/* (<= 5) Power source (DC or batt) */{"PWRSC"},
|
||||
/* (<= 4) Sleep temperature */{"STMP"},
|
||||
/* (<= 4) Sleep timeout */{"STME"},
|
||||
/* (<= 5) Shutdown timeout */{"SHTME"},
|
||||
/* (<= 6) Motion sensitivity level */{"MSENSE"},
|
||||
/* (<= 6) Temperature in F and C */{"TMPUNT"},
|
||||
/* (<= 6) Advanced idle display mode enabled */{"ADVIDL"},
|
||||
/* (<= 6) Display rotation mode */{"DSPROT"},
|
||||
/* (<= 6) Boost enabled */{"BOOST"},
|
||||
/* (<= 4) Boost temperature */{"BTMP"},
|
||||
/* (<= 6) Automatic start mode */{"ASTART"},
|
||||
/* (<= 6) Cooldown blink */{"CLBLNK"},
|
||||
/* (<= 8) Temperature calibration enter menu */{"TMP CAL?"},
|
||||
/* (<= 8) Settings reset command */{"RESET?"},
|
||||
/* (<= 8) Calibrate input voltage */{"CAL VIN?"},
|
||||
/* (<= 6) Advanced soldering screen enabled */{"ADVSLD"},
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef LANG_HR
|
||||
const char* SettingsLongNames[16] = {
|
||||
// These are all the help text for all the settings.
|
||||
// No requirements on spacing or length.
|
||||
/* Power source (DC or batt) */"Izvor napajanja. Postavlja napon isključivanja. <DC 10V> <S 3.3V po ćeliji>",
|
||||
/* Sleep temperature */"Temperatura spavanja. <C>",
|
||||
/* Sleep timeout */"Vrijeme spavanja. <Minute/Sekunde>",
|
||||
/* Shutdown timeout */"Vrijeme gašenja. <Minutes>",
|
||||
/* Motion sensitivity level */"Osjetljivost prepoznavanja pokreta. <0=Ugašeno, 1=Najmanje osjetljivo, 9=Najosjetljivije>",
|
||||
/* Temperature in F and C */"Jedinica temperature. <C=Celzij, F=Fahrenheit>",
|
||||
/* Advanced idle display mode enabled */"Prikazivanje detaljnih informacija manjim fontom tijekom čekanja.",
|
||||
/* Display rotation mode */"Orijentacija ekrana. <A=Automatski, L=Ljevoruki, D=Desnoruki>",
|
||||
/* Boost enabled */"Držanjem prednjeg gumba prilikom lemljenja aktivira se pojačani (Boost) način.",
|
||||
/* Boost temperature */"Temperatura u pojačanom (Boost) načinu.",
|
||||
/* Automatic start mode */"Početno stanje lemilice po uključivanju napajanja. <+=Lemljenje, S=Spavanje, -=Ugašeno>",
|
||||
/* Cooldown blink */"Bljeskanje temperature prilikom hlađenja, ako je lemilica vruća.",
|
||||
/* Temperature calibration enter menu */"Kalibriranje temperature mjeri razliku temperature vška i temperature drške, dok je lemilica hladna.",
|
||||
/* Settings reset command */"Vraćanje svih postavki.",
|
||||
/* Calibrate input voltage */"Kalibracija ulaznog napona. Podešavanje gumbima, dugački pritisak za kraj.",
|
||||
/* Advanced soldering screen enabled */"Prikazivanje detaljnih informacija tijekom lemljenja.",
|
||||
};
|
||||
|
||||
const char* SettingsCalibrationWarning = "Provjerite da je vršak ohlađen na sobnu temperaturu prije nego što nastavite!";
|
||||
const char* UVLOWarningString = "NAPON!!!"; //Fixed width 8 chars
|
||||
const char* SleepingSimpleString = "Zzzz";// Must be <= 4 chars
|
||||
const char* SleepingAdvancedString = "Spavanje...";// <=17 chars
|
||||
const char* WarningSimpleString = "VRUĆ";//Must be <= 4 chars
|
||||
const char* WarningAdvancedString = "OPREZ! Vršak je vruć!";
|
||||
|
||||
const char SettingTrueChar = '+';
|
||||
const char SettingFalseChar = '-';
|
||||
const char SettingRightChar = 'D';
|
||||
const char SettingLeftChar = 'L';
|
||||
const char SettingAutoChar = 'A';
|
||||
|
||||
const enum ShortNameType SettingsShortNameType = SHORT_NAME_SINGLE_LINE;
|
||||
const char* SettingsShortNames[16][2] = {
|
||||
/* (<= 5) Power source (DC or batt) */{"PWRSC"},
|
||||
/* (<= 4) Sleep temperature */{"STMP"},
|
||||
/* (<= 4) Sleep timeout */{"STME"},
|
||||
/* (<= 5) Shutdown timeout */{"SHTME"},
|
||||
/* (<= 6) Motion sensitivity level */{"MSENSE"},
|
||||
/* (<= 6) Temperature in F and C */{"TMPUNT"},
|
||||
/* (<= 6) Advanced idle display mode enabled */{"ADVIDL"},
|
||||
/* (<= 6) Display rotation mode */{"DSPROT"},
|
||||
/* (<= 6) Boost enabled */{"BOOST"},
|
||||
/* (<= 4) Boost temperature */{"BTMP"},
|
||||
/* (<= 6) Automatic start mode */{"ASTART"},
|
||||
/* (<= 6) Cooldown blink */{"CLBLNK"},
|
||||
/* (<= 8) Temperature calibration enter menu */{"TMP CAL?"},
|
||||
/* (<= 8) Settings reset command */{"RESET?"},
|
||||
/* (<= 8) Calibrate input voltage */{"CAL VIN?"},
|
||||
/* (<= 6) Advanced soldering screen enabled */{"ADVSLD"},
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef LANG_CS_CZ
|
||||
const char* SettingsLongNames[16] = {
|
||||
/*These are all the help text for all the settings.*/
|
||||
/*No requirements on spacing or length*/
|
||||
"Zdroj napajeni. Pri nizsim napeti se odpoji <DC=10V, xS=x*3.3V pro LiPo,LiIon...>", //Power Source
|
||||
"Teplota v rezimu spanku",//Sleep Temp
|
||||
"Cas do rezimu spanku <Minut/Sekund>",//Sleep Timeout
|
||||
"Cas do automatickeho vypnuti <Minut>",//Shutdown Time
|
||||
"Citlivost detekce pohybu <0=Vyp, 1=Min, ... 9=Max>",//Motion Sensitivity
|
||||
"Jednotky mereni teploty <C=Celsius, F=Fahrenheit>",//Temp Unit
|
||||
"Zobrazit podrobnosti na vychozi obrazovce <Z=Zap, V=Vyp>",//Detailed Information
|
||||
"Otoceni displaye <A=Auto, L=Levak, P=Pravak>",//Orientation
|
||||
"Povolit boost drzenim leveho tlacitka pri pajeni <Z=Zap, V=Vyp>",//Boost enable
|
||||
"Teplota pri boostu",//Boost Temp
|
||||
"Pri startu ihned nahrivat hrot <Z=Zap, V=Vyp, S=Rezim spanku>",//Auto start
|
||||
"Blikani teploty pri chladnuti, dokud je hrot horky <Z=Zap, V=Vyp>",//Cooling Blink
|
||||
"Kalibrovat mereni teploty",//Calibrate Tip
|
||||
"Obnovit tovarni nastaveni",//Reset Settings
|
||||
"Kalibrovat vstupni napeti. Tlacitky upravte, podrzenim potvrdte.",//VIN Cal
|
||||
"Zobrazit podrobnosti pri pajeni <Z=Zap, V=Vyp>",//ADV SLD
|
||||
};
|
||||
|
||||
const char* SettingsCalibrationWarning = "Ujistete se, ze hrot ma pokojovou teplotu! "; //ending space needed
|
||||
const char* UVLOWarningString = "LOW VOLT";//Fixed width 8 chars
|
||||
const char* SleepingSimpleString = "Zzz ";// Must be <= 4 chars
|
||||
const char* SleepingAdvancedString = "Rezim spanku...";// <=17 chars
|
||||
const char* WarningSimpleString = "HOT!";//Must be <= 4 chars
|
||||
const char* WarningAdvancedString = "!! HORKY HROT !!";// <= 16 chars
|
||||
|
||||
const char SettingTrueChar = 'Z';
|
||||
const char SettingFalseChar = 'V';
|
||||
const char SettingRightChar = 'P';
|
||||
const char SettingLeftChar = 'L';
|
||||
const char SettingAutoChar = 'A';
|
||||
|
||||
const enum ShortNameType SettingsShortNameType = SHORT_NAME_SINGLE_LINE;
|
||||
const char* SettingsShortNames[16][2] = {
|
||||
/* (<= 5) Power source (DC or batt) */{"PWRSC"},
|
||||
/* (<= 4) Sleep temperature */{"STMP"},
|
||||
/* (<= 4) Sleep timeout */{"STME"},
|
||||
/* (<= 5) Shutdown timeout */{"SHTME"},
|
||||
/* (<= 6) Motion sensitivity level */{"MSENSE"},
|
||||
/* (<= 6) Temperature in F and C */{"TMPUNT"},
|
||||
/* (<= 6) Advanced idle display mode enabled */{"ADVIDL"},
|
||||
/* (<= 6) Display rotation mode */{"DSPROT"},
|
||||
/* (<= 6) Boost enabled */{"BOOST"},
|
||||
/* (<= 4) Boost temperature */{"BTMP"},
|
||||
/* (<= 6) Automatic start mode */{"ASTART"},
|
||||
/* (<= 6) Cooldown blink */{"CLBLNK"},
|
||||
/* (<= 8) Temperature calibration enter menu */{"TMP CAL?"},
|
||||
/* (<= 8) Settings reset command */{"RESET?"},
|
||||
/* (<= 8) Calibrate input voltage */{"CAL VIN?"},
|
||||
/* (<= 6) Advanced soldering screen enabled */{"ADVSLD"},
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef LANG_HUN
|
||||
const char* SettingsLongNames[16] = {
|
||||
/*These are all the help text for all the settings.*/
|
||||
/*No requirements on spacing or length*/
|
||||
"Áramforrás. Beállítja a lekapcsolási feszültséget. <DC 10V> <S 3.3V cellánként>", //Power Source
|
||||
"Alvási hőmérséklet <C>",//Sleep Temp
|
||||
"Elalvási időzítő <Perc/Másodperc>",//Sleep Timeout
|
||||
"Kikapcsolási időzítő <Minutes>",//Shutdown Time
|
||||
"Mozgás érzékenység beállítása. <0.Ki 1.kevésbé érzékeny 9.legérzékenyebb>",//Motion Sensitivity
|
||||
"Hőmérsékleti egység <C=Celsius F=Fahrenheit>",//Temp Unit
|
||||
"Részletes információ megjelenítése kisebb betűméretben a készenléti képernyőn.",//Detailed Information
|
||||
"Megjelenítési tájolás <A. Automatikus L. Balkezes R. Jobbkezes>",//Orientation
|
||||
"Elülső gombbal lépjen boost módba, 450C forrasztás közben",//Boost enable
|
||||
"Hőmérséklet \"boost\" módban",//Boost Temp
|
||||
"Bekapcsolás után automatikusan lépjen forrasztás módba. T=Forrasztás, S=Alvó mód,F=Ki",//Auto start
|
||||
"Villogjon a hőmérséklet hűlés közben, amíg a hegy forró.",//Cooling Blink
|
||||
"Hegy hőmérsékletének kalibrálása",//Calibrate Tip
|
||||
"Beállítások alaphelyzetbe állítása",//Reset Settings
|
||||
"A bemeneti feszültség kalibrálása. Röviden megnyomva állítsa be, hosszan nyomja meg a kilépéshez.",//VIN Cal
|
||||
"Részletes információk megjelenítése forrasztás közben",//ADV SLD
|
||||
};
|
||||
|
||||
const char* SettingsCalibrationWarning = "Folytatás előtt győződj meg róla, hogy a hegy szobahőmérsékletű!";
|
||||
const char* UVLOWarningString = "LOW VOLT"; //Fixed width 8 chars
|
||||
const char* SleepingSimpleString = "Zzzz";// Must be <= 4 chars
|
||||
const char* SleepingAdvancedString = "Alvás...";// <=17 chars
|
||||
const char* WarningSimpleString = "HOT!";//Must be <= 4 chars
|
||||
const char* WarningAdvancedString = "FIGYELEM! FORRÓ HEGY!";
|
||||
|
||||
const char SettingTrueChar = 'T';
|
||||
const char SettingFalseChar = 'F';
|
||||
const char SettingRightChar = 'R';
|
||||
const char SettingLeftChar = 'L';
|
||||
const char SettingAutoChar = 'A';
|
||||
|
||||
const enum ShortNameType SettingsShortNameType = SHORT_NAME_SINGLE_LINE;
|
||||
const char* SettingsShortNames[16][2] = {
|
||||
/* (<= 5) Power source (DC or batt) */{"PWRSC"},
|
||||
/* (<= 4) Sleep temperature */{"STMP"},
|
||||
/* (<= 4) Sleep timeout */{"STME"},
|
||||
/* (<= 5) Shutdown timeout */{"SHTME"},
|
||||
/* (<= 6) Motion sensitivity level */{"MSENSE"},
|
||||
/* (<= 6) Temperature in F and C */{"TMPUNT"},
|
||||
/* (<= 6) Advanced idle display mode enabled */{"ADVIDL"},
|
||||
/* (<= 6) Display rotation mode */{"DSPROT"},
|
||||
/* (<= 6) Boost enabled */{"BOOST"},
|
||||
/* (<= 4) Boost temperature */{"BTMP"},
|
||||
/* (<= 6) Automatic start mode */{"ASTART"},
|
||||
/* (<= 6) Cooldown blink */{"CLBLNK"},
|
||||
/* (<= 8) Temperature calibration enter menu */{"TMP CAL?"},
|
||||
/* (<= 8) Settings reset command */{"RESET?"},
|
||||
/* (<= 8) Calibrate input voltage */{"CAL VIN?"},
|
||||
/* (<= 6) Advanced soldering screen enabled */{"ADVSLD"},
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef LANG_TR
|
||||
const char* SettingsLongNames[16] = {
|
||||
/*These are all the help text for all the settings.*/
|
||||
/*No requirements on spacing or length*/
|
||||
/* Power source (DC or batt) */"Güç Kaynağı. kesim geriliminı ayarlar. <DC 10V> <S 3.3V hücre başına>", //Power Source
|
||||
/* Sleep temperature */"Uyku Sıcaklığı <C>",//Sleep Temp
|
||||
/* Sleep timeout */"Uyku Zaman Aşımı <Dakika/Saniye>",//Sleep Timeout
|
||||
/* Shutdown timeout */"Kapatma Zaman Aşımı <Dakika>",//Shutdown Time
|
||||
/* Motion sensitivity level */"Hareket Hassasiyeti <0.Kapalı 1.En az duyarlı 9.En duyarlı>",//Motion Sensitivity
|
||||
/* Temperature in F and C */"Sıcaklık Ünitesi <C=Celsius F=Fahrenheit>",//Temp Unit
|
||||
/* Advanced idle display mode enabled */"Boş ekranda ayrıntılı bilgileri daha küçük bir yazı tipi ile göster.",//Detailed Information
|
||||
/* Display rotation mode */"Görüntü Yönlendirme <A. Otomatik L. Solak R. Sağlak>",//Orientation
|
||||
/* Boost enabled */"Lehimleme yaparken ön tuşa basmak Boost moduna sokar(450C)",//Boost enable
|
||||
/* Boost temperature */"\"boost\" Modu Derecesi",//Boost Temp
|
||||
/* Automatic start mode */"Güç verildiğinde otomatik olarak lehimleme modunda başlat. T=Lehimleme Modu, S= Uyku Modu,F=Kapalı",//Auto start
|
||||
/* Cooldown blink */"Soğutma ekranında uç hala sıcakken derece yanıp sönsün.",//Cooling Blink
|
||||
/* Temperature calibration enter menu */"Ucu kalibre et.",//Calibrate Tip
|
||||
/* Settings reset command */"Bütün ayarları sıfırla",//Reset Settings
|
||||
/* Calibrate input voltage */"VIN Kalibrasyonu. Düğmeler ayarlar, çıkmak için uzun bas.",//VIN Cal
|
||||
/* Advanced soldering screen enabled */"Lehimleme yaparken detaylı bilgi göster",//ADV SLD
|
||||
};
|
||||
|
||||
const char* SettingsCalibrationWarning = "Lütfen devam etmeden önce ucun oda sıcaklığında olduğunu garantiye alın!";
|
||||
const char* UVLOWarningString = "LOW VOLT"; //Fixed width 8 chars
|
||||
const char* SleepingSimpleString = "Zzzz";// Must be <= 4 chars
|
||||
const char* SleepingAdvancedString = "Uyuyor...";// <=17 chars
|
||||
const char* WarningSimpleString = "HOT!";//Must be <= 4 chars
|
||||
const char* WarningAdvancedString = "UYARI! UÇ SICAK!";
|
||||
|
||||
const char SettingTrueChar = 'T';
|
||||
const char SettingFalseChar = 'F';
|
||||
const char SettingRightChar = 'R';
|
||||
const char SettingLeftChar = 'L';
|
||||
const char SettingAutoChar = 'A';
|
||||
|
||||
const enum ShortNameType SettingsShortNameType = SHORT_NAME_SINGLE_LINE;
|
||||
const char* SettingsShortNames[16][2] = {
|
||||
/* (<= 5) Power source (DC or batt) */{"PWRSC"},
|
||||
/* (<= 4) Sleep temperature */{"STMP"},
|
||||
/* (<= 4) Sleep timeout */{"STME"},
|
||||
/* (<= 5) Shutdown timeout */{"SHTME"},
|
||||
/* (<= 6) Motion sensitivity level */{"MSENSE"},
|
||||
/* (<= 6) Temperature in F and C */{"TMPUNT"},
|
||||
/* (<= 6) Advanced idle display mode enabled */{"ADVIDL"},
|
||||
/* (<= 6) Display rotation mode */{"DSPROT"},
|
||||
/* (<= 6) Boost enabled */{"BOOST"},
|
||||
/* (<= 4) Boost temperature */{"BTMP"},
|
||||
/* (<= 6) Automatic start mode */{"ASTART"},
|
||||
/* (<= 6) Cooldown blink */{"CLBLNK"},
|
||||
/* (<= 8) Temperature calibration enter menu */{"TMP CAL?"},
|
||||
/* (<= 8) Settings reset command */{"RESET?"},
|
||||
/* (<= 8) Calibrate input voltage */{"CAL VIN?"},
|
||||
/* (<= 6) Advanced soldering screen enabled */{"ADVSLD"},
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef LANG_DK
|
||||
const char* SettingsLongNames[16] =
|
||||
{
|
||||
/*These are all the help text for all the settings.*/
|
||||
/*No requirements on spacing or length*/
|
||||
"Strømforsyning. Indstil Cutoff Spændingen. <DC 10V <S 3.3V per cell", //Power Source
|
||||
"Dvale Temperatur <C",//Sleep Temp
|
||||
"Dvale Timeout <Minutter/Sekunder",//Sleep Timeout
|
||||
"sluknings Timeout <Minutter",//Shutdown Time
|
||||
"Bevægelsesfølsomhed <0.Slukket 1.Mindst følsom 9.Mest følsom",//Motion Sensitivity
|
||||
"Temperatur Enhed <C=Celsius F=Fahrenheit",//Temp Unit
|
||||
"Vis detialieret information med en mindre skriftstørrelse på standby skærmen.",//Detailed Information
|
||||
"Skærm Orientering <A. Automatisk V. Venstre Håndet H. Højre Håndet",//Orientation
|
||||
"Ved tryk på front knap Aktiveres boost-funktionen, 450C tilstand når der loddes",//Boost enable
|
||||
"Temperatur i \"boost\" mode",//Boost Temp
|
||||
"Start automatisk med lodning når strøm sættes til. L=Lodning, D= Dvale tilstand,S=Slukket",//Auto start
|
||||
"Blink temperaturen på skærmen, mens spidsen stadig er varm.",//Cooling Blink
|
||||
"kalibrere spids temperatur.",//Calibrate Tip
|
||||
"Gendan alle indstillinger",//Reset Settings
|
||||
"VIN kalibrering. Knapperne justere, Lang tryk for at gå ud",//VIN Cal
|
||||
"Vis detialieret information mens der loddes",//ADV SLD
|
||||
};
|
||||
|
||||
const char* SettingsCalibrationWarning =
|
||||
"Sørg for at loddespidsen er ved stuetemperatur, inden du fortsætter!";
|
||||
const char* UVLOWarningString = "Lav Volt"; //Fixed width 8 chars
|
||||
const char* SleepingSimpleString = "Zzzz";// Must be <= 4 chars
|
||||
const char* SleepingAdvancedString = "Dvale...";// <=17 chars
|
||||
const char* WarningSimpleString = "Varm";//Must be <= 4 chars
|
||||
const char* WarningAdvancedString = "ADVARSEL! VARM LODDESPIDS!";
|
||||
|
||||
const char SettingTrueChar = 'j';
|
||||
const char SettingFalseChar = 'N';
|
||||
const char SettingRightChar = 'H';
|
||||
const char SettingLeftChar = 'V';
|
||||
const char SettingAutoChar = 'A';
|
||||
|
||||
const enum ShortNameType SettingsShortNameType = SHORT_NAME_SINGLE_LINE;
|
||||
const char* SettingsShortNames[16][2] = {
|
||||
/* (<= 5) Power source (DC or batt) */{"PWRSC"},
|
||||
/* (<= 4) Sleep temperature */{"STMP"},
|
||||
/* (<= 4) Sleep timeout */{"STME"},
|
||||
/* (<= 5) Shutdown timeout */{"SHTME"},
|
||||
/* (<= 6) Motion sensitivity level */{"MSENSE"},
|
||||
/* (<= 6) Temperature in F and C */{"TMPUNT"},
|
||||
/* (<= 6) Advanced idle display mode enabled */{"ADVIDL"},
|
||||
/* (<= 6) Display rotation mode */{"DSPROT"},
|
||||
/* (<= 6) Boost enabled */{"BOOST"},
|
||||
/* (<= 4) Boost temperature */{"BTMP"},
|
||||
/* (<= 6) Automatic start mode */{"ASTART"},
|
||||
/* (<= 6) Cooldown blink */{"CLBLNK"},
|
||||
/* (<= 8) Temperature calibration enter menu */{"TMP CAL?"},
|
||||
/* (<= 8) Settings reset command */{"RESET?"},
|
||||
/* (<= 8) Calibrate input voltage */{"CAL VIN?"},
|
||||
/* (<= 6) Advanced soldering screen enabled */{"ADVSLD"},
|
||||
};
|
||||
#endif
|
||||
#ifdef LANG_PL
|
||||
const char* SettingsLongNames[16] =
|
||||
{
|
||||
/*These are all the help text for all the settings.*/
|
||||
/*No requirements on spacing or length*/
|
||||
"Źródło zasilania. Ustaw napięcie odcięcia. <DC 10V> <S 3.3V dla ogniw Li>", //Power Source
|
||||
"Temperatura uśpienia <°C>",//Sleep Temp
|
||||
"Czas uśpienia <Minuty/Sekundy>",//Sleep Timeout
|
||||
"Czas wyłączenia <Minuty>",//Shutdown Time
|
||||
"Czułość ruchu <0.Wyłączona 1.minimalna 9.maksymalna>",//Motion Sensitivity
|
||||
"Jednostka temperatury <C=Celsius F=Fahrenheit>",//Temp Unit
|
||||
"Wyświetla szczegółowe informacje za pomocą mniejszej czcionki na ekranie bezczynnośći <T = wł., N = wył.>",//Detailed Information
|
||||
"Orientacja wyświetlacza <A. Automatyczna L. Leworęczna P. Praworęczna>",//Orientation
|
||||
"Użyj przycisku przedniego w celu zwiększenia temperatury <T = wł., N = wył.>",//Boost enable
|
||||
"Temperatura w trybie \"boost\" ",//Boost Temp
|
||||
"Automatyczne uruchamianie trybu lutowania po włączeniu zasilania. T=Lutowanie, S= Tryb Uspienia ,N=Wyłącz",//Auto start
|
||||
"Temperatura na ekranie miga, gdy grot jest jeszcze gorący. <T = wł., N = wył.>",//Cooling Blink
|
||||
"Kalibracja temperatury grota lutownicy",//Calibrate Tip
|
||||
"Zresetuj wszystkie ustawienia",//Reset Settings
|
||||
"Kalibracja napięcia wejściowego. Krótkie naciśnięcie, aby ustawić, długie naciśnięcie, aby wyjść.",//VIN Cal
|
||||
"Wyświetl szczegółowe informacje podczas lutowania <T = wł., N = wył.>",//ADV SLD
|
||||
};
|
||||
|
||||
const char* SettingsCalibrationWarning =
|
||||
"Przed kontynuowaniem upewnij się, że końcówka osiągnela temperature pokojowa!";
|
||||
const char* UVLOWarningString = "LOW VOLT"; //Fixed width 8 chars
|
||||
const char* SleepingSimpleString = "Zzz!";// Must be <= 4 chars
|
||||
const char* SleepingAdvancedString = "Uspienie...";// <=17 chars
|
||||
const char* WarningSimpleString = "HOT!";//Must be <= 4 chars
|
||||
const char* WarningAdvancedString = "UWAGA! GORĄCA KOŃCÓWKA!";
|
||||
|
||||
const char SettingTrueChar = 'T';
|
||||
const char SettingFalseChar = 'N';
|
||||
const char SettingRightChar = 'P';
|
||||
const char SettingLeftChar = 'L';
|
||||
const char SettingAutoChar = 'A';
|
||||
|
||||
const enum ShortNameType SettingsShortNameType = SHORT_NAME_SINGLE_LINE;
|
||||
const char* SettingsShortNames[16][2] = {
|
||||
/* (<= 5) Power source (DC or batt) */{"PWRSC"},
|
||||
/* (<= 4) Sleep temperature */{"STMP"},
|
||||
/* (<= 4) Sleep timeout */{"STME"},
|
||||
/* (<= 5) Shutdown timeout */{"SHTME"},
|
||||
/* (<= 6) Motion sensitivity level */{"MSENSE"},
|
||||
/* (<= 6) Temperature in F and C */{"TMPUNT"},
|
||||
/* (<= 6) Advanced idle display mode enabled */{"ADVIDL"},
|
||||
/* (<= 6) Display rotation mode */{"DSPROT"},
|
||||
/* (<= 6) Boost enabled */{"BOOST"},
|
||||
/* (<= 4) Boost temperature */{"BTMP"},
|
||||
/* (<= 6) Automatic start mode */{"ASTART"},
|
||||
/* (<= 6) Cooldown blink */{"CLBLNK"},
|
||||
/* (<= 8) Temperature calibration enter menu */{"TMP CAL?"},
|
||||
/* (<= 8) Settings reset command */{"RESET?"},
|
||||
/* (<= 8) Calibrate input voltage */{"CAL VIN?"},
|
||||
/* (<= 6) Advanced soldering screen enabled */{"ADVSLD"},};
|
||||
#endif
|
||||
|
||||
@@ -64,95 +64,159 @@ const menuitem settingsMenu[] = { /*Struct used for all settings options in the
|
||||
{ NULL, { NULL }, { NULL } } //end of menu marker. DO NOT REMOVE
|
||||
};
|
||||
|
||||
|
||||
static void printShortDescriptionSingleLine(uint32_t shortDescIndex) {
|
||||
lcd.setFont(0);
|
||||
lcd.setCharCursor(0, 0);
|
||||
lcd.print(SettingsShortNames[shortDescIndex][0]);
|
||||
}
|
||||
|
||||
static void printShortDescriptionDoubleLine(uint32_t shortDescIndex) {
|
||||
lcd.setFont(1);
|
||||
lcd.setCharCursor(0, 0);
|
||||
lcd.print(SettingsShortNames[shortDescIndex][0]);
|
||||
lcd.setCharCursor(0, 1);
|
||||
lcd.print(SettingsShortNames[shortDescIndex][1]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Prints two small lines of short description
|
||||
* and prepares cursor in big font after it.
|
||||
* @param shortDescIndex Index to of short description.
|
||||
* @param cursorCharPosition Custom cursor char position to set after printing description.
|
||||
*/
|
||||
static void printShortDescription(uint32_t shortDescIndex, uint16_t cursorCharPosition) {
|
||||
//print short description (default single line, explicit double line)
|
||||
if(SettingsShortNameType == SHORT_NAME_DOUBLE_LINE) {
|
||||
printShortDescriptionDoubleLine(shortDescIndex);
|
||||
}
|
||||
else {
|
||||
printShortDescriptionSingleLine(shortDescIndex);
|
||||
}
|
||||
|
||||
//prepare cursor for value
|
||||
lcd.setFont(0);
|
||||
lcd.setCharCursor(cursorCharPosition, 0);
|
||||
}
|
||||
|
||||
|
||||
static void settings_setInputVRange(void) {
|
||||
systemSettings.cutoutSetting = (systemSettings.cutoutSetting + 1) % 5;
|
||||
}
|
||||
|
||||
static void settings_displayInputVRange(void) {
|
||||
lcd.print(SettingsShortNames[0]);
|
||||
if (systemSettings.cutoutSetting) {
|
||||
lcd.drawChar('0' + 2 + systemSettings.cutoutSetting);
|
||||
lcd.drawChar('S');
|
||||
} else {
|
||||
lcd.print("DC");
|
||||
}
|
||||
printShortDescription(0, 6);
|
||||
|
||||
if (systemSettings.cutoutSetting) {
|
||||
lcd.drawChar('0' + 2 + systemSettings.cutoutSetting);
|
||||
lcd.drawChar('S');
|
||||
}
|
||||
else {
|
||||
lcd.print("DC");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void settings_setSleepTemp(void) {
|
||||
systemSettings.SleepTemp += 10;
|
||||
if (systemSettings.SleepTemp > 300)
|
||||
systemSettings.SleepTemp = 50;
|
||||
}
|
||||
|
||||
static void settings_displaySleepTemp(void) {
|
||||
lcd.print(SettingsShortNames[1]);
|
||||
printShortDescription(1, 5);
|
||||
lcd.printNumber(systemSettings.SleepTemp, 3);
|
||||
}
|
||||
|
||||
|
||||
static void settings_setSleepTime(void) {
|
||||
++systemSettings.SleepTime; //Go up 1 minute at a time
|
||||
if (systemSettings.SleepTime >= 16)
|
||||
systemSettings.SleepTime = 1; //can't set time over 10 mins
|
||||
//Remember that ^ is the time of no movement
|
||||
systemSettings.SleepTime++; //Go up 1 minute at a time
|
||||
if (systemSettings.SleepTime >= 16) {
|
||||
systemSettings.SleepTime = 1; //can't set time over 10 mins
|
||||
}
|
||||
//Remember that ^ is the time of no movement
|
||||
}
|
||||
|
||||
static void settings_displaySleepTime(void) {
|
||||
lcd.print(SettingsShortNames[2]);
|
||||
if (systemSettings.SleepTime < 6) {
|
||||
printShortDescription(2, 5);
|
||||
|
||||
if (systemSettings.SleepTime < 6) {
|
||||
lcd.printNumber(systemSettings.SleepTime * 10, 2);
|
||||
lcd.drawChar('S');
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
lcd.printNumber(systemSettings.SleepTime - 5, 2);
|
||||
lcd.drawChar('M');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void settings_setShutdownTime(void) {
|
||||
++systemSettings.ShutdownTime;
|
||||
if (systemSettings.ShutdownTime > 60)
|
||||
systemSettings.ShutdownTime = 0; //wrap to off
|
||||
systemSettings.ShutdownTime++;
|
||||
if (systemSettings.ShutdownTime > 60) {
|
||||
systemSettings.ShutdownTime = 0; //wrap to off
|
||||
}
|
||||
}
|
||||
|
||||
static void settings_displayShutdownTime(void) {
|
||||
lcd.print(SettingsShortNames[3]);
|
||||
printShortDescription(3, 6);
|
||||
lcd.printNumber(systemSettings.ShutdownTime, 2);
|
||||
}
|
||||
|
||||
|
||||
static void settings_setTempF(void) {
|
||||
systemSettings.temperatureInF = !systemSettings.temperatureInF;
|
||||
}
|
||||
static void settings_displayTempF(void) {
|
||||
lcd.print(SettingsShortNames[5]);
|
||||
|
||||
if (systemSettings.temperatureInF)
|
||||
lcd.drawChar('F');
|
||||
else
|
||||
lcd.drawChar('C');
|
||||
static void settings_displayTempF(void) {
|
||||
printShortDescription(5, 7);
|
||||
|
||||
lcd.drawChar(
|
||||
(systemSettings.temperatureInF)
|
||||
? 'F'
|
||||
: 'C'
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
static void settings_setSensitivity(void) {
|
||||
systemSettings.sensitivity++;
|
||||
systemSettings.sensitivity = systemSettings.sensitivity % 10;
|
||||
}
|
||||
|
||||
static void settings_displaySensitivity(void) {
|
||||
lcd.print(SettingsShortNames[4]);
|
||||
printShortDescription(4, 7);
|
||||
lcd.printNumber(systemSettings.sensitivity, 1);
|
||||
}
|
||||
|
||||
|
||||
static void settings_setAdvancedSolderingScreens(void) {
|
||||
systemSettings.detailedSoldering = !systemSettings.detailedSoldering;
|
||||
}
|
||||
|
||||
static void settings_displayAdvancedSolderingScreens(void) {
|
||||
lcd.print(SettingsShortNames[15]);
|
||||
if (systemSettings.detailedSoldering)
|
||||
lcd.drawChar(SettingTrueChar);
|
||||
else
|
||||
lcd.drawChar(SettingFalseChar);
|
||||
printShortDescription(15, 7);
|
||||
|
||||
lcd.drawChar(
|
||||
(systemSettings.detailedSoldering)
|
||||
? SettingTrueChar
|
||||
: SettingFalseChar
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
static void settings_setAdvancedIDLEScreens(void) {
|
||||
systemSettings.detailedIDLE = !systemSettings.detailedIDLE;
|
||||
}
|
||||
|
||||
static void settings_displayAdvancedIDLEScreens(void) {
|
||||
lcd.print(SettingsShortNames[6]);
|
||||
if (systemSettings.detailedIDLE)
|
||||
lcd.drawChar(SettingTrueChar);
|
||||
else
|
||||
lcd.drawChar(SettingFalseChar);
|
||||
printShortDescription(6, 7);
|
||||
|
||||
lcd.drawChar(
|
||||
(systemSettings.detailedIDLE)
|
||||
? SettingTrueChar
|
||||
: SettingFalseChar
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -160,9 +224,11 @@ static void settings_setDisplayRotation(void) {
|
||||
systemSettings.OrientationMode++;
|
||||
systemSettings.OrientationMode = systemSettings.OrientationMode % 3;
|
||||
}
|
||||
|
||||
static void settings_displayDisplayRotation(void) {
|
||||
lcd.print(SettingsShortNames[7]);
|
||||
switch (systemSettings.OrientationMode) {
|
||||
printShortDescription(7, 7);
|
||||
|
||||
switch (systemSettings.OrientationMode) {
|
||||
case 0:
|
||||
lcd.drawChar(SettingRightChar);
|
||||
break;
|
||||
@@ -173,66 +239,87 @@ static void settings_displayDisplayRotation(void) {
|
||||
lcd.drawChar(SettingAutoChar);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
static void settings_setBoostModeEnabled(void) {
|
||||
systemSettings.boostModeEnabled = !systemSettings.boostModeEnabled;
|
||||
}
|
||||
|
||||
static void settings_displayBoostModeEnabled(void) {
|
||||
lcd.print(SettingsShortNames[8]);
|
||||
if (systemSettings.boostModeEnabled)
|
||||
lcd.drawChar(SettingTrueChar);
|
||||
else
|
||||
lcd.drawChar(SettingFalseChar);
|
||||
printShortDescription(8, 7);
|
||||
|
||||
lcd.drawChar(
|
||||
(systemSettings.boostModeEnabled)
|
||||
? SettingTrueChar
|
||||
: SettingFalseChar
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
static void settings_setBoostTemp(void) {
|
||||
systemSettings.BoostTemp += 10; //Go up 10 at a time
|
||||
systemSettings.BoostTemp += 10; //Go up 10 at a time
|
||||
if (systemSettings.temperatureInF) {
|
||||
if (systemSettings.BoostTemp > 850)
|
||||
systemSettings.BoostTemp = 480; //loop back at 250
|
||||
} else {
|
||||
if (systemSettings.BoostTemp > 450)
|
||||
systemSettings.BoostTemp = 250; //loop back at 250
|
||||
if (systemSettings.BoostTemp > 850) {
|
||||
systemSettings.BoostTemp = 480; //loop back at 250
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (systemSettings.BoostTemp > 450) {
|
||||
systemSettings.BoostTemp = 250; //loop back at 250
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void settings_displayBoostTemp(void) {
|
||||
lcd.print(SettingsShortNames[9]);
|
||||
printShortDescription(9, 5);
|
||||
lcd.printNumber(systemSettings.BoostTemp, 3);
|
||||
}
|
||||
|
||||
|
||||
static void settings_setAutomaticStartMode(void) {
|
||||
systemSettings.autoStartMode++;
|
||||
systemSettings.autoStartMode %= 2;
|
||||
}
|
||||
|
||||
static void settings_displayAutomaticStartMode(void) {
|
||||
lcd.print(SettingsShortNames[10]);
|
||||
switch (systemSettings.autoStartMode) {
|
||||
case 0:
|
||||
lcd.drawChar(SettingFalseChar);
|
||||
break;
|
||||
case 1:
|
||||
lcd.drawChar(SettingTrueChar);
|
||||
break;
|
||||
}
|
||||
printShortDescription(10, 7);
|
||||
|
||||
lcd.drawChar(
|
||||
(systemSettings.autoStartMode)
|
||||
? SettingTrueChar
|
||||
: SettingFalseChar
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
static void settings_setCoolingBlinkEnabled(void) {
|
||||
systemSettings.coolingTempBlink = !systemSettings.coolingTempBlink;
|
||||
}
|
||||
|
||||
static void settings_displayCoolingBlinkEnabled(void) {
|
||||
lcd.print(SettingsShortNames[11]);
|
||||
if (systemSettings.coolingTempBlink)
|
||||
lcd.drawChar(SettingTrueChar);
|
||||
else
|
||||
lcd.drawChar(SettingFalseChar);
|
||||
printShortDescription(11, 7);
|
||||
|
||||
lcd.drawChar(
|
||||
(systemSettings.coolingTempBlink)
|
||||
? SettingTrueChar
|
||||
: SettingFalseChar
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
static void settings_setResetSettings(void) {
|
||||
settingsResetRequest = !settingsResetRequest;
|
||||
}
|
||||
|
||||
static void settings_displayResetSettings(void) {
|
||||
lcd.print(SettingsShortNames[13]);
|
||||
if (settingsResetRequest)
|
||||
lcd.drawChar(SettingTrueChar);
|
||||
else
|
||||
lcd.drawChar(SettingFalseChar);
|
||||
printShortDescription(13, 7);
|
||||
|
||||
lcd.drawChar(
|
||||
(settingsResetRequest)
|
||||
? SettingTrueChar
|
||||
: SettingFalseChar
|
||||
);
|
||||
}
|
||||
|
||||
static void settings_setCalibrate(void) {
|
||||
@@ -240,16 +327,18 @@ static void settings_setCalibrate(void) {
|
||||
//We split off here to confirm with the user
|
||||
uint8_t maxOffset = strlen(SettingsCalibrationWarning) + 5;
|
||||
uint32_t descriptionStart = HAL_GetTick();
|
||||
|
||||
lcd.setFont(0);
|
||||
lcd.clearScreen();
|
||||
lcd.setCursor(0, 0);
|
||||
for (;;) {
|
||||
|
||||
for (;;) {
|
||||
int16_t descriptionOffset = (((HAL_GetTick() - descriptionStart) / 150) % maxOffset);
|
||||
|
||||
lcd.setCursor(12 * (7 - descriptionOffset), 0);
|
||||
lcd.print(SettingsCalibrationWarning);
|
||||
ButtonState buttons = getButtonState();
|
||||
|
||||
ButtonState buttons = getButtonState();
|
||||
switch (buttons) {
|
||||
case BUTTON_F_SHORT: {
|
||||
//User confirmed
|
||||
@@ -258,12 +347,14 @@ static void settings_setCalibrate(void) {
|
||||
lcd.setCursor(0, 0);
|
||||
lcd.print(".....");
|
||||
lcd.refresh();
|
||||
setCalibrationOffset(0); //turn off the current offset
|
||||
|
||||
setCalibrationOffset(0); //turn off the current offset
|
||||
for (uint8_t i = 0; i < 20; i++) {
|
||||
getTipRawTemp(1); //cycle through the filter a fair bit to ensure were stable.
|
||||
getTipRawTemp(1); //cycle through the filter a fair bit to ensure we're stable.
|
||||
osDelay(20);
|
||||
}
|
||||
osDelay(100);
|
||||
|
||||
uint16_t rawTempC = tipMeasurementToC(getTipRawTemp(0));
|
||||
//We now measure the current reported tip temperature
|
||||
uint16_t handleTempC = getHandleTemperature() / 10;
|
||||
@@ -274,30 +365,33 @@ static void settings_setCalibrate(void) {
|
||||
osDelay(100);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
|
||||
case BUTTON_BOTH:
|
||||
case BUTTON_B_SHORT:
|
||||
case BUTTON_F_LONG:
|
||||
case BUTTON_B_LONG:
|
||||
return;
|
||||
break;
|
||||
|
||||
case BUTTON_NONE:
|
||||
break;
|
||||
}
|
||||
|
||||
lcd.refresh();
|
||||
osDelay(50);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
static void settings_displayCalibrate(void) {
|
||||
lcd.print(SettingsShortNames[12]);
|
||||
printShortDescription(12, 5);
|
||||
}
|
||||
|
||||
|
||||
static void settings_setCalibrateVIN(void) {
|
||||
//Jump to the voltage calibration subscreen
|
||||
//Jump to the voltage calibration subscreen
|
||||
lcd.setFont(0);
|
||||
lcd.clearScreen();
|
||||
lcd.setCursor(0, 0);
|
||||
|
||||
for (;;) {
|
||||
lcd.setCursor(0, 0);
|
||||
lcd.printNumber(getInputVoltageX10(systemSettings.voltageDiv) / 10, 2);
|
||||
@@ -310,30 +404,34 @@ static void settings_setCalibrateVIN(void) {
|
||||
case BUTTON_F_SHORT:
|
||||
systemSettings.voltageDiv++;
|
||||
break;
|
||||
|
||||
case BUTTON_B_SHORT:
|
||||
systemSettings.voltageDiv--;
|
||||
break;
|
||||
|
||||
case BUTTON_BOTH:
|
||||
case BUTTON_F_LONG:
|
||||
case BUTTON_B_LONG:
|
||||
saveSettings();
|
||||
return;
|
||||
break;
|
||||
|
||||
case BUTTON_NONE:
|
||||
break;
|
||||
}
|
||||
|
||||
lcd.refresh();
|
||||
osDelay(50);
|
||||
if (systemSettings.voltageDiv < 90)
|
||||
systemSettings.voltageDiv = 90;
|
||||
else if (systemSettings.voltageDiv > 130)
|
||||
systemSettings.voltageDiv = 130;
|
||||
|
||||
//Cap to sensible values
|
||||
if (systemSettings.voltageDiv < 90) {
|
||||
systemSettings.voltageDiv = 90;
|
||||
}
|
||||
else if (systemSettings.voltageDiv > 130) {
|
||||
systemSettings.voltageDiv = 130;
|
||||
}
|
||||
}
|
||||
}
|
||||
static void settings_displayCalibrateVIN(void) {
|
||||
lcd.clearScreen();
|
||||
lcd.setCursor(0, 0);
|
||||
lcd.print(SettingsShortNames[14]);
|
||||
|
||||
static void settings_displayCalibrateVIN(void) {
|
||||
printShortDescription(14, 5);
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ uint16_t getTipInstantTemperature() {
|
||||
uint16_t getTipRawTemp(uint8_t instant) {
|
||||
#define filterDepth1 1
|
||||
/*Pre filter used before PID*/
|
||||
#define filterDepth2 32
|
||||
#define filterDepth2 64
|
||||
/*Post filter used for UI display*/
|
||||
static uint16_t filterLayer1[filterDepth1];
|
||||
static uint16_t filterLayer2[filterDepth2];
|
||||
|
||||
@@ -41,7 +41,7 @@ int main(void) {
|
||||
setTipPWM(0);
|
||||
lcd.initialize(); //start up the LCD
|
||||
lcd.setFont(0); //default to bigger font
|
||||
accel.initalize(); //this sets up the I2C registers and loads up the default settings
|
||||
accel.initalize(); //this sets up the I2C registers and loads up the default settings
|
||||
HAL_IWDG_Refresh(&hiwdg);
|
||||
restoreSettings(); //load the settings from flash
|
||||
setCalibrationOffset(systemSettings.CalibrationOffset);
|
||||
@@ -63,8 +63,8 @@ int main(void) {
|
||||
MOVTaskHandle = osThreadCreate(osThread(MOVTask), NULL);
|
||||
|
||||
/* Create the objects*/
|
||||
rotationChangedSemaphore = xSemaphoreCreateBinary(); // Used to unlock rotation thread
|
||||
accelDataAvailableSemaphore = xSemaphoreCreateBinary(); // Used to unlock the movement thread
|
||||
rotationChangedSemaphore = xSemaphoreCreateBinary(); // Used to unlock rotation thread
|
||||
accelDataAvailableSemaphore = xSemaphoreCreateBinary(); // Used to unlock the movement thread
|
||||
/* Start scheduler */
|
||||
osKernelStart();
|
||||
|
||||
@@ -73,7 +73,22 @@ int main(void) {
|
||||
}
|
||||
}
|
||||
void GUIDelay() {
|
||||
osDelay(50);//20Hz
|
||||
osDelay(50); //20Hz
|
||||
}
|
||||
void gui_drawTipTemp() {
|
||||
//Draw tip temp handling unit conversion & tolerance near setpoint
|
||||
uint16_t Temp = getTipRawTemp(0);
|
||||
|
||||
if (systemSettings.temperatureInF)
|
||||
Temp = tipMeasurementToF(Temp);
|
||||
else
|
||||
Temp = tipMeasurementToC(Temp);
|
||||
//[Disabled 24/11/2017] Round if nearby
|
||||
//if (abs(Temp - systemSettings.SolderingTemp) < 3)
|
||||
// Temp = systemSettings.SolderingTemp;
|
||||
|
||||
lcd.printNumber(Temp, 3); //Draw the tip temp out finally
|
||||
|
||||
}
|
||||
ButtonState getButtonState() {
|
||||
/*
|
||||
@@ -88,8 +103,12 @@ ButtonState getButtonState() {
|
||||
static uint32_t previousStateChange = 0;
|
||||
const uint16_t timeout = 400;
|
||||
uint8_t currentState;
|
||||
currentState = (HAL_GPIO_ReadPin(KEY_A_GPIO_Port, KEY_A_Pin) == GPIO_PIN_RESET ? 1 : 0) << 0;
|
||||
currentState |= (HAL_GPIO_ReadPin(KEY_B_GPIO_Port, KEY_B_Pin) == GPIO_PIN_RESET ? 1 : 0) << 1;
|
||||
currentState = (
|
||||
HAL_GPIO_ReadPin(KEY_A_GPIO_Port, KEY_A_Pin) == GPIO_PIN_RESET ?
|
||||
1 : 0) << 0;
|
||||
currentState |= (
|
||||
HAL_GPIO_ReadPin(KEY_B_GPIO_Port, KEY_B_Pin) == GPIO_PIN_RESET ?
|
||||
1 : 0) << 1;
|
||||
|
||||
if (currentState)
|
||||
lastButtonTime = HAL_GetTick();
|
||||
@@ -104,7 +123,7 @@ ButtonState getButtonState() {
|
||||
else if (currentState == 0x02)
|
||||
return BUTTON_B_LONG;
|
||||
else
|
||||
return BUTTON_NONE; // Both being held case, we dont long hold this
|
||||
return BUTTON_NONE; // Both being held case, we dont long hold this
|
||||
} else
|
||||
return BUTTON_NONE;
|
||||
} else {
|
||||
@@ -179,9 +198,11 @@ static bool checkVoltageForExit() {
|
||||
lcd.print("Undervoltage");
|
||||
lcd.setCursor(0, 8);
|
||||
lcd.print("Input V: ");
|
||||
lcd.printNumber(getInputVoltageX10(systemSettings.voltageDiv) / 10, 2);
|
||||
lcd.printNumber(getInputVoltageX10(systemSettings.voltageDiv) / 10,
|
||||
2);
|
||||
lcd.drawChar('.');
|
||||
lcd.printNumber(getInputVoltageX10(systemSettings.voltageDiv) % 10, 1);
|
||||
lcd.printNumber(getInputVoltageX10(systemSettings.voltageDiv) % 10,
|
||||
1);
|
||||
lcd.print("V");
|
||||
|
||||
} else {
|
||||
@@ -201,7 +222,8 @@ static void gui_drawBatteryIcon() {
|
||||
//User is on a lithium battery
|
||||
//we need to calculate which of the 10 levels they are on
|
||||
uint8_t cellCount = systemSettings.cutoutSetting + 2;
|
||||
uint16_t cellV = getInputVoltageX10(systemSettings.voltageDiv) / cellCount;
|
||||
uint16_t cellV = getInputVoltageX10(systemSettings.voltageDiv)
|
||||
/ cellCount;
|
||||
//Should give us approx cell voltage X10
|
||||
//Range is 42 -> 33 = 9 steps therefore we will use battery 1-10
|
||||
if (cellV < 33)
|
||||
@@ -225,33 +247,33 @@ static void gui_solderingTempAdjust() {
|
||||
if (buttons)
|
||||
lastChange = HAL_GetTick();
|
||||
switch (buttons) {
|
||||
case BUTTON_NONE:
|
||||
//stay
|
||||
break;
|
||||
case BUTTON_BOTH:
|
||||
//exit
|
||||
return;
|
||||
break;
|
||||
case BUTTON_B_LONG:
|
||||
case BUTTON_NONE:
|
||||
//stay
|
||||
break;
|
||||
case BUTTON_BOTH:
|
||||
//exit
|
||||
return;
|
||||
break;
|
||||
case BUTTON_B_LONG:
|
||||
|
||||
break;
|
||||
case BUTTON_F_LONG:
|
||||
break;
|
||||
case BUTTON_F_LONG:
|
||||
|
||||
break;
|
||||
case BUTTON_F_SHORT:
|
||||
if (lcd.getRotation()) {
|
||||
systemSettings.SolderingTemp += 10; //add 10
|
||||
} else {
|
||||
systemSettings.SolderingTemp -= 10; //sub 10
|
||||
}
|
||||
break;
|
||||
case BUTTON_B_SHORT:
|
||||
if (!lcd.getRotation()) {
|
||||
systemSettings.SolderingTemp += 10; //add 10
|
||||
} else {
|
||||
systemSettings.SolderingTemp -= 10; //sub 10
|
||||
}
|
||||
break;
|
||||
break;
|
||||
case BUTTON_F_SHORT:
|
||||
if (lcd.getRotation()) {
|
||||
systemSettings.SolderingTemp += 10; //add 10
|
||||
} else {
|
||||
systemSettings.SolderingTemp -= 10; //sub 10
|
||||
}
|
||||
break;
|
||||
case BUTTON_B_SHORT:
|
||||
if (!lcd.getRotation()) {
|
||||
systemSettings.SolderingTemp += 10; //add 10
|
||||
} else {
|
||||
systemSettings.SolderingTemp -= 10; //sub 10
|
||||
}
|
||||
break;
|
||||
}
|
||||
// constrain between 50-450 C
|
||||
if (systemSettings.temperatureInF) {
|
||||
@@ -292,7 +314,8 @@ static void gui_settingsMenu() {
|
||||
settingsResetRequest = false;
|
||||
bool earlyExit = false;
|
||||
uint32_t descriptionStart = 0;
|
||||
while ((settingsMenu[currentScreen].description != NULL) && earlyExit == false) {
|
||||
while ((settingsMenu[currentScreen].incrementHandler.func != NULL)
|
||||
&& earlyExit == false) {
|
||||
lcd.setFont(0);
|
||||
lcd.clearScreen();
|
||||
lcd.setCursor(0, 0);
|
||||
@@ -303,56 +326,58 @@ static void gui_settingsMenu() {
|
||||
} else {
|
||||
//Draw description
|
||||
//draw string starting from descriptionOffset
|
||||
int16_t maxOffset = strlen(settingsMenu[currentScreen].description) + 5;
|
||||
int16_t maxOffset = strlen(settingsMenu[currentScreen].description)
|
||||
+ 5;
|
||||
if (descriptionStart == 0)
|
||||
descriptionStart = HAL_GetTick();
|
||||
|
||||
int16_t descriptionOffset = (((HAL_GetTick() - descriptionStart) / 150) % maxOffset);
|
||||
int16_t descriptionOffset = (((HAL_GetTick() - descriptionStart)
|
||||
/ 10) % (maxOffset * 12));
|
||||
//^ Rolling offset based on time
|
||||
lcd.setCursor(12 * (7 - descriptionOffset), 0);
|
||||
lcd.setCursor(((7 * 12) - descriptionOffset), 0);
|
||||
lcd.print(settingsMenu[currentScreen].description);
|
||||
}
|
||||
|
||||
ButtonState buttons = getButtonState();
|
||||
|
||||
switch (buttons) {
|
||||
case BUTTON_BOTH:
|
||||
earlyExit = true; //will make us exit next loop
|
||||
case BUTTON_BOTH:
|
||||
earlyExit = true; //will make us exit next loop
|
||||
descriptionStart = 0;
|
||||
break;
|
||||
case BUTTON_F_SHORT:
|
||||
//increment
|
||||
if (descriptionStart == 0)
|
||||
settingsMenu[currentScreen].incrementHandler.func();
|
||||
else
|
||||
descriptionStart = 0;
|
||||
break;
|
||||
case BUTTON_F_SHORT:
|
||||
//increment
|
||||
if (descriptionStart == 0)
|
||||
settingsMenu[currentScreen].incrementHandler.func();
|
||||
else
|
||||
descriptionStart = 0;
|
||||
break;
|
||||
case BUTTON_B_SHORT:
|
||||
if (descriptionStart == 0)
|
||||
currentScreen++;
|
||||
else
|
||||
descriptionStart = 0;
|
||||
break;
|
||||
case BUTTON_F_LONG:
|
||||
if (HAL_GetTick() - autoRepeatTimer > 200) {
|
||||
settingsMenu[currentScreen].incrementHandler.func();
|
||||
autoRepeatTimer = HAL_GetTick();
|
||||
descriptionStart = 0;
|
||||
}
|
||||
break;
|
||||
case BUTTON_B_LONG:
|
||||
if (HAL_GetTick() - autoRepeatTimer > 200) {
|
||||
currentScreen++;
|
||||
autoRepeatTimer = HAL_GetTick();
|
||||
descriptionStart = 0;
|
||||
}
|
||||
break;
|
||||
case BUTTON_NONE:
|
||||
break;
|
||||
break;
|
||||
case BUTTON_B_SHORT:
|
||||
if (descriptionStart == 0)
|
||||
currentScreen++;
|
||||
else
|
||||
descriptionStart = 0;
|
||||
break;
|
||||
case BUTTON_F_LONG:
|
||||
if (HAL_GetTick() - autoRepeatTimer > 200) {
|
||||
settingsMenu[currentScreen].incrementHandler.func();
|
||||
autoRepeatTimer = HAL_GetTick();
|
||||
descriptionStart = 0;
|
||||
}
|
||||
break;
|
||||
case BUTTON_B_LONG:
|
||||
if (HAL_GetTick() - autoRepeatTimer > 200) {
|
||||
currentScreen++;
|
||||
autoRepeatTimer = HAL_GetTick();
|
||||
descriptionStart = 0;
|
||||
}
|
||||
break;
|
||||
case BUTTON_NONE:
|
||||
break;
|
||||
}
|
||||
|
||||
lcd.refresh(); //update the LCD
|
||||
GUIDelay();
|
||||
osDelay(20);
|
||||
HAL_IWDG_Refresh(&hiwdg);
|
||||
|
||||
}
|
||||
@@ -411,6 +436,12 @@ static int gui_showTipTempWarning() {
|
||||
GUIDelay();
|
||||
}
|
||||
}
|
||||
static uint16_t min(uint16_t a, uint16_t b) {
|
||||
if (a > b)
|
||||
return b;
|
||||
else
|
||||
return a;
|
||||
}
|
||||
static int gui_SolderingSleepingMode() {
|
||||
//Drop to sleep temperature and display until movement or button press
|
||||
|
||||
@@ -418,15 +449,20 @@ static int gui_SolderingSleepingMode() {
|
||||
ButtonState buttons = getButtonState();
|
||||
if (buttons)
|
||||
return 0;
|
||||
if ((HAL_GetTick() - lastMovementTime < 1000) || (HAL_GetTick() - lastButtonTime < 1000))
|
||||
if ((HAL_GetTick() - lastMovementTime < 1000)
|
||||
|| (HAL_GetTick() - lastButtonTime < 1000))
|
||||
return 0; //user moved or pressed a button, go back to soldering
|
||||
if (checkVoltageForExit())
|
||||
return 1; //return non-zero on error
|
||||
|
||||
if (systemSettings.temperatureInF)
|
||||
currentlyActiveTemperatureTarget = ftoTipMeasurement(systemSettings.SleepTemp);
|
||||
currentlyActiveTemperatureTarget = ftoTipMeasurement(
|
||||
min(systemSettings.SleepTemp,
|
||||
systemSettings.SolderingTemp));
|
||||
else
|
||||
currentlyActiveTemperatureTarget = ctoTipMeasurement(systemSettings.SleepTemp);
|
||||
currentlyActiveTemperatureTarget = ctoTipMeasurement(
|
||||
min(systemSettings.SleepTemp,
|
||||
systemSettings.SolderingTemp));
|
||||
//draw the lcd
|
||||
uint16_t tipTemp;
|
||||
if (systemSettings.temperatureInF)
|
||||
@@ -448,9 +484,11 @@ static int gui_SolderingSleepingMode() {
|
||||
lcd.print("C");
|
||||
|
||||
lcd.print(" ");
|
||||
lcd.printNumber(getInputVoltageX10(systemSettings.voltageDiv) / 10, 2);
|
||||
lcd.printNumber(getInputVoltageX10(systemSettings.voltageDiv) / 10,
|
||||
2);
|
||||
lcd.drawChar('.');
|
||||
lcd.printNumber(getInputVoltageX10(systemSettings.voltageDiv) % 10, 1);
|
||||
lcd.printNumber(getInputVoltageX10(systemSettings.voltageDiv) % 10,
|
||||
1);
|
||||
lcd.drawChar('V');
|
||||
} else {
|
||||
lcd.setFont(0);
|
||||
@@ -461,7 +499,7 @@ static int gui_SolderingSleepingMode() {
|
||||
else
|
||||
lcd.drawSymbol(1);
|
||||
}
|
||||
if (systemSettings.ShutdownTime) //only allow shutdown exit if time > 0
|
||||
if (systemSettings.ShutdownTime) //only allow shutdown exit if time > 0
|
||||
if (lastMovementTime)
|
||||
if (((uint32_t) (HAL_GetTick() - lastMovementTime))
|
||||
> (uint32_t) (systemSettings.ShutdownTime * 60 * 1000)) {
|
||||
@@ -499,31 +537,31 @@ static void gui_solderingMode() {
|
||||
|
||||
ButtonState buttons = getButtonState();
|
||||
switch (buttons) {
|
||||
case BUTTON_NONE:
|
||||
//stay
|
||||
boostModeOn = false;
|
||||
break;
|
||||
case BUTTON_BOTH:
|
||||
//exit
|
||||
return;
|
||||
break;
|
||||
case BUTTON_B_LONG:
|
||||
return; //exit on back long hold
|
||||
break;
|
||||
case BUTTON_F_LONG:
|
||||
//if boost mode is enabled turn it on
|
||||
if (systemSettings.boostModeEnabled)
|
||||
boostModeOn = true;
|
||||
break;
|
||||
case BUTTON_F_SHORT:
|
||||
case BUTTON_B_SHORT: {
|
||||
uint16_t oldTemp = systemSettings.SolderingTemp;
|
||||
gui_solderingTempAdjust(); //goto adjust temp mode
|
||||
if (oldTemp != systemSettings.SolderingTemp) {
|
||||
saveSettings(); //only save on change
|
||||
}
|
||||
case BUTTON_NONE:
|
||||
//stay
|
||||
boostModeOn = false;
|
||||
break;
|
||||
case BUTTON_BOTH:
|
||||
//exit
|
||||
return;
|
||||
break;
|
||||
case BUTTON_B_LONG:
|
||||
return; //exit on back long hold
|
||||
break;
|
||||
case BUTTON_F_LONG:
|
||||
//if boost mode is enabled turn it on
|
||||
if (systemSettings.boostModeEnabled)
|
||||
boostModeOn = true;
|
||||
break;
|
||||
case BUTTON_F_SHORT:
|
||||
case BUTTON_B_SHORT: {
|
||||
uint16_t oldTemp = systemSettings.SolderingTemp;
|
||||
gui_solderingTempAdjust(); //goto adjust temp mode
|
||||
if (oldTemp != systemSettings.SolderingTemp) {
|
||||
saveSettings(); //only save on change
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
//else we update the screen information
|
||||
lcd.setCursor(0, 0);
|
||||
@@ -543,10 +581,10 @@ static void gui_solderingMode() {
|
||||
|
||||
lcd.drawChar(' '); // Space out gap between battery <-> temp
|
||||
if (systemSettings.temperatureInF) {
|
||||
lcd.printNumber(tipMeasurementToF(tipTemp), 3); //Draw current tip temp
|
||||
gui_drawTipTemp(); //Draw current tip temp
|
||||
lcd.drawSymbol(0); //deg F
|
||||
} else {
|
||||
lcd.printNumber(tipMeasurementToC(tipTemp), 3); //Draw current tip temp
|
||||
gui_drawTipTemp(); //Draw current tip temp
|
||||
lcd.drawSymbol(1); //deg C
|
||||
}
|
||||
|
||||
@@ -577,10 +615,10 @@ static void gui_solderingMode() {
|
||||
lcd.drawChar(' ');
|
||||
|
||||
if (systemSettings.temperatureInF) {
|
||||
lcd.printNumber(tipMeasurementToF(tipTemp), 3); //Draw current tip temp
|
||||
gui_drawTipTemp(); //Draw current tip temp
|
||||
lcd.drawSymbol(0); //deg F
|
||||
} else {
|
||||
lcd.printNumber(tipMeasurementToC(tipTemp), 3); //Draw current tip temp
|
||||
gui_drawTipTemp(); //Draw current tip temp
|
||||
lcd.drawSymbol(1); //deg C
|
||||
}
|
||||
|
||||
@@ -593,15 +631,19 @@ static void gui_solderingMode() {
|
||||
//Update the setpoints for the temperature
|
||||
if (boostModeOn) {
|
||||
if (systemSettings.temperatureInF)
|
||||
currentlyActiveTemperatureTarget = ftoTipMeasurement(systemSettings.BoostTemp);
|
||||
currentlyActiveTemperatureTarget = ftoTipMeasurement(
|
||||
systemSettings.BoostTemp);
|
||||
else
|
||||
currentlyActiveTemperatureTarget = ctoTipMeasurement(systemSettings.BoostTemp);
|
||||
currentlyActiveTemperatureTarget = ctoTipMeasurement(
|
||||
systemSettings.BoostTemp);
|
||||
|
||||
} else {
|
||||
if (systemSettings.temperatureInF)
|
||||
currentlyActiveTemperatureTarget = ftoTipMeasurement(systemSettings.SolderingTemp);
|
||||
currentlyActiveTemperatureTarget = ftoTipMeasurement(
|
||||
systemSettings.SolderingTemp);
|
||||
else
|
||||
currentlyActiveTemperatureTarget = ctoTipMeasurement(systemSettings.SolderingTemp);
|
||||
currentlyActiveTemperatureTarget = ctoTipMeasurement(
|
||||
systemSettings.SolderingTemp);
|
||||
}
|
||||
|
||||
//Undervoltage test
|
||||
@@ -611,7 +653,8 @@ static void gui_solderingMode() {
|
||||
|
||||
lcd.refresh();
|
||||
if (systemSettings.sensitivity)
|
||||
if (HAL_GetTick() - lastMovementTime > sleepThres && HAL_GetTick() - lastButtonTime > sleepThres) {
|
||||
if (HAL_GetTick() - lastMovementTime > sleepThres
|
||||
&& HAL_GetTick() - lastButtonTime > sleepThres) {
|
||||
if (gui_SolderingSleepingMode()) {
|
||||
return; //If the function returns non-0 then exit
|
||||
}
|
||||
@@ -646,74 +689,78 @@ void startGUITask(void const * argument) {
|
||||
|
||||
uint8_t animationStep = 0;
|
||||
uint8_t tempWarningState = 0;
|
||||
|
||||
HAL_IWDG_Refresh(&hiwdg);
|
||||
if (showBootLogoIfavailable())
|
||||
waitForButtonPressOrTimeout(2000);
|
||||
HAL_IWDG_Refresh(&hiwdg);
|
||||
if (systemSettings.autoStartMode) {
|
||||
//jump directly to the autostart mode
|
||||
if (systemSettings.autoStartMode == 1)
|
||||
gui_solderingMode();
|
||||
}
|
||||
HAL_IWDG_Refresh(&hiwdg);
|
||||
if (showBootLogoIfavailable())
|
||||
waitForButtonPressOrTimeout(1000);
|
||||
HAL_IWDG_Refresh(&hiwdg);
|
||||
#if ACCELDEBUG
|
||||
|
||||
for (;;) {
|
||||
HAL_IWDG_Refresh(&hiwdg);
|
||||
osDelay(100);
|
||||
}
|
||||
//^ Kept here for a way to block this thread
|
||||
#endif
|
||||
//^ Kept here for a way to block this thread
|
||||
|
||||
for (;;) {
|
||||
ButtonState buttons = getButtonState();
|
||||
if (tempWarningState == 2)
|
||||
buttons = BUTTON_F_SHORT;
|
||||
switch (buttons) {
|
||||
case BUTTON_NONE:
|
||||
//Do nothing
|
||||
break;
|
||||
case BUTTON_BOTH:
|
||||
//Not used yet
|
||||
break;
|
||||
case BUTTON_NONE:
|
||||
//Do nothing
|
||||
break;
|
||||
case BUTTON_BOTH:
|
||||
//Not used yet
|
||||
break;
|
||||
|
||||
case BUTTON_B_LONG:
|
||||
//Show the version information
|
||||
{
|
||||
lcd.clearScreen(); //Ensure the buffer starts clean
|
||||
lcd.setCursor(0, 0); //Position the cursor at the 0,0 (top left)
|
||||
lcd.setFont(1); //small font
|
||||
lcd.print((char*) "V2.00a6"); //Print version number
|
||||
lcd.setCursor(0, 8); //second line
|
||||
lcd.print(__DATE__); //print the compile date
|
||||
lcd.refresh();
|
||||
waitForButtonPress();
|
||||
lcd.setFont(0); //reset font
|
||||
case BUTTON_B_LONG:
|
||||
//Show the version information
|
||||
{
|
||||
lcd.clearScreen(); //Ensure the buffer starts clean
|
||||
lcd.setCursor(0, 0); //Position the cursor at the 0,0 (top left)
|
||||
lcd.setFont(1); //small font
|
||||
lcd.print((char*) "V2.01"); //Print version number
|
||||
lcd.setCursor(0, 8); //second line
|
||||
lcd.print(__DATE__); //print the compile date
|
||||
lcd.refresh();
|
||||
waitForButtonPress();
|
||||
lcd.setFont(0); //reset font
|
||||
|
||||
}
|
||||
break;
|
||||
case BUTTON_F_LONG:
|
||||
gui_solderingTempAdjust();
|
||||
saveSettings();
|
||||
break;
|
||||
case BUTTON_F_SHORT:
|
||||
lcd.setFont(0);
|
||||
lcd.displayOnOff(true); //turn lcd on
|
||||
gui_solderingMode(); //enter soldering mode
|
||||
tempWarningState = 0; //make sure warning can show
|
||||
break;
|
||||
case BUTTON_B_SHORT:
|
||||
lcd.setFont(0);
|
||||
lcd.displayOnOff(true); //turn lcd on
|
||||
gui_settingsMenu(); //enter the settings menu
|
||||
saveSettings();
|
||||
setCalibrationOffset(systemSettings.CalibrationOffset); //ensure cal offset is applied
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case BUTTON_F_LONG:
|
||||
gui_solderingTempAdjust();
|
||||
saveSettings();
|
||||
break;
|
||||
case BUTTON_F_SHORT:
|
||||
lcd.setFont(0);
|
||||
lcd.displayOnOff(true); //turn lcd on
|
||||
gui_solderingMode(); //enter soldering mode
|
||||
tempWarningState = 0; //make sure warning can show
|
||||
break;
|
||||
case BUTTON_B_SHORT:
|
||||
lcd.setFont(0);
|
||||
lcd.displayOnOff(true); //turn lcd on
|
||||
gui_settingsMenu(); //enter the settings menu
|
||||
saveSettings();
|
||||
setCalibrationOffset(systemSettings.CalibrationOffset); //ensure cal offset is applied
|
||||
break;
|
||||
}
|
||||
currentlyActiveTemperatureTarget = 0; //ensure tip is off
|
||||
|
||||
if (systemSettings.sensitivity) {
|
||||
if ((HAL_GetTick() - lastMovementTime) > 60000 && (HAL_GetTick() - lastButtonTime) > 60000)
|
||||
if ((HAL_GetTick() - lastMovementTime) > 60000
|
||||
&& (HAL_GetTick() - lastButtonTime) > 60000)
|
||||
lcd.displayOnOff(false); // turn lcd off when no movement
|
||||
else if (HAL_GetTick() - lastMovementTime < 1000 || HAL_GetTick() - lastButtonTime < 1000) /*Use short time for test, and prevent lots of I2C writes for no need*/
|
||||
else if (HAL_GetTick() - lastMovementTime < 1000
|
||||
|| HAL_GetTick() - lastButtonTime < 1000) /*Use short time for test, and prevent lots of I2C writes for no need*/
|
||||
lcd.displayOnOff(true); //turn lcd back on
|
||||
|
||||
}
|
||||
@@ -750,9 +797,11 @@ void startGUITask(void const * argument) {
|
||||
}
|
||||
lcd.setCursor(0, 8);
|
||||
lcd.print("Input V: ");
|
||||
lcd.printNumber(getInputVoltageX10(systemSettings.voltageDiv) / 10, 2);
|
||||
lcd.printNumber(getInputVoltageX10(systemSettings.voltageDiv) / 10,
|
||||
2);
|
||||
lcd.drawChar('.');
|
||||
lcd.printNumber(getInputVoltageX10(systemSettings.voltageDiv) % 10, 1);
|
||||
lcd.printNumber(getInputVoltageX10(systemSettings.voltageDiv) % 10,
|
||||
1);
|
||||
lcd.print("V");
|
||||
|
||||
} else {
|
||||
@@ -762,7 +811,7 @@ void startGUITask(void const * argument) {
|
||||
lcd.setCursor(0, 0);
|
||||
gui_drawBatteryIcon();
|
||||
} else {
|
||||
lcd.drawArea(0, 0, 84, 16, idleScreenBGF); //Needs to be flipped
|
||||
lcd.drawArea(0, 0, 84, 16, idleScreenBGF); //Needs to be flipped
|
||||
lcd.setCursor(84, 0);
|
||||
gui_drawBatteryIcon();
|
||||
}
|
||||
@@ -791,9 +840,11 @@ void startPIDTask(void const * argument) {
|
||||
int32_t kp, ki, kd, kb;
|
||||
int32_t backoffOverflow = 0;
|
||||
kp = 20;
|
||||
ki = 40;
|
||||
kd = 30;
|
||||
ki = 50;
|
||||
kd = 40;
|
||||
kb = 0;
|
||||
// REMEBER ^^^^ These constants are backwards
|
||||
// They act as dividers, so to 'increase' a P term, you make the number smaller.
|
||||
const int32_t itermMax = 40;
|
||||
for (;;) {
|
||||
uint16_t rawTemp = getTipRawTemp(1); //get instantaneous reading
|
||||
@@ -829,12 +880,18 @@ void startPIDTask(void const * argument) {
|
||||
output = 0;
|
||||
} else
|
||||
backoffOverflow = 0;
|
||||
|
||||
if (currentlyActiveTemperatureTarget < rawTemp) {
|
||||
output = 0;
|
||||
integralCount = 0;
|
||||
backoffOverflow = 0;
|
||||
derivativeLastValue = 0;
|
||||
}
|
||||
setTipPWM(output);
|
||||
} else {
|
||||
setTipPWM(0); //disable the output driver if the output is set to be off elsewhere
|
||||
setTipPWM(0); //disable the output driver if the output is set to be off elsewhere
|
||||
integralCount = 0;
|
||||
backoffOverflow = 0;
|
||||
derivativeLastValue = 0;
|
||||
}
|
||||
derivativeLastValue = rawTemp; //store for next loop
|
||||
HAL_IWDG_Refresh(&hiwdg);
|
||||
@@ -860,8 +917,8 @@ void startMOVTask(void const * argument) {
|
||||
#endif
|
||||
|
||||
for (;;) {
|
||||
int32_t threshold = 800 + (9 * 200);
|
||||
threshold -= systemSettings.sensitivity * 200; // 200 is the step size
|
||||
int32_t threshold = 1200 + (9 * 200);
|
||||
threshold -= systemSettings.sensitivity * 200; // 200 is the step size
|
||||
accel.getAxisReadings(&tx, &ty, &tz);
|
||||
|
||||
datax[currentPointer] = (int32_t) tx;
|
||||
@@ -886,7 +943,7 @@ void startMOVTask(void const * argument) {
|
||||
lcd.print(" ");
|
||||
lcd.printNumber(abs(avgy - (int32_t) ty), 5);
|
||||
if ((abs(avgx - tx) + abs(avgy - ty) + abs(avgz - tz)) > max)
|
||||
max = (abs(avgx - tx) + abs(avgy - ty) + abs(avgz - tz));
|
||||
max = (abs(avgx - tx) + abs(avgy - ty) + abs(avgz - tz));
|
||||
lcd.setCursor(0, 8);
|
||||
lcd.printNumber(max, 5);
|
||||
lcd.print(" ");
|
||||
@@ -894,7 +951,7 @@ void startMOVTask(void const * argument) {
|
||||
lcd.printNumber((abs(avgx - tx) + abs(avgy - ty) + abs(avgz - tz)), 5);
|
||||
lcd.refresh();
|
||||
if (HAL_GPIO_ReadPin(KEY_A_GPIO_Port, KEY_A_Pin) == GPIO_PIN_RESET)
|
||||
max = 0;
|
||||
max = 0;
|
||||
#endif
|
||||
//Only run the actual processing if the sensitivity is set (aka we are enabled)
|
||||
if (systemSettings.sensitivity) {
|
||||
@@ -934,19 +991,20 @@ void startRotationTask(void const * argument) {
|
||||
HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);
|
||||
//^ We hold off enabling these until now to ensure the semaphore is available to be used first
|
||||
switch (systemSettings.OrientationMode) {
|
||||
case 0:
|
||||
lcd.setRotation(false);
|
||||
break;
|
||||
case 1:
|
||||
lcd.setRotation(true);
|
||||
break;
|
||||
case 2:
|
||||
lcd.setRotation(false);
|
||||
break;
|
||||
case 0:
|
||||
lcd.setRotation(false);
|
||||
break;
|
||||
case 1:
|
||||
lcd.setRotation(true);
|
||||
break;
|
||||
case 2:
|
||||
lcd.setRotation(false);
|
||||
break;
|
||||
}
|
||||
for (;;) {
|
||||
if ( xSemaphoreTake( rotationChangedSemaphore, portMAX_DELAY ) == pdTRUE
|
||||
|| (HAL_GPIO_ReadPin(INT_Orientation_GPIO_Port, INT_Orientation_Pin) == GPIO_PIN_RESET)) {
|
||||
|| (HAL_GPIO_ReadPin(INT_Orientation_GPIO_Port,
|
||||
INT_Orientation_Pin) == GPIO_PIN_RESET)) {
|
||||
// a rotation event has occured
|
||||
bool rotation = accel.getOrientation();
|
||||
if (systemSettings.OrientationMode == 2)
|
||||
@@ -961,7 +1019,8 @@ void startRotationTask(void const * argument) {
|
||||
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {
|
||||
static signed long xHigherPriorityTaskWoken;
|
||||
if (GPIO_Pin == INT_Orientation_Pin) {
|
||||
xSemaphoreGiveFromISR(rotationChangedSemaphore, &xHigherPriorityTaskWoken);
|
||||
xSemaphoreGiveFromISR(rotationChangedSemaphore,
|
||||
&xHigherPriorityTaskWoken);
|
||||
} else if (GPIO_Pin == INT_Movement_Pin) {
|
||||
//New data is available for reading from the unit
|
||||
//xSemaphoreGiveFromISR(accelDataAvailableSemaphore, &xHigherPriorityTaskWoken);
|
||||
|
||||
@@ -124,8 +124,8 @@
|
||||
<configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="fr.ac6.managedbuild.config.gnu.cross.exe.release.723264573" name="Release" parent="fr.ac6.managedbuild.config.gnu.cross.exe.release" postannouncebuildStep="Generating binary and Printing size information:" postbuildStep="arm-none-eabi-objcopy -O binary "${BuildArtifactFileBaseName}.elf" "${BuildArtifactFileBaseName}.bin"; arm-none-eabi-size -B "${BuildArtifactFileName}" ;arm-none-eabi-objcopy -O ihex "${BuildArtifactFileBaseName}.elf" "${BuildArtifactFileBaseName}.hex"">
|
||||
<folderInfo id="fr.ac6.managedbuild.config.gnu.cross.exe.release.723264573." name="/" resourcePath="">
|
||||
<toolChain id="fr.ac6.managedbuild.toolchain.gnu.cross.exe.release.1456567544" name="Ac6 STM32 MCU GCC" superClass="fr.ac6.managedbuild.toolchain.gnu.cross.exe.release">
|
||||
<option id="fr.ac6.managedbuild.option.gnu.cross.mcu.67332574" name="Mcu" superClass="fr.ac6.managedbuild.option.gnu.cross.mcu" value="STM32F103T8Ux" valueType="string"/>
|
||||
<option id="fr.ac6.managedbuild.option.gnu.cross.board.1570943989" name="Board" superClass="fr.ac6.managedbuild.option.gnu.cross.board" value="ts100" valueType="string"/>
|
||||
<option id="fr.ac6.managedbuild.option.gnu.cross.mcu.67332574" name="Mcu" superClass="fr.ac6.managedbuild.option.gnu.cross.mcu" useByScannerDiscovery="false" value="STM32F103T8Ux" valueType="string"/>
|
||||
<option id="fr.ac6.managedbuild.option.gnu.cross.board.1570943989" name="Board" superClass="fr.ac6.managedbuild.option.gnu.cross.board" useByScannerDiscovery="false" value="ts100" valueType="string"/>
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="fr.ac6.managedbuild.targetPlatform.gnu.cross.793444160" isAbstract="false" osList="all" superClass="fr.ac6.managedbuild.targetPlatform.gnu.cross"/>
|
||||
<builder buildPath="${workspace_loc:/TS100}/Release" id="fr.ac6.managedbuild.builder.gnu.cross.548236022" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="fr.ac6.managedbuild.builder.gnu.cross"/>
|
||||
<tool id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.1363306495" name="MCU GCC Compiler" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler">
|
||||
@@ -188,7 +188,7 @@
|
||||
</tool>
|
||||
<tool id="fr.ac6.managedbuild.tool.gnu.archiver.907512577" name="MCU GCC Archiver" superClass="fr.ac6.managedbuild.tool.gnu.archiver"/>
|
||||
<tool id="fr.ac6.managedbuild.tool.gnu.cross.assembler.1906472572" name="MCU GCC Assembler" superClass="fr.ac6.managedbuild.tool.gnu.cross.assembler">
|
||||
<option id="gnu.both.asm.option.include.paths.1277819409" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
|
||||
<option id="gnu.both.asm.option.include.paths.1277819409" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${ProjDirPath}/inc""/>
|
||||
<listOptionValue builtIn="false" value=""${ProjDirPath}/CMSIS/core""/>
|
||||
<listOptionValue builtIn="false" value=""${ProjDirPath}/CMSIS/device""/>
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
|
||||
#ifndef FONT_H_
|
||||
#define FONT_H_
|
||||
#include "Translation.h"
|
||||
/*
|
||||
* Remember screen is LSB at the top, MSB at the bottom of the strip!
|
||||
*/
|
||||
@@ -110,116 +111,118 @@ const uint8_t FONT_12[]={
|
||||
0x00,0x00,0x60,0xE0,0x80,0x00,0x00,0x80,0xE0,0x60,0x00,0x00,0x00,0x00,0x00,0x81,0xE7,0x7E,0x1E,0x07,0x01,0x00,0x00,0x00,//y
|
||||
0x00,0x60,0x60,0x60,0x60,0x60,0xE0,0xE0,0x60,0x20,0x00,0x00,0x00,0x30,0x38,0x3C,0x36,0x33,0x31,0x30,0x30,0x30,0x00,0x00,//z
|
||||
0x00,0x00,0x80,0xC0,0xFC,0x7E,0x07,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x1F,0x3F,0x70,0x60,0x60,0x60,0x00,0x00,//{
|
||||
0x00,0x00,0x00,0x00,0x00,0xBF,0xBF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,//|
|
||||
0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,//|
|
||||
0x00,0x00,0x03,0x03,0x03,0x07,0x7E,0xFC,0xC0,0x80,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x70,0x3F,0x1F,0x01,0x00,0x00,0x00,//}
|
||||
0x00,0x10,0x18,0x0C,0x04,0x0C,0x18,0x10,0x18,0x0C,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//~
|
||||
0x00,0x00,0x80,0xC0,0x60,0x30,0x30,0x60,0xC0,0x80,0x00,0x00,0x00,0x0F,0x0F,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0F,0x0F,0x00,//Up triangle
|
||||
|
||||
/*Start extended Latin range*/
|
||||
//V96
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//A0 (blank)
|
||||
0x00,0x00,0x00,0x00,0x80,0xF3,0xF3,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x3F,0x3F,0x0F,0x00,0x00,0x00,0x00,//A1//161
|
||||
0x00,0x00,0xE0,0xF0,0x38,0xFE,0xFE,0x18,0x38,0x30,0x00,0x00,0x00,0x00,0x03,0x07,0x0E,0x3F,0x3F,0x0C,0x0E,0x06,0x00,0x00,//A2//162
|
||||
0x00,0x00,0x00,0x80,0xF8,0xFC,0x8C,0x8C,0x1C,0x18,0x00,0x00,0x00,0x00,0x18,0x1C,0x1F,0x0B,0x18,0x18,0x18,0x18,0x08,0x00,//A3//163
|
||||
0x00,0xF6,0xFE,0x18,0x0C,0x0C,0x0C,0x0C,0x18,0xFE,0xF6,0x00,0x00,0x1B,0x1F,0x06,0x0C,0x0C,0x0C,0x0C,0x06,0x1F,0x1B,0x00,//A4//164
|
||||
0x00,0x03,0x0F,0x3C,0xF0,0xC0,0xC0,0xF0,0x3C,0x0F,0x03,0x00,0x00,0x00,0x0A,0x0A,0x0A,0x3F,0x3F,0x0A,0x0A,0x0A,0x00,0x00,//A5//165
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//A6 (blank)
|
||||
0x00,0x00,0xDC,0xFE,0x22,0x22,0x22,0x22,0xE6,0xC4,0x00,0x00,0x00,0x00,0x08,0x19,0x11,0x11,0x11,0x11,0x1F,0x0E,0x00,0x00,//A7//167
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//A8 (blank)
|
||||
0x00,0xF0,0xF8,0x1C,0xCC,0xEC,0x2C,0x6C,0x4C,0x1C,0xF8,0xF0,0x00,0x07,0x0F,0x1C,0x19,0x1B,0x1A,0x1B,0x19,0x1C,0x0F,0x07,//A9//169
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//AA (blank)
|
||||
0x00,0x80,0xC0,0x60,0x20,0x00,0x80,0xC0,0x60,0x20,0x00,0x00,0x00,0x00,0x01,0x03,0x02,0x00,0x00,0x01,0x03,0x02,0x00,0x00,//AB//171
|
||||
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xF8,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x00,//AC//172
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//AD (blank)
|
||||
0x00,0xF0,0xF8,0x1C,0xEC,0xEC,0xAC,0xEC,0x4C,0x1C,0xF8,0xF0,0x00,0x07,0x0F,0x1C,0x1B,0x1B,0x18,0x1B,0x1B,0x1C,0x0F,0x07,//AE//174
|
||||
0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//AF//175
|
||||
//V96 ---- HALF-PAGE U+00A0-U+00BF (UTF 0xC2A0-0xC2BF) ----
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // c2 a0
|
||||
0x00,0x00,0x00,0x00,0x80,0xF3,0xF3,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x3F,0x3F,0x0F,0x00,0x00,0x00,0x00, // ¡ c2 a1
|
||||
0x00,0x00,0xE0,0xF0,0x38,0xFE,0xFE,0x18,0x38,0x30,0x00,0x00,0x00,0x00,0x03,0x07,0x0E,0x3F,0x3F,0x0C,0x0E,0x06,0x00,0x00, // ¢ c2 a2
|
||||
0x00,0x00,0x00,0x80,0xF8,0xFC,0x8C,0x8C,0x1C,0x18,0x00,0x00,0x00,0x00,0x18,0x1C,0x1F,0x0B,0x18,0x18,0x18,0x18,0x08,0x00, // £ c2 a3
|
||||
0x00,0xF6,0xFE,0x18,0x0C,0x0C,0x0C,0x0C,0x18,0xFE,0xF6,0x00,0x00,0x1B,0x1F,0x06,0x0C,0x0C,0x0C,0x0C,0x06,0x1F,0x1B,0x00, // ¤ c2 a4
|
||||
0x00,0x03,0x0F,0x3C,0xF0,0xC0,0xC0,0xF0,0x3C,0x0F,0x03,0x00,0x00,0x00,0x0A,0x0A,0x0A,0x3F,0x3F,0x0A,0x0A,0x0A,0x00,0x00, // ¥ c2 a5
|
||||
0x00,0x00,0x00,0x00,0x00,0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00, // ¦ c2 a6
|
||||
0x00,0x00,0xDC,0xFE,0x22,0x22,0x22,0x22,0xE6,0xC4,0x00,0x00,0x00,0x00,0x08,0x19,0x11,0x11,0x11,0x11,0x1F,0x0E,0x00,0x00, // § c2 a7
|
||||
0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ¨ c2 a8
|
||||
0x00,0xF0,0xF8,0x1C,0xCC,0xEC,0x2C,0x6C,0x4C,0x1C,0xF8,0xF0,0x00,0x07,0x0F,0x1C,0x19,0x1B,0x1A,0x1B,0x19,0x1C,0x0F,0x07, // © c2 a9
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // c2 aa
|
||||
0x00,0x80,0xC0,0x60,0x20,0x00,0x80,0xC0,0x60,0x20,0x00,0x00,0x00,0x00,0x01,0x03,0x02,0x00,0x00,0x01,0x03,0x02,0x00,0x00, // « c2 ab
|
||||
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xF8,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x00, // ¬ c2 ac
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // c2 ad
|
||||
0x00,0xF0,0xF8,0x1C,0xEC,0xEC,0xAC,0xEC,0x4C,0x1C,0xF8,0xF0,0x00,0x07,0x0F,0x1C,0x1B,0x1B,0x18,0x1B,0x1B,0x1C,0x0F,0x07, // ® c2 ae
|
||||
0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ¯ c2 af
|
||||
//V112
|
||||
0x00,0x00,0x00,0x1E,0x3F,0x33,0x33,0x3F,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//B0//176
|
||||
0x00,0x00,0x00,0xC0,0xC0,0xF0,0xF0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x1B,0x1B,0x18,0x18,0x00,0x00,0x00,//B1//177
|
||||
0x00,0x00,0x19,0x1D,0x15,0x17,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//B2//178
|
||||
0x00,0x00,0x11,0x15,0x15,0x1F,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//B3//179
|
||||
0x00,0x00,0x00,0x00,0x04,0x06,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//B4//180
|
||||
0x00,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x00,0xFF,0xFF,0x0E,0x0C,0x0C,0x0C,0x06,0x0F,0x0F,0x00,0x00,//B5//181
|
||||
0x00,0x38,0x7C,0xC6,0x82,0xFE,0xFE,0x02,0xFE,0xFE,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x3F,0x3F,0x00,0x00,//B6//182
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//B7 (blank)
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//B8 (blank)
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//B9 (blank)
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//BA (blank)
|
||||
0x00,0x20,0x60,0xC0,0x80,0x00,0x20,0x60,0xC0,0x80,0x00,0x00,0x00,0x02,0x03,0x01,0x00,0x00,0x02,0x03,0x01,0x00,0x00,0x00,//BB//187
|
||||
0x00,0x48,0x7C,0x7C,0x40,0x80,0xC0,0x60,0x30,0x10,0x00,0x00,0x00,0x00,0x04,0x06,0x03,0x01,0x06,0x07,0x04,0x1F,0x1F,0x00,//BC//188
|
||||
0x00,0x48,0x7C,0x7C,0x40,0x80,0xC0,0x60,0x30,0x10,0x00,0x00,0x00,0x00,0x04,0x06,0x03,0x01,0x00,0x19,0x1D,0x17,0x12,0x00,//BD//189
|
||||
0x00,0x44,0x54,0x7C,0x28,0x80,0xC0,0x60,0x30,0x10,0x00,0x00,0x00,0x00,0x04,0x06,0x03,0x01,0x06,0x07,0x04,0x1F,0x1F,0x00,//BE//190
|
||||
0x00,0x00,0x00,0x80,0xC0,0xFB,0x7B,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x1F,0x3B,0x31,0x30,0x30,0x30,0x38,0x1E,0x0E,0x00,//BF//191
|
||||
//V128
|
||||
0x00,0x00,0x00,0x80,0xE1,0x7B,0x7E,0xE4,0x80,0x00,0x00,0x00,0x00,0x38,0x3E,0x0F,0x0D,0x0C,0x0C,0x0D,0x0F,0x3E,0x38,0x00,//C0//192
|
||||
0x00,0x00,0x00,0x80,0xE4,0x7E,0x7B,0xE1,0x80,0x00,0x00,0x00,0x00,0x38,0x3E,0x0F,0x0D,0x0C,0x0C,0x0D,0x0F,0x3E,0x38,0x00,//C1//193
|
||||
0x00,0x00,0x00,0x84,0xE6,0x7B,0x7B,0xE6,0x84,0x00,0x00,0x00,0x00,0x38,0x3E,0x0F,0x0D,0x0C,0x0C,0x0D,0x0F,0x3E,0x38,0x00,//C2//194
|
||||
0x00,0x00,0x00,0x82,0xE3,0x79,0x7B,0xE2,0x83,0x01,0x00,0x00,0x00,0x38,0x3E,0x0F,0x0D,0x0C,0x0C,0x0D,0x0F,0x3E,0x38,0x00,//C3//195
|
||||
0x00,0x00,0x00,0x83,0xE3,0x78,0x78,0xE3,0x83,0x00,0x00,0x00,0x00,0x38,0x3E,0x0F,0x0D,0x0C,0x0C,0x0D,0x0F,0x3E,0x38,0x00,//C4//196
|
||||
0x00,0x00,0x00,0x80,0xE2,0x75,0x75,0xE2,0x80,0x00,0x00,0x00,0x00,0x38,0x3E,0x0F,0x0D,0x0C,0x0C,0x0D,0x0F,0x3E,0x38,0x00,//C5//197
|
||||
0x00,0x00,0x80,0xF0,0x7C,0x1F,0xFF,0xFF,0xC3,0xC3,0x03,0x00,0x00,0x3C,0x3F,0x07,0x06,0x06,0x3F,0x3F,0x30,0x30,0x30,0x00,//C6//198
|
||||
0x00,0xF0,0xFC,0x0E,0x07,0x03,0x03,0x03,0x07,0x1E,0x1C,0x00,0x00,0x01,0x07,0xCE,0xDC,0xF8,0xF8,0x18,0x1C,0x0E,0x06,0x00,//C7//199
|
||||
0x00,0xF8,0xF8,0x99,0x9B,0x9E,0x9C,0x98,0x98,0x18,0x18,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00,//C8//200
|
||||
0x00,0xF8,0xF8,0x98,0x98,0x9C,0x9E,0x9B,0x99,0x18,0x18,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00,//C9//201
|
||||
0x00,0xF8,0xF8,0x9C,0x9E,0x9B,0x9B,0x9E,0x9C,0x18,0x18,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00,//CA//202
|
||||
0x00,0xF8,0xF8,0x9B,0x9B,0x98,0x98,0x9B,0x9B,0x18,0x18,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00,//CB//203
|
||||
0x00,0x00,0x00,0x19,0x1B,0xFE,0xFC,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00,//CC//204
|
||||
0x00,0x00,0x00,0x18,0x18,0xFC,0xFE,0x1B,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00,//CD//205
|
||||
0x00,0x00,0x00,0x1C,0x1E,0xFB,0xFB,0x1E,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00,//CE//206
|
||||
0x00,0x00,0x00,0x1B,0x1B,0xF8,0xF8,0x1B,0x1B,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00,//CF//207
|
||||
0x00,0x00,0x00,0x1E,0x3F,0x33,0x33,0x3F,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ° c2 b0
|
||||
0x00,0x00,0x00,0xC0,0xC0,0xF0,0xF0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x1B,0x1B,0x18,0x18,0x00,0x00,0x00, // ± c2 b1
|
||||
0x00,0x00,0x19,0x1D,0x15,0x17,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ² c2 b2
|
||||
0x00,0x00,0x11,0x15,0x15,0x1F,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ³ c2 b3
|
||||
0x00,0x00,0x00,0x00,0x04,0x06,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ´ c2 b4
|
||||
0x00,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x00,0xFF,0xFF,0x0E,0x0C,0x0C,0x0C,0x06,0x0F,0x0F,0x00,0x00, // µ c2 b5
|
||||
0x00,0x38,0x7C,0xC6,0x82,0xFE,0xFE,0x02,0xFE,0xFE,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x3F,0x3F,0x00,0x00, // ¶ c2 b6
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // c2 b7
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // c2 b8
|
||||
0x00,0x00,0x12,0x1F,0x1F,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ¹ c2 b9
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // c2 ba
|
||||
0x00,0x20,0x60,0xC0,0x80,0x00,0x20,0x60,0xC0,0x80,0x00,0x00,0x00,0x02,0x03,0x01,0x00,0x00,0x02,0x03,0x01,0x00,0x00,0x00, // » c2 bb
|
||||
0x00,0x48,0x7C,0x7C,0x40,0x80,0xC0,0x60,0x30,0x10,0x00,0x00,0x00,0x00,0x04,0x06,0x03,0x01,0x06,0x07,0x04,0x1F,0x1F,0x00, // ¼ c2 bc
|
||||
0x00,0x48,0x7C,0x7C,0x40,0x80,0xC0,0x60,0x30,0x10,0x00,0x00,0x00,0x00,0x04,0x06,0x03,0x01,0x00,0x19,0x1D,0x17,0x12,0x00, // ½ c2 bd
|
||||
0x00,0x44,0x54,0x7C,0x28,0x80,0xC0,0x60,0x30,0x10,0x00,0x00,0x00,0x00,0x04,0x06,0x03,0x01,0x06,0x07,0x04,0x1F,0x1F,0x00, // ¾ c2 be
|
||||
0x00,0x00,0x00,0x80,0xC0,0xFB,0x7B,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x1F,0x3B,0x31,0x30,0x30,0x30,0x38,0x1E,0x0E,0x00, // ¿ c2 bf
|
||||
|
||||
//V128 ---- PAGE U+00C0-U+00FF (UTF 0xC380-0xC3BF) ----
|
||||
0x00,0x00,0x00,0x80,0xE1,0x7B,0x7E,0xE4,0x80,0x00,0x00,0x00,0x00,0x38,0x3E,0x0F,0x0D,0x0C,0x0C,0x0D,0x0F,0x3E,0x38,0x00, // À c3 80
|
||||
0x00,0x00,0x00,0x80,0xE4,0x7E,0x7B,0xE1,0x80,0x00,0x00,0x00,0x00,0x38,0x3E,0x0F,0x0D,0x0C,0x0C,0x0D,0x0F,0x3E,0x38,0x00, // Á c3 81
|
||||
0x00,0x00,0x00,0x84,0xE6,0x7B,0x7B,0xE6,0x84,0x00,0x00,0x00,0x00,0x38,0x3E,0x0F,0x0D,0x0C,0x0C,0x0D,0x0F,0x3E,0x38,0x00, // Â c3 82
|
||||
0x00,0x00,0x00,0x82,0xE3,0x79,0x7B,0xE2,0x83,0x01,0x00,0x00,0x00,0x38,0x3E,0x0F,0x0D,0x0C,0x0C,0x0D,0x0F,0x3E,0x38,0x00, // Ã c3 83
|
||||
0x00,0x00,0x00,0x83,0xE3,0x78,0x78,0xE3,0x83,0x00,0x00,0x00,0x00,0x38,0x3E,0x0F,0x0D,0x0C,0x0C,0x0D,0x0F,0x3E,0x38,0x00, // Ä c3 84
|
||||
0x00,0x00,0x00,0x80,0xE2,0x75,0x75,0xE2,0x80,0x00,0x00,0x00,0x00,0x38,0x3E,0x0F,0x0D,0x0C,0x0C,0x0D,0x0F,0x3E,0x38,0x00, // Å c3 85
|
||||
0x00,0x00,0x80,0xF0,0x7C,0x1F,0xFF,0xFF,0xC3,0xC3,0x03,0x00,0x00,0x3C,0x3F,0x07,0x06,0x06,0x3F,0x3F,0x30,0x30,0x30,0x00, // Æ c3 86
|
||||
0x00,0xF0,0xFC,0x0E,0x07,0x03,0x03,0x03,0x07,0x1E,0x1C,0x00,0x00,0x01,0x07,0xCE,0xDC,0xF8,0xF8,0x18,0x1C,0x0E,0x06,0x00, // Ç c3 87
|
||||
0x00,0xF8,0xF8,0x99,0x9B,0x9E,0x9C,0x98,0x98,0x18,0x18,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00, // È c3 88
|
||||
0x00,0xF8,0xF8,0x98,0x98,0x9C,0x9E,0x9B,0x99,0x18,0x18,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00, // É c3 89
|
||||
0x00,0xF8,0xF8,0x9C,0x9E,0x9B,0x9B,0x9E,0x9C,0x18,0x18,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00, // Ê c3 8a
|
||||
0x00,0xF8,0xF8,0x9B,0x9B,0x98,0x98,0x9B,0x9B,0x18,0x18,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00, // Ë c3 8b
|
||||
0x00,0x00,0x00,0x19,0x1B,0xFE,0xFC,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // Ì c3 8c
|
||||
0x00,0x00,0x00,0x18,0x18,0xFC,0xFE,0x1B,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // Í c3 8d
|
||||
0x00,0x00,0x00,0x1C,0x1E,0xFB,0xFB,0x1E,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // Î c3 8e
|
||||
0x00,0x00,0x00,0x1B,0x1B,0xF8,0xF8,0x1B,0x1B,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // Ï c3 8f
|
||||
//V144
|
||||
0x00,0xC0,0xFF,0xFF,0xC3,0x03,0x03,0x07,0x0E,0xFC,0xF0,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00,//D0//208
|
||||
0x00,0xF8,0xF8,0x72,0xE3,0xC1,0x83,0x02,0x03,0xF9,0xF8,0x00,0x00,0x3F,0x3F,0x00,0x00,0x01,0x03,0x07,0x0E,0x3F,0x3F,0x00,//D1//209
|
||||
0x00,0xE0,0xF0,0x39,0x1B,0x1E,0x1C,0x18,0x38,0xF0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00,//D2//210
|
||||
0x00,0xE0,0xF0,0x38,0x18,0x1C,0x1E,0x1B,0x39,0xF0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00,//D3//211
|
||||
0x00,0xE0,0xF0,0x3C,0x1E,0x1B,0x1B,0x1E,0x3C,0xF0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00,//D4//212
|
||||
0x00,0xE0,0xF0,0x3A,0x1B,0x19,0x1B,0x1A,0x3B,0xF1,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00,//D5//213
|
||||
0x00,0xE0,0xF0,0x3B,0x1B,0x18,0x18,0x1B,0x3B,0xF0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00,//D6//214
|
||||
0x00,0x00,0x10,0x30,0x60,0xC0,0xC0,0x60,0x30,0x10,0x00,0x00,0x00,0x00,0x04,0x06,0x03,0x01,0x01,0x03,0x06,0x04,0x00,0x00,//D7//215
|
||||
0x00,0xF0,0xF8,0x1C,0x0C,0x8C,0xEC,0x7C,0x18,0xFC,0xF4,0x00,0x00,0x2F,0x3F,0x18,0x3E,0x37,0x31,0x30,0x38,0x1F,0x0F,0x00,//D8//216
|
||||
0x00,0xF8,0xF8,0x01,0x03,0x06,0x04,0x00,0x00,0xF8,0xF8,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00,//D9//217
|
||||
0x00,0xF8,0xF8,0x00,0x00,0x04,0x06,0x03,0x01,0xF8,0xF8,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00,//DA//218
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//DB (blank)
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//DC (blank)
|
||||
0x00,0x08,0x18,0x30,0x60,0xC4,0xC6,0x63,0x31,0x18,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,//DD//221
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//DE (blank)
|
||||
0x00,0x00,0xC0,0xE0,0x30,0x10,0x10,0x30,0xE0,0xC0,0x00,0x00,0x00,0x00,0xFF,0xFF,0x21,0x21,0x21,0x33,0x3F,0x1E,0x00,0x00,//DF//223
|
||||
0x00,0xC0,0xFF,0xFF,0xC3,0x03,0x03,0x07,0x0E,0xFC,0xF0,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00, // Ð c3 90
|
||||
0x00,0xF8,0xF8,0x72,0xE3,0xC1,0x83,0x02,0x03,0xF9,0xF8,0x00,0x00,0x3F,0x3F,0x00,0x00,0x01,0x03,0x07,0x0E,0x3F,0x3F,0x00, // Ñ c3 91
|
||||
0x00,0xE0,0xF0,0x39,0x1B,0x1E,0x1C,0x18,0x38,0xF0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // Ò c3 92
|
||||
0x00,0xE0,0xF0,0x38,0x18,0x1C,0x1E,0x1B,0x39,0xF0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // Ó c3 93
|
||||
0x00,0xE0,0xF0,0x3C,0x1E,0x1B,0x1B,0x1E,0x3C,0xF0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // Ô c3 94
|
||||
0x00,0xE0,0xF0,0x3A,0x1B,0x19,0x1B,0x1A,0x3B,0xF1,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // Õ c3 95
|
||||
0x00,0xE0,0xF0,0x3B,0x1B,0x18,0x18,0x1B,0x3B,0xF0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // Ö c3 96
|
||||
0x00,0x00,0x10,0x30,0x60,0xC0,0xC0,0x60,0x30,0x10,0x00,0x00,0x00,0x00,0x04,0x06,0x03,0x01,0x01,0x03,0x06,0x04,0x00,0x00, // × c3 97
|
||||
0x00,0xF0,0xF8,0x1C,0x0C,0x8C,0xEC,0x7C,0x18,0xFC,0xF4,0x00,0x00,0x2F,0x3F,0x18,0x3E,0x37,0x31,0x30,0x38,0x1F,0x0F,0x00, // × c3 98
|
||||
0x00,0xF8,0xF8,0x01,0x03,0x06,0x04,0x00,0x00,0xF8,0xF8,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00, // Ù c3 99
|
||||
0x00,0xF8,0xF8,0x00,0x00,0x04,0x06,0x03,0x01,0xF8,0xF8,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00, // Ú c3 9a
|
||||
0x00,0xF8,0xF8,0x04,0x06,0x03,0x03,0x06,0x04,0xF8,0xF8,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00, // Û c3 9b
|
||||
0x00,0xF8,0xF8,0x03,0x03,0x00,0x00,0x03,0x03,0xF8,0xF8,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00, // Ü c3 9c
|
||||
0x00,0x08,0x18,0x30,0x60,0xC4,0xC6,0x63,0x31,0x18,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00, // Ý c3 9d
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // c3 9e
|
||||
0x00,0x00,0xC0,0xE0,0x30,0x10,0x10,0x30,0xE0,0xC0,0x00,0x00,0x00,0x00,0xFF,0xFF,0x21,0x21,0x21,0x33,0x3F,0x1E,0x00,0x00, // ß c3 9f
|
||||
//V160
|
||||
0x00,0x00,0x40,0x60,0x62,0x66,0x6C,0x68,0x60,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00,//E0//224
|
||||
0x00,0x00,0x40,0x60,0x68,0x6C,0x66,0x62,0x60,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00,//E1//225
|
||||
0x00,0x00,0x40,0x68,0x6C,0x66,0x66,0x6C,0x68,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00,//E2//226
|
||||
0x00,0x00,0x40,0x68,0x6C,0x64,0x6C,0x68,0x6C,0xE4,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00,//E3//227
|
||||
0x00,0x00,0x40,0x6C,0x6C,0x60,0x60,0x6C,0x6C,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00,//E4//228
|
||||
0x00,0x00,0x40,0x60,0x64,0x6A,0x6A,0x64,0x60,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00,//E5//229
|
||||
0x00,0x80,0xC0,0x40,0x40,0xC0,0x80,0x40,0x40,0xC0,0x80,0x00,0x00,0x1C,0x3E,0x22,0x22,0x1F,0x3F,0x22,0x22,0x33,0x11,0x00,//E6//230
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x0F,0x1F,0xB8,0xB0,0xF0,0xF0,0x30,0x38,0x18,0x08,0x00,//E7//231
|
||||
0x00,0x80,0xC0,0xE0,0x62,0x66,0x6C,0x68,0x60,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x33,0x33,0x33,0x33,0x33,0x33,0x13,0x03,0x00,//E8//232
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x68,0x6C,0x66,0x62,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x3B,0x33,0x33,0x33,0x33,0x33,0x13,0x03,0x00,//E9//233
|
||||
0x00,0x80,0xC0,0xE8,0x6C,0x66,0x66,0x6C,0x68,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x33,0x33,0x33,0x33,0x33,0x33,0x13,0x03,0x00,//EA//234
|
||||
0x00,0x80,0xC0,0xEC,0x6C,0x60,0x60,0x6C,0x6C,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x33,0x33,0x33,0x33,0x33,0x33,0x13,0x03,0x00,//EB//235
|
||||
0x00,0x00,0x00,0x00,0x62,0xE6,0xEC,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00,//EC//236
|
||||
0x00,0x00,0x00,0x00,0x68,0xEC,0xE6,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00,//ED//237
|
||||
0x00,0x00,0x00,0x08,0x6C,0xE6,0xE6,0x0C,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00,//EE//238
|
||||
0x00,0x00,0x00,0x0C,0x6C,0xE0,0xEC,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00,//EF//239
|
||||
0x00,0x00,0x40,0x60,0x62,0x66,0x6C,0x68,0x60,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00, // à c3 a0
|
||||
0x00,0x00,0x40,0x60,0x68,0x6C,0x66,0x62,0x60,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00, // á c3 a1
|
||||
0x00,0x00,0x40,0x68,0x6C,0x66,0x66,0x6C,0x68,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00, // â c3 a2
|
||||
0x00,0x00,0x40,0x68,0x6C,0x64,0x6C,0x68,0x6C,0xE4,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00, // ã c3 a3
|
||||
0x00,0x00,0x40,0x6C,0x6C,0x60,0x60,0x6C,0x6C,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00, // ä c3 a4
|
||||
0x00,0x00,0x40,0x60,0x64,0x6A,0x6A,0x64,0x60,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00, // å c3 a5
|
||||
0x00,0x80,0xC0,0x40,0x40,0xC0,0x80,0x40,0x40,0xC0,0x80,0x00,0x00,0x1C,0x3E,0x22,0x22,0x1F,0x3F,0x22,0x22,0x33,0x11,0x00, // æ c3 a6
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x0F,0x1F,0xB8,0xB0,0xF0,0xF0,0x30,0x38,0x18,0x08,0x00, // ç c3 a7
|
||||
0x00,0x80,0xC0,0xE0,0x62,0x66,0x6C,0x68,0x60,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x33,0x33,0x33,0x33,0x33,0x33,0x13,0x03,0x00, // è c3 a8
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x68,0x6C,0x66,0x62,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x3B,0x33,0x33,0x33,0x33,0x33,0x13,0x03,0x00, // é c3 a9
|
||||
0x00,0x80,0xC0,0xE8,0x6C,0x66,0x66,0x6C,0x68,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x33,0x33,0x33,0x33,0x33,0x33,0x13,0x03,0x00, // ê c3 aa
|
||||
0x00,0x80,0xC0,0xEC,0x6C,0x60,0x60,0x6C,0x6C,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x33,0x33,0x33,0x33,0x33,0x33,0x13,0x03,0x00, // ë c3 ab
|
||||
0x00,0x00,0x00,0x00,0x62,0xE6,0xEC,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // ì c3 ac
|
||||
0x00,0x00,0x00,0x00,0x68,0xEC,0xE6,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // í c3 ad
|
||||
0x00,0x00,0x00,0x08,0x6C,0xE6,0xE6,0x0C,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // î c3 ae
|
||||
0x00,0x00,0x00,0x0C,0x6C,0xE0,0xEC,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // ï c3 af
|
||||
//V176
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//F0 (blank)
|
||||
0x00,0x00,0xE0,0xE8,0x6C,0x64,0x6C,0x68,0xEC,0xC4,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,//F1//241
|
||||
0x00,0x80,0xC0,0xE0,0x62,0x66,0x6C,0x68,0xE0,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00,//F2//242
|
||||
0x00,0x80,0xC0,0xE0,0x68,0x6C,0x66,0x62,0xE0,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00,//F3//243
|
||||
0x00,0x80,0xC0,0xE8,0x6C,0x66,0x66,0x6C,0xE8,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00,//F4//244
|
||||
0x00,0x80,0xC8,0xEC,0x64,0x6C,0x68,0x6C,0xE4,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00,//F5//245
|
||||
0x00,0x80,0xC0,0xEC,0x6C,0x60,0x60,0x6C,0xEC,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00,//F6//246
|
||||
0x00,0x00,0x80,0x80,0x80,0xB0,0xB0,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x0D,0x0D,0x01,0x01,0x01,0x00,0x00,//F7//247
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0xE0,0xC0,0xE0,0xA0,0x00,0x00,0x2F,0x3F,0x18,0x3C,0x36,0x33,0x31,0x38,0x1F,0x0F,0x00,//F8//248
|
||||
0x00,0xE0,0xE0,0x00,0x02,0x06,0x0C,0x08,0x00,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00,//F9//249
|
||||
0x00,0xE0,0xE0,0x00,0x08,0x0C,0x06,0x02,0x00,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00,//FA//250
|
||||
0x00,0xE0,0xE0,0x08,0x0C,0x06,0x06,0x0C,0x08,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00,//FB//251
|
||||
0x00,0xE0,0xE0,0x0C,0x0C,0x00,0x00,0x0C,0x0C,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00,//FC//252
|
||||
0x00,0x00,0x60,0xE0,0x80,0x10,0x18,0x8C,0xE4,0x60,0x00,0x00,0x00,0x00,0x00,0x81,0xE7,0x7E,0x1E,0x07,0x01,0x00,0x00,0x00,//FD//253
|
||||
0x00,0x00,0x03,0xFF,0xFF,0x1B,0x18,0x18,0xF8,0xF0,0x00,0x00,0x00,0x00,0x30,0x3F,0x3F,0x36,0x06,0x06,0x07,0x03,0x00,0x00,//FE//254
|
||||
0x00,0x00,0x60,0xEC,0x8C,0x00,0x00,0x8C,0xEC,0x60,0x00,0x00,0x00,0x00,0x00,0x81,0xE7,0x7E,0x1E,0x07,0x01,0x00,0x00,0x00,//FF//255
|
||||
//V192
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // c3 b0
|
||||
0x00,0x00,0xE0,0xE8,0x6C,0x64,0x6C,0x68,0xEC,0xC4,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00, // ñ c3 b1
|
||||
0x00,0x80,0xC0,0xE0,0x62,0x66,0x6C,0x68,0xE0,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // ò c3 b2
|
||||
0x00,0x80,0xC0,0xE0,0x68,0x6C,0x66,0x62,0xE0,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // ó c3 b3
|
||||
0x00,0x80,0xC0,0xE8,0x6C,0x66,0x66,0x6C,0xE8,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // ô c3 b4
|
||||
0x00,0x80,0xC8,0xEC,0x64,0x6C,0x68,0x6C,0xE4,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // õ c3 b5
|
||||
0x00,0x80,0xC0,0xEC,0x6C,0x60,0x60,0x6C,0xEC,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // ö c3 b6
|
||||
0x00,0x00,0x80,0x80,0x80,0xB0,0xB0,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x0D,0x0D,0x01,0x01,0x01,0x00,0x00, // ÷ c3 b7
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0xE0,0xC0,0xE0,0xA0,0x00,0x00,0x2F,0x3F,0x18,0x3C,0x36,0x33,0x31,0x38,0x1F,0x0F,0x00, // ø c3 b8
|
||||
0x00,0xE0,0xE0,0x00,0x02,0x06,0x0C,0x08,0x00,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00, // ù c3 b9
|
||||
0x00,0xE0,0xE0,0x00,0x08,0x0C,0x06,0x02,0x00,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00, // ú c3 bA
|
||||
0x00,0xE0,0xE0,0x08,0x0C,0x06,0x06,0x0C,0x08,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00, // û c3 bB
|
||||
0x00,0xE0,0xE0,0x0C,0x0C,0x00,0x00,0x0C,0x0C,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00, // ü c3 bC
|
||||
0x00,0x00,0x60,0xE0,0x80,0x10,0x18,0x8C,0xE4,0x60,0x00,0x00,0x00,0x00,0x00,0x81,0xE7,0x7E,0x1E,0x07,0x01,0x00,0x00,0x00, // ý c3 bD
|
||||
0x00,0x00,0x03,0xFF,0xFF,0x1B,0x18,0x18,0xF8,0xF0,0x00,0x00,0x00,0x00,0x30,0x3F,0x3F,0x36,0x06,0x06,0x07,0x03,0x00,0x00, // þ c3 bE
|
||||
0x00,0x00,0x60,0xEC,0x8C,0x00,0x00,0x8C,0xEC,0x60,0x00,0x00,0x00,0x00,0x00,0x81,0xE7,0x7E,0x1E,0x07,0x01,0x00,0x00,0x00, // ÿ c3 bF
|
||||
#ifdef LANG_RU
|
||||
/* Cyrillic Glyphs */
|
||||
//V192 ---- PAGE U+0400-U+043F (UTF 0xD080-0xD0BF) ----
|
||||
0x00,0xFC,0xFC,0x8D,0x8F,0x8E,0x8C,0x8C,0x8C,0x0C,0x0C,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00, // Ѐ d0 80
|
||||
0x00,0xFE,0xFE,0xC7,0xC7,0xC6,0xC6,0xC7,0xC7,0x06,0x06,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00, // Ё d0 81
|
||||
0x00,0x03,0xFF,0xFF,0x83,0xC3,0xC3,0xC3,0xC0,0x80,0x00,0x00,0x00,0x00,0x3F,0x3F,0x01,0x00,0x30,0x30,0x39,0x1F,0x0F,0x00, // Ђ d0 82
|
||||
@@ -287,7 +290,8 @@ const uint8_t FONT_12[]={
|
||||
0x00,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x03,0x03,0x03,0x03,0x03,0x03,0x3F,0x3F,0x00, // н d0 bd
|
||||
0x00,0xC0,0xE0,0x70,0x30,0x30,0x30,0x30,0x70,0xE0,0xC0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // о d0 be
|
||||
0x00,0xF0,0xF0,0x30,0x30,0x30,0x30,0x30,0x30,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00, // п d0 bf
|
||||
//V256
|
||||
|
||||
//V256 ---- HALF-PAGE U+0440-U+045F (UTF 0xD180-0xD1BF) ----
|
||||
0x00,0xF0,0xF0,0x30,0x30,0x30,0x30,0x30,0x70,0xE0,0xC0,0x00,0x00,0xFF,0xFF,0x0C,0x0C,0x0C,0x0C,0x0C,0x0E,0x07,0x03,0x00, // р d1 80
|
||||
0x00,0xC0,0xE0,0x70,0x30,0x30,0x30,0x30,0x70,0x60,0x40,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x18,0x08,0x00, // с d1 81
|
||||
0x00,0x30,0x30,0x30,0x30,0xF0,0xF0,0x30,0x30,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00, // т d1 82
|
||||
@@ -321,6 +325,146 @@ const uint8_t FONT_12[]={
|
||||
0x00,0xF0,0xF0,0x00,0x06,0x0C,0x88,0xC0,0xE0,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x1C,0x0E,0x07,0x03,0x01,0x00,0x3F,0x3F,0x00, // ѝ d1 9d
|
||||
0x00,0x30,0xF0,0xC0,0x04,0x08,0x08,0x04,0xC0,0xF0,0x30,0x00,0x00,0x60,0xE0,0xC3,0xE7,0x7C,0x3C,0x0F,0x03,0x00,0x00,0x00, // ў d1 9e
|
||||
0x00,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x30,0x30,0xF0,0xF0,0x30,0x30,0x3F,0x3F,0x00, // џ d1 9f
|
||||
#else
|
||||
/* U+0100 to ... Latin Extended-A */
|
||||
//V192 ---- PAGE U+0100-U+013F (UTF 0xC480-0xC4BF) ----
|
||||
0x00,0x00,0x00,0xE0,0xF9,0x1D,0x1D,0xF9,0xE0,0x00,0x00,0x00,0x00,0x38,0x3F,0x07,0x06,0x06,0x06,0x06,0x07,0x3F,0x38,0x00, // Ā c4 80
|
||||
0x00,0x00,0x40,0x60,0x68,0x68,0x68,0x68,0x68,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00, // ā c4 81
|
||||
0x00,0x00,0x00,0xE0,0xF9,0x1A,0x1A,0xF9,0xE0,0x00,0x00,0x00,0x00,0x38,0x3F,0x07,0x06,0x06,0x06,0x06,0x07,0x3F,0x38,0x00, // Ă c4 82
|
||||
0x00,0x00,0x40,0x60,0x64,0x68,0x68,0x68,0x64,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00, // ă c4 83
|
||||
0x00,0x00,0x00,0xE0,0xFC,0x1F,0x1F,0xFC,0xE0,0x00,0x00,0x00,0x00,0x38,0x3F,0x07,0x06,0x06,0x06,0x06,0x67,0xBF,0xB8,0x00, // Ą c4 84
|
||||
0x00,0x00,0x40,0x60,0x60,0x60,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x73,0xBF,0xBF,0x00, // ą c4 85
|
||||
0x00,0x80,0xE0,0x70,0x38,0x18,0x1A,0x1B,0x39,0x70,0x60,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x30,0x38,0x1C,0x0C,0x00, // Ć c4 86
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x68,0x6C,0x64,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x30,0x18,0x08,0x00, // ć c4 87
|
||||
0x00,0x80,0xE0,0x70,0x3A,0x1B,0x19,0x1B,0x3A,0x70,0x60,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x30,0x38,0x1C,0x0C,0x00, // Ĉ c4 88
|
||||
0x00,0x80,0xC0,0xE0,0x68,0x6C,0x64,0x6C,0x68,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x30,0x18,0x08,0x00, // ĉ c4 89
|
||||
0x00,0x80,0xE0,0x70,0x38,0x18,0x1A,0x18,0x38,0x70,0x60,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x30,0x38,0x1C,0x0C,0x00, // Ċ c4 8a
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x68,0x60,0x60,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x30,0x18,0x08,0x00, // ċ c4 8b
|
||||
0x00,0x80,0xE0,0x70,0x39,0x1B,0x1A,0x1B,0x39,0x70,0x60,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x30,0x38,0x1C,0x0C,0x00, // Č c4 8c
|
||||
0x00,0x80,0xC0,0xE0,0x64,0x6C,0x68,0x6C,0x64,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x30,0x18,0x08,0x00, // č c4 8d
|
||||
0x00,0xF8,0xF8,0x19,0x1B,0x1A,0x1B,0x39,0x70,0xE0,0x80,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00, // Ď c4 8e
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0xE0,0xFF,0xFF,0x00,0x05,0x03,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x3F,0x3F,0x00,0x00,0x00, // ď c4 8f
|
||||
//V208
|
||||
0xC0,0xFF,0xFF,0xC3,0xC3,0x03,0x03,0x07,0x0E,0xFC,0xF0,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00, // Đ c4 90
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0xE4,0xC4,0xFF,0xFF,0x04,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x30,0x3F,0x3F,0x00, // đ c4 91
|
||||
0x00,0xFC,0xFC,0x8C,0x8D,0x8D,0x8D,0x8D,0x8C,0x0C,0x0C,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00, // Ē c4 92
|
||||
0x00,0x80,0xC0,0xE0,0x68,0x68,0x68,0x68,0x68,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x3B,0x33,0x33,0x33,0x33,0x33,0x13,0x01,0x00, // ē c4 93
|
||||
0x00,0xF8,0xF8,0x98,0x99,0x9A,0x9A,0x99,0x98,0x18,0x18,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00, // Ĕ c4 94
|
||||
0x00,0x80,0xC0,0xE0,0x64,0x68,0x68,0x68,0x64,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x3B,0x33,0x33,0x33,0x33,0x33,0x13,0x01,0x00, // ĕ c4 95
|
||||
0x00,0xF8,0xF8,0x98,0x98,0x98,0x9A,0x98,0x98,0x18,0x18,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00, // Ė c4 96
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x68,0x60,0x60,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x3B,0x33,0x33,0x33,0x33,0x33,0x13,0x01,0x00, // ė c4 97
|
||||
0x00,0xFF,0xFF,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0x03,0x03,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x70,0xB0,0xB0,0x00, // Ę c4 98
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0x60,0x60,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x3B,0x33,0x33,0x73,0xB3,0xB3,0x13,0x01,0x00, // ę c4 99
|
||||
0x00,0xF8,0xF8,0x98,0x99,0x9B,0x9A,0x9B,0x99,0x18,0x18,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00, // Ě c4 9a
|
||||
0x00,0x80,0xC0,0xE0,0x64,0x6C,0x68,0x6C,0x64,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x3B,0x33,0x33,0x33,0x33,0x33,0x13,0x01,0x00, // ě c4 9b
|
||||
0x00,0x80,0xE0,0x70,0x1A,0x1B,0x19,0x1B,0x1A,0x38,0x30,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x33,0x33,0x33,0x3F,0x3F,0x00, // Ĝ c4 9c
|
||||
0x00,0x80,0xC0,0xE0,0x68,0x6C,0x64,0x6C,0x68,0xE0,0xE0,0x00,0x00,0x03,0xC7,0xCE,0xCC,0xCC,0xCC,0xCC,0xE6,0x7F,0x3F,0x00, // ĝ c4 9d
|
||||
0x00,0x80,0xE0,0x70,0x1A,0x19,0x19,0x19,0x1A,0x38,0x30,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x33,0x33,0x33,0x3F,0x3F,0x00, // Ğ c4 9e
|
||||
0x00,0x80,0xC0,0xE0,0x68,0x64,0x64,0x64,0x68,0xE0,0xE0,0x00,0x00,0x03,0xC7,0xCE,0xCC,0xCC,0xCC,0xCC,0xE6,0x7F,0x3F,0x00, // ğ c4 9f
|
||||
//V224 -
|
||||
0x00,0x80,0xE0,0x70,0x18,0x18,0x1A,0x18,0x18,0x38,0x30,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x33,0x33,0x33,0x3F,0x3F,0x00, // Ġ c4 a0
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x68,0x60,0x60,0xE0,0xE0,0x00,0x00,0x03,0xC7,0xCE,0xCC,0xCC,0xCC,0xCC,0xE6,0x7F,0x3F,0x00, // ġ c4 a1
|
||||
0x00,0xF0,0xFC,0x0E,0x07,0x03,0xC3,0xC3,0xC3,0xC7,0xC6,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0xB0,0x70,0x30,0x3F,0x3F,0x00, // Ģ c4 a2
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x6C,0x6A,0x60,0xE0,0xE0,0x00,0x00,0x03,0xC7,0xCE,0xCC,0xCC,0xCC,0xCC,0xE6,0x7F,0x3F,0x00, // ģ c4 a3
|
||||
0x00,0xFC,0xFC,0x80,0x82,0x81,0x81,0x82,0x80,0xFC,0xFC,0x00,0x00,0x3F,0x3F,0x01,0x01,0x01,0x01,0x01,0x01,0x3F,0x3F,0x00, // Ĥ c4 a4
|
||||
0x00,0xFE,0xFE,0xC0,0x62,0x63,0x61,0xE3,0xC2,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00, // ĥ c4 a5
|
||||
0x02,0xFF,0xFF,0xC2,0xC2,0xC2,0xC2,0xC2,0xC2,0xFF,0xFF,0x02,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00, // Ħ c4 a6
|
||||
0x04,0xFF,0xFF,0xC4,0x64,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00, // ħ c4 a7
|
||||
0x00,0x00,0x00,0x1A,0x19,0xFB,0xFB,0x1A,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // Ĩ c4 a8
|
||||
0x00,0x00,0x00,0x08,0x64,0xEC,0xE8,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // ĩ c4 a9
|
||||
0x00,0x00,0x00,0x0C,0x0D,0xFD,0xFD,0x0D,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // Ī c4 aa
|
||||
0x00,0x00,0x00,0x08,0x68,0xE8,0xE8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // ī c4 ab
|
||||
0x00,0x00,0x00,0x18,0x19,0xFA,0xFA,0x19,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // Ĭ c4 ac
|
||||
0x00,0x00,0x00,0x00,0x64,0xE8,0xE8,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // ĭ c4 ad
|
||||
0x00,0x00,0x00,0x03,0x03,0xFF,0xFF,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x7F,0xBF,0xB0,0x30,0x00,0x00,0x00, // Į c4 ae
|
||||
0x00,0x00,0x00,0x00,0x60,0xEC,0xEC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x7F,0xBF,0xB0,0x30,0x00,0x00,0x00, // į c4 af
|
||||
//V240
|
||||
0x00,0x00,0x00,0x18,0x18,0xF8,0xFA,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // İ c4 b0
|
||||
0x00,0x00,0x00,0x00,0x60,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // ı c4 b1
|
||||
0x00,0x03,0xFF,0xFF,0x03,0x00,0x00,0x00,0x03,0xFF,0xFF,0x00,0x00,0x30,0x3F,0x3F,0x30,0x0C,0x1C,0x30,0x30,0x3F,0x1F,0x00, // IJ c4 b2
|
||||
0x00,0x00,0x20,0xEC,0xEC,0x00,0x00,0x20,0xEC,0xEC,0x00,0x00,0x00,0x00,0x30,0x3F,0x3F,0x70,0xC0,0xC0,0xFF,0x7F,0x00,0x00, // ij c4 b3
|
||||
0x00,0x00,0x00,0x00,0x02,0x03,0x01,0x03,0x02,0xF8,0xF8,0x00,0x00,0x0E,0x1E,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00, // Ĵ c4 b4
|
||||
0x00,0x00,0x00,0x00,0x00,0x08,0x6C,0xE4,0xEC,0x08,0x00,0x00,0x00,0x00,0x00,0x60,0xE0,0xC0,0xC0,0xFF,0x7F,0x00,0x00,0x00, // ĵ c4 b5
|
||||
0x00,0xFF,0xFF,0xC0,0xE0,0xF0,0x38,0x1C,0x0E,0x07,0x03,0x00,0x00,0x3F,0x3F,0x00,0x01,0xA3,0x67,0x0E,0x1C,0x38,0x30,0x00, // Ķ c4 b6
|
||||
0x00,0x00,0xFF,0xFF,0x00,0x80,0xC0,0xE0,0x60,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x03,0xA7,0x6F,0x1C,0x38,0x30,0x00,0x00, // ķ c4 b7
|
||||
0x00,0x00,0xE0,0xE0,0x00,0x80,0xC0,0xE0,0x60,0x20,0x00,0x00,0x00,0x00,0x3F,0x3F,0x03,0x07,0x0F,0x1C,0x38,0x30,0x00,0x00, // ĸ c4 b8
|
||||
0x00,0xF8,0xFA,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00, // Ĺ c4 b9
|
||||
0x00,0x00,0x00,0x00,0x18,0xFA,0xFB,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // ĺ c4 ba
|
||||
0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0xB0,0x70,0x30,0x30,0x30,0x30,0x00, // Ļ c4 bb
|
||||
0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0xBF,0x7F,0x30,0x30,0x00,0x00,0x00, // ļ c4 bc
|
||||
0x00,0xFF,0xFF,0x00,0x00,0x05,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00, // Ľ c4 bd
|
||||
0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0x00,0x05,0x03,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // ľ c4 be
|
||||
0x00,0xFF,0xFF,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00, // Ŀ c4 bf
|
||||
|
||||
//V256 ---- PAGE U+0140-U+017F (UTF 0xC580-0xC5BF) ----
|
||||
0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // ŀ c5 80
|
||||
0x80,0xFF,0xFF,0x20,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00, // Ł c5 81
|
||||
0x00,0x00,0x00,0x00,0x83,0xFF,0xFF,0x20,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // ł c5 82
|
||||
0x00,0xFF,0xFF,0x0E,0x38,0xF2,0xC3,0x01,0x00,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x03,0x07,0x1C,0x3F,0x3F,0x00, // Ń c5 83
|
||||
0x00,0x00,0xE0,0xE0,0x60,0x68,0x6C,0x64,0xE0,0xC0,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00, // ń c5 84
|
||||
0x00,0xFF,0xFF,0x0E,0x38,0xF0,0xC0,0x00,0x00,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x00,0x00,0xA0,0x63,0x07,0x1C,0x3F,0x3F,0x00, // Ņ c5 85
|
||||
0x00,0x00,0xE0,0xE0,0x60,0x60,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0xA0,0x60,0x00,0x3F,0x3F,0x00, // ņ c5 86
|
||||
0x00,0xFF,0xFF,0x0E,0x38,0xF1,0xC2,0x01,0x00,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x03,0x07,0x1C,0x3F,0x3F,0x00, // Ň c5 87
|
||||
0x00,0x00,0xE0,0xE0,0x64,0x6C,0x68,0x6C,0xE4,0xC0,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00, // ň c5 88
|
||||
0x00,0x0A,0xE6,0xE0,0x60,0x60,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00, // ʼn c5 89
|
||||
0x00,0x00,0xFF,0xFF,0x06,0x03,0x03,0x03,0x07,0xFE,0xFC,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x20,0x20,0x30,0x1F,0x0F,0x00, // Ŋ c5 8a
|
||||
0x00,0x00,0xE0,0xE0,0x60,0x60,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0xC0,0xC0,0xFF,0x7F,0x00, // ŋ c5 8b
|
||||
0x00,0xC0,0xF0,0x38,0x1D,0x0D,0x0D,0x1D,0x38,0xF0,0xC0,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00, // Ō c5 8c
|
||||
0x00,0x80,0xC0,0xE0,0x68,0x68,0x68,0x68,0xE0,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // ō c5 8d
|
||||
0x00,0x80,0xE0,0x70,0x39,0x1A,0x1A,0x39,0x70,0xE0,0x80,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00, // Ŏ c5 8e
|
||||
0x00,0x80,0xC0,0xE0,0x64,0x68,0x68,0x64,0xE0,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // ŏ c5 8f
|
||||
//V272
|
||||
0x00,0x80,0xE0,0x70,0x3A,0x19,0x1A,0x39,0x70,0xE0,0x80,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00, // Ő c5 90
|
||||
0x00,0x80,0xC0,0xE0,0x68,0x64,0x68,0x64,0xE0,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // ő c5 91
|
||||
0xF0,0xFC,0x0E,0x03,0x03,0x07,0xFE,0xFF,0xC3,0xC3,0xC3,0x00,0x03,0x0F,0x1C,0x30,0x30,0x38,0x1F,0x3F,0x30,0x30,0x30,0x00, // Œ c5 92
|
||||
0x80,0xC0,0xE0,0x60,0x60,0xE0,0xC0,0x60,0x60,0x60,0x40,0x80,0x0F,0x1F,0x38,0x30,0x30,0x1F,0x1F,0x3B,0x33,0x33,0x1B,0x09, // œ c5 93
|
||||
0x00,0xF8,0xF8,0x98,0x98,0x9A,0x9B,0x99,0xF8,0xF0,0x60,0x00,0x00,0x3F,0x3F,0x01,0x01,0x03,0x07,0x0F,0x1D,0x38,0x30,0x00, // Ŕ c5 94
|
||||
0x00,0x00,0xE0,0xE0,0xC0,0x60,0x68,0x6C,0x64,0xE0,0xC0,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ŕ c5 95
|
||||
0x00,0xFF,0xFF,0x83,0x83,0x83,0x83,0x83,0xC7,0xFE,0x7C,0x00,0x00,0x3F,0x3F,0x01,0x01,0xA3,0x67,0x0F,0x1D,0x38,0x30,0x00, // Ŗ c5 96
|
||||
0x00,0x00,0xE0,0xE0,0xC0,0x60,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x00,0x3F,0x3F,0x00,0xA0,0x60,0x00,0x00,0x00,0x00,0x00, // ŗ c5 97
|
||||
0x00,0xF8,0xF8,0x99,0x9B,0x9A,0x9B,0x99,0xF8,0xF0,0x60,0x00,0x00,0x3F,0x3F,0x01,0x01,0x03,0x07,0x0F,0x1D,0x38,0x30,0x00, // Ř c5 98
|
||||
0x00,0x00,0xE0,0xE0,0xC4,0x6C,0x68,0x6C,0x64,0xE0,0xC0,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ř c5 99
|
||||
0x00,0x60,0xF0,0xF8,0x98,0x9A,0x9B,0x99,0x98,0x30,0x20,0x00,0x00,0x0C,0x1C,0x39,0x31,0x31,0x31,0x31,0x3B,0x1F,0x0E,0x00, // Ś c5 9a
|
||||
0x00,0xC0,0xE0,0x60,0x68,0x6C,0x64,0x60,0x40,0x00,0x00,0x00,0x00,0x11,0x33,0x33,0x33,0x33,0x33,0x3F,0x1E,0x00,0x00,0x00, // ś c5 9b
|
||||
0x00,0x60,0xF0,0xF8,0x9A,0x9B,0x99,0x9B,0x9A,0x30,0x20,0x00,0x00,0x0C,0x1C,0x39,0x31,0x31,0x31,0x31,0x3B,0x1F,0x0E,0x00, // Ŝ c5 9c
|
||||
0x00,0xC0,0xE0,0x68,0x6C,0x64,0x6C,0x68,0x40,0x00,0x00,0x00,0x00,0x11,0x33,0x33,0x33,0x33,0x33,0x3F,0x1E,0x00,0x00,0x00, // ŝ c5 9d
|
||||
0x00,0x3C,0x7E,0xE7,0xC3,0xC3,0xC3,0xC3,0xC7,0x8E,0x0C,0x00,0x00,0x0C,0x1C,0x38,0x30,0xB0,0xF0,0x30,0x39,0x1F,0x0F,0x00, // Ş c5 9e
|
||||
0x00,0xC0,0xE0,0x60,0x60,0x60,0x60,0x60,0x40,0x00,0x00,0x00,0x00,0x11,0x33,0x33,0xB3,0xF3,0x33,0x3F,0x1E,0x00,0x00,0x00, // ş c5 9f
|
||||
//V288
|
||||
0x00,0x60,0xF0,0xF8,0x99,0x9B,0x9A,0x9B,0x99,0x30,0x20,0x00,0x00,0x0C,0x1C,0x39,0x31,0x31,0x31,0x31,0x3B,0x1F,0x0E,0x00, // Š c5 a0
|
||||
0x00,0xC0,0xE0,0x64,0x6C,0x68,0x6C,0x64,0x40,0x00,0x00,0x00,0x00,0x11,0x33,0x33,0x33,0x33,0x33,0x3F,0x1E,0x00,0x00,0x00, // š c5 a1
|
||||
0x00,0x00,0x03,0x03,0x03,0xFF,0xFF,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xBF,0xBF,0x60,0x00,0x00,0x00,0x00, // Ţ c5 a2
|
||||
0x00,0x60,0x60,0xFE,0xFE,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x3F,0xB0,0xB0,0xF0,0x30,0x00,0x00,0x00, // ţ c5 a3
|
||||
0x00,0x00,0x18,0x19,0x1B,0xFA,0xFA,0x1B,0x19,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00, // Ť c5 a4
|
||||
0x00,0x60,0x60,0xFE,0xFE,0x60,0x65,0x63,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x3F,0x30,0x30,0x30,0x30,0x00,0x00,0x00, // ť c5 a5
|
||||
0x00,0x00,0x03,0xC3,0xC3,0xFF,0xFF,0xC3,0xC3,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00, // Ŧ c5 a6
|
||||
0x00,0x30,0x30,0xFE,0xFE,0x30,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x1F,0x3F,0x33,0x33,0x30,0x30,0x00,0x00,0x00, // ŧ c5 a7
|
||||
0x00,0xF8,0xF8,0x02,0x01,0x03,0x03,0x02,0x01,0xF8,0xF8,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00, // Ũ c5 a8
|
||||
0x00,0xE0,0xE0,0x08,0x04,0x0C,0x0C,0x08,0x04,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00, // ũ c5 a9
|
||||
0x00,0xFC,0xFC,0x00,0x01,0x01,0x01,0x01,0x00,0xFC,0xFC,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00, // Ū c5 aa
|
||||
0x00,0xE0,0xE0,0x00,0x08,0x08,0x08,0x08,0x00,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00, // ū c5 ab
|
||||
0x00,0xFC,0xFC,0x00,0x01,0x02,0x02,0x01,0x00,0xFC,0xFC,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00, // Ŭ c5 ac
|
||||
0x00,0xE0,0xE0,0x00,0x04,0x08,0x08,0x04,0x00,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00, // ŭ c5 ad
|
||||
0x00,0xF8,0xF8,0x00,0x06,0x09,0x09,0x06,0x00,0xF8,0xF8,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00, // Ů c5 ae
|
||||
0x00,0xE0,0xE0,0x00,0x0C,0x12,0x12,0x0C,0x00,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00, // ů c5 af
|
||||
//V304
|
||||
0x00,0xF8,0xF8,0x00,0x02,0x01,0x02,0x01,0x00,0xF8,0xF8,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00, // Ű c5 b0
|
||||
0x00,0xE0,0xE0,0x00,0x08,0x04,0x08,0x04,0x00,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00, // ű c5 b1
|
||||
0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x07,0x1F,0x38,0x30,0xF0,0xB0,0xB0,0x38,0x1F,0x07,0x00, // Ų c5 b2
|
||||
0x00,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0xF0,0xB0,0xB0,0x18,0x3F,0x3F,0x00, // ų c5 b3
|
||||
0x00,0xFC,0xFC,0x00,0x02,0x81,0x81,0x02,0x00,0xFC,0xFC,0x00,0x00,0x3F,0x3F,0x1C,0x06,0x03,0x03,0x06,0x1C,0x3F,0x3F,0x00, // Ŵ c5 b4
|
||||
0x00,0xE0,0xE0,0x00,0x04,0xE8,0xE8,0x04,0x00,0xE0,0xE0,0x00,0x00,0x07,0x1F,0x38,0x1C,0x0F,0x0F,0x1C,0x38,0x1F,0x07,0x00, // ŵ c5 b5
|
||||
0x00,0x02,0x0E,0x3C,0xF2,0xC1,0xC1,0xF2,0x3C,0x0E,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00, // Ŷ c5 b6
|
||||
0x00,0x00,0x60,0xE0,0x88,0x04,0x04,0x88,0xE0,0x60,0x00,0x00,0x00,0x00,0x00,0x81,0xE7,0x7E,0x1E,0x07,0x01,0x00,0x00,0x00, // ŷ c5 b7
|
||||
0x00,0x02,0x0E,0x3C,0xF1,0xC0,0xC0,0xF1,0x3C,0x0E,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00, // Ÿ c5 b8
|
||||
0x00,0x18,0x18,0x18,0x18,0x1A,0x9B,0xD9,0xF8,0x78,0x38,0x00,0x00,0x30,0x38,0x3C,0x3E,0x37,0x33,0x31,0x30,0x30,0x30,0x00, // Ź c5 b9
|
||||
0x00,0x60,0x60,0x60,0x68,0x6C,0xE4,0xE0,0x60,0x20,0x00,0x00,0x00,0x30,0x38,0x3C,0x36,0x33,0x31,0x30,0x30,0x30,0x00,0x00, // ź c5 ba
|
||||
0x00,0x18,0x18,0x18,0x18,0x18,0x9A,0xD8,0xF8,0x78,0x38,0x00,0x00,0x30,0x38,0x3C,0x3E,0x37,0x33,0x31,0x30,0x30,0x30,0x00, // Ż c5 bb
|
||||
0x00,0x60,0x60,0x60,0x60,0x68,0xE0,0xE0,0x60,0x20,0x00,0x00,0x00,0x30,0x38,0x3C,0x36,0x33,0x31,0x30,0x30,0x30,0x00,0x00, // ż c5 bc
|
||||
0x00,0x18,0x18,0x18,0x19,0x1B,0x9A,0xDB,0xF9,0x78,0x38,0x00,0x00,0x30,0x38,0x3C,0x3E,0x37,0x33,0x31,0x30,0x30,0x30,0x00, // Ž c5 bd
|
||||
0x00,0x60,0x60,0x64,0x6C,0x68,0xEC,0xE4,0x60,0x20,0x00,0x00,0x00,0x30,0x38,0x3C,0x36,0x33,0x31,0x30,0x30,0x30,0x00,0x00, // ž c5 be
|
||||
0x00,0x00,0x00,0x00,0xFC,0xFE,0x06,0x06,0x0E,0x0C,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x00,0x00,0x00,0x00,0x00, // ſ c5 bf
|
||||
#endif
|
||||
};
|
||||
|
||||
const uint8_t ExtraFontChars[] = {
|
||||
@@ -449,7 +593,6 @@ const uint8_t idleScreenBGF[] = {
|
||||
|
||||
|
||||
const unsigned char ASCII6x8[] = {
|
||||
//1*8*6 һ<><D2BB>
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // sp
|
||||
0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, // !
|
||||
0x00, 0x00, 0x07, 0x00, 0x07, 0x00, // "
|
||||
|
||||
Reference in New Issue
Block a user