この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<全体構成>
まず、図1を用いて本発明に係る情報処理システムの典型例について説明する。
図1を参照して、この発明の実施の形態に従う本発明に係る情報処理システムは、複数の携帯型の情報処理装置を含む。本例においては、複数の携帯型の情報処理装置の一例として携帯ゲーム装置(以下、単にゲーム装置とも称する)1〜3が示されている。なお、ここでは、3台の携帯ゲーム装置が示されているが少なくとも2台有ればよい。また、さらに複数台の携帯ゲーム装置を設けた構成とすることも可能である。
なお、本例においては、本発明の実施の形態における情報処理システムにおいて、必須の構成物ではないが、携帯型の情報処理装置であるゲーム装置と無線通信可能な固定端末機器5を設ける。
ゲーム装置1〜3は、互いに無線通信を実行してデータの授受が可能であり、本例においては、ゲーム装置1(以下、単に、自機とも称する)と、他のゲーム装置および固定端末機器5と通信する場合について説明する。
また、図1においては、ゲーム装置1(自機)において、無線通信を実行する場合の通信可能範囲10が点線で示されている。すなわち、図1の例においては、ゲーム装置1(自機)は、ゲーム装置2,3と、固定端末機器5とそれぞれ通信が可能な状態であることが示されている。なお、図1においては、自機のゲーム装置1の通信可能範囲10に、ユーザ名「一郎」および「二郎」のゲーム装置2,3がそれぞれ存在し、ゲーム装置1は、ユーザ名「二郎」のゲーム装置3と無線通信している様子が示されている。
詳細については後述するが、ゲーム装置1とゲーム装置3とは、互いに無線通信を実行して、互いに有している後述する交換データを交換する。そして、ゲーム装置1,3は、交換した交換データを利用することが可能であるものとする。
また、後述するが、固定端末機器5は、周辺のゲーム装置に対して所定の配信データを配信する。そして、ゲーム装置は、固定端末機器5から配信された配信データを取得した場合には、取得した配信データを利用することが可能であるものとする。
<ゲーム装置の構成>
図2を用いて、本発明の実施の形態に従うゲーム装置1の構成の概略ブロック図について説明する。なお、ゲーム装置2,3についても同様の構成であるためその詳細な説明は省略する。
図2を参照して、ゲーム装置1は、CPU31と、メインメモリ32と、メモリ制御回路33と、保存用データメモリ34と、プリセットデータ用メモリ35と、メモリカードインターフェース(メモリカードI/F)36と、無線通信モジュール38と、リアルタイムクロック(RTC)40と、電源回路41とを備えている。
CPU31は、プログラムを実行するための演算処理手段である。本発明の実施の形態では、当該プログラムは、ゲーム装置1内のメモリ(たとえば、保存用データメモリ34)やメモリカード26等に記録されている。なお、CPU31によって実行されるプログラムは、ゲーム装置1内のメモリに予め記録されていてもよいし、メモリカード26から取得されてもよいし、他の機器との通信によって他の機器から取得されてもよい。また、CPU31は、マルチタスク制御が可能である。具体的には、ゲーム処理を実行しつつ、バックグラウンドで、後述する交換データの授受処理を実行することができる。
CPU31には、メインメモリ32、メモリ制御回路33、およびプリセットデータ用メモリ35が接続される。また、メモリ制御回路33には、保存用データメモリ34が接続される。
メインメモリ32は、CPU31のワーク領域やバッファ領域として用いられる記憶手段である。すなわち、メインメモリ32は、上記情報処理に用いられる各種データを記憶したり、外部(メモリカード26や他の機器等)から取得されるプログラムを記憶したりする。本発明の実施の形態では、メインメモリ32として、たとえばPSRAM(Pseudo-SRAM)を用いる。
保存用データメモリ34は、後述するが、CPU31によって実行されるプログラムやカメラ23によって撮影された画像のデータ等を記憶するための記憶手段である。
保存用データメモリ34は、不揮発性の記憶媒体によって構成されており、たとえば本実施例ではNAND型フラッシュメモリで構成される。メモリ制御回路33は、CPU31の指示に従って、保存用データメモリ34に対するデータの読み出しおよび書き込みを制御する回路である。
プリセットデータ用メモリ35は、ゲーム装置1において予め設定される各種パラメータ等のデータ(プリセットデータ)を記憶するための記憶手段である。プリセットデータ用メモリ35としては、SPI(Serial Peripheral Interface)バスによってCPU31と接続されるフラッシュメモリを用いることができる。
メモリカードI/F36は、CPU31に接続される。メモリカードI/F36は、コネクタに装着されたメモリカード26に対するデータの読み出しおよび書き込みを、CPU31の指示に応じて行なう。
無線通信モジュール38は、後述するが同種のゲーム装置等との間で無線通信を行なう機能を有する。
さらに、CPU31には、RTC40および電源回路41が接続される。RTC40は、時間をカウントしてCPU31に出力する。たとえば、CPU31は、RTC40によって計時された時間に基づいて、現在時刻(日付)等を計算することもできる。電源回路41は、ゲーム装置1が有する電源から供給される電力を制御し、ゲーム装置1の各部品に電力を供給する。
さらに、ゲーム装置1は、マイク43およびアンプ44を備えている。マイク43およびアンプ44は、それぞれI/F回路42に接続される。マイク43は、ゲーム装置1に向かって発声されたユーザの音声を検知して、当該音声を示す音声信号をI/F回路42に出力する。アンプ44は、I/F回路42からの音声信号を増幅してスピーカ45から出力させる。I/F回路42は、CPU31に接続される。
I/F回路42は、マイク43からの音声信号の入力を受ける音声入力制御回路54と、アンプ44に対する音声信号の出力の制御を行なう音声出力制御回路56とを含む。
音声入力制御回路54は、マイク43からの音声信号の入力レベルを検知して、音声信号に対するA/D変換を行なったり、音声信号を所定の形式の音声データに変換したりする。
音声出力制御回路56は、出力信号がステレオ設定あるいはモノラル設定に従って、アンプ44に出力する音声信号を調整する。
操作ボタン14は、図示しないが複数の操作ボタンで構成され、CPU31に接続される。操作ボタン14からCPU31へは、各操作ボタンに対する入力状況(押下されたか否か)を示す操作データが出力される。CPU31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に応じた処理を実行する。
カメラ23は、CPU31に接続される。カメラ23は、CPU31の指示に応じて画像を撮影し、撮影した画像データをCPU31に出力する。たとえば、CPU31は、カメラ23に対して撮影指示を行ない、撮影指示を受けたカメラが画像を撮影して画像データをCPU31に送る。
また、LCD12は、CPU31に接続される。LCD12は、CPU31の指示に従って図示しないが操作画面等を表示する。
メモリカード26は、図示しないコネクタと着脱可能であり、コネクタと接続された場合にはメモリカードI/F36と接続される。メモリカード26は、ROM27と、バックアップRAM28とが内蔵され、ROM27には、ゲーム装置1で実行するためのアプリケーション等が予め設定(記憶)されている。なお、ROM27には、ROM27に記憶されるアプリケーションを識別するための名称(タイトル)を意味する識別番号が記憶されている。また、バックアップRAM28には、アプリケーションの途中のデータや結果データが記憶(セーブ)される。また、バックアップRAM28は、後述するが、当該アプリケーションを実行した場合に他のゲーム装置に提供するデータ(以下、交換データとも称する)をゲーム装置に保存した場合には交換フラグデータを記憶する。
なお、典型的には、後述するアプリケーション識別情報(アプリケーションID)とは、アプリケーションを識別するための名称(タイトル)を意味するデータ(識別番号)を含むが、必ずしもそれに限られるものではなく、本実施例においては、アプリケーションを識別するための名称に加えて、交換データとして交換対象となるデータであるかを識別可能とするデータ(交換条件データ)をも含むものとする。
図3を用いて、本発明の実施の形態に従う無線通信モジュール38の構成について説明する。
図3を参照して、本発明の実施の形態に従う無線通信モジュール38は、CPU60と、RF−IC(Radio Frequency IC)62と、メモリ制御部64と、モジュールI/F76と、各部と接続されている内部バス74とを含む。
メモリ制御部64は、RAM66と、無線通信に関するプログラムの少なくとも一部等が保存されるROM72とを含む。RAM66には、アプリケーションID保存領域68と、MACアドレスリスト保存領域70,70#と、送信無線フレーム保存領域67と、受信無線フレーム保存領域69とが設けられる。
アプリケーションID保存領域68は、後述するがCPU31からの指示に従って登録された少なくとも1つ以上のアプリケーションIDを保存する領域である。また、本例においては後述するが当該アプリケーションIDを他のアプリケーションIDと比較する際の判定のアルゴリズムとして複数の判定方式を設けることが可能であり、アプリケーションIDを各判定方式に対応するリストとして纏めて保存することも可能である。そして、リスト毎に保存する際には、判定のアルゴリズムの方式を示す情報(アルゴリズム識別情報)を含むリストヘッダ情報がそれぞれのリストに対して設けられる。
また、MACアドレスリスト保存領域70は、後述するがCPU31からの指示に従って登録された他の携帯ゲーム装置のMACアドレスを保存する領域である。また、MACアドレスリスト保存領域70#は、後述するがCPU31からの指示に従って登録された固定端末機器5のMACアドレスを保存する領域である。なお、本例においては、他の携帯ゲーム装置のMACアドレスを保存する領域と、固定端末機器のMACアドレスを保存する領域とをそれぞれ分けて設けた構成について説明するが同じ領域に保存するようにすることも可能である。
送信無線フレーム保存領域67は、後述するがRF−IC62を介して外部の携帯ゲーム装置に送信する無線フレーム(送信無線フレームとも称する)のデータを保存する領域である。また、受信無線フレーム保存領域69は、後述するが外部の携帯ゲーム装置から送信され、RF−IC62を介して受信された無線フレーム(受信無線フレームとも称する)のデータを保存する領域である。なお、受信無線フレーム保存領域69には、後述するが、固定端末機器5から送信された配信無線フレームのデータも保存される。
CPU60は、無線通信に関するプログラムを実行するための演算処理手段である。
CPU60は、メモリ制御部64に格納されているROM72から読出されたプログラムによって無線通信の所定の機能を実現することが可能である。具体的には、一例としてROM72には後述する携帯端末間通信を実行するためのアプリケーションおよび携帯固定端末間通信を実行するためのアプリケーションが格納されている。
CPU60が当該携帯端末間処理を実行するためのアプリケーションを実行することにより、無線通信モジュール38において交換データを交換する通信相手を探索する処理(以下、交換相手探索処理とも称する)が実行される。そして、無線通信モジュール38における交換相手探索処理により交換データを交換する通信相手が見つかった場合には、後述するがゲーム装置1の本体側のCPU31に通知されて、交換データの授受処理が実行される。本実施例においては、本体側のCPU31の指示に従って通信相手との接続を確立する処理が実行されて、接続が確立された後、交換データの授受処理が実行される。
同様に、CPU60が携帯固定端末間通信を実行するためのアプリケーションを実行することにより、無線通信モジュール38において、配信データを提供する通信相手を探索する処理(以下、配信相手探索処理とも称する)が実行される。そして、無線通信モジュール38における配信相手探索処理により配信データを提供する通信相手が見つかった場合には、後述するがゲーム装置1の本体側のCPU31に通知されて、配信データを取得する処理が実行される。本実施例においては、本体側のCPU31の指示に従って通信相手である固定端末機器との接続を確立する処理が実行されて、接続が確立された後、配信データを取得する処理が実行される。
RF−IC62は、例えば、他のゲーム装置に対してCPU60の指示により送信されるデータを変調して、アンテナ61から電波を送信する。ただし、電波強度は、非常に微弱で、電波法においてユーザが無免許で利用できる程度の小さい値に設定されている。また、無線通信モジュール38は、例えば、他のゲーム装置から送信された電波をアンテナ61で受信して、RF−IC62において受信データが復調される。復調された受信データは、メモリ制御部64のRAM66に格納される。
モジュールI/F76は、無線通信モジュール38とゲーム装置1のCPU31等の本体部とのインターフェースであり、無線通信モジュールのアンテナ61で受信し、RAM66に格納された受信データは、モジュールI/F76を介してゲーム装置1の本体側のCPU31等に出力される。また、CPU31からの指示に従って、保存用データメモリ34に格納されている後述する交換データがモジュールI/F76を介して無線通信モジュール38に入力され、上述したように送信データとしてアンテナ61から例えば外部の他のゲーム装置に出力することが可能である。
なお、外部の他のゲーム装置に送信するデータとしては、モジュールI/F76を介してゲーム装置1の本体側のCPU31の指示により入力されたデータに限られず、無線通信モジュール38内でCPU60の指示によりメモリ制御部64に設けられたRAM66等に格納されているデータに基づいて生成した送信無線フレームを送信データとして出力する場合もある。後述するが当該送信無線フレームは、子機側からの接続要求信号として出力される。
図4を用いて、本発明の実施の形態に従う保存用データメモリ34のメモリマップについて説明する。
図4を参照して、保存用データメモリ34は、交換データ保存領域80と、受信データ保存領域82と、内蔵アプリ保存領域84と、システムプログラム保存領域86と、MACアドレスリスト保存領域88,88#とを含む。
交換データ保存領域80は、他のゲーム装置との間でのデータの交換を実行する際に用いられる交換データが保存される領域である。
この交換データ保存領域80には、複数の記憶領域である複数のスロットSL1〜SL10が設けられている。この各スロットSLは、アプリケーションで利用可能なデータを他のゲーム装置に提供する交換データとして格納する領域であり、実際にアプリケーションで利用されるデータは、当該アプリケーションを識別するアプリケーションIDに対応付けられた状態で格納される。
なお、上述したようにアプリケーションIDは、本例において、単にアプリケーションを識別するデータを含むが、必ずしもそれに限られるものではなく、後述するが交換データが交換対象となるデータであるかを識別可能とするデータ(交換条件データ)も含むものとする。
また、後述するが、当該アプリケーションIDを無線通信モジュール38のアプリケーションID保存領域68に保存する際に、判定のアルゴリズムの方式毎のリストとして保存する際には、当該アプリケーションIDをどのリストに保存するべきかを識別するために判定のアルゴリズムの方式を示す情報(アルゴリズム識別情報)もアプリケーションIDに対応付けられた状態で格納することも可能である。
また、受信データ保存領域82は、他のゲーム装置との間でのデータの交換の際に、他のゲーム装置から受信した交換データを保存する領域である。
また、内蔵アプリ保存領域84は、ゲーム装置1に格納されている、当該ゲーム装置1上で実行する複数のアプリケーション等が保存されている領域である。ゲーム装置1は、前述のとおり、メモリカード26に保存されたアプリケーションを実行することができるが、この内蔵アプリ保存領域84に保存されたアプリケーションを実行することも可能である。内蔵アプリ保存領域84に保存されるアプリケーションは、予め保存されていても良いし、インターネット等を介して外部からダウンロードして保存するようにしてもよい。なお、内蔵アプリ保存領域84には、アプリケーション本体用の保存領域と、各アプリケーション毎に設けられた、当該アプリケーションが占有的に使用するセーブデータを保存するための保存領域(アプリケーション用記憶領域)とが設けられる。
したがって、内蔵アプリ保存領域84に複数のアプリケーションが保存されている場合には、それぞれのアプリケーションに対応して設けられた複数の保存領域が設けられる。
また、システムプログラム保存領域86は、情報処理装置の本体機能を実現するための本体機能プログラム、例えば、起動するアプリケーションを選択するためのメニュープログラムや、交換データを有する通信相手と互いに交換データの授受を実行するデータ授受処理および配信データを通信相手から取得するデータ取得処理を実行するためのプログラム等が保存されている領域である。
また、MACアドレスリスト保存領域88は、無線通信モジュール38において、以前に通信した通信相手である他のゲーム装置を識別することが可能な装置識別情報であるMACアドレスを保存する領域である。また、MACアドレスリスト保存領域88#は、無線通信モジュール38において、以前に通信した通信相手である固定端末機器を識別することが可能な装置識別情報であるMACアドレスを保存する領域である。後述するが、無線通信を実行する際の通信設定処理において、MACアドレスリスト保存領域70,70#に保存されているMACアドレスが当該MACアドレスリスト保存領域88,88#にそれぞれ保存される。
本実施例におけるゲーム装置1のデータ通信は、大別すると他のゲーム装置との交換データの授受を実行するデータ通信と、固定端末機器からの配信データを受信するデータ通信とに分けることができる。
まず、本発明の実施の形態に従うゲーム装置1と他のゲーム装置との交換データの授受を実行するデータ通信について説明する。
<ゲーム装置3との間で交換データの授受を実行する機能ブロックの説明>
図5を用いて、本発明の実施の形態に従うゲーム装置1における交換データの授受を実行する機能ブロックについて説明する。
図5を参照して、ゲーム装置1は、無線通信モジュール38と、無線通信モジュール38以外の本体部39とで構成される。
本体部39は、無線通信設定部205と、装置識別情報登録処理部210と、データ通信制御部209と、交換データ保存領域80と、受信データ保存領域82と、MACアドレスリスト保存領域88とを含む。
無線通信モジュール38は、無線フレーム送受信部223と、交換データ通信判断部225と、アプリケーションID保存領域68と、MACアドレスリスト保存領域70と、送信無線フレーム保存領域67と、受信無線フレーム保存領域69とを含む。
無線通信設定部205は、MACアドレス保存領域88に格納されているMACアドレスリストをMACアドレスリスト保存領域70に格納する。また、無線通信設定部205は、交換データ保存領域80に保存されている交換データと対応付けられて格納されたアプリケーションIDをアプリケーションID保存領域68に格納する。また、無線通信設定部205は、無線通信モジュール38における無線通信を実行するための指示を無線フレーム送受信部223に出力する。
無線通信モジュール38の無線フレーム送受信部223は、無線通信を実行する指示を受けてアプリケーションID保存領域68に保存されているアプリケーションIDを含む送信無線フレームを設定して送信無線フレーム保存領域67に格納するとともに、当該設定された送信無線フレームを用いて通信相手を探索する交換相手探索処理を実行する。本例においては、無線フレーム送受信部223は、通信相手として一例として携帯ゲーム装置3に対して送信無線フレームを送信し、携帯ゲーム装置3から送信された送信無線フレームすなわち受信無線フレームを受信するものとする。そして、無線フレーム送受信部223は、当該受信した受信無線フレームを受信無線フレーム保存領域69に格納する。
交換データ通信判断部225は、受信した受信無線フレームに基づいて通信相手が交換データを交換する交換相手であるかどうかを判断し、交換相手であると判断された場合には、その旨を本体部39に通知する。
具体的には、受信した受信無線フレームに含まれている装置識別情報であるMACアドレスがMACアドレスリスト保存領域70に保存されているMACアドレスリストに登録されているかどうかを判断する。また、当該受信した受信無線フレームが交換データの授受に関する処理が可能な無線フレームであるかどうかを判定する。また、当該受信した受信無線フレームに含まれているアプリケーションIDと、送信無線フレーム保存領域67に保存されている送信無線フレームに含まれているアプリケーションIDとを比較して、比較結果に基づいて、通信相手と交換データの交換が可能であるかどうかを判断する。
そして、交換データ通信判断部225は、受信した受信無線フレームに含まれているMACアドレスがMACアドレスリストに登録されておらず、また、当該受信した受信無線フレームが交換データの授受に関する処理が可能な無線フレームであり、また通信相手と交換データの交換が可能であると判断した場合には、交換データの交換が可能である旨の通知を本体部39のデータ通信制御部209に出力する。なお、ここでは、3つの条件が満たされた場合に交換データの交換が可能である旨の通知を本体部39のデータ通信制御部209に出力する場合について説明しているが、少なくとも1つの条件が満たされた場合に当該通知を出力するようにしても良い。
データ通信制御部209は、交換データ通信判断部225から出力された交換データの交換が可能である旨の通知を受けて、交換データ保存領域80に保存されている交換データを送信するとともに、携帯ゲーム装置3から交換データを受信する交換データの授受処理を実行する。そして、受信した交換データを受信データ保存領域82に格納する。
装置識別情報登録処理部210は、データ通信制御部209により受信した交換データが受信データ保存領域82に格納された場合には、交換相手である携帯ゲーム装置3の装置識別情報であるMACアドレスをMACアドレスリスト保存領域88に格納する。すなわち、装置識別情報を蓄積する。また、装置識別情報登録処理部210は、後述するが、受信した交換データが受信データ保存領域209に格納される毎にMACアドレス保存領域88に交換相手である携帯ゲーム装置の装置識別情報を追記する。すなわち、MACアドレスリスト保存領域88に交換相手である携帯ゲーム装置の装置識別情報が追記されて登録されることは、装置識別情報に対応する携帯ゲーム装置との間で交換データの授受を実行したことの実行履歴が残されることを意味する。
そして、無線通信設定部205は、再び、MACアドレス保存領域88に格納されているMACアドレスリストをMACアドレスリスト保存領域70に格納し、無線通信モジュール38における無線通信を実行するための指示を無線フレーム送受信部223に出力する。すなわち、上記で説明したのと同様の処理を繰り返す。
無線通信モジュール38の無線フレーム送受信部223は、再び、送信無線フレームを設定して、当該設定された送信無線フレームを用いて通信相手を探索する交換相手探索処理を実行する。例えば、再び、本例において、携帯ゲーム装置3に対して送信無線フレームを送信し、携帯ゲーム装置3から送信された送信無線フレームすなわち受信無線フレームを受信するものとする。
交換データ通信判断部225は、上述したように、受信した受信無線フレームに含まれている装置識別情報であるMACアドレスがMACアドレスリスト保存領域70に保存されているMACアドレスリストに登録されているかどうかを判断する。
その際、交換データ通信判断部225は、上述したように以前に交換データの授受を実行している場合には、MACアドレスリストに携帯ゲーム装置3の装置識別情報であるMACアドレスが格納されているためMACアドレスに登録されていると判断し、その後のデータ通信である交換データの授受処理は実行しない。すなわち、一度通信を行った通信相手との通信を行わずに効率的なデータ通信を実行することが可能である。
なお、本体部39と、無線通信モジュール38とは独立して動作することが可能である。すなわち、本体部39がスリープ状態に遷移している場合においても、無線通信モジュール38は、設定された送信無線フレームを用いて通信相手を探索する交換相手探索処理を実行することが可能である。そして、交換可能な通信相手が見つかった場合にのみ、本体部39に通知されて、通信相手との接続が確立されて、交換データの授受が実行される。したがって、例えば、本体部39がスリープ状態等の省電力状態に遷移している場合に、無線通信モジュール38における交換相手探索処理により通信相手が見つかった場合であっても交換が可能でなければ本体部39に通知されて通信接続が確立されることはないため、ゲーム装置1全体における省電力を図ることが可能である。
以下、本体部39および無線通信モジュール38の各機能の詳細について具体的に説明する。
図6を用いて、本発明の実施の形態に従うゲーム装置の本体部39の機能ブロックの詳細について説明する。
図6を参照して、本例においては、一例として、CPU31がシステムプログラム保存領域86に保存された本体機能プログラムおよびメモリカード26のROM27に格納されているアプリケーションを実行することにより所定の機能を実現する場合について説明するが、必ずしもCPU31により実現される場合に限られず、少なくとも一部の機能を専用のIC(Integrated Circuit)を用いて実現するようにしても良い。ここでは、保存用データメモリ34の交換データ保存領域80、受信データ保存領域82、MACアドレスリスト保存領域88,88#にアクセスする場合についてメモリ制御回路33を介さない場合について示しているが、図1で説明したメモリ制御回路33を介して保存用データメモリ34に格納するようにしても良い。
なお、ここで、本体部39の機能ブロックは、後述するが携帯端末間処理および携帯固定端末間処理の共通の機能として説明する。
本体部39は、無線通信設定部205と、データ通信制御部209と、装置識別情報登録処理部210の他に、さらに、データロード処理部200と、アプリケーション実行処理部201と、交換データ格納処理部202と、データ通知処理部212と、交換データ追加および消去処理部214と、装置識別情報消去部218との機能をさらに有する。無線通信設定部205は、通信設定処理部204と、通信指示処理部206とを含む。データ通信制御部209は、データ通信実行処理部208と、スリープ設定/解除処理部216とを含む。
上記機能のうち、データロード処理部200、通信設定処理部204、通信指示処理部206、データ通信実行処理部208、装置識別情報登録処理部210、データ通知処理部212、スリープ設定/解除処理部216および装置識別情報消去部218は、一例として、CPU31が本体機能プログラムを実行することにより実現される機能である。また、アプリケーション実行処理部200、交換データ格納処理部202および交換データ追加および消去処理部214は、一例として、CPU31がメモリカード26のROM27に格納されているアプリケーションを実行することにより実現される機能である。なお、各機能は、必要に応じてマルチタスク制御により実現されるものとする。
データロード処理部200は、アプリケーション(データ)をロードする。
アプリケーション実行処理部201は、ロードすなわち取得したデータに基づいてアプリケーションを実行する。
交換データ格納処理部202は、アプリケーションの実行処理により交換データ登録イベントが発生した場合に交換データを保存用データメモリ34の交換データ保存領域80に格納する。なお、ここで、交換データ格納処理部202は、交換データを当該アプリケーションを識別するアプリケーションIDに対応付けた状態で格納する。
また、交換データ格納処理部202は、当該アプリケーションIDを無線通信モジュール38のアプリケーションID保存領域68に保存する際に、判定のアルゴリズムの方式毎のリストとして保存する際には、当該アプリケーションIDをどのリストに保存するべきかを識別するために判定のアルゴリズムの方式を示す情報(アルゴリズム識別情報)もアプリケーションIDに対応付けられた状態で格納する。
交換データ追加および消去処理部214は、後述するがアプリケーションの実行処理により交換フラグデータが有ると判断された場合に受信データ保存領域82を確認して交換データが有る場合には、受信データ保存領域82に記憶された交換データを取得して、交換データ保存領域80に記憶された交換データを削除する。
通信設定処理部204は、無線通信モジュール38による無線通信が可能であると判断した場合には、交換データ保存領域80に格納されている交換データと対応付けられて格納されたアプリケーションIDを無線通信モジュール38に出力して、無線通信モジュール38のアプリケーションID保存領域68に格納する。
本例においては、一例として、通信設定処理部204は、当該アプリケーションIDを無線通信モジュール38のアプリケーションID保存領域68に保存する際に、判定のアルゴリズムの方式毎のリストとして保存する。すなわち、通信設定処理部204は、当該アプリケーションIDに対応付けられたアルゴリズム識別情報を確認して、アプリケーションID保存領域68にアルゴリズム識別情報毎に設けられたリストにアプリケーションIDを格納する。
また、通信設定処理部204は、MACアドレスリスト保存領域88,88#に保存されているMACアドレスリストを無線通信モジュール38に出力して、無線通信モジュール38のMACアドレスリスト保存領域70,70#に格納する。
また、後述するが通信設定処理部204は、所定期間経過後に送信無線フレームに設定されるMACアドレスを更新することが可能であるものとする。
また、装置識別情報消去処理部218は、MACアドレスリスト保存領域88,88#のデータについて、所定の条件に応じてアクセスして消去する。本実施例においては、ユーザからの所定の操作指示に従ってMACアドレスリスト保存領域88,88#のデータを消去する。また、MACアドレスリスト保存領域88,88#として所定のデータ容量が設けられており、複数のMACアドレスを保存することにより当該所定のデータ容量が一杯となり、保存する領域が無い場合には、保存された古いMACアドレスを消去して新しいMACアドレスを保存するように指示する。また、装置識別情報消去処理部218は、ユーザからの所定の操作指示とは別に、後述するが所定条件の場合、たとえば所定期間経過後にMACアドレスリスト保存領域のデータの一部を消去する。なお、MACアドレスリスト保存領域88,88#のデータを消去する際には、無線通信モジュール38内のRAM66のMACアドレスリスト保存領域70,70#に格納されているMACアドレスリストについても消去するように指示しても良い。
なお、本例においては、MACアドレスリスト保存領域70,70#に格納されているMACアドレスリストを消去する場合について説明するが、本体部からの指示によらず、無線通信モジュール38内で所定期間経過後、無線通信モジュール38のCPU60の指示によりRAM66のMACアドレスリスト保存領域70,70#に格納されているMACアドレスリストを消去するようにしても良い。
通信指示処理部206は、無線通信の通信開始指示を無線通信モジュール38に出力する。
図7を用いて、本発明の実施の形態に従う携帯端末間処理を実行する無線通信モジュール38の機能ブロックの詳細について説明する。
図7を参照して、本例においては、一例として、CPU60がROM72に保存された携帯端末間処理を実行するためのアプリケーションを実行することにより所定の機能を実現する場合について説明するが、必ずしもCPU60により実現される場合に限られず、少なくとも一部の機能を専用のIC(Integrated Circuit)を用いて実現するようにしても良い。
無線通信モジュール38は、無線フレーム送受信部223と、交換データ通信判断部225とを含む。無線フレーム送受信部223は、無線フレーム設定部222と、通信相手探索部224とを含む。交換データ通信判断部225は、装置識別情報比較部226と、通信データ判定部228と、アプリケーションID判定部230とを含む。なお、各機能は、必要に応じてマルチタスク制御により実現されるものとする。
無線フレーム設定部222は、無線通信の通信開始指示に従って、アプリケーションID保存領域68に保存されたアプリケーションIDに基づいて、通信相手を探索する後述する交換相手探索処理を実行するための送信無線フレームを設定する。送信無線フレームの詳細については後述する。そして、無線フレーム設定部222は、設定した送信無線フレームを送信無線フレーム保存領域67に格納する。
通信相手探索部224は、送信無線フレーム保存領域67に格納された設定した送信無線フレームを用いて上述した通信可能範囲10に含まれる通信相手を探索する交換相手探索処理を実行する。本例においては、一例として通信相手として携帯ゲーム装置3との間で通信する場合について説明する。そして、通信相手探索部224は、携帯ゲーム装置3に対して送信無線フレームを送信した場合に、携帯ゲーム装置3から送信された送信無線フレームを受信無線フレームとして受信し、受信無線フレーム保存領域69に格納する。
交換データ通信判断部225は、通信相手探索部224で通信相手を発見した場合、すなわち、通信相手から受信無線フレームを受信した場合、当該受信無線フレームに基づいて通信相手が交換データを交換する交換相手であるかどうかを判断し、交換相手であると判断された場合には、その旨を通知する。
具体的には、装置識別情報比較部226は、通信相手探索部224において通信相手が発見された場合に、通信相手である携帯ゲーム装置から受信した受信無線フレームに含まれている装置識別情報であるMACアドレスが、MACアドレスリスト保存領域70に保存されたMACアドレスリストと比較して一致するものがあるかどうかを判断する。
通信データ判定部228は、通信相手が発見された場合に、装置識別情報比較部226の比較結果に従って受信無線フレームに含まれているMACアドレスがMACアドレスリスト保存領域70に保存されているMACアドレスリストと一致しないと判断された場合に、受信した受信無線フレームのデータ内容を確認して、受信無線フレームが携帯端末間処理として処理可能な無線フレームであるかどうかを判定する。
アプリケーションID判定部230は、通信データ判定部228の判定により処理可能な受信無線フレームを受信したと判定した場合に、受信した受信無線フレームに格納されているアプリケーションIDが交換データの交換に関する所定条件を満たすか否かを判定する。
具体的には、アプリケーションID判定部230は、IDリストヘッダ情報比較部232と、IDリスト比較部234とを含む。各部の処理については後述する。
そして、IDリスト比較部234における比較結果に基づいて所定条件を満たした(アプリケーションIDが一致した)と判断した場合には、本体側にその旨を通知する。
再び、図6を参照して、スリープ設定/解除処理部216は、無線通信モジュール38からの通知(本例においては図7のIDリスト比較部234からの通知)を受ける。
スリープ設定/解除処理部216は、本体部39の各機能を所定条件に基づいてスリープ状態に設定するあるいはスリープ状態を解除する。スリープ設定/解除処理部216は、一例として、ユーザの操作ボタン14による操作指示入力を監視し、所定期間、操作ボタン14による操作指示入力がなかったと判断した場合に本体部39の各機能における処理を停止するスリープ状態に設定する。当該機能によりユーザがゲーム装置の操作を希望しない場合に自動的に省電力状態とすることが可能である。また、ユーザからの指示入力によりスリープ状態に設定するようにしても良い。また、スリープ設定/解除処理部216は、本体部39の各機能における処理が停止したスリープ状態においてユーザの操作ボタン14による操作指示に従いスリープ状態を解除して元の状態に復帰させる。すなわち、本体部39における各種処理が可能となる。また、本例においては、ユーザの操作ボタン14による操作指示以外に、本体部39がスリープ状態である場合に無線通信モジュール38からの通知によりスリープ状態を解除するものとする。なお、本例において、スリープ設定/解除処理部216は、一例としてデータ通信制御部209に含まれるものとして説明したが、特にこれに限られず、当該機能をデータ通信制御部209とは別に設けるようにすることも可能である。
そして、スリープ設定/解除処理部216は、無線通信モジュール38から通知があった場合には、その通知をデータ通信実行処理部208に出力する。
スリープ設定/解除処理部216は、現在の状態がスリープ状態でない場合には、そのまま無線通信モジュール38からの通知をデータ通信実行処理部208に出力する。
データ通信実行処理部208は、携帯端末間通信における無線通信モジュール38からの通知に従って携帯ゲーム装置3との間で交換データの授受処理を実行する。具体的には、交換データ保存領域80に保存されている交換データを携帯ゲーム装置3に送信する。そして、携帯ゲーム装置3から受信した交換データを保存用データメモリ34の受信データ保存領域82に保存する。
なお、後述するがデータ通信実行処理部208は、携帯固定端末間通信における無線通信モジュール38からの通知に従って固定端末機器5からの配信データの取得処理を実行する。具体的には、固定端末機器5に対して配信データの要求を送信し、固定端末機器5から送信される配信データを受信して、保存用データメモリ34の受信データ保存領域82に保存する。
装置識別情報登録処理部210は、データ通信実行処理部208により受信した交換データを受信データ保存領域82に格納した場合には、交換相手である携帯ゲーム装置3の装置識別情報であるMACアドレスをMACアドレスリスト保存領域88に格納する。
また、後述するが装置識別情報登録処理部210は、データ通信実行処理部208により受信した配信データを受信データ保存領域82に格納した場合には、配信相手である固定端末機器5の装置識別情報であるMACアドレスをMACアドレスリスト保存領域88#に格納する。
データ通知処理部212は、交換データを交換した旨あるいは配信データを取得した旨をユーザに通知する。
<交換データ保存領域80への格納>
図8のフローを用いて交換データ保存領域80への交換データの格納処理について説明する。
本例においては、交換データは、ユーザがゲーム装置1においてアプリケーションを実行中に、当該アプリケーションで利用可能なデータを交換データとして外部のゲーム装置に対して提供する目的で操作することにより、指定した交換データが交換データ保存領域80に格納される。一例として、メモリカード26のROMに格納されたアプリケーションを実行する場合について説明する。
ゲーム装置1の主電源がオンし、ユーザが所定の操作を実行することにより、ゲーム装置1のCPU31(データロード処理部200)は、メモリカード26に格納されたデータをロードする(ステップS0)。すなわち、メインメモリ32に展開する。
そして、次に、CPU31(アプリケーション実行処理部201)は、メインメモリ32に展開されたデータに基づいてアプリケーションを実行する(ステップS1)。
そして、CPU31(アプリケーション実行処理部201)は、当該アプリケーションの実行により、まず、バックアップRAM28に格納されていたデータに交換データを交換データ保存領域80に格納したことを示す交換フラグデータが含まれていたかどうかを判断する(ステップS2)。
ステップS2において、CPU31(アプリケーション実行処理部201)は、バックアップRAM28に格納されていたデータに交換データを交換データ保存領域80に格納したことを示す交換フラグデータが含まれていたと判断した場合(ステップS2においてYES)には、交換データの追加処理および消去処理を実行する(ステップS22)。当該処理すなわち、交換データ追加および消去処理部214における処理については後述する。そして、当該追加処理および消去処理を実行した後、ステップS4に進む。
ステップS2において、CPU31(アプリケーション実行処理部201)は、バックアップRAM28に格納されていたデータに交換データを交換データ保存領域80に格納したことを示す交換フラグデータが含まれていないと判断した場合(ステップS2においてNO)には、次に、ステップS4に進む。
そして、CPU31(アプリケーション実行処理部201)は、アプリケーションの実行により、交換データの登録イベント(以下、交換データ登録イベントとも称する)が発生したかどうかを判断する(ステップS4)。つまりアプリケーションの実行中に実行しているアプリケーションで利用可能なデータを交換データとして、交換データ保存領域80に格納するかどうかを促すシーンに移行されたかどうかを判断する。
ここで、交換データとは、アプリケーションプログラムにおいて利用されるデータであり、より好ましくは、アプリケーションプログラムを実行することによりユーザが獲得または作成したデータである。
図示は省略するが、たとえば、交換データ登録イベントとしては、アプリケーションの実行により、バックアップRAMに記憶されているゲーム内で獲得または作成したデータ等、当該アプリケーションで利用可能なデータの一覧をLCD12に表示し、その中からユーザが他人にあげても良いデータを選択するような場合が挙げられる。
交換データの格納については、以下に説明するが、例えば、ユーザがゲーム内で手に入れたアイテムや、ゲームを進行することによって成長させたキャラクタのデータを交換データとしてもよい。また、アイテムにはユーザのメッセージを付加してもよい。より具体的には、「手紙」のアイテムにユーザがメッセージを書いて、当該メッセージを交換データとして格納するようにしてもよい。このように、ゲームの実行状況に応じたアイテムやキャラクタを交換データとすることで、データにユーザごとの個性が生じることになり、交換した場合の興趣が高まる。
また、交換データ登録イベントを、ゲーム上のイベントとして表現しても良い。例えば、ユーザが、ゲーム内で所定の場所にアイテムやキャラクタを置いたり預けたりする操作をした場合に、当該アイテムやキャラクタのデータを交換データとして交換データ保存領域80に格納する処理を実行しても良い。また、ゲーム内で「手紙」のアイテムをボトルに入れて海に流すような演出をして、海に流した「手紙」のアイテムのデータを交換データとして交換データ保存領域80に格納する処理を実行しても良い。
また、交換データの交換に際し、付加的な条件(取得条件データ)を付けることも可能である。例えば、交換を希望する装置の所有者あるいはアプリケーションを実行しているユーザの性別、年齢、住所、職業等を交換する際の条件として、当該条件を示すデータを取得条件データとしたり、あるいは、交換を希望するデータあるいはその旨を示すデータ等を交換する際の条件に含めるようにしても良い。例えば、上記交換データ登録イベントにおいて交換データの交換条件をユーザに選択させるようにして取得条件データを取得するようにすることが可能であるし、あるいは、ゲーム上のイベントと対応付けてアプリケーションが当該取得条件データを設定するようにしてもよい。このような取得条件データについては、後述するが交換条件データとしてアプリケーションID内に収められる。
また、本例において、交換データとは、主に他のゲーム装置との間で他のゲーム装置が有しているデータと互いに交換するデータについて説明するが、互いに交換することなく、単に譲渡するようなデータ(譲渡データ)、例えば、他のゲーム装置に対して自己のデータを一方的に送信のみするデータ、あるいは、自己のデータを複製して一方的に送信するデータ、あるいは逆に、他のゲーム装置から一方的に受信のみするデータも含むものとする。
また、さらに付加的な条件として、当該データの送受信に関する条件(送受信条件データ)を付けることも可能である。例えば、上記交換データ登録イベントにおいて交換データの送受信に関する条件をユーザに選択させるようにして送受信条件データを取得するようにすることも可能であるし、あるいは、ゲーム上のイベントと対応付けてアプリケーションが当該取得条件データを設定するようにしてもよい。たとえば、上記例において、ゲーム内で「手紙」のアイテムをボトルに入れて海に流すような演出をして、海に流した「手紙」のアイテムのデータを交換データとするような場合には、他のゲーム装置に対して自己のデータを一方的に送信するデータとして、送受信条件データを設定するようにすることも可能である。また、別の例としては、ゲーム内で、ユーザが望むアイテムを捜してもらうような演出をして、ユーザが望むアイテムの交換データを他のゲーム装置から一方的に受信するのみのデータとして、送受信条件データを設定するようにすることも可能である。このような送受信条件データについても後述するが交換条件データとしてアプリケーションID内に収められる。ユーザが望むアイテムの交換データを他のゲーム装置から一方的に受信するのみのデータとして、送受信条件データを設定するようにすることも可能である。なお、交換データを他のゲーム装置から一方的に受信するのみの場合には、他のゲーム装置に送信するデータは無いため交換データ保存領域80に格納する交換データとしては、空データやダミーデータを保存するようにしても良い。
そして、本例においては、後述するが当該アプリケーションIDを他のアプリケーションIDと比較する際の判定のアルゴリズムとして複数の判定方式を設けることが可能であり、アプリケーションID内のデータ形式すなわち交換条件データの有無に従って、判定のアルゴリズムの方式を示す情報であるアルゴリズム識別情報が異なるものとして設定されるものとする。
当該付加的な条件を付けることにより交換データの交換に際し、希望する交換データの取得等、交換データのデータ取得のバリエーションを広げることができ、交換の興趣性を高めることができる。
一方、CPU31(アプリケーション実行処理部201)は、交換データ登録イベントが発生していないと判断した場合(ステップS4においてNO)には、再び、ステップS1に戻り通常のアプリケーションを実行する。例えば、ユーザの操作に基づいて仮想空間内でオブジェクトを動作させる等のゲーム処理を実行する。
次に、交換データ登録イベントが発生したと判断された場合(ステップS4においてYES)には、CPU31(アプリケーション実行処理部201)は、交換データの指定入力があったかどうかを判断する(ステップS6)。
次に、ステップS6において、交換データの指定入力があったと判断した場合(ステップS6においてYES)には、CPU31(交換データ格納処理部202)は、交換データ保存領域80を確認する(ステップS8)。
一方、ステップS6において、CPU31(アプリケーション実行処理部201)は、交換データの指定入力が無いと判断した場合(ステップS6においてNO)には、ユーザが交換を希望しないため、再び、ステップS1に戻り通常のアプリケーションを実行する。
次に、CPU31(交換データ格納処理部202)は、交換データ保存領域80を確認した後、交換データ保存領域80に空きスロットがあるどうかを判断する(ステップS10)。
ステップS10において、CPU31(交換データ格納処理部202)は、交換データ保存領域80に空きスロットがあると判断した場合(ステップS10においてYES)には、空きスロットに交換データを格納する(ステップS12)。なお、その際、上述したように交換データを格納したスロットに対応付けてアプリケーションを識別するアプリケーションIDおよびアルゴリズム識別情報を登録する。
一方、ステップS10において、CPU31(交換データ格納処理部202)は、空きスロットがないと判断した場合(ステップS10においてNO)には、スロットのデータを削除したかどうかを判断する(ステップS11)。図示は省略するが、たとえば空きスロットが無い旨をユーザに通知し、ユーザにいずれかのスロットのデータを削除するように指定させることが可能である。そして、指定があった場合には、当該スロットのデータが削除されるものとする。
ステップS11において、CPU31(交換データ格納処理部202)は、スロットのデータが削除されたと判断した場合には、再びステップS10に戻る。そして、空きスロットに交換データを格納する。
一方、ステップS11において、CPU31(交換データ格納処理部202)は、スロットのデータが削除されていないと判断した場合には、再び、ステップS1に戻り、通常のアプリケーションを実行する。当該処理までが交換データ格納処理部202における処理である。
以降の処理は、アプリケーション実行処理部201における処理である。
そして、次に、CPU31(アプリケーション実行処理部201)は、ユーザからアプリケーションの終了指示が有るかどうかを判断する(ステップS14)。
ステップS14において、CPU31(アプリケーション実行処理部201)は、ユーザからアプリケーションの終了指示が有ると判断した場合には、次のステップS16に進む。一方、ステップS14において、ユーザからアプリケーションの終了指示が有ると判断した場合(ステップS14においてNO)には、再び、ステップS1に戻り、通常のアプリケーションを実行する。
次に、ステップS16において、CPU31(アプリケーション実行処理部201)は、交換データが交換データ保存領域80に格納されたかどうかを判断する。そして、CPU31(アプリケーション実行処理部201)は、交換データ保存領域80に交換データが格納されたと判断した場合(ステップS16においてYES)には、バックアップRAM28に交換データを交換データ保存領域80に格納したことを示す交換フラグデータをセーブデータ(例えば、獲得したアイテム、キャラクタ、文章や絵などの作成データなどアプリケーションで利用するデータ)とともに保存する(ステップS18)。そして、処理を終了する(エンド)。一方、CPU31(アプリケーション実行処理部201)は、交換データ保存領域80に交換データが格納されていないと判断した場合(ステップS16においてNO)には、バックアップRAM28にセーブデータのみを保存する(ステップS20)。そして、処理を終了する(エンド)。
当該処理により、バックアップRAM28に交換フラグデータを保存することにより、上述したようにステップS2における判断処理において、交換フラグデータが含まれている場合には、交換データの追加処理および消去処理を実行することが可能である。
なお、本例においては、一例として、メモリカード26のROMに格納されたアプリケーションを実行した場合における交換データ保存領域80への交換データの格納処理について説明したが、特にメモリカード26に格納されたアプリケーションに限られず、内蔵アプリ保存領域84に格納されているアプリケーションを実行した場合における交換データの格納処理についても、内蔵アプリ保存領域84に各アプリケーション毎に設けられた、当該アプリケーションのセーブデータを保存するための保存領域を上記したバックアップRAMと対応付けて用いることにより実現可能である。
また、本例においては、交換データを追加および消去する機能等についてはメモリカード26のROM27に格納されているアプリケーションにより実行される機能として説明したが、システムプログラム保存領域86に保存されている本体機能プログラムにより実行される機能としても良い。具体的には、メモリカード26に格納されたデータをロードした後、展開されているデータ中に、交換フラグデータが有るか否かを判断して、交換データを追加および消去する処理を実行した後、アプリケーションを実行するようにすれば良い。
図9を用いて、アプリケーションにより交換データ保存領域80に交換データを格納する場合について説明する。
図9(A)においては、たとえば、上述したメモリカードに記憶されたアプリケーション名Aを実行することによって、交換データ保存領域80のスロットSL1にアプリケーションIDであるアプリケーション名Aに対応して交換データが格納されている場合が示されている。なお、ここでは、説明を簡易にするためにアプリケーション名とアプリケーションIDとを同一のものとして説明するが、特に同じである必要は無く異なるものとすることも可能である。また、本例においては当該アプリケーションIDを他のアプリケーションIDと比較する際の判定のアルゴリズムとして複数の判定方式を設けることが可能であり、ここでは、図示していないがアプリケーションIDとともに、判定のアルゴリズムの方式を示す情報として、アプリケーションID内のデータ形式すなわち交換条件データの有無に従うアルゴリズム識別情報も登録することが可能である。
また、1つのアプリケーションに対して1つの交換データが格納される必要は無く、図9(B)においては、上述したメモリカードに記憶されたアプリケーションCを実行することによって、交換データ保存領域80の2つのスロットSL3,SL4にアプリケーションIDであるアプリケーション名Cに対応付けられた交換データがそれぞれ格納されている場合が示されている。なお、ここで表記されている数字は、1つ目のデータ、2つ目のデータを指し示すものとし、同一のアプリケーション名をアプリケーションIDとすることも可能である。なお、後述するが、アプリケーション識別情報(ID)としてアプリケーション名Cのみではなく、他の情報(例えば交換データを識別する情報)を追加したデータをスロットSL3,SL4に登録することによって、より、高度な交換条件として用いることができる(図23を参照)。
また、特にメモリカードのアプリケーションに限られず、図9(C)に示されるように、ゲーム装置1の内蔵アプリ保存領域84に格納されている内蔵アプリDを実行することによって、交換データ保存領域80のスロットSL5にアプリケーションIDであるアプリケーション名Dに対応付けられた交換データが格納されている場合が示されている。
そして、本例における交換データ保存領域80の各スロットに格納された交換データは、所定の後述する条件が満たされた場合に他のゲーム装置に送信される。
<無線通信モジュール38に対する通信設定>
次に、図10を用いて無線通信モジュール38への通信設定処理について説明する。
図10を参照して、CPU31(通信設定処理部204)は、交換データ保存領域80が変更されたかどうかを判断する(ステップS23)。
本例においては、一例として、交換データ保存領域80における内容が変更された場合をトリガとして動作する場合として説明する。例えば、図8で説明した如くアプリケーションプログラムが交換データ保存領域80に交換データを格納したことに応答して通信設定処理部204における処理が実行されるものとする。
ステップS23において交換データ保存領域80の変更が合った場合(ステップS23においてYES)には、通信設定処理を実行する(ステップS24)。
図11を用いて、CPU31(通信設定処理部204)における通信設定処理について説明する。
図11を参照して、まず、本体側のCPU31(通信設定処理部204)は、保存用データメモリ34の交換データ保存領域80を確認する(ステップS30)。そして、次に、CPU31(通信設定処理部204)は、保存用データメモリ34の交換データ保存領域80に交換データがあるかどうかを判断する(ステップS32)。
そして、ステップS32において、CPU31(通信設定処理部204)は、交換データ保存領域80のスロットに交換データがあると判断した場合(ステップS32においてYES)には、スロットに格納されている各交換データと対応付けられている各アプリケーションIDおよびMACアドレスリスト保存領域88,88#に格納されているMACアドレスリストを無線通信モジュール38に出力する(ステップS34)。
そして、無線通信モジュール側において、CPU31(通信設定処理部204)の指示によりアプリケーションIDとMACアドレスリストをそれぞれRAM66のアプリケーションID保存領域68およびMACアドレスリスト保存領域70,70#にそれぞれ格納する(ステップS36)。そして、処理を終了する(リターン)。
なお、本実施例においては、携帯端末間通信処理および携帯固定端末間通信処理が一連の処理として連続して実行される方式であるため後述する携帯固定端末間通信処理のMACアドレスフィルタリング処理に用いられる固定端末機器のMACアドレスリストについてもMACアドレスリスト保存領域88#から読み出して、MACアドレスリスト保存領域70#に格納するようにしている。したがって、2つの種類がそれぞれ異なる通信処理について、それぞれ独立に通信設定するのではなく、1回にまとめて設定することが可能であり効率的な通信設定を実現することが可能である。
また、本例の如く、携帯端末間通信処理のMACアドレスフィルタリング処理に用いられるMACアドレスリスト保存領域70と、携帯固定端末間通信処理のMACアドレスフィルタリング処理に用いられるMACアドレスリスト保存領域70#とをそれぞれ別々に設けることにより、MACアドレスフィルタリング処理の処理負荷を軽減することが可能である。
また、本例においては当該アプリケーションIDを他のアプリケーションIDと比較する際の判定のアルゴリズムとして複数の判定方式を設けることが可能であり、アプリケーションIDを各判定方式に対応するリストとして纏めてアプリケーションID保存領域68に保存することも可能である。具体的には、CPU31(通信設定処理部204)は、上述したようにアプリケーションIDに対応付けられている判定のアルゴリズムの方式を示すアルゴリズム識別情報を確認して、アプリケーションID保存領域68のアルゴリズム識別情報毎に設けられた対応するリストに当該アプリケーションIDを保存するように指示する。なお、リスト毎に保存する際には、判定のアルゴリズムの方式を示す情報(アルゴリズム識別情報)を含むリストヘッダ情報がそれぞれのリストに対して設けられる。
当該処理により無線通信モジュール38による無線通信の準備が完了する。すなわち、無線通信モジュール38のCPU60は、交換相手探索処理のための送信無線フレームを生成して他のゲーム装置に送信することが可能となる。
具体的には、CPU60は、アプリケーションID保存領域68に格納されている交換データ保存領域80のスロットに格納されている実際の交換データと対応付けられているアプリケーションIDを含めた送信無線フレームを他のゲーム装置に送信することが可能となる。なお、アプリケーションIDを各判定方式に対応するリストとして纏めてアプリケーションID保存領域68に保存している場合には、リスト毎に送信無線フレームに含めることが可能である。なお、本例においては、交換データ保存領域80のスロットに複数の交換データが格納されている場合について説明するが、1つの交換データのみが格納されている場合であっても1つのアプリケーションIDを含むリストとして送信無線フレームに含めることが可能である。
したがって、受信無線フレームを受信した他のゲーム装置は、その内容であるアプリケーションIDを確認することにより、他のゲーム装置自身が有している交換データに対応付けられているアプリケーションIDと比較して、一致するものがあるならば、交換データの交換が可能であり、不一致すなわち一致するものが無いならば交換データの交換が不可能であると判断することが可能となる。
また、MACアドレスリスト保存領域70に本体側のCPU31から出力されたMACアドレスリストを格納することにより、後述する携帯端末間通信処理におけるMACアドレスフィルタリング処理を実現することが可能となる。
一方、ステップS32において、CPU31(通信設定処理部204)は、交換データ保存領域80のスロットに交換データがないと判断した場合(ステップS32においてNO)には、上記の処理を実行することなく処理を終了する(リターン)。この場合には、スロットに交換データが無いため後述する携帯端末間通信に従う他のゲーム装置との間での交換データの授受処理は実行されないが、後述する携帯固定端末間通信に従う配信データを受信することが可能である。
再び、図10を参照して、次に、CPU31(通信指示処理部206)は、無線通信モジュール38に対して無線通信の通信開始指示を出力する(ステップS26)。当該指示により無線通信モジュール38による無線通信が開始される。たとえば、CPU31(通信指示処理部206)は、通信設定処理部204における通信設定処理の後、無線通信モジュール38を利用したアプリケーションが実行されていないと判断した場合に無線モジュール38に無線通信の通信開始指示を出力する。
なお、本例においては、一例として、無線通信モジュール38による無線通信の準備として、交換データ保存領域80の内容に変更が有ったかどうかに基づいて、例えば、図8で説明した如くアプリケーションプログラムが交換データ保存領域80に交換データを格納したことに応答して当該通信設定処理部204における処理を実行し、通信指示処理部206における通信開始指示を出力する場合について説明したが、特にその場合に限られず、電源投入時に、無線通信が有効に設定された場合に通信設定処理(ステップS24)を開始するようにすることも可能である。あるいは、ユーザからの操作指示に応答して通信設定処理(ステップS24)を開始するようにしても良い。あるいは、所定期間経過毎に、自動的に通信設定処理(ステップS24)を開始するようにしたり、これらを組み合わせるようにしても良い。
図12を用いて、通信設定処理によりRAM66に格納されたデータの概念図について説明する。
図12(A)を参照して、ここでは、RAM66のアプリケーションID保存領域68にアプリケーションID「A,B,C1,C2,D」がそれぞれ格納されている場合が示されている。
なお、図12(A)は、MACアドレスリストには何も格納されていない状態である。
図12(B)においては、図12(A)で説明したアプリケーションIDがアプリケーションID保存領域68に格納されるとともに、MACアドレスリストとして、MACアドレスAD1,AD2,AD3がMACアドレスリスト保存領域70に格納されている場合が示されている。当該MACアドレスリストのデータは、後述する携帯端末間通信におけるMACアドレスの比較によるMACアドレスフィルタリング処理の際に用いられる。
<無線通信モジュール38による無線通信の全体フロー>
図13を用いて、本発明の実施の形態に従う無線通信モジュール38で実行する無線通信のフローについて説明する。
図13を参照して、CPU31からの通信開始指示に従い無線通信モジュール38のCPU60は、以下の処理を実行する。具体的には、CPU60は、所定期間の間、携帯端末間通信を実行する(ステップS44)。そして、再び、所定期間の間、携帯端末間通信を実行する(ステップS46)。そして、次に、所定期間の間、携帯固定端末間通信を実行する(ステップS48)。そして、再び、ステップS44に戻って携帯端末間通信を実行する。
なお、携帯端末間通信と携帯固定端末間通信を実行する所定期間の長さは同じであっても良いし、異なるものとすることも可能である。
また、本例においては、一例として、携帯端末間通信を実行した後に、携帯固定端末間通信を実行する場合について説明するが、特に当該順序に限られず、携帯固定端末間通信を最初に実行するようにしても良い。
また、本実施例においては、2回の携帯端末間通信の後に、1回の携帯固定端末間通信を実行する場合について説明するが、特にこの場合に限られず、回数は自由に設定することが可能である。
当該携帯端末間通信(図14)および携帯固定端末間通信(図47)については、一例として無線通信モジュール38のCPU60がROM72に格納されている携帯端末間通信を実行するためのアプリケーションおよび携帯固定端末間通信を実行するためのアプリケーションをそれぞれ実行することにより実現されるものである。
したがって、無線通信モジュール38は、本体側のCPU31のアプリケーションの実行の有無に関わらず、例えば、アプリケーションを実行していないとき、さらには、スリープ状態等の省電力状態にあるときでも、上記の携帯端末間通信および携帯固定端末間通信を実行し続ける。
なお、本体側のCPU31は、無線通信モジュール38を利用するアプリケーションを実行する場合には、無線通信モジュール38に対して、当該無線通信の中止を指示し、当該無線通信を終了させて、当該アプリケーションに基づく別の通信を実行することも可能である。
そして、CPU31は、当該別の通信が終了した場合には、上記で説明した通信設定処理部204における通信設定処理後、通信指示処理部206による通信開始指示を出力する。これにより、再び携帯端末間通信および携帯固定端末間通信である無線通信を再開することが可能である。
<無線通信モジュール38による携帯端末間通信>
図14を用いて、本発明の実施の形態に従う携帯端末間通信について説明する。当該処理は、無線通信モジュール38において交換データを交換する通信相手を探索する交換相手探索処理であり、一例としてCPU60が、ROM72に格納されている携帯端末間処理を実行するためのアプリケーションを実行することにより実現される。
図14を参照して、まず、CPU60(無線フレーム設定部222)は、送信無線フレームを設定する(ステップS50)。
具体的には、CPU60(無線フレーム設定部222)は、携帯ゲーム装置3に対して送信する送信データとしてRAM66に格納されているアプリケーションID保存領域68に格納されているアプリケーションIDに基づく送信無線フレームを設定する。
なお、アプリケーションIDを各判定方式に対応するリストとして纏めてアプリケーションID保存領域68に保存している場合には、アプリケーションIDをリスト毎に送信無線フレームに含める。その際には、リストを識別するために設けられた判定のアルゴリズムの方式を示すアルゴリズム識別情報を含むリストヘッダ情報もリストとともに含めた送信無線フレームを設定する。設定された送信無線フレームは、RF−IC62を介して外部に出力される送信データとしてRAM66の送信無線フレーム保存領域67に保存される。また、設定された送信無線フレームは、後述するアプリケーションID判定処理において用いられる。
図15を用いて、本発明の実施の形態に従う携帯端末間通信においてゲーム装置において送信される送信無線フレームの構成について説明する。なお、受信される受信無線フレームの構成についても同様である。
図15を参照して、送信無線フレームは、ヘッダフィールドD1と、データフィールドD3とを含む。
ヘッダフィールドD1は、当該送信無線フレームを受信無線フレームとして受信するインターフェース(無線通信モジュール)に対して当該受信無線フレームの開始を認識させ、同期を取るタイミングを設定するためのデータやフレーム長およびMACアドレスを規定するMAC部D2等を含む。
データフィールドD3は、複数のIE(Information Element)データを含む。例えば、無線通信で用いられる識別コード、SSID(Service Set Identifier)や、電波干渉を避けるために設定される無線チャンネル(周波数)等のデータに関するIEデータがそれぞれ格納される。
そして、本例においては、データフィールドD3に携帯端末間通信のIEデータとして、ベンダ特定IEデータD4が含まれる場合が示されている。ベンダ特定IEデータは、本例における携帯端末間通信における交換データの通信処理を実行するか否かに関する通信条件に相当する。
ここで、MACアドレスを規定するMAC部D2の構成について説明する。
MAC部D2は、ネットワーク機器のベンダー毎に割り当てられているベンダーコードD5と、各ベンダがネットワークインターフェース毎に異なるように割り当てるインタフェースコードD6とを含む。
ベンダーコードD5およびインタフェースコードD6は、それぞれ3オクテット(1オクテットは8ビット)で構成され、ベンダーコードD5の最初のオクテットD5−1の最下位のビットD5bがX、最下位から2番目のビットD5aがYとしてMACアドレスのタイプを規定するものとして設けられている。
具体的には、ビットXは、グループ分けされた複数の宛先を示すマルチキャストアドレスか、ただ1つの宛先を表すユニキャストアドレスかを判定するビットとして用いられる。本例においては、ビットX=1の場合には、マルチキャストアドレス、ビットX=0の場合には、ユニキャストアドレスとする。
そして、ビットYは、ユニキャストアドレスの場合において、グローバルアドレスか、ローカルアドレスかを判定するビットとして用いられる。本例においては、ビットX=0の場合にビットY=0の場合には、グローバルアドレス、ビットY=1の場合には、ローカルアドレスとする。
そして、本例においては、IEデータに含まれる携帯端末間通信のMACアドレスのタイプとして、ビットX=0、Y=1が設定されているものとする。すなわち、ベンダーコードD5には、ローカルアドレスが設定されるものとする。
当該ローカルアドレスについては後述するが変更することが可能である。
図16を用いてベンダ特定IDデータD4の構成について説明する。
図16を参照して、ベンダ特定IEデータは、タグ情報DD1、タグ長情報DD2、ベンダ情報DD3、通信データ識別情報DD4、第1ID群DDA、第2ID群DDBとを含む。
タグ情報DD1は、複数のIEデータをそれぞれ識別する識別データである。タグ長情報DD2は、ベンダ特定IEデータD4のデータ長を示すデータが含まれている。
ベンダ情報DD3は、当該データを提供する企業等を識別するためのデータである。
通信データ識別情報DD4は、通信データの種別を示すデータであり、携帯端末間通信の場合には、携帯端末間通信の通信データを示す情報が格納される。なお、携帯固定端末間通信の場合において、固定端末機器5から送信される配信無線フレームには、携帯固定端末間通信の通信データを示す別の情報が格納される。当該情報を確認することにより携帯端末間通信の通信データかどうか、すなわち、受信無線フレームが携帯端末間処理として処理可能な無線フレームであるかどうかが判断される。あるいは、受信した配信無線フレームが携帯固定端末間処理として処理可能な無線フレームであるかどうかが判断される。
本例においては、一例として、アプリケーションIDを各判定方式に対応するリストとして纏めてアプリケーションID保存領域68に保存している場合について説明する。したがって、その後に、アルゴリズム識別情報毎のアプリケーションIDのリストおよび当該リストを識別するために設けられたリストヘッダ情報が設けられる形式となっている。当該形式により、複数のアプリケーションIDで比較のアルゴリズムを識別するアルゴリズム識別情報を共有することができるためデータ量を縮小することが可能となる。また、比較のアルゴリズム毎にアプリケーションIDのリストが設けられた形式であるため比較の際の検索が容易となり高速な比較処理が可能となる。なお、比較のアルゴリズムについては後述する。
本例においては、一例として比較のアルゴリズムを規定する2つのそれぞれ異なるアルゴリズム識別情報に従って第1ID群DDAと、第2ID群DDBとが設けられている場合が示されている。
第1ID群DDAは、第1IDリストヘッダ情報DD5と、第1IDリストDD6とを含む。
第1IDリストDD6は、複数のアプリケーションIDを含む。本例においては一例として、アプリケーションID[0]DD6−1、アプリケーションID[1]DD6−2、・・・が含まれる場合が示されている。
各アプリケーションIDは、長さデータDD9と、IDデータDD10とを含む。長さデータDD9は、IDデータDD10の比較に用いられる長さを示すデータである。IDデータDD10は、アプリケーション毎に予め設けられたアプリケーション名を示す識別データである。当該アプリケーションIDは、上述したCPU31におけるアプリケーションの実行により交換データ登録イベントの発生および交換データの指定入力に従い交換データに対応付けられて設定される。例えば、この場合は一例として交換条件データ等の設定はなかったものとする。
当該第1IDリストDD6の複数のアプリケーションIDのリストのヘッダ情報として、第1IDリストヘッダ情報DD5が設けられる。
具体的には、第1IDリストヘッダ情報DD5は、交換データ用のアプリケーションIDのリストを規定するシステムフラグ情報DD5−1、比較のアルゴリズムを規定するアルゴリズム識別情報DD5−2、リストとして設けられたアプリケーションIDの長さあるいは個数を規定するリスト長情報DD5−3とを含む。
第2ID群DDBは、第2IDリストヘッダ情報DD7と、第2IDリストDD8とを含む。
第2IDリストヘッダ情報DD7は、システムフラグ情報DD7−1、アルゴリズム識別情報DD7−2、リスト長情報DD7−3とを含む。
第2IDリストヘッダ情報DD7−1は、上述したように交換データ用のアプリケーションIDのリストを規定するシステムフラグ情報DD7−1、比較のアルゴリズムを規定するアルゴリズム識別情報DD7−2、リストとして設けられたアプリケーションID#の長さあるいは個数を規定するリスト長情報DD7−3とを含む。
第2IDリストDD8は、複数のアプリケーションID#を含む。本例においては一例として、アプリケーションID#[0]DD8−1、アプリケーションID#[1]DD8−2、・・・が含まれる場合が示されている。
各アプリケーションID#は、IDデータDD11と、フィルタサイズデータDD12と、センドフラグデータDD13と、レシーブフラグデータDD14と、マスクデータDD15と、コンディションデータDD16と、リクエストDD17とを含む。
本例においてアプリケーションID#は、上述した送受信条件データおよび取得条件データが交換条件データとして収められている。具体的には、センドフラグデータおよびレシーブフラグデータが送受信条件データを示すデータである。また、マスクデータ、コンディションデータ、リクエストデータが取得条件データを示すデータである。当該アプリケーションID#は、上述したCPU31におけるアプリケーションの実行により交換データ登録イベントの発生および交換データの指定入力に従い交換データに対応付けられて設定される。例えば、この場合は一例として交換データ登録イベントにおいて、送受信条件データおよび取得条件データ等の交換条件データの設定があったものとする。
IDデータDD11は、アプリケーション毎に予め設けられたアプリケーション名を示す識別データである。
フィルタサイズデータDD12は、マスクデータDD15、コンディションデータDD16、リクエストデータDD17のデータ長を規定するデータである。したがって、フィルタサイズデータDD12の値に従ってマスクデータDD15、コンディションデータDD16、リクエストデータDD17の範囲が規定されることになる。
センドフラグデータDD13、レシーブフラグデータDD14は、アプリケーションID#に含まれるIDデータDD11に対応する交換データの送受信条件データを規定するものである。一例として、送信通信のみ可か、受信通信のみ可か、双方向通信のみ可か、いずれの条件でも通信可かその通信の条件を規定するためのデータである。
マスクデータDD15、コンディションデータDD16、リクエストデータDD17は、交換データの取得条件データを規定するデータである。
コンディションデータDD16は、交換データの交換に際し、自己が保有しているデータあるいは自己の属性等を示すデータ等、相手に送信する自己の交換データに関連付けられた属性データである。自己が送信する交換データに関して相手の要求条件を満たしているかどうかに用いられる。
リクエストデータDD17は、交換データの交換に際し、受信する相手に要求する交換データに関連付けられた属性データである。相手から受信する交換データに関して自己の要求条件を満たしているかどうかに用いられる。
マスクデータDD15は、リクエストデータDD17の有効/無効の領域を設定するデータである。すなわち、マスクデータDD15がリクエストデータDD17の無効を規定した場合には、交換データの交換に際し、自己の要求条件は無い、言い換えるならば自己の要求条件は常に満たしていることを意味する。
当該アプリケーションIDのリストを送信無線フレーム中にデータとして含めることにより、当該送信無線フレームを受信無線フレームとして受信した側において、当該アプリケーションIDのリストに基づいて、例えば同じアプリケーションの交換データを有しているか否かを判断することが可能である。なお、比較した場合に条件が一致するか否かを判断できさえすれば良く、例えば、当該アプリケーションIDそのものを送信するのではなく、ハッシュ関数に基づくハッシュ値を送信して、受信した側においてデータ比較するようにしても良い。他の情報等についても同様にすることも可能である。
当該送信無線フレームは、不特定の相手(ゲーム装置)に対して送信されたものであり、不特定の相手(ゲーム装置)が受信無線フレームとして受信するものである。後述するが子機側のゲーム装置は、宛先を特定せずに当該送信を繰り返し実行する。そして、当該送信無線フレームを受信無線フレームとして受信したゲーム装置(親機側)は、当該送信無線フレームを発信したゲーム装置(子機側)に対して、自己が有するデータに基づく送信無線フレームを送信し、データの授受に従って不特定のゲーム装置同士が通信処理を実行する。
なお、本例における送信無線フレームについては、一例として、複数のIE(Information Element)データが含まれた送信無線フレームについて説明したが、特にこれに限られず、ベンダ特定IEデータのみを含む送信無線フレームとすることも可能である。
なお、本例においては、一例として、アプリケーションIDを各判定方式に対応するリストとして纏めてアプリケーションID保存領域68に保存している場合において、アプリケーションIDをリスト毎に送信無線フレームに含めるとともに、当該リストを識別するために設けられた判定のアルゴリズムの方式を示すアルゴリズム識別情報を含むリストヘッダ情報もリストとともに含めた送信無線フレームを設定する場合について説明したが、アプリケーションID保存領域68にリスト毎にアプリケーションIDが保存されていない場合であっても上記の送信無線フレームを設定することは可能である。
例えば、アプリケーションID保存領域68にアプリケーションIDと、当該アプリケーションIDに対応づけられたアルゴリズム識別情報を保存しておいて、送信無線フレームを設定する際に、無線フレーム設定部222が、アプリケーションID保存領域68に保存されているアプリケーションIDと、当該アプリケーションIDに対応づけられたアルゴリズム識別情報とに基づいて、アルゴリズム識別情報毎のリストと、当該リストを識別するためのリストヘッダ情報を作成して、送信無線フレームを設定するようにすることも可能である。
再び、図14を参照して、送信無線フレームを設定した後、次に、CPU60(通信相手探索部224)は、所定期間が経過したかどうかを判断する(ステップS51)。そして、ステップS51において、CPU60は、所定期間が経過していないと判断した場合(ステップS51においてNO)には、通信相手(他のゲーム装置)を探索する通信相手サーチ処理を実行する(ステップS52)。通信相手サーチ処理については後述する。
そして、次に、CPU60(通信相手探索部224)は、通信相手サーチ処理により通信相手が発見されたかどうかを判断する(ステップS54)。
ステップS54において通信相手が発見されない場合(ステップS54においてNO)には、ステップS51に戻る。
ステップS54において、通信相手が発見された場合(ステップS54においてYES)には、CPU60(装置識別情報比較部226)は、MACアドレスを比較する(ステップS56)。具体的には、受信無線フレームに含まれるMACアドレスと、上述したMACアドレスリスト保存領域70に格納されているMACアドレスとを比較する。上述したようにMACアドレスは、通信対象を識別する識別情報であり、各ゲーム装置にそれぞれ固有のMACアドレスが割り当てられている。そして、MACアドレスリスト保存領域70には、各ゲーム装置に割り当てられたMACアドレスが保存されている。
そして、次に、CPU60(装置識別情報比較部226)は、受信無線フレームに含まれる他のゲーム装置のMACアドレスが、MACアドレスリストに格納されているMACアドレスと一致するかどうかを判断する(ステップS58)。
そして、ステップS58において、MACアドレスが一致したと判断した場合(ステップS58においてYES)には、再びステップS51に戻る。すなわち、以降の処理を実行することなく当該MACアドレスに対応する他のゲーム装置との通信を終了する。したがって、通信可能範囲10に含まれる他のゲーム装置からの通信対象となるデータを受信する毎に識別情報であるMACアドレスと一致するかどうかの判断が繰り返される。
図17を用いて、本発明の実施の形態に従うMACアドレスを比較する場合の概念図について説明する。
本例においては、ゲーム装置1と、通信相手である他のゲーム装置としてゲーム装置3との通信接続について説明する。
図17を参照して、ここでは、ゲーム装置1側において、交換データ保存領域80のスロットSL1〜SL5にそれぞれ交換データが格納されている場合が示されている。
そして、無線通信モジュール38のRAM66のアプリケーションID保存領域68には、図12(A)で説明したのと同様にアプリケーションID「A,B,C1,C2,D」がそれぞれ格納されている場合が示されている。
なお、MACアドレスリストには何も格納されていない。
次に、ゲーム装置3側について説明する。ゲーム装置3側の対応する同一の構成要素については、「P」の記号をさらに付加している。具体的には、ゲーム装置1の交換データ保存領域80と、ゲーム装置3側の交換データ保存領域80Pとが対応している。
また、ゲーム装置1の無線通信モジュール38と、ゲーム装置3側の無線通信モジュール38Pとが対応している。他の場合についても同様である。
そして、ゲーム装置3の交換データ保存領域80PのスロットSL1,SL2にそれぞれ交換データが格納されている場合が示されている。
ゲーム装置3側においても同様の方式に従って、無線通信モジュール38PのアプリケーションID保存領域68PにアプリケーションID「B,E」がそれぞれ格納されている場合が示されている。
なお、MACアドレスリストには何も格納されていない。当該場合において、ゲーム装置1である自機のMACアドレスはAD0に設定されているものとする。
また、ゲーム装置3のMACアドレスはAD1に設定されているものとする。
例えば、ゲーム装置3からの受信無線フレームを受信した場合には、ゲーム装置3のMACアドレスAD1は、ゲーム装置1のMACアドレスリストには登録されていないためMACアドレスは一致しないと判断される。したがって、次の処理に進む。
なお、本例においては、ゲーム装置1において、MACアドレスリストに登録されているかどうかが判断される場合について説明しているが、ゲーム装置3側においても同様の処理が実行される。
図18を用いて、本発明の実施の形態に従うMACアドレスを比較する場合の別の概念図について説明する。
図18を参照して、ここでは、図17の構成と比較して、MACアドレスリストに登録されている内容が異なる。具体的には、無線通信モジュール38のMACアドレスリスト保存領域70には、MACアドレスAD1が登録されている場合が示されている。
また、同様に、ゲーム装置3側のMACアドレスリスト保存領域70PにMACアドレスAD0が登録されている場合が示されている。
例えば、ゲーム装置3からの受信無線フレームを受信した場合には、ゲーム装置3のMACアドレスAD1は、ゲーム装置1のMACアドレスリストに登録されておりMACアドレスが一致すると判断される。
したがって、当該場合には、当該MACアドレスに対応する他のゲーム装置であるゲーム装置3との以降の通信処理を行わない(MACアドレスフィルタリング処理)。すなわち、MACアドレスリストに登録されている以前に通信処理が実行されたゲーム装置との間では実質的な通信は実行されない。なお、ゲーム装置3側においても同様の処理が実行される。
なお、上述したようにMACアドレスリスト保存領域70に格納されているMACアドレスリストはたとえば所定の操作指示に従って消去することも可能であり、消去された場合には、再度、以前に通信処理が実行された装置ともデータ通信を実行することが可能である。すなわち、以前に交換データの授受が実行された装置についても状況が変わり(新たな交換データが設定されているなど)、交換データの授受が可能な状況となっている可能性もあるため再度、交換データの交換が可能か否かを判断して、可能であるならば交換データの授受を実行するようにしても良い。
たとえば、図8のステップS12において空きスロットに交換データを格納した際に、MACアドレスリスト保存領域88および70に格納されているアドレスリストを消去するようにしても良い。
再び図14を参照して、ステップS58において、MACアドレスが一致しないと判断した場合(ステップS58においてNO)には、CPU60(通信データ判定部228)は、受信したデータの内容を確認する(ステップS59)。
そして、CPU60(通信データ判定部228)は、受信したデータとして、受信無線フレームが携帯端末間処理として処理可能な無線フレームであるかどうかを判定する(ステップS60)。
具体的には、図16で説明した当該データを提供する企業等を識別するためのベンダ情報がゲーム装置1が予め有しているベンダ情報と一致するかどうかを判断する。ベンダ情報が一致する場合とは、送信されたデータの発信源が互いに通信接続が可能な同種の装置であることを意味し、異なる場合には、送信されたデータの発信源が互いに通信接続が不可能である全く種類の異なる装置であることを意味する。
また、通信データ識別情報がゲーム装置1が予め有している通信データ識別情報と一致するかどうかを判断する。通信データ識別情報が一致する場合とは、携帯端末間通信における通信データ、すなわち携帯端末間処理として処理可能な無線フレームであることを意味する。ゲーム装置1側の比較の対象であるベンダ情報は予めROM72に登録されているものとする。また、ゲーム装置1側の比較の対象である通信データ識別情報についても予めROM72に登録されているものとする。
一方、携帯端末間通信における通信データ識別情報と、後述するが携帯固定端末間通信における固定端末機器5から出力される配信無線フレームに含まれる通信データ識別情報とは異なるため仮に携帯端末間通信において固定端末機器5から出力されたビーコン(配信無線フレーム)を受信した場合であっても通信データ識別情報が異なるためデータ通信は実行されず同種のゲーム装置とのみ通信することが可能である。
CPU60(通信データ判定部228)は、携帯端末間通信か携帯固定端末間通信かによって比較する通信データ識別情報を切り替えて、受信したデータ(受信無線フレーム)に含まれている通信データ識別情報と一致するか否か判断する。
すなわち、ステップS60において、受信無線フレームを受信しないと判断した場合(ステップS60においてNO)には、再びステップS51に戻る。したがって、互いに通信接続が不可能である装置からデータを受信あるいは通信対象とならないデータを受信した場合には、以降の処理を実行することなく通信を終了する。なお、本例においてはベンダ情報および通信データ識別情報がともに一致するかどうかを判断する場合について説明したが、通信データ識別情報のみが一致するかどうかを判断するようにしても良い。
次に、受信無線フレームを受信したと判断した場合(ステップS60においてYES)には、次に、CPU60(アプリケーションID判定部230)は、アプリケーションIDの判定処理を実行する(ステップS62)。
アプリケーションIDの判定処理については後述する。
そして、CPU60(アプリケーションID判定部230)は、判定処理結果に基づいてアプリケーションIDの一致フラグがオンであるかどうかを判断する(ステップS64)。具体的には、受信した受信無線フレームに含まれるアプリケーションIDのリストと自己が有している送信無線フレームに含まれるアプリケーションIDのリストとを参照して、一致すると判定されたアプリケーションIDが少なくとも1つ存在するかどうかを判断する。すなわち、ここでは、通信接続により交換可能な交換データを互いに有しているかどうかが判断される。同一のアプリケーションIDであれば、データを交換した場合に同じアプリケーションを実行することにより互いにデータを利用可能である。なお、アプリケーションIDが同じでなくても、データの互換性のあるアプリケーションであることが判定して、そのような関係にあるアプリケーションIDであれば、ステップS64でYesと判断してもよい。
CPU60(アプリケーションID判定部230)は、アプリケーションIDの一致フラグがオンであると判断した場合(ステップS64においてYES)には、一致したアプリケーションIDに対応する交換データを有する他のゲーム装置が発見された旨すなわち通信相手が交換データを交換する交換相手である旨を本体側に通知する(ステップS66)。そして処理を終了する(エンド)。
以降、他のゲーム装置である通信相手と接続を確立して、他のゲーム装置との間での一致したアプリケーションIDに対応する交換データの授受を実行するデータ授受処理については、無線通信モジュール38を用いた本体側のCPU31のアプリケーションとして実行されることになる。
したがって、本体側に、交換データを有する他のゲーム装置が発見された旨を通知することにより無線通信モジュール38のCPU60のみが独立して実行する無線通信、すなわち、無線通信モジュール38において交換データを交換する通信相手を探索する交換相手探索処理は終了する。
一方、ステップS64において、アプリケーションIDの一致フラグがオンでない場合(一致フラグオフ)(ステップS64においてNO)には、ステップS51に戻る。
当該処理により、本例においては、無線通信モジュール38における交換相手探索処理により交換可能な通信相手が見つかった場合にのみ、本体側のCPU31に通知されて、通信相手との接続が確立されて、交換データの授受が実行される。したがって、例えば、本体側のCPU31がスリープ状態等の省電力状態である場合に、無線通信モジュール38における交換相手探索処理により通信相手が見つかった場合であっても交換が可能でなければ本体側のCPU31に通知されて通信接続が確立されることはないため、ゲーム装置1全体における省電力を図ることが可能である。
<アプリケーションIDの判定処理>
本実施例においては、アプリケーションIDを各判定方式に対応するリストとして纏めた形式である図16に示す送信無線フレームのアプリケーションIDの判定処理について説明する。
図19を用いて、アプリケーションID判定部230における全体のフローについて説明する。
図19を参照して、CPU60(IDリストヘッダ情報比較部232)は、まず、比較対象となるIDリストヘッダ情報を抽出する(ステップS72)。
例えば、まず最初に、受信無線フレーム保存領域69に保存された受信無線フレーム(携帯ゲーム装置3)のベンダ特定IEデータに含まれる第1IDリストヘッダ情報と、送信無線フレーム保存領域67に保存された送信無線フレーム(自機1)のベンダ特定IEデータに含まれる第1IDリストヘッダ情報を抽出する。
なお、当該フローにおいては、後述するが、システムフラグ情報およびアルゴリズム識別情報が一致するまで受信無線フレーム保存領域69に保存された受信無線フレームおよび送信無線フレーム保存領域67に保存された送信無線フレームからIDリストヘッダ情報をそれぞれ1つずつ抽出して、全ての組み合わせにおいて比較処理を実行する。
そして、次に、CPU60(IDリストヘッダ情報比較部232)は、受信無線フレーム保存領域69に保存された受信無線フレームから抽出されたIDリストヘッダ情報に含まれるシステムフラグ情報と、送信無線フレーム保存領域67に保存された送信無線フレームから抽出されたIDリストヘッダ情報に含まれるシステムフラグ情報と一致するかどうかを判断する(ステップS74)。
ステップS74において、システムフラグ情報がともに一致すると判断された場合(ステップS74においてYES)には、次に、CPU60(IDリストヘッダ情報比較部232)は、受信データから抽出されたIDリストヘッダ情報に含まれるアルゴリズム識別情報が送信無線フレーム保存領域67に保存された送信無線フレームから抽出されたIDリストヘッダ情報に含まれるアルゴリズム識別情報と一致するかどうかを判断する(ステップS76)。
ステップS76において、アルゴリズム識別情報が一致しないと判断された場合(ステップS76においてNO)には、ステップS82に進む。
ステップS76において、アルゴリズム識別情報がともに一致すると判断された場合(ステップS76においてYES)には、次に、CPU60(IDリストヘッダ情報比較部232)は、受信無線フレーム保存領域69に保存された受信無線フレームから抽出されたIDリストヘッダ情報に含まれるアルゴリズム識別情報が「0」かどうかを判断する(ステップS78)。
ステップS78において、アルゴリズム識別情報が「0」である場合には、CPU60(IDリスト比較部234)は、第1アルゴリズムに従うIDリスト比較処理を実行する(ステップS80)。そして、処理を終了する(リターン)。第1アルゴリズムに従うIDリスト比較処理については後述する。
一方、ステップS78において、アルゴリズム識別情報が「0」でない場合、すなわち、「1」である場合には、CPU60(IDリスト比較部234)は、第2アルゴリズムに従うIDリスト比較処理を実行する(ステップS86)。そして、処理を終了する(リターン)。第2アルゴリズムに従うIDリスト比較処理については後述する。
一方、ステップS74において、システムフラグ情報が一致しないと判断された場合(ステップS74においてNO)には、次に、CPU60(IDリストヘッダ情報比較部232)は、比較対象となる他のIDリストヘッダ情報が有るかどうかを判断する(ステップS82)。
ステップS82において、比較対象となる他のIDリストヘッダ情報が有ると判断した場合には、次の比較対象となるIDリストヘッダ情報を抽出する(ステップS84)。そして、ステップS74に進み同様の処理を繰り返す。例えば、一例として第2IDリストヘッダ情報を抽出する。
一方、ステップS82において、CPU60(IDリストヘッダ情報比較部232)は、比較対象となる他のIDリストヘッダ情報がないと判断した場合には、処理を終了する(リターン)。
すなわち、受信無線フレーム保存領域69に保存された受信無線フレームおよび送信無線フレーム保存領域67に保存された送信無線フレームからIDリストヘッダ情報を抽出して、全ての組み合わせにおいて一致するものが無い場合には、交換データは存在しないと判断して処理を終了する。
例えば、本例の如く、送信無線フレーム(自機1)に2つのIDリストヘッダ情報が含まれ、また、受信無線フレーム(携帯ゲーム装置)にも2つのIDリストヘッダ情報が含まれる場合において、IDリストヘッダ情報を抽出して全ての組み合わせについて比較する場合について説明すると、まず、送信無線フレーム(自機1)のベンダ特定IEデータに含まれる第1IDリストヘッダ情報を抽出し、受信無線フレーム(携帯ゲーム装置)に含まれる第1IDリストヘッダ情報を抽出して比較する。次に、送信無線フレーム(自機1)のベンダ特定IEデータに含まれる第1IDリストヘッダ情報と、受信無線フレーム(携帯ゲーム装置)に含まれる第2IDリストヘッダ情報を抽出して比較する。次に、送信無線フレーム(自機1)のベンダ特定IEデータに含まれる第2IDリストヘッダ情報を抽出し、受信無線フレーム(携帯ゲーム装置)に含まれる第1IDリストヘッダ情報を抽出して比較する。次に、送信無線フレーム(自機1)のベンダ特定IEデータに含まれる第2IDリストヘッダ情報と、受信無線フレーム(携帯ゲーム装置)に含まれる第2IDリストヘッダ情報を抽出して比較する。
すなわち、簡易に説明すると、まず、送信無線フレーム(自機1)から最初のIDリストヘッダ情報を抽出して固定し、そして、受信無線フレーム(携帯ゲーム装置)からIDリストヘッダ情報を順番に抽出して比較する。システムフラグ情報およびアルゴリズム識別情報が一致しない場合には、次に、送信無線フレーム(自機1)から次のIDリストヘッダ情報を抽出して固定し、そして、受信無線フレーム(携帯ゲーム装置)からIDリストヘッダ情報を順番に抽出して比較する。当該処理を送信無線フレーム(自機1)に含まれているIDリストヘッダ情報の個数分繰り返すことになる。そして、送信無線フレーム(自機1)から最後のIDリストヘッダ情報を抽出して固定し、そして、受信無線フレーム(携帯ゲーム装置)からIDリストヘッダ情報を順番に抽出して比較した場合に、システムフラグ情報およびアルゴリズム識別情報が一致しない場合には、ステップS82において、比較対象IDリストヘッダ情報が無いと判断(ステップS82においてNO)されて、アプリケーションID判定処理が終了する(リターン)。
当該方式により、アプリケーションIDを比較する前に受信無線フレーム保存領域69に保存された受信無線フレームおよび送信無線フレーム保存領域67に保存された送信無線フレームのベンダ特定IEに含まれるIDリストヘッダ情報に基づいて比較処理を継続するべきか否かが判断されるため、高速な比較処理を実行することが可能となる。
図20を用いて、本発明の実施の形態に従う比較対象となるベンダ特定IEの比較について説明する。
図20を参照して、ここでは、図16で説明したものと同様のデータ構成が示されている。
上側が自機1の送信無線フレーム保存領域67に保存された送信無線フレームに含まれるベンダ特定IEの構成であり、下側が携帯ゲーム装置3の受信無線フレーム保存領域69に保存された受信無線フレームに含まれるベンダ特定IEの構成である。
本例においては、自機1の第1IDリストヘッダ情報DD5に含まれるシステムフラグ情報DD5−1と、携帯ゲーム装置3の第1IDリストヘッダ情報DDp5に含まれるシステムフラグ情報DDp5−1とを比較して一致し、さらに、アルゴリズム識別情報DD5−2とアルゴリズム識別情報DDp5−2とを比較して一致した場合において、自機1の第1IDリストDD6に含まれるアプリケーションID[0],ID[1],・・・と、携帯ゲーム装置3の第1IDリストDDp6に含まれるアプリケーションID[0],ID[1],・・・との比較を行う場合が示されている。
図21を用いて、第1アルゴリズムに従うIDリスト比較処理について説明する。
図21を参照して、CPU60(IDリスト比較部234)は、まず、比較対象となるIDリストからアプリケーションIDを抽出する(ステップS90)。
例えば、図20で示されるように、送信無線フレーム保存領域67に保存された送信無線フレーム(自機1)の第1IDリストDD6のアプリケーションID[0]と、受信無線フレーム保存領域69に保存された受信無線フレーム(携帯ゲーム装置3)の第1IDリストDDp6のアプリケーションID[0]とを抽出する。
なお、当該フローにおいては、後述するが、比較する長さおよびIDデータが一致するまで比較対象となるIDリストからアプリケーションIDをそれぞれ1つずつ抽出して、全ての組み合わせにおいて比較処理を実行する。
そして、次に、CPU60(IDリスト比較部234)は、比較する長さが一致するか否かを判断する(ステップS92)。
ステップS92において、CPU60(IDリスト比較部234)は、比較する長さが一致すると判断された場合(ステップS92においてYES)には、IDデータを比較する(ステップS94)。
そして、CPU60(IDリスト比較部234)は、IDデータが一致するか否か判断する(ステップS96)。
ステップS96において、IDデータが一致しないと判断された場合(ステップS96においてNO)には、ステップS100に進む。
ステップS96において、IDデータが一致すると判断された場合(ステップS96においてYES)には、CPU60(IDリスト比較部234)は、アプリケーションIDの一致フラグをオンに設定する(ステップS98)。そして、処理を終了する(リターン)。
一方、ステップS92において比較する長さが一致しないと判断された場合には、次に、CPU60(IDリスト比較部234)は、比較対象となるIDリストから他のアプリケーションIDが有るかどうかを判断する(ステップS100)。ステップS100において、比較対象となるIDリストから他のアプリケーションIDが有ると判断した場合には、比較対象となるIDリストから他のアプリケーションIDを抽出する(ステップS101)。そして、再び、ステップS92に戻る。
例えば、図20で示されるように、送信無線フレーム保存領域67に保存された送信無線フレーム(自機1)の第1IDリストDD6のアプリケーションID[1]を抽出して同様の処理を実行する。
一方、ステップS100において、CPU60(IDリスト比較部234)は、比較対象となるIDリストから他のアプリケーションIDがないと判断した場合には、「I」に進む。
すなわち、比較する長さおよびIDデータが一致するまで、受信無線フレーム保存領域69に保存された受信無線フレームおよび送信無線フレーム保存領域67に保存された送信無線フレームそれぞれの比較対象となるIDリストからアプリケーションIDをそれぞれ1つずつ抽出して、全ての組み合わせにおいて一致するものが無い場合には、図19のステップS82に進み、再度、上述した処理を繰り返す。
例えば、本例においては、一例として、比較対象となるIDリストとして、送信無線フレーム保存領域67に保存された送信無線フレーム(自機1)の第1IDリストDD6と、受信無線フレーム保存領域69に保存された受信無線フレーム(携帯ゲーム装置3)の第1IDリストDDp6とが抽出された場合について説明する。例えば、一例として、第1IDリストDD6および第1IDリストDDp6は、ともに、アプリケーションIDを(n+1)個有しているものとする。
当該場合において、比較対象となるIDリストからアプリケーションIDをそれぞれ1つずつ抽出して全ての組み合わせについて比較する場合について説明すると、まず、送信無線フレーム(自機1)の第1IDリストDD6のアプリケーションID[0]DD6−1を抽出し、受信無線フレーム(携帯ゲーム装置)に含まれる第1IDリストDDp6のアプリケーションID[0]DDp6−1を抽出して比較する。次に、送信無線フレーム(自機1)の第1IDリストDD6のアプリケーションID[0]DD6−1と、受信無線フレーム(携帯ゲーム装置)に含まれる第1IDリストDDp6のアプリケーションID[1]DDp6−2を抽出して比較する。
次に、送信無線フレーム(自機1)の第1IDリストDD6のアプリケーションID[0]DD6−1と、受信無線フレーム(携帯ゲーム装置)に含まれる第1IDリストDDp6のアプリケーションID[2]、アプリケーションID[3]、・・・アプリケーションID[n]をそれぞれ順番に抽出して比較する。
次に、送信無線フレーム(自機1)の第1IDリストDD6のアプリケーションID[1]DD6−2を抽出し、受信無線フレーム(携帯ゲーム装置)に含まれる第1IDリストDDp6のアプリケーションID[0]DDp6−1を抽出して比較する。次に、送信無線フレーム(自機1)の第1IDリストDD6のアプリケーションID[1]DD6−2と、受信無線フレーム(携帯ゲーム装置)に含まれる第1IDリストDDp6のアプリケーションID[1]DDp6−2を抽出して比較する。
次に、送信無線フレーム(自機1)の第1IDリストDD6のアプリケーションID[1]DD6−2と、受信無線フレーム(携帯ゲーム装置)に含まれる第1IDリストDDp6のアプリケーションID[2]、アプリケーションID[3]、・・・アプリケーションID[n]をそれぞれ順番に抽出して比較する。この処理を送信無線フレーム(自機1)の第1IDリストDD6のアプリケーションID[2]、アプリケーションID[3]、・・・アプリケーションID[n]まで同様に繰り返す。
すなわち、簡易に説明すると、比較対象となるIDリストにおいて、まず、送信無線フレーム(自機1)から最初のアプリケーションIDを抽出して固定し、そして、受信無線フレーム(携帯ゲーム装置)からアプリケーションIDを順番に抽出して比較する。比較する長さおよびIDデータが一致しない場合には、次に、送信無線フレーム(自機1)から次のアプリケーションIDを抽出して固定し、そして、受信無線フレーム(携帯ゲーム装置)からアプリケーションIDを順番に抽出して比較する。当該処理を送信無線フレーム(自機1)のIDリストに含まれているアプリケーションIDの個数分繰り返すことになる。そして、送信無線フレーム(自機1)から最後のアプリケーションIDを抽出して固定し、そして、受信無線フレーム(携帯ゲーム装置)からアプリケーションIDを順番に抽出して比較した場合に、比較する長さおよびIDデータが一致しない場合には、ステップS100において、比較対象となるIDリストから他のアプリケーションIDがないと判断(ステップS100においてNO)されて、「I」に進む。
ここで、上記で説明したIDデータの比較について説明する。
図22を用いて、本発明の実施の形態に従うIDデータの比較について説明する。
図22に示されるように自機1の送信無線フレーム保存領域67に保存された送信無線フレームに含まれているアプリケーションIDのIDデータと、携帯ゲーム装置3からの受信無線フレーム保存領域69に保存された受信無線フレームに含まれているアプリケーションIDのIDデータとの比較において、同じ長さのIDデータを比較する。例えば、一例として、当該IDデータは、アプリケーション名等のアプリケーションを特定する情報であるものとする。
具体的には、図16で説明したアプリケーションIDに含まれている上述したIDデータの比較の長さを示す長さデータを用いて当該長さデータが一致するIDデータとのみデータ比較を実行する。
すなわち、長さデータが一致するIDデータすなわち、比較の長さが同じであるIDデータとのみ比較するため、比較の長さが異なるIDデータの比較を実行する必要が無く高速にアプリケーションIDの比較を実行することが可能である。
上記においては、同じ長さデータの自機1のIDデータと携帯ゲーム装置3のIDデータとが一致する場合にアプリケーションIDの一致フラグをオンする方式について説明したが、特にこれに限られず、さらに別の比較を実行することも可能である。
図23を用いて、本発明の実施の形態に従うIDデータのさらに別の比較について説明する。
図23を参照して、この場合には、IDデータに、アプリケーション名等のアプリケーションを特定する情報(アプリケーション名情報)だけでなく、他の情報が含まれている場合が示されている。
他の情報として、自機のIDデータの少なくとも一部を用いて自分が欲しいキャラクタ情報と、自分が相手に渡すキャラクタ情報とを格納する。
一方、他のゲーム装置側においても、同様に、アプリケーション名情報だけでなく、他の情報として、IDデータの少なくとも一部を用いて自分が欲しいキャラクタ情報と、自分が相手に渡すキャラクタ情報とを格納する。
そして、アプリケーション名情報が一致するか否かを判断するとともに、さらに、自機のIDデータに含まれる自分が欲しいキャラクタ情報と、他のゲーム装置のIDデータに含まれる自分が相手に渡すキャラクタ情報とが一致するか否かを判断し、自機のIDデータに含まれる自分が相手に渡すキャラクタ情報と、他のゲーム装置のIDデータに含まれる自分が欲しいキャラクタ情報とが一致するか否かも判断する。アプリケーション名情報の一致のみならず、さらに、交換するキャラクタ情報が一致する場合にアプリケーションIDの一致と判断する。
当該比較方式により、ゲーム装置1である自機と他のゲーム装置3とで実際に交換データを交換する前に、互いに交換する交換データの内容(キャラクタ情報)に基づいて互いが希望する交換データであればアプリケーションIDの一致フラグをオンして本体側に通知し、いずれか一方でも希望しない場合にはアプリケーションIDの一致フラグはオンせず、本体側に通知されないためユーザが望む交換データのみを交換することが可能となる。
すなわち、IDデータにアプリケーション名等のアプリケーションを特定する情報以外に他の情報(例えば交換データ)を含ませることにより、不本意なデータ授受処理を回避することができ、情報処理装置であるゲーム装置に対する興趣性を増すことができる。
なお、当該比較については、例えば、別のアルゴリズム識別情報を用いることにより図22で説明した方式と区別するようにしても良い。
次に、IDデータとは別に、付加的な条件として交換条件データを付加して高度な交換処理を実現する場合について説明する。
具体的には、交換条件データとして送受信条件データと取得条件データとを含む場合について説明する。
図24を用いて、第2アルゴリズムに従うIDリスト比較処理について説明する。
本例においては、アルゴリズム識別情報が「1」である場合に、CPU60(IDリスト比較部234)は、第2アルゴリズムに従うIDリスト比較処理を実行する。
本例においては、一例として、送信無線フレーム保存領域67に保存されている送信無線フレーム(自機1)のベンダ特定IEデータに含まれる第2IDリストヘッダ情報に含まれるアルゴリズム識別情報と、受信無線フレーム保存領域69に保存されている受信無線フレーム(携帯ゲーム装置3)のベンダ特定IEデータに含まれる第2IDリストヘッダ情報に含まれるアルゴリズム識別情報がともに「1」であるものとする。
この場合に、例えば一例として図20で説明した送信無線フレーム保存領域67に保存された送信無線フレームに含まれる第2IDリストと、受信無線フレーム保存領域69に保存された受信無線フレームに含まれる第2IDリストとが比較対象となる。
図24を参照して、CPU60(IDリスト比較部234)は、まず、比較対象となるIDリストからアプリケーションID#を抽出する(ステップS110)。
例えば、図20で示されるように、送信無線フレーム保存領域67に保存された送信無線フレーム(自機1)の第2IDリストDD8のアプリケーションID#[0]と、受信無線フレーム保存領域69に保存された受信無線フレーム(携帯ゲーム装置3)の第2IDリストDDp8のアプリケーションID#[0]とを抽出する。
なお、当該フローにおいては、後述するが、IDデータや取得条件データ等の判定条件を満たすまで比較対象となるIDリストからアプリケーションIDをそれぞれ1つずつ抽出して、全ての組み合わせにおいて比較処理を実行する。
そして、次に、CPU60(IDリスト比較部234)は、抽出されたアプリケーションID#に含まれるIDデータを比較する(ステップS112)。
具体的には、第2IDリストDD8のアプリケーションID#[0]のIDデータと、第2IDリストDDp8のアプリケーションID#[0]のIDデータとを比較する。
そして、次に、ステップS112において、CPU60(IDリスト比較部234)は、IDデータが一致するか否か判断する(ステップS114)。
ステップS114において、IDデータが一致すると判断された場合(ステップS114においてYES)には、CPU60(IDリスト比較部234)は、フィルタサイズデータを比較する(ステップS116)。
そして、次に、CPU60(IDリスト比較部234)は、フィルタサイズが一致するかどうか判断する(ステップS118)。具体的には、第2IDリストDD8のアプリケーションID#[0]のフィルタサイズデータと、第2IDリストDDp8のアプリケーションID#[0]のフィルタサイズデータとを比較する。フィルタサイズデータは、上述したようにマスクデータ、コンディションデータ、リクエストデータの各々のデータのサイズを規定するデータである。
フィルタサイズデータが異なる場合には、比較対象とするデータサイズが異なるため以降の後述するデータ比較処理を実行するまでもなく条件は不一致と判断することが可能である。
そして、次に、ステップS118において、CPU60(IDリスト比較部234)は、フィルタサイズが一致すると判断した場合(ステップS118においてYES)には、次に互いの送受信条件データが満たされるかどうかを判断する。具体的には、送受信条件データであるセンドフラグデータおよびレシーブフラグデータを比較する(ステップS120)。センドフラグデータおよびレシーブフラグデータの比較については後述する。
そして、CPU60(IDリスト比較部234)は、比較の結果、互いの送受信条件データが満たされるすなわちフラグデータがOK判定であるかどうかを判断する(ステップS122)。
図25を用いて、本発明の実施の形態に従う送受信条件データであるセンドフラグデータおよびレシーブフラグデータの比較について説明する。
図25(A)を用いて、自機1における送受信条件データであるセンドフラグデータおよびレシーブフラグデータの形式について説明する。
具体的には、センドフラグとレシーブフラグとの組み合わせに従って、交換データの送受信条件データを設定することが可能である。
具体的には、センドフラグが「1」、レシーブフラグが「0」である場合には、交換データの自機1からの送信通信のみ可能であることを示す。
また、センドフラグが「0」、レシーブフラグが「1」である場合には、交換データの他のゲーム装置からの受信通信のみ可能であることを示す。
また、センドフラグおよびレシーブフラグが「1」、「1」の場合には、いずれの条件であっても交換データの通信が可能であることを示す。すなわち、この場合には、通信相手の送受信条件データに従う通信となる。
また、センドフラグおよびレシーブフラグが「0」、「0」の場合には、交換データの自機1および他のゲーム装置との間での双方向の通信のみ可能であることを示す。
当該送受信条件データに対して、送受信条件データが満たされるすなわちフラグデータがOK判定(以下、単にフラグOK判定とも称する)となる場合について説明する。
自機1のセンドフラグが「1」、レシーブフラグが「0」の場合は、通信相手のセンドフラグが「0」、レシーブフラグが「1」あるいはセンドフラグが「1」、レシーブフラグが「1」の場合にフラグOK判定となる。
自機1のセンドフラグが「0」、レシーブフラグが「1」の場合は、通信相手のセンドフラグが「1」、レシーブフラグが「0」あるいはセンドフラグが「1」、レシーブフラグが「1」の場合にフラグOK判定となる。
自機1のセンドフラグが「1」、レシーブフラグが「1」の場合は、通信相手のセンドフラグが「0」、レシーブフラグが「0」、あるいはセンドフラグが「0」、レシーブフラグが「1」、あるいはセンドフラグが「1」、レシーブフラグが「0」、あるいはセンドフラグが「1」、レシーブフラグが「1」の場合にフラグOK判定となる。
自機1のセンドフラグが「0」、レシーブフラグが「0」の場合は、通信相手のセンドフラグが「0」、レシーブフラグが「0」の場合、あるいは、センドフラグが「1」、レシーブフラグが「1」の場合にフラグOK判定となる。
図25(B)を用いて、送受信条件データに関するフラグデータ比較における具体例について説明する。
例1の場合は、自機1のセンドフラグが「0」、レシーブフラグが「1」で携帯ゲーム装置3のセンドフラグが「1」、レシーブフラグが「0」の場合における比較が示されている。したがって、自機1の送受信条件データは、受信通信のみ可であり、携帯ゲーム装置3の送受信条件データは送信通信のみ可であるため受信フラグOK判定すなわち通信可となる。
例2の場合は、自機1のセンドフラグが「1」、レシーブフラグが「0」で携帯ゲーム装置3のセンドフラグが「0」、レシーブフラグが「1」の場合における比較が示されている。したがって、自機1の送受信条件データは、送信通信のみ可であり、携帯ゲーム装置3の送受信条件データは受信通信のみ可であるためフラグOK判定すなわち通信可となる。
例3の場合は、自機1のセンドフラグが「1」、レシーブフラグが「1」で携帯ゲーム装置3のセンドフラグが「1」、レシーブフラグが「0」の場合における比較が示されている。したがって、自機1の送受信条件データは、いずれの条件でも通信可であり、携帯ゲーム装置3の送受信条件データは送信通信のみ可であるためフラグOK判定すなわち通信可となる。
例4の場合は、自機1のセンドフラグが「1」、レシーブフラグが「0」で携帯ゲーム装置3のセンドフラグが「1」、レシーブフラグが「0」の場合における比較が示されている。したがって、自機1の送受信条件データは、送信通信のみ可であり、携帯ゲーム装置3の送受信条件データは送信通信のみ可であるためフラグNG判定すなわち通信不可となる。
例5の場合は、自機1のセンドフラグが「0」、レシーブフラグが「0」で携帯ゲーム装置3のセンドフラグが「1」、レシーブフラグが「0」の場合における比較が示されている。したがって、自機1の送受信条件データは、双方向通信のみ可であり、携帯ゲーム装置3の送受信条件データは送信通信のみ可であるためフラグNG判定すなわち通信不可となる。
当該方式により、IDデータに交換条件データとして送受信条件データ(センドフラグデータおよびレシーブフラグデータ)を含ませて比較することにより、交換データの送信だけをしたい場合、あるいは、交換データの受信だけをしたい場合、あるいは、通信相手との間で交換データの送受信のみしたい場合、あるいは、通信相手の送受信条件データに合わせて通信した場合等、データ交換する際の通信形式のバリエーションを増すことが可能であり、データ交換の興趣性を増大させることができる。
再び、図24を参照して、次に、ステップS122において、フラグOK判定である場合(ステップS122においてYES)には、CPU60(IDリスト比較部234)は、互いの取得条件が満たされるかどうかを判断する。具体的には、取得条件が満たされるか否かの判断として条件データを比較する(ステップS124)。条件データの比較については後述する。
そして、次に、CPU60(IDリスト比較部234)は、自己の取得条件を満たしているかどうかを判断する(ステップS126)。
そして、自己の取得条件を満たしていると判断した場合(ステップS126においてYES)には、次に相手の取得条件を満たしているかどうかを判断する(ステップS128)。
次に、CPU60(IDリスト比較部234)は、相手の取得条件を満たしていると判断した場合(ステップS128においてYES)には、アプリケーションIDの一致フラグをオンする(ステップS130)。そして、処理を終了する(リターン)。
図26を用いて、本発明の実施の形態に従う条件データの比較について説明する。
図26(A)は、自己の取得条件を満たしているかに関する条件データの比較について説明する図である。
条件データは、自機1の取得条件データ(マスクデータ、コンディションデータ、リクエストデータ)と、携帯ゲーム装置3の取得条件データ(マスクデータ、コンディションデータ、リクエストデータ)とにより生成される。
具体的には、条件データの比較として、自機1のマスクデータと携帯ゲーム装置3のコンディションデータとの積と、自機1のマスクデータと自機1のリクエストデータとの積とが同じ値であるかどうかを判断する。
図26(B)は、相手の取得条件を満たしているかに関する条件データの比較について説明する図である。
具体的には、条件データの比較として、携帯ゲーム装置3のマスクデータと自機1のコンディションデータとの積と、携帯ゲーム装置3のマスクデータと携帯ゲーム装置3のリクエストデータとの積とが同じ値であるかどうかを判断する。
図27を用いて、本発明の実施の形態に従う取得条件データの具体例について説明する。
図27を参照して、ここでは、4つの取得条件データの例が示されている。
具体的には、ユーザであるHA、HB、HC、HDさんのそれぞれが設定した取得条件データが示されている。
マスクデータ、コンディションデータ、リクエストデータは、それぞれ1ビットであるものとする。
本例においては、一例として、例えば、上記の交換データ登録イベントにおける、交換データの格納に際し、HA、HB、HC、HDさんがそれぞれデータ交換を希望する際の条件として性別を取得条件データとして設定した場合の例について説明する。
具体的には、相手に送信する自己の交換データおよび相手から受信する交換データに関連付けられた属性データとして、性別を示すデータ(男:「1」、女:「0」)を用いた場合について説明する。
図27(A)は、HAさんの取得条件データが示されており、マスクデータが「1」、コンディションデータが「1」、リクエストデータが「0」である場合が示されている。当該場合は、HAさんは、コンディションデータが「1」であるため性別は男であることを示すとともに、リクエストデータが「0」であるため性別が女とデータ交換を希望する場合である。なお、マスクデータが「0」の場合には、リクエストデータを無効に設定することができる。すなわち、データ交換を希望する性別をいずれでも良いものに設定することができる。
図27(B)は、HBさんの取得条件データが示されており、マスクデータが「1」、コンディションデータが「0」、リクエストデータが「1」である場合が示されている。当該場合は、HBさんは、コンディションデータが「0」であるため性別は女であることを示すとともに、リクエストデータが「0」であるため性別が男とデータ交換を希望する場合である。
図27(C)は、HCさんの取得条件データが示されており、マスクデータが「0」、コンディションデータが「1」、リクエストデータが「0」である場合が示されている。当該場合は、HBさんは、コンディションデータが「1」であるため性別は男である。ここで、マスクデータが「0」であるためデータ交換の相手は性別を問わないため、リクエストデータは「0」あるいは「1」いずれでも良い、すなわちドントケアであるが、ここでは説明を簡易にするため「0」としている。
図27(D)は、HDさんの取得条件データが示されており、マスクデータが「0」、コンディションデータが「0」、リクエストデータが「0」である場合が示されている。当該場合は、HBさんは、コンディションデータが「0」であるため性別は女である。ここで、マスクデータが「0」であるためデータ交換の相手は性別を問わないため、リクエストデータは「0」あるいは「1」いずれでも良いすなわち、ドントケアであるが、ここでは説明を簡易にするため「0」としている。
図28を用いて、図27で説明した取得条件データに基づく条件データの比較の具体例について説明する。
本例においては、HAさんと、他の人、すなわち、HBさん、HCさん、HDさんとの条件データの比較について説明する。
図28(A)を参照して、ここでは、HAさんと、HBさんとの条件データの比較が示されている。
HAさん側の処理について説明する。
相手のコンディションデータと自分のマスクデータとの積は、「0」&「1」=「0」となる。
また、自分のリクエストデータと自分のマスクデータとの積は、「0」&「1」=「0」となる。
したがって、この場合、自己の条件データは一致し、自己の取得条件は満たしていると判断される。
また、自分のコンディションデータと相手のマスクデータとの積は、「1」&「1」=「1」となる。
相手のリクエストデータと相手のマスクデータとの積は、「1」&「1」=「1」となる。
したがって、この場合、相手の条件データは一致し、相手の取得条件は満たしていると判断される。
すなわち、HAさん側の取得条件のデータ比較において、自己の取得条件および相手の取得条件はともに満たしていると判断される。
上記においては、HAさん側の処理について説明したが、HBさん側の処理としても同様に実行される。
相手のコンディションデータと自分のマスクデータとの積は、「1」&「1」=「1」となる。
また、自分のリクエストデータと自分のマスクデータとの積は、「1」&「1」=「1」となる。
したがって、この場合、自己の条件データは一致し、自己の取得条件は満たしていると判断される。
また、自分のコンディションデータと相手のマスクデータとの積は、「0」&「1」=「0」となる。
相手のリクエストデータと相手のマスクデータとの積は、「0」&「1」=「0」となる。
したがって、この場合、相手の条件データは一致し、相手の取得条件は満たしていると判断される。
すなわち、HBさん側の取得条件のデータ比較において、自己の取得条件および相手の取得条件はともに満たしていると判断される。
したがって、性別が男であるHAさんは、データ交換を希望する性別が女であるHBさんとデータ交換の条件が一致するためデータ交換することが可能である。
図28(B)を参照して、ここでは、HAさんと、HCさんとの条件データの比較が示されている。
HAさん側の処理について説明する。
相手のコンディションデータと自分のマスクデータとの積は、「1」&「1」=「1」となる。
また、自分のリクエストデータと自分のマスクデータとの積は、「0」&「1」=「0」となる。
したがって、この場合、自己の条件データは不一致であり、自己の取得条件は満たしていないと判断される。
また、自分のコンディションデータと相手のマスクデータとの積は、「1」&「0」=「0」となる。
相手のリクエストデータと相手のマスクデータとの積は、「0」&「0」=「0」となる。
したがって、この場合、相手の条件データは一致であり、相手の取得条件は満たしていると判断される。
すなわち、HAさん側の取得条件のデータ比較において、相手の条件データは一致しているため取得条件は満たしているが、自己の条件データは不一致であり、自己の取得条件は満たしていないと判断される。
上記においては、HAさん側の処理について説明したが、HCさん側の処理としても同様に実行される。
相手のコンディションデータと自分のマスクデータとの積は、「1」&「0」=「0」となる。
また、自分のリクエストデータと自分のマスクデータとの積は、「0」&「0」=「0」となる。
したがって、この場合、自己の条件データは一致しており、自己の取得条件は満たしていると判断される。
また、自分のコンディションデータと相手のマスクデータとの積は、「1」&「1」=「1」となる。
相手のリクエストデータと相手のマスクデータとの積は、「0」&「1」=「0」となる。
したがって、この場合、相手の条件データは不一致であり、相手の取得条件は満たしていないと判断される。
すなわち、HCさん側の取得条件のデータ比較において、自己の条件データは一致しており自己の取得条件は満たしているが、相手の条件データは不一致であるため相手の取得条件は満たしていないと判断される。
したがって、性別が男であるHCさんは、データ交換の性別を問わないため性別が男であるHAさんとデータ交換が可能であるが、性別が男であるHAさんは、性別が男であるHCさんとデータ交換を希望しないため、データ交換することはできない。
図28(C)を参照して、ここでは、HAさんと、HDさんとの条件データの比較が示されている。
HAさん側の処理について説明する。
相手のコンディションデータと自分のマスクデータとの積は、「0」&「1」=「0」となる。
また、自分のリクエストデータと自分のマスクデータとの積は、「0」&「1」=「0」となる。
したがって、この場合、自己の条件データは一致しており、自己の取得条件は満たしていると判断される。
また、自分のコンディションデータと相手のマスクデータとの積は、「1」&「0」=「0」となる。
相手のリクエストデータと相手のマスクデータとの積は、「0」&「0」=「0」となる。
したがって、この場合、相手の条件データは一致しており、相手の取得条件は満たしていると判断される。
すなわち、HAさん側の取得条件のデータ比較において、自己の取得条件および相手の取得条件はともに満たしていると判断される。
上記においては、HAさん側の処理について説明したが、HDさん側の処理としても同様に実行される。
相手のコンディションデータと自分のマスクデータとの積は、「1」&「0」=「0」となる。
また、自分のリクエストデータと自分のマスクデータとの積は、「0」&「0」=「0」となる。
したがって、この場合、自己の条件データは一致しており、自己の取得条件は満たしていると判断される。
また、自分のコンディションデータと相手のマスクデータとの積は、「0」&「1」=「0」となる。
相手のリクエストデータと相手のマスクデータとの積は、「0」&「1」=「0」となる。
したがって、この場合、相手の条件データは一致しており、相手の取得条件は満たしていると判断される。
すなわち、HBさん側の取得条件のデータ比較において、自己の取得条件および相手の取得条件はともに満たしていると判断される。
したがって、性別が女であるHDさんは、データ交換の性別を問わないため性別が男であるHAさんとデータ交換が可能であり、また、性別が男であるHAさんは、性別が女であるHDさんとデータ交換を希望するため、データ交換が可能となる。
上記においては、性別を取得条件データとして比較する場合について説明したが、特にこれに限られず、別のデータを取得条件データとして設定することも可能である。
図29を用いて、本発明の実施の形態に従う取得条件データの別の具体例について説明する。
図29を参照して、ここでは、3つの取得条件データの例が示されている。
具体的には、ユーザであるHE、HF、HGさんのそれぞれが設定した取得条件データが示されている。
マスクデータ、コンディションデータ、リクエストデータは、それぞれ2ビットであるものとする。
本例においては、一例として、例えば、上記の交換データ登録イベントにおける、交換データの格納に際し、HE、HF、HGさんがそれぞれデータ交換を希望するゲームのコースデータを取得条件データとして設定した場合の例について説明する。
具体的には、相手に送信する自己の交換データおよび相手から受信する交換データに関連付けられた属性データとして、データの有無(有り:「1」、無し:「0」)および希望の有無(有り:「1」、無し「0」)を用いた場合について説明する。
一例として、コンディションデータとして2ビットが設けられ、それぞれコースPおよびコースQに対応している。例えば、コンディションデータについて、対応するコースのデータを有している場合「1」、対応するコースのデータを有していない場合「0」とする。
また、リクエストデータとして2ビットが設けられ、それぞれコースPおよびコースQに対応している。例えば、リクエストデータは、対応するコースのデータの取得を希望する場合「1」、対応するコースのデータの取得を希望しない場合「0」とする。
また、マスクデータとして2ビットが設けられ、それぞれコースPおよびコースQに対応している。なお、マスクデータが「0」の場合には、リクエストデータを無効に設定することができる。すなわち、データ交換を取得しても良いし、取得しなくても良いものに設定することができる。
図29(A)を参照して、HEさんの取得条件データが示されており、コースP,Qに対応してマスクデータが「01」、コンディションデータが「11」、リクエストデータが「01」である場合が示されている。
当該場合は、HEさんは、コンディションデータが「11」であるためコースP,Qをそれぞれ有している。リクエストデータは「01」であるためコースQについてデータ交換を希望する場合である。なお、マスクデータがコースPに関して「0」であるため、リクエストデータについてコースPについては「0」あるいは「1」いずれでも良いすなわち、ドントケアであるが、ここでは説明を簡易にするため「0」としている。
図29(B)を参照して、HFさんの取得条件データが示されており、コースP,Qに対応してマスクデータが「11」、コンディションデータが「10」、リクエストデータが「01」である場合が示されている。
当該場合は、HFさんは、コンディションデータが「10」であるためコースPを有している。リクエストデータは「01」であるためコースQについてデータ交換を希望する場合である。
図29(C)を参照して、HGさんの取得条件データが示されており、コースP,Qに対応してマスクデータが「11」、コンディションデータが「01」、リクエストデータが「11」である場合が示されている。
当該場合は、HGさんは、コンディションデータが「01」であるためコースQを有している。リクエストデータは「11」であるためコースP,Qについてデータ交換を希望する場合である。
図30を用いて、図29で説明した取得条件データに基づく条件データの比較の具体例について説明する。
本例においては、HEさんと、他の人、すなわち、HFさん、HGさんとの条件データの比較について説明する。
図30(A)を参照して、ここでは、HEさんと、HFさんとの条件データの比較が示されている。
HEさん側の処理について説明する。
相手のコンディションデータと自分のマスクデータとの積は、「10」&「01」=「00」となる。
また、自分のリクエストデータと自分のマスクデータとの積は、「01」&「11」=「01」となる。
したがって、この場合、自己の条件データは不一致であり、自己の取得条件は満たしていないと判断される。
また、自分のコンディションデータと相手のマスクデータとの積は、「11」&「11」=「11」となる。
相手のリクエストデータと相手のマスクデータとの積は、「01」&「11」=「01」となる。
したがって、この場合、相手の条件データは不一致であり、相手の取得条件は満たしていないと判断される。
すなわち、HEさん側の取得条件のデータ比較において、自己の取得条件および相手の取得条件はともに満たしていないと判断される。
上記においては、HEさん側の処理について説明したが、HFさん側の処理としても同様に実行される。
相手のコンディションデータと自分のマスクデータとの積は、「11」&「11」=「11」となる。
また、自分のリクエストデータと自分のマスクデータとの積は、「01」&「11」=「01」となる。
したがって、この場合、自己の条件データは不一致であり、自己の取得条件は満たしていないと判断される。
また、自分のコンディションデータと相手のマスクデータとの積は、「10」&「01」=「00」となる。
相手のリクエストデータと相手のマスクデータとの積は、「01」&「01」=「01」となる。
したがって、この場合、相手の条件データは不一致であり、相手の取得条件は満たしていないと判断される。
すなわち、HFさん側の取得条件のデータ比較においても、自己の取得条件および相手の取得条件はともに満たしていないと判断される。
したがって、コースQのデータ交換を希望するHEさんと、コースQのデータを有していないHFさんとは、データ交換の取得条件データを満たさないためデータ交換することはできない。
図30(B)を参照して、ここでは、HEさんと、HGさんとの条件データの比較が示されている。
HEさん側の処理について説明する。
相手のコンディションデータと自分のマスクデータとの積は、「01」&「01」=「01」となる。
また、自分のリクエストデータと自分のマスクデータとの積は、「01」&「01」=「01」となる。
したがって、この場合、自己の条件データは一致し、自己の取得条件は満たしていると判断される。
また、自分のコンディションデータと相手のマスクデータとの積は、「11」&「11」=「11」となる。
相手のリクエストデータと相手のマスクデータとの積は、「11」&「11」=「11」となる。
したがって、この場合、相手の条件データは一致し、相手の取得条件は満たしていると判断される。
すなわち、HEさん側の取得条件のデータ比較において、自己の取得条件および相手の取得条件はともに満たしていると判断される。
上記においては、HEさん側の処理について説明したが、HGさん側の処理としても同様に実行される。
相手のコンディションデータと自分のマスクデータとの積は、「11」&「11」=「11」となる。
また、自分のリクエストデータと自分のマスクデータとの積は、「11」&「11」=「11」となる。
したがって、この場合、自己の条件データは一致し、自己の取得条件は満たしていると判断される。
また、自分のコンディションデータと相手のマスクデータとの積は、「11」&「11」=「11」となる。
相手のリクエストデータと相手のマスクデータとの積は、「11」&「11」=「11」となる。
したがって、この場合、相手の条件データは一致し、相手の取得条件は満たしていると判断される。
すなわち、HGさん側の取得条件のデータ比較においても、自己の取得条件データおよび相手の取得条件データはともに満たしていると判断される。
したがって、コースQのデータ交換を希望するHEさんと、コースQのデータを有しているHGさんとは、データ交換の取得条件データが満たされ、また、コースPのデータ交換を希望するHGさんと、コースPのデータを有しているHEさんとは、データ交換の取得条件データが満たされるためデータ交換が可能である。
再び、図24を参照して、ステップS114において、IDデータが一致しないと判断された場合(ステップS114においてNO)には、比較対象となるIDリストにアプリケーションID#が他に有るかどうかを判断する(ステップS132)。
また、ステップS118において、フィルタサイズが一致しない場合(ステップS118においてNO)には、ステップS132に進む。
また、ステップS122において、フラグOK判定で無い場合(ステップS122においてNO)には、ステップS132に進む。
また、ステップS126において、自己の取得条件を満たしていない場合(ステップS126においてNO)には、ステップS132に進む。
また、ステップS128において、相手の取得条件を満たしていない場合(ステップS128においてNO)には、ステップS132に進む。
ステップS132において、比較対象となるIDリストにアプリケーションID#が他に有る場合(ステップS132においてYES)には、比較対象となるIDリストから次のアプリケーションID#を抽出する(ステップS134)。そして、ステップS112に進み同様の処理を繰り返す。
例えば、図16で示されるように、第2IDリストDD8のアプリケーションID#[1]を抽出して同様の処理を実行する。
一方、ステップS132において、比較対象となるIDリストにアプリケーションID#が他に無い場合(ステップS132においてNO)には、「I」に進む。
すなわち、IDデータや取得条件データ等の判定条件を満たすまで、受信無線フレーム保存領域69に保存された受信無線フレームおよび送信無線フレーム保存領域67に保存された送信無線フレームそれぞれの比較対象となるIDリストからアプリケーションID#をそれぞれ1つずつ抽出して、全ての組み合わせにおいて条件を満たすものが無い場合には、図19のステップS82に進み、再度、上述した処理を繰り返す。
例えば、本例においては、一例として、比較対象となるIDリストとして、送信無線フレーム保存領域67に保存された送信無線フレーム(自機1)の第2IDリストDD8と、受信無線フレーム保存領域69に保存された受信無線フレーム(携帯ゲーム装置3)の第2IDリストDDp8とが抽出された場合について説明する。例えば、一例として、第2IDリストDD8および第2IDリストDDp8は、ともに、アプリケーションID#を(n+1)個有しているものとする。
当該場合において、比較対象となるIDリストからアプリケーションID#をそれぞれ1つずつ抽出して全ての組み合わせについて比較する場合について説明すると、まず、送信無線フレーム(自機1)の第2IDリストDD8のアプリケーションID#[0]DD8−1を抽出し、受信無線フレーム(携帯ゲーム装置)に含まれる第2IDリストDDp8のアプリケーションID#[0]DDp8−1を抽出して比較する。次に、送信無線フレーム(自機1)の第2IDリストDD8のアプリケーションID#[0]DD8−1と、受信無線フレーム(携帯ゲーム装置)に含まれる第2IDリストDDp8のアプリケーションID#[1]DDp8−2を抽出して比較する。
次に、送信無線フレーム(自機1)の第2IDリストDD8のアプリケーションID#[0]DD8−1と、受信無線フレーム(携帯ゲーム装置)に含まれる第2IDリストDDp8のアプリケーションID#[2]、アプリケーションID#[3]、・・・アプリケーションID#[n]をそれぞれ順番に抽出して比較する。
次に、送信無線フレーム(自機1)の第2IDリストDD8のアプリケーションID#[1]DD8−2を抽出し、受信無線フレーム(携帯ゲーム装置)に含まれる第2IDリストDDp8のアプリケーションID#[0]DDp8−1を抽出して比較する。次に、送信無線フレーム(自機1)の第2IDリストDD8のアプリケーションID#[1]DD8−2と、受信無線フレーム(携帯ゲーム装置)に含まれる第2IDリストDDp8のアプリケーションID#[1]DDp8−2を抽出して比較する。
次に、送信無線フレーム(自機1)の第2IDリストDD8のアプリケーションID#[1]DD8−2と、受信無線フレーム(携帯ゲーム装置)に含まれる第2IDリストDDp8のアプリケーションID#[2]、アプリケーションID#[3]、・・・アプリケーションID#[n]をそれぞれ順番に抽出して比較する。この処理を送信無線フレーム(自機1)の第2IDリストDD8のアプリケーションID#[2]、アプリケーションID#[3]、・・・アプリケーションID#[n]まで同様に繰り返す。
すなわち、簡易に説明すると、比較対象となるIDリストにおいて、まず、送信無線フレーム(自機1)から最初のアプリケーションID#を抽出して固定し、そして、受信無線フレーム(携帯ゲーム装置)からアプリケーションID#を順番に抽出して比較する。IDデータや取得条件データ等の判定条件を満たさない場合には、次に、送信無線フレーム(自機1)から次のアプリケーションID#を抽出して固定し、そして、受信無線フレーム(携帯ゲーム装置)からアプリケーションID#を順番に抽出して比較する。当該処理を送信無線フレーム(自機1)のIDリストに含まれているアプリケーションID#の個数分繰り返すことになる。そして、送信無線フレーム(自機1)から最後のアプリケーションID#を抽出して固定し、そして、受信無線フレーム(携帯ゲーム装置)からアプリケーションID#を順番に抽出して比較した場合に、IDデータや取得条件データ等の判定条件を満たさない場合には、ステップS132において、比較対象となるIDリストから他のアプリケーションID#がないと判断(ステップS132においてNO)されて、「I」に進む。
なお、上記図24のフローにおいては、フラグデータ比較(ステップS120)と、条件データ比較(ステップS124)をそれぞれ関連付けずに実行する方式について説明したが、例えば、図25で説明したように自機1の送受信条件データが送信通信のみを指定するような場合には、相手から交換データを受信することを希望しないため自己の取得条件を満たしているかの判断は不要である。また、逆に、自機1の送受信条件データが受信通信のみを指定するような場合には、相手に交換データを送信することを希望しないため相手の取得条件を満たしているかの判断は不要である。したがって、ステップS120のフラグデータの比較結果に基づいて、ステップS124〜ステップS128までの条件データ比較および判断の処理を変更するようにしても良い。
また、本例においては、アルゴリズム識別情報が「0」,「1」の場合にそれぞれ第1および第2アルゴリズムに従うIDリスト比較処理について説明したが、これに限られず、他のアルゴリズム識別情報(たとえば「2」)を設けてさらに別のアルゴリズムに従うIDリスト比較処理を実行するようにしても良い。
また、本例においては、取得条件データについて、マスクデータを含めた形式について説明したが、コンディションデータおよびリクエストデータの形式とすることも可能である。その場合には、条件データの比較として、自分のコンディションデータと相手のリクエストデータとの比較および自分のリクエストデータと相手のコンディションデータとの比較を実行して自己の取得条件および相手の取得条件を満たしているかを判断するようにしても良い。
図31を用いて、本発明の実施の形態に従うアプリケーションIDを比較する場合の概念図について説明する。
図31を参照して、ここでは、図17で説明したゲーム装置1およびゲーム装置3と同様の状況が示されており、無線通信モジュール38のRAM66のアプリケーションID保存領域68には、アプリケーションIDとして「A,B,C1,C2,D」がそれぞれ格納されている場合が示されている。そして、ゲーム装置3側の無線通信モジュール38PのアプリケーションID保存領域68PにアプリケーションIDとして「B,E」がそれぞれ格納されている場合が示されている。
そして、上述したように、アプリケーションID保存領域68に格納されているデータに基づいて送信用の送信無線フレームが設定され、受信用の受信無線フレームに含まれているアプリケーションIDと比較して、一致フラグがオンするかどうかが判断される。
本例においては、アプリケーションID「B」に関して、一致フラグがオンする場合が示されている。
図32〜図34を用いて、本発明の実施の形態に従うゲーム装置間における交換データの交換処理について説明する。
本例においては、ゲーム装置1と、通信相手である他のゲーム装置としてゲーム装置3との間で交換データの授受処理を実行する場合について説明する。
上記したように、CPU31(データ通信実行処理部208)は、無線通信モジュール38から一致したアプリケーションIDに対応する交換データを有する他のゲーム装置が発見された旨の通知を受けた場合には、データ授受処理を実行する。
図32を参照して、まず、一致したアプリケーションIDに対応する交換データが格納されたスロット(交換データ保存領域80)からデータを読み出してデータをコピーする。例えば、メインメモリ32にコピーデータを作成する。そして、当該コピーデータが無線通信モジュール38を介してゲーム装置3に送信される。
ゲーム装置3においても、ゲーム装置1と同様に無線通信モジュール38Pから一致したアプリケーションIDに対応する交換データを有するゲーム装置が発見された旨の通知が本体側に出力される。
そして、本体側において、一致したアプリケーションIDに対応する交換データが格納されたスロット(効果データ保存領域80)からデータが読み出されてデータがコピーされる。そして、当該コピーデータが無線通信モジュール38Pを介してゲーム装置1に送信される。
図33を参照して、ゲーム装置1は、無線通信モジュール38を介してゲーム装置3から送信された交換データを取得してアプリケーションIDと共に受信データ保存領域82に格納する。
同様に、ゲーム装置3は、無線通信モジュール38Pを介してゲーム装置1から送信された交換データを取得してアプリケーションIDと共に受信データ保存領域82Pに格納する。
そして、図34を参照して、ゲーム装置1について交換データ保存領域80の交換データが格納されていたスロットのデータを消去する。本例においては、交換データ保存領域80のスロットSL2に対応する領域のデータを消去する。
同様に、ゲーム装置3について交換データ保存領域80Pの交換データが格納されていたスロットのデータを消去する。本例においては、交換データ保存領域80PのスロットSL1に対応する領域のデータを消去する。
当該処理により、通信相手に送信した交換データを消去することにより交換データの交換処理が完了する。
なお、後述するが交換データの消去は、スロットに格納されていた交換データを利用するアプリケーションを起動することにより当該アプリケーションの実行によって交換データ保存領域のスロットのデータが消去されるものとする。
なお、本例においては、交換データを消去する場合について説明するが、消去せずにそのまま維持するようにすることも可能である。その場合には、交換データの交換処理ではなく複製データの授受となる。
また、本例においては、一例として、一致したアプリケーションIDに対応する1つの交換データについて、交換処理を行う場合について説明しているが、特に1つの交換データに限られず、一致したアプリケーションIDに対応する交換データが複数個有る場合においてもそれぞれの交換データについて同様の処理が実行される。
図35および図36を用いて、上記で説明したデータ授受処理のフローについて説明する。当該データ授受処理は、一例として、上述したシステムプログラム保存領域86に格納されている本体機能プログラムをCPU31が実行することにより実現されるものである。当該データ授受処理は、例えば、本体の起動時に開始して、バックグラウンドで継続的に実行される。
図35を参照して、まず、CPU31(スリープ設定/解除処理部216)は、無線通信モジュール38からの通知が有るかどうかを判断する(ステップS140)。
ステップS140において、CPU31(スリープ設定/解除処理部216)は、無線通信モジュール38からの通知があったと判断した場合(ステップS140においてYES)には、本体側の機能がスリープ状態であるかどうかを判断する(ステップS141)。
そして、CPU31(スリープ設定/解除処理部216)は、本体側の機能がスリープ状態であると判断した場合(ステップS141においてYES)には、スリープ状態を解除する(ステップS142)。
そして、次に、CPU31(データ通信実行処理部208)は、データ授受処理を開始する(ステップS143)。一方、本体側の機能がスリープ状態で無いと判断した場合(ステップS141においてNO)には、ステップS143に進む。
まず、CPU31(データ通信実行処理部208)は、スロットに格納された、一致したアプリケーションIDに対応する交換データを交換データ保存領域80からコピーする(ステップS144)。具体的には、CPU31(データ通信実行処理部208)は、図32で説明したようにメインメモリ32にコピーデータを作成する。
そして、次に、CPU31(データ通信実行処理部208)は、無線通信モジュール38からの交換データを有するゲーム装置が発見された旨の通知に含まれている通信相手のMACアドレス等の接続情報に基づいて通信相手との間で通信接続を確立する(ステップS145)。なお、本例においては、ゲーム装置が発見された旨の通知後、通信相手との接続を確立する場合、すなわち、CPU31(データ通信実行処理部208)が実行する場合について説明するが、ゲーム装置が発見された旨の通知前、例えば、無線通信モジュール38において図14のステップS64とステップS66との間で通信相手との接続を確立する処理を実行するようにしても良い。
互いに交換データの授受を実行する2つのゲーム装置のうち一方が親機となり他方が子機となるが、本例においては、接続要求信号を出力した子機側のゲーム装置から親機側のゲーム装置に交換データを出力するものとする。なお、本例においては、ゲーム装置1が子機となった場合の処理について説明する。
次に、CPU31(データ通信実行処理部208)は、自機が親機か子機かを判断するため子機としての接続フラグがオンであるかどうかを判断する(ステップS146)。接続フラグの設定に関しては、後述する。
そして、子機としての接続フラグがオンである場合、すなわち、自機が子機であると判断した場合(ステップS146においてYES)には、通信相手(親機)に交換データを送信する(ステップS150)。
一方、子機としての接続フラグがオンでない場合、すなわち、自機が親機であると判断した場合(ステップS146においてNO)には、「AA」に進む。「AA」以降の処理は、親機側の処理であり後述する。
そして、次に、CPU31は、通信相手(親機)から交換データを一定期間内に受信したかどうかを判断する(ステップS152)。
ステップS152において、CPU31(データ通信実行処理部208)は、通信相手(親機)から交換データを一定期間内に受信したと判断した場合には(ステップS152においてYES)には、受信データ保存領域82に交換データを格納する(ステップS154)。具体的には、図33で説明したように無線通信モジュール38を介して受信した交換データをアプリケーションIDと共に受信データ保存領域82に格納する。
そして、次に、CPU31(データ通信実行処理部208)は、通信相手(親機)との通信を切断する(ステップS160)。すなわち、上記処理により通信相手との間での交換データのデータ授受処理が終了することになる。
そして、次に、CPU31(装置識別情報登録処理部210)は、保存用データメモリ34に設けられているMACアドレスリスト保存領域88に、通信相手を識別するMACアドレスを保存する(ステップS158)。当該MACアドレスリスト保存領域88に保存されたMACアドレスがMACアドレスリストの一部に含められ上述した通信設定処理で用いられることになる。
なお、本例においては、一例として、通信相手との間での交換データの授受処理(通信処理)を実行したことを条件(登録条件)として、CPU31(装置識別情報登録処理部210)が保存用データメモリ34に設けられているMACアドレスリスト保存領域88に、通信相手を識別するMACアドレスを保存(登録)する場合について説明するが、当該交換データの授受処理(通信処理)のみをMACアドレスを登録する登録条件とする場合に限られず、当該交換データの授受処理(通信処理)を実行した上でさらに他の条件の判定処理を実行した上で、当該他の条件の判定処理を満たす場合に、MACアドレスを登録するようにするようにしても良い。
そして、通信設定処理により、MACアドレスリスト保存領域70にMACアドレスリストが保存されるため、上述したMACアドレスフィルタリング処理により、同じゲーム装置との間で何度も通信することを防止することができ、効率的かつ効果的なデータ通信を実行することが可能である。
なお、本例においては、本体側の保存用メモリ34に設けられているMACアドレス保存領域88に保存されたMACアドレスリストと、無線通信モジュール38のMACアドレスリスト保存領域70に格納されているMACアドレスリストは同じであり、MACアドレスリスト保存領域70のみを用いて上記で説明した方式を実現しても良い。
一方で、本体側の保存用メモリ34にMACアドレス保存領域88を設けて、当該MACアドレス保存領域88にMACアドレスを保存することにより、無線通信モジュール35にアクセスしてMACアドレス保存領域70のデータを編集するよりも、MACアドレスのデータの追加あるいは削除等の編集を容易かつ高速に実行することが可能である。
そして、次に、CPU31(データ通知処理部212)は、データ通知処理を実行する(ステップS164)。データ通知処理については後述する。そして処理を終了する(エンド)。
一方、ステップS152において、CPU31(データ通信実行処理部208)は、通信相手(親機)から交換データを一定期間内に受信していないと判断した場合(ステップS152においてNO)には、ステップS162に進む。
ステップS162において、CPU31(データ通信実行処理部208)は、通信相手(親機)との通信を切断する。そして、ステップS160に進む。したがって、この場合には、交換データを適切に取得することができなかったためMACアドレスリスト保存領域70にMACアドレスを保存することなく通信を切断する。したがって、再度、携帯端末間通信に従って上述した処理を実行して、交換データのデータ授受処理を再開することが可能である。
次に、親機側の処理について説明する。
なお、本例においては、ゲーム装置3が親機となった場合の処理について説明する。
親機側の処理についても、図35で説明したステップS140〜S144までは子機側の処理と同様である。
図36を参照して、子機としての接続フラグがオンでない場合、すなわち、親機としての接続フラグがオンであり自機が親機であると判断した場合(ステップS146においてNO)には、CPU31(データ通信実行処理部208)は、通信相手(子機)から交換データを一定期間内に受信したかどうかを判断する(ステップS172)。
次に、ステップS172において、通信相手(子機)から一定期間内に交換データを受信したと判断した場合(ステップS172においてYES)には、受信データ保存領域82に交換データをアプリケーションIDと共に格納する(ステップS178)。
そして、次に、CPU31(データ通信実行処理部208)は、通信相手(親機)に交換データを送信する(ステップS180)。
そして、次に「BB」に進む。すなわち、図35のステップS156に進む。以降の処理については上述したのと同様である。
また、ステップS172において、CPU31(データ通信実行処理部208)は、通信相手(親機)から一定期間内に交換データを受信していないと判断した場合(ステップS172においてNO)には、次に、「CC」に進む。すなわち、図35のステップS162に進む。
なお、本例においては、交換データの授受処理について説明したが、上記したように送受信条件データがアプリケーションIDに含められている場合に、例えば、送受信条件データとして送信通信のみが条件として含められている場合には、ステップS152およびステップS154の処理をスキップする。すなわち、通信相手からの交換データの受信を実行することなく通信相手との通信を切断する。また、送受信条件データとして受信通信のみが条件と含められている場合には、ステップS150の処理すなわち、通信相手に交換データを送信する処理をスキップする。すなわち、CPU31(データ通信実行処理部208)は、アプリケーションIDに含められている送受信条件データに従って交換データの授受処理を変更するようにしても良い。
また、本例においては、受信データ保存領域82に交換データが保存された場合に、すなわち、通信相手との間での交換データの授受処理(通信処理)を実行した場合に、CPU31(装置識別情報登録処理部210)は、保存用データメモリ34に設けられているMACアドレスリスト保存領域88に、一例として、通信相手を識別するMACアドレスを保存する場合について説明したが、特にこの順序に限られず、例えば、ステップS142におけるスリープ状態が解除された後、データ授受処理を開始する前に通信相手を識別するMACアドレスを保存するようにすることも可能である。
すなわち、当該構成においては、無線通信モジュール38から本体部に通知があった場合、例えばスリープ状態である場合にはスリープ状態が解除された場合に、当該スリープ状態を解除した他のゲーム装置のMACアドレスが装置識別情報登録処理部210によりMACアドレスリスト保存領域88に保存されることになる。上述した処理により、一度、本体部に通知があった、すなわちスリープ状態である場合にスリープ状態を解除した通信相手との通信を行わずに効率的なデータ通信を実行することが可能である。
なお、当該構成においては、本体部に通知があった、すなわちスリープ状態である場合にスリープ状態を解除したことを条件(登録条件)として、CPU31(装置識別情報登録処理部210)が保存用データメモリ34に設けられているMACアドレスリスト保存領域88に、通信相手を識別するMACアドレスを保存(登録)する場合について説明したが、当該本体部に通知があった、すなわちスリープ状態である場合にスリープ状態を解除したことのみをMACアドレスを登録する登録条件とする場合に限られず、当該スリープ状態を解除した上でさらに他の条件の判定処理を実行した上で、当該他の条件の判定処理を満たす場合に、MACアドレスを登録するようにするようにしても良い。
<データ通知処理>
図37を用いて、本発明の実施の形態に従うデータ通知処理について説明する。当該データ通知処理は、一例として上述したシステムプログラム保存領域86に格納されている本体機能プログラムをCPU31が実行することにより実現されるものである。
図37を参照して、CPU31(データ通知処理部212)は、受信データ保存領域82に交換データが格納されたかどうかを判断する(ステップS190)。
そして、CPU31(データ通知処理部212)は、受信データ保存領域82に交換データが格納されたと判断した場合(ステップS190においてYES)には、効果音を出力する(ステップS192)。具体的には、CPU31(データ通知処理部212)は、図2で説明したスピーカ45から予め用意されている効果音を出力するように指示する。そして、次に、CPU31(データ通知処理部212)は、交換データの内容を表示する(ステップS194)。具体的には、CPU31(データ通知処理部212)は、交換データが有った旨の表示をLCD12に出力するように指示する。そして、処理を終了する(エンド)。
当該効果音のスピーカ45からの出力およびLCD12への表示によりユーザは、交換データが格納されたことを認知することが可能である。
なお、本例においては、一例としてスピーカ45からの効果音およびLCD12への表示による聴覚および視覚による交換データが授受されたことをユーザに通知する場合について説明したが、いずれか一方でも良い。また、例えば、バイブレーション機能を実行してゲーム装置を振動させて触覚により交換データが授受されたことをユーザに通知するようにしても良い。
そして、当該交換データの格納に伴いユーザは、当該交換データを利用可能なアプリケーションを起動するものとする。そして、当該アプリケーションの起動により交換データ保存領域に格納された交換データが消去されるものとする。
<交換データ追加および消去処理>
図38を用いて、本実施例における交換データ追加および消去処理について説明する。すなわち、図8のステップS22における処理について説明する。
なお、交換データ追加および消去処理は、一例としてメモリカード26のROM27に格納されているアプリケーションプログラムをCPU31が実行することにより実現される。
図38を参照して、まず、CPU31(交換データ追加および消去処理部214)は、受信データ保存領域82を確認する(ステップS200)。
そして、CPU31(交換データ追加および消去処理部214)は、データをロードした実行中のアプリケーションのアプリケーションIDに対応する交換データが受信データ保存領域82に有るかどうかを判断する(ステップS202)。
そして、次に、CPU31(交換データ追加および消去処理部214)は、受信データ保存領域82に当該アプリケーションIDに対応する交換データが有ると判断した場合には、交換データを取得する(ステップS204)。
当該処理により取得した交換データを用いたアプリケーションを実行することが可能となる。
このとき、取得した交換データをセーブデータとして、自己のセーブ領域(バックアップRAM)に転送保存しても良い。また、それに伴い受信データ保存領域82に有る交換データを削除することも可能である。
なお、本例においては、交換データが受信データ保存領域82に有るかどうかを判断して、受信データ保存領域82に有る場合には、交換データを取得するとして説明したが、このとき、ユーザに交換データを取得した旨(より好ましくは、取得した交換データの内容)を提示するようにしても良い。さらには、当該交換データを利用するかどうか、ユーザに選択させるようにすることも可能である。
そして、次に、CPU31(交換データ追加および消去処理部214)は、スロットに格納されたアプリケーションIDに対応する交換データを削除する(ステップS206)。
このとき、自己のセーブ領域(バックアップRAM)にあるセーブデータとして格納されている交換データを削除することも可能である。
当該処理により交換データ保存領域80のスロットに格納されたアプリケーションIDに対応する交換データが削除されることにより交換データの交換処理が完了することになる。
そして、次に、CPU31(交換データ追加および消去処理部214)は、交換データ保存領域80に格納された交換データを削除したためバックアップRAM28に格納されていた交換フラグデータを消去する(ステップS208)。
そして、処理を終了する(リターン)。
そして、図8で説明したようにステップS4に進むことになる。
なお、本例においては、アプリケーションを起動した際に、交換フラグデータの有無に基づいて受信データ保存領域82を確認して交換データが有る場合には、当該受信データ保存領域82に記憶された交換データを取得して、交換データ保存領域80に記憶された交換データを削除する方式について説明したが、当該アプリケーションを起動しない場合においても交換データ保存領域80に記憶された交換データを削除するようにしても良い。たとえば、CPU31が受信データ保存領域82に他のゲーム装置からの交換データを格納することに応答して、交換データ保存領域80に記憶された交換データを削除するように指示することにより実現可能である。
また、本例においては、交換データ保存領域80のスロットに格納されたアプリケーションIDに対応する交換データを消去する場合について説明したが、消去せずにそのまま維持するようにすることも可能である。その場合には、交換データの交換処理ではなく複製データの授受となる。例えば、一例として上記したように送受信条件データがアプリケーションIDに含められている場合に、送受信条件データとして受信通信のみが条件として含められている場合に、消去せずにそのまま維持するように処理するようにしても良い。
<通信相手のサーチ処理>
次に、図39〜図42を参照して、前述のステップS52(図14)の通信相手サーチ処理について説明する。
この処理では、ゲーム装置1は、親機または子機として他のゲーム装置との間で通信可能な相手を探索する交換相手探索処理を実行する。
ゲーム装置1は、通信可能範囲10に存在する他のゲーム装置をサーチすべく、上述した送信無線フレームとして接続要求信号を宛先を特定せずに繰り返し送信する(本実施例においては、接続要求信号を定期的に繰り返し送信する方式について説明するが、いわゆるプローブリクエストによる方式等を採用することも可能である)。
本例においては、子機側のゲーム装置から送信無線フレームとして接続要求信号を送信するものとする。そして、親機側のゲーム装置は、子機側から送信された送信無線フレームである接続要求信号(すなわち受信無線フレーム)を受信するまで待機し、受信した場合には、これに応答して、子機側のゲーム装置に対して親機側から送信無線フレームである接続応答信号を送信する。
この接続要求信号および接続応答信号の送受信により、親機および子機としてのゲーム装置間においてデータ通信が可能となる。なお、本例においては、子機側のゲーム装置から接続要求信号を送信し、親機側のゲーム装置は、接続応答信号を送信する場合について説明するが、親機と子機との関係を入れ替えるようにしても良い。
このような通信相手サーチ処理では、各ゲーム装置1は、親機として動作して子機からのサーチを受ける処理と、子機として動作して親機をサーチする処理とを交互に繰り返す。
具体的には、所定の期間(図39のTcycle)を1周期として、各周期の一部を子機として動作する期間(図39のTsp)とし、残りを親機として動作する期間(Tsc)とする。ここで、子機として動作中のゲーム装置と親機として動作中のゲーム装置との間で接続可能であり、子機として動作中のゲーム装置と子機として動作中のゲーム装置、および、親機として動作中のゲーム装置と親機として動作中のゲーム装置は、接続不可能である。
ゆえに、子機として動作する期間と親機として動作する期間を固定的にした場合、偶然にそれらの期間が一致している2つのゲーム装置においてデータ通信が不可能になる。
このようなことを防ぐため、1周期における子機として動作する期間と親機として動作する期間の配分または配置をランダムに変えるようにしてある。
配分をランダムに変える方式が図39(A)に示すような「通信相手サーチ処理(1)」であり、配置をランダムに変える方式が図39(B)に示すような「通信相手サーチ処理(2)」である。
図39(A)を参照して、通信相手サーチ処理(1)は、上述したように、TspおよびTscの配分がランダムに決定される。この処理(1サイクル)の期間を固定値のTcycle(たとえば、4秒)とし、Tscの長さは0からTcycleの間のランダム値に決定され、Tspの長さはTcycleの残りの期間(Tcycle−Tsc)に決まる。また、TscおよびTspが、この順番でTcycleに設定される。Tscの長さは毎回ランダムに決定されるため、Tspの長さもランダムに決定される。これにより、通信可能範囲10に存在する他のゲーム装置との間でデータ通信を実行することができない状態を回避するようにしてある。ただし、Tspが短くなり過ぎると、他のゲーム装置を正確にサーチすることができず、他のゲーム装置との間でデータ通信を実行することができない場合があるため、Tspについての必要最小限の期間を決定しておき、これを確保できない場合には、再度Tscを決定し直すようにしてもよい。
なお、この実施例では、Tsc、Tspの順でTcycleを設定するようにしてあるが、逆の順番で設定するようにしてもよい。
図39(B)を参照して、通信相手サーチ処理(2)は、上述したように、TspやTscの配置がランダムに決定される。言い換えると、Tspの長さを固定値として、Tcycle内におけるTspの開始位置をランダムに設定する。具体的に説明すると、図39(B)に示すように、通信相手サーチ処理(2)では、Tcycle(この実施例では、固定値であり、4秒に設定される。)には、固定値で決定されるTspおよびこのTspを間に挟むようにランダムに決定されるTsc1およびTsc2が設けられる。つまり、Tcycleには、Tsc1、TspおよびTsc2がこの順で設けられる。また、Tsc1の長さは0から(Tcycle−Tsp)の間でランダムに決定され、Tsc2の長さは、Tcycleからランダムに決定されたTsc1およびTspを減算して決定される。
なお、本実施例では、Tsc、Tspの順でTcycleが設定されるのでTspの開始位置をランダムにしたが、Tsp、Tscの順でTcycleが設定される場合には、Tscの開始時期をランダムに決定すればよい。
通信相手サーチ処理(1)または(2)においては、Tspの期間において、ゲーム装置1は、接続要求信号を宛先を特定せずに送信した後、他のゲーム装置3から送信される接続応答信号の受信を試みるという処理を繰り返す。また、Tscの期間において、ゲーム装置1は、他のゲーム装置から送信される接続要求信号の受信を試みて、受信に成功した場合には、接続応答信号を送信するという処理を繰り返す。
また、ゲーム装置1は、消費電力の浪費を防止するために、子機として働く期間においては、所定期間(この実施例では、64ms)毎に接続要求信号を送信するようにしてある。つまり、間欠的にデータ送信が実行されるのである。
以下、通信相手サーチ処理(1)および通信相手サーチ処理(2)について、フロー図を用いて、それぞれ、具体的に説明することにする。
図40は通信相手サーチ処理(1)を示すフロー図である。
この図40を参照して、通信相手サーチ処理(1)を開始すると、ステップS210で、Tscを0からTcycleの範囲内でランダムに決定する。図示は省略するが、Tcycleは固定値であるため、Tscが決定されると、Tspも決定される。
続くステップS212〜S216,S228,S230が上述のTscにおいて実行される処理であり、親機として動作して子機をサーチする処理がされる。ステップS218〜S226,S232が上述のTspにおいて実行される処理であり、子機として動作して親機をサーチする処理がされる。
ステップS212では、子機のサーチを開始する。図示は省略するが、このときタイマ回路をスタートする。次にステップS214で、子機から送信された送信無線フレームである接続要求信号(すなわち受信無線フレーム)を受信したかどうかを判断する。
子機から送信された送信無線フレームである接続要求信号(すなわち受信無線フレーム)を受信した場合(ステップS214においてYES)には、ステップS228で、子機に対して送信無線フレームである接続応答信号を送信し、その後、ステップS230において、親機としての接続フラグをオンして、通信相手サーチ処理(1)をリターンする。つまり、親機として、他のゲーム装置との間で通信接続が可能であることが判明する。
なお、図40においては省略したが、通信相手サーチ処理(1)が開始されたとき、子機としての接続フラグ(後述する親機としての接続フラグも同じ。)はオフ(リセット)される。
一方、子機からの接続要求信号を全く受信しない場合(ステップS214においてNO)には、ステップS216で、子機サーチ時間すなわち親機として他のゲーム装置からの接続が試みられる期間がTsc秒経過したかどうかを判断する。
ステップS216において、子機サーチ時間がTsc秒経過していなければ(ステップS216においてNO)、そのままステップS214に戻る。
一方、子機サーチ時間がTsc秒経過すれば(ステップS216においてYES)、ステップS218で、親機のサーチを開始し、つまりタイマ回路をリセットおよびスタートし、ステップS220で、送信無線フレームである接続要求信号を宛先を特定せずに送信する。
続くステップS222では、親機から送信された送信無線フレームである接続応答信号(すなわち受信無線フレーム)を受信したかどうかを判断する。親機から送信された送信無線フレームである接続応答信号(すなわち受信無線フレーム)を受信すれば(ステップS222においてYES)であれば、、ステップS232で、子機としての接続フラグをオンして、通信相手サーチ処理(1)をリターンする。つまり、子機として他のゲーム装置との間で通信接続が可能であることが判明する。
一方、親機から送信された送信無線フレームである接続応答信号(すなわち受信無線フレーム)を受信しなければ(ステップS222においてNO)、ステップS224で、64ms待機し、続くステップS226で、親機サーチ時間すなわち子機として他のゲーム装置との接続を試みる期間がTsp秒経過したかどうかを判断する。
親機サーチ時間がTsp秒経過していなければ(ステップS226においてNO)、そのままステップS220に戻る。
一方、親機サーチ時間がTsp秒経過すれば(ステップS226においてYES)、Tcycleの期間が経過したと判断して、通信相手サーチ処理(1)をリターンする。
ステップS226で64ms待機することにより、ステップS220において、送信無線フレームである接続要求信号を宛先を特定せずに送信を繰り返す処理が間欠的に行われることになり、消費電力を抑えることができる。
図41および図42は、通信相手サーチ処理(2)を示すフロー図である。
図41を参照して、通信相手サーチ処理(2)を開始すると、ステップS240で、Tsc1を0から(Tcycle−Tsp)の範囲内でランダムに決定する。上述したように、通信相手サーチ処理(2)では、TcycleおよびTspは固定値であるため、Tsc1が決定されると、Tsc2も決定される。
続くステップS242〜S246,S258,S260が上述のTsc1において実行される処理であり、親機として動作して子機をサーチする処理がされる。ステップS248〜S256,S262が上述のTspにおいて実行される処理であり、子機として動作して親機をサーチする処理がされる。さらに、ステップS270〜S274,S276,S278が上述のTsc2において実行される処理であり、子機として動作して親機をサーチする処理がされる。
ステップS242では、子機のサーチを開始する。図示は省略するが、このときタイマ回路をスタートする。次にステップS244で、子機から送信された送信無線フレームである接続要求信号(すなわち受信無線フレーム)を受信したかどうかを判断する。
子機から送信された送信無線フレームである接続要求信号(すなわち受信無線フレーム)を受信すれば(ステップS244においてYES)、ステップS258で、子機に対して親機から送信無線フレームである接続応答信号を送信し、その後、ステップS260において、親機としての接続フラグをオンして、通信相手サーチ処理(2)をリターンする。つまり、親機として他のゲーム装置との間で通信接続が可能であることが判明する。
なお、図41においては省略したが、通信相手サーチ処理(2)が開始されたとき、子機としての接続フラグおよび親機としての接続フラグがオフされるのは、通信相手サーチ処理(1)の場合と同じである。
一方、子機から送信された送信無線フレームである接続要求信号(すなわち受信無線フレーム)を全く受信しない場合(ステップS244においてNO)には、ステップS246で、子機サーチ時間すなわち親機として他のゲーム装置から接続を試みられる期間がTsc1秒経過したかどうかを判断する。
子機サーチ時間がTsc1秒経過していなければ(ステップS246においてNO)、そのままステップS244に戻る。
一方、子機サーチ時間がTsc1秒経過すれば(ステップS246においてYES)、ステップSs48で、親機のサーチを開始し、つまりタイマ回路をリセットおよびスタートし、ステップS197で、送信無線フレームである接続要求信号を宛先を特定せずに送信する。
続くステップS250では、親機から送信された送信無線フレームである接続応答信号(すなわち受信無線フレーム)を受信したかどうかを判断する。親機から送信された送信無線フレームである接続応答信号(すなわち受信無線フレーム)を受信すれば(ステップS252においてYES)、ステップS262で、子機としての接続フラグをオンして、通信相手サーチ処理(2)をリターンする。つまり、子機として他のゲーム装置との間で通信接続が可能であることが判明する。
一方、親機から送信された送信無線フレームである接続応答信号(すなわち受信無線フレーム)を受信しなければ(ステップS252においてNO)、ステップS254で、64ms待機し、続くステップS256で、親機サーチ時間すなわち子機として他のゲーム装置との接続を試みる期間がTsp秒経過したかどうかを判断する。
親機サーチ時間がTsp秒経過していなければ(ステップS256においてNO)、そのままステップS250に戻る。
一方、親機サーチ時間がTsp秒経過すれば(ステップS256においてYES)、図42に示すステップ270で、子機のサーチを開始する。このとき、タイマ回路をリセットおよびスタートする。
次のステップS272では、子機から送信された送信無線フレームである接続要求信号(すなわち受信無線フレーム)を受信したかどうかを判断する。
子機から送信された送信無線フレームである接続要求信号(すなわち受信無線フレーム)を受信すれば(ステップS272においてYES)、ステップS276で、子機に対して接続応答信号を送信し、その後、ステップS278において、親機としての接続フラグをオンして、通信相手サーチ処理(2)をリターンする。
一方、子機からの接続要求信号を全く受信しない場合(ステップS272においてNO)には、ステップS274で、子機サーチ時間がTsc2秒経過したかどうかを判断する。
子機サーチ時間がTsc2秒経過していなければ(ステップS274においてNO)、そのままステップS272に戻る。
一方、子機サーチ時間がTsc2秒経過すれば(ステップS274においてYES)、Tcycleの期間が経過したと判断して、通信相手サーチ処理(2)をリターンする。
図43を用いて本発明の実施の形態に従う交換データの授受のデータの遣り取りについて説明する。
図43を参照して、本体側のCPU31においてアプリケーションプログラムの実行による交換データが設定される(シーケンスsq2)。そして、本体側のCPU31は、無線通信モジュール38に対して通信設定のためのデータを出力する(シーケンスsq4)。具体的には、交換データのアプリケーションIDおよびMACアドレスリストに関するデータを出力する。そして、当該交換データのアプリケーションIDは、アプリケーションID保存領域68に格納され、MACアドレスリスト保存領域88のMACアドレスリストは、MACアドレスリスト保存領域70に格納される。本例においては、アプリケーションIDを各判定方式に対応するリストとして纏めてアプリケーションID保存領域68に保存する。なお、上述したようにMACアドレスリスト保存領域88#のMACアドレスリストについてもMACアドレスリスト保存領域70#に保存される。
そして、本体側のCPU31は、通信開始指示を無線通信モジュール38に出力する(シーケンスsq6)。
これに伴い通信開始指示に従い無線通信モジュール38による無線通信が開始される(シーケンスsq8)。そして、本実施例においては、無線通信モジュール38において交換データを交換する通信相手を探索する交換相手探索処理である携帯端末間通信が開始される。
一方、ゲーム装置3においても、本体側のCPUにおいてアプリケーションプログラムの実行による交換データが設定される(シーケンスsq14)。そして、本体側のCPUは、無線通信モジュール38Pに対して通信設定のためのデータを出力する(シーケンスsq16)。具体的には、交換データのアプリケーションIDおよびMACアドレスリストに関するデータを出力する。そして、当該交換データのアプリケーションIDのは、アプリケーションID保存領域68Pに格納され、MACアドレスリストは、MACアドレスリスト保存領域70Pに格納される。本例においては、アプリケーションIDを各判定方式に対応するリストとして纏めてアプリケーションID保存領域68に保存する。
そして、本体側のCPU31は、通信開始指示を無線通信モジュール38Pに出力する(シーケンスsq18)。
これに伴い通信開始指示に従い無線通信モジュール38Pによる無線通信が開始される(シーケンスsq18)。そして、上述したのと同様に、携帯端末間通信が開始される。
再び、ゲーム装置1に関して、次に、上述したように携帯端末間通信において、子機サーチが実行される(シーケンスsq21)。そして、次に、親機サーチが実行される(シーケンスsq22)。
そして、親機サーチにおいて、ゲーム装置1の無線通信モジュール38からゲーム装置3の無線通信モジュール38Pに対して接続要求信号が送信されると(シーケンスsq26)、ゲーム装置3の無線通信モジュール38Pは、ゲーム装置1から送信された送信無線フレーム(すなわち受信無線フレーム)を受け付けて、ゲーム装置1の無線通信モジュール38に対してゲーム装置3の送信無線フレームである接続応答信号を送信する(シーケンスsq28)。
そして、無線通信モジュール38は、無線通信モジュール38Pから送信された送信無線フレームである接続応答信号(すなわち受信無線フレーム)の入力を受け付ける。
当該処理により、上述したように自機であるゲーム装置1については子機としての接続フラグがオンする。また、ゲーム装置3については親機としての接続フラグがオンする。
ゲーム装置1においては、子機としての接続フラグがオンとなることに伴い通信相手である親機と通信接続が可能であるすなわち通信相手を発見したと判断する(シーケンスsq30)。また、ゲーム装置3においても親機としての接続フラグがオンとなることに伴い通信相手である子機と通信接続が可能であるすなわち通信相手を発見したと判断する(スケールsq42)。
そして、ゲーム装置1においては、通信相手を発見した後、次に、MACアドレスを比較する(シーケンスsq32)。すなわち、通信相手であるゲーム装置3から受信した受信無線フレームに含まれているMACアドレスが、MACアドレスリスト保存領域70に保存されたMACアドレスリストと比較して一致するかどうかが判断される。
そして、不一致であると判断された場合、すなわち、未だ通信していない相手である場合には、次にデータ内容を確認する(シーケンスsq34)。すなわち、受信無線フレームが携帯端末間処理として処理可能な無線フレームであるかどうかを判定する。
そして、携帯端末間処理として処理可能な受信無線フレームを受信したと判定された場合には、アプリケーションID判定処理を実行する(シーケンスsq36)。
そして、アプリケーションID判定処理により一致フラグがオンした場合には、無線通信モジュール38は、本体側のCPUに対して一致したアプリケーションIDに対応する交換データについて、交換が可能なゲーム装置3が発見された旨を通知する(シーケンスsq38)。
これにより本体側のCPUは、無線通信モジュール38からの通知によって通信接続が可能な交換相手が発見されたことを認識し、データ授受処理を開始する(シーケンスsq40)。
一方、同様の処理に従ってゲーム装置3側においても、通信相手を発見した(シーケンスsq42)後、MACアドレスを比較し(シーケンスsq44)、不一致である場合、すなわち、未だ通信していない相手である場合にはデータ内容を確認し(シーケンスsq46)、そして、携帯端末間処理として処理可能な受信無線フレームを受信したと判定した場合にはアプリケーションID判定処理を実行し(シーケンスsq48)、そして、一致フラグがオンした場合には本体側のCPUに交換が可能なゲーム装置1が発見された旨を通知する(スケールsq50)。
これにより、ゲーム装置3においてもデータ授受処理が開始される(シーケンスsq52)。
そして、次に、ゲーム装置1の本体側のCPU31は、データ授受処理が開始された後、ゲーム装置3との間で通信接続を確立する(シーケンスsq54)。
同様に、ゲーム装置3の本体側のCPUにおいてもデータ授受処理が開始された後、ゲーム装置1との間で通信接続を確立する(シーケンスsq56)。
そして、ゲーム装置1は、交換データを送信する(シーケンスsq58)。当該交換データは、スロットに格納されている交換データをコピーしたコピーデータである。
そして、ゲーム装置3においてゲーム装置1から送信された交換データを受信して、当該交換データを格納する(シーケンスsq60)。
そして、ゲーム装置3において、交換データを送信する(シーケンスsq62)。当該交換データは、スロットに格納されている交換データをコピーしたコピーデータである。
そして、ゲーム装置1においては、ゲーム装置3から送信された交換データを受信して、当該交換データを格納する(シーケンスsq64)。
そして、通信を切断する(シーケンスsq66)。
そして、MACアドレスを登録する(シーケンスsq67)。
そして、データ通知処理を実行する(シーケンスsq68)。
同様に、ゲーム装置3においても、交換データを格納した後、通信を切断する(シーケンスsq70)。そして、MACアドレスを登録し(シーケンスsq71)、データ通知処理を実行する(シーケンスsq72)。
そして、上述したように交換データの通知を受けて、ユーザが当該交換データを利用するアプリケーションを実行することにより上記で説明したスロットに格納されている交換データの消去処理が実行されて交換データの交換処理が完了する。
なお、上記シーケンスにおいて、シーケンスsq4,sq6,sq16,sq18,sq40,sq52〜sq72は、それぞれのゲーム装置において、一例として、上述したように本体側の機能でありシステムプログラム保存領域86に格納された本体機能プログラムにより実現されるものである。一方、シーケンスsq8,sq20〜sq38,sq42〜sq50は、一例として、上述したように、それぞれのゲーム装置において、無線通信モジュール38におけるメモリ制御部64に格納されているROM72から読出されたプログラムにより実現されるものである。
この無線通信により、所定のアプリケーションで利用される交換データを、当該アプリケーションを実行していない時でも、通信接続が確立するゲーム装置との間で自動で交換することができるので、知人との間で交換データの交渉をする機会が増す。また、無線通信により、本体側のCPU31で実行されるアプリケーションの有無に関わらず、所定のアプリケーションで利用される交換データを、当該アプリケーションを実行していない時でも、通信接続が確立するゲーム装置との間で自動で交換することができるので、当該アプリケーションを格納しているメモリカード26を装着している必要は無く、利便性が高く、また、何が交換されるかが分からないため興趣性が増す。また、交換する相手が知人に限定されないため、人が集まる場所に出かければ、交換データを交換することができる可能性が高くなり、交換の楽しさを増大させることができる。つまり、交換データを利用するアプリケーションの興趣性を向上させることができる。また、まず、無線通信モジュール間のみでの通信処理を実行して交換可能であると判断した場合に、初めて本体側のCPUに通知して交換データの授受処理を実行するためCPUの処理負荷を軽減することが可能であるとともに消費電量を低減することが可能である。
そして、当該交換データの授受処理が実行された後、再び、無線通信モジュール38における交換相手探索処理が開始される。
具体的には、交換データの授受処理により交換データ保存領域80の内容が変更されることになる。したがって、図10で説明したフローに従って、CPU31(通信設定処理部204)は、通信設定処理(ステップS24)を実行する。通信設定処理の詳細については図11で説明したので繰り返さない。そして、次に、CPU31(通信指示処理部206)は、通信開始指示を無線通信モジュール38に出力する(ステップS26)。
これにより再び、図13のステップS44で説明したように無線通信モジュール38において携帯端末間通信が開始される(ステップS44)。携帯端末間通信の詳細については図14で説明したとおりである。
図18で説明したように携帯端末間通信においては、MACアドレスが一致する他のゲーム装置(本例においてはゲーム装置3)との再度の通信処理を行わないMACアドレスフィルタリング処理が実行される。
すなわち、MACアドレスリストに登録されている一度通信を行った通信相手であるゲーム装置(本例においてはゲーム装置3)との間では実質的な通信は実行されない。
したがって、本発明の実施の形態に従うゲーム装置においては、通信範囲のゲーム装置を自動的に繰り返して探知し、見つかったゲーム装置を通信候補に設定する。この場合、同じゲーム装置を何度も探知して見つけてしまう可能性があるが、上述のようなMACアドレスフィルタリング処理により、同じゲーム装置との間で何度も通信することを防止することができ、効率的かつ効果的なデータ通信を実行することが可能である。
<変形例>
なお、上記携帯端末間通信においては、送信無線フレームの設定にあたり、MACアドレスとともに通信条件であるベンダ特定IEデータを送信無線フレームに含めて送信する方式について説明したが、セキュリティを高めるために、まず、MACアドレスのみを含めた送信無線フレームを送信し、そして、後に、別の送信無線フレームにベンダ特定IEデータを含めて送受信する方式とすることも可能である。
具体的には、先の送信無線フレームに含まれているMACアドレスを用いて、上述したMACアドレスフィルタリング処理を実行することが可能である。
そして、その場合には、図7で説明した無線通信モジュール38の機能として設けられる交換データ通信判断部225の構成としては、装置識別情報比較部226のみの構成とする。
当該構成において、装置識別情報比較部226におけるMACアドレスフィルタリング処理においてMACアドレスが不一致であると判断される場合に本体側に通知するようにしても良い。
そして、上述した通信接続確立後に別の送信無線フレームを送受信して、一例として、本体機能プログラムの実行により本体部の機能として上記で説明した交換データ通信判断部225の他の機能である通信データ判定部228およびアプリケーションID判定部230の処理を実行するようにしても良い。
また、本例においても、上述したように、ステップS142におけるスリープ状態が解除された後、データ授受処理を開始する前に装置識別情報登録処理部210により通信相手を識別するMACアドレスを保存するようにすることも可能である。
すなわち、当該構成においては、装置識別情報比較部226を含む交換データ通信判断部225を通過した場合に、当該交換データ通信判断部225における判断処理を通過した他のゲーム装置のMACアドレスが装置識別情報登録処理部210によりMACアドレスリスト保存領域88に保存されることになる。上述した処理により、一度、当該判断処理を通過した通信相手との通信を行わずに効率的なデータ通信を実行することが可能である。
なお、当該構成においては、交換データ通信判断部225における判断処理を通過したことを条件(登録条件)として、CPU31(装置識別情報登録処理部210)が保存用データメモリ34に設けられているMACアドレスリスト保存領域88に、通信相手を識別するMACアドレスを保存(登録)する場合について説明したが、当該交換データ通信判断部225における判断処理を通過した場合のみをMACアドレスを登録する登録条件とする場合に限られず、当該判断処理を通過した上でさらに他の条件の判定処理を実行した上で、当該他の条件の判定処理を満たす場合に、MACアドレスを登録するようにするようにしても良い。
なお、当該構成において、本体部の機能として、通信データ判定部228およびアプリケーションID判定部230の処理を実行する場合について説明しているが、その場合に、通信データ判定部228において受信無線フレームを受信しないと判断した場合、すなわち互いに通信接続が不可能である装置からデータを受信あるいは通信対象とならないデータを受信したと判定される場合には、再度データ通信を実行する必要はないと考えられる。
したがって、その場合にも当該データを送信した装置のMACアドレスを装置識別情報登録処理部210によりMACアドレスリスト保存領域88に保存するようにしても良い。
これにより、通信対象とならない装置のMACアドレスをMACアドレスリスト保存領域88に保存することにより、一度通信を行った通信相手との通信を行わずに効率的なデータ通信を実行することが可能となる。
また、同様に、アプリケーションID判定部230の判定処理において、アプリケーションIDの一致フラグがオンでない、すなわち、他のゲーム装置は交換データの交換相手とはならないと判定される場合においても、再度データ通信を実行する必要はないと考えられる。
したがって、その場合にも他のゲーム装置のMACアドレスを装置識別情報登録処理部210によりMACアドレスリスト保存領域88に保存するようにしても良い。
これにより、交換データの交換相手とはならない他のゲーム装置のMACアドレスをMACアドレスリスト保存領域88に保存することにより、一度通信を行った通信相手との通信を行わずに効率的なデータ通信を実行することが可能となる。
<携帯固定端末間通信>
次に、本発明の実施の形態に従うゲーム装置1において固定端末機器の配信データを受信するデータ通信について説明する。
図44を用いて本発明の実施の形態に従う携帯ゲーム装置1と固定端末機器5との通信処理の概略について説明する。
図44を参照して、固定端末機器5は、無線アクセスポイント装置100と、信号発生装置102とを含む。無線アクセスポイント装置100は、ネットワーク110を介して配信サーバ115と接続される。信号発生装置102は、無線アクセスポイント装置100と接続するために必要な接続情報を含む後述する配信無線フレームを宛先を特定せずに送信する。
アクセスポイント装置100は、ゲーム装置1からの配信データの要求に対してネットワーク110を介して配信サーバ115から取得(ダウンロード)した配信データをゲーム装置1に対して送信する。
<固定端末機器5からの配信データの受信を実行する機能ブロックの説明>
図45を用いて、本発明の実施の形態に従うゲーム装置1における配信データを受信する機能ブロックについて説明する。
図45を参照して、ゲーム装置1は、無線通信モジュール38と、無線通信モジュール38以外の本体部39とで構成される。
本体部39は、無線通信設定部205と、装置識別情報登録処理部210と、データ通信制御部209と、受信データ保存領域82と、MACアドレスリスト保存領域88#とを含む。
無線通信モジュール38は、無線フレーム受信部223#と、配信データ通信判断部225#と、MACアドレスリスト保存領域70#と、受信無線フレーム保存領域69とを含む。
無線通信設定部205は、MACアドレス保存領域88#に格納されているMACアドレスリストをMACアドレスリスト保存領域70#に格納する。また、無線通信設定部205は、無線通信モジュール38における無線通信を実行するための指示を無線フレーム受信部223#に出力する。
無線通信モジュール38の無線フレーム受信部223#は、無線通信を実行する指示を受けて配信相手を探索する配信相手探索処理を実行する。本例においては、無線フレーム受信部223#は、配信相手として一例として固定端末機器5から送信された配信無線フレームを受信無線フレームとして受信するものとする。そして、無線フレーム受信部223#は、当該受信した受信無線フレームを受信無線フレーム保存領域69に格納する。
配信データ通信判断部225#は、受信した配信無線フレーム(受信無線フレーム)に基づいて通信相手が配信データを配信する配信相手であるかどうかを判断し、配信相手であると判断された場合には、その旨を本体部39に通知する。
具体的には、配信無線フレーム(受信無線フレーム)に含まれている装置識別情報であるMACアドレスがMACアドレスリスト保存領域70#に保存されているMACアドレスリストに登録されているかどうかを判断する。また、当該配信無線フレーム(受信無線フレーム)について、配信データの取得処理が可能な無線フレームであるかどうかを判定する。
そして、配信データ通信判断部225#は、配信無線フレームに含まれているMACアドレスがMACアドレスリストに登録されておらず、また、また、当該配信無線フレームが配信データの取得処理が可能な無線フレームであると判断した場合には、配信データの受信が可能である旨の通知を本体部39のデータ通信制御部209に出力する。なお、ここでは、2つの条件が満たされた場合に配信データの受信が可能である旨の通知を本体部39のデータ通信制御部209に出力する場合について説明しているが、少なくとも1つの条件が満たされた場合に当該通知を出力するようにしても良い。
データ通信制御部209は、配信データ通信判断部225#から出力された配信データの受信が可能である旨の通知を受けて、固定端末機器5に対して配信データの送信を要求し、固定端末機器5から送信された配信データを受信する配信データ取得処理を実行する。そして、受信した配信データを受信データ保存領域82に格納する。
装置識別情報登録処理部210は、データ通信制御部209により受信した配信データが受信データ保存領域82に格納された場合には、配信相手である固定端末機器5の装置識別情報であるMACアドレスをMACアドレスリスト保存領域88#に格納する。
そして、無線通信設定部205は、再び、MACアドレス保存領域88#に格納されているMACアドレスリストをMACアドレスリスト保存領域70#に格納し、無線通信モジュール38における無線通信を実行するための指示を無線フレーム受信部223#に出力する。すなわち、上記で説明したのと同様の処理を繰り返す。
無線通信モジュール38の無線フレーム受信部223#は、再び、無線通信を実行する指示を受けて配信相手を探索する配信相手探索処理を実行する。そして、例えば、再び、本例において、固定端末機器5から送信された配信無線フレームすなわち受信無線フレームを受信するものとする。
配信データ通信判断部225#は、上述したように、配信無線フレームに含まれている装置識別情報であるMACアドレスがMACアドレスリスト保存領域70#に保存されているMACアドレスリストに登録されているかどうかを判断する。
その際、配信データ通信判断部225#は、上述したように以前に配信データの取得処理が実行されている場合には、MACアドレスリストに固定端末機器5の装置識別情報であるMACアドレスが格納されているためMACアドレスに登録されていると判断し、その後のデータ通信である配信データ取得処理は実行しない。すなわち、一度通信を行った通信相手との通信を行わずに効率的なデータ通信を実行することが可能である。
なお、本体部39と、無線通信モジュール38とは独立して動作することが可能である。すなわち、本体部39がスリープ状態に遷移している場合においても、無線通信モジュール38は、配信相手を探索する配信相手探索処理を実行することが可能である。そして、配信データを受信することが可能な配信相手が見つかった場合にのみ、本体部39に通知されて、通信相手との接続が確立されて、配信データの取得処理が実行される。したがって、例えば、本体部39がスリープ状態等の省電力状態に遷移している場合に、無線通信モジュール38における配信相手探索処理により通信相手が見つかった場合であっても交換が可能でなければ本体部39に通知されて通信接続が確立されることはないため、ゲーム装置1全体における省電力を図ることが可能である。
図46を用いて、本発明の実施の形態に従う携帯固定端末間処理を実行する無線通信モジュール38の機能ブロックの詳細について説明する。
図46を参照して、本例においては、一例として、CPU60がROM72に保存された携帯固定端末間処理を実行するためのアプリケーションを実行することにより所定の機能を実現する場合について説明するが、必ずしもCPU60により実現される場合に限られず、少なくとも一部の機能を専用のIC(Integrated Circuit)を用いて実現するようにしても良い。
無線通信モジュール38は、無線フレーム受信部223#と、配信データ通信判断部225#とを含む。
無線フレーム受信部223#は、通信相手探索部224を含む。配信データ通信判断部225#は、装置識別情報比較部226と、通信データ判定部228とを含む。なお、各機能は、必要に応じてマルチタスク制御により実現されるものとする。
図7の機能ブロックと比較すると送信無線フレームを送信しないために無線フレーム設定部222が設けられていない構成である。
通信相手探索部224は、通信可能範囲10に含まれる通信相手を探索する配信相手探索処理を実行する。本例においては、一例として配信相手として固定端末機器5との間で通信する場合について説明する。そして、通信相手探索部224は、固定端末機器5からの配信無線フレームを受信するまで待機し、受信した場合に当該配信無線フレームを受信無線フレームとして受信無線フレーム保存領域69に格納する。
配信データ通信判断部225#は、通信相手探索部224で通信相手を発見した場合、すなわち、通信相手から配信無線フレームを受信した場合、当該配信無線フレームに基づいて通信相手が配信データを取得することが可能な配信相手であるかどうかを判断し、配信相手であると判断された場合には、その旨を通知する。
具体的には、装置識別情報比較部226は、通信相手探索部224において通信相手が発見された場合に、通信相手である固定端末機器5から受信した配信無線フレームに含まれている装置識別情報であるMACアドレスが、MACアドレスリスト保存領域70#に保存されたMACアドレスリストと比較して一致するものがあるかどうかを判断する。
通信データ判定部228は、通信相手が発見された場合に、装置識別情報比較部226の比較結果に従って配信無線フレームに含まれているMACアドレスがMACアドレスリスト保存領域70#に保存されているMACアドレスリストと一致しないと判断された場合に、配信無線フレームのデータ内容を確認して、配信無線フレームが携帯固定端末間処理として処理可能な無線フレームであるかどうかを判定する。
そして、通信データ判定部228は、配信無線フレームが携帯固定端末間処理として処理可能な無線フレームであると判断した場合には、本体側にその旨を通知する。
以降の処理は、ゲーム装置1の本体部39の機能として実行されることになる。
なお、ゲーム装置1の本体部39の機能ブロックの詳細については、上述したように図6で説明した構成と基本的に同様であるので図6を用いて説明する。
具体的には、スリープ設定/解除処理部216は、無線通信モジュール38からの通知(図46の通信データ判定部228からの通知)を受ける。
そして、スリープ設定/解除処理部216は、無線通信モジュール38から通知があった場合には、その通知をデータ通信実行処理部208に出力する。
データ通信実行処理部208は、無線通信モジュール38からの通知に従って固定端末機器5からの配信データの取得処理を実行する。具体的には、配信データの要求を固定端末機器5に送信する。そして、固定端末機器5から送信された配信データを受信する。
そして、固定端末機器5から受信した配信データを保存用データメモリ34の受信データ保存領域82に保存する。
装置識別情報登録処理部210は、データ通信実行処理部208により受信した配信データを受信データ保存領域82に格納した場合には、配信相手である固定端末機器5の装置識別情報であるMACアドレスをMACアドレスリスト保存領域88#に格納する。
データ通知処理部212は、配信データを取得した旨をユーザに通知する。
<無線通信モジュール38による携帯固定端末間通信>
図47を用いて、本発明の実施の形態に従う携帯固定端末間通信について説明する。当該処理は、無線通信モジュール38において、配信データを提供する通信相手を探索する配信相手探索処理であり、一例として、CPU60が、ROM72に格納されている携帯固定端末間処理を実行するためのアプリケーションを実行することにより実現される。
図47を参照して、まず、CPU60(通信相手探索部224)は、所定期間が経過したかどうかを判断する(ステップS280)。そして、ステップS280において、CPU60は、所定期間が経過していないと判断した場合(ステップS280においてNO)には、通信相手(固定端末機器)を探索する通信相手サーチ処理を実行する(ステップS282)。通信相手サーチ処理については後述する。
そして、次に、CPU60(通信相手探索部224)は、通信相手サーチ処理により通信相手が発見されたかどうかを判断する(ステップS284)。
ステップS284において通信相手が発見されない場合(ステップS284においてNO)には、ステップS280に戻る。
ステップS284において、通信相手が発見された場合(ステップS284においてYES)には、CPU60(装置識別情報比較部226)は、MACアドレスを比較する(ステップS286)。具体的には、配信無線フレームに含まれるMACアドレスと、上述したMACアドレスリスト保存領域70#に格納されているMACアドレスとを比較する。上述したようにMACアドレスは、通信対象を識別する識別情報であり、各固定端末機器には固有のMACアドレスが割り当てられている。そして、MACアドレスリスト保存領域70#には、各固定端末機器に割り当てられたMACアドレスが保存されている。
そして、次に、CPU60(装置識別情報比較部226)は、配信無線フレームに含まれる固定端末機器のMACアドレスが、MACアドレスリストに格納されているMACアドレスと一致するかどうかを判断する(ステップS288)。
そして、ステップS288において、MACアドレスが一致したと判断した場合(ステップS288においてYES)には、再びステップS280に戻る。すなわち、以降の処理を実行することなく当該MACアドレスに対応する固定端末機器5との通信を終了する。すなわち、上述したMACアドレスフィルタリング処理が実行される。したがって、通信可能範囲10に含まれる他のゲーム装置からの通信対象となるデータを受信する毎に識別情報であるMACアドレスと一致するかどうかの判断が繰り返される。
MACアドレスの比較の概念図については、図17,18で説明したのと同様であるのでその詳細については繰り返さない。
ステップS288においてMACアドレスが一致しないと判断した場合(ステップS288においてNO)には、CPU60(通信データ判定部228)は、受信したデータの内容を確認する(ステップS290)。
図48を用いて、本発明の実施の形態に従う携帯固定端末間通信においてゲーム装置においてビーコンとして受信される配信無線フレームの構成について説明する。
固定端末機器5の信号発生装置102から送信される配信無線フレームの構成の概略は、図15で説明した送信無線フレームと同様の構成であり、図16で説明したベンダ特定IEデータの構成が異なる。
具体的には、ビーコンとして受信される配信無線フレームに含まれるベンダ特定IEデータは、タグ情報DD21、タグ長情報DD22、ベンダ情報DD23、通信データ識別情報DD24、アプリケーションIDDD25とを含む。
タグ情報DD21は、複数のIEデータをそれぞれ識別する識別データである。タグ長情報DD22は、当該ベンダ特定IEデータのデータ長を示すデータが含まれている。
ベンダ情報DD23は、当該データを提供する企業等を識別するためのデータである。
通信データ識別情報DD24は、通信データの種別を示すデータであり、携帯固定端末間通信の場合には、携帯固定端末間通信の通信データを示す情報が格納される。
そして、以降にアプリケーションIDDD25が設けられる。
当該配信無線フレームは、後述するが固定端末機器5から不特定の相手(ゲーム装置)に対して送信されたものであり、不特定の相手(ゲーム装置)が受信するものである。親機側の固定端末機器5は、宛先を特定せずに子機側の通信相手に対して当該送信を繰り返し実行する。
再び、図47を参照して、次に、CPU60は、受信したデータに含まれる配信無線フレームを受信したかどうかを判断する(ステップS288)。
具体的には、図48で説明した当該データを提供する企業等を識別するためのベンダ情報がゲーム装置1が予め有しているベンダ情報と一致するかどうかを判断する。ベンダ情報が一致する場合とは、送信されたデータの発信源が通信接続が可能な装置であることを意味し、異なる場合には、送信されたデータの発信源が通信接続が不可能である装置であることを意味する。
また、通信データ識別情報がゲーム装置1が予め有している通信データ識別情報と一致するかどうかを判断する。通信データ識別情報が一致する場合とは、携帯固定端末間通信における通信データ、すなわち携帯固定端末間処理として処理可能な無線フレームであることを意味する。ゲーム装置1側の比較の対象であるベンダ情報は予めROM72に登録されているものとする。また、ゲーム装置1側の比較の対象である通信データ識別情報についても予めROM72に登録されているものとする。
一方、携帯固定端末間通信における通信データ識別情報と、携帯端末間通信における通信データ識別情報とは異なるため、仮にゲーム装置3から出力されたデータを受信した場合であっても通信データ識別情報が異なるため当該データを受信せず固定端末機器5とのみ通信することが可能である。
CPU60(通信データ判定部228)は、携帯端末間通信か携帯固定端末間通信かによって比較対象とする通信データ識別情報を切り替えて、受信したデータに含まれている通信データ識別情報と一致するか否か判断する。
すなわち、ステップS288において、CPU60(通信データ判定部228)は、配信無線フレームを受信していないと判断した場合(ステップS288においてNO)には、再びステップS280に戻る。
したがって、互いに通信接続が不可能である装置からデータを受信あるいは通信対象とならないデータを受信した場合には、以降の処理を実行することなく通信を終了する。なお、本例においてはベンダ情報および通信データ識別情報がともに一致するかどうかを判断する場合について説明したが、通信データ識別情報のみが一致するかどうかを判断するようにしても良い。
次に、ステップS292において、CPU60(通信データ判定部228)は、配信無線フレームを受信したと判断した場合(ステップS292においてYES)には、次に、配信データを有する固定端末機器5が発見された旨を本体側に通知する(ステップS294)。そして処理を終了する(エンド)。
以降、通信相手である固定端末機器5と接続を確立して、配信データを取得する配信データ取得処理については、無線通信モジュール38を用いた本体側のCPU31のアプリケーションとして実行されることになる。
したがって、本体側に、配信データを有する固定端末機器5が発見された旨を通知することにより無線通信モジュール38のCPU60のみが独立して実行する無線通信すなわち、無線通信モジュール38において配信データを取得する通信相手を探索する配信相手探索処理は終了する。
一方、ステップS292において、CPU60(通信データ判定部228)は、配信無線フレームを受信しないと判断した場合(ステップS292においてNO)には、ステップS280に戻る。
当該処理により、本例においては、無線通信モジュール38における配信相手探索処理により配信データを取得可能な通信相手が見つかった場合にのみ、本体側のCPU31に通知されて、通信相手との接続が確立されて、配信データの取得処理が実行される。したがって、例えば、本体側のCPU31がスリープ状態等の省電力状態である場合に、無線通信モジュール38における配信相手探索処理により通信相手が見つかった場合であっても配信データの取得ができないと判断されれば本体側のCPU31に通知されて通信接続が確立されることはないため、ゲーム装置1全体における省電力を図ることが可能である。
図49を用いて、配信データを取得するデータ取得処理のフローについて説明する。当該データ取得処理は、一例として上述したシステムプログラム保存領域86に格納されている本体機能プログラムをCPU31が実行することにより実現されるものである。当該データ取得処理は、例えば、本体の起動時に開始して、バックグラウンドで継続的に実行される。
図49を参照して、まず、CPU31(スリープ設定/解除処理部216)は、無線通信モジュール38からの通知があるかどうかを判断する(ステップS292)。
ステップS292において、CPU31(スリープ設定/解除処理部216)は、無線通信モジュール38からの通知があったと判断した場合(ステップS292においてYES)には、本体側の機能がスリープ状態であるかどうかを判断する(ステップS301)。
そして、CPU31(スリープ設定/解除処理部216)は、本体側の機能がスリープ状態であると判断した場合(ステップS301においてYES)には、スリープ状態を解除する(ステップS302)。
そして、次に、CPU31(データ通信実行処理部208)は、データ取得処理を開始する(ステップS303)。一方、本体側の機能がスリープ状態で無いと判断した場合(ステップS301においてNO)には、ステップS303に進む。
そして、CPU31(データ通信実行処理部208)は、無線通信モジュール38からの配信データを有する固定端末機器が発見された旨の通知に含まれている通信相手のMACアドレス等の接続情報に基づいて通信相手との間で通信接続を確立する(ステップS304)。本例においては、固定端末機器5の無線アクセスポイント装置100との間で通信接続を確立する。なお、本例においては、固定端末機器が発見された旨の通知後、通信相手との接続を確立する場合、すなわち、CPU31(データ通信実行処理部208)が実行する場合について説明するが、ゲーム装置が発見された旨の通知前、例えば、無線通信モジュール38において図47のステップS292とステップS294との間で通信相手との接続を確立する処理を実行するようにしても良い。
そして、次に、CPU31(データ通信実行処理部208)は、配信データの要求を送信する(ステップS305)。
そして、次に、CPU31(データ通信実行処理部208)は、配信データを受信したかどうかを判断する(ステップS306)。
そして、ステップS306において、CPU31(データ通信実行処理部208)は、配信データを受信したと判断した場合(ステップS306においてYES)には、受信データ保存領域82に配信データを格納する(ステップS308)。
そして、次に、CPU31(データ通信実行処理部208)は、通信相手(固定端末機器5)との通信を切断する(ステップS310)。すなわち、上記処理により通信相手である固定端末機器との間での配信データのデータ取得処理が終了することになる。
そして、次に、CPU31(装置識別情報登録処理部210)は、保存用データメモリ34に設けられているMACアドレスリスト保存領域88#に、通信相手を識別するMACアドレスを保存する(ステップS312)。当該MACアドレスリスト保存領域88#に保存されたMACアドレスがMACアドレスリストの一部に含められ上述した通信設定処理で用いられることになる。
そして、通信設定処理により、MACアドレスリスト保存領域70#にMACアドレスリストが保存されるため、上述したMACアドレスフィルタリング処理により、同じ固定端末機器との間で何度も通信することを防止することができ、効率的かつ効果的なデータ通信を実行することが可能である。
なお、本例においては、本体側の保存用メモリ34に設けられているMACアドレス保存領域88#に保存されたMACアドレスリストと、無線通信モジュール38のMACアドレスリスト保存領域70#に格納されているMACアドレスリストは同じであり、MACアドレスリスト保存領域70#のみを用いて上記で説明した方式を実現しても良い。
一方で、本体側の保存用メモリ34にMACアドレス保存領域88#を設けて、当該MACアドレス保存領域88#にMACアドレスを保存することにより、無線通信モジュール35にアクセスしてMACアドレス保存領域70のデータを編集するよりも、MACアドレスのデータの追加あるいは削除等の編集を容易かつ高速に実行することが可能である。
そして、CPU31(データ通知処理部212)は、取得データ通知処理を実行する(ステップS304)。そして、処理を終了する(エンド)。なお、取得データ通知処理については、図37で説明したのと同様に配信データを取得した場合には、効果音あるいは内容を表示することによりユーザに通知する。
一方、ステップS306において、CPU31(データ通信実行処理部208)は、配信相手である固定端末機器から配信データを一定期間内に受信していないと判断した場合(ステップS306においてNO)には、ステップS316に進む。
ステップS316において、CPU31(データ通信実行処理部208)は、配信相手である固定端末機器との通信を切断する。そして、ステップS314に進む。したがって、この場合には、配信データを適切に取得することができなかったためMACアドレスリスト保存領域70#にMACアドレスを保存することなく通信を切断する。したがって、再度、携帯固定端末間通信に従って上述した処理を実行して、配信データのデータ取得処理を再開することが可能である。
図50を用いて固定端末サーチ処理のフロー図について説明する。
この処理では、ゲーム装置1は、子機として親機である固定端末機器5との間で無線通信を実行し、ゲーム装置1は、親機である固定端末機器5からのビーコンの受信があるまで待機する。この通信相手サーチ処理では、ゲーム装置1は、常に子機として動作して親機をサーチする処理を実行する。なお、本例においては、固定端末機器5からのみビーコンが送信され、ゲーム装置1は当該信号の受信を待つ方式について説明しているが、固定端末機器5は、備え付けの機器であるため、携帯型の移動可能なゲーム装置から信号を出力するよりも固定端末機器5からのみビーコンを送信した方が効率よくデータ通信を実行することができるからである。
図50を参照して、固定端末サーチ処理を開始すると、図示は省略するが、このときタイマ回路をスタートする。
そして、ステップS312で、親機である固定端末機器5のビーコンを受信したかどうかを判断する。
固定端末機器5からのビーコンを受信した場合(ステップS312においてYES)には、ステップS320において接続フラグをオンして、固定端末サーチ処理をリターンする。つまり、子機として、親機である固定端末機器5との間で通信接続が可能であることが判明する。
なお、図50においては省略したが、固定端末サーチ処理が開始されたとき、接続フラグはオフ(リセット)される。
一方、親機からの接続要求信号を全く受信しない場合(ステップS312においてNO)には、ステップS314で、子機として固定端末機器5に接続を試みる期間がTsd秒経過したかどうかを判断する。
ステップS314において、親機サーチ時間がTsd秒経過していなければ(ステップS314においてNO)、そのままステップS312に戻る。
一方、親機サーチ時間がTsd秒経過すれば(ステップS314においてYES)固定端末サーチ処理をリターンする。
図51を用いて本発明の実施の形態に従う配信データ取得のデータの遣り取りについて説明する。
図51を参照して、シーケンスsq2〜sq8までは、図43で説明したのと同様であり、本体側のCPU31においてアプリケーションプログラムの実行による交換データが設定される(シーケンスsq2)。そして、本体側のCPU31は、無線通信モジュール38に対して通信初期設定のためのデータを出力する(シーケンスsq4)。そして、本体側のCPU31は、通信開始指示を無線通信モジュール38に出力する(シーケンスsq6)。
これに伴い通信開始指示に応答して無線通信モジュール38による無線通信が開始される(シーケンスsq8)。
そして、まず、無線通信モジュール38において交換データを交換する通信相手を探索する携帯端末間通信が開始され(シーケンスsq100)、所定期間内に通信相手を発見することができなかったものとする。
そして、さらに、携帯端末間通信が開始される(シーケンスsq102)この場合においても所定期間内に通信相手を発見することができなかったものとする。
そして、次に、携帯固定端末間通信が開始される(シーケンスsq103)。
固定端末機器5は、上述したように、信号発生装置102からビーコンを繰り返し発信(送信)する。
そして、ゲーム装置1の無線通信モジュール38は、固定端末機器5から送信されたビーコンの入力を受け付ける(シーケンスsq104)。
これにより、上述したように自機であるゲーム装置1について接続フラグがオンする。
ゲーム装置1の無線通信モジュール38においては、接続フラグがオンとなることに伴い通信相手である固定端末機器と通信接続が可能であるすなわち通信相手を発見したと判断する(シーケンスsq108)。
そして、ゲーム装置1の無線通信モジュール38においては、データ内容を確認する(シーケンスsq110)。
そして、配信無線フレームを受信したと判断した場合には、無線通信モジュール38は、本体側のCPUに対して配信データの提供を受けることが可能な固定端末機器5が発見された旨を通知する(シーケンスsq112)。
これにより、本体側のCPUは、無線通信モジュール38からの通知によって、配信データを配信する固定端末機器5と通信接続が可能であることを認識し、データ取得処理を開始する(sq114)。
そして、次に、ゲーム装置1の本体側のCPU31は、データ取得処理が開始された後、配信データ要求を送信する(シーケンスsq116)。
固定端末機器5の無線アクセスポイント装置100は、ゲーム装置1からの配信データ要求を受け付けて、当該配信データ要求をネットワーク110を介して配信サーバ115に送信する(シーケンスsq117)。
そして、配信サーバ115は、無線アクセスポイント装置100からの配信データ要求に従って、配信データを送信する(シーケンスsq118)。
無線アクセスポイント装置100は、ネットワーク110を介する配信サーバ115からの配信データを受け付けた後、当該配信データをゲーム装置1に対して送信する(シーケンスsq119)。
そして、ゲーム装置1は、固定端末機器5の無線アクセスポイント装置100から送信された配信データを受け付けて、受信した配信データを格納する(シーケンスsq120)。
そして、通信を切断する(シーケンスsq122)。
そして、MACアドレスを登録する(シーケンスsq124)。
そして、取得データを通知する(シーケンスsq126)。
なお、上記シーケンスにおいて、シーケンスsq4,sq6,sq114〜126は、一例として、上述したように本体側の機能でありシステムプログラム保存領域86に格納された本体機能プログラムにより実現されるものである。一方、シーケンスsq8,sq100〜sq110は、一例として、上述したように、無線通信モジュール38におけるメモリ制御部64に格納されているROM72から読出されたプログラムにより実現されるものである。
この実施例によれば、無線通信により、通信接続が確立する固定端末機器5との間で配信データを自動で取得することができる。
例えば、配信データが店頭で使用することが可能なクーポンを表示するようなものである場合、ゲーム装置1を携帯しているだけで固定端末機器5と無線通信した場合に当該クーポンを表示する配信データを取得することが可能であり、配信データの取得の楽しさを増大させることができる。
また、たとえば、取得したクーポンを表示する配信データを交換データとして上述した交換データ保存領域80のスロットに格納させるようにしても良い。たとえば、当該配信データに上述した交換データとして交換データ保存領域に格納させるアプリケーションを含ませるようにすれば良い。当該処理により、携帯端末間通信において交換データとして他の人に当該配信データを提供することが可能となる。
すなわち、固定端末機器5からのみしか取得できない配信データについても携帯端末間通信を利用して他のユーザに提供することが可能となり、配信データの興趣性をさらに増大させることが可能である。
そして、当該配信データの取得処理が実行された後、再び、無線通信モジュール38における配信相手探索処理が開始される。
例えば、上述したように所定期間経過毎に、自動的に通信設定処理を開始することも可能である。通信設定処理の詳細については図11で説明したので繰り返さない。そして、次に、CPU31(通信指示処理部206)は、通信開始指示を無線通信モジュール38に出力する(ステップS26)。
これにより再び、図13のステップS44で説明したように無線通信モジュール38において携帯端末間通信が実行される(ステップS44)。次に、再び、携帯端末間通信が実行される(ステップS46)。
携帯端末間通信において、所定期間内に通信相手を発見することができなかった場合には、再び、携帯固定端末間通信が実行される。
携帯固定端末間通信の詳細については図47で説明したとおりである。
図47で説明したように携帯固定端末間通信においても、MACアドレスが一致する他の固定端末装置との再度の通信処理を行わないMACアドレスフィルタリング処理が実行される。
すなわち、MACアドレスリストに登録されている一度通信を行った通信相手である固定端末装置(本例においては固定端末装置5)との間では実質的な通信は実行されない。
したがって、本発明の実施の形態に従うゲーム装置においては、通信範囲の固定端末装置を自動的に繰り返して探知し、見つかった固定端末装置を通信候補に設定する。この場合、同じ固定端末装置を何度も探知して見つけてしまう可能性があるが、上述のようなMACアドレスフィルタリング処理により、同じ固定端末装置との間で何度も通信することを防止することができ、効率的かつ効果的なデータ通信を実行することが可能である。
なお、図46における構成においては、図7で説明したようなアプリケーションID判定部230が設けられていない構成について説明したが、携帯固定端末間通信においても、受信した配信無線フレームに格納されているアプリケーションIDが配信データの受信に関する所定条件を満たすか否かを判定するアプリケーションID判定部を設けるようにすることも可能である。具体的には、携帯端末間通信で説明した方式と同様に送信無線フレーム67に保存されているアプリケーションIDとの判定処理を実行するようにしても良い。例えば、上記したように送信無線フレーム67に保存されているアプリケーションIDについて、上述した送受信条件データ(センドフラグデータおよびレシーブフラグデータ)が含まれている場合に、データの受信だけをしたい場合が設定されているような場合に、当該アプリケーションIDと、配信無線フレームに含まれているアプリケーションIDとを比較して一致するかどうかの判定処理を実行するようにしても良い。
なお、図44に示す固定端末機器5においては、無線アクセスポイント装置100と、信号発生装置102とをそれぞれ別々のものとして設けた場合について説明したが両者をまとめて1つの装置とすることも可能である。すなわち、無線アクセスポイント装置100が信号発生装置102の機能を含み接続要求信号を出力するようにしても良い。
一方で、図44に示される構成の如く、信号発生装置102を接続要求信号のみを送信する専用の装置として設けることにより、無線アクセスポイント装置100の処理負荷を軽減することにより、例えば、複数のゲーム装置との間での配信データのデータ通信を効率的に実行させるようにしても良い。
また、信号発生装置102として、固定端末機器5と通信するゲーム装置を接続要求信号のみを送信する専用の信号発生装置として用いるようにしても良い。ベンダ情報等、通信相手であるゲーム装置と同様の情報を有しているため簡易に信号発生装置を実現することが可能である。
図52を用いて本発明の実施の形態に従う携帯ゲーム装置1と固定端末機器5#との通信処理の概略について説明する。
図52を参照して、固定端末機器5#は、図44で説明した固定端末機器5と比較して、通信モジュール104、CPU106、HDD108をさらに含む点で異なる。その他の構成については、図44で説明したのと同様でるのでその詳細な説明は繰り返さない。
通信モジュール104は、ネットワーク110と接続されるものとする。CPU106は、通信モジュール104、HDD(Hard Disk Drive)108、信号発生装置102とそれぞれ接続され、これらを制御するものとする。本例においては、一例としてCPU106がHDD108に格納されている配信データを通信モジュール104と接続されているネットワーク110を介して他の装置に出力可能であるものとする。
当該構成とすることにより、上記と同様の処理を実行することにより、無線アクセスポイント装置100は、配信サーバ115から配信データを取得することができるとともに、ネットワーク110を介して接続されている通信モジュール104と接続して、例えば、HDD108に格納されている配信データを取得して、無線アクセスポイント装置100からゲーム装置に送信することも可能である。
例えば、固定端末機器5#が複数の店舗等にそれぞれ設けられた場合に、各店舗毎に、HDD108に格納されている配信データをカスタマイズすることにより、カスタマイズされた配信データをゲーム装置に送信することが可能であり、ゲーム装置における配信データの取得の楽しさを増大させることができる。
<MACアドレスの更新>
次に、携帯端末間通信の送信無線フレームの設定に関して、セキュリティを向上させる方式について説明する。
上述したように装置を識別する情報としてMACアドレスが用いられるが、第三者が当該MACアドレスを偽装して当該装置になりすます可能性も考えられる。
したがって、本例においては、セキュリティを向上させるためにMACアドレスを更新する。
具体的には、CPU31(通信設定処理部204)は、図15で説明したベンダーコードに設定されるローカルアドレスの内容を更新する。
図53を用いて、ローカルアドレスの更新のフローについて説明する。
図53を参照して、まず、本体側のCPU31(通信設定処理部204)は、所定期間が経過したかを判断する(ステップS330)。一例として所定期間としては6時間程度とする。
そして、ステップS330において、CPU31(通信設定処理部204)は、所定期間が経過したと判断された場合(ステップS330においてYES)には、ローカルアドレスの更新設定を指示する(ステップS332)。
そして、無線通信モジュール側のCPU60は、ローカルアドレスの更新設定指示に従って、ローカルアドレスを更新登録する(ステップS334)。すなわち、送信無線フレームで設定するためのローカルアドレスの値を更新してRAM66に登録する。
そして、処理を終了する(リターン)。
当該処理により、各装置におけるローカルアドレスが所定期間経過後に更新されることになる。
したがって、MACアドレスの内容が所定期間経過後に更新されるため一意にMACアドレスが規定されることはない。それゆえ、MACアドレスに従って装置を一意に特定することはできない仕組みとすることによりセキュリティを向上させることが可能となる。
<MACアドレスリストの消去>
上記においては、MACアドレスリスト保存領域88のデータは、ユーザからの所定の操作指示に従ってCPU31(装置識別情報消去処理部218)の指示により消去する、あるいは、所定のデータ容量が一杯となり、保存する領域が無い場合には、保存された古いMACアドレスを消去して新しいMACアドレスを保存するようにして保存領域を確保する等の処理について説明したが、上記MACアドレスの更新と連動させてMACアドレスリストを消去するようにさせることも可能である。
上述したように、各装置におけるローカルアドレスが所定期間経過後に更新される場合、他の携帯ゲーム装置のMACアドレスが更新される結果以前に上述した交換データの授受処理を実行した相手と再度、当該処理を実行する可能性がある。
図54を用いて、MACアドレスの更新処理について説明する。
図54を参照して、ここでは、自機1と、携帯ゲーム装置3について説明する。
時系列で所定期間毎に自機1のMACアドレスがAD0、AD0a、AD0bと更新される場合が示されている。
また、携帯ゲーム装置3のMACアドレスがAD1、AD1aと更新される場合が示されている。
したがって、同一の装置(携帯ゲーム装置3)について、MACアドレスが更新される毎にデータ通信する可能性があり、MACアドレスリスト保存領域に確保するべきデータ容量が大きくなる可能性がある。
一方で、図54に示されるようにMACアドレスの更新のタイミングは、各装置においてそれぞれ異なる。
自機1のMACアドレスがAD0の場合に、携帯ゲーム装置3と上述した交換データの授受処理を実行したものとすると、携帯ゲーム装置3のMACアドレスAD1が登録されることになる。
自機1のMACアドレスがAD0からAD0aに更新される際(更新1回目)、携帯ゲーム装置3のMACアドレスが更新されているとは限らないため、MACアドレスがAD0の際に登録した携帯ゲーム装置3のMACアドレスAD1を消去せずにそのまま残しておくことにより、無駄なデータ通信を回避することが可能である。
そして、さらに所定期間後、自機1のMACアドレスがAD0aからAD0bに更新される際(更新2回目)について考える。この場合には、携帯ゲーム装置3のMACアドレスについても所定期間が経過しているためAD1からAD1aに更新されている。
したがって、前回残しておいた携帯ゲーム装置3のMACアドレスAD1を残しておく必要はない。
それゆえ、本例においては、現在使用しているMACアドレスに対応するMACアドレスリストを保持するとともに、1つ前のMACアドレスに対応するMACアドレスリストを保持し、それよりも前すなわち2つ前のMACアドレスに対応するMACアドレスリストについては消去する。
図55を用いてMACアドレスリスト保存領域88の構成について説明する。本例においては、MACアドレスリスト保存領域の構成として、2つの領域を設けることとする。ここでは、現在について、MACアドレスリスト保存領域88aとし、所定期間後について、MACアドレスリスト保存領域88bとした場合について説明する。
図55(A)を参照して、MACアドレスリスト保存領域88aは、2つのサブリストR1,R2を含む。なお、当該場合において、MACアドレスAD0aを使用したデータ通信を実行しているものとする。
具体的には現在使用しているMACアドレス(AD0a)を使用した交換データの授受処理を実行することにより、他の携帯ゲーム装置のMACアドレスを保存する領域(サブリストR1)と、現在使用しているMACアドレスよりも前に使用していたMACアドレス(AD0)を使用した交換データの授受処理を実行することにより他の携帯ゲーム装置のMACアドレスを保存する領域(サブリストR2)とを設ける。
次に、図56を用いて、本発明の実施の形態に従うMACアドレスリストの消去を説明するフローについて説明する。
図56を参照して、まず、本体側のCPU31(装置識別情報消去処理部218)は、所定期間が経過したかを判断する(ステップS340)。一例として所定期間としては6時間程度とする。
そして、ステップS340において、CPU31(装置識別情報消去処理部218)は、所定期間が経過したと判断された場合(ステップS340においてYES)には、MACアドレスリスト保存領域88を確認する(ステップS342)。
そして、次に、MACアドレスリスト保存領域88aに設けられているサブリストR1とサブリストR2のいずれが古いかを判断する(ステップS344)。
そして、サブリストR1が古いと判断された場合には、サブリストR1の内容を削除する(ステップS346)。
一方、サブリストR2が古いと判断された場合には、サブリストR2の内容を削除する(ステップS348)。
そして、削除した領域を新しいMACアドレス用の領域に設定する(ステップS350)。
そして、処理を終了する(エンド)。
図55(B)を参照して、ここでは、所定期間後に、MACアドレスAD0aがMACアドレスAD0bに更新された場合が示されている。
当該場合において、MACアドレスリスト保存領域88bは、2つのサブリストR1,R2のうち、古いサブリストR2(MACアドレスAD0)の内容を削除して、新しいMACアドレス(MACアドレスAD0b)用の領域に設定した場合が示されている。
当該処理により、MACアドレスの更新毎に2つの領域の一方のデータ内容が削除されるためMACアドレスリスト保存領域全体のデータ量を抑えることが可能となる。
また、MACアドレスを更新する際に、現在使用しているMACアドレスに対応するサブリストを保持することが可能であるため保持されたMACアドレスに基づいてMACアドレスフィルタリングを実行することができ、MACアドレスを更新した場合にも効率的なデータ通信を継続することが可能である。
なお、当該場合においても、CPU31(装置識別情報消去処理部218)は、携帯端末間通信のMACアドレスが保存されているMACアドレスリスト保存領域88とともに、携帯固定端末間通信のMACアドレスが保存されているMACアドレスリスト保存領域88#のデータ内容を削除することも可能であるが、固定端末機器のMACアドレスは更新されないため携帯固定端末間通信と同様のタイミングでデータ内容を消去しなくても良い。
したがって、CPU31(装置識別情報消去処理部218)は、携帯端末間通信のMACアドレスが保存されているMACアドレスリスト保存領域88のデータ内容を消去するタイミングと異なるタイミングで、携帯固定端末間通信のMACアドレスが保存されているMACアドレスリスト保存領域88#のデータ内容を消去するようにしても良い。
なお、ここでは、本体部のMACアドレスリスト保存領域88,88#について説明したが、無線通信モジュール38側のMACアドレスリスト保存領域70,70#についても同様に適用可能である。
<その他の形態>
上述の実施の形態においては、本発明に係る情報処理装置の代表例として、ゲーム装置1について例示したが、これに限定されることはない。すなわち、本発明に係るプログラムとして、パーソナルコンピュータで実行可能なアプリケーションを提供してもよい。このとき、本発明に係るプログラムは、パーソナルコンピュータ上で実行される各種アプリケーションの一部の機能として組み込まれてもよい。
なお、この実施例では、携帯型のゲーム装置を用いた情報処理システムについてのみ説明したが、当該携帯型のゲーム装置に変えて、携帯電話機やPDA等の携帯端末でも同様に適用可能である。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。