最終更新:ID:D6FCvle4DQ 2016年12月09日(金) 17:13:12履歴
NAOqi Core - 概要 | API | NetworkInfo | NetworkInfo-IPInfo
ALConnectionMagagerはネットワーク接続のメソッドを提供します。
ネットワークの設定及び接続だけでなくネットワークプロパティの取得やネットワークの作成もサポートします。
ALConnectionManagerはイーサネット、Wi-Fi、Bluetoothのような技術もサポートしています。
主な特徴は
利用可能なネットワークの一覧表示
ネットワークへの接続
Wi-Fi,Bluetoothに対応したネットワークの作成
利用可能なネットワーク技術の一覧表示
ネットワークの設定
Wi-Fiの強度や状態、セキュリティ要件などの異なったネットワークに関する情報の取得
イベントを通してネットワーク接続の変更の通知
ALConnectionManagerはネットワークの情報取得と接続のためにOSSのConnManをベースにしています。
Aldebaran RoboticsはConnmanプロジェクトのコントリビュータで、ConnManのソースはhttps://github.com/aldebaranにあります。
公式のものとは一部パッチが異なる程度で、できるだけ差異を減らすようにしています。
Wi-FiはWPA Supplicant
BluetoothはBlueZによるものです。
制限
ALConnectionManagerはロボット場でのみ使用可能です。
ALConnectionManagerは現在WPAエンタープライズはサポートしていません。
テザリングモードを使用しているときはWi-Fiサービスの一覧は取得できません。
ALConnectionManagerはBlueToothはサポートしていません。
テザリングモードは、ロボットをアクセスポイントにしますが、インターネットへの接続も保持します。
もしロボットが企業のネットワーク環境に接続された場合、ネットワークセキュリティに互換性があることを確認する必要があります。
ALConnectionManagerを使うために必要な情報。
ConnectionManagerからのサービスオブジェクトはNetworkInfoとなります。
ネットワーク接続のグローバルステートの取得
---
#! /usr/bin/env python # -*- encoding: UTF-8 -*- """Example: Use state Method""" import qi import argparse import sys def main(session): """ この例はステートメソッドを使います。 """ # ALConnectionManagerサービスの取得。 con_mng_service = session.service("ALConnectionManager") # ネットワークの状態取得。 print "Network state: " + con_mng_service.state() if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument("--ip", type=str, default="127.0.0.1", help="Robot IP address. On robot or Local Naoqi: use '127.0.0.1'.") parser.add_argument("--port", type=int, default=9559, help="Naoqi port number") args = parser.parse_args() session = qi.Session() try: session.connect("tcp://" + args.ip + ":" + str(args.port)) except RuntimeError: print ("Can't connect to Naoqi at ip \"" + args.ip + "\" on port " + str(args.port) +".\n" "Please check your script arguments. Run with -h option for help.") sys.exit(1) main(session)
ネットワークサービスリストの取得
#! /usr/bin/env python # -*- encoding: UTF-8 -*- """スキャンとサービスメソッドの利用例""" import qi import argparse import sys def main(session): """ この例ではスキャンとサービスメソッドを使用します。 """ #**ALConnectionManagerサービスの取得 con_mng_service = session.service("ALConnectionManager") #スキャンのためのサービスリストのアップデート con_mng_service.scan() services = con_mng_service.services() for service in services: network = dict(service) if network["Name"] == "": print "{hidden} " + network["ServiceId"] else: print network["Name"] + " " + network["ServiceId"] if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument("--ip", type=str, default="127.0.0.1", help="Robot IP address. On robot or Local Naoqi: use '127.0.0.1'.") parser.add_argument("--port", type=int, default=9559, help="Naoqi port number") args = parser.parse_args() session = qi.Session() try: session.connect("tcp://" + args.ip + ":" + str(args.port)) except RuntimeError: print ("Can't connect to Naoqi at ip \"" + args.ip + "\" on port " + str(args.port) +".\n" "Please check your script arguments. Run with -h option for help.") sys.exit(1) main(session)
コメントをかく