@@ -90,6 +90,17 @@ func apiByVidPid(vid, pid string) ([]*rpc.BoardListItem, error) {
9090 return retVal , nil
9191}
9292
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+
93104// List FIXMEDOC
94105func List (instanceID int32 ) ([]* rpc.DetectedPort , error ) {
95106 m .Lock ()
@@ -119,13 +130,9 @@ func List(instanceID int32) ([]*rpc.DetectedPort, error) {
119130 }
120131
121132 // 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
123134 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 )
129136 if err == ErrNotFound {
130137 // the board couldn't be detected, print a warning
131138 logrus .Debug ("Board not recognized" )
0 commit comments