#!/usr/bin/python import cherrypy, pronterface, re import os.path def PrintHeader(): return '\n\nPronterface-Web\n\n\n\n' def PrintMenu(): return '' def PrintFooter(): return "" def ReloadPage(action): return ""+action+"" gPronterPtr = 0 gWeblog = "" gLogRefresh =5 class SettingsPage(object): def __init__(self): self.name="
Pronterface Settings
" def index(self): pageText=PrintHeader()+self.name+PrintMenu() pageText=pageText+"
\n" pageText=pageText+"\n \n" pageText=pageText+" \n \n" pageText=pageText+" \n \n" pageText=pageText+" \n \n" pageText=pageText+" \n \n" pageText=pageText+" \n " pageText=pageText+PrintFooter() return pageText index.exposed = True class LogPage(object): def __init__(self): self.name="
Pronterface Console
" def index(self): pageText="" pageText+="
" pageText+=gPronterPtr.status.GetStatusText() pageText+="
" pageText=pageText+"
"+gWeblog+"
" pageText=pageText+"" return pageText index.exposed = True class ConsolePage(object): def __init__(self): self.name="
Pronterface Settings
" def index(self): pageText=PrintHeader()+self.name+PrintMenu() pageText+="
" pageText+=PrintFooter() return pageText index.exposed = True class ConnectButton(object): def index(self): #handle connect push, then reload page gPronterPtr.connect(0) return ReloadPage("Connect...") index.exposed = True class DisconnectButton(object): def index(self): #handle connect push, then reload page gPronterPtr.disconnect(0) return ReloadPage("Disconnect...") index.exposed = True class ResetButton(object): def index(self): #handle connect push, then reload page gPronterPtr.reset(0) return ReloadPage("Reset...") index.exposed = True class PrintButton(object): def index(self): #handle connect push, then reload page gPronterPtr.printfile(0) return ReloadPage("Print...") index.exposed = True class PauseButton(object): def index(self): #handle connect push, then reload page gPronterPtr.pause(0) return ReloadPage("Pause...") index.exposed = True class WebInterface(object): def __init__(self, pface): self.pface = pface global gPronterPtr global gWeblog self.name="
Pronterface Web-Interface
" gWeblog = "Connecting web interface to pronterface..." gPronterPtr = self.pface settings = SettingsPage() logpage = LogPage() console = ConsolePage() #actions connect = ConnectButton() disconnect = DisconnectButton() reset = ResetButton() printbutton = PrintButton() pausebutton = PrintButton() def index(self): pageText=PrintHeader()+self.name+PrintMenu() pageText+="
" pageText+="" pageText+="
" pageText=pageText+"
File Loaded: "+str(gPronterPtr.filename)+"
" pageText+="
" pageText+=PrintFooter() return pageText def AddLog(self, log): global gWeblog gWeblog=gWeblog+"
"+log def AppendLog(self, log): global gWeblog gWeblog=re.sub("\n", "
", gWeblog)+log index.exposed = True class WebInterfaceStub(object): def index(self): return "Web Interface Must be launched by running Pronterface!" index.exposed = True def StartWebInterfaceThread(webInterface): current_dir = os.path.dirname(os.path.abspath(__file__)) cherrypy.config.update({'engine.autoreload_on':False}) cherrypy.config.update("http.config") conf = {'/css/style.css': {'tools.staticfile.on': True, 'tools.staticfile.filename': os.path.join(current_dir, 'css/style.css'), }} cherrypy.config.update("http.config") cherrypy.quickstart(webInterface, '/', config=conf) if __name__ == '__main__': cherrypy.config.update("http.config") cherrypy.quickstart(WebInterfaceStub())
settingvalue
Build Dimenstions"+str(gPronterPtr.settings.build_dimensions)+"
Last Bed Temp"+str(gPronterPtr.settings.last_bed_temperature)+"
Last File Path"+gPronterPtr.settings.last_file_path+"
Last Temperature"+str(gPronterPtr.settings.last_temperature)+"
Preview Extrusion Width"+str(gPronterPtr.settings.preview_extrusion_width)+"
Filename"+str(gPronterPtr.filename)+"