Example #1
0
    def __init__(self, print_welcome=True):
        self.printer = Adafruit_Thermal("/dev/serial0", 9600, 23)

        if check_printer_status(self.printer):
            if print_welcome:
                self.print_boot_image()

            self.printer.sleep()
Example #2
0
def connect_printer():
    global printer
    try:
        printer = Adafruit_Thermal('/dev/ttyUSB0', 9600, timeout=5)  # Linux
    except Exception as linux_exception:
        try:
            printer = Adafruit_Thermal('COM5', 9600, timeout=5)  # Windows
        except Exception as windows_exception:
            print(
                'Failed to connect to printer.\n\nLinux Exception: {0}\n\nWindows Exception: {1}'
                .format(linux_exception, windows_exception))
            printer = None
Example #3
0
    def __init__(self):
        # Initialize printer interface
        self.printer = Adafruit_Thermal("/dev/ttyAMA0", 19200, timeout=5)

        # Use Broadcom pin numbers (not Raspberry Pi pin numbers) for GPIO
        GPIO.setmode(GPIO.BCM)

        # Enable LED and button (w/pull-up on latter)
        GPIO.setup(self.LED_PIN, GPIO.OUT)
        GPIO.setup(self.BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP)

        # Setup button handling
        self.button_hold = None
        self.button_tap = None
        self.prev_button_state = (GPIO.input(self.BUTTON_PIN), time.time())
        GPIO.add_event_detect(self.BUTTON_PIN,
                              GPIO.BOTH,
                              callback=self.button_handler)

        # Feed module manager
        sys.path.append(self.FEED_DIR)
        self.feeds = {}

        # Feed runtime configuration
        self.run_start = []
        self.run_stop = []
        self.run_tap = []
        self.run_hold = []
        self.run_interval = []
        self.run_when = []

        # register some signal handlers
        self.terminate = False
        signal.signal(signal.SIGALRM, self.signal_handler)
        signal.signal(signal.SIGINT, self.signal_handler)
Example #4
0
        s.connect(('8.8.8.8', 0))
        ip_addr = s.getsockname()[0]

        printer.print('My IP address is ' + ip_addr)
        printer.feed(3)

    except:
        printer.boldOn()
        printer.println('Network is unreachable.')
        printer.boldOff()
        printer.print('Connect display and keyboard\n'
                      'for network troubleshooting.')
        printer.feed(3)

        import signal, inspect
        handler = signal.getsignal(signal.SIGINT)
        if not inspect.isbuiltin(handler):
            os.kill(os.getpid(), signal.SIGINT)
        else:
            return


if __name__ == '__main__':
    parent_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    os.sys.path.append(parent_dir)

    from Adafruit_Thermal import Adafruit_Thermal
    printer = Adafruit_Thermal("/dev/ttyAMA0", 19200, timeout=5)

    feed(printer, {}, {})
import urequests
import utime
from Adafruit_Thermal import Adafruit_Thermal


RELAY_PIN = 5
SECS_TO_SLEEP = 4 * 60
UNIX_TIMESTAMP_2000 = 946684800

HOST = "http://s3.eu-central-1.amazonaws.com"
ALARM_PATH = "/xxx"
MENU_PATH = "/xxx"

# The logger writes logs to the serial interface.
logger = logging.getLogger("Logger")
printer = Adafruit_Thermal(baudrate=19200)
relay_pin = machine.Pin(RELAY_PIN, machine.Pin.OUT)


def mount_sd():
    logger.info("mounting sd...")
    try:
        sd = sdcard.SDCard(machine.SPI(1), machine.Pin(15))
        os.mount(sd, "/sd")
    except Exception as e:
        logger.exc(e, "sd could not be mounted.")
        failed_mounts_count = increment_counter("failed_mounts")
        if failed_mounts_count == 1:
            print_error_msg("SD-Karte konnte nicht gelesen werden! Sag besser mal Fabian bescheid!")
    else:
        reset_counter("failed_mounts")
Example #6
0
def get_resource(name):
    return send_from_directory("static", name)

@server.route("/print", methods=["POST"])
def print_post():
    text = request.form["text"]
    symbol = request.form["symbol"]
    task = (text, symbol)
    printer_queue.put(task)
    print("Printing text:", text, "with symbol", symbol)
    return redirect("/redirect", code=303)



printer_queue = Queue.Queue()
printer = Adafruit_Thermal(SERIAL_PORT, 19200, heattime=255, 
    dtr=DTR_PIN, timeout=5)
printer.reset()
printer.setDefault()
print "printer reset"

