1
0
mirror of https://github.com/arduino/Arduino.git synced 2024-11-30 11:24:12 +01:00
Commit Graph

1003 Commits

Author SHA1 Message Date
Matthijs Kooijman
b78339238d Don't recompile core.a if none of the .o files changed
Before, core.a would be rebuilt on every build, even when none of the
core .o files changed. Now, the timestamps are checked against the
timestamp on core.a first, skipping the build if nothing changed.

Because this uses the current list of .o files, there is a corner case
when a source file is deleted, but no other source file is modified. In
that case, core.a is not rebuilt, even though it should be. However,
this is such a narrow and unrealistic case, that it should pose a real
problem.

This fixes part of #1991
2014-10-31 17:48:29 +01:00
Matthijs Kooijman
87c87c2897 Delete core.a when building it fails
This prevents a half-finished core.a file from lingering around.
Currently, this should not make a difference since core.a is rebuilt
every time, but this prepares for skipping this build step if possible.
2014-10-31 15:43:42 +01:00
Matthijs Kooijman
57bdacc93c Remove core.a before rebuilding it
Before, the ar command was just ran for all .o files that should end up
in core.a, which should replace any old code in core.a. However, it
seems that in the unlikely event that functions or entire source files
are deleted, they might linger in the core.a file.
2014-10-31 15:43:07 +01:00
Cristian Maglie
e76de57f6b Fixed parsing of dependency files (.d) to improve sketch build speed
Close #2255
2014-10-31 11:39:36 +01:00
Matthijs Kooijman
d4ca6ce127 Allow setting a line timeout in MessageSiphon
Previously, the MessageSiphon class would read characters from an
InputStream and then push them to the passed MessageConsumer one line at
a time.

Now, you can specify a line timeout. Normally, messages are still
processed line by line, but if no line ending is received within the
specified timeout (counting from the first character in the line), then
the incomplete line is passed on as a message, without waiting for the
line ending.

This feature is used for the uploader command output. In particular,
this allows the avrdude progress bar to be shown in the IDE as expected,
character by character (previously, the entire progress bar would be
buffered, making it show up completely at the end of the upload).
2014-10-30 12:36:06 +01:00
Cristian Maglie
ed5ad426dd Upped version to 1.0.7. Update revision log. 2014-10-10 00:08:41 +02:00
Cristian Maglie
35d616f050 Updated 'master' translations 2014-10-09 10:13:00 +02:00
Federico Fissore
b6a4c8172f Processing references removed in favour of Arduino 2014-10-08 18:36:25 +02:00
Federico Fissore
1b783fa48c Formatter: cursor position is saved when invoking autoformat. Fixes #2293 2014-09-30 17:17:13 +02:00
Cristian Maglie
90bd172f30 Updated revision log. Version upped to 1.0.6. 2014-09-16 12:16:06 +02:00
Cristian Maglie
6f9674288b Merge pull request #2279 from cmaglie/fix-leo-upload-osx10.9.4
Fix for upload problems on Arduino Leonardo (and derivatives) on OSX 10.9
2014-09-10 12:58:10 +02:00
Cristian Maglie
b7b9da7710 Updated version to 1.5.8 2014-09-05 10:11:47 +02:00
Cristian Maglie
aa776b30ba Fix for upload problems on Arduino Leonardo (and derivatives) with OSX 10.9.4 2014-09-01 12:16:41 +02:00
Cristian Maglie
ec1310e1bd Removed --no-op from CLI. Preferences now not-saved by default.
See https://github.com/arduino/Arduino/pull/2000 for details.

Close #2000
2014-08-22 15:39:33 +02:00
Cristian Maglie
e3dc5e75e3 Removed unused variables. Small cosmetic changes. 2014-08-22 14:24:21 +02:00
Matthijs Kooijman
83ede8fdb4 Fix preference directory opening in the GUI with --preferences-file
In the preferences dialog, the name of the preferences file is shown for
advanced editing. If the filename is clicked, the folder containing the
file is opened. However, this always used Base.getSettingsFolder, which
is the folder where the settings file _normally_ resides. But when the
--preferences-file option is used, the actual preferences file might be
somewhere else.

This commit makes sure to always open up the parent directory of the
actual preferences file in use, instead of always the default one.
2014-08-19 09:16:49 +02:00
Matthijs Kooijman
f47ec35ebe If build.path is specified, create it if needed
When no build.path preference is present, a temporary directory is
automatically created (and deleted). When a build.path was specified,
but the directory does not exist, the IDE would show an error and fail
to build, which is unexpected and not so friendly.

This commit makes sure that the build directory is automatically
created.
2014-08-19 09:16:49 +02:00
Matthijs Kooijman
c959388b37 Let Editor::statusError print to stderr
Before, these were only shown in the GUI, which makes a failing
commandline build a bit puzzling. As a side effect, the error is now
shown in the log area in addition to the status line above the log
area, but that should be ok.
2014-08-19 09:16:49 +02:00
Matthijs Kooijman
cc773fb1e0 Take into account --curdir for all relative paths
In a lot of places, (potentially) relative paths were passed to File
without any processing, making them be resolved without taking into
account --curdir. By passing them through Base.absoluteFile instead,
these paths are resolved relative to the working directory before
starting arduino (at least on Linux, which is currently the only
platform supporting --curdir).

This applies --curdir to the --preferences-file option and the
build.path, settings.path, sketchbook.path preferences.

For example, this now works as expected:

  arduino --pref build.path=build_dir --verify Blink.ino
2014-08-19 09:16:49 +02:00
Matthijs Kooijman
4f33d0851c Fix opening a non-primary .ino file
When a sketch looks like this:

    Blink/
        Blink.ino
        Foo.ino

The idea is that opening Foo.ino should open up the sketch. However,
before this would show an error stating "The file Foo.ino needs to be
inside a sketch folder named Foo" instead.

This turned out to be due to a typo, which seems to have been present
for a long time. Note that when the main sketch file was a .pde file,
everything already worked as expected.
2014-08-19 09:16:48 +02:00
Matthijs Kooijman
f96d71f32d Fix --curdir on Windows
On Windows, files are canonicalized to prevent issues with legacy 8.3
filenames. However, this canonicalization includes making the path
absolute and this happened before applying --curdir to the path, making
the latter a noop.

By reversing the operations, this should allow both of them to do their
work.
2014-08-19 09:16:48 +02:00
Matthijs Kooijman
31fe4ac0c2 Add Base.absoluteFile method
This method takes filenames as specified on the commandline and turns
them into the right File object, taking into account the current
directory passed through --curdir by the wrapper script.
2014-08-19 09:16:48 +02:00
Matthijs Kooijman
0798e1cf6f Pass around sketch File objects instead of filenames
This saves a few conversions from File object to String and is generally
cleaner.
2014-08-19 09:16:48 +02:00
Matthijs Kooijman
87bdaa88cd Parse --curdir in Base.main()
This shouldn't change any behaviour, but prepares for upcoming changes.
2014-08-19 09:16:48 +02:00
Matthijs Kooijman
cf4fb7d0e3 Don't re-parse arguments to --preferences-file
Previously, the argument to --preferences-file would be interpreted as a
filename, but then also checked as an option as well (in the next loop
iteration). This didn't really matter in practice (unless you would be
using a file called "--preferences-file"), but better skip the argument
anyway.
2014-08-19 09:16:48 +02:00
Matthijs Kooijman
9e17e52f63 Parse --preferences-file in main instead of Preferences.init
Parsing commandline arguments inside Preferences isn't very elegant,
this is better suited for the main function. Also, this change prepares
for taking --curdir into account for --preferences-file as well.
2014-08-19 09:16:48 +02:00
Matthijs Kooijman
e494f39255 Add --get-pref option
This allows reading specific preferences from the commandline.
2014-08-19 09:16:47 +02:00
Matthijs Kooijman
f745fff50b Add --noop option
This option causes the IDE to process its commandline arguments and then
quit. This allows setting preferences uses --pref, without having to
also load the GUI or compile a sketch.
2014-08-19 09:16:47 +02:00
Matthijs Kooijman
7cb99ad7b8 Ensure --verbose is never saved to preferences.txt
Previously, --verbose would be processed after the preferences were
saved, which should usually mean that it should never influence the
saved preferences. However, if for whatever reason Preferences.save()
would be called later, the verbosity preferences would still be messed
up.

