<?php

/**
 * This demo interacts with an Aures OCD-300 customer display,
 * showing its support for ESC/POS text encodings.
 */

require __DIR__ . '/../vendor/autoload.php';

use Zelda\EscposPhp\PrintConnectors\FilePrintConnector;
use Zelda\EscposPhp\CapabilityProfile;
use Zelda\EscposPhp\Printer;
use Zelda\EscposPhp\Devices\AuresCustomerDisplay;

/*
 * Device appears as a serial port.
 *
 *   stat /dev/ttyACM0
 *   sudo usermod -a -G dialout [username]
 */

$connector = new FilePrintConnector("/dev/ttyACM0");

// Profile and display
$profile = CapabilityProfile::load("OCD-300");
$display = new AuresCustomerDisplay($connector, $profile);


// Make a really long test string
include(__DIR__ . "/resources/character-encoding-test-strings.inc");
$input = "";
foreach ($inputsOk as $str) {
    $input .= $str;
}

// Wrap at a fixed width (as ASCII...), and show the user
// what's about to be sent to the printer
$wrapped = wordwrap($input, 20);
echo ($wrapped);

// Roll out each line with 0.5s delay
foreach (explode("\n", $wrapped) as $line) {
    $display->feed();
    $display->text($line);
    usleep(500000);
}

// Finish by showing "Hello World"
$display->clear();
$display->text("Hello World\n");

// Dont forget to close the device
$display->close();