Ejemplo n.º 1
0
    def __init__(self, headers):
        Thread.__init__(self)

        self.headers = headers
        self.config = json.load(open('/home/pi/bitrepublic/Config.json'))
        self.printerCount = self.config["printer"]["count"]
        self.maxRequestPerSecond = self.config["printer"][
            "maxRequestPerSecond"]
        self.img = Image.open(self.config["printer"]["img"])
        self.address = self.config["requests"]["consume"]["Address"]
        self.minInterval = self.config["printer"]["minInterval"]
        self.maxInterval = max(
            1, 2 * self.printerCount * self.maxRequestPerSecond -
            self.minInterval)
        self.printer = Adafruit_Thermal("/dev/serial0", 19200, timeout=5)

        tmp = min(self.minInterval, self.maxInterval)
        self.maxInterval = max(self.minInterval, self.maxInterval)
        self.minInterval = tmp

        #print("minInterval : "+str(minInterval))
        #print("maxInterval : "+str(maxInterval))

        printer = Adafruit_Thermal("/dev/serial0", 19200, timeout=5)
        #print("Setup: success")
        self.t = Terminal()
        print(self.t.italic('Hi there! : I\'m the Printer'))
Ejemplo n.º 2
0
def main(sender, message):
    print("sender %s message %s" % (sender, message))
    printer = Adafruit_Thermal("/dev/serial0", 9600, timeout=5)

    printer.wake()  # Call wake() before printing again, even if reset
    printer.setDefault()  # Restore printer to defaults

    # Set justification (right, center, left) -- accepts 'L', 'C', 'R'
    # Set type size, accepts 'S', 'M', 'L'
    printer.setSize('L')  # Lagre
    printer.justify('C')  # Center
    print_text(printer, "%s\n" % sender, 15)

    printer.setSize('S')  # Small
    #print_text(printer, "Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\n", 15)
    #print_text(printer, str(message).join("\n"), 15)
    print_text(printer, "%s\n" % message, 15)

    printer.setLineHeight(50)
    #printer.println("<time>")
    print_text(printer, strftime("%Y-%m-%d\n%H:%M:%S", gmtime()))
    printer.setLineHeight()  # Reset to default

    printer.feed(4)

    printer.sleep()  # Tell  printer to sleep
Ejemplo n.º 3
0
def Text(name, theme):
    printer = Adafruit_Thermal("/dev/serial0", 19200, timeout=5)
    # Test inverse on & off
    printer.inverseOn()
    # printer.println("Inverse ON")
    # Test character double-height on & off
    #printer.doubleHeightOn()
    printer.println("On vous recommande le livre suivant :")
    #printer.doubleHeightOff()
    printer.inverseOff()

    # Set justification (right, center, left) -- accepts 'L', 'C', 'R'
    # printer.justify('R')
    # printer.println("Right justified")
    printer.justify('C')
    printer.println(name)

    printer.inverseOn()
    # printer.println("Inverse ON")
    # Test character double-height on & off
    #printer.doubleHeightOn()
    printer.println("Le thème de ce livre est :")
    #printer.doubleHeightOff()
    printer.inverseOff()

    printer.justify('C')
    printer.println(theme)

    # printer.justify('L')
    # printer.println("Left justified")
    # Test more styles
    printer.boldOn()
    printer.println("Bold text")
    printer.boldOff()
    printer.underlineOn()
    printer.println("Underlined text")
    printer.underlineOff()
    printer.setSize('L')  # Set type size, accepts 'S', 'M', 'L'
    printer.println("Large")
    printer.setSize('M')
    printer.println("Medium")
    printer.setSize('S')
    printer.println("Small")
    printer.justify('C')
    printer.println("normal\nline\nspacing")
    printer.setLineHeight(50)
    printer.println("Taller\nline\nspacing")
    printer.setLineHeight()  # Reset to default
    printer.justify('L')
    # Barcode examples
    printer.feed(1)
    # CODE39 is the most common alphanumeric barcode
    printer.printBarcode("ADAFRUT", printer.CODE39)
    printer.setBarcodeHeight(100)
    # Print UPC line on product barcodes
    printer.printBarcode("123456789123", printer.UPC_A)

    printer.sleep()  # Tell printer to sleep
    printer.wake()  # Call wake() before printing again, even if reset
    printer.setDefault()  # Restore printer to defaults
