def afficher(self): message = [] for k in range(len(self.services)): message += ['%d. %s' % (k + 1, self.services[k].nom)] self.label1 = Label(self.minitel, 0.1, 0.0, [ self.titre, '-------------', 'v%s - %s' % (self.version, self.auteur) ], 0.7, 0.22, True, 'centre') self.label2 = Label(self.minitel, 0.1, 0.4, message, 0.7, 0.0, True, 'gauche') self.ligne1 = Ligne(self.minitel, 0.0, 0.95, 1.0, 'h', 'blanc') self.bouton1 = Bouton(self.minitel, 0.9, 0.99, 0.1, 'ENVOI') self.label3 = Label(self.minitel, 0.0, 0.99, ['Choix :']) self.champ1 = ChampTexte(self.minitel, 0.2, 0.99, 2, 2, '') self.elements = Conteneur(self.minitel, 0.0, 0.0, 1.0, 1.0, 'blanc', 'noir') self.elements.ajouter(self.label1) self.elements.ajouter(self.label2) self.elements.ajouter(self.ligne1) self.elements.ajouter(self.bouton1) self.elements.ajouter(self.label3) self.elements.ajouter(self.champ1) self.elements.afficher() self.elements.executer({'ENVOI': self.valider})
def afficher_page_connection(self): self.label1 = Label(self.pa.minitel, 0.05, 0.1, [ 'Veuillez saisir les champs', 'ci-dessous pour piloter', 'ouverture/fermeture des volets' ], 0.8, 0.2, True, 'centre') self.label2 = Label( self.pa.minitel, 0.05, 0.4, ['Adresse réseau :', ' Identifiant :', ' Mot de passe :'], 0.8, 0.2, True, 'gauche') self.champ1 = ChampTexte(self.pa.minitel, 0.53, 0.51, 15, 100, '') self.champ2 = ChampTexte(self.pa.minitel, 0.53, 0.54, 15, 100, '') self.champ3 = ChampTexte(self.pa.minitel, 0.53, 0.57, 15, 100, '', None, True) self.ligne1 = Ligne(self.pa.minitel, 0.0, 0.95, 1.0, 'h', 'blanc') self.bouton1 = Bouton(self.pa.minitel, 0.0, 0.99, 0.0, 'SOMMAIRE') self.bouton2 = Bouton(self.pa.minitel, 0.9, 0.99, 0.0, 'ENVOI') self.elements = Conteneur(self.pa.minitel, 0.0, 0.0, 1.0, 1.0, 'blanc', 'noir') self.elements.ajouter(self.label1) self.elements.ajouter(self.label2) self.elements.ajouter(self.champ1) self.elements.ajouter(self.champ2) self.elements.ajouter(self.champ3) self.elements.ajouter(self.ligne1) self.elements.ajouter(self.bouton1) self.elements.ajouter(self.bouton2) self.elements.afficher() self.elements.executer({ 'SOMMAIRE': self.pa.executer, 'ENVOI': self.valider_page_connection })
def afficher(self): # On récupère la liste des appareils connectés au réseau local appareils = appareils_connectes('192.168.0.*', 15) message = [] for k in range(len(appareils)): message += ['%s : %s' % (appareils[k]['ip'], appareils[k]['nom'])] # On afficheg la page self.label1 = Label(self.pa.minitel, 0.05, 0.1, message, 0.8, 0.45, True, 'gauche') self.label2 = Label(self.pa.minitel, 0.58, 0.99, ['Rafraîchir :'], 0.0, 0.0, False, 'gauche') self.ligne = Ligne(self.pa.minitel, 0.0, 0.95, 1.0, 'h', 'blanc') self.bouton1 = Bouton(self.pa.minitel, 0.0, 0.99, 0.0, 'SOMMAIRE') self.bouton2 = Bouton(self.pa.minitel, 0.9, 0.99, 0.0, 'ENVOI') self.elements = Conteneur(self.pa.minitel, 0.0, 0.0, 1.0, 1.0, 'blanc', 'noir') self.elements.ajouter(self.label1) self.elements.ajouter(self.label2) self.elements.ajouter(self.ligne) self.elements.ajouter(self.bouton1) self.elements.ajouter(self.bouton2) self.elements.afficher() self.elements.executer({ 'SOMMAIRE': self.pa.executer, 'ENVOI': self.executer })
def afficher( self ): self.ligne1 = Ligne(self.pa.minitel, 0.0, 0.95, 1.0, 'h', 'blanc') self.bouton1 = Bouton(self.pa.minitel, 0.0, 0.99, 0.0, 'SOMMAIRE') self.elements = Conteneur(self.pa.minitel, 0.0, 0.0, 1.0, 1.0, 'blanc', 'noir') self.elements.ajouter(self.ligne1) self.elements.ajouter(self.bouton1) self.elements.afficher() self.elements.executer({'SOMMAIRE':self.pa.executer})
def afficher_page_resultats(self): # On récupère les données sur les volets url = '%s/json.htm?type=devices&filter=all&used=true&order=Name&username=%s&password=%s' % ( self.url_base, self.identifiant, self.mot_passe) contenu = requests.get(url) donnees = contenu.json() # On vérifie si la connection est ok if donnees['status'] != 'OK': self.pa.minitel.erreur(1, 20, "Impossible de se connecter") self.page_actuelle = 'connection' self.executer() return # On stocke les données sur les volets au bon format self.volets = [] for volet in donnees['result']: self.volets += [{ 'idx': volet['idx'], 'etat': ('o' if volet['Status'] == 'Open' else 'f'), 'nom': volet['Name'] }] # On affiche la liste des volets options = [] for k in range(len(self.volets)): options += [ '%s (%s)' % (self.volets[k]['nom'], self.volets[k]['etat']) ] self.menu1 = Menu(self.pa.minitel, options, 0.2, 0.3) self.ligne1 = Ligne(self.pa.minitel, 0.0, 0.95, 1.0, 'h', 'blanc') self.bouton1 = Bouton(self.pa.minitel, 0.0, 0.99, 0.0, 'SOMMAIRE') self.label1 = Label(self.pa.minitel, 0.5, 0.99, ['Ouvrir/fermer :'], 0.0, 0.0, False, 'gauche') self.bouton2 = Bouton(self.pa.minitel, 0.9, 0.99, 0.0, 'ENVOI') self.elements = Conteneur(self.pa.minitel, 0.0, 0.0, 1.0, 1.0, 'blanc', 'noir') self.elements.ajouter(self.menu1) self.elements.ajouter(self.ligne1) self.elements.ajouter(self.label1) self.elements.ajouter(self.bouton1) self.elements.ajouter(self.bouton2) self.elements.afficher() self.elements.executer({ 'SOMMAIRE': self.pa.executer, 'ENVOI': self.valider_page_resultats })
def afficher_page_resultats( self ): # On met en forme la page courante sur les données météo message = [] n = int(len(self.meteo['daily'])/self.nb_pages_resultats) indice_debut = n*self.numero_page_resultats indice_fin = indice_debut+n for jour in self.meteo['daily'][indice_debut:indice_fin]: date = datetime.fromtimestamp(jour['dt']).strftime('%A %-d %B') temps = jour['weather'][0]['description'] pluie = float(jour['pop']) min_temp = int(round(jour['temp']['min'])) max_temp = int(round(jour['temp']['max'])) pression = int(round(jour['pressure'])) humidite = int(round(jour['humidity'])) vitesse_vent = int(round(jour['wind_speed'])) direction_vent = jour['wind_deg'] lever_soleil = datetime.fromtimestamp(jour['sunrise']).strftime('%Hh%M') coucher_soleil = datetime.fromtimestamp(jour['sunset']).strftime('%Hh%M') message += ['* %s : %s'%(date,temps)] message += [' * Probabilité pluie : %.2f'%(pluie)] message += [' * Températures : %d°C, %d°C'%(min_temp,max_temp)] message += [' * Pression : %d hPa'%(pression)] message += [' * Humidité : %d%%'%(humidite)] message += [' * Direction du vent : %d°'%(direction_vent)] message += [' * Vitesse du vent : %d m/s'%(vitesse_vent)] message += [' * Lever soleil : %s'%(lever_soleil)] message += [' * Coucher soleil : %s'%(coucher_soleil)] message += [' '] # On affiche les informations self.label1 = Label(self.pa.minitel, 0.1, 0.1, message, 0.8, 0.0, False, 'gauche') self.ligne1 = Ligne(self.pa.minitel, 0.0, 0.95, 1.0, 'h', 'blanc') self.bouton1 = Bouton(self.pa.minitel, 0.0, 0.99, 0.0, 'SOMMAIRE') self.bouton2 = Bouton(self.pa.minitel, 0.33, 0.99, 0.0, 'RETOUR') self.bouton3 = Bouton(self.pa.minitel, 0.57, 0.99, 0.0, 'SUITE') self.bouton4 = Bouton(self.pa.minitel, 0.77, 0.99, 0.0, 'CORRECTION') self.elements = Conteneur(self.pa.minitel, 0.0, 0.0, 1.0, 1.0, 'blanc', 'noir') self.elements.ajouter(self.label1) self.elements.ajouter(self.ligne1) self.elements.ajouter(self.bouton1) self.elements.ajouter(self.bouton2) self.elements.ajouter(self.bouton3) self.elements.ajouter(self.bouton4) self.elements.afficher() self.elements.executer({'SOMMAIRE':self.pa.executer,'RETOUR':self.precedent_page_resultats,'SUITE':self.suivant_page_resultats,'CORRECTION':self.valider_page_resultats})
def afficher_page_saisie( self ): self.label1 = Label(self.pa.minitel, 0.05, 0.1, ['Veuillez saisir la commune','et le pays ou les coordonnées','géographiques désirées'], 0.8, 0.2, True, 'centre') self.label2 = Label(self.pa.minitel, 0.05, 0.4, [' Commune :',' Pays :',' Latitude :','Longitude :'], 0.8, 0.27, True, 'gauche') self.champ1 = ChampTexte(self.pa.minitel, 0.4, 0.51, 20, 30, geocoder.ip('me').city) self.champ2 = ChampTexte(self.pa.minitel, 0.4, 0.54, 20, 30, geocoder.ip('me').country) self.champ3 = ChampTexte(self.pa.minitel, 0.4, 0.57, 20, 30, '') self.champ4 = ChampTexte(self.pa.minitel, 0.4, 0.61, 20, 30, '') self.ligne1 = Ligne(self.pa.minitel, 0.0, 0.95, 1.0, 'h', 'blanc') self.bouton1 = Bouton(self.pa.minitel, 0.0, 0.99, 0.0, 'SOMMAIRE') self.bouton2 = Bouton(self.pa.minitel, 0.9, 0.99, 0.0, 'ENVOI') self.elements = Conteneur(self.pa.minitel, 0.0, 0.0, 1.0, 1.0, 'blanc', 'noir') self.elements.ajouter(self.label1) self.elements.ajouter(self.label2) self.elements.ajouter(self.champ1) self.elements.ajouter(self.champ2) self.elements.ajouter(self.champ3) self.elements.ajouter(self.champ4) self.elements.ajouter(self.ligne1) self.elements.ajouter(self.bouton1) self.elements.ajouter(self.bouton2) self.elements.afficher() self.elements.executer({'SOMMAIRE':self.pa.executer,'ENVOI':self.valider_page_saisie})
def afficher(self): self.label1 = Label(self.pa.minitel, 0.05, 0.1, [ 'Veuillez saisir les informations', 'ci-dessous pour changer le', 'mot de passe réseau wifi' ], 0.8, 0.2, True, 'centre') self.label2 = Label(self.pa.minitel, 0.05, 0.4, [ ' SSID réseau wifi :', ' Mot de passe actuel :', 'Nouveau mot de passe :', ' Confirmation :' ], 0.8, 0.24, True, 'gauche') self.champ1 = ChampTexte(self.pa.minitel, 0.67, 0.51, 9, 100, ssid_wifi_actuel()) self.champ2 = ChampTexte(self.pa.minitel, 0.67, 0.54, 9, 100, '', None, True) self.champ3 = ChampTexte(self.pa.minitel, 0.67, 0.57, 9, 100, '', None, True) self.champ4 = ChampTexte(self.pa.minitel, 0.67, 0.61, 9, 100, '', None, True) self.ligne1 = Ligne(self.pa.minitel, 0.0, 0.95, 1.0, 'h', 'blanc') self.bouton1 = Bouton(self.pa.minitel, 0.0, 0.99, 0.0, 'SOMMAIRE') self.bouton2 = Bouton(self.pa.minitel, 0.9, 0.99, 0.0, 'ENVOI') self.elements = Conteneur(self.pa.minitel, 0.0, 0.0, 1.0, 1.0, 'blanc', 'noir') self.elements.ajouter(self.label1) self.elements.ajouter(self.label2) self.elements.ajouter(self.champ1) self.elements.ajouter(self.champ2) self.elements.ajouter(self.champ3) self.elements.ajouter(self.champ4) self.elements.ajouter(self.ligne1) self.elements.ajouter(self.bouton1) self.elements.ajouter(self.bouton2) self.elements.afficher() self.elements.executer({ 'SOMMAIRE': self.pa.executer, 'ENVOI': self.valider })