Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
P
Printrun
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
machinery
Printrun
Commits
0e647da1
Commit
0e647da1
authored
May 31, 2012
by
unknown
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Updates for web itnerface, add actions, and custom styling using css/style.css
parent
c2e68056
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
233 additions
and
25 deletions
+233
-25
style.css
css/style.css
+108
-0
http.config
http.config
+4
-0
webinterface.py
webinterface.py
+121
-25
No files found.
css/style.css
0 → 100644
View file @
0e647da1
#title
{
text-align
:
center
;
color
:
red
;
}
#mainmenu
{
margin
:
0
;
padding
:
0
0
20px
10px
;
border-bottom
:
1px
solid
#000
;
}
#mainmenu
ul
,
#mainmenu
li
{
margin
:
0
;
padding
:
0
;
display
:
inline
;
list-style-type
:
none
;
}
#mainmenu
a
:link
,
#mainmenu
a
:visited
{
float
:
left
;
line-height
:
14px
;
font-weight
:
bold
;
margin
:
0
10px
4px
10px
;
text-decoration
:
none
;
color
:
#999
;
}
#mainmenu
a
:link
#current
,
#mainmenu
a
:visited
#current
,
#mainmenu
a
:hover
{
border-bottom
:
4px
solid
#000
;
padding-bottom
:
2px
;
background
:
transparent
;
color
:
#000
;
}
#mainmenu
a
:hover
{
color
:
#000
;
}
#controls
{
}
#controls
ul
{
list-style
:
none
;
margin
:
0px
;
padding
:
0px
;
border
:
none
;
}
#controls
ul
li
{
margin
:
0px
;
padding
:
0px
;
}
#controls
ul
li
a
{
font-size
:
80%
;
display
:
block
;
border-bottom
:
1px
dashed
#C39C4E
;
padding
:
5px
0px
2px
4px
;
text-decoration
:
none
;
color
:
#666666
;
width
:
160px
;
}
#controls
ul
li
a
:hover
,
#controls
ul
li
a
:focus
{
color
:
#000000
;
background-color
:
#eeeeee
;
}
#settings
{
margin
:
0px
;
padding-top
:
50px
;
border
:
none
;
}
#settings
table
{
font-family
:
verdana
,
arial
,
sans-serif
;
font-size
:
11px
;
color
:
#333333
;
border-width
:
1px
;
border-color
:
#999999
;
border-collapse
:
collapse
;
}
#settings
table
th
{
background-color
:
#c3dde0
;
border-width
:
1px
;
padding
:
8px
;
border-style
:
solid
;
border-color
:
#a9c6c9
;
}
#settings
table
tr
{
background-color
:
#d4e3e5
;
}
#settings
table
td
{
border-width
:
1px
;
padding
:
8px
;
border-style
:
solid
;
border-color
:
#a9c6c9
;
}
\ No newline at end of file
http.config
View file @
0e647da1
[
global
]
server
.
socket_host
:
"localhost"
server
.
socket_port
:
8080
[/
css
/
style
.
css
]
tools
.
staticfile
.
on
=
True
tools
.
staticfile
.
filename
=
"C:\Printrun-web\Printrun\css\style.css"
webinterface.py
View file @
0e647da1
#!/usr/bin/python
import
cherrypy
,
pronterface
import
cherrypy
,
pronterface
,
re
import
os.path
def
PrintHeader
():
return
"<html><head></head><body><h3><a href='/'>main</a> | <a href='/settings'>settings</a> </h3>"
return
'<html>
\n
<head>
\n
<title>Pronterface-Web</title>
\n
<link rel="stylesheet" type="text/css" href="/css/style.css" type="text/css"></link>
\n
</head>
\n
<body>
\n
'
def
PrintMenu
():
return
'<div id="mainmenu"><ul><li><a href="/">home</a></li><li><a href="/settings">settings</a></li><li><a href="/console">console</a></li></ul></div>'
def
PrintFooter
():
return
"</body></html>"
pronterPtr
=
0
def
ReloadPage
(
action
):
return
"<html><head><meta http-equiv='refresh' content='0;url=/'></head><body>"
+
action
+
"</body></html>"
gPronterPtr
=
0
gWeblog
=
""
gLogRefresh
=
5
class
SettingsPage
(
object
):
def
__init__
(
self
):
self
.
name
=
"<h1>Pronterface Settings</h1>"
def
SetPface
(
self
,
pface
):
self
.
pface
=
pface
self
.
name
=
"<div id='title'>Pronterface Settings</div>"
def
index
(
self
):
pageText
=
PrintHeader
()
+
self
.
name
+
PrintMenu
()
pageText
=
pageText
+
"<div id='settings'><table>
\n
<tr><th>setting</th><th>value</th>"
pageText
=
pageText
+
"<tr>
\n
<td><b>Build Dimenstions</b></td><td>"
+
str
(
gPronterPtr
.
settings
.
build_dimensions
)
+
"</td>
\n
</tr>"
pageText
=
pageText
+
" <tr>
\n
<td><b>Last Bed Temp</b></td><td>"
+
str
(
gPronterPtr
.
settings
.
last_bed_temperature
)
+
"</td>
\n
</tr>"
pageText
=
pageText
+
" <tr>
\n
<td><b>Last File Path</b></td><td>"
+
gPronterPtr
.
settings
.
last_file_path
+
"</td>
\n
</tr>"
pageText
=
pageText
+
" <tr>
\n
<td><b>Last Temperature</b></td><td>"
+
str
(
gPronterPtr
.
settings
.
last_temperature
)
+
"</td>
\n
</tr>"
pageText
=
pageText
+
" <tr>
\n
<td><b>Preview Extrusion Width</b></td><td>"
+
str
(
gPronterPtr
.
settings
.
preview_extrusion_width
)
+
"</td>
\n
</tr>"
pageText
=
pageText
+
" <tr>
\n
<td><b>Filename</b></td><td>"
+
str
(
gPronterPtr
.
filename
)
+
"</td></tr></div>"
pageText
=
pageText
+
PrintFooter
()
return
pageText
index
.
exposed
=
True
class
LogPage
(
object
):
def
__init__
(
self
):
self
.
name
=
"<div id='title'>Pronterface Console</div>"
def
index
(
self
):
pageText
=
self
.
name
+
PrintHeader
()
pageText
=
pageText
+
"<table><tr><td><b>Build Dimenstions</b></td><td>"
+
str
(
pronterPtr
.
settings
.
build_dimensions
)
+
"</td></tr>"
pageText
=
pageText
+
"<tr><td><b>Last Bed Temp</b></td><td>"
+
str
(
pronterPtr
.
settings
.
last_bed_temperature
)
+
"</td></tr>"
pageText
=
pageText
+
"<tr><td><b>Last File Path</b></td><td>"
+
pronterPtr
.
settings
.
last_file_path
+
"</td></tr>"
pageText
=
pageText
+
"<tr><td><b>Last Temperature</b></td><td>"
+
str
(
pronterPtr
.
settings
.
last_temperature
)
+
"</td></tr>"
pageText
=
pageText
+
"<tr><td><b>Preview Extrusion Width</b></td><td>"
+
str
(
pronterPtr
.
settings
.
preview_extrusion_width
)
+
"</td></tr>"
pageText
=
pageText
+
"<tr><td><b>Filename</b></td><td>"
+
str
(
pronterPtr
.
filename
)
+
"</td></tr>"
pageText
=
"<html><head><meta http-equiv='refresh' content='"
+
str
(
gLogRefresh
)
+
"'></head><body>"
pageText
+=
"<div id='status'>"
pageText
+=
gPronterPtr
.
status
.
GetStatusText
()
pageText
+=
"</div>"
pageText
=
pageText
+
"<div id='console'>"
+
gWeblog
+
"</div>"
pageText
=
pageText
+
"</body></html>"
return
pageText
index
.
exposed
=
True
class
ConsolePage
(
object
):
def
__init__
(
self
):
self
.
name
=
"<div id='title'>Pronterface Settings</div>"
def
index
(
self
):
pageText
=
PrintHeader
()
+
self
.
name
+
PrintMenu
()
pageText
+=
"<div id='logframe'><iframe src='/logpage' width='100
%
' height='100
%
'>iFraming Not Supported?? No log for you.</iframe></div>"
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
self
.
weblog
=
"Connecting web interface to pronterface..."
self
.
name
=
"<h1>Pronterface Settings</h1>"
global
pronterPtr
pronterPtr
=
self
.
pface
global
gPronterPtr
global
gWeblog
self
.
name
=
"<div id='title'>Pronterface Web-Interface</div>"
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
=
self
.
name
+
PrintHeader
()
pageText
=
pageText
+
"<textarea rows='30' cols='100'>"
+
self
.
weblog
+
"</textarea>"
pageText
=
pageText
+
PrintFooter
()
pageText
=
PrintHeader
()
+
self
.
name
+
PrintMenu
()
pageText
+=
"<div id='controls'>"
pageText
+=
"<ul><li><a href='/connect'>Connect</a></li>"
pageText
+=
"<li><a href='/disconnect'>Disconnect</a></li>"
pageText
+=
"<li><a href='/reset'>Reset</a></li>"
pageText
+=
"<li><a href='/printbutton'>Print</a></li>"
pageText
+=
"<li><a href='/pausebutton'>Pause</a></li></ul>"
pageText
+=
"</div>"
pageText
=
pageText
+
"<div id='file'>File Loaded: <i>"
+
str
(
gPronterPtr
.
filename
)
+
"</i></div>"
pageText
+=
"<div id='logframe'><iframe src='/logpage' width='100
%
' height='100
%
'>iFraming Not Supported?? No log for you.</iframe></div>"
pageText
+=
PrintFooter
()
return
pageText
def
AddLog
(
self
,
log
):
self
.
weblog
=
self
.
weblog
+
"
\n
"
+
log
global
gWeblog
gWeblog
=
gWeblog
+
"</br>"
+
log
def
AppendLog
(
self
,
log
):
self
.
weblog
=
self
.
weblog
+
log
global
gWeblog
gWeblog
=
re
.
sub
(
"
\n
"
,
"</br>"
,
gWeblog
)
+
log
index
.
exposed
=
True
class
WebInterfaceStub
(
object
):
...
...
@@ -52,9 +143,14 @@ class WebInterfaceStub(object):
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"
)
cherrypy
.
quickstart
(
webInterface
)
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"
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment