Thermal Printer Basic Print Operations
APSEPM207LV.h
- Committer:
- shivanandgowdakr
- Date:
- 2018-05-21
- Revision:
- 1:8372894bfc19
- Parent:
- 0:ddb341bbd487
File content as of revision 1:8372894bfc19:
/** ****************************************************************************** * @file APSEPM207LV.h * @author Shivanand Gowda * @version V1.0.0 * @date 21 May 2018 * @brief This file contains the class of a APSEPM207LV thermal control component ****************************************************************************** * @attention * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ #ifndef MBED_APSEPM207LV_H #define MBED_APSEPM207LV_H #include "mbed.h" #if defined(__CC_ARM) // To avoid "invalid multibyte character sequence" warning #pragma diag_suppress 870 #endif class APSEPM207LV : public Stream { public: /** * @enum Kanji_font_size * Value of Japanese Kanji font size */ enum Kanji_font_size { //! 24x24 dot font KANJI_24x24 = 0x30, //! 16x16 dot font KANJI_16x16, //! Defalut font size KANJI_DEFAULT = KANJI_24x24 }; /** * @enum ANK_font_size * Value of ANK font size */ enum ANK_font_size { //! 8x16 dot font ANK_8x16 = 0x30, //! 12x24 dot font ANK_12x24, //! 16x16 dot font ANK_16x16, //! 24x24 dot fot ANK_24x24, //! Defalut font size ANK_DEFAULT = ANK_12x24 }; /** * @enum QRcode_error_level * Value of CQ code error correction level */ enum QRcode_error_level { //! Error correction level L (7%) QR_ERR_LVL_L = 0x4C, //! Error correction level M (15%) QR_ERR_LVL_M = 0x4D, //! Error correction level Q (25%) QR_ERR_LVL_Q = 0x51, //! Error correction level H (30%) QR_ERR_LVL_H = 0x48 }; /** * @enum barcode_mode * Value of barcode mode */ enum barcode_mode { //! UPC-A : 11-digit, d1-d11, C/D BCODE_UPC_A = 0x30, //! JAN13 : 12-digit, d1-d12, C/D BCODE_JAN13 = 0x32, //! JAN8 : 7-digit, d1-d7, C/D BCODE_JAN8, //! CODE39 : variable, d1-d20, C/D BCODE_CODE39, //! ITF : variable, d1-d20 BCODE_ITF, //! CODABAR (NW7) : variable, d1-d20 BCODE_CODABAR }; /** * @enum script_mode * Value of script mode */ enum script_mode { //! Cancel script mode SCRIPT_CANCEL = 0, //! Super script SCRIPT_SUPER, //! Sub script SCRIPT_SUB }; /** Create a APSEPM207LV instance * which is connected to specified Serial pin with specified baud rate * * @param tx Serial TX pin * @param baud (option) serial baud rate (default: 9600bps) */ APSEPM207LV(PinName tx,PinName rx, uint32_t baud = 9600); /** Create a APSEPM207LV instance * which is connected to specified Serial instance with specified baud rate * * @param serial_obj Serial object (instance) * @param baud (option) serial baud rate (default: 9600bps) */ APSEPM207LV(Serial &serial_obj, uint32_t baud = 9600); /** Destructor of APSEPM207LV */ virtual ~APSEPM207LV(); /** Initializa APSEPM207LV * * Issues initialize command for AS-289R2 * */ void initialize(void); /** Send line feed code * which is connected to specified Serial pin with specified baud rate * * @param lines Number of line feed */ void printTest(void); void printnputLineFeed(uint8_t lines); void lineFeed(void); void putHorizontaltab(void); void setdefaultLinespacing(void); void setLinespacing(uint8_t lines); void setleftMargin(uint8_t n1, uint8_t n2); void absoluteprintPosition(uint8_t n1, uint8_t n2); void whiteblack(uint8_t n1); void papersensorstatus(void); void carriageReturn(void); void printModes(uint8_t n); /** pur Horizontal Tab * */ void putLineFeed(uint8_t lines); /** Clear image buffer of the AS-289R2 * */ void clearBuffer(void); /** Set double height size font * */ void setDoubleSizeHeight(void); /** Set normal height size font * */ void clearDoubleSizeHeight(void); /** Set double width size font * */ void setDoubleSizeWidth(void); /** Set normal width size font * */ void clearDoubleSizeWidth(void); /** Set large size font (48x96) * */ void setLargeFont(void); /** Set normal size font * */ void clearLargeFont(void); /** Set ANK font * * @param font ANK font e.g. APSEPM207LV::ANK_8x16 */ void setANKFont(uint32_t font); /** Set Kanji font size * * @param font Kanji font e.g. APSEPM207LV::KANJI_16x16 */ void setKanjiFont(uint32_t font); /** Print QR code * * @param err QR code error correction level e.g. APSEPM207LV::QR_ERR_LVL_M * @param buf Data to be printed */ void printQRCode(uint32_t err, const char* buf); /** Print Bar code * * @param code Type of Bar code e.g. APSEPM207LV::JAN13 * @param buf Data to be printed */ void printBarCode(uint32_t code, const char* param); /** Print bitmap image * * @param cmd Type of operation mode, 0x61: print image buffer, 0x62: register image buffer, 0x63: register -> print, 0x64: print -> register, 0x65: line print * @param lines Number of print line * @param image Data to be printed */ void printBitmapImage(uint32_t cmd, uint16_t lines, const uint8_t * image); /** Set Line Spaceing * * @param space line spacing */ void setLineSpaceing(uint32_t space); /** Set as default Line Spaceing * */ void defaultLineSpaceing(void); /** Set Print Direction * * @param direction Print direction, 0: lister, 1: texter */ void setPrintDirection(uint32_t direction); /** Send feed code * * @param space Paper feed */ void putPaperFeed(uint32_t space); /** Set Inter Character Space * * @param space inter-character space */ void setInterCharacterSpace(uint32_t space); /** Set as default Inter Character Space * */ void defaultInterCharacterSpace(void); /** Send Print Position * * @param position Print position */ void putPrintPosition(uint32_t position); /** Set Script * * @param script mode e.g. APSEPM207LV::SCRIPT_SUPER */ void setScript(script_mode script); /** Clear Script * */ void clearScript(void); /** Set Quadruple size * */ void setQuadrupleSize(void); /** Clear Quadruple size * */ void clearQuadrupleSize(void); /** Set Enlargement size * * @param width enlargement * @param height enlargement */ void setEnlargement(uint32_t width, uint32_t height); /** Clear Enlargement size * */ void clearEnlargement(void); /** Set BarCode Height size * * @param height Bar height */ void setBarCodeHeight(uint32_t height); /** Set as default BarCode Height size * */ void defaultBarCodeHeight(void); /** Set BarCode Bar size * * @param narrowbar narrow bars size * @param widebar wide bars size */ void setBarCodeBarSize(uint32_t narrowbar, uint32_t widebar); /** Set as default BarCode Bar size * */ void defaultBarCodeBarSize(void); private: Serial *_serial_p; Serial &_serial; protected: // Stream implementation functions virtual int _putc(int value); virtual int _getc(); }; #endif