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
5fc2fe09
Commit
5fc2fe09
authored
Jun 09, 2011
by
kliment
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Pronsole: Print all unknown responses
Updated readme
parent
961ad6b8
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
53 additions
and
8 deletions
+53
-8
README
README
+41
-3
pronsole.py
pronsole.py
+12
-3
pronterface.py
pronterface.py
+0
-2
No files found.
README
View file @
5fc2fe09
This is
the beginning of a python-based host software for reprap printer
s.
This is
a python-based host software for reprap printers, in various form
s.
Currently contains printcore.py, which requires pyserial to be installed
.
Printrun consists of printcore, pronsole and pronterface, and a small collection of helpful scripts
.
Using printcore:
printcore.py is a library that makes writing reprap hosts easy
pronsole.py is an interactive command-line host software with tabcompletion goodness
pronterface.py is a graphical host software with the same functionality as pronsole
USING PRONTERFACE
To use pronterface, you need:
python (ideally 2.6.x or 2.7.x),
pyserial (or python-serial on ubuntu/debian),
pyreadline (not needed on Linux) and
wxPython
Download and install the above, and start pronterface.py
Select the port name you are using from the first drop-down, select your baud rate, and hit connect.
Load an STL (see the note on skeinforge below) or GCODE file, and you can upload it to SD or print it directly.
The "monitor printer" function, when enabled, checks the printer state (temperatures, SD print progress) every 3 seconds.
The command box recognizes all pronsole commands, but has no tabcompletion.
If you want to load stl files, you need to put a version of skeinforge (doesn't matter which one) in a folder called "skeinforge".
The "skeinforge" folder must be in the same folder as pronterface.py
USING PRONSOLE
To use pronsole, you need:
python (ideally 2.6.x or 2.7.x),
pyserial (or python-serial on ubuntu/debian) and
pyreadline (not needed on Linux)
Start pronsole and you will be greeted with a command prompt. Type help to view the available commands.
All commands have internal help, which you can access by typing "help commandname", for example "help connect"
If you want to load stl files, you need to put a version of skeinforge (doesn't matter which one) in a folder called "skeinforge".
The "skeinforge" folder must be in the same folder as pronsole.py
USING PRINTCORE:
To use printcore you need python (ideally 2.6.x or 2.7.x) and pyserial (or python-serial on ubuntu/debian)
See pronsole for an example of a full-featured host, the bottom of printcore.py for a simple command-line
sender, or the following code example:
p=printcore('/dev/ttyUSB0',115200)
p=printcore('/dev/ttyUSB0',115200)
p.startprint(data) # data is an array of gcode lines
p.startprint(data) # data is an array of gcode lines
...
...
pronsole.py
View file @
5fc2fe09
...
@@ -42,6 +42,8 @@ class pronsole(cmd.Cmd):
...
@@ -42,6 +42,8 @@ class pronsole(cmd.Cmd):
self
.
macros
=
{}
self
.
macros
=
{}
self
.
processing_rc
=
False
self
.
processing_rc
=
False
self
.
lastport
=
(
None
,
None
)
self
.
lastport
=
(
None
,
None
)
self
.
monitoring
=
0
def
scanserial
(
self
):
def
scanserial
(
self
):
"""scan for available ports. return a list of device names."""
"""scan for available ports. return a list of device names."""
...
@@ -393,7 +395,7 @@ class pronsole(cmd.Cmd):
...
@@ -393,7 +395,7 @@ class pronsole(cmd.Cmd):
if
not
self
.
p
.
online
:
if
not
self
.
p
.
online
:
print
"Printer is not online. Try connect to it first."
print
"Printer is not online. Try connect to it first."
return
return
self
.
listing
=
0
self
.
listing
=
2
self
.
sdfiles
=
[]
self
.
sdfiles
=
[]
self
.
recvlisteners
+=
[
self
.
listfiles
]
self
.
recvlisteners
+=
[
self
.
listfiles
]
self
.
p
.
send_now
(
"M20"
)
self
.
p
.
send_now
(
"M20"
)
...
@@ -440,7 +442,7 @@ class pronsole(cmd.Cmd):
...
@@ -440,7 +442,7 @@ class pronsole(cmd.Cmd):
if
not
self
.
p
.
online
:
if
not
self
.
p
.
online
:
print
"Printer is not online. Try connect to it first."
print
"Printer is not online. Try connect to it first."
return
return
self
.
listing
=
0
self
.
listing
=
2
self
.
sdfiles
=
[]
self
.
sdfiles
=
[]
self
.
recvlisteners
+=
[
self
.
listfiles
]
self
.
recvlisteners
+=
[
self
.
listfiles
]
self
.
p
.
send_now
(
"M20"
)
self
.
p
.
send_now
(
"M20"
)
...
@@ -460,7 +462,7 @@ class pronsole(cmd.Cmd):
...
@@ -460,7 +462,7 @@ class pronsole(cmd.Cmd):
def
complete_sdprint
(
self
,
text
,
line
,
begidx
,
endidx
):
def
complete_sdprint
(
self
,
text
,
line
,
begidx
,
endidx
):
if
self
.
sdfiles
==
[]
and
self
.
p
.
online
:
if
self
.
sdfiles
==
[]
and
self
.
p
.
online
:
self
.
listing
=
0
self
.
listing
=
2
self
.
recvlisteners
+=
[
self
.
listfiles
]
self
.
recvlisteners
+=
[
self
.
listfiles
]
self
.
p
.
send_now
(
"M20"
)
self
.
p
.
send_now
(
"M20"
)
time
.
sleep
(
0.5
)
time
.
sleep
(
0.5
)
...
@@ -470,6 +472,11 @@ class pronsole(cmd.Cmd):
...
@@ -470,6 +472,11 @@ class pronsole(cmd.Cmd):
def
recvcb
(
self
,
l
):
def
recvcb
(
self
,
l
):
if
"T:"
in
l
:
if
"T:"
in
l
:
self
.
tempreadings
=
l
self
.
tempreadings
=
l
tstring
=
l
.
replace
(
"
\r
"
,
""
)
.
replace
(
"
\n
"
,
""
)
if
(
tstring
!=
"ok"
and
not
tstring
.
startswith
(
"ok T"
)
and
not
tstring
.
startswith
(
"T:"
)
and
not
self
.
listing
and
not
self
.
monitoring
):
print
tstring
sys
.
stdout
.
write
(
self
.
prompt
)
sys
.
stdout
.
flush
()
for
i
in
self
.
recvlisteners
:
for
i
in
self
.
recvlisteners
:
i
(
l
)
i
(
l
)
...
@@ -712,6 +719,7 @@ class pronsole(cmd.Cmd):
...
@@ -712,6 +719,7 @@ class pronsole(cmd.Cmd):
except
:
except
:
print
"Invalid period given."
print
"Invalid period given."
print
"Updating values every
%
f seconds."
%
(
interval
,)
print
"Updating values every
%
f seconds."
%
(
interval
,)
self
.
monitoring
=
1
try
:
try
:
while
(
1
):
while
(
1
):
self
.
p
.
send_now
(
"M105"
)
self
.
p
.
send_now
(
"M105"
)
...
@@ -728,6 +736,7 @@ class pronsole(cmd.Cmd):
...
@@ -728,6 +736,7 @@ class pronsole(cmd.Cmd):
except
:
except
:
print
"Done monitoring."
print
"Done monitoring."
pass
pass
self
.
monitoring
=
0
def
help_monitor
(
self
):
def
help_monitor
(
self
):
print
"Monitor a machine's temperatures and an SD print's status."
print
"Monitor a machine's temperatures and an SD print's status."
...
...
pronterface.py
View file @
5fc2fe09
...
@@ -90,8 +90,6 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
...
@@ -90,8 +90,6 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
self
.
stdout
=
sys
.
stdout
self
.
stdout
=
sys
.
stdout
self
.
mini
=
False
self
.
mini
=
False
#Commands to implement:
#settemp/bedtemp/extrude/reverse(control panel)
def
do_extrude
(
self
,
l
=
""
):
def
do_extrude
(
self
,
l
=
""
):
try
:
try
:
...
...
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