@@ -90,6 +90,17 @@ func apiByVidPid(vid, pid string) ([]*rpc.BoardListItem, error) {
90
90
return retVal , nil
91
91
}
92
92
93
+ func identifyViaCloudAPI (port * commands.BoardPort ) ([]* rpc.BoardListItem , error ) {
94
+ // If the port is not USB do not try identification via cloud
95
+ id := port .IdentificationPrefs
96
+ if ! id .ContainsKey ("vid" ) || ! id .ContainsKey ("pid" ) {
97
+ return nil , ErrNotFound
98
+ }
99
+
100
+ logrus .Debug ("Querying builder API for board identification..." )
101
+ return apiByVidPid (id .Get ("vid" ), id .Get ("pid" ))
102
+ }
103
+
93
104
// List FIXMEDOC
94
105
func List (instanceID int32 ) ([]* rpc.DetectedPort , error ) {
95
106
m .Lock ()
@@ -119,13 +130,9 @@ func List(instanceID int32) ([]*rpc.DetectedPort, error) {
119
130
}
120
131
121
132
// if installed cores didn't recognize the board, try querying
122
- // the builder API
133
+ // the builder API if the board is a USB device port
123
134
if len (b ) == 0 {
124
- logrus .Debug ("Querying builder API for board identification..." )
125
- items , err := apiByVidPid (
126
- port .IdentificationPrefs .Get ("vid" ),
127
- port .IdentificationPrefs .Get ("pid" ),
128
- )
135
+ items , err := identifyViaCloudAPI (port )
129
136
if err == ErrNotFound {
130
137
// the board couldn't be detected, print a warning
131
138
logrus .Debug ("Board not recognized" )
0 commit comments