Since we now have a Preferences.setDoSave() method, we can make sure
that these verbosity preferences (and any other preferences that are
changed after the build started) are never saved.
2014-08-19 09:16:47 +02:00
Matthijs Kooijman
d6333f8f37 Don't save a new preferences file in Preferences.init
Preferences.init would write out the default preferences when no
preference file previously existed. This would cause a default
preferences file to be written even when --no-save-prefs was passed, due
to the ordering of things.

However, since the Base constructor now already calls
Preferences.save(), there is no need for Preferences.init to also do
this. Since Base calls this after parsing the commandline, the
--no-save-prefs option is now also properly respected.
2014-08-19 09:16:47 +02:00
Matthijs Kooijman
4452eb3850 Add --no-save-prefs option
This allows setting preferences for the current run only, without
remembering them for the next run. This is especially useful when
combined with --verify or --upload.
2014-08-19 09:16:47 +02:00
Matthijs Kooijman
bbd0128664 Explicitely save preferences on startup
Before, the preferences were saved as a side effect of loading files in
the Editor, but it seems better to explicitely save them as well (this
should prevent problems later on, if the Editor class is no longer used
in --verify or --upload mode).
2014-08-19 09:16:47 +02:00
Matthijs Kooijman
e0c599d733 Error when passing --verbose without --verify or --upload
Since the handling of these options defaults to non-verbose (instead of
the current preference), they make no sense when starting the IDE
normally. Previously, these options would just be ignored in this case,
now an error is shown.
2014-08-19 09:16:47 +02:00
Matthijs Kooijman
d3e2208c01 Process some commandline arguments earlier
Previously, the --board and --port arguments were stored in a variable
first and only processed later. Now, the arguments are processed right
away.

This does mean that the arguments are processed when the GUI is not yet
initialized, which caused problems with calling onBoardOrPortChange and
friends from selectBoard. However, since the GUI is not initialized,
there is no real reason to call them either - if we just set the
preferences to the right values, the GUI will be initialized correctly
later. For this reason, selectBoard no longer calls the GUI update
methods. Instead, those are called from the GUI code when the board is
changed through the menu instead (e.g., after calling selectBoard).

This commit slightly changes behaviour. Previously, --board and --port
only worked in combination with --verify and --upload, but were ignored
when just starting the IDE. Now, these are processed regardless of the
other options present.

Additionally, this commit causes all changed preferences to be saved.
Previously, only changes with --pref were saved, --board and --port
options were only active for the current run. This was caused because
the saving of the preferences happened as a side effect of loading the
file in the Editor, but only the --pref option was processed at that
time.

Note that the --verbose options are still only active for the current
run and are only valid combined with --verify or --upload (since they
default to non-verbose instead of the current preference).
2014-08-19 09:16:47 +02:00
Matthijs Kooijman
c0ab536b7b Add Base.selectSerialPort
This method takes care of setting the serial.port preference to the
given value, as well as deriving the serial.port.file preference. This
should prevent duplicate code in the future.

Note that a second copy of this code lives in SerialUploader, but that
doesn't write to the global Preferences but a local prefs map. Since the
global Preferences are currently static, there is no way to share code
between these two copies.
2014-08-19 09:16:46 +02:00
Matthijs Kooijman
7548591d51 Improve commandline handling control flow
This uses a switch on the action value, which makes it more clear what
code runs when. No actual behaviour is changed, most of the changes in
this commit are indentation changes.
2014-08-19 09:16:46 +02:00
Matthijs Kooijman
f3565a1bda Invert decision on when to show the GUI
Previously, the code showed an error when the given action was not
upload or verify. This is now reversed: the GUI is shown when the action
is "GUI" (which is the default when no action specified). Since the
action enum only contains these three values, there is no change in
behaviour, but this makes it easier to add new actions later.
2014-08-19 09:16:46 +02:00
Matthijs Kooijman
6a09ee5eb6 Use an "action" enum when processing commandline arguments
Previously, two separate booleans (doUpload and doVerify) were used.
However, since it always makes sense to specify only one of them, it
makes more sense to keep a single action enum variable, which slightly
simplifies the code (especially when more actions are added later).

Additionally, an error is now shown when both --verify and --upload are
specified on the commandline.
2014-08-19 09:16:46 +02:00
Cristian Maglie
a6c80364da FileUtils: added function to recursively find files with given extension 2014-08-08 15:01:53 +02:00
Cristian Maglie
7819374955 Removed unused variables 2014-08-08 15:01:53 +02:00
Cristian Maglie
dcc1020a6e Better check for programmers configuration when uploading using programmer 2014-08-06 15:20:53 +02:00
Cristian Maglie
1a167b7a6f Allow to run empty recipes in platform.txt 2014-07-28 18:40:53 +02:00
Cristian Maglie
82401c84bb Fix indent and typos on FindReplace.java 2014-07-25 12:10:42 +02:00
Fulvio Ieva
cd75cc24a2 Fix search and replace #2106 2014-07-25 12:01:43 +02:00
Fulvio Ieva
6efbecd3cc Do not replace textbox in Find/Replace dialog if no text is selected
See #2070
2014-07-25 11:56:08 +02:00
Fulvio Ieva
13321e3c1b Change layout in Find/Replace dialog to render correctly on Linux
see #2070
2014-07-25 11:38:34 +02:00
Fulvio Ieva
064fc45ba5 Merge branch 'feature/Search_and_replace_improved_dialog' of github.com:eried/Arduino into eried-feature/Search_and_replace_improved_dialog 2014-07-25 11:34:54 +02:00
Cristian Maglie
b36beeb4c0 Fixed NullPointerException with i18n.
i18n class may not be initialized during init time.
2014-07-03 13:01:18 +02:00
Cristian Maglie
2a71073c32 Re-enabled serial port detection on Windows
Fixes #1573
2014-07-02 13:20:16 +02:00
Cristian Maglie
e5f34e5a83 Merge branch 'ide-1.5.x-timer-variant' of github.com:matthijskooijman/Arduino into matthijskooijman-ide-1.5.x-timer-variant 2014-07-01 18:29:07 +02:00
Cristian Maglie
d52e75ff38 Merge branch 'osx-app-bundler' into ide-1.5.x
Conflicts:
	build/build.xml
2014-06-27 16:08:20 +02:00
Matthijs Kooijman
4eb686673f Don't include .o files from the variant in core.a
If a variant supplied source files, these would be included in core.a
before. However, object files from core.a would only actually be
included in the build if they supplied a symbol for a strong reference
that was still missing.

In practice, this meant that a variant source file that only defines
interrupt handlers, or only defines strong versions of functions that
already had weak versions available, was not included.

By moving the variant .o files out of core.a and including them in the
build directly, this problem is solved.

Furthermore, the compilation of variant files is moved to after the
generation of core.a, to make it clearer in the code and verbose output
what is now happening.
2014-06-25 16:56:17 +02:00
Matthijs Kooijman
7d71b84ae2 Unconfuse error message
When a core directory without boards.txt file was encountered, the IDE
would show:

	Could not find boards.txt in /path/to/core/boards.txt.  Is it pre-1.5?

Which appears confusing: Is it looking inside a directory called
boards.txt? Now this is improved to:

	Could not find boards.txt in /path/to/core/.  Is it pre-1.5?

