Commit Graph

52 Commits

Author SHA1 Message Date
Phil Hord d3062ca1dd Configtool: refactor boardpanel for MVC.
Move model functionality out of boardpanel.py into a new class,
Board, so we can more easily add commandline driven tests in the
future.
2016-06-05 21:08:41 +02:00
Markus Hitter 5a28a62717 Configtool: default new config options to disabled.
New boolean options were all enabled, which was a problem
especially with the boolean choices DISPLAY_BUS_xxx and
DISPLAY_TYPE_xxx: all choice entries were set to True, so display
code was not only enabled behind the users back, but also set to
an arbitrary value (depending on the Python implementation).
2016-06-05 15:03:13 +02:00
Markus Hitter 776b3dec94 Configtool: try to repair broken value-#defines.
Previously, #defines requiring a value, but configured as boolean,
broke GUI code. While Configtool its self should never write such
broken #defines, they can happen with manual config file edits.

IMHO it's fine to do such repair attempts as long as it doesn't
hobble other functionality. Whatever was broken at read time will
end up disabled at write time, unless the user changes that value
in the GUI.
2016-06-05 15:03:13 +02:00
Markus Hitter 490e58a43c Configtool: simplify board config parsing (a little bit).
There should be no functional change. Mostly done for consistency
with other, similar code sections.
2016-06-05 15:03:13 +02:00
Markus Hitter d49520c36d Configtool: deal with missing #defines requiring a value.
This is done by parsing values from the generic config before
parsing those in the user config. Values existing in the user
config overwrite those in the generic config; values not
existing there stay at the value in the generic config.

Previously, only boolean #defines were handled properly (and
by code somewhere else). Missing #defines with value were
written as boolean #define, making the file unparseable on
the next read.
2016-06-05 15:03:13 +02:00
Markus Hitter 9d3a064f40 Configtool: remove redundant code.
There is no point in parsing candidates, just to throw away them
a moment later.
2016-06-05 15:03:13 +02:00
Markus Hitter a95a1c8855 Configtool: record False boolean #defines, too.
This will be helpful for handling sets of booleans better.
2016-04-20 22:02:09 +02:00
Markus Hitter bdacd8c9bc Configtool: remove unused reCommDefBL and reCommDefBoolBL. 2016-04-20 22:02:09 +02:00
Markus Hitter 1fad0036a7 Configtool: replace DISPLAY_TYPE with a set of booleans, too.
Same reason, same procedure as the previous commit.
2016-04-20 22:00:47 +02:00
Markus Hitter 90969978df Configtool: replace DISPLAY_BUS parameter with a set of booleans.
Having a choice with a defined set of options is nice, but it
also requires these options to be #defined somewhere _before_
entering config.h. To keep class-like encapsulation, we'd need
two header files for each code unit, one for the options, another
one for the usual header.

That said, we use other examples of such options, e.g. CPU, F_CPU
or KINEMATICS. For CPU and F_CPU it works fine, because their
options are numbers or other values known by the compiler. For
KINEMATICS it kind of works, because this #define is used in only
one place ... and there it's suboptimal already, because no option-
set.

Anyways, I was unsure about this change and if it turns out to be
a poor decision later, it can be reverted.
2016-04-20 22:00:05 +02:00
Markus Hitter 4d37d35f29 Configtool: add debugging aid.
All comments, no functional change. One unused line of code
removed.
2016-04-20 21:56:54 +02:00
Ruslan Popov 212eca7f8e Configtool: add display page implementation.
Most work by Ruslan Popov, collected from various commits and
made compatible with regression tests by Traumflug.

