Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
EPSON.cpp
00001 #include "mbed.h" 00002 #include "EPSON.h" 00003 00004 EPSON::EPSON(PinName tx, PinName rx,uint32_t baud) 00005 : 00006 _serial_p(new Serial(tx, rx)), 00007 _serial(*_serial_p) 00008 { 00009 _serial.baud(baud); 00010 initialize(); 00011 } 00012 00013 EPSON::EPSON(Serial &serial_obj, uint32_t baud) 00014 : 00015 _serial_p(NULL), 00016 _serial(serial_obj) 00017 { 00018 _serial.baud(baud); 00019 initialize(); 00020 } 00021 00022 EPSON::~EPSON() 00023 { 00024 } 00025 00026 00027 void EPSON::initialize(void) 00028 { 00029 _serial.putc(0x1B); 00030 _serial.putc(0x40); 00031 _serial.putc(0x1C); 00032 } 00033 00034 00035 void EPSON::printLeft(void) 00036 { 00037 _serial.putc(0x1B); 00038 _serial.putc(0x40); 00039 _serial.putc(0x30); 00040 } 00041 00042 void EPSON::printRight(void) 00043 { 00044 _serial.putc(0x1B); 00045 _serial.putc(0x40); 00046 _serial.putc(0x32); 00047 } 00048 00049 00050 00051 void EPSON::printCenter(void) 00052 { 00053 _serial.putc(0x1B); 00054 _serial.putc(0x40); 00055 _serial.putc(0x31); 00056 } 00057 00058 void EPSON::font_Zero(void) 00059 { 00060 _serial.putc(0x1D); 00061 _serial.putc(0x21); 00062 _serial.putc(0x00); 00063 } 00064 00065 void EPSON::font_OneZero(void) 00066 { 00067 _serial.putc(0x1D); 00068 _serial.putc(0x21); 00069 _serial.putc(0x10); 00070 } 00071 00072 void EPSON::font_ZeroOne(void) 00073 { 00074 _serial.putc(0x1D); 00075 _serial.putc(0x21); 00076 _serial.putc(0x01); 00077 } 00078 00079 int EPSON:: PrintBarCode(char *data,int ilen) 00080 { 00081 char str_pdata[100]; 00082 char header[] = {0x1D, 0x48, 0x02, 0x1D, 0x66, 0x00, 0x1D, 0x68, 0x51, 0x1D, 0x77, 0x02, 0x1D, 0x6B, 0x49}; 00083 int idata_len, raw_data_len; 00084 00085 memset(str_pdata, 0x00, sizeof(str_pdata)); 00086 00087 memcpy(str_pdata,header, 15); 00088 idata_len = 15; 00089 00090 raw_data_len = ilen + 2; 00091 str_pdata[idata_len] = raw_data_len; 00092 00093 idata_len++; 00094 memcpy(str_pdata+idata_len, "{A", 2); 00095 idata_len += 2; 00096 memcpy(str_pdata+idata_len, data, ilen); 00097 idata_len += ilen; 00098 00099 _serial.printf("%s",str_pdata ); 00100 00101 return 1; 00102 00103 } 00104 00105 00106 void EPSON::printTest(void) 00107 { 00108 _serial.putc(0x1D); 00109 _serial.putc(0x28); 00110 _serial.putc(0x41); 00111 } 00112 00113 00114 void EPSON::lineFeed(void) 00115 { 00116 _serial.putc(0x0A); 00117 00118 } 00119 00120 00121 void EPSON::carriageReturn(void) 00122 { 00123 _serial.putc(0x0D); 00124 } 00125 00126 00127 00128 void EPSON::putLineFeed(uint8_t lines) 00129 { 00130 for(uint32_t i = 0; i < lines; i++) { 00131 _serial.putc('\r'); 00132 } 00133 } 00134 00135 void EPSON::printnputLineFeed(uint8_t lines) 00136 { 00137 _serial.putc(0x1B); 00138 _serial.putc(0x64); 00139 _serial.putc(lines); 00140 00141 } 00142 00143 void EPSON::setdefaultLinespacing(void) 00144 { 00145 _serial.putc(0x1B); 00146 _serial.putc(0x32); 00147 _serial.putc(0x32); 00148 00149 } 00150 00151 void EPSON::setLinespacing(uint8_t lines) 00152 { 00153 uint8_t num=32; 00154 if(lines==1) 00155 num=32; 00156 else if(lines==2) 00157 num=64; 00158 else if(lines==3) 00159 num=96; 00160 00161 00162 _serial.putc(0x1B); 00163 _serial.putc(0x33); 00164 _serial.putc(num); 00165 00166 } 00167 00168 void EPSON::setleftMargin(uint8_t n1, uint8_t n2) 00169 { 00170 _serial.putc(0x1D); 00171 _serial.putc(0x4C); 00172 _serial.putc(n1); 00173 _serial.putc(n2); 00174 } 00175 00176 void EPSON::absoluteprintPosition(uint8_t n1, uint8_t n2) 00177 { 00178 _serial.putc(0x1B); 00179 _serial.putc(0x24); 00180 _serial.putc(n1); 00181 _serial.putc(n2); 00182 } 00183 00184 void EPSON::whiteblack(uint8_t n1) 00185 { 00186 _serial.putc(0x1D); 00187 _serial.putc(0x42); 00188 _serial.putc(n1);// n1=0 for OFF n1=1 for ON 00189 00190 } 00191 00192 void EPSON::papersensorstatus(void) 00193 { 00194 _serial.putc(0x1B); 00195 _serial.putc(0x76); 00196 00197 // Poll Rx pin of printer Here 00198 //0x00 Paper Present 00199 //0x20 Paper Absent 00200 } 00201 00202 void EPSON::printModes(uint8_t n) 00203 { 00204 _serial.putc(0x1B); 00205 _serial.putc(0x21); 00206 _serial.putc(n); 00207 00208 00209 00210 //Possible values for n 00211 //00 = 32 Char Normal 08 = 32 Char BOLD 00212 //01 = 24 Char Normal 09 = 24 Char BOLD 00213 //11 = 24 Char Double Height 19 = 24 Char Double Height & BOLD 00214 //21 = 24 Char Double Width 29 = 24 Char Double Width & BOLD 00215 //31 = 24 Char Double Height & Double Width 39 = 24 Char Double Height & Double Width & BOLD 00216 //10 = 32 Char Double Height 18 = 32 Char Double Height & BOLD 00217 //20 = 32 Char Double Width 28 = 32 Char Double Width & BOLD 00218 //30 = 32 Char Double Height & Double Width 38 = 32 Char Double Height & Double Width & BOLD 00219 00220 } 00221 00222 void EPSON::clearBuffer(void) 00223 { 00224 _serial.putc(0x18); 00225 00226 00227 // 00228 //[Name] Clear buffer(s) 00229 //[Format] 00230 //ASCII DLE DC4 fn d1 d2 d3 d4 d5 d6 d7 00231 //Hex 10 14 08 01 03 14 01 06 02 08 00232 //Decimal 16 20 8 1 3 20 1 6 2 8 00233 00234 00235 _serial.putc(0x10); 00236 _serial.putc(0x14); 00237 _serial.putc(0x08); 00238 _serial.putc(0x01); 00239 _serial.putc(0x03); 00240 _serial.putc(0x14); 00241 _serial.putc(0x01); 00242 _serial.putc(0x06); 00243 _serial.putc(0x02); 00244 _serial.putc(0x08); 00245 00246 } 00247 00248 void EPSON::putHorizontaltab(void) 00249 { 00250 _serial.putc(0x09); 00251 } 00252 00253 void EPSON::setDoubleSizeHeight(void) 00254 { 00255 _serial.printf("\x1D\x21\x01"); 00256 } 00257 00258 void EPSON::clearDoubleSizeHeight(void) 00259 { 00260 _serial.printf("\x1D\x21\x00"); 00261 } 00262 00263 void EPSON::setDoubleSizeWidth(void) 00264 { 00265 _serial.printf("\x1D\x21\x10"); 00266 } 00267 00268 void EPSON::clearDoubleSizeWidth(void) 00269 { 00270 _serial.printf("\x1D\x21\x00"); 00271 } 00272 00273 void EPSON::setLargeFont(void) 00274 { 00275 _serial.printf("\x1D\x21\x11"); 00276 } 00277 00278 void EPSON::clearLargeFont() 00279 { 00280 _serial.printf("\x1D\x21\x00"); 00281 } 00282 00283 void EPSON::setANKFont(uint32_t font) 00284 { 00285 _serial.putc(0x1B); 00286 _serial.putc(0x68); 00287 _serial.putc(font); 00288 } 00289 00290 void EPSON::setKanjiFont(uint32_t font) 00291 { 00292 _serial.putc(0x12); 00293 _serial.putc(0x53); 00294 _serial.putc(font); 00295 } 00296 00297 void EPSON::printQRCode(uint32_t err, const char* param) 00298 { 00299 uint32_t len = strlen(param); 00300 char buf[4] = {0x1D, 0x78}; 00301 buf[2] = err; 00302 buf[3] = len; 00303 for (uint32_t i = 0; i < sizeof(buf); i++) { 00304 _serial.putc(buf[i]); 00305 } 00306 for (uint32_t i = 0; i < len; i++) { 00307 _serial.putc(param[i]); 00308 } 00309 } 00310 00311 void EPSON::printBarCode(uint32_t code, const char* param) 00312 { 00313 char buf[3] = {0x1D, 0x6B}; 00314 buf[2] = code; 00315 for (uint32_t i = 0; i < sizeof(buf); i++) { 00316 _serial.putc(buf[i]); 00317 } 00318 for (uint32_t i = 0; i < strlen(param); i++) { 00319 _serial.putc(param[i]); 00320 } 00321 _serial.putc('\0'); 00322 } 00323 00324 void EPSON::printBitmapImage(uint32_t mode, uint16_t lines, const uint8_t * image) 00325 { 00326 char buf[3] = {0x1C, 0x2A}; 00327 buf[2] = mode; 00328 for (uint32_t i = 0; i < sizeof(buf); i++) { 00329 _serial.putc(buf[i]); 00330 } 00331 _serial.putc((lines >> 8) & 0xFF); // n1 00332 _serial.putc((lines >> 0) & 0xFF); // n2 00333 00334 if (mode == 0x61) { 00335 return; 00336 } 00337 00338 for (uint32_t i = 0; i < (48 * lines); i++) { 00339 _serial.putc(image[i]); 00340 } 00341 } 00342 00343 void EPSON::setLineSpaceing(uint32_t space) 00344 { 00345 _serial.putc(0x1B); 00346 _serial.putc(0x33); 00347 _serial.putc(space); 00348 } 00349 00350 void EPSON::defaultLineSpaceing() 00351 { 00352 _serial.printf("\x1B\x33\x04"); 00353 } 00354 00355 void EPSON::setPrintDirection(uint32_t direction) 00356 { 00357 _serial.putc(0x1B); 00358 _serial.putc(0x49); 00359 _serial.putc(direction); 00360 } 00361 00362 void EPSON::putPaperFeed(uint32_t space) 00363 { 00364 _serial.putc(0x1B); 00365 _serial.putc(0x4A); 00366 _serial.putc(space); 00367 } 00368 00369 void EPSON::setInterCharacterSpace(uint32_t space) 00370 { 00371 _serial.putc(0x1B); 00372 _serial.putc(0x20); 00373 _serial.putc(space); 00374 } 00375 00376 void EPSON::defaultInterCharacterSpace() 00377 { 00378 _serial.printf("\x1B\x20\x01"); 00379 } 00380 00381 void EPSON::putPrintPosition(uint32_t position) 00382 { 00383 _serial.putc(0x1B); 00384 _serial.putc(0x6c); 00385 _serial.putc(position); 00386 } 00387 00388 void EPSON::setScript(script_mode script) 00389 { 00390 _serial.putc(0x1B); 00391 _serial.putc(0x73); 00392 _serial.putc(script); 00393 } 00394 00395 00396 00397 void EPSON::clearScript() 00398 { 00399 _serial.printf("\x1B\x73\x30"); 00400 } 00401 00402 void EPSON::setQuadrupleSize() 00403 { 00404 _serial.printf("\x1C\x57\x31"); 00405 } 00406 00407 void EPSON::clearQuadrupleSize() 00408 { 00409 _serial.printf("\x1C\x57\x30"); 00410 } 00411 00412 void EPSON::setEnlargement(uint32_t width, uint32_t height) 00413 { 00414 _serial.putc(0x1C); 00415 _serial.putc(0x65); 00416 _serial.putc(width); 00417 _serial.putc(height); 00418 } 00419 00420 void EPSON::clearEnlargement() 00421 { 00422 _serial.printf("\x1C\x65\x31\x31"); 00423 } 00424 00425 void EPSON::setBarCodeHeight(uint32_t height) 00426 { 00427 _serial.putc(0x1D); 00428 _serial.putc(0x68); 00429 _serial.putc(height); 00430 } 00431 00432 void EPSON::defaultBarCodeHeight() 00433 { 00434 _serial.printf("\x1D\x68\x50"); 00435 } 00436 00437 00438 00439 void EPSON::setBarCodeBarSize(uint32_t narrowbar, uint32_t widebar) 00440 { 00441 _serial.putc(0x1D); 00442 _serial.putc(0x77); 00443 _serial.putc(narrowbar); 00444 _serial.putc(widebar); 00445 } 00446 00447 00448 void EPSON::defaultBarCodeBarSize() 00449 { 00450 _serial.printf("\x1D\x77\x02\x05"); 00451 } 00452 00453 int EPSON::_putc(int value) 00454 { 00455 _serial.putc(value); 00456 return value; 00457 } 00458 00459 int EPSON::_getc() 00460 { 00461 return -1; 00462 }
Generated on Sat Jul 16 2022 02:27:43 by
1.7.2