which makes a lot more sense.
2014-06-25 16:56:13 +02:00
Cristian Maglie
6b5a99b7b5 Version bumped to 1.5.7. Updated revision log. 2014-06-25 11:21:15 +02:00
Federico Fissore
fdffb2de26 Setting CYGWIN=nodosfilewarning env variable on windows 2014-06-25 10:14:35 +02:00
Cristian Maglie
40270306e0 Allow variants to define an initVariant() function that is called at startup.
See #2080
2014-06-19 19:49:47 +02:00
David A. Mellis
fcd633686f Don't wrap a RunnerException in a redundant RunnerException. 2014-06-11 12:21:52 -04:00
David A. Mellis
b5fe1b1eb5 Proceed with upload even if port can't be found. (Issue #1791) 2014-06-11 12:07:46 -04:00
Cristian Maglie
ab1ee51d68 MacOSX: switched to appbundler for building distribution files (Haavar Valeur)
See #1665
2014-05-29 12:28:42 +02:00
Matthijs Kooijman
726f2ba931 Unescape special characters in dependency files
When a path contains spaces (or other special characters, probably), gcc
escapes them with a \ in the generated .d files. This previously caused
problems when parsing these files, causing recompiles to happen even
when not needed.

This applies a rather simple approach to unescaping these strings, which
seems to be sufficient because the file format of the .d files is so
predictable (e.g., we don't actually split on colons or spaces when
parsing it).
2014-05-13 16:52:14 +02:00
Erwin Ried
401f9e1634 FindReplace dialog now search and replaces in all the opened tabs. Also pre-fill the find field with selected text 2014-05-13 03:21:36 -04:00
Cristian Maglie
d025638c61 Merge pull request #1775 from ribbons/memory-usage
Improve low free memory reporting
2014-05-03 10:59:37 +02:00
Matthijs Kooijman
aa46fdb978 Change the MacOS preference suffix to .macosx
Previously, preferences suffixed with .macos were treated specially,
but the default preferences.txt used .macosx.

I couldn't find when or how this was broken exactly - it seems
Processing used .macosx but this code was reimplemented for Arduino in
commit 33f5c53 (Implemented OS specific preferences) using .macos.

The effects of this have not been tested on OSX, but this might fix some
problems caused by wrong defaults on OSX.
2014-04-14 15:35:34 +02:00
Matthijs Kooijman
d2505a08f6 Process platform-specific suffixes immediately
In preferences files, platform-specific versions can be indicated by a
.linux, .windows or .macos suffix on the key name. Previously, these
keys were loaded as normal and then afterwards, all keys were scanned
after loading them and any platform-specific versions replaced the
regular ones.

However, this means that these platform-specific versions get an
unexpected form of priority. Normally, when a single key is set twice,
the latter overrides the first. However, the platform-specific values
could override the regular versions, even when the regular version
occurs later in the file.

This problem was particularly confusing when using the new
platform.local.txt: a regular preference in platform.local.txt did not
override a platform-specific preference in platform.txt.

This commit changes behaviour to process these suffixes directly as they
are read from the preference files. If a suffix for the current platform
is found, the line is processed as if the suffix was not present. If a
suffix for another platform is found, the line is ignored altogether.

This can slightly change the way preferences files are parsed, but as
long as platform-specific preferences are defined after the
corresponding regular preferences, the behaviour should be the same.
2014-04-14 15:35:33 +02:00
Matthijs Kooijman
a89f5e68cf Explicitly define compiler.path in avr/platform.txt
Previously, this relied on an (ugly, avr-specific) magic default for the
compiler.path variable, set by the IDE. This allowed the IDE to fall
back to a system-wide toolchain when no bundled toolchain was found (by
making compiler.path empty).

However,
 - this only worked for avr, not sam,
 - this worked only for gcc, a system-wide avrdude would break on the
   avrdude.conf path in platform.txt, and

This would mean that automatic system-wide fallback didn't work in all
situations, so you'd still have to modify platform.txt (or create
platform.local.txt). Since doing that explictly is the most reliable
way, this commit removes the partial-working ability to do this
automatically.

Note that the code to automatically set compiler.path is still kept
around, in case third-party hardware still relies on this. At some
point, this code should be removed, but for now it just shows a warning
message.
2014-04-10 12:19:43 +02:00
Matthijs Kooijman
a46e503a30 Allow overriding platform.txt using platform.local.txt
This helps advanced users that want to change options (e.g. to use a
different toolchain or enable warnings), without having to change
platform.txt (which could make git report changed files all the time).
2014-04-04 10:35:32 +02:00
Cristian Maglie
567240236a Added compatibity for 1.5 libraries layout on IDE 1.0.x
See #1765
2014-03-20 14:56:46 +01:00
Cristian Maglie
c192d689bc Better checks for library metadata
See #1765
2014-03-16 12:54:04 +01:00
Cristian Maglie
f50ec335fe Removing the magic baudrate is no longer needed with JSSC
Fixes #1203.

The original patch was introduced to workaround a problem with ArduinoISP reported
in #995. After some debugging it seems caused by a glitch in RXTX library,
more discussion here: https://github.com/arduino/Arduino/issues/1203
2014-03-16 12:17:25 +01:00
Cristian Maglie
738b9d8e29 Merge remote-tracking branch 'arduino/master' into ide-1.5.x
Conflicts:
	.gitignore
	app/lib/commons-logging-1.0.4.jar
	build/build.xml
	build/windows/launcher/config_debug.xml
	libraries/Esplora/examples/Beginners/EsploraJoystickMouse/EsploraJoystickMouse.ino
2014-03-16 12:11:19 +01:00
Georg von Zengen
efedfa7049 cut the filename at the last '.' not at the first in tab-names of the editor 2014-02-27 14:30:19 +01:00
Georg von Zengen
3be6eb84b9 added support for '-' and '.' but both not as the first as first character 2014-02-27 14:14:36 +01:00
Federico Fissore
f3619c3123 Closes #277. Cores files intentionally left out of the commit as they require a different approach and have a different history 2014-02-21 16:21:32 +01:00
Federico Fissore
79eb32f816 Fixed NPE when RXCHAR event with no bytes. Closes #1885 2014-02-21 11:14:30 +01:00
Cristian Maglie
f91670e0d0 Fixed JSSC upload problem with Arduino Due on MacOSX
JSSC, on unix based systems like linux and MacOSX, when listing serial ports
tries to open each port to ensure its existence. While this check works well for
linux ports /dev/ttyS0..31, it leads to unexpected behaviuors on MacOSX in
particular with USB-CDC virtual serial ports.
This patch disable the check and keep it enabled only for linux ttySxx ports.

This adds also tty.* and cu.* to the list of available serial ports on MacOSX.
2014-02-20 14:48:28 +01:00
Cristian Maglie
2659b47587 Update revision log. Upped version to 1.5.6 2014-02-19 18:14:31 +01:00
Cristian Maglie
50abaaa23f Updated translations 2014-02-19 16:07:20 +01:00
Cristian Maglie
ab362fc726 Merge remote-tracking branch 'arduino/master' into ide-1.5.x 2014-02-19 10:40:44 +01:00
h2g2guy
f3944b2df0 Corrected repeated 'less' in checkName's message 2014-02-18 23:32:22 -05:00
Cristian Maglie
3a72c02480 Removed unused code, fixed indentation. 2014-02-17 14:19:40 +01:00
Cristian Maglie
57bee97d7b Local (user installed) libraries have priority over system libraries
See #1853
2014-02-17 14:19:40 +01:00
Cristian Maglie
a96c8cab12 Merge branch 'master' into ide-1.5.x 2014-02-12 17:17:33 +01:00
Cristian Maglie
2a8c06381f Added some friendly messages for Arduino Robot include errors on old sketches
After merging #1859, old sketches that uses Robot_Control library must include
Wire.h and SPI.h to work properly.
2014-02-12 15:28:53 +01:00
Cristian Maglie
a44f4bef7c Merge remote-tracking branch 'arduino/master' into ide-1.5.x
Conflicts:
	app/src/processing/app/Base.java
2014-02-11 16:44:07 +01:00
PaulStoffregen
ef4f0f3bc9 If 2 libs have same .h file, use the lib with same dir name 2014-02-10 14:18:47 -08:00
Cristian Maglie
d60f1df996 Added command line option --verbose-build and --verbose-upload 2014-02-10 12:55:16 +01:00
Cristian Maglie
a013ab2dda Added some string to translate 2014-01-23 17:24:13 +01:00
Cristian Maglie
895d394565 Added command line option "--preferences-file" to manually set the path of preferences. 2014-01-23 17:20:58 +01:00
Jimmy Hedman
2fb3770757 Compile with -x assembler-with-cpp instead of -assembler-with-cpp.
- Newer avr-gcc doesn't use -assembler-with-cpp, but
  uses -x assembler-with-cpp. This works with older compilers as well.