Ejemplo n.º 4
0
def printadvice():
# Initialize the printer.  Note this will take a few seconds for the printer
# to warm up and be ready to accept commands (hence calling it explicitly vs.
# automatically in the initializer with the default auto_warm_up=True).

	printer = Adafruit_Thermal("/dev/serial0", 19200, timeout=5)
	fortune = random.choice(hints)

	printer.justify('C')
	printer.println('          ___ ___       ')
	printer.println('        /|  <⋈> |\     ')
	printer.println('       /_|   :   |_\    ')
	printer.println('         |   :   |      ')
	printer.println('         |___: __|      ')
	printer.println(' __ __            ')
	printer.println('|  \  \ ___ // ___')
	printer.println('|     |/ . \  <_-<')
	printer.println('|_|_|_|\___/  /__/')
	printer.println(' ___  _           ')
	printer.println('|_ _|<_> ___  ___ ')
	printer.println(' | | | || . \<_-< ')
	printer.println(' |_| |_||  _//__/ ')
	printer.println('        |_|       ')
	printer.feed(1)
	printer.boldOn()
	printer.println(fortune)
	printer.boldOff()
	printer.feed(2)
	printer.feed(3)
	printer.sleep()      # Tell printer to sleep
	printer.wake()       # Call wake() before printing again, even if reset
	printer.setDefault() # Restore printer to defaults
Ejemplo n.º 5
0
def print_password(headerText, ttp):

    dividerLine = Image.new("RGB", (384, 6), "black")
    dividerLine.paste(Image.new("RGB", (384, 4), "white"), (0, 0))

    #create the divider

    bottomDividerLineImg = Image.open("/home/pi/Printer/dividerline.bmp")
    font = ImageFont.truetype("/usr/share/fonts/ttf/swansea.ttf", 20)
    draw = ImageDraw.Draw(bottomDividerLineImg)

    rightMarkText = "Piperwallet.com"
    rightMarkSize = draw.textsize(rightMarkText, font=font)

    leftMarkOrigin = (10, 15)
    rightMarkOrigin = (384 - rightMarkSize[0] - 10, 15)

    draw.text(leftMarkOrigin, headerText, font=font, fill=(0, 0, 0))
    draw.text(rightMarkOrigin, rightMarkText, font=font, fill=(0, 0, 0))

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

    printer.printImage(dividerLine, True)
    printer.println("Password: ")
    printer.println(ttp)
    printer.printImage(bottomDividerLineImg, True)

    printer.feed(3)

    printer.setDefault()  # Restore printer to defaults
Ejemplo n.º 6
0
def shootAndPrint():
    os.system(
        "sudo fswebcam -r 640x480 --no-banner /home/pi/photobooth/photo1.png")
    pt = Adafruit_Thermal("/dev/serial0", 19200, timeout=5)
    #pt.println("test")
    pic = im.open("/home/pi/photobooth/photo1.png")
    pic2 = pic.rotate(-90).resize((384, 512), im.ANTIALIAS).convert("1")
    pic2.save("photo2.bmp")
    data = list(pic2.getdata())
    echauffement = [170] * 9600
    print(len(data))
    L = []
    for x in data:
        if x == 0:
            L.append(1)
        else:
            L.append(0)
    print("done")
    M = []
    i = 0
    while i < 196608:
        oct = 0
        for k in range(7, -1, -1):
            #print(i)
            #print(k)
            oct += L[i] * (2**k)
            i += 1
        M.append(oct)
    print(len(M))
    #pt.printBitmap(384,200, echauffement)
    #pt.feed(2)
    pt.printBitmap(384, 512, M, True)
 def printReceipt(self, fee):
     self.printer = Adafruit_Thermal("/dev/serial0", 19200, timeout=5)
     self.printData(fee.age, fee.makeup, fee.pyjama, fee.hipster,
                    fee.youngster, fee.oldie, fee.badMood, fee.aggressive)
     self.printer.sleep()  # Tell printer to sleep
     self.printer.wake()  # Call wake() before printing again, even if reset
     self.printer.setDefault()  # Restore printer to defaults