Display test code is now enabled by #defining DISPLAY_BUS to
i2c_twi.
2016-04-20 21:56:39 +02:00
Ruslan Popov 071cb9067b Configtool: introduce a function for registering a page.
No functional and purely internal change, this should make adding
a page easier.
2016-04-20 21:49:33 +02:00
Markus Hitter be6ca4c857 ARM, AVR: support inverted heater pin signals.
Implemented and tested for both platforms. This is quite a big
commit. Unlike with the previous changes to now choosable PWM
frequencies, all board configuration files and Configtool had
to be changed immediately to deal with the additional parameter
in DEFINE_HEATER() and keep AVR builds working (and regression
tests passing).
2015-08-13 17:12:10 +02:00
Markus Hitter 43626b2ba2 boardpanel.py: fix getCPUInfo(), don't report tuples.
This was forgotten with the recent move to storing configuration
items as tuples (value, enabled). It should fix the refusal to
build reported in issue #86.
2015-08-12 14:18:40 +02:00
Markus Hitter cd1eb4e250 Configtool: move board/printer.metadata to configtool/ ...
and rename it to board/printer.generic.h.
2015-07-17 13:38:22 +02:00
Markus Hitter 6b5156d459 Configtool: take advantage of the now recognized values.
This is for now to restore disabled values as well, not only
active ones. More uses are thinkable.
2015-07-17 13:38:15 +02:00
Markus Hitter 3795c7a36f Configtool: don't ignore disabled values.
Previously, values of ignored keys simply got lost and were
replaced with the ones from from the metadata file. Now this
value is preserved and perhaps, some time in the future, we'll
use this bit of information to to provide the right value when
re-enabling it.
2015-07-17 13:38:09 +02:00
Markus Hitter 88b813c4ba Configtool: don't pick up values which no longer exist.
Previously they were dropped only at save time, which is too late
for the GUI. This is mostly for robustness, the case where a
value was removed from config files, but not yet from the GUI.
2015-07-17 13:37:55 +02:00
Markus Hitter a07e5a7d1e Configtool: don't try to parse help text in the loaded file.
This shouldn't change functionality and is for more robustness.
2015-07-17 13:37:48 +02:00
Markus Hitter a48d9edf67 Configtool: let the parsing method decide about values.
Shouldn't cause functional change.

So far, values commented out are still ignored, which is why the
used regexp changed. This will hopefully change in the future,
so a configuration can remember disabled values, too.
2015-07-17 13:37:42 +02:00
Markus Hitter d9e4cd1086 Configtool: let the parsing method decide what a name is.
This is mostly for code robustness.
2015-07-17 13:37:34 +02:00
Markus Hitter eeee384ed6 Configtool: let the parsing method decide what a candidate is.
This is mostly for code robustness.
2015-07-17 13:37:18 +02:00
Markus Hitter 7acbf30e22 Configtool: ignore value options in board.metadata.
This solves the problem of choice menus being populated with too
many entries. Before, such menus would pick up values from
board.metadata as well as from the actually loaded file.

File printer.metadata contains no options, so no adjustment
needed there.
2015-07-17 13:37:11 +02:00
Markus Hitter 25c502d68b Configtool: save target candidate pins, not the metadata ones.
Previously, all the cancicates were replaced with the ones from
board.metadata, messing things up. Appears to work fine now,
candidates are preserved.
2015-07-17 13:37:04 +02:00
jbernardis fb922735fd Configtool: process a metadata file before reading header files.
This should allow for easier addition of defines as Teacup evolves.
2015-07-17 13:36:48 +02:00
Markus Hitter 6c7133792e Configtool: be helpful when trying to overwrite protected files. 2015-07-14 17:00:46 +02:00
jbernardis 40c23e7970 Configtool: restore alignment of thermistor values in board file.
This should solve issue #154.
2015-05-31 12:53:57 +02:00
Markus Hitter 9976640d92 Configtool: color background matching the background picture.
Actual color is easily changeable in Decoration, as this is a
Singleton.
2015-05-30 19:20:38 +02:00
Markus Hitter be16c98e59 Configtool: give the thing a nice background picture.
This is pure dessert topping, no functinal change. Well, eye candy
is important for acceptance. :-)
2015-05-30 18:41:02 +02:00
Markus Hitter 24b56b2bb1 Configtool: take account of Mac OS X's limited wildcard support.
According to documentation this shouldn't be neccessary, but
testing on Mac OS X 10.4.11 works only this way.

This helps a bit on issue #152.
2015-05-27 23:42:15 +02:00
Markus Hitter 0991e4a41f Configtool: add some formatting to collected help texts.
Tooltips don't size their box after line lengths, but have their
own idea on how wide to make it. Accordingly one should display
text with newlines only for paragraph delimiters.

This also required adjustments to all the board and printer
description comments. No functional change there.

This should solve issue #148.
2015-05-26 14:23:49 +02:00
Markus Hitter 2f8ed0dbeb Configtool: provide heater names as temp sensor names.
Formerly, both names were arbitrary and the user had to know
that only heaters ans sensors with matching names would work
together. Accordingly, temp sensors can have only names matching
those of existing heaters. With the exception of "noheater",
which is also provided.