2014-01-21 20:55:18 +01:00
Cristian Maglie
2491c16d77 Merge branch 'lib-1.5-rev2' into HEAD 2014-01-09 14:56:23 +01:00
Cristian Maglie
4dc21cee6c Fixed "runtime.hardware.path" and "runtime.platform.path" values
"runtime.hardware.path" now contains the path to the hardware folder
of the currently selected board and "runtime.platform.path" the path
to the specific platform.

This should fix #1176 and #1761.
2014-01-05 12:42:27 +01:00
Matt Robinson
6d5431f63c Make the low available memory message a warning
Write the low available memory message to err rather than out so that it
appears more like a warning and is more noticeable.
2013-12-31 16:51:09 +00:00
Cristian Maglie
6923cc9c39 Removed unused import 2013-12-26 15:11:16 +01:00
Cristian Maglie
2b53d6988a Added the possibility to override library compatibility check 2013-12-26 12:49:14 +01:00
Cristian Maglie
512925a812 IDE warns if a library is compiled with an unsupported architecture 2013-12-25 20:35:18 +01:00
Cristian Maglie
164da522b6 Added "license" field in libraries. 2013-12-25 19:27:09 +01:00
Cristian Maglie
ce5ff8c299 Added "category" field in libraries. 2013-12-25 19:26:01 +01:00
Cristian Maglie
4932831f8b IDE do not hide libraries with incompatible architectures 2013-12-25 18:58:50 +01:00
Cristian Maglie
5e7663574b Use Files instead of String to handle paths in Compiler class. 2013-12-24 20:24:04 +01:00
Cristian Maglie
e045cd26cc Added a warning for library using the no longer supported "arch" folder 2013-12-24 16:23:21 +01:00
Cristian Maglie
e93760abc4 Implemented support for 1.5 libraries specification rev.2
- removed "arch" folder support
- allow to optinally use "src" folder
- slightly changed metadata

For more information see:
https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5:-Library-specification
http://goo.gl/gfFJzU
2013-12-24 16:20:43 +01:00
Federico Fissore
4e262a566d Introducing "defaultTarget" board is the one selected in preferences is not available. Closes #1731 2013-12-19 13:14:44 +01:00
Federico Fissore
9b05911525 Merge branch 'ide-1.5.x-jssc2' into ide-1.5.x 2013-12-03 18:15:52 +01:00
Cristian Maglie
cc347e4ea3 Removed unused variable 2013-12-03 17:51:37 +01:00
Cristian Maglie
1d8901d9bb Fixed indentation.
Updated revision log.
2013-12-03 17:46:55 +01:00
Matthijs Kooijman
0029e97b5a Return different exit codes with --verify or --upload
Previous commits made all failures return 1, even though originally an
unknown sketch file would return 2. This restores the previous behaviour
and adds return code 3 to mean invalid options specified.

The return codes are now:
0: Success
1: Build failed or upload failed
2: Sketch not found
3: Invalid commandline options
2013-11-29 00:33:43 +01:00
Matthijs Kooijman
9196a8d943 Don't show the GUI on --verify or --upload
These are intended to be ran from the commandline, so showing the GUI
doesn't make so much sense.

This is not quite the perfect solution yet, because an Editor object and
all kinds of GUI objects are still created. This commit only prevents
them from being visible, which is a nice first step, but not quite
pretty yet. However, to do it properly, some code should be moved out of
the Editor class, so that's a bit more work.

Additionally, any messages shown with Base::showError and friends still
create a popup, they probably shouldn't do this either.
2013-11-29 00:33:43 +01:00
Matthijs Kooijman
c6795dde73 In EditorConsole::write(), use all arguments
When System.(out|err).print was used before there was a visible
EditorConsole, the message was written to the stderr/stdout by this
instead of the EditorConsole. However, the write(data, offset, length)
version would not pass on its offset and length parameters to the
stdout/stderr stream, causing (parts of) a message to be printed
multiple times.

This commit makes sure the parameters are all properly passed to the
real stream.

For some reason the write(int) and write(byte[], int, int) methods in
PrintStream do not throw an IOException like the write(byte[]) version,
so the try block has to go.
2013-11-28 23:08:36 +01:00
Matthijs Kooijman
4592acc213 Change the logic deciding when to do a full rebuild
Previously, a full cleanup of the work directory (and thus a full
rebuild) was done on the first build after:
 - startup, or
 - a change in the board or board suboption.

This did not cooperate nicely with commandline compilation using
--verify. Using the build.path option a persistent build path could be
used, but the actual files in that path would never be reused.

Now, each build saves the preferences used for building in a file
"buildprefs.txt" inside the build directory. Subsequent builds will read
this file to see if any build options changed and re-use the existing
files if the build options are identical.

Because the main .cpp file is not handled by Compiler::build, but by
Sketch::preprocess, it is still always regenerated, even if the Sketch
itself didn't change. This could be fixed later, though it is probably
not a problem.

When writing buildprefs.txt, only the build preferences starting with
"build.", "compiler." or "recipes." are used. These should be enough to
ensure files are always rebuilt when needed (probably also sometimes
when not needed, when change build.verbose for example). Using all build
preferences would cause the files to be rebuild too often, and because
of last.ide.xxx.daterun, they would still rebuild on _every_
invocation... This approach is perhaps not ideal, but improving it would
require putting more structure in the preferences instead of piling them
all together into the build preferences.

Because of this new mechanism, the old
buildSettingsChanged()/deleteFilesOnNextBuild could be removed.
2013-11-28 23:08:36 +01:00
Matthijs Kooijman
7b7f447a4a Move the definition of primaryClassName in Sketch
Instead of defining in the preprocess method and returning, just define
it in the build method. This makes sure the name is available before
preprocessing, which is important for the upcoming commits.

This commit should not change behaviour, only prepare for the next
commits.
2013-11-28 23:08:36 +01:00
Matthijs Kooijman
beac88e039 Pass arguments to the Compiler constructor
Previously, these arguments would be passed to the compile method.
However, passing them to the constructor makes sure that the build
preferences are created sooner, so they can be used by Sketch before
calling the compile method.

This commit shouldn't change any behaviour, but prepares for the next
commits.
2013-11-28 23:08:35 +01:00
Matthijs Kooijman
57551b9e79 Add --pref option
This allows setting preferences through the commandline.
2013-11-28 23:08:35 +01:00
Matthijs Kooijman
f502c9b53c Error out when a required commandline argument is left out 2013-11-28 23:08:35 +01:00
Matthijs Kooijman
0a3b82af8f Improve error handling for files on the commandline
Previously, any files that were specified on the commandline but could
not be opened were silently ignored. Only if --verify and --upload was
specified and _all_ files failed to open, a generic error message was
shown. Additionally, if multiple files were specified with --verify or
--upload, only the first would be acted on (the others would be openened
and shown in the GUI, but not actually verified or uploaded).

Now, whenever a file fails to open, an error message is shown (fatal
with --verify or --upload, non-fatal otherwise).

Furthermore, with --verify or --upload an error is shown when there is
not exactly one file on the commandline.

Finally, instead of keeping an "opened" variable, the code now just
checks the size of "editors" to see if a blank sketch should be opened.
2013-11-28 23:08:35 +01:00
Matthijs Kooijman
400ae7fdfd Slightly delay opening of files specified on the commandline
Instead of opening up files during argument processing, the filenames
are now stored in a list and opened only after all commandline arguments
have been processed.

