#!/usr/bin/env python # -*- coding: utf-8 -*- from minitel.Minitel import Minitel from minitel.ui.ChampTexte import ChampTexte from minitel.ui.Conteneur import Conteneur from minitel.ui.Label import Label from minitel.ui.Menu import Menu # Initialisation du Minitel minitel = Minitel() minitel.deviner_vitesse() minitel.identifier() minitel.definir_vitesse(9600) minitel.definir_mode('VIDEOTEX') minitel.configurer_clavier(etendu = True, curseur = False, minuscule = True) minitel.echo(False) minitel.efface() minitel.curseur(False) # Création des widgets conteneur = Conteneur(minitel, 1, 1, 32, 17, 'blanc', 'noir') options = [ 'Nouveau', 'Ouvrir', '-', 'Enregistrer', 'Enreg. sous...', 'Rétablir',
class Wrapper: # To get linked with the system that communicate directly with the Minitel minitel = None def __init__(self): # Constructor self = self def Connect(self): self.minitel = Minitel() if (self.minitel.deviner_vitesse() == -1): if (self.minitel.definir_vitesse(300) == False): return (1) self.minitel.identifier() while (self.minitel.capacite['nom'] == "Minitel inconnu"): sleep(2) self.minitel.identifier() self.minitel.definir_mode("VIDEOTEX") print("{} - {}".format(self.minitel.capacite['nom'], self.minitel.capacite['vitesse'])) self.minitel.efface() self.minitel.debut_ligne() def DisplayImageList(self, file_list): largeur = 80 hauteur = 72 colonne = 1 ligne = 1 self.minitel.efface() for fichier in file_list: image = Image.open(fichier) image = image.resize((largeur, hauteur), Image.ANTIALIAS) image_minitel = ImageMinitel(self.minitel) image_minitel.importer(image) image_minitel.envoyer(colonne, ligne) self.minitel.sortie.join() sleep(3) self.minitel.efface() def ReadString(self, end = ENVOI): #TODO: faire un while plus propre while(valeurs != end) content = "" while True: received = self.minitel.recevoir_sequence(True, None) if (received.valeurs == end): content += '\0' break if (received.valeurs == ANNULATION): # Delete this condition after VivaTech event return None if (len(content) + 10) > 140: # Delete this condition after VivaTech event continue content += chr(received.valeurs[0]) self.minitel.envoyer(received.valeurs[0]) return content def DisplayCursor(self, display = True): self.minitel.curseur(display) def WaitForAnyInput(self): self.minitel.recevoir_sequence(True, None) def WriteString(self, text = "default"): nb_column = 40 nb_line = 24 if (self.minitel.capacite['80colonnes'] == True): if (self.minitel.mode == 'MIXTE'): nb_column = 80 text = text[0:nb_column * nb_line] s_send = Sequence() s_send.ajoute(text) self.minitel.envoyer(s_send) def GetModel(self): return self.minitel.capacite['nom'] def WriteLnString(self, text = ""): nb_column = 40 nb_line = 24 if (self.minitel.capacite['80colonnes'] == True): if (self.minitel.mode == 'MIXTE'): nb_column = 80 space_to_add = nb_column - (len(text) % nb_column) for i in range(space_to_add): text += " " text = text[0:nb_column * nb_line] s_send = Sequence() s_send.ajoute(text) self.minitel.envoyer(s_send) def ClearScreen(self): self.minitel.efface() def GetMinitel(self): return (self.minitel) def Disconnect(self): self.minitel.close()
class Wrapper: # To get linked with the system that communicate directly with the Minitel minitel = None def __init__(self): # Constructor self = self def Connect(self): self.minitel = Minitel() if (self.minitel.deviner_vitesse() == -1): if (self.minitel.definir_vitesse(300) == False): return (1) self.minitel.identifier() while (self.minitel.capacite['nom'] == "Minitel inconnu"): time.sleep(2) self.minitel.identifier() self.minitel.definir_mode("VIDEOTEX") print("{} - {}".format(self.minitel.capacite['nom'], self.minitel.capacite['vitesse'])) self.minitel.efface() self.minitel.debut_ligne() def DisplayImageList(self, file_list): largeur = 80 hauteur = 72 colonne = 1 ligne = 1 self.minitel.efface() for fichier in file_list: image = Image.open(fichier) image = image.resize((largeur, hauteur), Image.ANTIALIAS) image_minitel = ImageMinitel(self.minitel) image_minitel.importer(image) image_minitel.envoyer(colonne, ligne) self.minitel.sortie.join() sleep(3) self.minitel.efface() def ReadString(self, end = ENVOI): #TODO: faire un while plus propre while(valeurs != end) content = "" while True: received = self.minitel.recevoir_sequence(True, None) if (received.valeurs == end): content += '\0' break if (received.valeurs == ANNULATION): # Delete this condition after VivaTech event return None if (len(content) + 10) > 140: # Delete this condition after VivaTech event continue content += chr(received.valeurs[0]) self.minitel.envoyer(received.valeurs[0]) return content def DisplayCursor(self, display = True): self.minitel.curseur(display) def WaitForAnyInput(self): self.minitel.recevoir_sequence(True, None) def WriteString(self, text = "default"): nb_column = 40 nb_line = 24 if (self.minitel.capacite['80colonnes'] == True): if (self.minitel.mode == 'MIXTE'): nb_column = 80 text = text[0:nb_column * nb_line] s_send = Sequence() s_send.ajoute(text) self.minitel.envoyer(s_send) def GetModel(self): return self.minitel.capacite['nom'] def WriteLnString(self, text = ""): nb_column = 40 nb_line = 24 if (self.minitel.capacite['80colonnes'] == True): if (self.minitel.mode == 'MIXTE'): nb_column = 80 space_to_add = nb_column - (len(text) % nb_column) for i in range(space_to_add): text += " " text = text[0:nb_column * nb_line] s_send = Sequence() s_send.ajoute(text) self.minitel.envoyer(s_send) def ClearScreen(self): self.minitel.efface() def GetMinitel(self): return (self.minitel) def Disconnect(self): self.minitel.close()
from PIL import ImageDraw from time import sleep # Crée une image avec un texte fonte = ImageFont.truetype("/home/fred/.fonts/OdaBalloon.ttf", 60) #fonte.fontmode = 1 largeur, hauteur = fonte.getsize("PyMinitel") image = Image.new("1", (largeur, hauteur)) draw = ImageDraw.Draw(image) draw.text((0, 0),"PyMinitel", 255, font = fonte) image = image.resize((largeur / 3, int(hauteur * 1.35 / 3)), Image.NEAREST) minitel = Minitel() minitel.deviner_vitesse() minitel.identifier() minitel.definir_vitesse(4800) minitel.definir_mode('VIDEOTEX') minitel.configurer_clavier(etendu = True, curseur = False, minuscule = True) minitel.echo(False) minitel.efface() minitel.curseur(False) # Met à jour la ligne de contrôle minitel.position(1, 0) minitel.envoyer("PyMinitel v0.1.2 - Frédéric Bisson") minitel.efface(portee = 'finligne') image_minitel1 = ImageMinitel(minitel, disjoint = False) image_minitel1.importer(image)