Ejemplo n.º 8
0
def __print_poem(poem_text, upc):
    printer = Adafruit_Thermal("/dev/ttyS0", 19200, timeout=60)
    printer.setSize('M')
    printer.justify('C')
    printer.println("1st Regional Bunny Bank\n\n")
    printer.println("\n")
    printer.justify('C')
    printer.println("================================")

    printer.justify('C')
    printer.setSize('M')
    printer.println(poem_text, length=29)

    printer.feed(1)
    printer.setBarcodeHeight(100)
    printer.printBarcode(upc, printer.UPC_A)

    #printer.setSize('S')
    #printer.setSize('S')
    #printer.println(text_format(TOS_MESSAGE))

    printer.feed(30)

    printer.sleep()
    printer.wake()
    printer.setDefault()
Ejemplo n.º 9
0
 def __init__(self):
     self.ip = network.ip()
     self.done = False
     self.printer = Adafruit_Thermal("/dev/serial0", 19200, timeout=5)
     self.switch = Button(7)
     self.led = LED(18)
     self.button = Button(23)
     wheelpins = [26, 19, 13, 6, 5, 11, 9, 10]
     self.wheelbuttons = [Button(n) for n in wheelpins]
Ejemplo n.º 10
0
def print_seed(seed):

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

    printer.println(seed)

    printer.feed(3)

    printer.setDefault()  # Restore printer to defaults
Ejemplo n.º 11
0
    def __init__(self):
        self.printer = Adafruit_Thermal("/dev/ttyAMA0", 19200, timeout=5)
        self.running = True
        self.locked
        self.buttons = [False]

        printer.setLineHeight(23)
        threading.Thread(target=self.main_loop).start()

        super(NewsReceipt, self).__init__()
Ejemplo n.º 12
0
def genAndPrintKeys(remPubKey, remPrivKey, numCopies, password):

    #open serial number file which tracks the serial number
    snumfile = open('serialnumber.txt', 'r+')
    snum = snumfile.read()

    #open the printer itself
    printer = Adafruit_Thermal("/dev/ttyAMA0", 19200, timeout=5)

    #load a blank image of the paper wallet with no QR codes or keys on it which we will draw on
    finalImg = Image.open("btc-wallet-blank.bmp")

    #this actually generates the keys.  see the file genkeys.py or genkeys_forget.py
    import genkeys as btckeys

    btckeys.genKeys()

    if btckeys.keysAreValid == False:
        printer.write(
            "Error: The generated keys (public/private) are not the correct length.  Please try again."
        )

    import wallet_enc as WalletEnc
    #encrypt the keys if needed
    if (password != ""):
        privkey = WalletEnc.pw_encode(btckeys.privkey, password)
    else:
        privkey = btckeys.privkey

    rememberKeys = False
    sqlitePubKey = ""
    sqlitePrivKey = ""
    strToWrite = ""
    if remPubKey:
        strToWrite = "\nPublic Key: " + btckeys.pubkey
        sqlitePubKey = btckeys.pubkey
        rememberKeys = True

    if remPrivKey:
        strToWrite = strToWrite + "\nPrivate Key: " + privkey
        sqlitePrivKey = privkey
        rememberKeys = True

    if rememberKeys == True:
        #store it to the sqlite db
        con = None
        try:
            con = sqlite3.connect('/home/pi/Printer/keys.db3')
            con.execute(
                "INSERT INTO keys (serialnum, public, private) VALUES (?,?,?)",
                (snum, sqlitePubKey, sqlitePrivKey))
        except sqlite3.Error, e:
            print "Error %s:" % e.args[0]
            sys.exit(1)
        finally:
Ejemplo n.º 13
0
def print_seed(seed):

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

    printer.println(seed)

    printer.feed(3)

    printer.sleep()  # Tell printer to sleep
    printer.wake()  # Call wake() before printing again, even if reset
    printer.setDefault()  # Restore printer to defaults