This commit in itself shouldn't change any behaviour, but it prepares
for improved error reporting in the next commits.
2013-11-28 23:08:35 +01:00
Matthijs Kooijman
4ba80e3715 Show an error on unknown options 2013-11-28 23:08:35 +01:00
Matthijs Kooijman
e32eafe48f Handle sketch with only invalid code filenames
Previously, this would error out with an index out of bounds exception.
Now, an IOException is thrown, which is properly handled further up the
call chain.
2013-11-28 23:08:35 +01:00
Matthijs Kooijman
0ea5509fcf Handle errors in the --board parameter
Previously, it would just raise nullpointer or index out of bounds
exceptions when the --board paramater was wrong.
2013-11-28 23:08:31 +01:00
Matthijs Kooijman
46c930c841 Pass TargetBoard objects around instead of strings
Previously, strings containing the board id, or a joined version of the
package, platform and board id were passed around. Since comparing
objects is easier than strings and since parsing strings can be fragile,
it's better to just pass the TargetBoard objects.

There is one case where string parsing is still required: when parsing
the --board commandline option. However, the parsing is now done in the
right place, when handling the commandline, instead of in a generic
selectBoard method.
2013-11-28 22:25:53 +01:00
Matthijs Kooijman
89fa1c4bbd Don't re-set board preference when changing custom suboptions
Since the custom suboptions are only visible when their associated board
is the currently selected one, there is no point in re-setting the
current board when a suboption is selected.
2013-11-28 22:11:11 +01:00
Cristian Maglie
4a7cee4b3c Fixed upload on Arduino Leonardo (and derivatives) with JSSC on Mac.
See #1633
2013-11-28 17:27:13 +01:00
Federico Fissore
f334e673a5 removing RXTX, switching to JSSC 2013-11-28 17:27:13 +01:00
Federico Fissore
d5cc92d8ab FileUtils.readFileToString opens files with UTF-8 encoding 2013-11-28 15:28:12 +01:00
Cristian Maglie
ff970f10b1 Another language update 2013-11-28 14:19:39 +01:00
Cristian Maglie
2186790b2b Updated translations 2013-11-28 11:28:58 +01:00
Cristian Maglie
061d71e123 Update version to 1.5.5 (Base.java) 2013-11-22 14:44:00 +01:00
Cristian Maglie
3bec9121cd Reintroduced warning on development leftovers in 1.5 libraries.
See #1692
2013-11-20 12:12:05 +01:00
Matthijs Kooijman
a4a660154e Don't forbid unknown files in a library
The current code forbids any files it does not know about, but this is
bad because:
 - It breaks forward compatibility if we later add more files or
   directories to the library format.
 - It breaks for people who want to have some extra stuff in their
   library (say, .gitignore or a README file). We can't keep a list of
   "allowed" stuff, since there will always be stuff missing.

This commit removes that code and just allows all files again.
2013-11-19 17:39:35 +01:00
Federico Fissore
d0758af29a PreProcessor now replace every single char with a space, without collapsing multiline matches 2013-11-18 11:39:52 +01:00
Federico Fissore
84e9d70415 Preprocessor regexp: "." now matches even line terminators. Closes #1653 2013-11-17 22:12:07 +01:00
Federico Fissore
e6698e4baa Enforcing string start/end check. See #1687 2013-11-16 14:41:54 +01:00
Federico Fissore
139dd6bf6a PdePreprocessor restored to version 316b871
Added an "insideString" flag in scrubComments to avoid failing with strings like "Hello */*"
Added a handful of tests taking code from various issues in order to better avoid future regressions
Closes #1687
2013-11-16 12:59:41 +01:00
Federico Fissore
fdb98f1213 Using [code] instead of [quote] for Copy for forum. Fixes #1675 2013-11-14 17:45:23 +01:00
Cristian Maglie
9b1c9d4f16 Updated language file.
Changed "Copy error" message to "Copy error messages".
2013-11-12 14:31:50 +01:00
Federico Fissore
05bf2b0be9 PrePreprocess.scrubComments doesn't properly work: using RegExp from PrePreprocess.strip. Fixes #817 2013-11-11 12:18:42 +01:00
Federico Fissore
07f8c691b4 PdePreprocessor.scubComments result used before looking for libraries. Fixes #1293 2013-11-11 12:05:59 +01:00
Federico Fissore
22dfa98202 Merge branch 'ide-1.5.x' into ide-1.5.x-preproc 2013-11-11 11:18:32 +01:00
Kristian Lauszus
7706fcfdde Can now detect devices with serial number in the port number on OSX - see: https://github.com/arduino/Arduino/issues/223
It now also parses PID and VID values with text afterwards properly
2013-11-11 04:42:29 +01:00
Federico Fissore
0d8e12dbe0 OSX workaround for board autodetection #223 2013-11-08 20:34:05 +01:00
Federico Fissore
12446a25d9 Test preproc 2013-11-06 18:32:09 +01:00
Cristian Maglie
c4823ccfc4 Merge branch 'master' into ide-1.5.x 2013-11-04 10:36:53 +01:00
Cristian Maglie
89d6841ac0 Merge branch 'cayci-master' 2013-11-04 10:33:38 +01:00
PaulStoffregen
ae265a98b9 Help 3rd party installers find the hardware path 2013-11-04 10:22:24 +01:00
Cristian Maglie
be30113f09 Reference libraries in hardware addons when they reference another core.
Fixes #1445
2013-11-03 20:32:34 +01:00
Cayci
66faf5d6c6 Render line numbers using TextAreaPainter
Fix the line number font rendering problem on the Mac.

Now, the TextAreaLineNumbers class extends the TextAreaPainter and just
overloads the paintLine method to make it render the line number instead
of rendering the whole line. Other than that, the superclass' drawing
code is used.

