最終更新: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)

コメントをかく