JP2018007164A - 情報処理装置、情報処理方法、情報処理システム、および、制御プログラム - Google Patents

情報処理装置、情報処理方法、情報処理システム、および、制御プログラム Download PDF

Info

Publication number
JP2018007164A
JP2018007164A JP2016134813A JP2016134813A JP2018007164A JP 2018007164 A JP2018007164 A JP 2018007164A JP 2016134813 A JP2016134813 A JP 2016134813A JP 2016134813 A JP2016134813 A JP 2016134813A JP 2018007164 A JP2018007164 A JP 2018007164A
Authority
JP
Japan
Prior art keywords
packet
transmitted
information
unit
information processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016134813A
Other languages
English (en)
Other versions
JP6845628B2 (ja
Inventor
良久 近藤
Yoshihisa Kondo
良久 近藤
俊平 安田
Shunpei Yasuda
俊平 安田
敏貴 大泉
Toshitaka Oizumi
敏貴 大泉
浩一 河本
Koichi Kawamoto
浩一 河本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2016134813A priority Critical patent/JP6845628B2/ja
Priority to EP17179965.3A priority patent/EP3266506B1/en
Priority to US15/642,567 priority patent/US10484292B2/en
Publication of JP2018007164A publication Critical patent/JP2018007164A/ja
Priority to US16/654,417 priority patent/US11178061B2/en
Application granted granted Critical
Publication of JP6845628B2 publication Critical patent/JP6845628B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1874Buffer management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1887Scheduling and prioritising arrangements

Abstract

【課題】他の装置との間で無線にてパケットを同期通信で送受信または送信する構成において、データの種類に応じて、より柔軟な伝送形態を実現できる構成を提供する。
【解決手段】情報処理装置は、他の装置との間で無線にてパケットを同期通信で送受信する通信部と、通信部が送信したパケットが他の装置で受信された否かを判断する判断部と、先に送信したパケットが他の装置で受信されたことが判断部にて確認できない場合に、当該先に送信したパケットの内容に基づいて、当該先に送信したパケットを再度送信する再送処理と、当該先に送信したパケットではなく別のパケットを送信する非再送処理とを、選択する選択部とを含む。
【選択図】図11

Description

本技術は、他の装置との間で無線にてパケットを同期通信で受信または受信する情報処理装置、その装置で実行される情報処理方法、その装置を含む情報処理システム、および、その装置で実行される制御プログラムに関する。
無線にてデータを遣り取りする場合には、データの消失(ロスト)などが発生することを想定して、同一のデータを再送できる機能が実装されることが一般的である。例えば、特開2004−165920号公報(特許文献1)は、Bluetooth(登録商標)通信等のスター型ネットワーク無線通信において、通信状態に応じて最適な同期パケットタイプを判断し、同期通信伝送を良好に維持させる構成を開示する。特開2004−165920号公報(特許文献1)は、Bluetooth通信規格には送信データ容量とデータ保護強度の異なる3種類の同期通信用パケットタイプHV1、HV2、HV3が定義されていることを開示する。
特開2004−165920号公報
上述したような同期通信は、データを確実に送信するという意味においては有効であるが、再送処理が繰り返されると、送信先に当該データが到達するまでに遅延が発生する。データの用途によっては、確実に伝送されることではなく、可能な限り新しいデータが伝送されることが要望されることもある。上述した背景技術においては、このような要望に対して十分に応えることができない。
本技術は、他の装置との間で無線にてパケットを同期通信で受信または受信する構成において、データの種類に応じて、より柔軟な伝送形態を実現できる構成を提供する。
ある実施の形態に従う情報処理装置は、他の装置との間で無線にてパケットを同期通信で送受信する通信部と、通信部が送信したパケットが他の装置で受信された否かを判断する判断部と、先に送信したパケットが他の装置で受信されたことが判断部にて確認できない場合に、当該先に送信したパケットの内容に基づいて、当該先に送信したパケットを再度送信する再送処理と、当該先に送信したパケットではなく別のパケットを送信する非再送処理とを、選択する選択部とを含む。
通信部が送信するパケットは、パケットの送信毎にまたはパケットの受信毎に、所定規則に従ってその値が変更される第1のシーケンス情報を含んでいてもよい。判断部は、第1のシーケンス情報に基づいて、通信部が送信したパケットが他の装置で受信された否かを判断してもよい。通信部は、再送処理および非再送処理のいずれにおいても、所定規則に従って値を変更した第1のシーケンス情報を送信するパケットに付与してもよい。
情報処理装置は、送信すべき1または複数のパケットに含ませるデータを格納するバッファメモリをさらに含んでいてもよい。選択部は、非再送処理において、第1のシーケンス情報に依存することなく、バッファメモリに格納されている先に送信したパケットに対応するデータを削除してもよい。
通信部が送信するパケットは、送信されるべきデータが生成される毎にその値がインクリメントされる第2のシーケンス情報を含んでいてもよい。
通信部が送信するパケットは、データ送信毎にその値がインクリメントされる第2のシーケンス情報を含んでいてもよい。
第2のシーケンス情報は、第1のシーケンス情報より長いデータ長を有していてもよい。
第1のシーケンス情報は、個々のパケットが送信先に到達したか否かの判断に使用されてもよい。第2のシーケンス情報は、送信先のアプリケーションで必要なデータのすべてが受信されたか否かの判断に使用されてもよい。
通信部が送信するパケットは、当該パケットが再送処理に従って送信されたものであるか、または、当該パケットが非再送処理に従って送信されたものであるかを示す情報を含んでいてもよい。
通信部は、情報処理装置が非再送処理に対応していることを示す情報を送信してもよい。
情報処理装置は、ユーザ操作を受け付ける操作部をさらに含んでいてもよい。通信部は、操作部に対するユーザ操作の内容を示す情報をパケットに含めてもよい。
情報処理装置は、情報処理装置の姿勢および動きの少なくとも一方を検知する検知部をさらに含んでいてもよい。通信部は、検知部により検知された結果を示す情報をパケットに含めてもよい。
選択部は、操作部および検知部の少なくとも一方に対するキャリブレーションに係る情報を含むパケットについては、非再送処理を禁止してもよい。
通信部は、周波数ホッピング方式に従って、複数の通信チャネルのうち使用する通信チャネルを所定のタイミングで切り替えてパケットを送受信してもよい。
情報処理装置は、他の装置にインストールされるプログラムを一時的に保持する記憶部をさらに含んでいてもよい。選択部は、他の装置にインストールされるプログラムの全部または一部を含むパケットについては、非再送処理を禁止してもよい。
情報処理装置は、選択部において非再送処理が選択されている場合に、先に送信したパケットが他の装置で受信されたことが確認できないときに、当該先に送信したパケットに含まれるユーザ操作の内容を示す情報と、次のパケットの送信前に取得された操作部に対するユーザ操作の内容を示す情報とに基づく情報を、当該次のパケットに含める制御部をさらに含んでいてもよい。
制御部は、他の装置で受信されたことが確認できない1または複数のパケットに含まれるユーザ操作の内容を示す情報と、現時点で取得されたユーザ操作の内容を示す情報とを結合して、当該次のパケットに含めてもよい。
制御部は、直近に送信したパケットが他の装置で受信されたことが確認できない場合に、当該直近に送信したパケットに含まれるユーザ操作の内容を示す情報と、現時点で取得されたユーザ操作の内容を示す情報とを結合して、次のパケットに含めてもよい。
ある実施の形態に従う情報処理方法は、他の装置との間で無線にてパケットを同期通信で送受信するステップと、送信したパケットが他の装置で受信された否かを判断するステップと、先に送信したパケットが他の装置で受信されたことが確認できない場合に、当該先に送信したパケットの内容に基づいて、当該先に送信したパケットを再度送信する再送処理と、当該先に送信したパケットではなく別のパケットを送信する非再送処理とを、選択するステップとを含む。
ある実施の形態に従う情報処理システムは、制御プログラムを実行する制御部と、他の装置との間で無線にてパケットを同期通信で送受信する通信部とを含む。制御部は、通信部が送信したパケットが他の装置で受信された否かを判断する判断部と、先に送信したパケットが他の装置で受信されたことが判断部にて確認できない場合に、当該先に送信したパケットの内容に基づいて、当該先に送信したパケットを再度送信する再送処理と、当該先に送信したパケットではなく別のパケットを送信する非再送処理とを、選択する選択部とを含む。
ある実施の形態に従う制御プログラムは、他の装置との間で無線にてパケットを同期通信で送受信する通信部を有するコンピュータで実行される。制御プログラムはコンピュータに、通信部が送信したパケットが他の装置で受信された否かを判断するステップと、先に送信したパケットが他の装置で受信されたことが確認できない場合に、当該先に送信したパケットの内容に基づいて、当該先に送信したパケットを再度送信する再送処理と、当該先に送信したパケットではなく別のパケットを送信する非再送処理とを、選択するステップとを実行させる。
ある実施の形態に従う情報処理装置は、ユーザ操作を受け付ける操作部と、他の装置に対して、無線にて、操作部に対するユーザ操作の内容を示す情報を含むパケットを同期通信で送信する通信部と、通信部が送信したパケットが他の装置で受信された否かを判断する判断部と、先に送信したパケットが他の装置で受信されたことが判断部にて確認できない場合に、当該先に送信したパケットに含まれるユーザ操作の内容を示す情報と、次のパケットの送信前に取得された操作部に対するユーザ操作の内容を示す情報とに基づく情報を、当該次のパケットに含める制御部とを含む。
制御部は、他の装置で受信されたことが確認できない1または複数のパケットに含まれるユーザ操作の内容を示す情報と、現時点で取得されたユーザ操作の内容を示す情報とを結合して、当該次のパケットに含めてもよい。
制御部は、直近に送信したパケットが他の装置で受信されたことが確認できない場合に、当該直近に送信したパケットに含まれるユーザ操作の内容を示す情報と、現時点で取得されたユーザ操作の内容を示す情報とを結合して、次のパケットに含めてもよい。
判断部は、他の装置からの受信応答に基づいて、他の装置で受信された否かを判断してもよい。
情報処理装置は、情報処理装置の姿勢および動きの少なくとも一方を検知する検知部をさらに含んでいてもよい。通信部は、検知部により検知された結果を示す情報をパケットに含めてもよい。
ある実施の形態に従う情報処理方法は、ユーザ操作を受け付けるステップと、他の装置に対して、無線にて、操作部に対するユーザ操作の内容を示す情報を含むパケットを同期通信で送信するステップと、送信したパケットが他の装置で受信された否かを判断するステップと、先に送信したパケットが他の装置で受信されたことが確認できない場合に、当該先に送信したパケットに含まれるユーザ操作の内容を示す情報と、次のパケットの送信前に取得された操作部に対するユーザ操作の内容を示す情報とに基づく情報を、当該次のパケットに含めるステップとを含む。
ある実施の形態に従う情報処理システムは、制御プログラムを実行する制御部と、他の装置に対して、無線にて、操作部に対するユーザ操作の内容を示す情報を含むパケットを同期通信で送信する通信部とを含む。制御部は、通信部が送信したパケットが他の装置で受信された否かを判断する判断部と、先に送信したパケットが他の装置で受信されたことが判断部にて確認できない場合に、当該先に送信したパケットに含まれるユーザ操作の内容を示す情報と、次のパケットの送信前に取得された操作部に対するユーザ操作の内容を示す情報とに基づく情報を、当該次のパケットに含める制御部とを含む。
ある実施の形態に従う制御プログラムは、他の装置に対して、無線にてパケットを同期通信で送信する通信部を有するコンピュータで実行される。制御プログラムはコンピュータに、ユーザ操作を受け付けるステップと、他の装置との間で無線にて、操作部に対するユーザ操作の内容を示す情報を含むパケットを同期通信で送受信するステップと、通信部が送信したパケットが他の装置で受信された否かを判断するステップと、先に送信したパケットが他の装置で受信されたことが確認できない場合に、当該先に送信したパケットに含まれるユーザ操作の内容を示す情報と、次のパケットの送信前に取得された操作部に対するユーザ操作の内容を示す情報とに基づく情報を、当該次のパケットに含めるステップとを実行させる。
本技術によれば、他の装置との間で無線にてパケットを同期通信で受信または受信する構成において、データの種類に応じて、より柔軟な伝送形態を実現できる。
本実施の形態に従う情報処理システムの概要を説明するための図である。 図1に示す情報処理装置(操作端末)のハードウェア構成の一例を示す模式図である。 図1に示す情報処理装置(処理本体部)のハードウェア構成の一例を示す模式図である。 本実施の形態に従う情報処理システムにおける同期通信に係る再送処理のシーケンスを示す図である。 図4に示す再送処理においてタイムアウトについての設定をゼロにした場合のシーケンスを示す図である。 本実施の形態に従う情報処理システムにおける同期通信に係る非再送処理のシーケンスを示す図である。 本実施の形態に従う情報処理システムにおいて送受信されるパケットのフォーマット300の一例を示す模式図である。 図7に示すフォーマットのリポートID部に格納されるリポートIDの一例を示す図である。 図1に示す情報処理装置(操作端末)の機能的構成の一例を示す模式図である。 図1に示す情報処理装置(操作端末)における処理手順の一例を示すフローチャートである。 図1に示す情報処理装置(操作端末)における処理手順の一例を示すフローチャートである。 本実施の形態に従う情報処理システムにおける送信データに対する補償処理の一例を説明するための模式図である。
本実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
[A.装置構成]
まず、本実施の形態に従う情報処理システムに係る装置構成について説明する。
(a1:情報処理システム)
図1は、本実施の形態に従う情報処理システム1の概要を説明するための図である。図1を参照して、情報処理システム1は、無線通信により互いに情報を遣り取り可能な複数の情報処理装置100A,100B,200を含む。本実施の形態に従う情報処理システムは、どのようなアプリケーションにも適用できるが、図1には、典型例として、ゲームシステムとして実装した構成例を示す。図1に示す例においては、情報処理装置200は、ゲームアプリケーションを実行する処理本体部に相当し、情報処理装置100Aおよび100B(以下、「情報処理装置100」とも総称する。)は、処理本体部に対して、ユーザ操作を送信する操作端末に相当する。
以下では、説明の便宜上、処理本体部である情報処理装置200と操作コントローラである情報処理装置100との間で通信手順などに着目する。但し、操作コントローラである情報処理装置100Aと情報処理装置100Bとの間で情報を遣り取りするような場合にも応用できるし、さらに別の装置との間で情報を遣り取りするような場合にも応用できる。
図1に示すようなゲームシステムに限らず、例えば、スマートフォンやタブレットなどの携帯デバイスによる各種の無線通信にも応用できる。
情報処理システム1において、各情報処理装置は、他の情報処理装置との間で無線にてパケットを同期通信で受信または受信する。典型的には、同期通信は、IEEE(Institute of Electrical and Electronic Engineers)802.15規格に従うBluetoothや、IEEE802.11規格に従う無線LAN(Local Area Network)などのフレームワーク上で実現されてもよい。
(a2:操作端末)
図2は、図1に示す情報処理装置100(操作端末)のハードウェア構成の一例を示す模式図である。情報処理装置100は、情報処理装置200との間で無線にてパケットを同期通信で受信または受信する機能を有していれば、どのような実装形態であってもよい。一例として、情報処理装置100は、制御部110と、無線通信部120と、操作部102と、インジケータ104と、音声出力部106と、加速度センサ130と、ジャイロセンサ132とを含む。
制御部110は、情報処理装置100における処理全体を制御する主体であり、その主要なコンポーネントとして、CPU(Central Processing Unit)112と、メインメモリ114と、制御プログラム118を格納したフラッシュメモリ116とを含む。プロセッサの一例であるCPU112は、フラッシュメモリ116に格納された制御プログラム118をメインメモリ114に読み出して実行することで、後述するような各種制御を実現する。
制御部110は、上述したコンポーネントを含むシステムLSI(Large Scale Integration)として実装してもよい。
無線通信部120は、他の装置との間で無線にてパケットを同期通信で受信または受信する通信部に相当する。無線通信部120は、制御部110からの指令に従って他の装置との間で無線信号を遣り取りするとともに、他の装置から受信したデータを制御部110へ出力する。制御部110は、主要なコンポーネントとして、無線モジュール122と、無線コントローラ124と、バッファメモリ128とを含む。
無線モジュール122は、高周波発生回路、変調回路、復調回路、符号化回路などを含む。無線モジュール122は、実装される通信方式に応じて、周波数や変調方式を実現できるように実装すればよい。例えば、Bluetooth方式を採用した場合には、無線モジュール122は、バーストノイズなどの影響を低減するために、周波数ホッピング方式に従って、複数の通信チャネルのうち使用する通信チャネルを所定のタイミングで切り替えてパケットを送受信するようにしてもよい。
無線コントローラ124は、内蔵する制御プログラムであるファームウェア126に従って、無線モジュール122での無線信号の送受信を制御する。バッファメモリ128は、無線モジュール122から送出されるデータ(パケット)および無線モジュール122にて受信されたデータ(パケット)を一時的に格納する。バッファメモリ128は、典型的には、FIFO(First-In First-Out)メモリなどを用いて実装され、バッファメモリ128との間のデータの書込みおよび読出しについては、無線コントローラ124および制御部110によって制御される。バッファメモリ128を無線通信部120内ではなく、制御部110内に配置してもよいし、制御部110および無線通信部120以外の部位に配置してもよい。
操作部102は、ユーザ操作を受け付け、そのユーザ操作の内容を示す情報を制御部110へ出力する。典型的には、操作部102は、押ボタン、操作レバー、タッチパネル、マウスなどを含む。あるいは、操作部102としては、情報処理装置100とは別体の、有線または無線で接続されるコントローラを含むようにしてもよい。
インジケータ104は、情報処理装置100の表面に露出して配置され、制御部110からの指令に従って、ユーザに対して視覚的な態様で通知を行なう。典型的には、インジケータ104は、LED(Light Emitting Diode)などを含む。
音声出力部106は、情報処理装置100の表面に部分的に露出して配置され、制御部110からの指令に従って、ユーザに対して聴覚的な態様で通知を行なう。典型的には、音声出力部106は、1または複数のスピーカなどを含む。
加速度センサ130は、情報処理装置100に生じる加速度を検知し、その検知結果を制御部110へ出力する。ジャイロセンサ132は、情報処理装置100の傾きなどを検知し、その検知結果を制御部110へ出力する。加速度センサ130およびジャイロセンサ132の少なくとも一方もしくは両方を用いて、情報処理装置100の姿勢および動きの少なくとも一方を検知することができる。
(a3:処理本体部)
図3は、図1に示す情報処理装置200(処理本体部)のハードウェア構成の一例を示す模式図である。情報処理装置200は、コンピュータの一種であり、主要なコンポーネントとして、制御部210と、無線通信部220と、ネットワーク通信モジュール230と、フラッシュメモリ232と、外部メインメモリ234と、映像音声出力ドライバ236と、ディスクドライブ238とを含む。
制御部110は、情報処理装置200における処理全体を制御する主体であり、その主要なコンポーネントとして、CPU212と、メインメモリ214と、GPU(Graphical Processing Unit)216と、VRAM(Video Random Access Memory)218とを含む。CPU212は、基本システムプログラムやアプリケーションなどを実行する。メインメモリ214は、CPU212でのプログラム実行に必要な一時データを保持するワーキングメモリとして機能する。GPU216は、主として表示に係る処理を実行する。VRAM218は、GPU216での処理によって生成された画像を表示するためのワーキングメモリとして機能する。
制御部210は、上述したコンポーネントを含むシステムLSI(Large Scale Integration)として実装してもよい。
無線通信部220は、他の装置との間で無線にてパケットを同期通信で受信または受信する通信部に相当する。無線通信部220は、制御部210からの指令に従って他の装置との間で無線信号を遣り取りするとともに、他の装置から受信したデータを制御部210へ出力する。制御部210は、基本的には、図2に示す無線通信部220と同様のハードウェア構成を有していてもよい。すなわち、無線通信部220は、主要なコンポーネントとして、無線モジュール222と、ファームウェア226を内蔵する無線コントローラ224と、バッファメモリ228とを含む。
ネットワーク通信モジュール230は、アクセスポイントなどの装置と無線通信するための各種回路を含む。ネットワーク通信モジュール230は、例えば、IEEE802.11規格に従う無線LAN(Local Area Network)、赤外線通信、LTE(Long Term Evolution)などに従うモバイル通信、などを用いて実装されてもよい。
無線通信部220およびネットワーク通信モジュール230については、いずれも無線通信するための回路を含むため、これらを同一のチップ内に実装するようにしてもよい。
フラッシュメモリ232は、制御部210からアクセス可能になっており、基本システムプログラムやアプリケーションなどを不揮発的に保持する。例えば、フラッシュメモリ232は、各種のアプリケーション233を格納していてもよい。アプリケーション233は、ディスクドライブ238によって光学記録媒体208から読み出されて、インストールされる。
外部メインメモリ234は、制御部210内のメインメモリ214と連携してワーキングメモリとして機能してもよい。
映像音声出力ドライバ236は、制御部210から出力される映像信号および音声信号を表示装置204(図1参照)へ出力する。
[B.通信手順]
次に、本実施の形態に従う情報処理システム1における無線通信に係る手順について説明する。図1に示す情報処理システム1において、情報処理装置間では、パケットが同期通信で受信または受信される。まず、同期通信の概要について説明するとともに、同期通信において、パケットまたは受信応答(ACKnowledge:以下「ACK」とも記す。)が何らかの理由で受信側へ到達しなかった場合、すなわちデータがロストした場合の処理について説明する。
本明細書において、「同期通信」とは、送信側と受信側との間で、データを送信する毎に当該データが受信側へ届いていることを確認しつつデータを順次送信する方式を意味する。典型的な処理手順としては、送信側からある受信側へデータを送信した後に、当該受信側が当該データを受信すると、当該データを受信したことを示す受信応答(ACK)を送信側へ返信する。所定時間内に受信側からのACKを送信側が受信した場合、すなわち先に送信したデータが受信側で受信されたことを確認できた場合に限って、送信側は、次のデータを送信する。一方、送信側が所定時間内に受信側からのACKを受信できなかった場合は、先に送信したデータが受信側で受信されたことを確認できないので、何らかの理由でデータが消失(ロスト)したものとみなし、先に送信したデータを再度送信することになる。つまり、送信側の情報処理装置は、受信側の情報処理装置からの受信応答に基づいて、当該受信側でパケットが受信された否かを判断することになる。
「同期通信」は、このような送信側から受信側への伝送が成功したことを確認しながら、データを順次送信する方式であり、送信側と受信側との間でデータおよび受信応答(ACK)の相互の送信が繰り返されることになる。なお、このような同期通信を行なう場合には、送信側と受信側との間でタイミングを同期させて、所定時間間隔のタイムスロットで送受信の周期を管理するようにしてもよい。
本実施の形態に従う同期通信に係る再送処理の概要について先に説明する。以下の説明では、典型例として、Bluetooth方式を採用した場合のシーケンス例について説明するが、他の通信方式を採用した場合も同様に適用可能である。Bluetooth方式においては、マスタとスレーブとの区分が存在し、基本的な通信手順として、マスタが先にポーリングしてから、スレーブが応答する。
図4は、本実施の形態に従う情報処理システム1における同期通信に係る再送処理のシーケンスを示す図である。
図4(A)には、データのロストがない場合の同期通信に係るシーケンスを示す。図4(A)を参照して、周期T1において、送信側がパケット1を受信側へ送信する。送信側から受信側へ送信されるパケットは、そのヘッダ部などに、パケットを識別するための情報としてシーケンス情報を含む。
Bluetooth方式においては、シーケンス情報として、1ビット分のシーケンスビット(SB)が割り当てられており、このシーケンスビットの値を随時変化させることで、同期通信およびパケットのロストなどを検知する。つまり、シーケンスビットは、パケットの送信毎にまたはパケットの受信毎に、所定規則に従ってその値が変更されるシーケンス情報であり、無線通信部120から送信されるパケットに含まれる。つまり、シーケンス情報は、同期通信毎に変更される。そして、このシーケンス情報に基づいて、パケットのロストがあったか否かが判断される。
例えば、パケット1については、シーケンス情報として「1」(シーケンスビットがオン)が付与されているとする。送信側からのパケット1が受信側へ到達すると、受信側からは、受信応答(ACK)が返信される。このACKは、受信したパケット1に対応するシーケンス情報として「1」を含むことになる。このACKが送信側へ到達すると、送信側は、先に送信したパケット1が受信側で受信されたことを確認できるので、次の周期T2において、送信側は、パケット1とは異なるパケット2を受信側へ送信する。このとき、シーケンス情報として「0」(シーケンスビットがオフ)が付与される。
以下、同様に、送信側から受信側へのパケットの送信と、当該パケットを受信したことを示すACKの受信側から送信側への送信が繰り返される。このとき、同一のパケットに対しては同一のシーケンス情報が付与され、異なるパケットに対しては、所定規則に従って更新されたシーケンス情報が付与される。なお、上述の説明では、1ビット分がシーケンスビットとして割り当てられる例を示しており、この場合には、「0」と「1」の2値が順次インクリメントされることで、実質的に、「0」と「1」とが交互に付与されることになる。より多くのビットを割り当てられる場合には、その割り当てられたビットが保持できる値の範囲で順次インクリメントされることになる。
説明の便宜上、図4においては、一方の情報処理装置を送信側とし、他方の情報処理装置を受信側としているが、基本的には、データの送受信は双方向で行なわれるので、いずれの情報処理装置も受信側および送信側になり得る。すなわち、図4に示す受信側および送信側は、ある局面での役割を示すに過ぎず、Bluetooth方式におけるマスタおよびスレーブとは関連しない。すなわち、マスタが受信側および送信側のいずれにもなり得る。
例えば、受信側がマスタであり、送信側がスレーブである場合を考えると、以下のような手順で通信が実行される。
(1)マスタからのポーリング(図4(A)には図示していない)
(2)ポーリング直後にスレーブがパケット1を送信する(このときのシーケンス情報は「1」)
(3)所定のインターバル(Sniff Interval)経過後に、マスタが再びポーリングを実施(このポーリングがACKを兼ねる)(このときのシーケンス情報は「1」)
(4)ポーリング直後にスレーブがパケット1を送信する(このときのシーケンス情報は「0」)
以下、同様の手順が繰り返される。
次に、送信されたデータがロストした場合に実行される再送処理について説明する。
図4(B)には、送信側からのパケットがロストした場合の再送処理に係るシーケンスを示す。図4(B)を参照して、周期T1および周期T2においては、送信側から受信側へのパケット1およびパケット2の送信がそれぞれ成功したが、周期T3において、送信側から受信側へのパケット3の送信が失敗したとする。すなわち、送信側から受信側へパケット3が伝送される過程において、パケット3がロストした場合を示す。
この場合、受信側ではパケットを受信できないので、ACKを実質的に返信するができない。すなわち、受信側がマスタとして機能する場合には、ACKを送信することができず、受信側がスレーブとして機能する場合には、ACKを応答できるものの、シーケンス情報をインクリメントできないので、有効なACKとはならず、実質的にNACKを応答したのと同等になる。
そして、送信側では、周期T3内にパケット3に対するACKが受信されない、あるいは、有効なACKを受信できないので、先に送信したパケット3が受信側で受信されたことが確認できないと判断して、次の周期T4において、先に送信したパケット3と同じパケット3を受信側へ再送する。この再送されるパケット3に付与されるシーケンス情報は、先に送信したパケットに付与されるシーケンス情報(すなわち、「1」)と同じである。図4(B)に示す例では、周期T4においてもパケット3がロストした場合を示しており、この結果、周期T5においてもパケット3が送信側から受信側へ送信されることになる。すなわち、図4(B)には、再送処理が2回実行される例を示す。この再送処理において送信されるパケットに付与されるシーケンス情報は、送信されるパケットが同一である限り変更されない。
図4(C)には、受信側からのACKがロストした場合の再送処理に係るシーケンスを示す。図4(C)を参照して、周期T1〜周期T3においては、送信側から受信側へのパケット1〜パケット3の送信がそれぞれ成功したが、周期T3において、受信側から送信側へのACKの送信が失敗したとする。すなわち、送信側から受信側へパケット3は伝送されたものの、そのパケット3の受信についてのACKがロストした場合を示す。
この場合にも上述の例と同様に、送信側では、周期T3内にパケット3に対するACKが受信されないので、先に送信したパケット3が受信側で受信されたことが確認できないと判断して、次の周期T4において、先に送信したパケット3と同じパケット3を受信側へ再送する。この再送されるパケット3に付与されるシーケンス情報は、先に送信したパケットに付与されるシーケンス情報(すなわち、「1」)と同じである。図4(B)に示す例と同様に、図4(C)においても、周期T4においてもパケット3がロストした場合を示しており、この結果、周期T5においてもパケット3が送信側から受信側へ送信されることになる。
なお、図4(B)および図4(C)に示すように、送信側からのパケットまたは受信側からのACKがロストし続けた場合には、次のパケットが送信できないことになる。そのため、一般的には、再送処理を繰り返す上限回数が予め設定されており、再送処理の実行回数がその上限回数または再送処理に要した時間が上限時間に到達すると、当該パケットについての再送処理は中止され、次のパケットが送信されるようにしてもよい。このような上限回数または上限時間をタイムアウトについての設定回数または設定時間と称することもある。この場合、送信できなかったパケットについては、所定時間が経過した後に、再度送信されるようにしてもよい。
図4(B)および図4(C)に示すような再送処理が実行されることで、送信側から受信側へのパケットの確実な伝送が保証されるが、再送処理に要する時間に応じた遅延が発生し得る。例えば、図4(A)に示すように、データのロストが発生しない場合には、受信側では、パケット3を周期T3において受信する。これに対して、図4(B)または図4(C)に示すように、データのロストが発生して再送処理が実行された結果、受信側がパケット3を受信するのは、周期T5になる。そして、その後に送信されるパケット4以降についても一律に遅延が生じる。
一方で、各パケットに含められるデータの種類によっては、このような遅延をもって送信されるより、最新のデータが要求される場合もある。つまり、パケットがロストした場合、または、パケットに対するACKがロストした場合、であっても、再送処理を行なうことなく、新たなデータを取得し、それを送信するような処理が必要な状況もあり得る。この場合、送信に失敗したパケットはそのまま破棄されることになる。
このような再送処理を行なわない方法として、タイムアウトについての設定回数または設定時間をゼロにすることも可能である。図5は、図4に示す再送処理においてタイムアウトについての設定をゼロにした場合のシーケンスを示す図である。
図5を参照して、周期T1および周期T2においては、送信側から受信側へのパケット1およびパケット2の送信がそれぞれ成功したが、周期T3において、送信側から受信側へのパケット3の送信が失敗したとする。すなわち、送信側から受信側へパケット3が伝送される過程において、パケット3がロストした場合を示す。
この場合、受信側ではパケットを受信できないので、ACKを返信することもできない。送信側では、周期T3内にパケット3に対するACKが受信されないので、先に送信したパケット3が受信側で受信されたことが確認できないと判断して、再送処理を中止して、新たなパケットを送信できるように、次の周期T4において、空のパケット(nullパケット)が受信側へ送信される。ここで、nullパケットを送信する通信のレイヤーよりも上流のレイヤー(例えば、アプリケーションのレイヤー)が本来のパケット4を下流レイヤーへ渡すが、通信のレイヤーでのnullパケットの送信と競合して、当該上流のレイヤーから渡されたパケット4を送信することができない。これにより、次の周期T5においては、パケット3に引き続くパケット4ではなく、その次のパケット5が送信される。つまり、パケット3がロストした場合に、パケット3に引き続くパケット4を送信することができず、パケット4についても実質的にロストしてしまうことになる。但し、通信のレイヤーでのnullパケットを送信する処理がないと仮定した場合には、図5の周期T4では、nullパケットの代わりに、パケット4が受信側へ送信されることになる。
一方、この送信されるnullパケットに付与されるシーケンス情報は、先に送信したパケットに付与されるシーケンス情報と同じく「1」に設定される。
本実施の形態に従う情報処理システム1を構成する情報処理装置は、再送処理を行なわない動作モードを選択可能に構成される。このような処理を、以下では「非再送処理」と称する。
本明細書において、「非再送処理」は、送信したパケットがロストした場合、または、送信したパケットに対するACKがロストした場合であっても、当該パケットを再送することなく、別のパケットを送信する処理を包含する。但し、図4に示す同期処理および同期処理で採用されている再送処理のシーケンスを変更することなく、再送処理および非再送処理を任意に選択できるようになっている。
以下、本実施の形態に従う非再送処理について説明する。図6は、本実施の形態に従う情報処理システム1における同期通信に係る非再送処理のシーケンスを示す図である。
図6(A)には、上述の図4(B)と同様に、周期T1および周期T2においては、送信側から受信側へのパケット1およびパケット2の送信がそれぞれ成功したが、周期T3において、送信側から受信側へのパケット3の送信が失敗した例を示す。
非再送処理においては、次の周期T4において、送信に失敗したパケット3が再送されることなく、新たなパケット4が送信側から受信側へ送信される。但し、受信側から見れば、周期T2においてパケット2(シーケンス情報は「0」)を受信しているが、周期T3において、次のシーケンス情報である「1」が付与されたパケットを受信していないので、シーケンス情報として「1」が付与されたパケットの到来を待っている状態である。
ここで、シーケンス情報として「0」を付与したパケット4を送信側から受信側へ送信すると、受信側では、予定しているシーケンス情報とは異なるシーケンス情報が付与されたパケットを受信することになり、受信したパケットを適切に処理することができない可能性がある。
本実施の形態に従う情報処理システム1においては、あるパケットの送信に失敗した後に送信するパケットには、先に送信したパケットに含まれるデータとは独立したデータを含ませる一方で、当該新たに送信するパケットには、通常の再送処理において使用されるシーケンス情報を付与する。受信側から見れば、通常の再送処理に従ってパケットが再送されてきたものと判断できるので、通常の再送処理と同様の処理を実行する。
図6(A)に示す例では、周期T3および周期T4において受信側から送信されたパケットがいずれもロストしているため、通常の再送処理の手順に従って、シーケンス情報は更新されず、そのまま維持される。一方で、周期T3および周期T4においてそれぞれ送信されるパケット3およびパケット4には、パケット2とは異なるデータが格納される。
図6(B)には、上述の図4(C)と同様に、周期T1〜周期T3においては、送信側から受信側へのパケット1〜パケット3の送信がそれぞれ成功したが、周期T3において、送信側から受信側へのパケット3の送信が失敗した例を示す。送信側から見れば、パケット3が受信側で受信されたことを確認できないので、図4(C)に示すような再送処理、または、図6(A)と同様の非再送処理を実行することになる。すなわち、次の周期T4において、送信側は、先に送信したパケット3に含まれるデータとは異なるデータを含むパケット4を受信側へ送信する。但し、パケット4に付与されるシーケンス情報は更新されず、パケット3に付与されていたシーケンス情報と同じシーケンス情報が付与される。
なお、図6(B)には、周期T4においても、送信側から受信側へのパケットの送信に失敗している。そのため、それに引き続く周期T5においても同様に、送信側は、先に送信したパケット4に含まれるデータとは異なるデータを含むパケット5を受信側へ送信する。但し、パケット5に付与されるシーケンス情報は更新されず、パケット3に付与されていたシーケンス情報と同じシーケンス情報が付与される。
図6(A)および図6(B)に示すように、送信したパケットがロストした場合、または、送信したパケットに対するACKがロストした場合においては、再送処理と同様のロジックに従ってシーケンス情報の値を決定する一方で、各パケットに格納するデータはそれぞれ異なったもの(典型的には、最新のデータ)とする。
図4および図6に示すように、本実施の形態に従う再送処理および非再送処理のいずれにおいても、シーケンスビット(シーケンス情報)の更新の方法は共通であり、受信応答(ACK)に応じた値に都度更新される。但し、非再送処理においては、パケットに格納されるデータ自体は、先に送信したポケットに格納されるデータ自体とは異なったものとされる。すなわち、無線通信部120は、再送処理および非再送処理のいずれにおいても、所定規則に従って値を変更したシーケンスビット(シーケンス情報)を、送信するパケットに付与する。
このような非再送処理ならびに再送処理と非再送処理との選択処理を採用することで、受信側での受信処理について新たなシーケンスなどを実装することなく、再送処理および非再送処理を、送信側で適宜切り替えることができる。例えば、処理本体部とその操作コントローラとの間で無線通信を行ないながら処理を進行する場合などに、通信環境の一時的な乱れなどにより、ロストしてしまったパケットを、次回以降の通信において再送する再送処理と、そのような再送を行なわない非再送処理とを選択することで、アプリケーションに適した通信を実現できる。すなわち、送信するデータの内容に応じて、より柔軟な伝送形態を実現できる。
[C.パケットフォーマット]
次に、本実施の形態に従う情報処理システム1において送受信されるパケットのフォーマットの一例について説明する。図7は、本実施の形態に従う情報処理システム1において送受信されるパケットのフォーマット300の一例を示す模式図である。
図7を参照して、パケットのフォーマット300は、パケットヘッダ部310およびユーザデータ部320とを含む。なお、図7に示すフォーマット300は一例であり、図7に示す部分以外にも、任意のデータを含めるようにしてもよい。
パケットヘッダ部310は、宛先の情報処理装置を特定するための識別情報(ハードウェア固有のアドレスなど)を格納するための宛先ID部312と、図4および図6において説明した各パケットを識別するためのシーケンス情報を格納するためのシーケンスビット314とを含む。
ユーザデータ部320は、パケットに格納して送信されるデータの実体部分であり、任意のデータ構造を採用できる。一例として、図7に示すフォーマット300においては、データヘッダ部322と、サンプリング番号部324と、リポートID部326と、データ本体部328とを含む。
データヘッダ部322は、各パケットを作成または利用するアプリケーションを特定する識別情報などを格納する。
サンプリング番号部324は、データ本体部328を識別するための識別情報として、サンプリング番号を格納する。パケット自体に付与されるシーケンス情報(シーケンスビット)とは別の、データ本体部328を特定できるように付与されるシーケンス情報である。典型的には、サンプリング番号は、データ本体部328の内容が順次作成されるに従って、インクリメントされる。すなわち、送信されるパケットは、送信されるべきデータが生成される毎にその値がインクリメントされる別のシーケンス情報としてのサンプリング番号を含むことになる。あるいは、サンプリング番号は、各パケットが順次送信されるに従って、インクリメントされる。すなわち、送信されるパケットは、データ送信毎にその値がインクリメントされる別のシーケンス情報としてのサンプリング番号を含むことになる。
サンプリング番号は、受信側のアプリケーションにおいて、送信側から送信したデータの生成順序などを検知し、あるいは、サンプリング番号の抜けによってデータの脱落などを検知するために用いられてもよい。このような用途が想定されているため、サンプリング番号としては、所定の処理期間にわたってユニークな(重複した番号が発生しないような)範囲が用いられる。すなわち、別のシーケンス情報であるサンプリング番号は、パケットについてのシーケンス情報であるシーケンスビットより長いデータ長を有することが好ましい。上述したように、例えば、シーケンスビットとして1ビットを割り当てるのに対して、サンプリング番号としては12〜32ビット程度を割り当てるようにしてもよい。
このように、パケットについてのシーケンス情報であるシーケンスビットは、個々のパケットが送信先に到達したか否かの判断に使用される一方で、別のシーケンス情報であるサンプリング番号は、送信先のアプリケーションで必要なデータのすべてが受信されたか否かの判断に使用される。つまり、パケットについてのシーケンス情報であるシーケンスビットは、物理層およびデータリンク層において、送信されたパケットのロストがあったか否かを判断するために使用される一方で、別のシーケンス情報であるサンプリング番号は、アプリケーション層においてパケットの到達有無を判断するために使用される。
リポートID部326は、ユーザデータ部320に格納されるデータの内容を特定するための情報であるリポートIDを格納する。受信側では、リポートID部326に格納されているリポートIDの値に基づいて、ユーザデータ部320に含まれるデータがどのような種類のデータであるかを特定する。ここで、リポートIDの一例について説明する。
図8は、図7に示すフォーマット300のリポートID部326に格納されるリポートIDの一例を示す図である。図8を参照して、リポートIDリスト160は、パケットに格納されるデータの種類に対応付けられたそれぞれのリポートIDを定義する。
リポートIDリスト160は、リポートIDコラム162の各々にユニークなリポートIDの値が定義されており、各リポートIDに対応付けて、ユーザデータ部320に格納されるデータの種類およびその配列などが定義される。このデータの種類および配列などの情報は、種別コラム164に定義される。
例えば、リポートIDが「1」については、「操作部102に対する操作1」、「操作部102に対する操作2」、「加速度センサ130の検知値」、「ジャイロセンサ132の検知値」がデータ本体部328に格納されることを意味する。一般的には、図8に示すリポートIDリスト160は、送信側および受信側にて同じものが共有されており、送信側から何らかのパケットを受信した受信側では、その受信したパケットに含まれるリポートIDの値に基づいて、データ本体部328に格納されているデータ列に対する処理を切り替えることになる。
リポートIDリスト160においては、リポートIDの別に、再送処理を実行するか否かを示す情報を定義してもよい。すなわち、リポートIDリスト160の再送コラム166において、「1」が設定されているリポートIDが付与されたパケットについては再送処理が実行される一方で、「0」が設定されているリポートIDが付与されたパケットについては再送処理が実行されない(非再送処理が選択される)と判断してもよい。
[D.機能的構成]
次に、本実施の形態に従う情報処理装置100(操作端末)の機能的構成について説明する。図9は、図1に示す情報処理装置100(操作端末)の機能的構成の一例を示す模式図である。図9に示す各コンポーネントは、CPU112(図2)が制御プログラム118(図2)およびアプリケーションプログラムなどを実行することで実現されてもよいし、無線通信部120(図2)を構成するプロセッサまたはハードワイヤード回路によって実現されてもよい。以下に説明するような機能が実現できれば、どのようなハードウェアおよびソフトウェアを用いて実装されてもよい。
図8を参照して、情報処理装置100は、その機能的構成として、情報収集機能152およびデータ生成機能154を含むアプリケーション150と、判断機能1242と、選択機能1244と、パケット生成機能1246とを含む無線コントローラ124(図2参照)とを含む。
アプリケーション150の情報収集機能152は、操作部102に対するユーザ操作を示す情報と、加速度センサ130およびジャイロセンサ132での検知結果とを適宜収集する。データ生成機能154は、アプリケーションの実行状況に応じて、収集した情報を適宜組み合わせてデータ(データ本体部328に格納されるデータ)を生成する。このとき、データ生成機能154は、リポートIDリスト160を参照して、生成したデータの種類を示すリポートIDをリポートID部326(図7参照)に格納する。また、データ生成機能154は、データを生成するたびにサンプリング番号をインクリメントし、そのインクリメントしたサンプリング番号をサンプリング番号部324(図7参照)に格納する。
アプリケーション150にて生成されたデータは、一旦バッファメモリ128に格納される。原則として、バッファメモリ128に先に格納されたデータから順に無線コントローラ124へ出力される。
無線コントローラ124の判断機能1242は、無線通信部120から送信されたパケットが他の情報処理装置で受信された否かを判断する。判断機能1242は、パケットに含まれるシーケンスビット(シーケンス情報)の値に基づいて、無線通信部120から送信されたパケットが他の情報処理装置で受信された否かを判断する。すなわち、判断機能1242は、無線通信部120による同期通信においてパケットのロストがあったか否かを判断する。より具体的には、判断機能1242は、送信側から受信側へ送信したパケットに対するACKの受信有無などに基づいて、受信側にてパケットが受信されたか否かを判断し、その判断結果を選択機能1244へ出力する。
選択機能1244は、先に送信したパケットが他の情報処理装置で受信されたことが判断機能1242にて確認できない場合に、当該先に送信したパケットの内容に基づいて、当該先に送信したパケットを再度送信する再送処理と、当該先に送信したパケットではなく別のパケットを送信する非再送処理とを、選択する。より具体的には、選択機能1244は、各パケットの種別(指定されたリポートID)に基づいて、各パケットに対する再送処理が必要であるか否かを判断するとともに、判断機能1242からの判断結果に基づいて、送信したパケットがロストした場合に、当該ロストしたパケットに対して再送処理を実行するか、あるいは、非再送処理を実行するのかを選択する。選択機能1244は、選択結果に応じて、先に送信したパケットと同じパケットをパケット生成機能1246に生成させる、あるいは、バッファメモリ128に格納されている先に送信したパケットに対応するエントリを削除して、パケット生成機能1246にバッファメモリ128の次のエントリに基づくパケットを生成させる、といった処理を選択的に実行する。
バッファメモリ128は、送信すべき1または複数のパケットに含ませるデータを格納する。バッファメモリ128に格納されている先に送信したパケットに対応するデータは、正しいシーケンス情報を含む受信応答(ACK)を送信側から受信した場合に削除されるが、非再送処理においては、受信応答(ACK)の内容、つまりシーケンス情報に依存することなく削除される。
このように、判断機能1242がパケットのロストがあったと判断した場合に、ロストがあったと判断されたパケットを再送する再送処理と、判断機能142がパケットのロストがあったと判断した場合であっても、当該ロストがあったと判断されたパケットを再送せずにより新しいパケットを送信する非再送処理とを選択可能に構成される。選択機能1244は、無線通信部120から送信するパケットの内容に応じて、当該パケットを再送処理で送信するか、非再送処理で送信するかを決定する。
このような機能的構成によって、上述したような再送処理および非再送処理の切り替え実行が実現される。
[E.処理手順]
次に、本実施の形態に従う情報処理装置100(操作端末)における処理手順について説明する。図10および図11は、図1に示す情報処理装置100(操作端末)における処理手順の一例を示すフローチャートである。図10には、アプリケーション150での処理手順を示し、図11には、無線通信部120での処理手順を示す。図10に示す各ステップは、典型的には、CPU112(図2)が制御プログラム118およびアプリケーションプログラムなどを実行することで実現される。図11に示す各ステップは、無線通信部120およびCPU112が連携することで実現されてもよい。
図10を参照して、CPU112は、アプリケーションプログラムの実行状況に基づいて、受信側へ送信すべきデータを生成するタイミングが到来したか否かを判断する(ステップS100)。受信側へ送信すべきデータを生成するタイミングが到来していなければ(ステップS100においてNOの場合)、ステップS100の処理が繰り返される。
受信側へ送信すべきデータを生成するタイミングが到来していれば(ステップS100においてYESの場合)、CPU112は、予め定められたリポートIDに従って、操作部102、加速度センサ130、ジャイロセンサ132などから必要な情報を収集する(ステップS102)とともに、サンプリング番号をインクリメントする(ステップS104)。そして、CPU112は、サンプリング番号、リポートID、収集したデータをパケットに格納すべきデータとしてバッファメモリ228へ出力する(ステップS106)。そして、ステップS100以下の処理が繰り返される。
図11を参照して、無線通信部120は、送信すべきデータがバッファメモリ228に存在するか否かを判断する(ステップS200)。送信すべきデータがバッファメモリ228に存在していなければ(ステップS200においてNOの場合)、ステップS200の処理が繰り返される。
送信すべきデータがバッファメモリ228に存在していれば(ステップS200においてYESの場合)、無線通信部120は、情報処理装置200(処理本体部)からポーリングを受信したか否かを判断する(S202)。情報処理装置200からポーリングを受信していなければ(ステップS202においてNOの場合)、ステップS202の処理が繰り返される。
情報処理装置200からポーリングを受信していれば(ステップS202においてYESの場合)、無線通信部120は、パケットヘッダ部310(図7参照)に含めるシーケンス情報を決定する(ステップS204)とともに、バッファメモリ228に存在するデータをユーザデータ部320とするパケットを生成し(ステップS206)、生成したパケットを送信する(ステップS208)。
そして、無線通信部120は、送信したパケットに対する受信応答(ACK)を所定時間内に受信したか否かを判断する(ステップS210)。パケットに対する受信応答(ACK)を所定時間内に送信した受信していれば(ステップS210においてYESの場合)、無線通信部120は、先に送信したパケットに含めたデータをバッファメモリ228から削除し(ステップS212)、ステップS200以下の処理を繰り返す。
送信したパケットに対する受信応答(ACK)を受信しなければ(ステップS210においてNOの場合)、無線通信部120は、先に送信したパケットの再送処理が必要であるか否かを判断する(ステップS214)。
先に送信したパケットの再送処理が必要であれば(ステップS214においてYESの場合)、所定回数にわたって再送処理が実行される。すなわち、無線通信部120は、先に送信したパケットを再度送信し(ステップS216)、送信したパケットに対する受信応答(ACK)を所定時間内に受信したか否かを判断する(ステップS218)。送信したパケットに対する受信応答(ACK)を所定時間内に受信していれば(ステップS218においてYESの場合)、ステップS212以下の処理が実行される。
送信したパケットに対する受信応答(ACK)を所定時間内に受信しなければ(ステップS218においてNOの場合)、無線通信部120は、先に送信したパケットを再送信した回数が予め定められた上限回数に到達したか否かを判断する(ステップS220)。先に送信したパケットを再送信した回数が予め定められた上限回数に到達していなければ(ステップS220においてNOの場合)、ステップS216の処理が再度実行される。
先に送信したパケットを再送信した回数が予め定められた上限回数に到達していれば(ステップS220においてYESの場合)、無線通信部120は、先に送信したパケットの再送処理を中止し、先に送信したパケットに含めたデータをバッファメモリ228から削除する(ステップS222)とともに、パケットヘッダ部310(図7参照)に含めるシーケンス情報を更新し(ステップS224)、ステップS200以下の処理を繰り返す。
先に送信したパケットの再送処理が必要でなければ(ステップS214においてNOの場合)、当該パケットに対しては非再送処理が実行される。すなわち、無線通信部120は、先に送信したパケットに含めたデータをバッファメモリ228から削除する(ステップS226)とともに、パケットヘッダ部310(図7参照)に含めるシーケンス情報を維持したまま、ステップS200以下の処理を繰り返す。この場合、ステップS200以下の処理において、先に送信したパケットと同じシーケンス情報を有しつつ、異なるデータを含む新たなパケットが送信されることになる。
図11に示すステップS210,S212,S214,S226に関して、より具体的には、再送処理においては、予め設定されているデータの保持期間(Flush timeout)内にACKの受信を確認できれば、データがバッファメモリから削除され、ACKの受信が確認できなれければ、保持期間内は、ポーリングを受信するたびに同一のデータを何度でも送信する。そして、保持期間が経過すると、ACKの受信をできなくても、データはバッファメモリから削除される。なお、保持期間は無限に設定できるようになっていてもよい。一方、非再送処理においては、実質的に保持期間はゼロに設定されており、データはバッファメモリからそのまま削除される。
つまり、情報処理装置200(処理本体部)からのポーリングを受けて無線コントローラ124はデータを送信するが、このポーリングはACKを含む。つまり、所定周期毎に送信したパケットのACKは次の周期のポーリングで送信されてくることになる。再送処理の場合には、予め送信パケットを2つ用意しておき、ACKの受信が確認できれば、新しいパケットを送信して古いパケットを破棄し、ACKの受信が確認できなければ、古いパケットを送信する、といった処理になる。
[F.パケットに含めるデータ]
上述したように、本実施の形態に従う情報処理システム1においては、再送処理および非再送処理のいずれにおいても、パケットに付与されるシーケンス情報(シーケンスビット)の値は、同一の規則に従って決定される。そのため、受信側では、再送処理によって先に送信されたパケットと同一のパケットが送信されたのか、または、非再送処理によって先に送信されたパケットとは別のパケットが送信されたのかを、シーケンスビットの情報だけで判断することはできない。そのため、送信側から送信されるパケットのユーザデータ部320(図7)内に、再送処理および非再送処理のいずれにおいて送信されるパケットであるかを識別する情報を含めるようにしてもよい。すなわち、無線通信部120から送信されるパケットは、当該パケットが再送処理に従って送信されたものであるか、または、当該パケットが非再送処理に従って送信されたものであるかを示す情報を含んでいてもよい。
また、本実施の形態に従う情報処理システム1においては、パケットに付与されるシーケンス情報(シーケンスビット)の値が同一の規則に従って決定されるため、受信側としては、再送処理のみをサポートする情報処理装置を採用することもできる。但し、受信側において、再送処理および非再送処理の別にアプリケーションでの処理を切り替えることで、より柔軟なサービスを提供できる可能性がある。そのため、受信側において、送信側が再送処理および非再送処理を選択的に実行できるものであるか否かを知っておくことが好ましい場合もある。
そこで、送信側の情報処理装置が非再送処理に対応していることを示す情報を受信側にできるようにしておくことが好ましい。例えば、具体的には、無線通信部120から送信されるパケットのユーザデータ部320にその情報を含めるようにしてもよいし、通常のパケットとは別に用意された特殊パケットによってその情報を送信するようにしてもよい。
[G.非再送処理の禁止]
上述したような非再送処理においては、ロストしたパケットは受信側に伝達されないので、パケットに含まれるデータの種類によっては、非再送処理が好ましくない場合もある。このような場合には、非再送処理を禁止するようにしてもよい。以下、非再送処理が禁止される場合の例について説明する。
(g1:キャリブレーション用データ)
操作コントローラとして情報処理装置から送信されるパケットには、操作部102に対するユーザ操作を示す情報、ならびに、加速度センサ130およびジャイロセンサ132での検知結果を含んでいてもよい。すなわち、図7に示すように、パケットには、操作部102に対するユーザ操作の内容を示す情報を含めてもよいし、加速度センサ130およびジャイロセンサ132(検知部)により検知された結果を示す情報を含めてもよい。このようなデータは、リアルタイム性が要求される場合も多く、また、過去のデータがそれほど必要でない場合も多い。そのため、送信されたパケットがロストした場合であっても、再送する必要がない場合も多く、このような場合には、これらのパケットは非再送処理に従って、送信側から受信側へ順次送信される。
一方、送信側から受信側へ送信されたことを確実にしなければならないデータも存在する。このようなデータについては、非再送処理を禁止した上で、再送処理のみを許容するようにしてもよい。
例えば、ユーザによる操作部102に対する操作を示す情報が、ユーザが意図したものとなるように、操作部102をキャリブレーションするような場合がある。同様に、ユーザに要する情報処理装置100の操作によって、情報処理装置100の姿勢および動きを検知するための検知部(加速度センサ130およびジャイロセンサ132)についても、ユーザの意図した通りの検知値が出力されるように、キャリブレーションされることもある。
このようなキャリブレーションに使用されるデータについては、確実に伝送されるように、非再送処理を禁止してもよい。すなわち、操作部102および検知部(加速度センサ130およびジャイロセンサ132)の少なくとも一方に対するキャリブレーションに係る情報を含むパケットについては、非再送処理を禁止するようにしてもよい。
このような非再送処理の禁止は、図8に示すリポートIDリスト160において、キャリブレーションに使用されるパケットに割り当てられるリポートIDについては、再送処理を実行するように定義すればよい。あるいは、キャリブレーションに使用されるデータを特殊パケットに格納して送信するとともに、当該特殊パケットについては、非再送処理を禁止するように実装してもよい。
(g2:更新用データ)
例えば、情報処理装置で実行されるプログラムあるいはファームウェアを更新(バージョンアップ)するような場合にも、送信側から受信側へ確実にデータを送信する必要がある。このような場合にも、非再送処理を禁止することが好ましい。
より具体的には、例えば、図1に示す情報処理装置200(処理本体部)から情報処理装置100(操作コントローラ)に対して、ファームウェアなどを送信するような更新処理が実行される場合がある。このような場合には、再送処理が禁止される。すなわち、情報処理装置200(処理本体部)は、情報処理装置100(操作コントローラ)にインストールされるプログラム(ファームウェア)を一時的に保持する記憶部を有しており、この記憶部から読み出されたデータが情報処理装置100へ送信される。この場合、情報処理装置200では、情報処理装置100にインストールされるプログラムの全部または一部を含むパケットについては、非再送処理が禁止される。つまり、情報処理装置100で実行されるプログラム(典型的には、ファームウェア)の更新に係る情報を含むパケットについては、再送処理にて送信される。
このように非再送処理を禁止することで、プログラムの更新といった装置の動作にかかわるデータについては、非再送処理を禁止し、再送処理で送信することで、送信側から受信側へ確実に伝送することができる。
[H.送信データの補償処理の一例]
上述したような非再送処理にてデータを送信する場合には、パケットがロストしていた期間の間に生じた変化は受信側へ送信されないことになる。例えば、操作部に対するユーザ操作の内容を送信する場合を想定すると、例えば、ユーザが押ボタンを押下したものの、その押下した情報が処理本体部へ送信されず、反応しないという事態が生じ得る。このような状態は、ユーザに対する操作性を低下させる可能性がある。そのため、アプリケーションによっては、非再送処理を行なうものの、その非再送処理において送信されるデータにパケットがロストしている期間の情報を反映することで、より操作性を高めるような処理を採用してもよい。以下、このような、送信データに対する補償処理の一例について説明する。
図12は、本実施の形態に従う情報処理システム1における送信データに対する補償処理の一例を説明するための模式図である。例えば、押ボタンなどの操作部に対するユーザ操作の内容をパケットに含めて送信するような場合を想定する。
各周期Tにおいて、直前の操作部の状態値(押下されていればON(真:「1」)、そうでなければOFF(偽:「0」))をパケットのユーザデータ部に格納して受信側へ送信するとする。そして、受信側では、受信したパケットに含まれる状態値に基づいて内部の変数を更新することになる。
図12(A)を参照して、周期T1および周期T2においては、送信側から受信側へのパケットの送信がそれぞれ成功したが、周期T3および周期T4において、送信側から受信側へのパケットの送信が失敗したとする。一方で、操作部に対するユーザ操作は、周期T2の途中から周期T4の途中までなされたとする。
この場合、周期T3および周期T4に送信されたパケットには、ユーザ操作の内容として「ON」が格納される。これらのパケットが適切に受信されると、周期T3において受信したパケットによって、受信値は「OFF」から「ON」に変化し、周期T5において受信したパケットによって、受信値は「ON」から「OFF」に変化するはずであるが、これらのパケットは適切に受信されないので、受信側の受信値としては「OFF」のまま維持されることになる。つまり、ユーザが操作部を操作したにもかかわらず、受信側(処理本体部)では、その操作が検出されず、ユーザの操作感が低下する可能性がある。
このようなユーザの操作感の低下は、送信の周期が十分に短い場合には、顕在化しない可能性が高いが、システムの制約上、送信の周期を短くできない場合には、図12(B)に示すような補償処理を適用してもよい。
図12(B)を参照して、送信側では、周期T3において送信されたパケットがロストしたことを周期T4において検知することができる。周期T4では、周期T3において送信したパケットに含まれていた情報(「ON」)と、周期T4の直前における操作部の情報(「ON」)とに基づいて、周期T4において送信するパケットに含める情報の値を決定する。図12(B)に示す例では、周期T4においては、ユーザ操作の内容として「ON」を含むパケットが送信される。
この周期T4において送信されたパケットもロストしており、周期T5では、周期T4において送信したパケットに含まれていた情報(「ON」)と、周期T5の直前における操作部の情報(「OFF」)とに基づいて、周期T5において送信するパケットに含める情報の値を決定する。図12(B)に示す例では、周期T5においては、ユーザ操作の内容として「ON」を含むパケットが送信される。
周期T5において送信されたパケットは受信側で受信されるので、受信側の受信値は周期T5において「OFF」から「ON」に変化することになる。送信の周期またはその整数倍だけ遅延が生じるものの、ユーザから見れば、自身の操作した結果が処理に反映することで、操作性の低下を防止することができる。
このように、情報処理装置100は、先に送信したパケットが他の情報処理装置(受信側)で受信されたことが確認できない場合に、当該先に送信したパケットに含まれるユーザ操作の内容を示す情報と、次のパケットの送信前に取得された操作部102に対するユーザ操作の内容を示す情報とに基づく情報を、当該次のパケットに含めるような処理を実行する。この処理は、図9に示すアプリケーション150において実行されるようにしてもよいし、無線通信部120の無線コントローラ124において実行されるようにしてもよい。
典型的には、先に送信したパケットがロストしたと判断された場合には、次の周期において、当該ロストしたパケットに含まれていたユーザ操作の内容を示す情報と現在のユーザ操作の内容を示す情報とを結合して、今回のパケットに格納する情報を決定する。すなわち、情報処理装置100は、他の情報処理装置(受信側)で受信されたことが確認できない1または複数のパケットに含まれるユーザ操作の内容を示す情報と、現時点で取得されたユーザ操作の内容を示す情報とを結合して、当該次のパケットに含めるようにしてもよい。
このような情報の結合方法としては各種の方法が想定される。例えば、押しボタンなどの操作部については、ユーザが操作を行なったことを検知することが重要であるので、結合対象の期間に取得された複数の状態値の中で、ユーザ操作がなされたことを示す状態値が含まれていれば、それを代表値として出力するようにしてもよい。
例えば、ユーザが何ら操作を行なっていない状態値を「0」とし、ユーザが操作を行なったときの状態値を「1」とすると、それぞれの状態値の論理和を各周期のパケットに含める状態値として決定してもよい。
複数回にわたって連続してパケットがロストした場合には、パケットがロストし続けている期間に取得されたユーザ操作を示す情報のすべてを結合することが好ましい。例えば、図12(B)において、周期T5に送信されるパケットに含める情報としては、周期T3、周期T4、周期T5においてそれぞれ取得した操作部102の状態値の論理和を用いることになる。但し、各周期において、直前のパケットに含まれる情報(操作部102の状態値)は、それ以前に取得された操作部102のすべての状態値と当該周期において取得した操作部102の状態値とを反映したものとなるので、複数の周期においてそれぞれ取得された操作部102の状態値をすべて考慮する必要はない。すなわち、各周期においては、直前に送信されたパケットがロストしているか否かを判断し、ロストしていれば、そのロストしたパケットに含まれていた操作部102の状態値と、今回の周期において取得された状態値との間で、論理和を算出することで、当該周期において送信されるパケットに含ませる情報を決定できる。
このように、情報処理装置は、直近に送信したパケットが他の装置で受信されたことが確認できない場合に、当該直近に送信したパケットに含まれるユーザ操作の内容を示す情報と、現時点で取得されたユーザ操作の内容を示す情報とを結合して、次のパケットに含めるという処理を実行する。つまり、各周期において、その前の周期において送信に失敗したパケットの情報をマージした、今回の周期において送信するパケットに含める情報を決定する。このような処理を行なうことで、結果的に、連続して複数回送信に失敗したパケットのすべてを反映した情報を今回の周期において送信することができる。
なお、上述の例では、ユーザが何ら操作を行なっていない状態値を「0」とし、ユーザが操作を行なったときの状態値を「1」とした場合のマージ処理の一例について説明したが、状態値の割り当てが逆に設定されている場合には、論理積を用いてもよい。
また、複数回にわたってパケットのロストが発生した場合には、そのロストしている期間において取得された状態値のうち、より高い頻度の状態値を最終的な出力値としてもよい。すなわち、ロストしたパケットが含んでいた情報についての多数決に基づいて、今回の周期において送信されるパケットに含ませる情報を決定してもよい。
また、押ボタン、操作レバー、タッチパネル、各種センサ出力といった互いに特性の異なるデータがまとめて送信されるので、データの各部分に異なるロジックを適用するようにしてもよい。一例として、ボタンAには論理和、ボタンBは論理積、加速度センサには最大値といった組み合わせなどが挙げられる。
なお、上述のような結合処理については、送信したパケットが受信側へ送信された場合には、一旦打ち切られ、次にロストが発生した場合に再度新たに実行されることになる。
なお、上述の説明においては、ユーザが操作する操作部102に関する情報について例示したが、これに限らず、任意の情報を上述したような方法を用いて補償した上で、パケットに含めて送信するようにしてもよい。
このような送信データの補償処理を採用することで、通信環境の一時的な劣化などで、パケットがロストした場合であっても、ユーザの操作性を損なうことなく、ゲーム処理などを進行することができる。
[I.変形例]
上述の実施の形態においては、典型的な応用例として、再送処理および非再送処理を、情報処理装置100(操作コントローラ)で取得される任意のデータ(例えば、入力データ)を情報処理装置200(処理本体部)へ送信する場合について説明したが、その逆方向のデータ送信にも適用可能である。すなわち、情報処理装置200(処理本体部)で算出された演算値に基づいて、情報処理装置100(操作コントローラ)で何らかの出力処理を行なわせるためのデータを送信する場合にも、本実施の形態に従う再送処理および非再送処理は適用可能である。
[J.利点]
本実施の形態に従う情報処理システム1においては、他の装置との間で無線にてパケットを同期通信で送受信する構成において、データの種類に応じて、より柔軟な伝送形態を実現できる構成を提供する。
また、本実施の形態に従う情報処理システム1においては、非再送処理で同期通信を行なう場合であっても、ユーザ操作を示す情報などの欠落に対して補償することができ、ユーザの操作性を維持できる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 情報処理システム、100,100A,100B,200 情報処理装置、102 操作部、104 インジケータ、106 音声出力部、110,210 制御部、112,212 CPU、114,214 メインメモリ、116,232 フラッシュメモリ、118 制御プログラム、120,220 無線通信部、122,222 無線モジュール、124,224 無線コントローラ、126,226 ファームウェア、128,228 バッファメモリ、130 加速度センサ、132 ジャイロセンサ、142,1242 判断機能、150,233 アプリケーション、152 情報収集機能、154 データ生成機能、160 リポートIDリスト、162 リポートIDコラム、164 種別コラム、166 再送コラム、204 表示装置、208 光学記録媒体、216 GPU、218 VRAM、230 ネットワーク通信モジュール、234 外部メインメモリ、236 映像音声出力ドライバ、238 ディスクドライブ、300 フォーマット、310 パケットヘッダ部、312 宛先ID部、314 シーケンスビット、320 ユーザデータ部、322 データヘッダ部、324 サンプリング番号部、326 リポートID部、328 データ本体部、1244 選択機能、1246 パケット生成機能。

Claims (28)

  1. 他の装置との間で無線にてパケットを同期通信で送受信する通信部と、
    前記通信部が送信したパケットが前記他の装置で受信された否かを判断する判断部と、
    先に送信したパケットが前記他の装置で受信されたことが前記判断部にて確認できない場合に、当該先に送信したパケットの内容に基づいて、当該先に送信したパケットを再度送信する再送処理と、当該先に送信したパケットではなく別のパケットを送信する非再送処理とを、選択する選択部とを備える、情報処理装置。
  2. 前記通信部が送信するパケットは、パケットの送信毎にまたはパケットの受信毎に、所定規則に従ってその値が変更される第1のシーケンス情報を含み、
    前記判断部は、前記第1のシーケンス情報に基づいて、前記通信部が送信したパケットが前記他の装置で受信された否かを判断し、
    前記通信部は、前記再送処理および前記非再送処理のいずれにおいても、前記所定規則に従って値を変更した第1のシーケンス情報を送信するパケットに付与する、請求項1に記載の情報処理装置。
  3. 前記情報処理装置は、送信すべき1または複数のパケットに含ませるデータを格納するバッファメモリをさらに備え、
    前記選択部は、前記非再送処理において、前記第1のシーケンス情報に依存することなく、前記バッファメモリに格納されている前記先に送信したパケットに対応するデータを削除する、請求項2に記載の情報処理装置。
  4. 前記通信部が送信するパケットは、送信されるべきデータが生成される毎にその値がインクリメントされる第2のシーケンス情報を含む、請求項2または3に記載の情報処理装置。
  5. 前記通信部が送信するパケットは、データ送信毎にその値がインクリメントされる第2のシーケンス情報を含む、請求項2または3に記載の情報処理装置。
  6. 前記第2のシーケンス情報は、前記第1のシーケンス情報より長いデータ長を有する、請求項5に記載の情報処理装置。
  7. 前記第1のシーケンス情報は、個々のパケットが送信先に到達したか否かの判断に使用され、
    前記第2のシーケンス情報は、送信先のアプリケーションで必要なデータのすべてが受信されたか否かの判断に使用される、請求項4〜6のいずれか1項に記載の情報処理装置。
  8. 前記通信部が送信するパケットは、当該パケットが前記再送処理に従って送信されたものであるか、または、当該パケットが前記非再送処理に従って送信されたものであるかを示す情報を含む、請求項1〜7のいずれか1項に記載の情報処理装置。
  9. 前記通信部は、前記情報処理装置が前記非再送処理に対応していることを示す情報を送信する、請求項1〜8のいずれか1項に記載の情報処理装置。
  10. ユーザ操作を受け付ける操作部をさらに備え、
    前記通信部は、前記操作部に対するユーザ操作の内容を示す情報を前記パケットに含める、請求項1〜9のいずれか1項に記載の情報処理装置。
  11. 前記情報処理装置の姿勢および動きの少なくとも一方を検知する検知部をさらに備え、
    前記通信部は、前記検知部により検知された結果を示す情報を前記パケットに含める、請求項10に記載の情報処理装置。
  12. 前記選択部は、前記操作部および前記検知部の少なくとも一方に対するキャリブレーションに係る情報を含むパケットについては、前記非再送処理を禁止する、請求項10または11に記載の情報処理装置。
  13. 前記通信部は、周波数ホッピング方式に従って、複数の通信チャネルのうち使用する通信チャネルを所定のタイミングで切り替えて前記パケットを送受信する、請求項1〜12のいずれか1項に記載の情報処理装置。
  14. 前記他の装置にインストールされるプログラムを一時的に保持する記憶部をさらに備え、
    前記選択部は、前記他の装置にインストールされるプログラムの全部または一部を含むパケットについては、前記非再送処理を禁止する、請求項1〜13のいずれか1項に記載の情報処理装置。
  15. 前記選択部において前記非再送処理が選択されている場合に、先に送信したパケットが前記他の装置で受信されたことが確認できないときに、当該先に送信したパケットに含まれるユーザ操作の内容を示す情報と、次のパケットの送信前に取得された前記操作部に対するユーザ操作の内容を示す情報とに基づく情報を、当該次のパケットに含める制御部をさらに備える、請求項1〜14のいずれか1項に記載の情報処理装置。
  16. 前記制御部は、前記他の装置で受信されたことが確認できない1または複数のパケットに含まれるユーザ操作の内容を示す情報と、現時点で取得されたユーザ操作の内容を示す情報とを結合して、当該次のパケットに含める、請求項15に記載の情報処理装置。
  17. 前記制御部は、直近に送信したパケットが前記他の装置で受信されたことが確認できない場合に、当該直近に送信したパケットに含まれるユーザ操作の内容を示す情報と、現時点で取得されたユーザ操作の内容を示す情報とを結合して、次のパケットに含める、請求項15または16に記載の情報処理装置。
  18. 他の装置との間で無線にてパケットを同期通信で送受信するステップと、
    送信したパケットが前記他の装置で受信された否かを判断するステップと、
    先に送信したパケットが前記他の装置で受信されたことが確認できない場合に、当該先に送信したパケットの内容に基づいて、当該先に送信したパケットを再度送信する再送処理と、当該先に送信したパケットではなく別のパケットを送信する非再送処理とを、選択するステップとを備える、情報処理方法。
  19. 制御プログラムを実行する制御部と、
    他の装置との間で無線にてパケットを同期通信で送受信する通信部とを備え、
    前記制御部は、
    前記通信部が送信したパケットが前記他の装置で受信された否かを判断する判断部と、
    先に送信したパケットが前記他の装置で受信されたことが前記判断部にて確認できない場合に、当該先に送信したパケットの内容に基づいて、当該先に送信したパケットを再度送信する再送処理と、当該先に送信したパケットではなく別のパケットを送信する非再送処理とを、選択する選択部とを備える、情報処理システム。
  20. 他の装置との間で無線にてパケットを同期通信で送受信する通信部を有するコンピュータで実行される制御プログラムであって、前記制御プログラムは前記コンピュータに
    前記通信部が送信したパケットが前記他の装置で受信された否かを判断するステップと、
    先に送信したパケットが前記他の装置で受信されたことが確認できない場合に、当該先に送信したパケットの内容に基づいて、当該先に送信したパケットを再度送信する再送処理と、当該先に送信したパケットではなく別のパケットを送信する非再送処理とを、選択するステップとを実行させる、制御プログラム。
  21. ユーザ操作を受け付ける操作部と、
    他の装置に対して、無線にて、前記操作部に対するユーザ操作の内容を示す情報を含むパケットを同期通信で送信する通信部と、
    前記通信部が送信したパケットが前記他の装置で受信された否かを判断する判断部と、
    先に送信したパケットが前記他の装置で受信されたことが前記判断部にて確認できない場合に、当該先に送信したパケットに含まれるユーザ操作の内容を示す情報と、次のパケットの送信前に取得された前記操作部に対するユーザ操作の内容を示す情報とに基づく情報を、当該次のパケットに含める制御部とを備える、情報処理装置。
  22. 前記制御部は、前記他の装置で受信されたことが確認できない1または複数のパケットに含まれるユーザ操作の内容を示す情報と、現時点で取得されたユーザ操作の内容を示す情報とを結合して、当該次のパケットに含める、請求項21に記載の情報処理装置。
  23. 前記制御部は、直近に送信したパケットが前記他の装置で受信されたことが確認できない場合に、当該直近に送信したパケットに含まれるユーザ操作の内容を示す情報と、現時点で取得されたユーザ操作の内容を示す情報とを結合して、次のパケットに含める、請求項21または22に記載の情報処理装置。
  24. 前記判断部は、前記他の装置からの受信応答に基づいて、前記他の装置で受信された否かを判断する、請求項21〜23のいずれか1項に記載の情報処理装置。
  25. 前記情報処理装置の姿勢および動きの少なくとも一方を検知する検知部をさらに備え、
    前記通信部は、前記検知部により検知された結果を示す情報を前記パケットに含める、請求項21〜24のいずれか1項に記載の情報処理装置。
  26. ユーザ操作を受け付けるステップと、
    他の装置に対して、無線にて、操作部に対するユーザ操作の内容を示す情報を含むパケットを同期通信で送信するステップと、
    送信したパケットが前記他の装置で受信された否かを判断するステップと、
    先に送信したパケットが前記他の装置で受信されたことが確認できない場合に、当該先に送信したパケットに含まれるユーザ操作の内容を示す情報と、次のパケットの送信前に取得された前記操作部に対するユーザ操作の内容を示す情報とに基づく情報を、当該次のパケットに含めるステップとを備える、情報処理方法。
  27. 制御プログラムを実行する制御部と、
    他の装置に対して、無線にて、操作部に対するユーザ操作の内容を示す情報を含むパケットを同期通信で送信する通信部とを備え、
    前記制御部は、
    前記通信部が送信したパケットが前記他の装置で受信された否かを判断する判断部と、
    先に送信したパケットが前記他の装置で受信されたことが確認できない場合に、当該先に送信したパケットに含まれるユーザ操作の内容を示す情報と、次のパケットの送信前に取得された前記操作部に対するユーザ操作の内容を示す情報とに基づく情報を、当該次のパケットに含める制御部とを備える、情報処理システム。
  28. 他の装置との間で無線にてパケットを同期通信で送受信する通信部を有するコンピュータで実行される制御プログラムであって、前記制御プログラムは前記コンピュータに
    ユーザ操作を受け付けるステップと、
    他の装置に対して、無線にて、操作部に対するユーザ操作の内容を示す情報を含むパケットを同期通信で送信するステップと、
    前記通信部が送信したパケットが前記他の装置で受信された否かを判断するステップと、
    先に送信したパケットが前記他の装置で受信されたことが確認できない場合に、当該先に送信したパケットに含まれるユーザ操作の内容を示す情報と、次のパケットの送信前に取得された前記操作部に対するユーザ操作の内容を示す情報とに基づく情報を、当該次のパケットに含めるステップとを実行させる、制御プログラム。
JP2016134813A 2016-07-07 2016-07-07 情報処理装置、情報処理方法、情報処理システム、および、制御プログラム Active JP6845628B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2016134813A JP6845628B2 (ja) 2016-07-07 2016-07-07 情報処理装置、情報処理方法、情報処理システム、および、制御プログラム
EP17179965.3A EP3266506B1 (en) 2016-07-07 2017-07-06 Information processing apparatus, information processing method, information processing system, and control program
US15/642,567 US10484292B2 (en) 2016-07-07 2017-07-06 Information processing apparatus, information processing method, information processing system, and storage medium with control program stored thereon
US16/654,417 US11178061B2 (en) 2016-07-07 2019-10-16 Information processing apparatus, information processing method, information processing system, and storage medium with control program stored thereon

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016134813A JP6845628B2 (ja) 2016-07-07 2016-07-07 情報処理装置、情報処理方法、情報処理システム、および、制御プログラム

Publications (2)

Publication Number Publication Date
JP2018007164A true JP2018007164A (ja) 2018-01-11
JP6845628B2 JP6845628B2 (ja) 2021-03-17

Family

ID=59337461

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016134813A Active JP6845628B2 (ja) 2016-07-07 2016-07-07 情報処理装置、情報処理方法、情報処理システム、および、制御プログラム

Country Status (3)

Country Link
US (2) US10484292B2 (ja)
EP (1) EP3266506B1 (ja)
JP (1) JP6845628B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020048116A (ja) * 2018-09-20 2020-03-26 キヤノン株式会社 通信装置、通信装置の制御方法、およびプログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6845628B2 (ja) 2016-07-07 2021-03-17 任天堂株式会社 情報処理装置、情報処理方法、情報処理システム、および、制御プログラム

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7114002B1 (en) * 2000-10-05 2006-09-26 Mitsubishi Denki Kabushiki Kaisha Packet retransmission system, packet transmission device, packet reception device, packet retransmission method, packet transmission method and packet reception method
GB0102261D0 (en) 2001-01-29 2001-03-14 Vtech Communications Ltd Enhanced cordless telephone platform using bluetooth technology
US6983410B2 (en) 2001-07-02 2006-01-03 Qualcomm, Incorporated System and method for a frame re-transmission in a broadcast communication system
JP2004165920A (ja) 2002-11-12 2004-06-10 Matsushita Electric Ind Co Ltd 無線通信方法
JP2006050519A (ja) * 2003-10-24 2006-02-16 Sony Corp 無線通信システム、無線通信装置及び無線通信方法、並びにコンピュータ・プログラム
US8274961B2 (en) * 2003-10-24 2012-09-25 Sony Corporation Apparatus and associated methodology of adjusting a RTS/CTS transmission protocol
JP4622503B2 (ja) * 2003-12-24 2011-02-02 ソニー株式会社 無線通信システム、無線通信装置及び無線通信方法、並びにコンピュータ・プログラム
US8351400B2 (en) * 2004-05-05 2013-01-08 Qualcomm Incorporated Method and apparatus for overhead reduction in an enhanced uplink in a wireless communication system
US7697893B2 (en) * 2004-06-18 2010-04-13 Nokia Corporation Techniques for ad-hoc mesh networking
JP4580770B2 (ja) 2005-02-01 2010-11-17 株式会社エヌ・ティ・ティ・ドコモ 通信システム及び受信装置
US20070111801A1 (en) 2005-11-11 2007-05-17 Adimos Systems Ltd. Method, apparatus and system for transmitting and receiving media data
US7945836B2 (en) * 2007-06-20 2011-05-17 Motorola Solutions, Inc. Method and apparatus for reducing signaling overhead in a communication system using hybrid automatic repeat request
US8189559B2 (en) * 2007-07-23 2012-05-29 Samsung Electronics Co., Ltd. Rate matching for hybrid ARQ operations
CN102405610B (zh) 2009-04-21 2016-06-01 Lg电子株式会社 在无线通信系统中使用中继节点的方法
US8594150B1 (en) * 2010-01-04 2013-11-26 Qualcomm Incorporated Dual adaptive frequency hopping system and method
US9183560B2 (en) * 2010-05-28 2015-11-10 Daniel H. Abelow Reality alternate
US10286414B2 (en) * 2010-07-12 2019-05-14 Carlisle Fluid Technologies, Inc. Liquid supply container for a spray coating device
JP5717240B2 (ja) * 2010-08-09 2015-05-13 国立大学法人名古屋大学 通信システム及び通信装置
JP2013026820A (ja) 2011-07-21 2013-02-04 Sony Corp 通信装置、通信方法、及び通信システム
JP5973788B2 (ja) 2012-05-28 2016-08-23 任天堂株式会社 情報処理プログラム、情報処理装置、情報処理システム及び情報処理方法
WO2015032440A1 (en) * 2013-09-06 2015-03-12 Telefonaktiebolaget L M Ericsson (Publ) Improved adaptation of transmission format
US20160191181A1 (en) 2014-12-31 2016-06-30 Qualcomm Technologies International, Ltd. Audio broadcast retransmissions
JP6845628B2 (ja) 2016-07-07 2021-03-17 任天堂株式会社 情報処理装置、情報処理方法、情報処理システム、および、制御プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020048116A (ja) * 2018-09-20 2020-03-26 キヤノン株式会社 通信装置、通信装置の制御方法、およびプログラム
JP7165004B2 (ja) 2018-09-20 2022-11-02 キヤノン株式会社 通信装置、通信装置の制御方法、およびプログラム

Also Published As

Publication number Publication date
JP6845628B2 (ja) 2021-03-17
US20200053016A1 (en) 2020-02-13
US10484292B2 (en) 2019-11-19
EP3266506B1 (en) 2020-01-15
EP3266506A1 (en) 2018-01-10
US20180013686A1 (en) 2018-01-11
US11178061B2 (en) 2021-11-16

Similar Documents

Publication Publication Date Title
TW200803265A (en) System and method for prioritization of retransmission of protocol data units to assist radio-link-control retransmission
US9197373B2 (en) Method, apparatus, and system for retransmitting data packet in quick path interconnect system
CN102379107A (zh) 用于提供对设备到设备的通信可用性的指示的方法、装置和计算机程序产品
WO2011046056A1 (ja) パケット通信の伝送制御方法及びパケット通信システム
CN111615196B (zh) 资源配置方法、数据的接收方法及相关设备
US20100194996A1 (en) Decoupled connections
US11178061B2 (en) Information processing apparatus, information processing method, information processing system, and storage medium with control program stored thereon
JP4110077B2 (ja) 移動通信システムのデータ伝送方法
JP6408580B2 (ja) ネットワーク内のノードを動作させる方法及びノード装置
CN113497680B (zh) 混合自动重传请求应答反馈方法、终端及网络节点
CN111817827B (zh) 旁链路信息的传输方法、终端和控制节点
JP2002261866A (ja) 無線伝送装置及び無線伝送方法
JP2008294691A (ja) マルチキャスト通信方法、通信システム、通信プログラムおよびプログラム記録媒体
US20140071993A1 (en) Transfer device and transfer method
JP2009044673A (ja) 無線装置、無線通信システム、および無線情報通知方法
JP6358430B2 (ja) 通信制御装置および通信制御方法
JP2009239511A (ja) 設備機器に関するデータ処理装置、設備機器管理システム及びデータ処理方法
JP4759418B2 (ja) メッセージ回復システムおよび回復方法
JP4005044B2 (ja) 通信試験装置
JP4573459B2 (ja) 無線端末装置、送信制御装置、無線送信制御方法、及びプログラム
CN113315601B (zh) 多点协助的数据传输方法、装置、存储介质及电子设备
JP5652891B2 (ja) リモートデスクトップシステム
JP4023264B2 (ja) 無線通信システム、無線通信装置及び無線通信方法、並びにコンピュータ・プログラム
JP2016025411A (ja) データ送受信システム、データ送信装置、データ送受信システムの制御方法
JP2017073689A (ja) 情報処理装置および情報処理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190529

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200310

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200414

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200915

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201012

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210224

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210226

R150 Certificate of patent or registration of utility model

Ref document number: 6845628

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250