如何使用ALConnectionManager将NAO Robot连接到wifi,而不使用网页

时间:2015-05-13 10:31:41

标签: python nao-robot

我想通过ALConnectionManager将我的NAO机器人连接到新的wifi网络,因此我不必使用该网页。使用python API比点击网页更好......

1 个答案:

答案 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) )