From d9eba6255ade2ef3eec92bde9a10cc27aa4d4829 Mon Sep 17 00:00:00 2001 From: per1234 Date: Thu, 7 May 2020 01:31:31 -0700 Subject: [PATCH] [skip changelog] Add documentation for platform components of the gRPC interface Comments added to the .proto files are included in the generated gRPC interface documentation. --- rpc/commands/commands.pb.go | 16 ++++ rpc/commands/commands.proto | 8 ++ rpc/commands/core.pb.go | 153 +++++++++++++++++++++++------------- rpc/commands/core.proto | 43 ++++++++++ 4 files changed, 165 insertions(+), 55 deletions(-) diff --git a/rpc/commands/commands.pb.go b/rpc/commands/commands.pb.go index af751e22958..ed92160e0f3 100644 --- a/rpc/commands/commands.pb.go +++ b/rpc/commands/commands.pb.go @@ -645,12 +645,20 @@ type ArduinoCoreClient interface { BoardList(ctx context.Context, in *BoardListReq, opts ...grpc.CallOption) (*BoardListResp, error) BoardListAll(ctx context.Context, in *BoardListAllReq, opts ...grpc.CallOption) (*BoardListAllResp, error) Compile(ctx context.Context, in *CompileReq, opts ...grpc.CallOption) (ArduinoCore_CompileClient, error) + // Download and install a platform and its tool dependencies. PlatformInstall(ctx context.Context, in *PlatformInstallReq, opts ...grpc.CallOption) (ArduinoCore_PlatformInstallClient, error) + // Download a platform and its tool dependencies to the `staging/packages` + // subdirectory of the data directory. PlatformDownload(ctx context.Context, in *PlatformDownloadReq, opts ...grpc.CallOption) (ArduinoCore_PlatformDownloadClient, error) + // Uninstall a platform as well as its tool dependencies that are not used by + // other installed platforms. PlatformUninstall(ctx context.Context, in *PlatformUninstallReq, opts ...grpc.CallOption) (ArduinoCore_PlatformUninstallClient, error) + // Upgrade an installed platform to the latest version. PlatformUpgrade(ctx context.Context, in *PlatformUpgradeReq, opts ...grpc.CallOption) (ArduinoCore_PlatformUpgradeClient, error) Upload(ctx context.Context, in *UploadReq, opts ...grpc.CallOption) (ArduinoCore_UploadClient, error) + // Search for a platform in the platforms indexes. PlatformSearch(ctx context.Context, in *PlatformSearchReq, opts ...grpc.CallOption) (*PlatformSearchResp, error) + // List all installed platforms. PlatformList(ctx context.Context, in *PlatformListReq, opts ...grpc.CallOption) (*PlatformListResp, error) LibraryDownload(ctx context.Context, in *LibraryDownloadReq, opts ...grpc.CallOption) (ArduinoCore_LibraryDownloadClient, error) LibraryInstall(ctx context.Context, in *LibraryInstallReq, opts ...grpc.CallOption) (ArduinoCore_LibraryInstallClient, error) @@ -1236,12 +1244,20 @@ type ArduinoCoreServer interface { BoardList(context.Context, *BoardListReq) (*BoardListResp, error) BoardListAll(context.Context, *BoardListAllReq) (*BoardListAllResp, error) Compile(*CompileReq, ArduinoCore_CompileServer) error + // Download and install a platform and its tool dependencies. PlatformInstall(*PlatformInstallReq, ArduinoCore_PlatformInstallServer) error + // Download a platform and its tool dependencies to the `staging/packages` + // subdirectory of the data directory. PlatformDownload(*PlatformDownloadReq, ArduinoCore_PlatformDownloadServer) error + // Uninstall a platform as well as its tool dependencies that are not used by + // other installed platforms. PlatformUninstall(*PlatformUninstallReq, ArduinoCore_PlatformUninstallServer) error + // Upgrade an installed platform to the latest version. PlatformUpgrade(*PlatformUpgradeReq, ArduinoCore_PlatformUpgradeServer) error Upload(*UploadReq, ArduinoCore_UploadServer) error + // Search for a platform in the platforms indexes. PlatformSearch(context.Context, *PlatformSearchReq) (*PlatformSearchResp, error) + // List all installed platforms. PlatformList(context.Context, *PlatformListReq) (*PlatformListResp, error) LibraryDownload(*LibraryDownloadReq, ArduinoCore_LibraryDownloadServer) error LibraryInstall(*LibraryInstallReq, ArduinoCore_LibraryInstallServer) error diff --git a/rpc/commands/commands.proto b/rpc/commands/commands.proto index 82965105a87..6aa07cb54aa 100644 --- a/rpc/commands/commands.proto +++ b/rpc/commands/commands.proto @@ -63,18 +63,26 @@ service ArduinoCore { rpc Compile(CompileReq) returns (stream CompileResp); + // Download and install a platform and its tool dependencies. rpc PlatformInstall(PlatformInstallReq) returns (stream PlatformInstallResp); + // Download a platform and its tool dependencies to the `staging/packages` + // subdirectory of the data directory. rpc PlatformDownload(PlatformDownloadReq) returns (stream PlatformDownloadResp); + // Uninstall a platform as well as its tool dependencies that are not used by + // other installed platforms. rpc PlatformUninstall(PlatformUninstallReq) returns (stream PlatformUninstallResp); + // Upgrade an installed platform to the latest version. rpc PlatformUpgrade(PlatformUpgradeReq) returns (stream PlatformUpgradeResp); rpc Upload(UploadReq) returns (stream UploadResp); + // Search for a platform in the platforms indexes. rpc PlatformSearch(PlatformSearchReq) returns (PlatformSearchResp); + // List all installed platforms. rpc PlatformList(PlatformListReq) returns (PlatformListResp); rpc LibraryDownload(LibraryDownloadReq) returns (stream LibraryDownloadResp); diff --git a/rpc/commands/core.pb.go b/rpc/commands/core.pb.go index 8ea9e3f0ef1..c8fce32f25f 100644 --- a/rpc/commands/core.pb.go +++ b/rpc/commands/core.pb.go @@ -21,13 +21,17 @@ var _ = math.Inf const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package type PlatformInstallReq struct { - Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` - PlatformPackage string `protobuf:"bytes,2,opt,name=platform_package,json=platformPackage,proto3" json:"platform_package,omitempty"` - Architecture string `protobuf:"bytes,3,opt,name=architecture,proto3" json:"architecture,omitempty"` - Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + // Arduino Core Service instance from the `Init` response. + Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` + // Vendor name of the platform (e.g., `arduino`). + PlatformPackage string `protobuf:"bytes,2,opt,name=platform_package,json=platformPackage,proto3" json:"platform_package,omitempty"` + // Architecture name of the platform (e.g., `avr`). + Architecture string `protobuf:"bytes,3,opt,name=architecture,proto3" json:"architecture,omitempty"` + // Platform version to install. + Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *PlatformInstallReq) Reset() { *m = PlatformInstallReq{} } @@ -84,11 +88,13 @@ func (m *PlatformInstallReq) GetVersion() string { } type PlatformInstallResp struct { - Progress *DownloadProgress `protobuf:"bytes,1,opt,name=progress,proto3" json:"progress,omitempty"` - TaskProgress *TaskProgress `protobuf:"bytes,2,opt,name=task_progress,json=taskProgress,proto3" json:"task_progress,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + // Progress of the downloads of the platform and tool files. + Progress *DownloadProgress `protobuf:"bytes,1,opt,name=progress,proto3" json:"progress,omitempty"` + // Description of the current stage of the installation. + TaskProgress *TaskProgress `protobuf:"bytes,2,opt,name=task_progress,json=taskProgress,proto3" json:"task_progress,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *PlatformInstallResp) Reset() { *m = PlatformInstallResp{} } @@ -131,13 +137,16 @@ func (m *PlatformInstallResp) GetTaskProgress() *TaskProgress { } type PlatformDownloadReq struct { - Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` - PlatformPackage string `protobuf:"bytes,2,opt,name=platform_package,json=platformPackage,proto3" json:"platform_package,omitempty"` - Architecture string `protobuf:"bytes,3,opt,name=architecture,proto3" json:"architecture,omitempty"` - Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + // Arduino Core Service instance from the `Init` response. + Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` + PlatformPackage string `protobuf:"bytes,2,opt,name=platform_package,json=platformPackage,proto3" json:"platform_package,omitempty"` + // Architecture name of the platform (e.g., `avr`). + Architecture string `protobuf:"bytes,3,opt,name=architecture,proto3" json:"architecture,omitempty"` + // Platform version to download. + Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *PlatformDownloadReq) Reset() { *m = PlatformDownloadReq{} } @@ -194,6 +203,7 @@ func (m *PlatformDownloadReq) GetVersion() string { } type PlatformDownloadResp struct { + // Progress of the downloads of platform and tool files. Progress *DownloadProgress `protobuf:"bytes,1,opt,name=progress,proto3" json:"progress,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -233,12 +243,15 @@ func (m *PlatformDownloadResp) GetProgress() *DownloadProgress { } type PlatformUninstallReq struct { - Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` - PlatformPackage string `protobuf:"bytes,2,opt,name=platform_package,json=platformPackage,proto3" json:"platform_package,omitempty"` - Architecture string `protobuf:"bytes,3,opt,name=architecture,proto3" json:"architecture,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + // Arduino Core Service instance from the `Init` response. + Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` + // Vendor name of the platform (e.g., `arduino`). + PlatformPackage string `protobuf:"bytes,2,opt,name=platform_package,json=platformPackage,proto3" json:"platform_package,omitempty"` + // Architecture name of the platform (e.g., `avr`). + Architecture string `protobuf:"bytes,3,opt,name=architecture,proto3" json:"architecture,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *PlatformUninstallReq) Reset() { *m = PlatformUninstallReq{} } @@ -288,6 +301,7 @@ func (m *PlatformUninstallReq) GetArchitecture() string { } type PlatformUninstallResp struct { + // Description of the current stage of the uninstall. TaskProgress *TaskProgress `protobuf:"bytes,1,opt,name=task_progress,json=taskProgress,proto3" json:"task_progress,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -327,12 +341,15 @@ func (m *PlatformUninstallResp) GetTaskProgress() *TaskProgress { } type PlatformUpgradeReq struct { - Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` - PlatformPackage string `protobuf:"bytes,2,opt,name=platform_package,json=platformPackage,proto3" json:"platform_package,omitempty"` - Architecture string `protobuf:"bytes,3,opt,name=architecture,proto3" json:"architecture,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + // Arduino Core Service instance from the `Init` response. + Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` + // Vendor name of the platform (e.g., `arduino`). + PlatformPackage string `protobuf:"bytes,2,opt,name=platform_package,json=platformPackage,proto3" json:"platform_package,omitempty"` + // Architecture name of the platform (e.g., `avr`). + Architecture string `protobuf:"bytes,3,opt,name=architecture,proto3" json:"architecture,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *PlatformUpgradeReq) Reset() { *m = PlatformUpgradeReq{} } @@ -382,11 +399,13 @@ func (m *PlatformUpgradeReq) GetArchitecture() string { } type PlatformUpgradeResp struct { - Progress *DownloadProgress `protobuf:"bytes,1,opt,name=progress,proto3" json:"progress,omitempty"` - TaskProgress *TaskProgress `protobuf:"bytes,2,opt,name=task_progress,json=taskProgress,proto3" json:"task_progress,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + // Progress of the downloads of the platform and tool files. + Progress *DownloadProgress `protobuf:"bytes,1,opt,name=progress,proto3" json:"progress,omitempty"` + // Description of the current stage of the upgrade. + TaskProgress *TaskProgress `protobuf:"bytes,2,opt,name=task_progress,json=taskProgress,proto3" json:"task_progress,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *PlatformUpgradeResp) Reset() { *m = PlatformUpgradeResp{} } @@ -429,12 +448,16 @@ func (m *PlatformUpgradeResp) GetTaskProgress() *TaskProgress { } type PlatformSearchReq struct { - Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` - SearchArgs string `protobuf:"bytes,2,opt,name=search_args,json=searchArgs,proto3" json:"search_args,omitempty"` - AllVersions bool `protobuf:"varint,3,opt,name=all_versions,json=allVersions,proto3" json:"all_versions,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + // Arduino Core Service instance from the `Init` response. + Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` + // Keywords for the search. + SearchArgs string `protobuf:"bytes,2,opt,name=search_args,json=searchArgs,proto3" json:"search_args,omitempty"` + // Whether to show all available versions. `false` causes only the newest + // versions of the cores to be listed in the search results. + AllVersions bool `protobuf:"varint,3,opt,name=all_versions,json=allVersions,proto3" json:"all_versions,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *PlatformSearchReq) Reset() { *m = PlatformSearchReq{} } @@ -484,6 +507,7 @@ func (m *PlatformSearchReq) GetAllVersions() bool { } type PlatformSearchResp struct { + // Results of the search. SearchOutput []*Platform `protobuf:"bytes,1,rep,name=search_output,json=searchOutput,proto3" json:"search_output,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -523,11 +547,14 @@ func (m *PlatformSearchResp) GetSearchOutput() []*Platform { } type PlatformListReq struct { - Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` - UpdatableOnly bool `protobuf:"varint,2,opt,name=updatable_only,json=updatableOnly,proto3" json:"updatable_only,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + // Arduino Core Service instance from the `Init` response. + Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` + // Set to true to only list platforms which have a newer version available + // than the one currently installed. + UpdatableOnly bool `protobuf:"varint,2,opt,name=updatable_only,json=updatableOnly,proto3" json:"updatable_only,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *PlatformListReq) Reset() { *m = PlatformListReq{} } @@ -570,6 +597,7 @@ func (m *PlatformListReq) GetUpdatableOnly() bool { } type PlatformListResp struct { + // The installed platforms. InstalledPlatform []*Platform `protobuf:"bytes,1,rep,name=installed_platform,json=installedPlatform,proto3" json:"installed_platform,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -609,13 +637,25 @@ func (m *PlatformListResp) GetInstalledPlatform() []*Platform { } type Platform struct { - ID string `protobuf:"bytes,1,opt,name=ID,proto3" json:"ID,omitempty"` - Installed string `protobuf:"bytes,2,opt,name=Installed,proto3" json:"Installed,omitempty"` - Latest string `protobuf:"bytes,3,opt,name=Latest,proto3" json:"Latest,omitempty"` - Name string `protobuf:"bytes,4,opt,name=Name,proto3" json:"Name,omitempty"` - Maintainer string `protobuf:"bytes,5,opt,name=Maintainer,proto3" json:"Maintainer,omitempty"` - Website string `protobuf:"bytes,6,opt,name=Website,proto3" json:"Website,omitempty"` - Email string `protobuf:"bytes,7,opt,name=Email,proto3" json:"Email,omitempty"` + // Platform ID (e.g., `arduino:avr`). + ID string `protobuf:"bytes,1,opt,name=ID,proto3" json:"ID,omitempty"` + // Version of the platform. + Installed string `protobuf:"bytes,2,opt,name=Installed,proto3" json:"Installed,omitempty"` + // Newest available version of the platform. + Latest string `protobuf:"bytes,3,opt,name=Latest,proto3" json:"Latest,omitempty"` + // Name used to identify the platform to humans (e.g., "Arduino AVR Boards"). + Name string `protobuf:"bytes,4,opt,name=Name,proto3" json:"Name,omitempty"` + // Maintainer of the platform's package. + Maintainer string `protobuf:"bytes,5,opt,name=Maintainer,proto3" json:"Maintainer,omitempty"` + // A URL provided by the author of the platform's package, intended to point + // to their website. + Website string `protobuf:"bytes,6,opt,name=Website,proto3" json:"Website,omitempty"` + // Email of the maintainer of the platform's package. + Email string `protobuf:"bytes,7,opt,name=Email,proto3" json:"Email,omitempty"` + // List of boards provided by the platform. If the platform is installed, + // this is the boards listed in the platform's boards.txt. If the platform is + // not installed, this is an arbitrary list of board names provided by the + // platform author for display and may not match boards.txt. Boards []*Board `protobuf:"bytes,8,rep,name=Boards,proto3" json:"Boards,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -704,7 +744,10 @@ func (m *Platform) GetBoards() []*Board { } type Board struct { - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Name used to identify the board to humans. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Fully qualified board name used to identify the board to machines. The FQBN + // is only available for installed boards. Fqbn string `protobuf:"bytes,2,opt,name=fqbn,proto3" json:"fqbn,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` diff --git a/rpc/commands/core.proto b/rpc/commands/core.proto index 0e11794f322..b928823fef8 100644 --- a/rpc/commands/core.proto +++ b/rpc/commands/core.proto @@ -22,80 +22,123 @@ option go_package = "github.com/arduino/arduino-cli/rpc/commands"; import "commands/common.proto"; message PlatformInstallReq { + // Arduino Core Service instance from the `Init` response. Instance instance = 1; + // Vendor name of the platform (e.g., `arduino`). string platform_package = 2; + // Architecture name of the platform (e.g., `avr`). string architecture = 3; + // Platform version to install. string version = 4; } message PlatformInstallResp { + // Progress of the downloads of the platform and tool files. DownloadProgress progress = 1; + // Description of the current stage of the installation. TaskProgress task_progress = 2; } message PlatformDownloadReq { + // Arduino Core Service instance from the `Init` response. Instance instance = 1; string platform_package = 2; + // Architecture name of the platform (e.g., `avr`). string architecture = 3; + // Platform version to download. string version = 4; } message PlatformDownloadResp { + // Progress of the downloads of platform and tool files. DownloadProgress progress = 1; } message PlatformUninstallReq { + // Arduino Core Service instance from the `Init` response. Instance instance = 1; + // Vendor name of the platform (e.g., `arduino`). string platform_package = 2; + // Architecture name of the platform (e.g., `avr`). string architecture = 3; } message PlatformUninstallResp { + // Description of the current stage of the uninstall. TaskProgress task_progress = 1; } message PlatformUpgradeReq { + // Arduino Core Service instance from the `Init` response. Instance instance = 1; + // Vendor name of the platform (e.g., `arduino`). string platform_package = 2; + // Architecture name of the platform (e.g., `avr`). string architecture = 3; } message PlatformUpgradeResp { + // Progress of the downloads of the platform and tool files. DownloadProgress progress = 1; + // Description of the current stage of the upgrade. TaskProgress task_progress = 2; } message PlatformSearchReq { + // Arduino Core Service instance from the `Init` response. Instance instance = 1; + // Keywords for the search. string search_args = 2; + // Whether to show all available versions. `false` causes only the newest + // versions of the cores to be listed in the search results. bool all_versions = 3; } message PlatformSearchResp { + // Results of the search. repeated Platform search_output = 1; } message PlatformListReq { + // Arduino Core Service instance from the `Init` response. Instance instance = 1; + // Set to true to only list platforms which have a newer version available + // than the one currently installed. bool updatable_only = 2; } message PlatformListResp { + // The installed platforms. repeated Platform installed_platform = 1; } message Platform { + // Platform ID (e.g., `arduino:avr`). string ID = 1; + // Version of the platform. string Installed = 2; + // Newest available version of the platform. string Latest = 3; + // Name used to identify the platform to humans (e.g., "Arduino AVR Boards"). string Name = 4; + // Maintainer of the platform's package. string Maintainer = 5; + // A URL provided by the author of the platform's package, intended to point + // to their website. string Website = 6; + // Email of the maintainer of the platform's package. string Email = 7; + // List of boards provided by the platform. If the platform is installed, + // this is the boards listed in the platform's boards.txt. If the platform is + // not installed, this is an arbitrary list of board names provided by the + // platform author for display and may not match boards.txt. repeated Board Boards = 8; } message Board { + // Name used to identify the board to humans. string name = 1; + // Fully qualified board name used to identify the board to machines. The FQBN + // is only available for installed boards. string fqbn = 2; } \ No newline at end of file