|
| 1 | +## Arduino IDE Extension |
| 2 | + |
| 3 | +Arduino Pro IDE is based on Theia, and most of its IDE features, UIs and customizations are implemented in this Theia extension. |
| 4 | + |
| 5 | +### IDE Services |
| 6 | + |
| 7 | +IDE services typically have a backend part (usually in [src/node/](./src/node/)) and a front-end part (usually in [src/browser/](./src/browser/)). |
| 8 | + |
| 9 | +#### Boards Service |
| 10 | + |
| 11 | +The Boards Service continuously checks the computer's ports, in order to detect when you connect or disconnect an Arduino board. |
| 12 | + |
| 13 | +The Boards Manager lists all the known board types, and allows downloading new cores to get additional board types. |
| 14 | + |
| 15 | +- [src/common/protocol/boards-service.ts](./src/common/protocol/boards-service.ts) implements the common classes and interfaces |
| 16 | +- [src/node/boards-service-impl.ts](./src/node/boards-service-impl.ts) implements the service backend: |
| 17 | + - discovering ports & boards |
| 18 | + - searching for compatible board types |
| 19 | + - installing new board types |
| 20 | +- [src/browser/boards/boards-list-widget.ts](./src/browser/boards/boards-service-client-impl.ts) implements the Boards Manager front-end: |
| 21 | + - browsing/searching available board types |
| 22 | + - installing new board types |
| 23 | + |
| 24 | +#### Core Service |
| 25 | + |
| 26 | +The Core Service is responsible for building your sketches and uploading them to a board. |
| 27 | + |
| 28 | +- [src/common/protocol/core-service.ts](./src/common/protocol/core-service.ts) implements the common classes and interfaces |
| 29 | +- [src/node/core-service-impl.ts](./src/node/core-service-impl.ts) implements the service backend: |
| 30 | + - compiling a sketch for a selected board type |
| 31 | + - uploading a sketch to a connected board |
| 32 | + |
| 33 | +### Monitor Service |
| 34 | + |
| 35 | +The Monitor Service allows getting information back from sketches running on your Arduino boards. |
| 36 | + |
| 37 | +- [src/common/protocol/monitor-service.ts](./src/common/protocol/monitor-service.ts) implements the common classes and interfaces |
| 38 | +- [src/node/monitor-service-impl.ts](./src/node/monitor-service-impl.ts) implements the service backend: |
| 39 | + - connecting to / disconnecting from a board |
| 40 | + - receiving and sending data |
| 41 | +- [src/browser/monitor/monitor-widget.tsx](./src/browser/monitor/monitor-widget.tsx) implements the serial monitor front-end: |
| 42 | + - viewing the output from a connected board |
| 43 | + - entering data to send to the board |
| 44 | + |
| 45 | +#### Config Service |
| 46 | + |
| 47 | +The Config Service knows about your system, like for example the default sketch locations. |
| 48 | + |
| 49 | +- [src/common/protocol/config-service.ts](./src/common/protocol/config-service.ts) implements the common classes and interfaces |
| 50 | +- [src/node/config-service-impl.ts](./src/node/config-service-impl.ts) implements the service backend: |
| 51 | + - getting the `arduino-cli` version and configuration |
| 52 | + - checking whether a file is in a data or sketch directory |
0 commit comments