Merge branch 'devel' into dev/pluginLifecycleMgmt

This commit is contained in:
Gina Häußge 2015-04-15 14:20:15 +02:00
commit c7146cf432
7 changed files with 154 additions and 134 deletions

View file

@ -115,6 +115,9 @@
for those people who do indeed have their printer connected to ``/dev/ttyAMA0``.
* Better behaviour of the settings dialog on low-width devices, navigation and content also now scroll independently
from each other (see also [#823](https://github.com/foosel/OctoPrint/pull/823))
* Renamed "Temperature Timeout" and "SD Status Timeout" in Settings to "Temperature Interval" and "SD Status Interval"
to better reflect what those values are actually used for.
* Better behaviour of the settings dialog on mobile devices.
### Bug Fixes
@ -175,6 +178,9 @@
* Fixed handling of SD card files in folders
* Fixed refreshing of timelapse file list upon finished rendering of a new one
* Fixed ``/api/printer`` which wasn't adapter yet to new internal offset data model
* Made initial connection to printer a bit more responsive: Having to wait for the first serial timeout before sending
the first ``M105`` even when not waiting for seeing a "start" caused unnecessary wait times for reaching the
"Operational" state.
([Commits](https://github.com/foosel/OctoPrint/compare/master...devel))

View file

@ -9,6 +9,7 @@
.modal-open {
overflow: hidden;
position: fixed;
}

File diff suppressed because one or more lines are too long

View file

@ -936,6 +936,6 @@ textarea.block {
.scrollable {
height: 100%;
overflow: auto;
overflow-y: scroll;
-webkit-overflow-scrolling: touch;
}

View file

@ -18,17 +18,8 @@
</label>
</div>
</div>
<div class="control-group" title="{{ _('Time after which the communication with your printer will be considered timed out if nothing was sent by your printer (and an attempt to get it talking again will be done). Increase this if your printer takes longer than this for some moves. This is also the interval in which the temperature will be polled from the printer while not printing.') }}">
<label class="control-label" for="settings-serialTimeoutCommunication">{{ _('Communication timeout') }}</label>
<div class="controls">
<div class="input-append">
<input type="number" step="any" min="0" class="input-mini text-right" data-bind="value: serial_timeoutCommunication" id="settings-serialTimeoutCommunication">
<span class="add-on">s</span>
</div>
</div>
</div>
<div class="control-group" title="{{ _('Interval in which to poll for the temperature information from the printer while printing') }}">
<label class="control-label" for="settings-serialTimeoutTemperature">{{ _('Temperature timeout') }}</label>
<label class="control-label" for="settings-serialTimeoutTemperature">{{ _('Temperature interval') }}</label>
<div class="controls">
<div class="input-append">
<input type="number" step="any" min="0" class="input-mini text-right" data-bind="value: serial_timeoutTemperature" id="settings-serialTimeoutTemperature">
@ -37,7 +28,7 @@
</div>
</div>
<div class="control-group" title="{{ _('Interval in which to poll for the SD printing status information from the printer while printing') }}">
<label class="control-label" for="settings-serialTimeoutSdStatus">{{ _('SD status timeout') }}</label>
<label class="control-label" for="settings-serialTimeoutSdStatus">{{ _('SD status interval') }}</label>
<div class="controls">
<div class="input-append">
<input type="number" step="any" min="0" class="input-mini text-right" data-bind="value: serial_timeoutSdStatus" id="settings-serialTimeoutSdStatus">
@ -45,6 +36,15 @@
</div>
</div>
</div>
<div class="control-group" title="{{ _('Time after which the communication with your printer will be considered timed out if nothing was sent by your printer (and an attempt to get it talking again will be done). Increase this if your printer takes longer than this for some moves. This is also the interval in which the temperature will be polled from the printer while not printing.') }}">
<label class="control-label" for="settings-serialTimeoutCommunication">{{ _('Communication timeout') }}</label>
<div class="controls">
<div class="input-append">
<input type="number" step="any" min="0" class="input-mini text-right" data-bind="value: serial_timeoutCommunication" id="settings-serialTimeoutCommunication">
<span class="add-on">s</span>
</div>
</div>
</div>
<div class="control-group" title="{{ _('Time after which a connection attempt to the printer will be considered as having failed') }}">
<label class="control-label" for="settings-serialTimeoutConnection">{{ _('Connection timeout') }}</label>
<div class="controls">

View file

@ -7,10 +7,15 @@
<link rel="apple-touch-icon" sizes="114x114" href="{{ url_for('static', filename='img/apple-touch-icon-114x114.png') }}">
<link rel="apple-touch-icon" sizes="144x144" href="{{ url_for('static', filename='img/apple-touch-icon-144x144.png') }}">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
{% include 'stylesheets.jinja2' %}
{% include 'initscript.jinja2' %}
</head>
<body>
<div class="page-container">
<div id="navbar" class="navbar navbar-static-top">
<div class="navbar-inner" data-bind="css: appearanceClasses">
<div class="container">
@ -139,5 +144,6 @@
<!-- End of generic plugin template files -->
{% include 'javascripts.jinja2' %}
</div>
</body>
</html>

View file

@ -787,6 +787,11 @@ class MachineCom(object):
startSeen = not settings().getBoolean(["feature", "waitForStartOnConnect"])
supportRepetierTargetTemp = settings().getBoolean(["feature", "repetierTargetTemp"])
# enqueue an M105 first thing
self._sendCommand("M105")
if startSeen:
self._clear_to_send.set()
while self._monitoring_active:
try:
line = self._readline()
@ -1007,6 +1012,7 @@ class MachineCom(object):
self._serial.write('\n')
self._log("Baudrate test retry: %d" % (self._baudrateDetectRetry))
self._sendCommand("M105")
self._clear_to_send.set()
self._testingBaudrate = True
else:
baudrate = self._baudrateDetectList.pop(0)
@ -1019,6 +1025,7 @@ class MachineCom(object):
self._timeout = get_new_timeout("communication")
self._serial.write('\n')
self._sendCommand("M105")
self._clear_to_send.set()
self._testingBaudrate = True
except:
self._log("Unexpected error while setting baudrate: %d %s" % (baudrate, get_exception_string()))
@ -1036,10 +1043,9 @@ class MachineCom(object):
### Connection attempt
elif self._state == self.STATE_CONNECTING:
if (line == "" or "wait" in line) and startSeen:
self._sendCommand("M105")
elif "start" in line:
if "start" in line and not startSeen:
startSeen = True
self._clear_to_send.set()
elif "ok" in line and startSeen:
self._onConnected()
elif time.time() > self._timeout:
@ -1216,7 +1222,6 @@ class MachineCom(object):
self._changeState(self.STATE_ERROR)
eventManager().fire(Events.ERROR, {"error": self.getErrorString()})
return False
self._clear_to_send.set()
return True
def _handleErrors(self, line):
@ -1464,6 +1469,8 @@ class MachineCom(object):
sending (through received ``ok`` responses from the printer's firmware.
"""
self._clear_to_send.wait()
while self._send_queue_active:
try:
# wait until we have something in the queue