Thermal Printer Basic Print Operations
Embed:
(wiki syntax)
Show/hide line numbers
APSEPM207LV.cpp
00001 00002 00003 #include "mbed.h" 00004 #include "APSEPM207LV.h" 00005 00006 APSEPM207LV::APSEPM207LV(PinName tx, PinName rx,uint32_t baud) 00007 : 00008 _serial_p(new Serial(tx, rx)), 00009 _serial(*_serial_p) 00010 { 00011 _serial.baud(baud); 00012 initialize(); 00013 } 00014 00015 APSEPM207LV::APSEPM207LV(Serial &serial_obj, uint32_t baud) 00016 : 00017 _serial_p(NULL), 00018 _serial(serial_obj) 00019 { 00020 _serial.baud(baud); 00021 initialize(); 00022 } 00023 00024 APSEPM207LV::~APSEPM207LV() 00025 { 00026 } 00027 00028 00029 void APSEPM207LV::initialize(void) 00030 { 00031 _serial.putc(0x1B); 00032 _serial.putc(0x40); 00033 } 00034 00035 void APSEPM207LV::printTest(void) 00036 { 00037 _serial.putc(0x1D); 00038 _serial.putc(0x28); 00039 _serial.putc(0x41); 00040 } 00041 00042 00043 void APSEPM207LV::lineFeed(void) 00044 { 00045 _serial.putc(0x0A); 00046 00047 } 00048 00049 00050 void APSEPM207LV::carriageReturn(void) 00051 { 00052 _serial.putc(0x0D); 00053 } 00054 00055 00056 00057 void APSEPM207LV::putLineFeed(uint8_t lines) 00058 { 00059 for(uint32_t i = 0; i < lines; i++) { 00060 _serial.putc('\r'); 00061 } 00062 } 00063 00064 void APSEPM207LV::printnputLineFeed(uint8_t lines) 00065 { 00066 _serial.putc(0x1B); 00067 _serial.putc(0x64); 00068 _serial.putc(lines); 00069 00070 } 00071 00072 void APSEPM207LV::setdefaultLinespacing(void) 00073 { 00074 _serial.putc(0x1B); 00075 _serial.putc(0x32); 00076 _serial.putc(0x32); 00077 00078 } 00079 00080 void APSEPM207LV::setLinespacing(uint8_t lines) 00081 { 00082 uint8_t num=32; 00083 if(lines==1) 00084 num=32; 00085 else if(lines==2) 00086 num=64; 00087 else if(lines==3) 00088 num=96; 00089 00090 00091 _serial.putc(0x1B); 00092 _serial.putc(0x33); 00093 _serial.putc(num); 00094 00095 } 00096 00097 void APSEPM207LV::setleftMargin(uint8_t n1, uint8_t n2) 00098 { 00099 _serial.putc(0x1D); 00100 _serial.putc(0x4C); 00101 _serial.putc(n1); 00102 _serial.putc(n2); 00103 } 00104 00105 void APSEPM207LV::absoluteprintPosition(uint8_t n1, uint8_t n2) 00106 { 00107 _serial.putc(0x1B); 00108 _serial.putc(0x24); 00109 _serial.putc(n1); 00110 _serial.putc(n2); 00111 } 00112 00113 void APSEPM207LV::whiteblack(uint8_t n1) 00114 { 00115 _serial.putc(0x1D); 00116 _serial.putc(0x42); 00117 _serial.putc(n1);// n1=0 for OFF n1=1 for ON 00118 00119 } 00120 00121 void APSEPM207LV::papersensorstatus(void) 00122 { 00123 _serial.putc(0x1B); 00124 _serial.putc(0x76); 00125 00126 // Poll Rx pin of printer Here 00127 //0x00 Paper Present 00128 //0x20 Paper Absent 00129 } 00130 00131 void APSEPM207LV::printModes(uint8_t n) 00132 { 00133 _serial.putc(0x1B); 00134 _serial.putc(0x21); 00135 _serial.putc(n); 00136 00137 00138 00139 //Possible values for n 00140 //00 = 32 Char Normal 08 = 32 Char BOLD 00141 //01 = 24 Char Normal 09 = 24 Char BOLD 00142 //11 = 24 Char Double Height 19 = 24 Char Double Height & BOLD 00143 //21 = 24 Char Double Width 29 = 24 Char Double Width & BOLD 00144 //31 = 24 Char Double Height & Double Width 39 = 24 Char Double Height & Double Width & BOLD 00145 //10 = 32 Char Double Height 18 = 32 Char Double Height & BOLD 00146 //20 = 32 Char Double Width 28 = 32 Char Double Width & BOLD 00147 //30 = 32 Char Double Height & Double Width 38 = 32 Char Double Height & Double Width & BOLD 00148 00149 } 00150 00151 void APSEPM207LV::clearBuffer(void) 00152 { 00153 _serial.putc(0x18); 00154 } 00155 00156 void APSEPM207LV::putHorizontaltab(void) 00157 { 00158 _serial.putc(0x09); 00159 } 00160 00161 void APSEPM207LV::setDoubleSizeHeight(void) 00162 { 00163 _serial.printf("\x1D\x21\x01"); 00164 } 00165 00166 void APSEPM207LV::clearDoubleSizeHeight(void) 00167 { 00168 _serial.printf("\x1D\x21\x00"); 00169 } 00170 00171 void APSEPM207LV::setDoubleSizeWidth(void) 00172 { 00173 _serial.printf("\x1D\x21\x10"); 00174 } 00175 00176 void APSEPM207LV::clearDoubleSizeWidth(void) 00177 { 00178 _serial.printf("\x1D\x21\x00"); 00179 } 00180 00181 void APSEPM207LV::setLargeFont(void) 00182 { 00183 _serial.printf("\x1D\x21\x11"); 00184 } 00185 00186 void APSEPM207LV::clearLargeFont() 00187 { 00188 _serial.printf("\x1D\x21\x00"); 00189 } 00190 00191 void APSEPM207LV::setANKFont(uint32_t font) 00192 { 00193 _serial.putc(0x1B); 00194 _serial.putc(0x68); 00195 _serial.putc(font); 00196 } 00197 00198 void APSEPM207LV::setKanjiFont(uint32_t font) 00199 { 00200 _serial.putc(0x12); 00201 _serial.putc(0x53); 00202 _serial.putc(font); 00203 } 00204 00205 void APSEPM207LV::printQRCode(uint32_t err, const char* param) 00206 { 00207 uint32_t len = strlen(param); 00208 char buf[4] = {0x1D, 0x78}; 00209 buf[2] = err; 00210 buf[3] = len; 00211 for (uint32_t i = 0; i < sizeof(buf); i++) { 00212 _serial.putc(buf[i]); 00213 } 00214 for (uint32_t i = 0; i < len; i++) { 00215 _serial.putc(param[i]); 00216 } 00217 } 00218 00219 void APSEPM207LV::printBarCode(uint32_t code, const char* param) 00220 { 00221 char buf[3] = {0x1D, 0x6B}; 00222 buf[2] = code; 00223 for (uint32_t i = 0; i < sizeof(buf); i++) { 00224 _serial.putc(buf[i]); 00225 } 00226 for (uint32_t i = 0; i < strlen(param); i++) { 00227 _serial.putc(param[i]); 00228 } 00229 _serial.putc('\0'); 00230 } 00231 00232 void APSEPM207LV::printBitmapImage(uint32_t mode, uint16_t lines, const uint8_t * image) 00233 { 00234 char buf[3] = {0x1C, 0x2A}; 00235 buf[2] = mode; 00236 for (uint32_t i = 0; i < sizeof(buf); i++) { 00237 _serial.putc(buf[i]); 00238 } 00239 _serial.putc((lines >> 8) & 0xFF); // n1 00240 _serial.putc((lines >> 0) & 0xFF); // n2 00241 00242 if (mode == 0x61) { 00243 return; 00244 } 00245 00246 for (uint32_t i = 0; i < (48 * lines); i++) { 00247 _serial.putc(image[i]); 00248 } 00249 } 00250 00251 void APSEPM207LV::setLineSpaceing(uint32_t space) 00252 { 00253 _serial.putc(0x1B); 00254 _serial.putc(0x33); 00255 _serial.putc(space); 00256 } 00257 00258 void APSEPM207LV::defaultLineSpaceing() 00259 { 00260 _serial.printf("\x1B\x33\x04"); 00261 } 00262 00263 void APSEPM207LV::setPrintDirection(uint32_t direction) 00264 { 00265 _serial.putc(0x1B); 00266 _serial.putc(0x49); 00267 _serial.putc(direction); 00268 } 00269 00270 void APSEPM207LV::putPaperFeed(uint32_t space) 00271 { 00272 _serial.putc(0x1B); 00273 _serial.putc(0x4A); 00274 _serial.putc(space); 00275 } 00276 00277 void APSEPM207LV::setInterCharacterSpace(uint32_t space) 00278 { 00279 _serial.putc(0x1B); 00280 _serial.putc(0x20); 00281 _serial.putc(space); 00282 } 00283 00284 void APSEPM207LV::defaultInterCharacterSpace() 00285 { 00286 _serial.printf("\x1B\x20\x01"); 00287 } 00288 00289 void APSEPM207LV::putPrintPosition(uint32_t position) 00290 { 00291 _serial.putc(0x1B); 00292 _serial.putc(0x6c); 00293 _serial.putc(position); 00294 } 00295 00296 void APSEPM207LV::setScript(script_mode script) 00297 { 00298 _serial.putc(0x1B); 00299 _serial.putc(0x73); 00300 _serial.putc(script); 00301 } 00302 00303 00304 00305 void APSEPM207LV::clearScript() 00306 { 00307 _serial.printf("\x1B\x73\x30"); 00308 } 00309 00310 void APSEPM207LV::setQuadrupleSize() 00311 { 00312 _serial.printf("\x1C\x57\x31"); 00313 } 00314 00315 void APSEPM207LV::clearQuadrupleSize() 00316 { 00317 _serial.printf("\x1C\x57\x30"); 00318 } 00319 00320 void APSEPM207LV::setEnlargement(uint32_t width, uint32_t height) 00321 { 00322 _serial.putc(0x1C); 00323 _serial.putc(0x65); 00324 _serial.putc(width); 00325 _serial.putc(height); 00326 } 00327 00328 void APSEPM207LV::clearEnlargement() 00329 { 00330 _serial.printf("\x1C\x65\x31\x31"); 00331 } 00332 00333 void APSEPM207LV::setBarCodeHeight(uint32_t height) 00334 { 00335 _serial.putc(0x1D); 00336 _serial.putc(0x68); 00337 _serial.putc(height); 00338 } 00339 00340 void APSEPM207LV::defaultBarCodeHeight() 00341 { 00342 _serial.printf("\x1D\x68\x50"); 00343 } 00344 00345 void APSEPM207LV::setBarCodeBarSize(uint32_t narrowbar, uint32_t widebar) 00346 { 00347 _serial.putc(0x1D); 00348 _serial.putc(0x77); 00349 _serial.putc(narrowbar); 00350 _serial.putc(widebar); 00351 } 00352 00353 void APSEPM207LV::defaultBarCodeBarSize() 00354 { 00355 _serial.printf("\x1D\x77\x02\x05"); 00356 } 00357 00358 int APSEPM207LV::_putc(int value) 00359 { 00360 _serial.putc(value); 00361 return value; 00362 } 00363 00364 int APSEPM207LV::_getc() 00365 { 00366 return -1; 00367 } 00368 00369 00370
Generated on Thu Jul 28 2022 13:51:15 by
![doxygen](doxygen.png)