AS-289R2 Thermal Printer Shield Sample Program.

Dependencies:   AS289R2

Fork of AS-289R2_Hello-mbed-OS-World by Toyomasa Watarai

main.cpp

Committer:
takehiro
Date:
2017-03-11
Revision:
29:fcc6a8b31944
Parent:
27:faf0cd600205

File content as of revision 29:fcc6a8b31944:

/* Sample program
 * AS-289R2 Thermal Printer Shield
 * NADA ELECTRONICS, LTD.
 * Copyright (c) 2017 Takehiro Yamaguchi, MIT License
 *
 * 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.
 */

#include "mbed.h"
#include "AS289R2.h"
#include "image.h"  // MonochromeBitmap to cpp : http://www.nada.co.jp/as289r2/en/ex_bitmap.html

AS289R2 tp(D1);
DigitalOut led1(LED1);

void AS289R2_demo()
{
    /* initialize */
    tp.initialize();

    tp.putLineFeed(2);

    /* Print Text Message */
    tp.printf("Thermal Printer Shield\r");
    tp.printf("Model:AS-289R2\r");

    tp.putLineFeed(2);

    /* Change ANK Font size */
    tp.setANKFont(AS289R2::ANK_8x16);
    tp.printf("Font8x16\rABCDEF012345アイウエオ\r\r");
    tp.setANKFont(AS289R2::ANK_16x16);
    tp.printf("Font16x16\rABCDEF012345アイウエオ\r\r");
    tp.setANKFont(AS289R2::ANK_12x24);
    tp.printf("Font12x24\rABCDEF012345アイウエオ\r\r");
    tp.setANKFont(AS289R2::ANK_24x24);
    tp.printf("Font24x24\rABCDEF012345アイウエオ\r\r");

    tp.putLineFeed(2);

    /* Change font width and height */
    tp.setANKFont(AS289R2::ANK_12x24);
    tp.printf("AS-289R2\r");
    tp.setDoubleSizeWidth();
    tp.printf("AS-289R2\r");
    tp.clearDoubleSizeWidth();
    tp.setDoubleSizeHeight();
    tp.printf("AS-289R2\r");
    tp.clearDoubleSizeHeight();
    tp.setQuadrupleSize();
    tp.printf("AS-289R2\r");
    tp.clearQuadrupleSize();
    tp.setEnlargement(3, 3);
    tp.printf("AS-289R2\r");
    tp.clearEnlargement();

    tp.putLineFeed(2);

    /* Print KANJI HIRAGANA KATAKANA */
    tp.setANKFont(AS289R2::ANK_8x16);
    tp.setKanjiFont(AS289R2::KANJI_16x16);
    tp.printf("Japanese\r");
    tp.printf("16x16: 漢字ひらがなカタカナ\r");
    tp.setANKFont(AS289R2::ANK_12x24);
    tp.setKanjiFont(AS289R2::KANJI_24x24);
    tp.printf("24x24: 漢字ひらがなカタカナ\r");

    tp.putLineFeed(2);

    /* Barcode */
    tp.printf("Barcode UPC-A\r");
    tp.printBarCode(AS289R2::BCODE_UPC_A, "12345678901");
    tp.printf("Barcode JAN13\r");
    tp.printBarCode(AS289R2::BCODE_JAN13, "123456789012");
    tp.printf("Barcode JAN8\r");
    tp.printBarCode(AS289R2::BCODE_JAN8, "1234567");
    tp.printf("Barcode CODE39\r");
    tp.printBarCode(AS289R2::BCODE_CODE39, "123456");
    tp.printf("Barcode ITF\r");
    tp.printBarCode(AS289R2::BCODE_ITF, "01234567890123");
    tp.printf("Barcode CODABAR(NW7)\r");
    tp.printBarCode(AS289R2::BCODE_CODABAR, "A0123456789A");

    tp.putLineFeed(2);

    /* Barcode height */
    tp.printf("Barcode height\r");
    tp.setBarCodeHeight(10);
    tp.printBarCode(AS289R2::BCODE_JAN13, "123456789012");
    tp.setBarCodeHeight(20);
    tp.printBarCode(AS289R2::BCODE_JAN13, "123456789012");
    tp.setBarCodeHeight(30);
    tp.printBarCode(AS289R2::BCODE_JAN13, "123456789012");
    tp.defaultBarCodeHeight();
    tp.printBarCode(AS289R2::BCODE_JAN13, "123456789012");

    tp.putLineFeed(2);

    /* Barcode-bar size */
    tp.printf("Barcode bar size\r");
    tp.setBarCodeBarSize(3,5);
    tp.printBarCode(AS289R2::BCODE_JAN13, "123456789012");
    tp.defaultBarCodeBarSize();
    tp.printBarCode(AS289R2::BCODE_JAN13, "123456789012");

    tp.putLineFeed(2);

    /* QR code */
    char url[] = "https://developer.mbed.org/components/AS-289R2-Thermal-Printer-Shield/";
    tp.printQRCode(AS289R2::QR_ERR_LVL_M, url);
    tp.printf("\r");
    //tp.printf(url);

    tp.putLineFeed(2);

    /* Image : The city of Kobe Japan */
    int lines = sample_image_len / 48;
    tp.printBitmapImage(0x63, lines, sample_image);

    tp.putLineFeed(2);

    /* Print Direction */
    tp.setPrintDirection(1);    // Prints from the bottom
    tp.printf("test\r");
    tp.setPrintDirection(0);    // Prints from the top
    tp.printf("test\r");

    tp.putLineFeed(2);

    /* Inter-Character Spacing */
    tp.setInterCharacterSpace(0);
    tp.printf("test\r");
    tp.setInterCharacterSpace(3);
    tp.printf("test\r");
    tp.setInterCharacterSpace(6);
    tp.printf("test\r");
    tp.setInterCharacterSpace(9);
    tp.printf("test\r");
    tp.defaultInterCharacterSpace();

    tp.putLineFeed(2);

    /* Line and Character Spacing */
    tp.setLineSpaceing(0);
    tp.printf("test\r");
    tp.setLineSpaceing(5);
    tp.printf("test\r");
    tp.setLineSpaceing(10);
    tp.printf("test\r");
    tp.setLineSpaceing(15);
    tp.printf("test\r");
    tp.defaultLineSpaceing();

    tp.putLineFeed(2);

    /* Print Position */
    tp.putPrintPosition(10);
    tp.printf("test\r");
    tp.putPrintPosition(15);
    tp.printf("test\r");
    tp.putPrintPosition(20);
    tp.printf("test\r");

    tp.putLineFeed(2);

    /* Superscript */
    tp.printf("1cm");
    tp.setScript(AS289R2::SCRIPT_SUPER);
    tp.printf("3");
    tp.printf("\r");
    tp.setScript(AS289R2::SCRIPT_CANCEL);

    /* Subscript */
    tp.printf("H");
    tp.setScript(AS289R2::SCRIPT_SUB);
    tp.printf("2");
    tp.setScript(AS289R2::SCRIPT_CANCEL);
    tp.printf("O\r");

    /* PaperFeed */
    tp.putPaperFeed(200);
}

int main()
{
    AS289R2_demo();
    while (true) {
        led1 = !led1;
        wait(0.5);
    }
}