This kind of solves issue #143.
2015-05-26 13:59:07 +02:00
Markus Hitter 8ea9e93ac7 Configtool: swap heater and temp sensor definition tabs.
This looks like nitpicking right now, but further changes shall
provide only already existing heater names for temp sensor names,
so the former have to be defined first. Lead the user to follow
this strategy intuitively.
2015-05-26 13:53:25 +02:00
jbernardis e1277e4f4a Configtool: move thermistor presets into distribution file.
The problem was, that settings distributed in
configtool.default.ini were overridden once a configtool.ini was
created. Accordingly, users upgrading sources wouldn't see changes
in this file.

The solution is to move settings set by the distribution into a
separate file which isn't replaced by a user-saved one.

This should fix issue #142.
2015-05-20 23:31:38 +02:00
jbernardis 610e1d169b Configtool: add Steinhart-Hart algorithm and thermistor presets.
The Steinhart-Hart algorithm allows more precise thermistor
tables, but also requires more parameters, which aren't
available for all thermistors. Accordingly, add support for both,
the traditional logic using the beta parameter as well as the new
one.

This also adds thermistor-presets, so users can simply choose
from a pulldown-menu to set their thermistor.

Also, identical thermistors get merged into one table, saving
binary size.

Last not least, a few bugs in this area got fixed.

Usually, all these things go into separate commits, but they were
contributed all in one and separating them is a bit error-prone
for little gain.

This should address issue #130, #134 and #135.
2015-05-19 18:11:09 +02:00
jbernardis c6150737a7 Configtool: don't report successful file saves.
This is the expected outcome, so explicitely reporting this, with
requiring the user to click a dialog box away, is kind of clutter.

This should solve issue #136.
2015-05-08 14:06:40 +02:00
jbernardis ac8890b207 Configtool: distiguish between bootloader and firmware baud rate.
This should solve issue #133.
2015-05-04 22:30:01 +02:00
Markus Hitter f734b225eb Rename ThermistorTable.h to thermistortable.h.
This is purely cosmetics to match naming conventions of other
files. No functional change.
2015-05-04 20:08:39 +02:00
jbernardis 05bfea40de Configtool: refresh data structures when saving.
Solves Issue #120.
2015-04-25 16:33:27 +02:00
jbernardis 9f74d315d0 Configtool: don't mess up on modified default configs.
Previously, loading default configurations for board or printer,
then modifying them without saving them, then attempting to
build lead to a big mess, like attempting to save the board file,
failing in doing so and then building anyways.
2015-04-21 02:51:32 +02:00
jbernardis 48433a6254 Configtool: added logic to generate thermistor temp tables.
Also enable editing of temperature sensors.
2015-04-21 02:51:32 +02:00
Markus Hitter 8408d8c294 Configtool: DEFINE_TEMP_SENSOR always wants four paramters.
Compilation with something else than a thermistor still doesn't
work, because temp.c insists on a thermistor table, but we're a
step closer.
2015-04-21 02:51:31 +02:00
Markus Hitter 29dd85a129 Configtool: also prettify writing heater definitions. 2015-04-21 02:51:31 +02:00
Markus Hitter 778af87102 Configtool: prettify writing sensor definitions.
This might look a bit oversensitive right now, but soon we'll also
write temperature table data, then it makes more sense.
2015-04-21 02:51:31 +02:00
jbernardis 2436ac2865 Configtool: a few more apperance enhancements. 2015-04-21 02:51:30 +02:00
jbernardis 73f7e43227 Configtool: enforce correct configuration file names.
Previously one could save a board or printer configuration with
a name which wouldn't allow to load it again.
2015-04-21 02:51:30 +02:00
jbernardis 706ccf0637 Configtool: protect original config files.
Likely users don't care too much about the name of the saved file,
so they likely use the default ones. If they mess up, they also
likely want to return to the original, but, d'oh, it's overwritten.
Don't let this happen, enforce a non-original file name for user
saves.

In other words: don't let users shoot themselfs into their foot.
2015-04-21 02:51:27 +02:00
jbernardis 9985c3936d Configtool: many changes.
1) If variables are missing from .h files, they are added.
2) Settings file now modifiable from within the program.
3) A few cosmetic fixes.
2015-04-21 02:11:01 +02:00
jbernardis b9f524d256 Configtool: add the ability to build and upload. 2015-04-21 02:11:01 +02:00