So: the same drawing code that renders the source code text in the
editor is now also being used to render the line numbers.
2013-11-02 21:49:09 -04:00
Cayci
a2111fdcf6 add preference to enable/disable line numbers
add preference to enable/disable line numbers and make font change work
2013-10-28 21:01:35 -04:00
Federico Fissore
5284c3a3e6 IDE Command line: using "isAbsolute" instead of "exists" to avoid conflicting with files in IDE install location 2013-10-28 12:50:17 +01:00
Federico Fissore
d133365cc1 IDE command line: sketches can now be specified with relative paths. Fixes #1493 2013-10-28 10:10:14 +01:00
Cayci
787f73dade Display line numbers for the file being edited 2013-10-28 00:19:30 -04:00
Federico Fissore
26ff527ad2 It's now possible to specify additional custom board parameters when running the IDE from the command line
Eg: --board arduino:avr:pro:cpu=8MHzatmega168,other=value
Closes #1353
2013-10-24 15:26:31 +02:00
Federico Fissore
8aab91c6ec Removed unused parameteri 2013-10-24 14:40:30 +02:00
Federico Fissore
bdf7eba7ed Fixed pre processor bug. Closes #1245 2013-10-22 17:32:25 +02:00
Federico Fissore
8bcf02ac3b Improved File open/save dialogs, remembering last opened file/folder
Consistent UI across the IDE
Solves NPE on some linuxes #1384
Hopefully improves UX #559
2013-10-22 15:34:42 +02:00
Federico Fissore
05fa62d9db Added warning message in case sketch contains invalid file name. Fixes #1390 2013-10-22 11:21:46 +02:00
Federico Fissore
59de784e9f Trying to fix macosx system_profiler parser 2013-10-21 18:34:38 +02:00
Federico Fissore
49a05121d4 Examples now scrollable. Closes #1548 and #1177 2013-10-17 17:25:39 +02:00
Federico Fissore
d535f878f6 Boards now scrollable. Closes #1440 2013-10-17 17:16:16 +02:00
Federico Fissore
4a47eef28a Mouse scroll wheel fix for MenuScroller 2013-10-17 16:58:56 +02:00
Federico Fissore
1877703920 Centering the first Editor to the middle of the main monitor. Fixes #1629 2013-10-17 16:51:56 +02:00
Federico Fissore
143c91f0b5 Import Library feedback was going to the first opened editor, despite its availability. Closes #1598 2013-10-17 14:29:12 +02:00
Federico Fissore
54253ee5c3 Improved error message when unable to connect to the board via SSH 2013-10-16 17:04:07 +02:00
Federico Fissore
027f7c7403 Forcing GUI update events to happen in the Event Dispatch Thread 2013-10-15 18:09:52 +02:00
Federico Fissore
f7f616c3bb Adding AutoformatTest 2013-10-15 18:09:09 +02:00
Federico Fissore
06445dd151 Preventing upload and serial monitor on not (yet) available boards 2013-10-15 17:17:16 +02:00
Federico Fissore
9898fd7ae6 Added support to openssh config file 2013-10-15 17:17:16 +02:00
Federico Fissore
56bdebb8d7 Introducing Artistic Style: new IDE autoformatter 2013-10-14 18:11:30 +02:00
Federico Fissore
6378c8c647 Moving Library.SOURCE_CONTROL_FOLDERS into FileUtils.isSCCSOrHiddenFile #1619 2013-10-14 14:48:41 +02:00
Federico Fissore
72440e7893 Added missing class FileNameExtensionFilter 2013-10-14 12:55:39 +02:00
Federico Fissore
21ef50beb4 It was still using jdk FileNameExtensionFilter 2013-10-14 12:34:09 +02:00
Federico Fissore
65708b68a9 Print a warning instead than just ignoring #1619 2013-10-14 11:55:03 +02:00
Federico Fissore
c0a0e49db6 Ignore folders used by source code control software (subversino, git...) #1619 2013-10-14 11:40:13 +02:00
Federico Fissore
5fc1d779c7 It was still using jdk FileNameExtensionFilter 2013-10-12 15:02:08 +02:00
Cristian Maglie
d1d561ddb7 Update localization pull script to handle java Locale class exceptions 2013-10-02 18:18:35 +02:00
Cristian Maglie
6dd750e35b Finished renaming resouces bundles "he" and "id" to "iw" and "in" respectively 2013-10-02 18:18:34 +02:00
Federico Fissore
9a10a22bc3 Renamed resouces boundles he and id to iw and in respectively
Removed try catch around i18n.init
2013-10-02 17:52:59 +02:00
Cristian Maglie
8028cc38e7 Added "English (UK)" to the language list. 2013-10-02 17:40:44 +02:00
Federico Fissore
63914efb06 Fixed locale selection 2013-10-02 17:34:38 +02:00
Cristian Maglie
2f38d1aaa5 Added "Using library.." debugging message in verbose output. 2013-10-01 15:03:43 +02:00
Federico Fissore
af20a50b31 Disabling board auto detection on windows. (again....)
See #1573
2013-09-21 20:30:12 +02:00
Cristian Maglie
9db77e18f8 Fetch updates of translations from transifex. 2013-09-13 19:33:07 +02:00
Cristian Maglie
e3cd447527 Updated locales 2013-09-13 19:33:07 +02:00
Cristian Maglie
fca6d77079 Updated available languages 2013-09-13 19:33:06 +02:00
Federico Fissore
f9568df256 Revert "Disabling board auto detection on windows. Argh..."
This reverts commit 5a086c976b.
2013-09-13 17:47:19 +02:00
Federico Fissore
5a086c976b Disabling board auto detection on windows. Argh... 2013-09-11 14:39:14 +02:00
Federico Fissore
5032e630fe Catching Throwable instead of IOException in an attempt to catch unknown "type mismatch error" on windows8 2013-09-11 12:02:29 +02:00
Cristian Maglie
9df65fdfe5 Fixed translation string 2013-09-10 12:34:46 +02:00
Cristian Maglie
e563c5f136 Added/Refactored list of available languages 2013-09-10 12:26:44 +02:00
Cristian Maglie
d4fe0a13b6 Merge branch 'ide-1.5.x' into dev-ide-1.5.x-discovery
Conflicts:
	build/shared/revisions.txt
2013-09-10 12:10:57 +02:00
Cristian Maglie
421fa18c3c Updated revision log, and upped version to 1.5.4 2013-09-09 19:47:25 +02:00
Cristian Maglie
33a177260e Revert to English locale if the system default is not available
See #1525
2013-09-09 19:47:25 +02:00
Cristian Maglie
74909a0060 Changed message for sketch memory usage. 2013-09-09 17:49:10 +02:00
Cristian Maglie
7dd9f81f39 Updated revision log, and upped version to 1.5.4 2013-09-06 18:39:42 +02:00
Cristian Maglie
64ea65cf54 Revert to English locale if the system default is not available
See #1525
2013-09-06 16:02:42 +02:00
Federico Fissore
effb59da4b Merge remote-tracking branch 'arduino/ide-1.5.x' into dev-ide-1.5.x-discovery 2013-09-06 12:59:24 +02:00
Cristian Maglie
ed41a67614 Silently revert to system i18n language, if the currently selected language is not available. 2013-09-03 11:36:57 +02:00
Cristian Maglie
448595d0b2 Removed some java warnings 2013-09-03 11:08:07 +02:00
Cristian Maglie
4edca6f01d Refactored Languages array 2013-09-01 13:46:56 +02:00
Cristian Maglie
ea8c14421a Merge branch 'ide-1.5.x' into dev-ide-1.5.x-discovery
Conflicts:
	app/src/processing/app/Preferences.java
	app/src/processing/app/debug/Uploader.java
2013-08-23 15:59:24 +02:00
Cristian Maglie
b84f276872 Fixed preference parsing (hashtable was concurrently updated while iterating on it). 2013-08-22 00:02:48 +02:00
Cristian Maglie
8472a6b474 Slightly reorganized reports from 'Copy error' button 2013-08-21 17:19:22 +02:00
Cristian Maglie
9a173863e8 Changed 'Copy error' button: bigger font, shorter text 2013-08-21 16:53:58 +02:00
Cristian Maglie
c2b55eb7a1 Scrollable menus can now be scrolled with the mouse wheel 2013-08-21 02:48:23 +02:00
Cristian Maglie
2e80136cab Import library menu is now scrollable.
Fixes #1543
2013-08-21 02:19:57 +02:00
Cristian Maglie
350ed87af3 Fixed typo 2013-08-05 15:08:07 +02:00
Cristian Maglie
f65e736a12 Workaround for incorrect argument passing of Runtime.exec(args[]) method on Windows.
More info here:
http://stackoverflow.com/questions/5969724/java-runtime-exec-fails-to-escape-characters-properly
http://msdn.microsoft.com/en-us/library/a1y7w461.aspx
http://bugs.sun.com/view_bug.do?bug_id=6468220
http://bugs.sun.com/view_bug.do?bug_id=6518827

Affects #1422
2013-08-05 15:07:59 +02:00
Cristian Maglie
0b632dba47 Merge branch 'ide-1.5.x' into dev-ide-1.5.x-discovery
Conflicts:
	hardware/arduino/avr/cores/arduino/USBCore.cpp
2013-07-30 10:45:44 +02:00
PaulStoffregen
88e9da8056 Help 3rd party installers find the hardware path 2013-07-26 17:08:01 -07:00
Federico Fissore
94ed153f39 Re-added licence header to cc.arduino classes 2013-07-23 12:11:13 +02:00
Federico Fissore
6af672ff6c Added licence header to cc.arduino classes 2013-07-22 17:47:54 +02:00
Federico Fissore
652168cb03 Zeroconf services may have multiple IP addresses: let's consider them all 2013-07-22 10:25:25 +02:00
Federico Fissore
e6b11c44f6 Missing new line from network monitor "connected!" notification 2013-07-20 19:49:50 +02:00
Cristian Maglie
f8ec9418d1 Fixed bug in StringReplacer 2013-07-19 16:08:36 +02:00
Federico Fissore
def612e7b7 NetworkDiscovery: InetAddress.isReachable() is unreliable, let's open a socket 2013-07-19 15:17:27 +02:00
Federico Fissore
dec06c0423 Merge remote-tracking branch 'arduino/ide-1.5.x' into dev-ide-1.5.x-discovery 2013-07-17 19:39:42 +02:00
Federico Fissore
803ad2f718 Preparing i18n files for transifex 2013-07-17 15:11:21 +02:00
Federico Fissore
cd38516384 NetworkMonitor: avoid connecting if session is closed 2013-07-17 14:43:30 +02:00
Cristian Maglie
ee8110e731 Updated StringReplacer.quotedSplit() to accept more than one quote char. 2013-07-17 14:36:20 +02:00
Federico Fissore
03f27cde63 SerialMonitor: set minimum sizes to avoid components disappearing 2013-07-17 13:42:19 +02:00
Federico Fissore
12cddf0d90 SerialMonitor: added "no line ending" alert 2013-07-17 11:25:33 +02:00
Cristian Maglie
c70cba8fcd Fixed translated text string. Show warning message during loading of TargetPlatforms 2013-07-15 21:25:21 +02:00
Cristian Maglie
3a68385c07 Merge branch 'ide-1.5.x-thirdpartyboardprofiles' of github.com:projectgus/Arduino into projectgus-ide-1.5.x-thirdpartyboardprofiles
Conflicts:
	app/src/processing/app/debug/BasicUploader.java
