recibo/io/
constants.rs

1pub const EOL: &str = "\n";
2pub const GS: u8 = 0x1D;
3pub const ESC: u8 = 0x1B;
4pub const NIL: u8 = 0x00;
5
6pub const HARDWARE_INIT: &[u8] = &[ESC, 0x40];
7pub const HARDWARE_SELECT: &[u8] = &[ESC, 0x3D, 0x01];
8pub const HARDWARE_RESET: &[u8] = &[ESC, 0x3F, 0x0A, 0x00];
9pub const HARDWARE_PRINT_MODE: &[u8] = &[ESC, 0x21];
10// Paper feed
11
12pub const PAPER_FEED_FORWARD: &[u8] = &[ESC, 0x64];
13pub const PAPER_FEED_REVERSE: &[u8] = &[ESC, 0x65];
14
15pub const PAGE_MODE_STANDARD: &[u8] = &[ESC, 0x4C];
16
17// Paper cut
18pub const PAPER_CUT_FULL: &[u8] = &[GS, 0x56, 0x00];
19pub const PAPER_CUT_PARTIAL: &[u8] = &[GS, 0x56, 0x01];
20
21// Text styles
22pub const TEXT_BOLD_MODE_OFF: &[u8] = &[ESC, 0x45, 0x00];
23pub const TEXT_BOLD_MODE_ON: &[u8] = &[ESC, 0x45, 0x01];
24pub const TEXT_UNDERLINE_MODE_OFF: &[u8] = &[ESC, 0x2D, 0x00];
25pub const TEXT_UNDERLINE_MODE_ON: &[u8] = &[ESC, 0x2D, 0x01];
26pub const TEXT_UNDERLINE_MODE_2_ON: &[u8] = &[ESC, 0x2D, 0x02];
27pub const TEXT_DOUBLESTRIKE_OFF: &[u8] = &[ESC, 0x47, 0x00];
28pub const TEXT_DOUBLESTRIKE_ON: &[u8] = &[ESC, 0x47, 0x01];
29pub const TEXT_FLIP_OFF: &[u8] = &[ESC, 0x7B, 0x00];
30pub const TEXT_FLIP_ON: &[u8] = &[ESC, 0x7B, 0x01];
31pub const TEXT_REVERSE_COLOURS_ON: &[u8] = &[GS, 0x42, 0x01];
32pub const TEXT_REVERSE_COLOURS_OFF: &[u8] = &[GS, 0x42, 0x00];
33pub const TEXT_JUSTIFY_LEFT: &[u8] = &[ESC, 0x61, 0x00];
34pub const TEXT_JUSTIFY_CENTER: &[u8] = &[ESC, 0x61, 0x01];
35pub const TEXT_JUSTIFY_RIGHT: &[u8] = &[ESC, 0x61, 0x02];
36pub const TEXT_MARGIN_LEFT: &[u8] = &[GS, 0x4C];
37pub const TEXT_PRINTABLE_AREA: &[u8] = &[GS, 0x57];
38pub const TEXT_LINESPACING: &[u8] = &[ESC, 0x03];
39pub const TEXT_RESET_LINESPACING: &[u8] = &[ESC, 0x02];
40pub const TEXT_SIZE_SELECT: &[u8] = &[GS, 0x21];
41// Font selection
42pub const FONT_A: &[u8] = &[ESC, 0x4D, 0x00];
43pub const FONT_B: &[u8] = &[ESC, 0x4D, 0x01];
44pub const FONT_C: &[u8] = &[ESC, 0x4D, 0x02];
45
46// Barcode commands
47pub const BARCODE_HEIGHT: &[u8] = &[GS, 0x68];
48pub const BARCODE_WIDTH: &[u8] = &[GS, 0x77];
49pub const BARCODE_TEXT_POSITION: &[u8] = &[GS, 0x48];
50
51pub const BARCODE_FONT_A: &[u8] = &[GS, 0x66, 0x00];
52pub const BARCODE_FONT_B: &[u8] = &[GS, 0x66, 0x01];
53
54pub const BARCODE_TEXT_NONE: &[u8] = &[GS, 0x48, 0x00];
55pub const BARCODE_TEXT_ABOVE: &[u8] = &[GS, 0x48, 0x01];
56pub const BARCODE_TEXT_BELOW: &[u8] = &[GS, 0x48, 0x02];
57pub const BARCODE_TEXT_BOTH: &[u8] = &[GS, 0x48, 0x03];
58
59pub const BARCODE_TYPE_UPC_A: &[u8] = &[GS, 0x6B, 0x00];
60pub const BARCODE_TYPE_UPC_E: &[u8] = &[GS, 0x6B, 0x01];
61pub const BARCODE_TYPE_JAN13_EAN13: &[u8] = &[GS, 0x6B, 0x02];
62pub const BARCODE_TYPE_JAN8_EAN8: &[u8] = &[GS, 0x6B, 0x03];
63pub const BARCODE_TYPE_CODE39: &[u8] = &[GS, 0x6B, 0x04];
64pub const BARCODE_TYPE_ITF: &[u8] = &[GS, 0x6B, 0x05];
65pub const BARCODE_TYPE_CODABAR: &[u8] = &[GS, 0x6B, 0x06];
66
67// QR Code commands
68
69pub const QR_CORRECTION_ERROR_LEVEL_LOW: u8 = 0x30;
70pub const QR_CORRECTION_ERROR_LEVEL_MEDIUM: u8 = 0x31;
71pub const QR_CORRECTION_ERROR_LEVEL_QUARTILE: u8 = 0x32;
72pub const QR_CORRECTION_ERROR_LEVEL_HIGH: u8 = 0x33;
73
74pub const QR_MODEL_1: u8 = 0x31;
75pub const QR_MODEL_2: u8 = 0x32;
76
77pub const QR_SELECT_MODEL: &[u8] = &[GS, 0x28, 0x6B, 0x04, 0x00, 0x31, 0x41, 0x00];
78pub const QR_LEVEL: &[u8] = &[GS, 0x28, 0x6B, 0x03, 0x00, 0x31, 0x43];
79pub const QR_CORRECTION_ERROR_LEVEL: &[u8] = &[GS, 0x28, 0x6B, 0x03, 0x00, 0x31, 0x45];
80pub const QR_DATA_STORE_PREFIX: &[u8] = &[GS, 0x28, 0x6B];
81pub const QR_DATA_STORE_SUFFIX: &[u8] = &[0x31, 0x50, 0x30];
82pub const QR_PRINT: &[u8] = &[GS, 0x28, 0x6B, 0x03, 0x00, 0x31, 0x51, 0x30];
83
84// Image
85
86pub const IMAGE_HEADER: &[u8] = &[GS, 0x76, 0x30];