Skip to content

Commit 85cf875

Browse files
authored
Merge pull request #89 from bcmi-labs/jx/document-boards-service
[doc] Document Arduino Pro IDE extension and a few services
2 parents 4c503c0 + 41c56c1 commit 85cf875

File tree

2 files changed

+55
-0
lines changed

2 files changed

+55
-0
lines changed

README.md

+3
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ Then you can start the browser example again:
2929
yarn --cwd browser-app start
3030
```
3131

32+
Click [here](./arduino-ide-extension/README.md) for more details on various IDE services, and the Arduino Pro IDE implementation in general.
33+
34+
3235
## Arduino Pro IDE Electron Application
3336
The project is built on [Azure DevOps](https://dev.azure.com/typefox/Arduino).
3437

arduino-ide-extension/README.md

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
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

Comments
 (0)