def main():
    printer = Adafruit_Thermal("/dev/ttyAMA0", 19200, timeout=5)
    try:
        image = Image.open(sys.argv[1])
    except Exception as e:
        print(e)
        print("Usage: " + sys.argv[0] + " <filename>")
        sys.exit(1)

    printer.printImage(image, True)
    printer.println()
    printer.println()
Ejemplo n.º 15
0
def printerThread():
    global imgQueue

    printer = Adafruit_Thermal("/dev/ttyUSB0", 9600, timeout=5)

    while True:
        img = imgQueue.get()

        if not img:
            printer.feed(2)
        else:
            printer.printImage(img)
Ejemplo n.º 16
0
    def __init__(self):

        self.ledPin = 12
        self.printer = Adafruit_Thermal("/dev/serial0", 19200, timeout=5)
        list_dir = [d for d in os.listdir(DIR) if os.path.isdir(DIR + d)]
        self.dir = {}
        self.image = [i for i in os.listdir(DIR) if not i in list_dir]
        for l in list_dir:
            tmp = os.listdir(DIR + l)
            self.dir[l] = tmp
        print(self.image)
        print(self.dir)
Ejemplo n.º 17
0
def encodeQRAndPrint(ttp):
    qrSize = (340, 340)

    finalImg = Image.new("RGB", (384, 440), "white")
    finalImg.paste(getQR(ttp, qrSize), (30, 55))

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

    printer.printImage(finalImg, True)

    printer.feed(3)

    printer.setDefault()  # Restore printer to defaults
Ejemplo n.º 18
0
    def __init__(self, device, baud_rate, timeout):
        """Printer initialization
        
        :param device: Device path
        :type device: str
        :param baud: Baud rate
        :type baud: int
        :param timeout: Timeout in seconds
        :type timeout: int
        """
        self.print_size = 384, 384  # max_width=384

        self.device = Adafruit_Thermal(device, baud_rate, timeout=timeout)
Ejemplo n.º 19
0
    def start(self):
        if self.buttonDebug == False:
            GPIO.add_event_detect(25,
                                  GPIO.RISING,
                                  callback=self.buttonOnePressed)
        if self.buttonDebug == False:
            GPIO.add_event_detect(17,
                                  GPIO.RISING,
                                  callback=self.buttonTwoPressed)
        if self.buttonDebug == False:
            GPIO.add_event_detect(23,
                                  GPIO.RISING,
                                  callback=self.buttonThreePressed)

        # read json file
        # date = datetime.datetime.now().strftime ("%Y_%m_%d")
        with open("data/data.json", 'r') as file:
            data = file.read().replace('\n', '')
        self.dataMap = json.loads(data)
        try:
            print "Note: Set debug=False and uncomment import lines when testing on real rpi"
            print "=============================================="
            print "For cmd line testing, please type one of the keys below, then hit enter:"
            print "Key: '1' = START button"
            print "Key: '2' = IDEA Button"
            print "Key: '3' = PRINT Button"
            print "Press any of these to start (LCD backlight should be off until button pressed)"
            print "=============================================="
            sys.stdout.flush()
            if self.debug == False:
                self.printer = Adafruit_Thermal("/dev/ttyUSB0",
                                                19200,
                                                timeout=5)
            if self.debug == False: self.printer.setDefault()
            if self.debug == False:
                self.ser = serial.Serial('/dev/ttyACM0', 115200)

            ## CONTRAST AND BRIGHTNESS
            # set contrast to 230 (0xE6)
            if self.debug == False: self.ser.write("\xFE\x50\xE6")
            # set brightness to 100 (0x64)
            # if self.debug == False: self.ser.write("\xFE\x99\x64")

            self.sleep_state()

        except KeyboardInterrupt, Exception:
            print("ctrl c pressed")
            self.newLCDPage()
            if self.debug == False: self.ser.write("\xFE\x46")
            if self.debug == False: self.ser.close()
            if self.debug == False: GPIO.cleanup()  # clean up GPIO