2013-07-15 21:06:02 +02:00
Cristian Maglie
008818868c Merge branch 'ide-1.5.x' into dev-ide-1.5.x-discovery
Conflicts:
	app/src/cc/arduino/packages/uploaders/SerialUploader.java
	app/src/processing/app/Editor.java
	app/src/processing/app/Sketch.java
	app/src/processing/app/debug/Uploader.java
2013-07-14 12:01:03 +02:00
Cristian Maglie
7f87574f7e Hardened upload.tool property reading code for boards.txt
Fixes #1464
2013-07-12 20:05:58 +02:00
Cristian Maglie
8ab419fd13 Better error handling for missing preferences.
Fixes #1471
2013-07-12 19:50:57 +02:00
Cristian Maglie
c24b3f6489 IDE didn't stop if an invalid library is found 2013-07-12 16:22:51 +02:00
Federico Fissore
f648715621 Introducing uploader "warnings", a first attempt to give users more feedback with complex uploads 2013-07-10 09:44:49 +02:00
Federico Fissore
39c032b490 cleanup 2013-07-10 09:42:27 +02:00
Federico Fissore
21ca1cd9c5 NetworkMonitor: better "retry" messages 2013-07-08 14:30:55 +02:00
Federico Fissore
7b7f26f9d2 NetworkDiscovery: a duplicate board is identified by its IP address only 2013-07-08 14:18:09 +02:00
Federico Fissore
861d6f4b06 Implemented NetworkMonitor retry 2013-07-05 19:14:59 +02:00
Federico Fissore
172007b475 renamed two lua scripts 2013-07-05 13:50:00 +02:00
Federico Fissore
2165ecaa07 Avoiding duplicate boards in port menu 2013-06-28 15:29:39 +02:00
Federico Fissore
f41dc69c08 Refactored Uploader.stringContainsOneOf and StringMatchers.wildcardMatch into StringUitils
SSHUploader: filtered out some platform specific files
2013-06-28 15:29:39 +02:00
Federico Fissore
92ee034964 Faster implementation of scp copy of www folder contents 2013-06-28 15:29:39 +02:00
Federico Fissore
300ca07b95 better RunnerException 2013-06-28 15:29:39 +02:00
Federico Fissore
0d07ff9b41 First (slow) implementation of "copy everything from sketch www folder to yun's www/sketch folder, if available" 2013-06-28 15:29:39 +02:00
Federico Fissore
6a1cdcdd03 introduced FileUtils.getLinuxPathFrom: replaces backslashes with slashes 2013-06-28 15:29:38 +02:00
Federico Fissore
67cb6047de Added source folder to Uploader.uploadUsingPreferences
Cleaned up Uploader.message
Better SSH output streams consuming
Introduced generic SCP.scpFile method and refactored SCP.scpHexToBoard
2013-06-28 15:29:38 +02:00
Cristian Maglie
9f84ae1d64 Workaround for IDE crash when uploading on Leonardo (and derivatives) on Linux 2013-06-28 09:50:51 +02:00
Federico Fissore
1f7ad71218 IDE network discovery now reacts to new networks: it monitors available IP addresses and, when one is added, it starts listening to bonjours coming from it 2013-06-25 16:13:14 +02:00
Federico Fissore
45f7d1e6f8 attempting to silencing jmdns complains about missing network interfaces 2013-06-14 16:43:50 +02:00
Federico Fissore
cca59f7e91 NetworkDiscovery is a bit more responsive when boards go OFFLINE 2013-06-14 16:43:05 +02:00
Cristian Maglie
a9e6397e2e Fixed NPE during VID/PID discovery for non-USB serial ports 2013-06-13 13:19:26 +02:00
Federico Fissore
ae222c10e7 HTTPUploader is now SSHUploader
running avrdude with ssh, thus recovering incremental output
2013-06-13 13:01:21 +02:00
Federico Fissore
d28c656d7d httpuploader actually uses scp to move the sketch on the board 2013-06-11 17:33:04 +02:00
Federico Fissore
21203cbe1b introducing jsch. now network monitor uses SSH to trigger a telnet session at yun side 2013-06-11 15:02:10 +02:00
Federico Fissore
f791329ddc extremely ugly hack to fix bad behaviour of java6 when dealing with SSL 2013-06-10 09:11:21 +02:00
Federico Fissore
137da0326d found a bug in java6, fixed removing a https protocol from the list
see http://stackoverflow.com/questions/15589880/how-to-make-java-6-which-fails-ssl-connection-with-ssl-peer-shut-down-incorrec
2013-06-10 09:11:21 +02:00
Cristian Maglie
3e4419d6be Merge branch 'ide-1.5.x' into ide-1.5.x-discovery 2013-06-07 00:38:42 +02:00
Cristian Maglie
16b7b67c47 Fixed problem with % processing on .po files. Fixed quote ' processing on I18N lib. 2013-06-06 16:33:20 +02:00
Cristian Maglie
73fa08f272 Removed unused variable 2013-06-04 21:45:56 +02:00
Cristian Maglie
0ab4f8b24b Temporary workaround on network discovery 2013-06-04 21:45:03 +02:00
Cristian Maglie
b4852f353c Merge remote-tracking branch 'dog/ide-1.5.x-discovery' into ide-1.5.x-discovery
Conflicts:
	app/src/processing/app/Base.java
	app/src/processing/app/Editor.java
2013-06-04 19:33:38 +02:00
Federico Fissore
d7c4481baa Using additional info in avahi payload to print discovered board type 2013-06-04 17:26:31 +02:00
Federico Fissore
69e6419394 forgot to move serialRate field to SerialMonitor subclass 2013-06-04 13:36:01 +02:00
Cristian Maglie
7452ce824f Small refactory to HttpUploader class 2013-06-03 13:12:36 +02:00
Cristian Maglie
3f9bb3e58c Removed cleanup for jmDNS 2013-06-03 00:47:41 +02:00
Cristian Maglie
4b0a976686 First refactoring of uploaders 2013-06-03 00:44:15 +02:00
Cristian Maglie
6b05276b7e Removed duplicate Uploader interface class 2013-06-03 00:42:26 +02:00
Cristian Maglie
ab6eb0843c Refactored port (Serial and Network) discovery. 2013-06-02 19:02:57 +02:00
Federico Fissore
376b0f8b3f Serial.dispose() throws IOException
SerialException extends IOException
SerialMonitor is now a subclass of a generic AbstractMonitor; introducing NetworkMonitor
UploaderFactory becomes PerPortObjectFactory and can build AbstractMonitors
favouring IOException over SerialException
collecting constants in Constants
made MessageSiphon stoppable
2013-05-31 09:45:52 +02:00
Federico Fissore
556c6ea5c1 better error handling on uploading 2013-05-31 09:45:52 +02:00
Federico Fissore
c174737584 httpuploader now uses new lua uploader
https disabled due to some strange bug with uhttpd
2013-05-31 09:45:51 +02:00
Cristian Maglie
ec7996e8be Reintroduced copy error button.
Revert "Reverted 'copy error' button for 1.0.5, waiting for a better UI design"

