我想通过ALConnectionManager将我的NAO机器人连接到新的wifi网络,因此我不必使用该网页。使用python API比点击网页更好......
答案 0 :(得分:1)
所以这就是我发现的方式,而不是完全智能,但它在2.x.x版本上运行良好......
def connect(strSsid, strPassword):
print( "INF: trying to connect to '%s', with some password..." % (strSsid) )
self.cm = naoqi.ALProxy( "ALConnectionManager")
self.cm.scan();
aS = self.cm.services();
bFound = False;
for s in aS:
print( "\nService: %s" % s )
strServiceID = None;
for attr in s:
attrName, attrValue = attr;
if( attrName == "ServiceId" ):
strServiceID = attrValue;
if( attrName == "Name" and attrValue == strSsid ): # ASSUME, serviceID always set before Name
assert( strServiceID != None );
print( "INF: Good found the right wifi, ServiceID: '%s'\n" % strServiceID )
bFound = True;
break;
if( bFound ):
break;
# for each services - end
if( bFound ):
# real connection
aServiceInput = [];
aServiceInput.append( ["ServiceId", strServiceID ] );
aServiceInput.append( ["Passphrase", strPassword ] );
aServiceInput.append( ["PrivateKeyPassphrase", strPassword ] ); # don't know wich one is usefull!
# aServiceInput.append( ["Favorite", True ] ); # not working
print( "DBG: ServiceInput: %s" % aServiceInput )
retVal = self.cm.setServiceInput( aServiceInput );
print( "DBG: setServiceInput return: %s" % str(retVal) )
retVal = self.cm.connect( strServiceID );
print( "DBG: connect return: %s" % str(retVal) )