[Python] Problemi con la stampa su html.

Emilio Peruzzi emilio.peruzzi.92 a gmail.com
Gio 21 Feb 2013 19:20:18 CET


Si leggo il file e il frame contiene la pagina generata dal programma,
comunque vi posto il codice, può essere che sia sufficente pulire lo
schermo, nemmeno sapevo si potesse fare! Se si può risolvere così sai mica
dirmi come si pulisce? Come dicevo programmo in Python solo da una decina
di giorni!

Qui c'è il codice, molte parti sono a commento perché stavo facendo delle
prove, di fatto è a commento solo la routine che volevo creare per la GUI
vera e propria (al momento è molto scarna e ad essere sincero non credo mi
convenga fare due routine, ma inglobare tutto nella routine, che fatta così
se non sbaglio si comporta come una task più o meno, chiamata Live, dalle
prove effettuate mi risparmio parecchi casini
____________________________________


#!/usr/bin/env python

#Importo le librerie di sistema

import threading
import sys
import time

#creo la mia routine per il live

class Live(threading.Thread):
	def __init__(self):
		threading.Thread.__init__(self)
		self.cont = 1
	def run(self):
		while 1 == self.cont:
			livedata = open('dataLogger_digitalInput.txt', 'r')
			dato = livedata.readline()
			
			print ("<html>")
			print ("<body>")
			print ("<h3>Prova</h3>")
			print str("<h5>Stato uscita --> " + dato + "!!</h5>")
			print ("</body>")
			print ("</html>") 			

			livedata.close()
#			gui.start()
#			time.sleep(1)
	def termina(self):
		self.cont = 0

#class Gui(threading.Thread):

#	def __init__(self):
#		threading.Thread.__init__(self)
#		self.di = 1
#
#	def run(self):
#		print ("<html>")
#		print ("<body>")
#		print ("<h3>Prova</h3>")
#		print str("<h5>Stato led --> " + self.di + " !!</h5>")
#		print ("<h5>Quakcisa</h5>")
#		print ("</body>")
#		print ("</html>")
#
#	def changedi(self, value):
#		self.di = value
#
#Creo  la mia routine

try:
#	gui = Gui()
	live = Live()
except:
	print "Qualcosa e' andato storto."

try:
#	gui.start()
	live.start()
except:
	print "La routine non e' partita."

#print "Routine partita."

time.sleep(10)

try:
	live.termina()
except:
	print "Riavviare tutto."
	exit (1)
print "\nsono uscito"

exit(0)





Il giorno 21 febbraio 2013 19:10, Diego Barrera
<diegonebarrera a yahoo.it>ha scritto:

>  Il 21/02/2013 18:59, Emilio Peruzzi ha scritto:
>
>  Ciao a tutti sono Emilio,
>
> Premetto che sono nuovo qui nel forum e programmo in Python solo da
> una decina di giorni, spero quindi
> di aver fatto tutto correttamente, in caso contrario mi scuso!
>
> Praticamente ho un microcontrollore con otto ingressi digitali,
> otto ingressi analogici e otto uscite digitali.
> Devo fare un programmino che mi legga gli input e gli output e infine
> creare una pagina HTML in modo tale da poter
> vedere tutti i dati ed eventualmente modificare le mie uscite. In più devo
> creare un data logger così da avere uno storico
> di tutti i cambiamenti avvenuti.
> Ora io ho fatto così, ho creato un programma che mi apre ed attacca il
> microcontrollore, scrive in un file .txt ogni modifica
> avvenuta negli stati digitali e ogni tot secondi mi scrive il valore degli
> ingressi analogici.
> Il tutto usando delle routine che si comportano un po' come delle task,
> quindi di fatto il mio data logger c'è e mi basterà richiamare
> il file .txt con uno script in python per poterlo vedere dal web, quindi
> fin qui tutto bene.
> Il problema nasce dal fatto che dovrei avere la possibilità di vedere lo
> stato delle mie uscite e degli ingressi in tempo reale
> in modo tale che da internet all'interno della mia pagina web nella
> sezione live vedo una tabellina con il valore
> dei miei stati e nel caso questi cambino devo vedere che cambiano, e in
> effetti anche questo problema
> l'ho risolto, anzi no, l'ho risolto in parte. In sostanza il mio programma
> principale, quello che controlla direttamente
> il microcontrollore per intenderci, mi butta su un file .txt il valore, ad
> esempio, dell'ingresso digitale.
> La pagina html in realtà è gestita, o dovrebbe essere gestita da un
> programmino. In sostanza ho una pagina html divisa
> in due frames, un frame mi richiama una pagina html che gestisce il menu,
> l'altro frame, la "sostanza" della pagina
> richiama appunto un programmino Python, il programma in Python ora non ha
> una vera e propria interfaccia tipo la tabella ecc,
> perché quello è html allo stato puro quindi in fin dei conti è l'ultima
> cosa che mi preoccupa, al momento mi limito a stampare
> a video ogni qual volta cambia il mio ingresso digitale.
> Il problema vero è che il programmino mi stampa i valori in maniera
> sequenziale, cioè ogni volta che il mio valore cambia
> mi scrive di nuovo tutta la pappardella e ottengo una cosa di questo
> genere "Valore ingresso digitale: 0Valore ingresso digitale1"
> e così via fin quando non mi termina l'esecuzione del programma, ora io
> avrei bisogno di trovare il modo
> di poter far cambiare solo ed esclusivamente il valore, cioè dovrebbe
> sovrascrivere la stampa precedente.
>
>
> Cioe' praticamente leggi il file e scrivi il contenuto nel frame?
>
>
>    - Italiano - rilevata
>    - Inglese
>    - Italiano
>
>
>    - Inglese
>    - Italiano
>
>
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python
>
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20130221/eea478b5/attachment.html>


Maggiori informazioni sulla lista Python