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
2173f1bc
Commit
2173f1bc
authored
Nov 16, 2011
by
Keegi
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #94 from kliment/experimental
Experimental
parents
440a5ca5
8f3df9c2
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
204 additions
and
71 deletions
+204
-71
blupload.py
blupload.py
+0
-41
pronsole.py
pronsole.py
+3
-3
pronterface.py
pronterface.py
+201
-27
No files found.
blupload.py
deleted
100644 → 0
View file @
440a5ca5
import
printcore
,
time
,
sys
,
os
def
dosify
(
name
):
return
os
.
path
.
split
(
name
)[
1
]
.
split
(
"."
)[
0
][:
8
]
+
".g"
def
blupload
(
printer
,
filename
,
path
):
printer
.
send_now
(
"M28 "
+
dosify
(
filename
))
printer
.
startprint
([
i
.
replace
(
"
\n
"
,
""
)
for
i
in
open
(
path
)])
try
:
sys
.
stdout
.
write
(
"Progress: 00.0
%
"
)
sys
.
stdout
.
flush
()
while
(
printer
.
printing
):
time
.
sleep
(
1
)
sys
.
stdout
.
write
(
"
\b\b\b\b
%02.1
f
%%
"
%
(
100
*
float
(
printer
.
queueindex
)
/
len
(
printer
.
mainqueue
),)
)
sys
.
stdout
.
flush
()
printer
.
send_now
(
"M29 "
+
dosify
(
filename
))
print
"Done uploading, disconnecting with a 5 second timeout in case the printer has something important to say."
printer
.
disconnect
()
time
.
sleep
(
5
)
print
"Upload complete. Goodbye!"
except
:
print
"Abort, disconnecting with a 5 second timeout in case the printer has something important to say."
printer
.
disconnect
()
if
__name__
==
'__main__'
:
#print "Usage: python blupload.py filename.gcode"
filename
=
"../prusamendel/sellsx_export.gcode"
tfilename
=
filename
if
len
(
sys
.
argv
)
>
1
:
filename
=
sys
.
argv
[
1
]
tfilename
=
os
.
path
.
basename
(
sys
.
argv
[
1
])
print
"Uploading: "
+
filename
,
" as "
+
dosify
(
tfilename
)
p
=
printcore
.
printcore
(
'/dev/ttyUSB0'
,
115200
)
p
.
loud
=
False
time
.
sleep
(
2
)
blupload
(
p
,
tfilename
,
filename
)
else
:
print
"Usage: python blupload.py filename.gcode"
pronsole.py
View file @
2173f1bc
...
...
@@ -147,9 +147,9 @@ class Settings:
self
.
port
=
""
self
.
baudrate
=
115200
self
.
temperature_pla
=
185
self
.
temperature_abs
=
230
.0
self
.
bedtemp_pla
=
60
.0
self
.
bedtemp_abs
=
110
.0
self
.
temperature_abs
=
230
self
.
bedtemp_pla
=
60
self
.
bedtemp_abs
=
110
self
.
xy_feedrate
=
3000
self
.
z_feedrate
=
200
self
.
e_feedrate
=
300
...
...
pronterface.py
View file @
2173f1bc
...
...
@@ -117,6 +117,8 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
self
.
starttime
=
0
self
.
curlayer
=
0
self
.
cur_button
=
None
self
.
hsetpoint
=
0.0
self
.
bsetpoint
=
0.0
def
startcb
(
self
):
self
.
starttime
=
time
.
time
()
...
...
@@ -184,14 +186,29 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
if
self
.
p
.
online
:
self
.
p
.
send_now
(
"M104 S"
+
l
)
print
_
(
"Setting hotend temperature to "
),
f
,
_
(
" degrees Celsius."
)
self
.
hsetpoint
=
f
#self.tgauge.SetTarget(int(f))
if
f
>
0
:
self
.
htemp
.
SetValue
(
l
)
self
.
set
(
"last_temperature"
,
str
(
f
))
self
.
settoff
.
SetBackgroundColour
(
""
)
self
.
settoff
.
SetForegroundColour
(
""
)
self
.
settbtn
.
SetBackgroundColour
(
"#FFAA66"
)
self
.
settbtn
.
SetForegroundColour
(
"#660000"
)
self
.
htemp
.
SetBackgroundColour
(
"#FFDABB"
)
else
:
self
.
settoff
.
SetBackgroundColour
(
"#0044CC"
)
self
.
settoff
.
SetForegroundColour
(
"white"
)
self
.
settbtn
.
SetBackgroundColour
(
""
)
self
.
settbtn
.
SetForegroundColour
(
""
)
self
.
htemp
.
SetBackgroundColour
(
"white"
)
self
.
htemp
.
Refresh
()
else
:
print
_
(
"Printer is not online."
)
else
:
print
_
(
"You cannot set negative temperatures. To turn the hotend off entirely, set its temperature to 0."
)
except
:
print
_
(
"You must enter a temperature.
"
)
except
Exception
,
x
:
print
_
(
"You must enter a temperature.
(
%
s)"
%
(
repr
(
x
),)
)
def
do_bedtemp
(
self
,
l
=
""
):
try
:
...
...
@@ -205,8 +222,22 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
if
self
.
p
.
online
:
self
.
p
.
send_now
(
"M140 S"
+
l
)
print
_
(
"Setting bed temperature to "
),
f
,
_
(
" degrees Celsius."
)
self
.
bsetpoint
=
f
if
f
>
0
:
self
.
btemp
.
SetValue
(
l
)
self
.
set
(
"last_bed_temperature"
,
str
(
f
))
self
.
setboff
.
SetBackgroundColour
(
""
)
self
.
setboff
.
SetForegroundColour
(
""
)
self
.
setbbtn
.
SetBackgroundColour
(
"#FFAA66"
)
self
.
setbbtn
.
SetForegroundColour
(
"#660000"
)
self
.
btemp
.
SetBackgroundColour
(
"#FFDABB"
)
else
:
self
.
setboff
.
SetBackgroundColour
(
"#0044CC"
)
self
.
setboff
.
SetForegroundColour
(
"white"
)
self
.
setbbtn
.
SetBackgroundColour
(
""
)
self
.
setbbtn
.
SetForegroundColour
(
""
)
self
.
btemp
.
SetBackgroundColour
(
"white"
)
self
.
btemp
.
Refresh
()
else
:
print
_
(
"Printer is not online."
)
else
:
...
...
@@ -409,6 +440,14 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
uts
.
Add
(
self
.
resetbtn
)
self
.
minibtn
=
wx
.
Button
(
self
.
panel
,
-
1
,
_
(
"Mini mode"
),
pos
=
(
690
,
0
))
self
.
minibtn
.
Bind
(
wx
.
EVT_BUTTON
,
self
.
toggleview
)
#self.tgauge=TempGauge(self.panel,size=(300,24))
#def scroll_setpoint(e):
# if e.GetWheelRotation()>0:
# self.do_settemp(str(self.hsetpoint+1))
# elif e.GetWheelRotation()<0:
# self.do_settemp(str(max(0,self.hsetpoint-1)))
#self.tgauge.Bind(wx.EVT_MOUSEWHEEL,scroll_setpoint)
uts
.
Add
((
10
,
-
1
))
self
.
monitorbox
=
wx
.
CheckBox
(
self
.
panel
,
-
1
,
""
,
pos
=
(
450
,
37
))
uts
.
Add
((
15
,
-
1
))
...
...
@@ -418,6 +457,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
uts
.
Add
((
15
,
-
1
),
flag
=
wx
.
EXPAND
)
uts
.
Add
(
self
.
minibtn
)
#uts.Add(self.tgauge)
#SECOND ROW
ubs
=
self
.
upperbottomsizer
=
wx
.
BoxSizer
(
wx
.
HORIZONTAL
)
...
...
@@ -489,27 +529,46 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
lls
.
Add
(
wx
.
StaticText
(
self
.
panel
,
-
1
,
_
(
"Heater:"
),
pos
=
(
0
,
343
)),
pos
=
(
3
,
0
),
span
=
(
1
,
1
),
flag
=
wx
.
ALIGN_CENTER
)
htemp_choices
=
[
self
.
temps
[
i
]
+
" ("
+
i
+
")"
for
i
in
sorted
(
self
.
temps
.
keys
(),
key
=
lambda
x
:
self
.
temps
[
x
])]
self
.
settoff
=
wx
.
Button
(
self
.
panel
,
-
1
,
_
(
"Off"
),
size
=
(
36
,
-
1
),
pos
=
(
45
,
335
))
self
.
settoff
.
Bind
(
wx
.
EVT_BUTTON
,
lambda
e
:
self
.
do_settemp
(
"off"
))
self
.
printerControls
.
append
(
self
.
settoff
)
lls
.
Add
(
self
.
settoff
,
pos
=
(
3
,
1
),
span
=
(
1
,
1
))
if
self
.
settings
.
last_temperature
not
in
map
(
float
,
self
.
temps
.
values
()):
htemp_choices
=
[
str
(
self
.
settings
.
last_temperature
)]
+
htemp_choices
self
.
htemp
=
wx
.
ComboBox
(
self
.
panel
,
-
1
,
choices
=
htemp_choices
,
style
=
wx
.
CB_DROPDOWN
,
size
=
(
9
0
,
25
),
pos
=
(
45
,
337
))
choices
=
htemp_choices
,
style
=
wx
.
CB_DROPDOWN
,
size
=
(
8
0
,
25
),
pos
=
(
45
,
337
))
self
.
htemp
.
Bind
(
wx
.
EVT_COMBOBOX
,
self
.
htemp_change
)
lls
.
Add
(
self
.
htemp
,
pos
=
(
3
,
1
),
span
=
(
1
,
3
))
self
.
settbtn
=
wx
.
Button
(
self
.
panel
,
-
1
,
_
(
"Set"
),
size
=
(
3
8
,
-
1
),
pos
=
(
13
5
,
335
))
lls
.
Add
(
self
.
htemp
,
pos
=
(
3
,
2
),
span
=
(
1
,
2
))
self
.
settbtn
=
wx
.
Button
(
self
.
panel
,
-
1
,
_
(
"Set"
),
size
=
(
3
6
,
-
1
),
pos
=
(
12
5
,
335
))
self
.
settbtn
.
Bind
(
wx
.
EVT_BUTTON
,
self
.
do_settemp
)
self
.
printerControls
.
append
(
self
.
settbtn
)
lls
.
Add
(
self
.
settbtn
,
pos
=
(
3
,
4
),
span
=
(
1
,
1
))
lls
.
Add
(
wx
.
StaticText
(
self
.
panel
,
-
1
,
_
(
"Bed:"
),
pos
=
(
0
,
343
)),
pos
=
(
4
,
0
),
span
=
(
1
,
1
),
flag
=
wx
.
ALIGN_CENTER
)
btemp_choices
=
[
self
.
bedtemps
[
i
]
+
" ("
+
i
+
")"
for
i
in
sorted
(
self
.
bedtemps
.
keys
(),
key
=
lambda
x
:
self
.
temps
[
x
])]
self
.
setboff
=
wx
.
Button
(
self
.
panel
,
-
1
,
_
(
"Off"
),
size
=
(
36
,
-
1
),
pos
=
(
135
,
335
))
self
.
setboff
.
Bind
(
wx
.
EVT_BUTTON
,
lambda
e
:
self
.
do_bedtemp
(
"off"
))
self
.
printerControls
.
append
(
self
.
setboff
)
lls
.
Add
(
self
.
setboff
,
pos
=
(
4
,
1
),
span
=
(
1
,
1
))
if
self
.
settings
.
last_bed_temperature
not
in
map
(
float
,
self
.
bedtemps
.
values
()):
btemp_choices
=
[
str
(
self
.
settings
.
last_bed_temperature
)]
+
btemp_choices
self
.
btemp
=
wx
.
ComboBox
(
self
.
panel
,
-
1
,
choices
=
btemp_choices
,
style
=
wx
.
CB_DROPDOWN
,
size
=
(
90
,
25
),
pos
=
(
45
,
367
))
choices
=
btemp_choices
,
style
=
wx
.
CB_DROPDOWN
,
size
=
(
80
,
25
),
pos
=
(
135
,
367
))
self
.
btemp
.
Bind
(
wx
.
EVT_COMBOBOX
,
self
.
btemp_change
)
lls
.
Add
(
self
.
btemp
,
pos
=
(
4
,
2
),
span
=
(
1
,
2
))
self
.
setbbtn
=
wx
.
Button
(
self
.
panel
,
-
1
,
_
(
"Set"
),
size
=
(
38
,
-
1
),
pos
=
(
135
,
365
))
self
.
setbbtn
.
Bind
(
wx
.
EVT_BUTTON
,
self
.
do_bedtemp
)
self
.
printerControls
.
append
(
self
.
setbbtn
)
lls
.
Add
(
self
.
setbbtn
,
pos
=
(
4
,
4
),
span
=
(
1
,
2
))
self
.
btemp
.
SetValue
(
str
(
self
.
settings
.
last_bed_temperature
))
self
.
htemp
.
SetValue
(
str
(
self
.
settings
.
last_temperature
))
## added for an error where only the bed would get (pla) or (abs).
#This ensures, if last temp is a default pla or abs, it will be marked so.
# if it is not, then a (user) remark is added. This denotes a manual entry
...
...
@@ -526,12 +585,8 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
if
(
'('
not
in
self
.
htemp
.
Value
):
self
.
htemp
.
SetValue
(
self
.
htemp
.
Value
+
' (user)'
)
lls
.
Add
(
self
.
btemp
,
pos
=
(
4
,
1
),
span
=
(
1
,
3
))
self
.
setbbtn
=
wx
.
Button
(
self
.
panel
,
-
1
,
_
(
"Set"
),
size
=
(
38
,
-
1
),
pos
=
(
135
,
365
))
self
.
setbbtn
.
Bind
(
wx
.
EVT_BUTTON
,
self
.
do_bedtemp
)
self
.
printerControls
.
append
(
self
.
setbbtn
)
lls
.
Add
(
self
.
setbbtn
,
pos
=
(
4
,
4
),
span
=
(
1
,
2
))
#lls.Add(self.btemp,pos=(4,1),span=(1,3))
#lls.Add(self.setbbtn,pos=(4,4),span=(1,2))
self
.
tempdisp
=
wx
.
StaticText
(
self
.
panel
,
-
1
,
""
)
lls
.
Add
(
self
.
tempdisp
,
pos
=
(
4
,
6
),
span
=
(
1
,
3
))
...
...
@@ -593,6 +648,16 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
#uts.Layout()
self
.
cbuttons_reload
()
def
htemp_change
(
self
,
event
):
if
self
.
hsetpoint
>
0
:
self
.
do_settemp
(
""
)
wx
.
CallAfter
(
self
.
htemp
.
SetInsertionPoint
,
0
)
def
btemp_change
(
self
,
event
):
if
self
.
bsetpoint
>
0
:
self
.
do_bedtemp
(
""
)
wx
.
CallAfter
(
self
.
btemp
.
SetInsertionPoint
,
0
)
def
showwin
(
self
,
event
):
if
(
self
.
f
is
not
None
):
self
.
gwindow
.
Show
()
...
...
@@ -642,19 +707,30 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
#sizer.Remove(button)
button
.
Destroy
()
self
.
custombuttonbuttons
=
[]
newbuttonbuttonindex
=
len
(
self
.
custombuttons
)
while
newbuttonbuttonindex
>
0
and
self
.
custombuttons
[
newbuttonbuttonindex
-
1
]
is
None
:
newbuttonbuttonindex
-=
1
while
len
(
self
.
custombuttons
)
<
13
:
self
.
custombuttons
.
append
(
None
)
for
i
in
xrange
(
len
(
self
.
custombuttons
)):
btndef
=
self
.
custombuttons
[
i
]
try
:
b
=
wx
.
Button
(
self
.
panel
,
-
1
,
btndef
[
0
])
b
.
SetToolTip
(
wx
.
ToolTip
(
_
(
"Execute command: "
)
+
btndef
[
1
]))
if
len
(
btndef
)
>
2
:
b
.
SetBackgroundColour
(
btndef
[
2
])
rr
,
gg
,
bb
=
b
.
GetBackgroundColour
()
.
Get
()
if
0.3
*
rr
+
0.59
*
gg
+
0.11
*
bb
<
60
:
b
.
SetForegroundColour
(
"#ffffff"
)
except
:
b
=
wx
.
StaticText
(
self
.
panel
,
-
1
,
""
,
size
=
(
72
,
20
),
style
=
wx
.
ALIGN_CENTRE
+
wx
.
ST_NO_AUTORESIZE
)
#+wx.SIMPLE_BORDER
if
i
==
newbuttonbuttonindex
:
self
.
newbuttonbutton
=
b
=
wx
.
Button
(
self
.
panel
,
-
1
,
"+"
,
size
=
(
19
,
18
))
#b.SetFont(wx.Font(12,wx.FONTFAMILY_SWISS,wx.FONTSTYLE_NORMAL,wx.FONTWEIGHT_BOLD))
b
.
SetForegroundColour
(
"#4444ff"
)
b
.
SetToolTip
(
wx
.
ToolTip
(
_
(
"click to add new custom button"
)))
b
.
Bind
(
wx
.
EVT_BUTTON
,
self
.
cbutton_edit
)
else
:
b
=
wx
.
StaticText
(
self
.
panel
,
-
1
,
""
,
size
=
(
72
,
22
),
style
=
wx
.
ALIGN_CENTRE
+
wx
.
ST_NO_AUTORESIZE
)
#+wx.SIMPLE_BORDER
#b.Freeze()
b
.
Disable
()
b
.
custombutton
=
i
...
...
@@ -662,8 +738,8 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
if
btndef
is
not
None
:
b
.
Bind
(
wx
.
EVT_BUTTON
,
self
.
procbutton
)
b
.
Bind
(
wx
.
EVT_MOUSE_EVENTS
,
self
.
editbutton
)
else
:
b
.
Bind
(
wx
.
EVT_BUTTON
,
lambda
e
:
e
.
Skip
())
#
else:
#
b.Bind(wx.EVT_BUTTON,lambda e:e.Skip())
self
.
custombuttonbuttons
.
append
(
b
)
if
i
<
4
:
ubs
.
Add
(
b
)
...
...
@@ -761,7 +837,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
self
.
cbutton_save
(
n
,
None
)
#while len(self.custombuttons) and self.custombuttons[-1] is None:
# del self.custombuttons[-1]
self
.
cbuttons_reload
(
)
wx
.
CallAfter
(
self
.
cbuttons_reload
)
def
cbutton_order
(
self
,
e
,
button
,
dir
):
n
=
button
.
custombutton
...
...
@@ -815,7 +891,14 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
return
if
not
hasattr
(
self
,
"dragging"
):
# init dragging of the custom button
if
hasattr
(
obj
,
"custombutton"
):
if
hasattr
(
obj
,
"custombutton"
)
and
obj
.
properties
is
not
None
:
self
.
newbuttonbutton
.
SetLabel
(
""
)
self
.
newbuttonbutton
.
SetFont
(
wx
.
Font
(
10
,
wx
.
FONTFAMILY_DEFAULT
,
wx
.
FONTSTYLE_NORMAL
,
wx
.
FONTWEIGHT_NORMAL
))
self
.
newbuttonbutton
.
SetForegroundColour
(
"black"
)
self
.
newbuttonbutton
.
SetSize
(
obj
.
GetSize
())
if
self
.
upperbottomsizer
.
GetItem
(
self
.
newbuttonbutton
)
is
not
None
:
self
.
upperbottomsizer
.
SetItemMinSize
(
self
.
newbuttonbutton
,
obj
.
GetSize
())
self
.
topsizer
.
Layout
()
self
.
dragging
=
wx
.
Button
(
self
.
panel
,
-
1
,
obj
.
GetLabel
())
self
.
dragging
.
SetBackgroundColour
(
obj
.
GetBackgroundColour
())
self
.
dragging
.
SetForegroundColour
(
obj
.
GetForegroundColour
())
...
...
@@ -998,6 +1081,10 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
pass
string
+=
(
self
.
tempreport
.
replace
(
"
\r
"
,
""
)
.
replace
(
"T"
,
_
(
"Hotend"
))
.
replace
(
"B"
,
_
(
"Bed"
))
.
replace
(
"
\n
"
,
""
)
.
replace
(
"ok "
,
""
))
+
" "
wx
.
CallAfter
(
self
.
tempdisp
.
SetLabel
,
self
.
tempreport
.
strip
()
.
replace
(
"ok "
,
""
))
#try:
# self.tgauge.SetValue(int(filter(lambda x:x.startswith("T:"),self.tempreport.split())[0].split(":")[1]))
#except:
# pass
if
self
.
sdprinting
:
string
+=
_
(
" SD printing:
%04.2
f
%%
"
)
%
(
self
.
percentdone
,)
if
self
.
p
.
printing
:
...
...
@@ -1035,6 +1122,10 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
if
"T:"
in
l
:
self
.
tempreport
=
l
wx
.
CallAfter
(
self
.
tempdisp
.
SetLabel
,
self
.
tempreport
.
strip
()
.
replace
(
"ok "
,
""
))
#try:
# self.tgauge.SetValue(int(filter(lambda x:x.startswith("T:"),self.tempreport.split())[0].split(":")[1]))
#except:
# pass
tstring
=
l
.
rstrip
()
#print tstring
if
(
tstring
!=
"ok"
):
...
...
@@ -1497,6 +1588,89 @@ class ButtonEdit(wx.Dialog):
if
self
.
name
.
GetValue
()
==
""
:
self
.
name
.
SetValue
(
macro
)
class
TempGauge
(
wx
.
Panel
):
def
__init__
(
self
,
parent
,
size
=
(
200
,
22
)):
wx
.
Panel
.
__init__
(
self
,
parent
,
-
1
,
size
=
size
)
self
.
Bind
(
wx
.
EVT_PAINT
,
self
.
paint
)
self
.
SetBackgroundStyle
(
wx
.
BG_STYLE_CUSTOM
)
self
.
width
,
self
.
height
=
size
self
.
value
=
0
self
.
setpoint
=
0
self
.
recalc
()
def
recalc
(
self
):
self
.
max
=
max
(
int
(
self
.
setpoint
*
1.05
),
240
)
self
.
scale
=
float
(
self
.
width
-
2
)
/
float
(
self
.
max
)
self
.
ypt
=
int
(
self
.
scale
*
max
(
self
.
setpoint
,
40
))
def
SetValue
(
self
,
value
):
self
.
value
=
value
wx
.
CallAfter
(
self
.
Refresh
)
def
SetTarget
(
self
,
value
):
self
.
setpoint
=
value
self
.
recalc
()
wx
.
CallAfter
(
self
.
Refresh
)
def
paint
(
self
,
ev
):
x0
,
y0
,
x1
,
y1
,
xE
,
yE
=
1
,
1
,
self
.
ypt
+
1
,
1
,
self
.
width
+
1
-
2
,
20
dc
=
wx
.
PaintDC
(
self
)
dc
.
SetBackground
(
wx
.
Brush
((
255
,
255
,
255
)))
dc
.
Clear
()
cold
,
medium
,
hot
=
wx
.
Colour
(
0
,
167
,
223
),
wx
.
Colour
(
239
,
233
,
119
),
wx
.
Colour
(
210
,
50.100
)
gauge1
,
gauge2
=
wx
.
Colour
(
255
,
255
,
210
),
wx
.
Colour
(
234
,
82
,
0
)
shadow1
,
shadow2
=
wx
.
Colour
(
110
,
110
,
110
),
wx
.
Colour
(
255
,
255
,
255
)
gc
=
wx
.
GraphicsContext
.
Create
(
dc
)
# draw shadow first
# corners
gc
.
SetBrush
(
gc
.
CreateRadialGradientBrush
(
xE
-
7
,
9
,
xE
-
7
,
9
,
8
,
shadow1
,
shadow2
))
gc
.
DrawRectangle
(
xE
-
7
,
1
,
8
,
8
)
gc
.
SetBrush
(
gc
.
CreateRadialGradientBrush
(
xE
-
7
,
17
,
xE
-
7
,
17
,
8
,
shadow1
,
shadow2
))
gc
.
DrawRectangle
(
xE
-
7
,
17
,
8
,
8
)
gc
.
SetBrush
(
gc
.
CreateRadialGradientBrush
(
x0
+
6
,
17
,
x0
+
6
,
17
,
8
,
shadow1
,
shadow2
))
gc
.
DrawRectangle
(
0
,
17
,
x0
+
6
,
8
)
# edges
gc
.
SetBrush
(
gc
.
CreateLinearGradientBrush
(
xE
-
13
,
0
,
xE
-
6
,
0
,
shadow1
,
shadow2
))
gc
.
DrawRectangle
(
xE
-
6
,
9
,
10
,
8
)
gc
.
SetBrush
(
gc
.
CreateLinearGradientBrush
(
x0
,
yE
-
2
,
x0
,
yE
+
5
,
shadow1
,
shadow2
))
gc
.
DrawRectangle
(
x0
+
6
,
yE
-
2
,
xE
-
12
,
7
)
# draw gauge background
gc
.
SetBrush
(
gc
.
CreateLinearGradientBrush
(
x0
,
y0
,
x1
+
1
,
y1
,
cold
,
medium
))
gc
.
DrawRoundedRectangle
(
x0
,
y0
,
x1
+
4
,
yE
,
6
)
gc
.
SetBrush
(
gc
.
CreateLinearGradientBrush
(
x1
-
2
,
y1
,
xE
,
y1
,
medium
,
hot
))
gc
.
DrawRoundedRectangle
(
x1
-
2
,
y1
,
xE
-
x1
,
yE
,
6
)
# draw gauge
gc
.
SetBrush
(
gc
.
CreateLinearGradientBrush
(
x0
,
y0
+
3
,
x0
,
y0
+
15
,
gauge1
,
gauge2
))
#gc.SetBrush(gc.CreateLinearGradientBrush(0,3,0,15,wx.Colour(255,255,255),wx.Colour(255,90,32)))
width
=
12
w1
=
y0
+
9
-
width
/
2
w2
=
w1
+
width
value
=
x0
+
max
(
10
,
min
(
self
.
width
+
1
-
2
,
int
(
self
.
value
*
self
.
scale
)))
val_path
=
gc
.
CreatePath
()
val_path
.
MoveToPoint
(
x0
,
w1
)
val_path
.
AddLineToPoint
(
value
,
w1
)
val_path
.
AddLineToPoint
(
value
+
2
,
w1
+
width
/
4
)
val_path
.
AddLineToPoint
(
value
+
2
,
w2
-
width
/
4
)
val_path
.
AddLineToPoint
(
value
,
w2
)
#val_path.AddLineToPoint(value-4,10)
val_path
.
AddLineToPoint
(
x0
,
w2
)
gc
.
DrawPath
(
val_path
)
# draw setpoint markers
setpoint
=
x0
+
max
(
10
,
int
(
self
.
setpoint
*
self
.
scale
))
gc
.
SetBrush
(
gc
.
CreateBrush
(
wx
.
Brush
(
wx
.
Colour
(
0
,
0
,
0
))))
setp_path
=
gc
.
CreatePath
()
setp_path
.
MoveToPoint
(
setpoint
-
4
,
y0
)
setp_path
.
AddLineToPoint
(
setpoint
+
4
,
y0
)
setp_path
.
AddLineToPoint
(
setpoint
,
y0
+
5
)
setp_path
.
MoveToPoint
(
setpoint
-
4
,
yE
)
setp_path
.
AddLineToPoint
(
setpoint
+
4
,
yE
)
setp_path
.
AddLineToPoint
(
setpoint
,
yE
-
5
)
gc
.
DrawPath
(
setp_path
)
# draw readout
text
=
u"T
\u00B0
%
u/
%
u"
%
(
self
.
value
,
self
.
setpoint
)
#gc.SetFont(gc.CreateFont(wx.Font(12,wx.FONTFAMILY_DEFAULT,wx.FONTSTYLE_NORMAL,wx.FONTWEIGHT_BOLD),wx.WHITE))
#gc.DrawText(text,29,-2)
gc
.
SetFont
(
gc
.
CreateFont
(
wx
.
Font
(
10
,
wx
.
FONTFAMILY_DEFAULT
,
wx
.
FONTSTYLE_NORMAL
,
wx
.
FONTWEIGHT_BOLD
),
wx
.
WHITE
))
gc
.
DrawText
(
text
,
x0
+
31
,
y0
+
1
)
gc
.
SetFont
(
gc
.
CreateFont
(
wx
.
Font
(
10
,
wx
.
FONTFAMILY_DEFAULT
,
wx
.
FONTSTYLE_NORMAL
,
wx
.
FONTWEIGHT_BOLD
)))
gc
.
DrawText
(
text
,
x0
+
30
,
y0
+
0
)
if
__name__
==
'__main__'
:
app
=
wx
.
App
(
False
)
main
=
PronterWindow
()
...
...
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