Ejemplo n.º 20
0
def main():
    serialport = args.serialport
    baudrate = int(args.baudrate)
    timeout = 5

    # create printer object
    p = Adafruit_Thermal(serialport, baudrate, timeout=timeout)

    # get our data as an array from read_in()
    data = read_in()

    print_image(data.get('image', ''), p)
    print_text(data.get('text', ''), p)
    print_sender(data.get('sender', ''), p)
    print_divider(p)
Ejemplo n.º 21
0
def print_message(message="", date=datetime.now().strftime('%d-%b @ %H:%M')):
    printer = Adafruit_Thermal("/dev/serial0", 19200)
    printer.wake()
    printer.setSize('M')

    printer.println(message)

    printer.feed(1)
    printer.setSize('S')
    printer.println(date)
    printer.feed(1)
    printer.println("_______________________________")
    printer.feed(5)
    printer.sleep()
    printer.setDefault()
Ejemplo n.º 22
0
def printImage(nameImg):
    printer = Adafruit_Thermal("/dev/serial0", 19200, timeout=5)
    basewidth = 400
    img = Image.open('ThermalVis/images/'+nameImg+'.png')
    wpercent = (basewidth/float(img.size[0]))
    hsize = int((float(img.size[1])*float(wpercent)))
    #bg      = Image.new("1", [282 , 271], "white") # Working 'background' image
    bg      = Image.new("1", [basewidth , hsize], "white") # Working 'background' image
    img = img.resize((basewidth,hsize), Image.ANTIALIAS)
    img.save('ThermalVis/images/'+nameImg+'.png')
    imgGray = gray_Scale("ThermalVis/images/"+nameImg+".png")
    imgGray = Image.open(imgGray)
  # Crop number bitmaps out of source image
    printer.printImage(imgGray, True) # This does the printing
    printer.println()
    printer.feed(3)
Ejemplo n.º 23
0
def print_keypair(pubkey, privkey, leftBorderText):

    #open the printer itself
    printer = Adafruit_Thermal("/dev/ttyAMA0", 19200, timeout=5)

    #check the cointype to decide which background to use
    con = None
    try:
        con = sqlite3.connect('/home/pi/Printer/keys.db3')
        cur = con.cursor()
        cur.execute("SELECT coinType FROM piper_settings LIMIT 1;")
        row = cur.fetchone()
        coinType = row[0]
    except sqlite3.Error, e:
        print("Error %s:" % e.args[0])
        sys.exit(1)
Ejemplo n.º 24
0
def print_keypair(pubkey, privkey, leftBorderText, coinType):

    #open the printer itself
    printer = Adafruit_Thermal("/dev/ttyAMA0", 19200, timeout=5)

    #check the cointype to decide which background to use
    con = None
    try:
        con = sqlite3.connect('/home/pi/Printer/settings.db3')
        cur = con.cursor()
        cur.execute("SELECT bgfile FROM CoinFormats WHERE name=?;",
                    (coinType, ))
        row = cur.fetchone()
        finalImgName = row[0]
    except sqlite3.Error, e:
        print("Error %s:" % e.args[0])
        sys.exit(1)
Ejemplo n.º 25
0
    def on_data(self, data):
        print(1)
        print(data)
        print(2)
        tweet = json.loads(data.strip())

        retweeted = tweet.get('retweeted')
        from_self = tweet.get('user', {}).get('id_str', '') == account_user_id

        if retweeted is not None and not retweeted and not from_self:

            tweetId = tweet.get('id_str')
            screenName = tweet.get('user', {}).get('screen_name')
            tweetText = tweet.get('text')
            print(4)
            tweetText = tweetText.encode('UTF-8')
            print(tweetText)
            chatResponse = therapist.respond(tweetText)
            print(chatResponse)
            print(5)
            replyText = '@' + screenName + ' ' + chatResponse
            print(6)

            #check if repsonse is over 140 char
            if len(replyText) > 130:
                replyText = replyText[0:127] + '...'

            wrappedTweet = textwrap.fill(tweetText, 32)
            wrappedReply = textwrap.fill(replyText, 32)
            printer = Adafruit_Thermal("/dev/ttyAMA0", 19200, timeout=5)

            printer.println('Tweet ID: ' + tweetId)
            printer.println('From: ' + screenName)
            printer.println('Tweet Text:')
            printer.println(wrappedTweet)
            printer.println('Reply Text:')
            printer.println(wrappedReply)
            printer.feed(3)

            # If rate limited, the status posts should be queued up and sent on an interval
            twitterApi.update_status(status=replyText,
                                     in_reply_to_status_id=tweetId)
            print(7)
