AS-289R2 Thermal Printer shield control library

Dependents:   AS-289R2_Hello-World AS-289R2_Hello-World-mbed-OS hybrid_image_as289r2 microbit_AS-289R2 ... more

Committer:
MACRUM
Date:
Mon Jan 20 00:33:01 2020 +0900
Revision:
10:b7d6c02caf97
Parent:
9:7f8acb87da7c
Use RawSerial and add rx param

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MACRUM 7:f9b9162c7e9d 1 /**
MACRUM 7:f9b9162c7e9d 2 ******************************************************************************
MACRUM 8:50020195de05 3 * @file AS289R2.h
MACRUM 7:f9b9162c7e9d 4 * @author Toyomasa Watarai
MACRUM 10:b7d6c02caf97 5 * @version V1.1.0
MACRUM 10:b7d6c02caf97 6 * @date 20 January 2020
MACRUM 7:f9b9162c7e9d 7 * @brief This file contains the class of a AS289R2 thermal control component
MACRUM 7:f9b9162c7e9d 8 ******************************************************************************
MACRUM 7:f9b9162c7e9d 9 * @attention
MACRUM 0:982a7efb3ef0 10 *
MACRUM 0:982a7efb3ef0 11 * Permission is hereby granted, free of charge, to any person obtaining a copy
MACRUM 0:982a7efb3ef0 12 * of this software and associated documentation files (the "Software"), to deal
MACRUM 0:982a7efb3ef0 13 * in the Software without restriction, including without limitation the rights
MACRUM 0:982a7efb3ef0 14 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
MACRUM 0:982a7efb3ef0 15 * copies of the Software, and to permit persons to whom the Software is
MACRUM 0:982a7efb3ef0 16 * furnished to do so, subject to the following conditions:
MACRUM 0:982a7efb3ef0 17 *
MACRUM 0:982a7efb3ef0 18 * The above copyright notice and this permission notice shall be included in
MACRUM 0:982a7efb3ef0 19 * all copies or substantial portions of the Software.
MACRUM 0:982a7efb3ef0 20 *
MACRUM 0:982a7efb3ef0 21 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
MACRUM 0:982a7efb3ef0 22 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
MACRUM 0:982a7efb3ef0 23 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
MACRUM 0:982a7efb3ef0 24 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
MACRUM 0:982a7efb3ef0 25 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
MACRUM 0:982a7efb3ef0 26 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
MACRUM 0:982a7efb3ef0 27 * THE SOFTWARE.
MACRUM 0:982a7efb3ef0 28 */
MACRUM 4:a2e0373a9cd1 29
MACRUM 0:982a7efb3ef0 30 #ifndef MBED_AS289R2_H
MACRUM 0:982a7efb3ef0 31 #define MBED_AS289R2_H
MACRUM 0:982a7efb3ef0 32
MACRUM 0:982a7efb3ef0 33 #include "mbed.h"
MACRUM 0:982a7efb3ef0 34
MACRUM 3:f3dfeb7ccb22 35 #if defined(__CC_ARM)
MACRUM 0:982a7efb3ef0 36 // To avoid "invalid multibyte character sequence" warning
MACRUM 0:982a7efb3ef0 37 #pragma diag_suppress 870
MACRUM 3:f3dfeb7ccb22 38 #endif
MACRUM 0:982a7efb3ef0 39
MACRUM 7:f9b9162c7e9d 40 /** A printer interface for driving AS-289R2 thermal printer shield of NADA Electronics, Ltd.
MACRUM 0:982a7efb3ef0 41 *
MACRUM 0:982a7efb3ef0 42 * @code
MACRUM 0:982a7efb3ef0 43 * #include "mbed.h"
MACRUM 0:982a7efb3ef0 44 * #include "AS829R2.h"
MACRUM 4:a2e0373a9cd1 45 *
MACRUM 5:fa3d63a975d9 46 * Serial pc(USBTX, USBRX);
MACRUM 10:b7d6c02caf97 47 * AS829R2 tp(D1, D0); // tx, rx, 9600bps (default)
MACRUM 4:a2e0373a9cd1 48 *
MACRUM 6:6aac36a293c7 49 * int main()
MACRUM 6:6aac36a293c7 50 * {
MACRUM 6:6aac36a293c7 51 * tp.initialize();
MACRUM 6:6aac36a293c7 52 * tp.putLineFeed(2);
MACRUM 5:fa3d63a975d9 53 *
MACRUM 6:6aac36a293c7 54 * tp.printf("** Thermal Printer Shield **\r\r");
MACRUM 5:fa3d63a975d9 55 *
MACRUM 6:6aac36a293c7 56 * tp.setDoubleSizeWidth();
MACRUM 6:6aac36a293c7 57 * tp.printf(" AS-289R2\r\r");
MACRUM 6:6aac36a293c7 58 * tp.clearDoubleSizeWidth();
MACRUM 5:fa3d63a975d9 59 *
MACRUM 6:6aac36a293c7 60 * tp.printf("日本語文字列の印字テスト:24x24\r");
MACRUM 6:6aac36a293c7 61 * tp.setKanjiFont(AS289R2::KANJI_16x16);
MACRUM 6:6aac36a293c7 62 * tp.setANKFont(AS289R2::ANK_8x16);
MACRUM 6:6aac36a293c7 63 * tp.printf("日本語文字列の印字テスト:16x16\r\r");
MACRUM 5:fa3d63a975d9 64 *
MACRUM 6:6aac36a293c7 65 * tp.setKanjiFont(AS289R2::KANJI_DEFAULT);
MACRUM 6:6aac36a293c7 66 * tp.setANKFont(AS289R2::ANK_DEFAULT);
MACRUM 6:6aac36a293c7 67 * tp.setDoubleSizeWidth();
MACRUM 6:6aac36a293c7 68 * tp.printf("ABCDEFG 0123456789\r");
MACRUM 6:6aac36a293c7 69 * tp.clearDoubleSizeWidth();
MACRUM 5:fa3d63a975d9 70 *
MACRUM 6:6aac36a293c7 71 * tp.setDoubleSizeHeight();
MACRUM 6:6aac36a293c7 72 * tp.printf("ABCDEFG 0123456789\r");
MACRUM 6:6aac36a293c7 73 * tp.clearDoubleSizeHeight();
MACRUM 5:fa3d63a975d9 74 *
MACRUM 6:6aac36a293c7 75 * pc.printf("AS-289R2 thermal printer shield test\n\n");
MACRUM 6:6aac36a293c7 76 * while(1) {
MACRUM 6:6aac36a293c7 77 * if (pc.readable()) {
MACRUM 6:6aac36a293c7 78 * int c = pc.getc();
MACRUM 6:6aac36a293c7 79 * pc.putc(c);
MACRUM 6:6aac36a293c7 80 * tp.putc(c);
MACRUM 6:6aac36a293c7 81 * }
MACRUM 6:6aac36a293c7 82 * }
MACRUM 6:6aac36a293c7 83 * }
MACRUM 6:6aac36a293c7 84 *
MACRUM 0:982a7efb3ef0 85 * @endcode
MACRUM 0:982a7efb3ef0 86 */
MACRUM 0:982a7efb3ef0 87 class AS289R2 : public Stream
MACRUM 0:982a7efb3ef0 88 {
MACRUM 0:982a7efb3ef0 89 public:
MACRUM 0:982a7efb3ef0 90
MACRUM 7:f9b9162c7e9d 91 /**
MACRUM 7:f9b9162c7e9d 92 * @enum Kanji_font_size
MACRUM 7:f9b9162c7e9d 93 * Value of Japanese Kanji font size
MACRUM 7:f9b9162c7e9d 94 */
MACRUM 0:982a7efb3ef0 95 enum Kanji_font_size {
MACRUM 7:f9b9162c7e9d 96 //! 24x24 dot font
MACRUM 0:982a7efb3ef0 97 KANJI_24x24 = 0x30,
MACRUM 7:f9b9162c7e9d 98 //! 16x16 dot font
MACRUM 0:982a7efb3ef0 99 KANJI_16x16,
MACRUM 7:f9b9162c7e9d 100 //! Defalut font size
MACRUM 0:982a7efb3ef0 101 KANJI_DEFAULT = KANJI_24x24
MACRUM 0:982a7efb3ef0 102 };
MACRUM 0:982a7efb3ef0 103
MACRUM 7:f9b9162c7e9d 104 /**
MACRUM 7:f9b9162c7e9d 105 * @enum ANK_font_size
MACRUM 7:f9b9162c7e9d 106 * Value of ANK font size
MACRUM 7:f9b9162c7e9d 107 */
MACRUM 0:982a7efb3ef0 108 enum ANK_font_size {
MACRUM 7:f9b9162c7e9d 109 //! 8x16 dot font
MACRUM 0:982a7efb3ef0 110 ANK_8x16 = 0x30,
MACRUM 7:f9b9162c7e9d 111 //! 12x24 dot font
MACRUM 0:982a7efb3ef0 112 ANK_12x24,
MACRUM 7:f9b9162c7e9d 113 //! 16x16 dot font
MACRUM 0:982a7efb3ef0 114 ANK_16x16,
MACRUM 7:f9b9162c7e9d 115 //! 24x24 dot fot
MACRUM 0:982a7efb3ef0 116 ANK_24x24,
MACRUM 7:f9b9162c7e9d 117 //! Defalut font size
MACRUM 0:982a7efb3ef0 118 ANK_DEFAULT = ANK_12x24
MACRUM 0:982a7efb3ef0 119 };
MACRUM 0:982a7efb3ef0 120
MACRUM 7:f9b9162c7e9d 121 /**
MACRUM 7:f9b9162c7e9d 122 * @enum QRcode_error_level
MACRUM 7:f9b9162c7e9d 123 * Value of CQ code error correction level
MACRUM 7:f9b9162c7e9d 124 */
MACRUM 0:982a7efb3ef0 125 enum QRcode_error_level {
MACRUM 7:f9b9162c7e9d 126 //! Error correction level L (7%)
MACRUM 0:982a7efb3ef0 127 QR_ERR_LVL_L = 0x4C,
MACRUM 7:f9b9162c7e9d 128 //! Error correction level M (15%)
MACRUM 0:982a7efb3ef0 129 QR_ERR_LVL_M = 0x4D,
MACRUM 7:f9b9162c7e9d 130 //! Error correction level Q (25%)
MACRUM 0:982a7efb3ef0 131 QR_ERR_LVL_Q = 0x51,
MACRUM 7:f9b9162c7e9d 132 //! Error correction level H (30%)
MACRUM 0:982a7efb3ef0 133 QR_ERR_LVL_H = 0x48
MACRUM 0:982a7efb3ef0 134 };
MACRUM 0:982a7efb3ef0 135
MACRUM 7:f9b9162c7e9d 136 /**
MACRUM 7:f9b9162c7e9d 137 * @enum barcode_mode
MACRUM 7:f9b9162c7e9d 138 * Value of barcode mode
MACRUM 7:f9b9162c7e9d 139 */
MACRUM 7:f9b9162c7e9d 140 enum barcode_mode {
MACRUM 7:f9b9162c7e9d 141 //! UPC-A : 11-digit, d1-d11, C/D
MACRUM 0:982a7efb3ef0 142 BCODE_UPC_A = 0x30,
MACRUM 7:f9b9162c7e9d 143 //! JAN13 : 12-digit, d1-d12, C/D
MACRUM 7:f9b9162c7e9d 144 BCODE_JAN13 = 0x32,
MACRUM 7:f9b9162c7e9d 145 //! JAN8 : 7-digit, d1-d7, C/D
MACRUM 0:982a7efb3ef0 146 BCODE_JAN8,
MACRUM 7:f9b9162c7e9d 147 //! CODE39 : variable, d1-d20, C/D
MACRUM 0:982a7efb3ef0 148 BCODE_CODE39,
MACRUM 7:f9b9162c7e9d 149 //! ITF : variable, d1-d20
MACRUM 0:982a7efb3ef0 150 BCODE_ITF,
MACRUM 7:f9b9162c7e9d 151 //! CODABAR (NW7) : variable, d1-d20
MACRUM 0:982a7efb3ef0 152 BCODE_CODABAR
MACRUM 0:982a7efb3ef0 153 };
MACRUM 7:f9b9162c7e9d 154
MACRUM 7:f9b9162c7e9d 155 /**
MACRUM 7:f9b9162c7e9d 156 * @enum script_mode
MACRUM 7:f9b9162c7e9d 157 * Value of script mode
MACRUM 7:f9b9162c7e9d 158 */
MACRUM 7:f9b9162c7e9d 159 enum script_mode {
MACRUM 7:f9b9162c7e9d 160 //! Cancel script mode
MACRUM 7:f9b9162c7e9d 161 SCRIPT_CANCEL = 0,
MACRUM 7:f9b9162c7e9d 162 //! Super script
MACRUM 7:f9b9162c7e9d 163 SCRIPT_SUPER,
MACRUM 7:f9b9162c7e9d 164 //! Sub script
MACRUM 7:f9b9162c7e9d 165 SCRIPT_SUB
MACRUM 7:f9b9162c7e9d 166 };
MACRUM 0:982a7efb3ef0 167
MACRUM 0:982a7efb3ef0 168 /** Create a AS289R2 instance
MACRUM 0:982a7efb3ef0 169 * which is connected to specified Serial pin with specified baud rate
MACRUM 0:982a7efb3ef0 170 *
MACRUM 0:982a7efb3ef0 171 * @param tx Serial TX pin
MACRUM 10:b7d6c02caf97 172 * @param rx Serial RX pin (dummy)
MACRUM 0:982a7efb3ef0 173 * @param baud (option) serial baud rate (default: 9600bps)
MACRUM 0:982a7efb3ef0 174 */
MACRUM 10:b7d6c02caf97 175 AS289R2(PinName tx, PinName rx, uint32_t baud = 9600);
MACRUM 0:982a7efb3ef0 176
MACRUM 0:982a7efb3ef0 177 /** Create a AS289R2 instance
MACRUM 0:982a7efb3ef0 178 * which is connected to specified Serial instance with specified baud rate
MACRUM 0:982a7efb3ef0 179 *
MACRUM 0:982a7efb3ef0 180 * @param serial_obj Serial object (instance)
MACRUM 0:982a7efb3ef0 181 * @param baud (option) serial baud rate (default: 9600bps)
MACRUM 0:982a7efb3ef0 182 */
MACRUM 10:b7d6c02caf97 183 AS289R2(RawSerial &serial_obj, uint32_t baud = 9600);
MACRUM 0:982a7efb3ef0 184
MACRUM 0:982a7efb3ef0 185 /** Destructor of AS289R2
MACRUM 0:982a7efb3ef0 186 */
MACRUM 0:982a7efb3ef0 187 virtual ~AS289R2();
MACRUM 0:982a7efb3ef0 188
MACRUM 0:982a7efb3ef0 189 /** Initializa AS289R2
MACRUM 0:982a7efb3ef0 190 *
MACRUM 0:982a7efb3ef0 191 * Issues initialize command for AS-289R2
MACRUM 0:982a7efb3ef0 192 *
MACRUM 0:982a7efb3ef0 193 */
MACRUM 0:982a7efb3ef0 194 void initialize(void);
MACRUM 0:982a7efb3ef0 195
MACRUM 0:982a7efb3ef0 196 /** Send line feed code
MACRUM 0:982a7efb3ef0 197 * which is connected to specified Serial pin with specified baud rate
MACRUM 0:982a7efb3ef0 198 *
MACRUM 0:982a7efb3ef0 199 * @param lines Number of line feed
MACRUM 0:982a7efb3ef0 200 */
MACRUM 0:982a7efb3ef0 201 void putLineFeed(uint32_t lines);
MACRUM 0:982a7efb3ef0 202
MACRUM 0:982a7efb3ef0 203 /** Clear image buffer of the AS-289R2
MACRUM 0:982a7efb3ef0 204 *
MACRUM 0:982a7efb3ef0 205 */
MACRUM 0:982a7efb3ef0 206 void clearBuffer(void);
MACRUM 4:a2e0373a9cd1 207
MACRUM 0:982a7efb3ef0 208 /** Set double height size font
MACRUM 0:982a7efb3ef0 209 *
MACRUM 0:982a7efb3ef0 210 */
MACRUM 0:982a7efb3ef0 211 void setDoubleSizeHeight(void);
MACRUM 0:982a7efb3ef0 212
MACRUM 0:982a7efb3ef0 213 /** Set normal height size font
MACRUM 0:982a7efb3ef0 214 *
MACRUM 0:982a7efb3ef0 215 */
MACRUM 0:982a7efb3ef0 216 void clearDoubleSizeHeight(void);
MACRUM 0:982a7efb3ef0 217
MACRUM 0:982a7efb3ef0 218 /** Set double width size font
MACRUM 0:982a7efb3ef0 219 *
MACRUM 0:982a7efb3ef0 220 */
MACRUM 0:982a7efb3ef0 221 void setDoubleSizeWidth(void);
MACRUM 0:982a7efb3ef0 222
MACRUM 0:982a7efb3ef0 223 /** Set normal width size font
MACRUM 0:982a7efb3ef0 224 *
MACRUM 0:982a7efb3ef0 225 */
MACRUM 0:982a7efb3ef0 226 void clearDoubleSizeWidth(void);
MACRUM 0:982a7efb3ef0 227
MACRUM 0:982a7efb3ef0 228 /** Set large size font (48x96)
MACRUM 0:982a7efb3ef0 229 *
MACRUM 0:982a7efb3ef0 230 */
MACRUM 0:982a7efb3ef0 231 void setLargeFont(void);
MACRUM 0:982a7efb3ef0 232
MACRUM 0:982a7efb3ef0 233 /** Set normal size font
MACRUM 0:982a7efb3ef0 234 *
MACRUM 0:982a7efb3ef0 235 */
MACRUM 0:982a7efb3ef0 236 void clearLargeFont(void);
MACRUM 0:982a7efb3ef0 237
MACRUM 0:982a7efb3ef0 238 /** Set ANK font
MACRUM 0:982a7efb3ef0 239 *
MACRUM 0:982a7efb3ef0 240 * @param font ANK font e.g. AS289R2::ANK_8x16
MACRUM 0:982a7efb3ef0 241 */
MACRUM 0:982a7efb3ef0 242 void setANKFont(uint32_t font);
MACRUM 0:982a7efb3ef0 243
MACRUM 0:982a7efb3ef0 244 /** Set Kanji font size
MACRUM 0:982a7efb3ef0 245 *
MACRUM 0:982a7efb3ef0 246 * @param font Kanji font e.g. AS289R2::KANJI_16x16
MACRUM 0:982a7efb3ef0 247 */
MACRUM 0:982a7efb3ef0 248 void setKanjiFont(uint32_t font);
MACRUM 0:982a7efb3ef0 249
MACRUM 0:982a7efb3ef0 250 /** Print QR code
MACRUM 0:982a7efb3ef0 251 *
MACRUM 0:982a7efb3ef0 252 * @param err QR code error correction level e.g. AS289R2::QR_ERR_LVL_M
MACRUM 0:982a7efb3ef0 253 * @param buf Data to be printed
MACRUM 0:982a7efb3ef0 254 */
MACRUM 2:ce25d0949cbd 255 void printQRCode(uint32_t err, const char* buf);
MACRUM 0:982a7efb3ef0 256
MACRUM 0:982a7efb3ef0 257 /** Print Bar code
MACRUM 0:982a7efb3ef0 258 *
MACRUM 0:982a7efb3ef0 259 * @param code Type of Bar code e.g. AS289R2::JAN13
MACRUM 0:982a7efb3ef0 260 * @param buf Data to be printed
MACRUM 0:982a7efb3ef0 261 */
MACRUM 2:ce25d0949cbd 262 void printBarCode(uint32_t code, const char* param);
MACRUM 0:982a7efb3ef0 263
MACRUM 0:982a7efb3ef0 264 /** Print bitmap image
MACRUM 0:982a7efb3ef0 265 *
MACRUM 7:f9b9162c7e9d 266 * @param cmd Type of operation mode, 0x61: print image buffer, 0x62: register image buffer, 0x63: register -> print, 0x64: print -> register, 0x65: line print
MACRUM 0:982a7efb3ef0 267 * @param lines Number of print line
MACRUM 0:982a7efb3ef0 268 * @param image Data to be printed
MACRUM 0:982a7efb3ef0 269 */
MACRUM 9:7f8acb87da7c 270 void printBitmapImage(uint32_t cmd, uint16_t lines, const uint8_t * image);
MACRUM 0:982a7efb3ef0 271
MACRUM 4:a2e0373a9cd1 272 /** Set Line Spaceing
MACRUM 4:a2e0373a9cd1 273 *
MACRUM 4:a2e0373a9cd1 274 * @param space line spacing
MACRUM 4:a2e0373a9cd1 275 */
MACRUM 4:a2e0373a9cd1 276 void setLineSpaceing(uint32_t space);
MACRUM 4:a2e0373a9cd1 277
MACRUM 4:a2e0373a9cd1 278 /** Set as default Line Spaceing
MACRUM 4:a2e0373a9cd1 279 *
MACRUM 4:a2e0373a9cd1 280 */
MACRUM 4:a2e0373a9cd1 281 void defaultLineSpaceing(void);
MACRUM 4:a2e0373a9cd1 282
MACRUM 4:a2e0373a9cd1 283 /** Set Print Direction
MACRUM 4:a2e0373a9cd1 284 *
MACRUM 7:f9b9162c7e9d 285 * @param direction Print direction, 0: lister, 1: texter
MACRUM 4:a2e0373a9cd1 286 */
MACRUM 4:a2e0373a9cd1 287 void setPrintDirection(uint32_t direction);
MACRUM 4:a2e0373a9cd1 288
MACRUM 4:a2e0373a9cd1 289 /** Send feed code
MACRUM 4:a2e0373a9cd1 290 *
MACRUM 4:a2e0373a9cd1 291 * @param space Paper feed
MACRUM 4:a2e0373a9cd1 292 */
MACRUM 4:a2e0373a9cd1 293 void putPaperFeed(uint32_t space);
MACRUM 4:a2e0373a9cd1 294
MACRUM 4:a2e0373a9cd1 295 /** Set Inter Character Space
MACRUM 4:a2e0373a9cd1 296 *
MACRUM 4:a2e0373a9cd1 297 * @param space inter-character space
MACRUM 4:a2e0373a9cd1 298 */
MACRUM 4:a2e0373a9cd1 299 void setInterCharacterSpace(uint32_t space);
MACRUM 4:a2e0373a9cd1 300
MACRUM 4:a2e0373a9cd1 301 /** Set as default Inter Character Space
MACRUM 4:a2e0373a9cd1 302 *
MACRUM 4:a2e0373a9cd1 303 */
MACRUM 4:a2e0373a9cd1 304 void defaultInterCharacterSpace(void);
MACRUM 4:a2e0373a9cd1 305
MACRUM 4:a2e0373a9cd1 306 /** Send Print Position
MACRUM 4:a2e0373a9cd1 307 *
MACRUM 4:a2e0373a9cd1 308 * @param position Print position
MACRUM 4:a2e0373a9cd1 309 */
MACRUM 4:a2e0373a9cd1 310 void putPrintPosition(uint32_t position);
MACRUM 4:a2e0373a9cd1 311
MACRUM 4:a2e0373a9cd1 312 /** Set Script
MACRUM 4:a2e0373a9cd1 313 *
MACRUM 7:f9b9162c7e9d 314 * @param script mode e.g. AS289R2::SCRIPT_SUPER
MACRUM 4:a2e0373a9cd1 315 */
MACRUM 7:f9b9162c7e9d 316 void setScript(script_mode script);
MACRUM 4:a2e0373a9cd1 317
MACRUM 4:a2e0373a9cd1 318 /** Clear Script
MACRUM 4:a2e0373a9cd1 319 *
MACRUM 4:a2e0373a9cd1 320 */
MACRUM 4:a2e0373a9cd1 321 void clearScript(void);
MACRUM 4:a2e0373a9cd1 322
MACRUM 4:a2e0373a9cd1 323 /** Set Quadruple size
MACRUM 4:a2e0373a9cd1 324 *
MACRUM 4:a2e0373a9cd1 325 */
MACRUM 4:a2e0373a9cd1 326 void setQuadrupleSize(void);
MACRUM 4:a2e0373a9cd1 327
MACRUM 4:a2e0373a9cd1 328 /** Clear Quadruple size
MACRUM 4:a2e0373a9cd1 329 *
MACRUM 4:a2e0373a9cd1 330 */
MACRUM 4:a2e0373a9cd1 331 void clearQuadrupleSize(void);
MACRUM 4:a2e0373a9cd1 332
MACRUM 4:a2e0373a9cd1 333 /** Set Enlargement size
MACRUM 4:a2e0373a9cd1 334 *
MACRUM 4:a2e0373a9cd1 335 * @param width enlargement
MACRUM 4:a2e0373a9cd1 336 * @param height enlargement
MACRUM 4:a2e0373a9cd1 337 */
MACRUM 4:a2e0373a9cd1 338 void setEnlargement(uint32_t width, uint32_t height);
MACRUM 4:a2e0373a9cd1 339
MACRUM 4:a2e0373a9cd1 340 /** Clear Enlargement size
MACRUM 4:a2e0373a9cd1 341 *
MACRUM 4:a2e0373a9cd1 342 */
MACRUM 4:a2e0373a9cd1 343 void clearEnlargement(void);
MACRUM 4:a2e0373a9cd1 344
MACRUM 4:a2e0373a9cd1 345 /** Set BarCode Height size
MACRUM 4:a2e0373a9cd1 346 *
MACRUM 4:a2e0373a9cd1 347 * @param height Bar height
MACRUM 4:a2e0373a9cd1 348 */
MACRUM 4:a2e0373a9cd1 349 void setBarCodeHeight(uint32_t height);
MACRUM 4:a2e0373a9cd1 350
MACRUM 4:a2e0373a9cd1 351 /** Set as default BarCode Height size
MACRUM 4:a2e0373a9cd1 352 *
MACRUM 4:a2e0373a9cd1 353 */
MACRUM 4:a2e0373a9cd1 354 void defaultBarCodeHeight(void);
MACRUM 4:a2e0373a9cd1 355
MACRUM 4:a2e0373a9cd1 356 /** Set BarCode Bar size
MACRUM 4:a2e0373a9cd1 357 *
MACRUM 4:a2e0373a9cd1 358 * @param narrowbar narrow bars size
MACRUM 4:a2e0373a9cd1 359 * @param widebar wide bars size
MACRUM 4:a2e0373a9cd1 360 */
MACRUM 4:a2e0373a9cd1 361 void setBarCodeBarSize(uint32_t narrowbar, uint32_t widebar);
MACRUM 4:a2e0373a9cd1 362
MACRUM 4:a2e0373a9cd1 363 /** Set as default BarCode Bar size
MACRUM 4:a2e0373a9cd1 364 *
MACRUM 4:a2e0373a9cd1 365 */
MACRUM 4:a2e0373a9cd1 366 void defaultBarCodeBarSize(void);
MACRUM 4:a2e0373a9cd1 367
MACRUM 0:982a7efb3ef0 368 private:
MACRUM 10:b7d6c02caf97 369 RawSerial *_serial_p;
MACRUM 10:b7d6c02caf97 370 RawSerial &_serial;
MACRUM 0:982a7efb3ef0 371
MACRUM 0:982a7efb3ef0 372 protected:
MACRUM 0:982a7efb3ef0 373 // Stream implementation functions
MACRUM 0:982a7efb3ef0 374 virtual int _putc(int value);
MACRUM 0:982a7efb3ef0 375 virtual int _getc();
MACRUM 0:982a7efb3ef0 376 };
MACRUM 0:982a7efb3ef0 377
MACRUM 0:982a7efb3ef0 378 #endif