# Check if the logfile exists and is not empty
if os.path.exists(LOGPATH) and os.path.getsize(LOGPATH) > 0:
    with open(LOGPATH, "r") as logfile:
        log = json.load(logfile)
else:
    log = []
    with open(LOGPATH, "w") as logfile:
        # Write an empty list
        logfile.write("[]")

print_thread = threading.Thread(target=printer_job)
Example #7
0
#!/usr/bin/python
from Adafruit_Thermal import Adafruit_Thermal
from PIL import Image
import RPi.GPIO as GPIO

printer = Adafruit_Thermal(port="/dev/ttyAMA0", baudrate=19200,
                           heattime=255, dtr=18, timeout=5)
printer.reset()
printer.setDefault()
image = Image.open('gfx/smile_positive.png')
#image = image.point(lambda i: 0 if i < 230 else 255)
#image = image.convert('1',dither=None )

#bitmap = [0]  * (image.size[0] * image.size[1])
#i = 0
#for i in range(0,

printer.printImage(image)
#printer.feed(1)

#printer.printUpsideDown("Hello this is a longer text to test a printing ability of what happens with very long lines of text are printing in the upside down fashion")
Example #8
0
class PrinterWrapper:
    def __init__(self, print_welcome=True):
        self.printer = Adafruit_Thermal("/dev/serial0", 9600, 23)

        if check_printer_status(self.printer):
            if print_welcome:
                self.print_boot_image()

            self.printer.sleep()

    def print_boot_image(self):
        self.printer.printImage(Image.open(image_path))
        self.printer.feed(3)

    # function also wraps by words
    # look at string, count characters
    def print_line(self, text, formatting=None):
        if formatting is None:
            formatting = {
                'justify': 'C',
                'size': 'L',
                'bold': False,
                'upside_down': False,
                'underline': 0
            }
        if check_printer_status(self.printer):
            max_col = int((32 / (2 if formatting['size'] == 'L' else 1)) - 1)
            text = textwrap.fill(text, max_col)
            self.printer.wake()
            self.set_printer_formatting(formatting)
            self.printer.print(text)
            self.printer.feed(1)
            self.printer.sleep()
        else:
            self.printer.sleep()
            raise RuntimeError("Printer is out of paper")

    def set_printer_formatting(self, formatting: dict):
        if formatting['upside_down']: self.printer.upsideDownOn()
        else: self.printer.upsideDownOff()

        if formatting['underline'] != 0: self.printer.underlineOn(formatting['underline'])
        else: self.printer.underlineOff()

        if formatting['bold']: self.printer.boldOn()
        else: self.printer.boldOff()

        self.printer.setSize(formatting['size'])
        self.printer.justify(formatting['justify'])


    def print_image(self, image_data, is_data_uri=True):
        if is_data_uri:
            image = get_image_from_data_uri(data_uri=image_data)
        else:
            image = image_data

        self.printer.wake()
        self.printer.printImage(image)
        self.printer.sleep()

    def print_signature(self, sig):
        self.printer.wake()
        date_string = get_date_string()

        # padding to right-justify the timestamp (date_sting)
        space_padding = ' ' * (32 - 1 - (len(date_string) + len(sig)))
        self.printer.printLn('')
        self.set_printer_formatting({
            "justify": 'L',
            "size": 'S',
            "underline": False,
            "bold": False,
            "upside_down": False
        })
        self.printer.print(f'{sig}{space_padding}{date_string}'.strip(), justify='L', size='S', underline=False)

        self.printer.feed(3)
        self.printer.sleep()

    def get_status(self):
        try:
            return {"paper": has_paper(self.printer)}
        except:
            return {}
trh = sf.trhead[0]

dt = trh['dt'] / 1000.
tmin = trh['lagb']
tmax = dt*ns + tmin

x = np.linspace(tmin, tmax, sf.ns)

fig = Figure(**figkwargs)

ax = fig.add_subplot(1,1,1)
pl = ax.plot(x, src)

ax.set_title('Source signature for Line 05')
ax.set_xlabel('Time (ms)')
ax.set_ylabel('Amplitude')

canvas = FigureCanvasAgg(fig)
renderer = canvas.get_renderer()
renderer.dpi = dpi
canvas.draw()

l,b,w,h = [int(item) for item in canvas.figure.bbox.bounds]
im = Image.fromstring("RGB", (w,h), canvas.tostring_rgb()).rotate(90)

printer = Adafruit_Thermal("/dev/tty.NoZAP-PL2303-00005014", 19200, timeout=5)
printer.begin()
printer.printImage(im, True)
printer.feed(2)