mirror of
https://github.com/olikraus/U8g2_Arduino.git
synced 2026-07-27 20:06:05 +00:00
2.36.8
This commit is contained in:
@@ -8,5 +8,5 @@ Description: https://github.com/olikraus/u8g2/wiki
|
|||||||
|
|
||||||
Issue Tracker: https://github.com/olikraus/u8g2/issues
|
Issue Tracker: https://github.com/olikraus/u8g2/issues
|
||||||
|
|
||||||
Download (2.36.7): https://github.com/olikraus/U8g2_Arduino/archive/master.zip
|
Download (2.36.8): https://github.com/olikraus/U8g2_Arduino/archive/master.zip
|
||||||
|
|
||||||
|
|||||||
@@ -351,5 +351,7 @@ https://github.com/olikraus/u8g2 ChangeLog
|
|||||||
* SSD1309 128x128 (issue 2546)
|
* SSD1309 128x128 (issue 2546)
|
||||||
* ST7571 128x96 (issue 2575)
|
* ST7571 128x96 (issue 2575)
|
||||||
* SSD1320 128x72 (issue 2565)
|
* SSD1320 128x72 (issue 2565)
|
||||||
|
* Gulim Korean Font (issue 2653)
|
||||||
|
* drawHB function (issue 2656)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1270,6 +1270,7 @@ u8g2_font_unifont_t_tibetan LITERAL1
|
|||||||
u8g2_font_unifont_t_urdu LITERAL1
|
u8g2_font_unifont_t_urdu LITERAL1
|
||||||
u8g2_font_unifont_t_polish LITERAL1
|
u8g2_font_unifont_t_polish LITERAL1
|
||||||
u8g2_font_unifont_t_devanagari LITERAL1
|
u8g2_font_unifont_t_devanagari LITERAL1
|
||||||
|
u8g2_font_unifont_t_malayalam LITERAL1
|
||||||
u8g2_font_unifont_t_arabic LITERAL1
|
u8g2_font_unifont_t_arabic LITERAL1
|
||||||
u8g2_font_unifont_t_symbols LITERAL1
|
u8g2_font_unifont_t_symbols LITERAL1
|
||||||
u8g2_font_unifont_h_symbols LITERAL1
|
u8g2_font_unifont_h_symbols LITERAL1
|
||||||
@@ -2149,6 +2150,14 @@ u8g2_font_logisoso58_tn LITERAL1
|
|||||||
u8g2_font_logisoso62_tn LITERAL1
|
u8g2_font_logisoso62_tn LITERAL1
|
||||||
u8g2_font_logisoso78_tn LITERAL1
|
u8g2_font_logisoso78_tn LITERAL1
|
||||||
u8g2_font_logisoso92_tn LITERAL1
|
u8g2_font_logisoso92_tn LITERAL1
|
||||||
|
u8g2_font_gulim11_t_korean1 LITERAL1
|
||||||
|
u8g2_font_gulim11_t_korean2 LITERAL1
|
||||||
|
u8g2_font_gulim12_t_korean1 LITERAL1
|
||||||
|
u8g2_font_gulim12_t_korean2 LITERAL1
|
||||||
|
u8g2_font_gulim14_t_korean1 LITERAL1
|
||||||
|
u8g2_font_gulim14_t_korean2 LITERAL1
|
||||||
|
u8g2_font_gulim16_t_korean1 LITERAL1
|
||||||
|
u8g2_font_gulim16_t_korean2 LITERAL1
|
||||||
u8g2_font_pressstart2p_8f LITERAL1
|
u8g2_font_pressstart2p_8f LITERAL1
|
||||||
u8g2_font_pressstart2p_8r LITERAL1
|
u8g2_font_pressstart2p_8r LITERAL1
|
||||||
u8g2_font_pressstart2p_8n LITERAL1
|
u8g2_font_pressstart2p_8n LITERAL1
|
||||||
|
|||||||
+1
-1
@@ -7,7 +7,7 @@
|
|||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/olikraus/u8g2.git"
|
"url": "https://github.com/olikraus/u8g2.git"
|
||||||
},
|
},
|
||||||
"version": "2.36.7",
|
"version": "2.36.8",
|
||||||
"license": "BSD-2-Clause",
|
"license": "BSD-2-Clause",
|
||||||
"authors": {
|
"authors": {
|
||||||
"name": "Oliver Kraus",
|
"name": "Oliver Kraus",
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
name=U8g2
|
name=U8g2
|
||||||
version=2.36.7
|
version=2.36.8
|
||||||
author=oliver <olikraus@gmail.com>
|
author=oliver <olikraus@gmail.com>
|
||||||
maintainer=oliver <olikraus@gmail.com>
|
maintainer=oliver <olikraus@gmail.com>
|
||||||
sentence=Monochrome LCD, OLED and eInk Library. Display controller: SSD1305, SSD1306, SSD1309, SSD1312, SSD1316, SSD1318, SSD1320, SSD1322, SSD1325, SSD1327, SSD1329, SSD1362, SSD1363, SSD1606, SSD1607, SH1106, SH1107, SH1108, SH1122, T6963, RA8835, LC7981, PCD8544, PCF8812, HX1230, UC1601, UC1604, UC1608, UC1610, UC1611, UC1617, UC1628, UC1638, UC1701, ST7302, ST7511, ST7528, ST7539, ST7565, ST7567, ST7571, ST7586, ST7588, ST75160, ST75161, ST75256, ST75320, NT7534, ST7920, IST3020, IST3088, IST7920, LD7032, KS0108, KS0713, HD44102, T7932, SSD1312, SED1330, SED1520, SBN1661, IL3820, MAX7219, GP1287, GP1247, GP1294, GU800. Interfaces: I2C, SPI, Parallel.
|
sentence=Monochrome LCD, OLED and eInk Library. Display controller: SSD1305, SSD1306, SSD1309, SSD1312, SSD1316, SSD1318, SSD1320, SSD1322, SSD1325, SSD1327, SSD1329, SSD1362, SSD1363, SSD1606, SSD1607, SH1106, SH1107, SH1108, SH1122, T6963, RA8835, LC7981, PCD8544, PCF8812, HX1230, UC1601, UC1604, UC1608, UC1610, UC1611, UC1617, UC1628, UC1638, UC1701, ST7302, ST7511, ST7528, ST7539, ST7565, ST7567, ST7571, ST7586, ST7588, ST75160, ST75161, ST75256, ST75320, NT7534, ST7920, IST3020, IST3088, IST7920, LD7032, KS0108, KS0713, HD44102, T7932, SSD1312, SED1330, SED1520, SBN1661, IL3820, MAX7219, GP1287, GP1247, GP1294, GU800. Interfaces: I2C, SPI, Parallel.
|
||||||
|
|||||||
+1
-1
@@ -306,7 +306,7 @@ u8g2_uint_t u8g2_GetUTF8Width(u8g2_t *u8g2, const char *str);
|
|||||||
int8_t getXOffsetGlyph(uint16_t encoding) { return u8g2_GetXOffsetGlyph(&u8g2, encoding); }
|
int8_t getXOffsetGlyph(uint16_t encoding) { return u8g2_GetXOffsetGlyph(&u8g2, encoding); }
|
||||||
int8_t getXOffsetUTF8(const char *utf8) { return u8g2_GetXOffsetUTF8(&u8g2, utf8); }
|
int8_t getXOffsetUTF8(const char *utf8) { return u8g2_GetXOffsetUTF8(&u8g2, utf8); }
|
||||||
|
|
||||||
|
void drawHB(u8g2_uint_t x, u8g2_uint_t y, const unsigned char *data) { return u8g2_DrawHB(&u8g2, x, y, data); }
|
||||||
|
|
||||||
// not required any more, enable UTF8 for print
|
// not required any more, enable UTF8 for print
|
||||||
//void printUTF8(const char *s) { tx += u8g2_DrawUTF8(&u8g2, tx, ty, s); }
|
//void printUTF8(const char *s) { tx += u8g2_DrawUTF8(&u8g2, tx, ty, s); }
|
||||||
|
|||||||
+1
-1
@@ -261,7 +261,7 @@ struct mui_struct
|
|||||||
uint8_t x; // position of the field
|
uint8_t x; // position of the field
|
||||||
uint8_t y;
|
uint8_t y;
|
||||||
uint8_t dflags;
|
uint8_t dflags;
|
||||||
uint8_t arg; // extra argument of the field. For example the G: form is put here
|
uint8_t arg; // extra argument of the field. For example the G: form is put here, assigned by MUI_XYA or MUI_XYAT
|
||||||
int len; // length of the current command
|
int len; // length of the current command
|
||||||
fds_t *fds; // current position, *fds = cmd
|
fds_t *fds; // current position, *fds = cmd
|
||||||
muif_t *uif; // user interface field or style for the given id0 / id1, assigned by mui_prepare_current_field()
|
muif_t *uif; // user interface field or style for the given id0 / id1, assigned by mui_prepare_current_field()
|
||||||
|
|||||||
@@ -221,6 +221,11 @@ u8g2_uint_t mui_get_y(mui_t *ui)
|
|||||||
return ui->y;
|
return ui->y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u8g2_uint_t mui_get_arg(mui_t *ui)
|
||||||
|
{
|
||||||
|
return ui->arg;
|
||||||
|
}
|
||||||
|
|
||||||
u8g2_t *mui_get_U8g2(mui_t *ui)
|
u8g2_t *mui_get_U8g2(mui_t *ui)
|
||||||
{
|
{
|
||||||
return (u8g2_t *)(ui->graphics_data);
|
return (u8g2_t *)(ui->graphics_data);
|
||||||
|
|||||||
@@ -185,6 +185,7 @@ typedef const struct mui_u8g2_u8_min_max_step_struct mui_u8g2_u8_min_max_step_t;
|
|||||||
|
|
||||||
u8g2_uint_t mui_get_x(mui_t *ui);
|
u8g2_uint_t mui_get_x(mui_t *ui);
|
||||||
u8g2_uint_t mui_get_y(mui_t *ui);
|
u8g2_uint_t mui_get_y(mui_t *ui);
|
||||||
|
u8g2_uint_t mui_get_arg(mui_t *ui);
|
||||||
u8g2_t *mui_get_U8g2(mui_t *ui);
|
u8g2_t *mui_get_U8g2(mui_t *ui);
|
||||||
|
|
||||||
void mui_u8g2_draw_button_utf(mui_t *ui, u8g2_uint_t flags, u8g2_uint_t width, u8g2_uint_t padding_h, u8g2_uint_t padding_v, const char *text);
|
void mui_u8g2_draw_button_utf(mui_t *ui, u8g2_uint_t flags, u8g2_uint_t width, u8g2_uint_t padding_h, u8g2_uint_t padding_v, const char *text);
|
||||||
|
|||||||
@@ -1951,6 +1951,9 @@ void u8g2_SetFontRefHeightText(u8g2_t *u8g2);
|
|||||||
void u8g2_SetFontRefHeightExtendedText(u8g2_t *u8g2);
|
void u8g2_SetFontRefHeightExtendedText(u8g2_t *u8g2);
|
||||||
void u8g2_SetFontRefHeightAll(u8g2_t *u8g2);
|
void u8g2_SetFontRefHeightAll(u8g2_t *u8g2);
|
||||||
|
|
||||||
|
void u8g2_DrawHB(u8g2_t *u8g2, u8g2_uint_t x, u8g2_uint_t y, const unsigned char *data);
|
||||||
|
|
||||||
|
|
||||||
/*==========================================*/
|
/*==========================================*/
|
||||||
/* u8log_u8g2.c */
|
/* u8log_u8g2.c */
|
||||||
void u8g2_DrawLog(u8g2_t *u8g2, u8g2_uint_t x, u8g2_uint_t y, u8log_t *u8log);
|
void u8g2_DrawLog(u8g2_t *u8g2, u8g2_uint_t x, u8g2_uint_t y, u8log_t *u8log);
|
||||||
@@ -3124,6 +3127,7 @@ extern const uint8_t u8g2_font_unifont_t_tibetan[] U8G2_FONT_SECTION("u8g2_font_
|
|||||||
extern const uint8_t u8g2_font_unifont_t_urdu[] U8G2_FONT_SECTION("u8g2_font_unifont_t_urdu");
|
extern const uint8_t u8g2_font_unifont_t_urdu[] U8G2_FONT_SECTION("u8g2_font_unifont_t_urdu");
|
||||||
extern const uint8_t u8g2_font_unifont_t_polish[] U8G2_FONT_SECTION("u8g2_font_unifont_t_polish");
|
extern const uint8_t u8g2_font_unifont_t_polish[] U8G2_FONT_SECTION("u8g2_font_unifont_t_polish");
|
||||||
extern const uint8_t u8g2_font_unifont_t_devanagari[] U8G2_FONT_SECTION("u8g2_font_unifont_t_devanagari");
|
extern const uint8_t u8g2_font_unifont_t_devanagari[] U8G2_FONT_SECTION("u8g2_font_unifont_t_devanagari");
|
||||||
|
extern const uint8_t u8g2_font_unifont_t_malayalam[] U8G2_FONT_SECTION("u8g2_font_unifont_t_malayalam");
|
||||||
extern const uint8_t u8g2_font_unifont_t_arabic[] U8G2_FONT_SECTION("u8g2_font_unifont_t_arabic");
|
extern const uint8_t u8g2_font_unifont_t_arabic[] U8G2_FONT_SECTION("u8g2_font_unifont_t_arabic");
|
||||||
extern const uint8_t u8g2_font_unifont_t_symbols[] U8G2_FONT_SECTION("u8g2_font_unifont_t_symbols");
|
extern const uint8_t u8g2_font_unifont_t_symbols[] U8G2_FONT_SECTION("u8g2_font_unifont_t_symbols");
|
||||||
extern const uint8_t u8g2_font_unifont_h_symbols[] U8G2_FONT_SECTION("u8g2_font_unifont_h_symbols");
|
extern const uint8_t u8g2_font_unifont_h_symbols[] U8G2_FONT_SECTION("u8g2_font_unifont_h_symbols");
|
||||||
@@ -3947,6 +3951,14 @@ extern const uint8_t u8g2_font_logisoso58_tn[] U8G2_FONT_SECTION("u8g2_font_logi
|
|||||||
extern const uint8_t u8g2_font_logisoso62_tn[] U8G2_FONT_SECTION("u8g2_font_logisoso62_tn");
|
extern const uint8_t u8g2_font_logisoso62_tn[] U8G2_FONT_SECTION("u8g2_font_logisoso62_tn");
|
||||||
extern const uint8_t u8g2_font_logisoso78_tn[] U8G2_FONT_SECTION("u8g2_font_logisoso78_tn");
|
extern const uint8_t u8g2_font_logisoso78_tn[] U8G2_FONT_SECTION("u8g2_font_logisoso78_tn");
|
||||||
extern const uint8_t u8g2_font_logisoso92_tn[] U8G2_FONT_SECTION("u8g2_font_logisoso92_tn");
|
extern const uint8_t u8g2_font_logisoso92_tn[] U8G2_FONT_SECTION("u8g2_font_logisoso92_tn");
|
||||||
|
extern const uint8_t u8g2_font_gulim11_t_korean1[] U8G2_FONT_SECTION("u8g2_font_gulim11_t_korean1");
|
||||||
|
extern const uint8_t u8g2_font_gulim11_t_korean2[] U8G2_FONT_SECTION("u8g2_font_gulim11_t_korean2");
|
||||||
|
extern const uint8_t u8g2_font_gulim12_t_korean1[] U8G2_FONT_SECTION("u8g2_font_gulim12_t_korean1");
|
||||||
|
extern const uint8_t u8g2_font_gulim12_t_korean2[] U8G2_FONT_SECTION("u8g2_font_gulim12_t_korean2");
|
||||||
|
extern const uint8_t u8g2_font_gulim14_t_korean1[] U8G2_FONT_SECTION("u8g2_font_gulim14_t_korean1");
|
||||||
|
extern const uint8_t u8g2_font_gulim14_t_korean2[] U8G2_FONT_SECTION("u8g2_font_gulim14_t_korean2");
|
||||||
|
extern const uint8_t u8g2_font_gulim16_t_korean1[] U8G2_FONT_SECTION("u8g2_font_gulim16_t_korean1");
|
||||||
|
extern const uint8_t u8g2_font_gulim16_t_korean2[] U8G2_FONT_SECTION("u8g2_font_gulim16_t_korean2");
|
||||||
extern const uint8_t u8g2_font_pressstart2p_8f[] U8G2_FONT_SECTION("u8g2_font_pressstart2p_8f");
|
extern const uint8_t u8g2_font_pressstart2p_8f[] U8G2_FONT_SECTION("u8g2_font_pressstart2p_8f");
|
||||||
extern const uint8_t u8g2_font_pressstart2p_8r[] U8G2_FONT_SECTION("u8g2_font_pressstart2p_8r");
|
extern const uint8_t u8g2_font_pressstart2p_8r[] U8G2_FONT_SECTION("u8g2_font_pressstart2p_8r");
|
||||||
extern const uint8_t u8g2_font_pressstart2p_8n[] U8G2_FONT_SECTION("u8g2_font_pressstart2p_8n");
|
extern const uint8_t u8g2_font_pressstart2p_8n[] U8G2_FONT_SECTION("u8g2_font_pressstart2p_8n");
|
||||||
|
|||||||
@@ -1560,4 +1560,60 @@ void u8g2_SetFontDirection(u8g2_t *u8g2, uint8_t dir)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*=======================================*/
|
||||||
|
/*
|
||||||
|
Draw a string, which is produced by hbshape2u8g2 (libharfbuzz toolchain)
|
||||||
|
|
||||||
|
The data argument should look like this:
|
||||||
|
static const unsigned char teststring[] U8X8_PROGMEM = {
|
||||||
|
0x09, 0x28, 0x00, 0x00, // u8g2_DrawGlyph(&u8g2, 0, 0, 2344);
|
||||||
|
0x09, 0x2e, 0x10, 0x00, // u8g2_DrawGlyph(&u8g2, 16, 0, 2350);
|
||||||
|
0x09, 0x38, 0x10, 0x00, // u8g2_DrawGlyph(&u8g2, 32, 0, 2360);
|
||||||
|
0x09, 0x4d, 0x00, 0x00, // u8g2_DrawGlyph(&u8g2, 32, 0, 2381);
|
||||||
|
0x09, 0x24, 0x10, 0x00, // u8g2_DrawGlyph(&u8g2, 48, 0, 2340);
|
||||||
|
0x09, 0x47, 0x00, 0x00, // u8g2_DrawGlyph(&u8g2, 48, 0, 2375);
|
||||||
|
0x00, 0x00 // end of binary
|
||||||
|
};
|
||||||
|
|
||||||
|
The data row contains four bytes, which are:
|
||||||
|
<encoding high byte> <encoding low byte> <delta-x> <delta-y>
|
||||||
|
The last row is marked with encoding=0
|
||||||
|
|
||||||
|
The algorithm is
|
||||||
|
Input: x,y
|
||||||
|
with all rows (until encoding is 0)
|
||||||
|
x += <delta-x>
|
||||||
|
y += <delta-y>
|
||||||
|
draw glyph with <encoding> at x, y
|
||||||
|
|
||||||
|
A call to this function will require transparent mode:
|
||||||
|
u8g2_SetFontMode(&u8g2, 1);
|
||||||
|
|
||||||
|
Limitation:
|
||||||
|
Glyph delta must be lower than 128, this bascially means, that the glyph size is limited to
|
||||||
|
hight/width of 128 pixel
|
||||||
|
|
||||||
|
Further details:
|
||||||
|
https://github.com/olikraus/u8g2/issues/2656
|
||||||
|
|
||||||
|
*/
|
||||||
|
void u8g2_DrawHB(u8g2_t *u8g2, u8g2_uint_t x, u8g2_uint_t y, const unsigned char *data)
|
||||||
|
{
|
||||||
|
uint16_t encoding = 0;
|
||||||
|
for (;;)
|
||||||
|
{
|
||||||
|
encoding = u8x8_pgm_read(data);
|
||||||
|
data++;
|
||||||
|
encoding <<= 8;
|
||||||
|
encoding |= u8x8_pgm_read(data);
|
||||||
|
data++;
|
||||||
|
if (encoding == 0)
|
||||||
|
break;
|
||||||
|
x += (int8_t)u8x8_pgm_read(data);
|
||||||
|
data++;
|
||||||
|
y += (int8_t)u8x8_pgm_read(data);
|
||||||
|
data++;
|
||||||
|
u8g2_DrawGlyph(u8g2, x, y, encoding);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -221,6 +221,8 @@ static uint8_t *u8x8_st7305_convert_60(u8x8_t *u8x8, uint8_t *p)
|
|||||||
static uint8_t *u8x8_st7305_convert_a0(u8x8_t *u8x8, uint8_t *p)
|
static uint8_t *u8x8_st7305_convert_a0(u8x8_t *u8x8, uint8_t *p)
|
||||||
{
|
{
|
||||||
static uint8_t buf[6];
|
static uint8_t buf[6];
|
||||||
|
|
||||||
|
#ifdef OLD
|
||||||
/* u8g2 first row */
|
/* u8g2 first row */
|
||||||
static uint8_t map1[16] = {
|
static uint8_t map1[16] = {
|
||||||
/* 0x00 0000 */ 0,
|
/* 0x00 0000 */ 0,
|
||||||
@@ -259,7 +261,46 @@ static uint8_t *u8x8_st7305_convert_a0(u8x8_t *u8x8, uint8_t *p)
|
|||||||
/* 0x0e 1110 */ 0x80+0x20+0x08,
|
/* 0x0e 1110 */ 0x80+0x20+0x08,
|
||||||
/* 0x0f 1111 */ 0x80+0x20+0x08+0x02
|
/* 0x0f 1111 */ 0x80+0x20+0x08+0x02
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* u8g2 first row */
|
||||||
|
static uint8_t map1[16] = {
|
||||||
|
/* 0x00 0000 */ 0,
|
||||||
|
/* 0x01 0001 */0x04,
|
||||||
|
/* 0x02 0010 */0x01,
|
||||||
|
/* 0x03 0011 */0x04+0x01,
|
||||||
|
/* 0x04 0100 */0x40,
|
||||||
|
/* 0x05 0101 */0x40+0x04,
|
||||||
|
/* 0x06 0110 */0x40+0x01,
|
||||||
|
/* 0x07 0111 */0x40+0x04+0x01,
|
||||||
|
/* 0x08 1000 */ 0x10,
|
||||||
|
/* 0x09 1001 */ 0x10+0x04,
|
||||||
|
/* 0x0a 1010 */ 0x10+0x01,
|
||||||
|
/* 0x0b 1011 */ 0x10+0x04+0x01,
|
||||||
|
/* 0x0c 1100 */ 0x40+0x10,
|
||||||
|
/* 0x0d 1101 */ 0x40+0x10+0x04,
|
||||||
|
/* 0x0e 1110 */ 0x40+0x10+0x01,
|
||||||
|
/* 0x0f 1111 */ 0x40+0x10+0x04+0x01
|
||||||
|
};
|
||||||
|
/* u8g2 second row */
|
||||||
|
static uint8_t map2[16] = {
|
||||||
|
/* 0x00 0000 */ 0,
|
||||||
|
/* 0x01 0001 */0x08,
|
||||||
|
/* 0x02 0010 */0x02,
|
||||||
|
/* 0x03 0011 */0x08+0x02,
|
||||||
|
/* 0x04 0100 */0x80,
|
||||||
|
/* 0x05 0101 */0x80+0x08,
|
||||||
|
/* 0x06 0110 */0x80+0x02,
|
||||||
|
/* 0x07 0111 */0x80+0x08+0x02,
|
||||||
|
/* 0x08 1000 */ 0x20,
|
||||||
|
/* 0x09 1001 */ 0x20+0x08,
|
||||||
|
/* 0x0a 1010 */ 0x20+0x02,
|
||||||
|
/* 0x0b 1011 */ 0x20+0x08+0x02,
|
||||||
|
/* 0x0c 1100 */ 0x80+0x20,
|
||||||
|
/* 0x0d 1101 */ 0x80+0x20+0x08,
|
||||||
|
/* 0x0e 1110 */ 0x80+0x20+0x02,
|
||||||
|
/* 0x0f 1111 */ 0x80+0x20+0x08+0x02
|
||||||
|
};
|
||||||
|
|
||||||
memset(buf, 0, 6);
|
memset(buf, 0, 6);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user