This reverts commit cf4584eb29.
2013-05-22 12:19:59 +02:00
Cristian Maglie
22997bbfd5 Fixed upload for robot boards 2013-05-17 19:52:32 +02:00
Cristian Maglie
4c73b8c0f3 Fixed upload for robot boards 2013-05-17 19:40:57 +02:00
Angus Gratton
b8c795e184 Don't give up when loading hardware/ profile directories with some invalid directories
This allows you to create hardware profiles that support both pre-1.5 and 1.5 onwards (boards.txt, cores, bootloader etc. in root for pre-1.5 and <architecture>/ directories containing 1.5 onward content.

Still prints a warning if a hardware folder doesn't contain anything 1.5 compatible.
2013-05-17 13:01:06 +10:00
Angus Gratton
7959d85dd4 Allow uploader choice in upload.tool to specify a different platform vendor 2013-05-17 13:01:06 +10:00
Federico Fissore
f830e00916 httpuploader first checks if the board is ready, then uploads the sketch 2013-05-16 10:47:55 +02:00
Cristian Maglie
cf4584eb29 Reverted 'copy error' button for 1.0.5, waiting for a better UI design 2013-05-15 11:32:22 +02:00
Federico Fissore
2d6af8264b Merge remote-tracking branch 'arduino/ide-1.5.x' into ide-1.5.x-discovery 2013-05-13 16:58:10 +02:00
Federico Fissore
219d1462fc using https instead of http but ignoring self signed certificates 2013-05-13 16:43:14 +02:00
Cristian Maglie
76fd163a5f Fixed regression: CTRL+Left/CTRL+Right moves cursor one word backward/forward
See 4212be6669
2013-05-12 15:51:33 +02:00
Cristian Maglie
a46259a0cf Merged 1.0.5
Still missing:
- updates to WiFi lib for sam.
- updates to examples of Ehternet and WiFi for sam.

Merge remote-tracking branch 'arduino/master' into ide-1.5.x

Conflicts:
	app/src/processing/app/Base.java
	app/src/processing/app/Editor.java
	app/src/processing/app/helpers/FileUtils.java
	app/src/processing/app/i18n/Resources_fr.po
	app/src/processing/app/i18n/Resources_fr.properties
	build/shared/revisions.txt
	hardware/arduino/avr/libraries/Ethernet/examples/DnsWebClient/DnsWebClient.ino
	hardware/arduino/avr/libraries/WiFi/examples/WifiChatServer/WifiChatServer.ino
	hardware/arduino/avr/libraries/WiFi/examples/WifiPachubeClient/WifiPachubeClient.ino
	hardware/arduino/avr/libraries/WiFi/examples/WifiPachubeClientString/WifiPachubeClientString.ino
	hardware/arduino/avr/libraries/WiFi/examples/WifiTwitterClient/WifiTwitterClient.ino
	hardware/arduino/avr/libraries/WiFi/examples/WifiUdpSendReceiveString/WifiUdpSendReceiveString.ino
	hardware/arduino/avr/libraries/WiFi/examples/WifiWebClient/WifiWebClient.ino
	hardware/arduino/avr/libraries/WiFi/examples/WifiWebClientRepeating/WifiWebClientRepeating.ino
	hardware/arduino/avr/libraries/WiFi/examples/WifiWebServer/WifiWebServer.ino
	libraries/WiFi/examples/WiFiChatServer/WiFiChatServer.ino
	libraries/WiFi/examples/WiFiPachubeClient/WiFiPachubeClient.ino
	libraries/WiFi/examples/WiFiPachubeClientString/WiFiPachubeClientString.ino
	libraries/WiFi/examples/WiFiTwitterClient/WiFiTwitterClient.ino
	libraries/WiFi/examples/WiFiUdpSendReceiveString/WiFiUdpSendReceiveString.ino
	libraries/WiFi/examples/WiFiWebClient/WiFiWebClient.ino
	libraries/WiFi/examples/WiFiWebClientRepeating/WiFiWebClientRepeating.ino
	libraries/WiFi/examples/WiFiWebServer/WiFiWebServer.ino
	libraries/WiFi/examples/WifiChatServer/WifiChatServer.ino
	libraries/WiFi/examples/WifiPachubeClient/WifiPachubeClient.ino
	libraries/WiFi/examples/WifiPachubeClientString/WifiPachubeClientString.ino
	libraries/WiFi/examples/WifiTwitterClient/WifiTwitterClient.ino
	libraries/WiFi/examples/WifiUdpSendReceiveString/WifiUdpSendReceiveString.ino
	libraries/WiFi/examples/WifiWebClient/WifiWebClient.ino
	libraries/WiFi/examples/WifiWebClientRepeating/WifiWebClientRepeating.ino
	libraries/WiFi/examples/WifiWebServer/WifiWebServer.ino
2013-05-11 14:37:25 +02:00
Cristian Maglie
62846f1f1b Fixed disappearing 'Import library' menu 2013-05-11 13:25:37 +02:00
Cristian Maglie
13d8214567 Backported OnlyDirs.class 2013-05-11 13:25:37 +02:00
Federico Fissore
544445524a removed check on .h file existence 2013-05-11 13:25:36 +02:00
Cristian Maglie
fa9566235d Disabled 'fat' (multiplatform) library check.
Conflicts:
	app/src/processing/app/Base.java
2013-05-11 13:25:36 +02:00
Federico Fissore
8266ac5aad better error message when library names clash
filter out non .ZIP files
2013-05-11 13:25:36 +02:00
Federico Fissore
3d5c76a8a1 also rebuild examples menu after library import 2013-05-11 13:25:36 +02:00
Federico Fissore
29856fff53 improved import library: complains if invalid zip or folders are selected 2013-05-11 13:25:36 +02:00
Cristian Maglie
1cdf75d4df "Add library" moved into "Import library" menu 2013-05-11 13:25:36 +02:00
Federico Fissore
8eab205166 import library also import folder (already expanded libraries)
Conflicts:
	app/src/processing/app/helpers/FileUtils.java
	app/test/processing/app/tools/ZipDeflaterTest.java
2013-05-11 13:25:36 +02:00
Cristian Maglie
62a8a0149f keep included folder name as top level folder name, delete MAC folder and hidden files 2013-05-11 13:25:36 +02:00
Cristian Maglie
d66e094a3b Revert ""Add library" moved into "Import library" menu"
This reverts commit 1866050e07.
2013-05-11 13:25:36 +02:00
Federico Fissore
f7797d8621 silencing http client output
gracefully (?) handling errors
setting a connection timeout of 5 secs
2013-05-07 12:14:38 +02:00
Federico Fissore
e1049aacc9 forcing a new requestServiceInfo until we get the remote IP address 2013-05-06 12:31:04 +02:00
Federico Fissore
20cfa72ee7 always print avrdude output
change to port 80
2013-05-06 12:31:04 +02:00
Federico Fissore
11db302b3e made parser aware of that now vid & pid have 0x 2013-05-06 12:31:03 +02:00
Federico Fissore
2f5d71fb59 updated code to reflect upstream API changes 2013-05-06 12:31:03 +02:00
Federico Fissore
0c03dc8db9 re-asking for password if previous upload failed 2013-05-06 12:31:03 +02:00
Federico Fissore
e772eadd92 nicer password popup 2013-05-06 12:31:03 +02:00
Federico Fissore
968c538849 "Serial Port" is not just "Port" 2013-05-06 12:31:03 +02:00
Federico Fissore
078a6f5630 updated commons-codec
introduced password authorization dialog
actual sketch posting
2013-05-06 12:31:03 +02:00
Federico Fissore
4cbd1cf9fe fixed UploaderFactoryTest 2013-05-06 12:31:03 +02:00
Federico Fissore
0b8489d31e boards.txt modified. java code updated 2013-05-06 12:31:02 +02:00
Federico Fissore
e6468f0387 first upload code 2013-05-06 12:31:02 +02:00
Federico Fissore
8bc15c8c04 nicer port entry 2013-05-06 12:31:02 +02:00
Federico Fissore
ae852f8ab1 made the board hashmap concurrent 2013-05-06 12:31:02 +02:00
Federico Fissore
ad866ca5ed showing discovered boards 2013-05-06 12:31:02 +02:00