Ejemplo n.º 26
0
def print_image(imagePath="/home/pi/misyu/files/test.jpg"):

    printer = Adafruit_Thermal("/dev/serial0", 19200)
    printer.wake()

    BASE_WIDTH = 384
    img = Image.open(imagePath)
    wpercent = (BASE_WIDTH / float(img.size[0]))
    hsize = int((float(img.size[1]) * float(wpercent)))
    img = img.resize((BASE_WIDTH, hsize))

    printer.printImage(img)

    printer.feed(1)
    printer.setSize('S')
    printer.println(datetime.now().strftime('%Y-%m-%d %H:%M'))
    printer.feed(1)
    printer.println("_______________________________")
    printer.feed(5)
    printer.sleep()
    printer.setDefault()
Ejemplo n.º 27
0
def encodeQRAndPrintText(headerText, ttp):
    qrSize = (340, 340)

    finalImg = Image.new("RGB", (384, 440), "white")
    finalImg.paste(getQR(ttp, qrSize), (30, 55))

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

    dividerLine = Image.new("RGB", (384, 6), "black")
    dividerLine.paste(Image.new("RGB", (384, 3), "white"), (0, 0))

    printer.printImage(dividerLine, True)
    printer.println(headerText)
    printer.println(ttp)
    printer.printImage(finalImg, True)
    printer.println(ttp)
    printer.printImage(dividerLine, True)

    printer.feed(3)

    printer.setDefault()  # Restore printer to defaults
Ejemplo n.º 28
0
def print_text():
    if session.get('logged_in'):
        if len(request.form['message']) < 200:
            printer = Adafruit_Thermal('/dev/serial0', 19200, timeout=5)
            printer.begin()
            printer.justify('L')
            printer.println(request.form['message'])
            printer.setSize('S')
            printer.println(">> " +
                            datetime.now().strftime("%Y-%m-%d %H:%M:%S") +
                            " " + session.get('user'))
            printer.justify('C')
            printer.println("------------------------------")
            printer.feed(2)
            printer.sleep()  # Tell printer to sleep
            printer.wake()  # Call wake() before printing again, even if reset
            printer.setDefault()  # Restore printer to defaults
            return redirect(url_for('display_index_page'))
        else:
            flash('Le text est trop long, 200 caractères au maximum stp !')
            return redirect(url_for('display_index_page'))
    else:
        return redirect(url_for('login'))
Ejemplo n.º 29
0
def printCoupon(row):
    printer = Adafruit_Thermal("/dev/tty.usbserial", 19200, timeout=5)
    printer.wake()
    printer.justify('C')
    printer.setSize('L')
    printer.println('IUNO Coupon')
    printer.setSize('S')
    printer.println('Value: ' + row[2])
    qr = qrcode.QRCode(
        version=4,
        error_correction=qrcode.constants.ERROR_CORRECT_L,
        box_size=9,
        border=5,
    )
    qr.add_data(row[1])
    qr.make()
    img = qr.make_image(fill_color="white", back_color="black")
    print(img.size)
    printer.printImage(img)
    printer.println(row[1])
    printer.feed(2)
    # printer.sleep()
    printer.flush()
Ejemplo n.º 30
0
def print_chat():
    printer = Adafruit_Thermal("/dev/serial0", 19200, timeout=5)
    printer.feed(3)
    printer.setSize('L')
    printer.printTHIS("CHATBOTS ON THE RISE")
    printer.printTHIS("ELIZA (1964)")
    printer.setDefault()

    for chat in session['chats']:
        speaker, message = chat
        if speaker == "eliza":
            printer.inverseOn()
            printer.printTHIS(message)
            printer.inverseOff()
        else:
            printer.printTHIS("> " + message)

        printer.feed(2)

    printer.printTHIS(' -- END --')
    printer.feed(3)
    session.clear()
    return redirect('/')