JAndrassy / ArduinoOTA

Arduino library to upload sketch over network to Arduino board with WiFi or Ethernet libraries
GNU Lesser General Public License v2.1
450 stars 91 forks source link

Make programmers.txt snippet compatible with platforms that use pluggable discovery syntax #171

Closed per1234 closed 2 years ago

per1234 commented 2 years ago

A new flexible and powerful "pluggable discovery" system was added to the Arduino boards platform framework. This system makes it easy for Arduino boards platform authors to use any arbitrary communication channel between the board and development tools.

Boards platform configurations that use the old property syntax are automatically translated to the new syntax by Arduino CLI.

https://arduino.github.io/arduino-cli/latest/platform-specification/#sketch-upload-configuration

This translation is only done in platforms that use the old syntax exclusively. If pluggable_discovery properties are defined for the platform then the new pluggable discovery-style program.tool.<protocol_name> properties must be defined as well. If not, the "Upload Using Programmer" operation will fail:

Property 'program.tool.serial' is undefined

Or if no serial port is selected:

Property 'program.tool.' is undefined

Since the programmers.txt snippet provided in the readme is intended to be used with any platform, it must be compatible with those that use the new pluggable discovery syntax (e.g., https://github.com/arduino/ArduinoCore-samd/pull/648). This is accomplished by adding an arduinoOTA115.program.tool.default property.

It is also important to provide compatibility with older versions of Arduino development tools. For this reason, the old style property arduinoOTA115.program.tool is retained. Old versions of the development tools will treat the arduinoOTA115.program.tool.default property as an arbitrary user defined property with no special significance and the new versions of the development tools will do the same for the arduinoOTA115.program.tool property.

JAndrassy commented 1 year ago

@per1234, I had to change it from

arduinoOTA104.program.default=arduinoOTA

to

arduinoOTA104.program.tool.default=arduinoOTA