以下、本発明の一実施形態を示す遊技機であるパチスロについて、図1〜図51を参照しながら説明する。
<機能フロー>
まず、図1を参照して、パチスロの機能フローについて説明する。
本実施の形態のパチスロでは、遊技を行うための遊技媒体としてメダルを用いる。なお、遊技媒体としては、メダル以外にも、コイン、遊技球、遊技用のポイントデータ又はトークン等を適用することもできる。
遊技者によりメダルが投入され、スタートレバーが操作されると、予め定められた数値の範囲(例えば、0〜65535)の乱数から1つの値(以下、乱数値)が抽出される。
内部抽籤手段は、抽出された乱数値に基づいて抽籤を行い、内部当籤役を決定する。この内部抽籤手段は、後述する主制御回路が担う。内部当籤役の決定により、後述の入賞判定ラインに沿って表示を行うことを許可する図柄の組合せが決定される。なお、図柄の組合せの種別としては、メダルの払い出し、再遊技の作動、ボーナスの作動等といった特典が遊技者に与えられる「入賞」に係るものと、それ以外のいわゆる「ハズレ」に係るものとが設けられている。
また、スタートレバーが操作されると、複数のリールの回転が行われる。その後、遊技者により所定のリールに対応するストップボタンが押されると、リール停止制御手段は、内部当籤役とストップボタンが押されたタイミングとに基づいて、該当するリールの回転を停止する制御を行う。このリール停止制御手段は、後述する主制御回路が担う。
パチスロでは、基本的に、ストップボタンが押されたときから規定時間(190msec又は75msec)内に、該当するリールの回転を停止する制御が行われる。本実施形態では、この規定時間内にリールの回転に伴って移動する図柄の数を「滑り駒数」と呼ぶ。規定期間が190msecである場合には、滑り駒数の最大数を図柄4個分に定め、規定期間が75msecである場合には、滑り駒数の最大数を図柄1個分に定める。
リール停止制御手段は、入賞に係る図柄の組合せ表示を許可する内部当籤役が決定されているときは、通常、190msec(図柄4コマ分)の規定時間内に、その図柄の組合せが入賞判定ラインに沿って極力表示されるようにリールの回転を停止させる。また、リール停止制御手段は、例えば、第2種特別役物であるチャレンジボーナス(CB)及びCBを連続して作動させるミドルボーナス(MB)の動作時には、1つ以上のリールに対して、規定時間75msec(図柄1コマ分)内に、その図柄の組合せが入賞判定ラインに沿って極力表示されるようにリールの回転を停止させる。さらに、リール停止制御手段は、遊技状態に対応する各種規定時間を利用して、内部当籤役によってその表示が許可されていない図柄の組合せが入賞判定ラインに沿って表示されないようにリールの回転を停止させる。
こうして、複数のリールの回転がすべて停止されると、入賞判定手段は、入賞判定ラインに沿って表示された図柄の組合せが、入賞に係るものであるか否かの判定を行う。この入賞判定手段は、後述する主制御回路が担う。入賞判定手段により入賞に係るものであるとの判定が行われると、メダルの払い出し等の特典が遊技者に与えられる。パチスロでは、以上のような一連の流れが1回の遊技として行われる。
また、パチスロでは、前述した一連の流れの中で、液晶表示装置などの表示装置により行う映像の表示、各種ランプにより行う光の出力、スピーカにより行う音の出力、或いはこれらの組合せを利用して様々な演出が行われる。
スタートレバーが操作されると、上述した内部当籤役の決定に用いられた乱数値とは別に、演出用の乱数値(以下、演出用乱数値)が抽出される。演出用乱数値が抽出されると、演出内容決定手段は、内部当籤役に対応づけられた複数種類の演出内容の中から今回実行するものを抽籤により決定する。この演出内容決定手段は、後述する副制御回路が担う。
演出内容が決定されると、演出実行手段は、リールの回転開始時、各リールの回転停止時、入賞の有無の判定時等の各契機に連動させて対応する演出を実行する。このように、パチスロでは、内部当籤役に対応づけられた演出内容を実行することによって、決定された内部当籤役(言い換えると、狙うべき図柄の組合せ)を知る機会又は予想する機会が遊技者に提供され、遊技者の興味の向上を図ることができる。
<パチスロの構造>
次に、図2〜図6を参照して、一実施形態におけるパチスロ1の構造について説明する。
[外観構造]
図2は、パチスロ1の外部構造を示す斜視図である。
図2に示すように、パチスロ1は、外装体2を備えている。外装体2は、後述するホッパー装置51やメダル補助収納庫52等(図5参照)を収容するキャビネット(本体)2aと、キャビネット2aに対して開閉可能に取り付けられるフロントドア(扉)2bとを有している。
キャビネット2aの両側面には、把手7が設けられている(図2では一側面の把手7のみを示す)。この把手7は、パチスロ1を運搬するときに手をかける凹部である。
外装体2の内部には、3つのリール3L,3C,3Rが横並びに設けられている。以下、各リール3L,3C,3Rを、それぞれ左リール3L、中リール3C、右リール3Rという。各リール3L,3C,3Rは、円筒状に形成されたリール本体と、リール本体の周面に装着された透光性のシート材を有している。シート材の表面には、複数(例えば20個)の図柄が周方向に沿って所定の間隔をあけて描かれている。
フロントドア2bは、ドア本体9と、フロントパネル10と、表示装置の一具体例を示す液晶表示装置11(表示手段,報知手段)とを備えている。
ドア本体9は、ヒンジ(図示省略)を用いてキャビネット2aに取り付けられており、キャビネット2aの開口部を開閉する。ヒンジは、パチスロ1の前方からドア本体9を見た場合に、ドア本体9における左側の端部に設けられている。液晶表示装置11は、ドア本体9の上部に取り付けられている。この液晶表示装置11は、表示部11aを備えており、液晶表示装置11を用いて映像の表示による演出が実行される。
フロントパネル10は、液晶表示装置11の表示部11a側に重畳して配置され、液晶表示装置11の表示部11aを露出させるパネル開口10aを有する枠状に形成されている。フロントパネル10には、ランプ群18と、装飾部材10L,10Rが設けられている(装飾部材10Rは図示省略)。ランプ群18は、LED(Light Emitting Diode)等で構成され、演出内容に対応するパターンで、光を点灯及び消灯する。
フロントドア2bの中央には、台座部12が形成されている。この台座部12には、図柄表示領域4と、遊技者による操作の対象となる各種装置が設けられている。
図柄表示領域4は、正面から見て3つのリール3L,3C,3Rに重畳する手前側に配置されており、3つのリール3L,3C,3Rに対応して設けられている。この図柄表示領域4は、表示窓としての機能を果たすものであり、その背後に設けられた各リール3L,3C,3Rを透過することが可能な構成になっている。以下、図柄表示領域4を、リール表示窓4という。
リール表示窓4は、その背後に設けられたリール3L,3C,3Rの回転が停止されたとき、各リール3L,3C,3Rの複数種類の図柄のうち、その枠内における上段、中段及び下段の各領域にそれぞれ1個の図柄(合計で3個)を表示する。本実施の形態では、リール表示窓4の上段、中段及び下段からなる3つの領域のうち予め定められたいずれかを組み合わせて構成される擬似的なラインを、入賞か否かの判定を行う対象となるライン(入賞判定ライン)として定義する。
リール表示窓4は、台座部12に設けられた枠部材13により形成されている。この枠部材13は、リール表示窓4と、情報表示窓14と、ストップボタン取付部15を有している。
情報表示窓14は、リール表示窓4の下部に連続して設けられており、上方に向かって開口している。すなわち、リール表示窓4と情報表示窓14は、連続する1つの開口部として形成されている。この情報表示窓14及びリール表示窓4は、透明の窓カバー16によって覆われている。
窓カバー16は、枠部材13の内面側に配置されており、フロントドア2bの前面側から取り外し不可能になっている。また、枠部材13は、窓カバー16を挟んで情報表示窓14の開口に対向するシート載置部17を有している。そして、シート載置部17と窓カバー16との間には、遊技に関する情報が記載されたシート部材(情報シート)が配置されている。したがって、情報シートは、凹凸や隙間の無い滑らかな表面を有する窓カバー16により覆われている。
情報シートの取付部を構成する窓カバー16は、フロントドア2bの前面側から取り外し不可能であり、凹凸や隙間の無い滑らかな表面であるため、情報シートの取付部を利用して、パチスロ1の内部にアクセスする不正行為を防ぐことができる。
ストップボタン取付部15は、情報表示窓14の下方に設けられており、正面を向いた平面に形成されている。このストップボタン取付部15には、ストップボタン19L,19C,19Rが貫通する貫通孔が設けられている。ストップボタン19L,19C,19Rは、3つのリール3L,3C,3Rのそれぞれに対応づけられ、対応するリールの回転を停止するために設けられる。以下、ストップボタン19L,19C,19Rを、それぞれ左ストップボタン19L、中ストップボタン19C、右ストップボタン19Rという。
ストップボタン19L,19C,19Rは、遊技者による操作の対象となる各種装置の一例を示す。また、台座部12には、遊技者による操作の対象となる各種装置として、メダル投入口21、BETボタン22、スタートレバー23が設けられている。
メダル投入口21は、遊技者によって外部から投下されるメダルを受け入れるために設けられる。メダル投入口21に受け入れられたメダルは、予め定められた規定数を上限として1回の遊技に投入されることとなり、規定数を超えた分はパチスロ1の内部に預けることが可能となる(いわゆるクレジット機能)。
BETボタン22は、パチスロ1の内部に預けられているメダルから1回の遊技に投入する枚数を決定するために設けられる。スタートレバー23は、全てのリール(3L,3C,3R)の回転を開始するために設けられる。
また、フロントドア2bを正面から見てリール表示窓4の左側方には、7セグメントLED(Light Emitting Diode)からなる7セグ表示器24が設けられている。この7セグ表示器24は、特典として遊技者に対して払い出すメダルの枚数(以下、払出枚数)、パチスロ内部に預けられているメダルの枚数(以下、クレジット枚数)等の情報をデジタル表示する。
また、フロントドア2bを正面から見てリール表示窓4の左側方の7セグ表示器24の上部には、エンターボタン25と、セレクトボタン26が設けられている。エンターボタン25及びセレクトボタン26は、液晶表示装置11に表示された各種画面における選択可能な複数の項目の内、任意の項目を選択するために設けられる。セレクトボタン26の押下に応じて、表示されている複数の項目の内、一つの項目を指定するためのカーソルの位置や、ハイライト表示される項目が変更される。また、エンターボタン25の押下に応じて、指定された項目が選択される。
フロントドア2bを正面から見て台座部12の左側には、精算ボタン27が設けられている。この精算ボタン27は、パチスロ1の内部に預けられている外部に引き出す(排出する)ために設けられる。台座部12の下方には、腰部パネルユニット31が設けられている。腰部パネルユニット31は、任意の画像が描かれた装飾パネルと、この装飾パネルを背面側から照明するための光を出射する光源を有している。
腰部パネルユニット31の下方には、メダル払出口32と、スピーカ用孔33L,33Rと、メダルトレイユニット34が設けられている。メダル払出口32は、後述のホッパー装置51の駆動により排出されるメダルを外部に導く。メダル払出口32から排出されたメダルは、メダルトレイユニット34に貯められる。スピーカ用孔33L,33Rは、演出内容に応じた効果音や楽曲等の音を出力するために設けられている。
[内部構造]
図3及び図4は、パチスロ1の内部構造を示す斜視図である。この図3では、フロントドア2bが開放され、フロントドア2bの裏面側に設けられたミドルドア41がフロントドア2bに対して閉じた状態を示している。また、図4では、フロントドア2bが開放され、ミドルドア41がフロントドア2bに対して開いた状態を示している。
また、図5は、キャビネット2aの内部を示す説明図である。図6は、フロントドア2bの裏面側を示す説明図である。
キャビネット2aは、上面板20aと、底面板20bと、左右の側面板20c,20dと、背面板20eを有している(図5参照)。キャビネット2a内部の上側には、キャビネット側スピーカ42が配設されている。このキャビネット側スピーカ42は、取付ブラケット43L,43Rを介してキャビネット2aの背面板20eに取り付けられている。キャビネット側スピーカ42は、例えば、効果音を出力するためのスピーカである。
キャビネット2a内部を正面から見て、キャビネット側スピーカ42の左側方には、キャビネット側中継基板44が配設されている。このキャビネット側中継基板44は、キャビネット2aの左側面板20cに取り付けられている。キャビネット側中継基板44は、ミドルドア41(図3及び図4参照)に取り付けられた後述する主制御基板71(図7参照)と、ホッパー装置51、メダル補助収納庫スイッチ(図示省略)、メダル払出カウントスイッチ(図示省略)とを接続する配線の中継を行う。
キャビネット2a内部の中央部には、キャビネット側スピーカ42による音の出力を制御するアンプ基板45が配設されている。このアンプ基板45は、左右の側面板20c,20dに固定された取付棚46に取り付けられている。
また、キャビネット2a内部を正面から見て、アンプ基板45の右側には、外部集中端子板47が配設されている(図5参照)。この外部集中端子板47は、キャビネット2aの右側面板20dに取り付けられている。外部集中端子板47は、メダル投入信号、メダル払出信号及びセキュリティー信号などの信号をパチスロ1の外部へ出力するために設けられている。
キャビネット2a内部を正面から見て、アンプ基板45の左側には、サブ電源装置48が配設されている。このサブ電源装置48は、キャビネット2aの左側面板20cに取り付けられている。サブ電源装置48は、交流電圧100Vの電力を後述する電源装置53に供給する。また、交流電圧100Vの電力を直流電圧の電力に変換して、アンプ基板45に供給する。
キャビネット2aの内部の下側には、メダル払出装置(以下、ホッパー装置)51と、メダル補助収納庫52と、電源装置53が配設されている。
ホッパー装置51は、キャビネット2aにおける底面板20bの中央部に取り付けられている。このホッパー装置51は、多量のメダルを収容可能であり、それらを1枚ずつ排出可能な構造を有する。ホッパー装置51は、貯留されたメダルが例えば50枚を超えたとき、又は精算ボタン27(図2参照)が押圧されてメダルの精算を行うときに、メダルを払い出す。ホッパー装置51によって払い出されたメダルは、メダル払出口32(図2参照)から排出される。
メダル補助収納庫52は、ホッパー装置51から溢れ出たメダルを収納する。このメダル補助収納庫52は、キャビネット2a内部を正面から見て、ホッパー装置51の右側に配置されている。メダル補助収納庫52は、キャビネット2aの底面板20bに係合されており、底面板20bに対して着脱可能に構成されている。
電源装置53は、キャビネット2a内部を正面から見て、ホッパー装置51の左側に配置されており、左側面板20cに取り付けられている。この電源装置53は、電源スイッチ53aと、電源基板53bを有している(図7参照)。電源装置53は、サブ電源装置48から供給された交流電圧100Vの電力を各部で必要な直流電圧の電力に変換して、変換した電力を各部へ供給する。
図3,図4及び図6に示すように、ミドルドア41は、フロントドア2bの裏面における中央部に配置され、リール表示窓4(図4参照)を裏側から開閉可能に構成されている。ミドルドア41の上部と下部には、ドアストッパ41a,41b,41cが設けられている。このドアストッパ41a,41b,41cは、リール表示窓4を裏側から閉じた状態のミドルドア41の開動作を固定(禁止)する。すなわち、ミドルドア41を開くには、ドアストッパ41a,41b,41cを回転させてミドルドア41の固定を解除する必要がある。
ミドルドア41には、主制御基板71(図7参照)を収納した主制御基板ケース55と、3つのリール3L,3C,3Rが取り付けられている。3つのリール3L,3C,3Rには、所定の減速比をもったギアを介してステッピングモータが接続されている。
図6に示すように、主制御基板ケース55には、設定用鍵型スイッチ56が設けられている。この設定用鍵型スイッチ56は、パチスロ1の設定を変更もしくはパチスロ1の設定の確認を行うときに使用する。
本実施の形態では、主制御基板ケース55と、この主制御基板ケース55に収納された主制御基板71により、主制御基板ユニットが構成されている。
主制御基板ケース55に収納された主制御基板71は、後述する主制御回路91(図8参照)を構成する。主制御回路91は、内部当籤役の決定、リール3L,3C,3Rの回転及び停止、入賞の有無の判定といった、パチスロ1における遊技の主な流れを制御する回路である。主制御回路91の具体的な構成は後述する。
ミドルドア41の上方には、副制御基板72(図7参照)を収容する副制御基板ケース57が配設されおり、副制御基板ケース57の上方には、センタースピーカ58が配設されている。副制御基板ケース57に収納された副制御基板72は、副制御回路101(図9参照)を構成する。この副制御回路101は、映像の表示等による演出の実行を制御する回路である。副制御回路101の具体的な構成は後述する。
フロントドア2bを裏面側から見て、副制御基板ケース57の右側方には、副中継基板61が配設されている。この副中継基板61は、副制御基板72と主制御基板71とを接続する配線を中継する。また、副制御基板72と副制御基板72の周辺に配設された基板とを接続する配線を中継する基板である。なお、副制御基板72の周辺に配設される基板としては、後述するLED基板62A,62B,62Cが挙げられる。
LED基板62A,62B,62Cは、フロントドア2bの裏面側から見て、副制御基板ケース57の両側に配設されている。これらLED基板62A,62B,62Cは、副制御回路101(図8参照)の制御により実行される演出に応じて、光源の一具体例を示す複数のLED(Light Emitting Diode)85(図7参照)を発光させて、点滅パターンを表示する。なお、本実施の形態のパチスロ1には、LED基板62A,62B,62C以外に複数のLED基板を備えている。
副中継基板61の下方には、24hドア監視ユニット63が配設されている。この24hドア監視ユニット63は、フロントドア2bの開閉の履歴を保存する。また、フロントドア2bを開放したときに、液晶表示装置11にエラー表示を行うための信号を副制御基板72(副制御回路101)に出力する。
ミドルドア41の下方には、ボードスピーカ64と、下部スピーカ65L,65Rが配設されている。ボードスピーカ64は、腰部パネルユニット31(図2参照)に対向しており、下部スピーカ65L,65Rは、それぞれスピーカ用孔33L,33R(図2参照)に対向している。
下部スピーカ65Lの上方には、セレクタ66と、ドア開閉監視スイッチ67が配設されている。セレクタ66は、メダルの材質や形状等が適正であるか否かを選別する装置であり、メダル投入口21に投入された適正なメダルをホッパー装置51へ案内する。セレクタ66内においてメダルが通過する経路上には、適正なメダルが通過したことを検出するメダルセンサ(図示省略)が設けられている。
ドア開閉監視スイッチ67は、フロントドア2bを裏面側から見て、セレクタ66の左側方に配置されている。このドア開閉監視スイッチ67は、パチスロ1の外部及び24hドア監視ユニット63へ、フロントドア2bの開閉を報知するためのセキュリティ信号を生成するための信号を主制御回路91に出力するとともに、24hドア監視ユニット63にフロントドアの2bの開閉状態を示す信号を出力する。本実施形態において、ドア開閉監視スイッチ67は、開閉状態検知手段を構成する。
信号を出力する。
また、リール表示窓4の下方であってミドルドア41により開閉される領域には、ドア中継端子板68が配設されている(図4参照)。このドア中継端子板68は、主制御基板ケース55内の主制御基板71(図7参照)と、各種のボタンやスイッチ、副制御基板72(図7参照)、セレクタ66及び遊技動作表示基板81(図7参照)との配線を中継する基板である。なお、各種のボタン及びスイッチとしては、例えば、BETボタン22、精算ボタン27、ドア開閉監視スイッチ67、後述するBETスイッチ77、スタートスイッチ79等を挙げることができる。
<パチスロが備える回路の構成>
次に、パチスロ1が備える回路の構成について、図7〜図9を参照して説明する。
図7は、パチスロ1が備える回路全体のブロック構成図である。図8は、主制御回路の内部構成を示すブロック構成図である。図9は、副制御回路の内部構成を示すブロック構成図である。
パチスロ1は、ミドルドア41に配設された主制御基板71と、フロントドア2bに配設された副制御基板72を有している。
主制御基板71には、リール中継端子板74と、設定用鍵型スイッチ56と、外部集中端子板47と、ホッパー装置51と、メダル補助収納庫スイッチ75と、電源装置53の電源基板53bが接続されている。設定用鍵型スイッチ56、外部集中端子板47、ホッパー装置51及びメダル補助収納庫スイッチ75は、キャビネット側中継基板44を介して主制御基板71に接続されている。外部集中端子板47及びホッパー装置51については、上述したため、説明を省略する。
リール中継端子板74は、各リール3L,3C,3Rのリール本体の内側に配設されている。このリール中継端子板74は、各リール3L,3C,3Rのステッピングモータ(図示省略)に電気的に接続されており、主制御基板71からステッピングモータに出力される信号を中継する。
メダル補助収納庫スイッチ75は、メダル補助収納庫52のスイッチ貫通孔(非表示)を貫通している。このメダル補助収納庫スイッチ75は、メダル補助収納庫52がメダルで満杯になっているか否かを検出する。
電源装置53の電源基板53bには、電源スイッチ53aが接続されている。この電源スイッチ53aは、パチスロ1に必要な電源を供給するときにONにする。
また、主制御基板71には、ドア中継端子板68を介して、セレクタ66、ドア開閉監視スイッチ67、BETスイッチ77、精算スイッチ78、スタートスイッチ79、ストップスイッチ基板80、遊技動作表示基板81及び副中継基板61が接続されている。セレクタ66、ドア開閉監視スイッチ67及び副中継基板61については、上述したため、説明を省略する。
BETスイッチ77は、BETボタン22が遊技者により押されたことを検出する。精算スイッチ78は、精算ボタン27が遊技者により押されたことを検出する。スタートスイッチ79は、スタートレバー23が遊技者により操作されたこと(開始操作)を検出する。
ストップスイッチ基板80は、回転しているリールを停止させるための回路と、停止可能なリールをLEDなどにより表示するための回路を構成する基板である。このストップスイッチ基板80には、ストップスイッチが設けられている。ストップスイッチは、各ストップボタン19L,19C,19Rが遊技者により押されたこと(停止操作)を検出する。
遊技動作表示基板81は、メダルの投入を受け付けるとき、3つのリール3L,3C,3Rが回動可能なとき及び再遊技を行うときに、投入されたメダルの枚数を7セグ表示器24に表示させるための基板である。この遊技動作表示基板81には、7セグ表示器24とLED82が接続されている。LED82は、例えば、遊技の開始を表示するマークや再遊技を行うマークなどを点灯させる。
副制御基板72は、ドア中継端子板68と副中継基板61を介して主制御基板71に接続されている。この副制御基板72には、副中継基板61を介して、サウンドI/O基板84、LED基板62A,62B,62C、24hドア監視ユニット63、エンタースイッチ110、セレクトスイッチ111が接続されている。LED基板62A,62B,62C及び24hドア監視ユニット63については、上述したため、説明を省略する。
エンタースイッチ110は、エンターボタン25が押されたことを検出して、その検出結果を、副中継基板61を介して副制御基板72に出力する。また、セレクトスイッチ111は、セレクトボタン26が押されたことを検出して、その検出結果を、副中継基板61を介して副制御基板72に出力する。
サウンドI/O基板84は、センタースピーカ58、ボードスピーカ64、下部スピーカ65L,65R及びフロントドア2bに設けられたスピーカ(図示省略)への音声の出力を行う。
また、副制御基板72には、ロムカートリッジ基板86と、液晶中継基板87が接続されている。これらロムカートリッジ基板86及び液晶中継基板87は、副制御基板72と共に副制御基板ケース57に収納されている。
ロムカートリッジ基板86は、演出用の画像(映像)、音声、LED基板62A,62B及びその他のLED基板(図示省略)、通信のデータを管理するための基板である。液晶中継基板87は、副制御基板72と液晶表示装置11とを接続する配線を中継する基板である。
<主制御回路>
次に、主制御基板71により構成される主制御回路91について、図8を参照して説明する。
図8は、パチスロ1の主制御回路91の構成例を示すブロック図である。
主制御回路91は、主制御基板71上に設置されたマイクロコンピュータ92を主たる構成要素としている。マイクロコンピュータ92は、メインCPU93、メインROM94及びメインRAM95により構成される。メインCPU93と前述のホッパー装置51は、本発明の遊技媒体払出装置を構成している。
メインROM94には、メインCPU93により実行される制御プログラム、データテーブル、副制御回路101に対して各種制御指令(コマンド)を送信するためのデータ等が記憶されている。メインRAM95には、制御プログラムの実行により決定された内部当籤役等の各種データを格納する格納領域が設けられる。
メインCPU93には、クロックパルス発生回路96、分周器97、乱数発生器98及びサンプリング回路99が接続されている。クロックパルス発生回路96及び分周器97は、クロックパルスを発生する。メインCPU93は、発生されたクロックパルスに基づいて、制御プログラムを実行する。乱数発生器98は、予め定められた範囲の乱数(例えば、0〜65535)を発生する。サンプリング回路99は、発生された乱数の中から1つの値を抽出する。
メインCPU93は、リールインデックスを検出してから各リール3L,3C,3Rのステッピングモータに対してパルスを出力した回数をカウントする。これにより、メインCPU93は、各リール3L,3C,3Rの回転角度(主に、リールが図柄何個分だけ回転したか)を管理する。
なお、リールインデックスとは、リールが一回転したことを示す情報である。このリールインデックスは、例えば、発光部及び受光部を有する光センサと、各リール3L,3C,3Rの所定の位置に設けられ、各リール3L,3C,3Rの回転により発光部と受光部との間に介在される検知片を備えたリール位置検出部(図示省略)により検出する。
ここで、各リール3L,3C,3Rの回転角度の管理について、具体的に説明する。ステッピングモータに対して出力されたパルスの数は、メインRAM95に設けられたパルスカウンタによって計数される。そして、図柄1つ分の回転に必要な所定回数(例えば16回)のパルスの出力がパルスカウンタで計数される毎に、メインRAM95に設けられた図柄カウンタが1ずつ加算される。図柄カウンタは、各リール3L,3C,3Rに応じて設けられている。図柄カウンタの値は、リール位置検出部(図示省略)によってリールインデックスが検出されるとクリアされる。
つまり、本実施の形態では、図柄カウンタを管理することにより、リールインデックスが検出されてから図柄何個分の回転が行われたのかを管理するようになっている。したがって、各リール3L,3C,3Rの各図柄の位置は、リールインデックスが検出される位置を基準として検出される。
上述したように、滑り駒数の最大数を図柄4個分に定めた場合は、左ストップボタン19Lが押されたときにリール表示窓4の中段にある左リール3Lの図柄と、その4個先の図柄までの範囲内にある各図柄が、リール表示窓4の中段に停止可能な図柄となる。
<副制御回路>
次に、副制御基板72により構成される副制御回路101について、図9を参照して説明する。
図9は、パチスロ1の副制御回路101の構成例を示すブロック図である。
副制御回路101は、主制御回路91と電気的に接続されており、主制御回路91から送信されるコマンドに基づいて演出内容の決定や実行等の処理を行う。副制御回路101は、基本的に、サブCPU102、サブRAM103、レンダリングプロセッサ104、描画用RAM105、ドライバ106、サブRTC108を含んで構成されている。本実施形態において、サブRTC108は、設定側計時手段を構成する。
サブCPU102は、主制御回路91から送信されたコマンドに応じて、ロムカートリッジ基板86に記憶されている制御プログラムに従い、映像、音、光の出力の制御を行う。ロムカートリッジ基板86は、基本的に、プログラム記憶領域とデータ記憶領域によって構成される。
プログラム記憶領域には、サブCPU102が実行する制御プログラムが記憶されている。例えば、制御プログラムには、主制御回路91との通信を制御するための主基板通信タスクや、演出用乱数値を抽出し、演出内容(演出データ)の決定及び登録を行うための演出登録タスクが含まれる。また、決定した演出内容に基づいて液晶表示装置11(図6参照)による映像の表示を制御する描画制御タスク、LED85等の光源による光の出力を制御するランプ制御タスク、スピーカ58,64,65L,65R等のスピーカによる音の出力を制御する音声制御タスク等が含まれる。
データ記憶領域は、各種データテーブルを記憶する記憶領域、各演出内容を構成する演出データを記憶する記憶領域、映像の作成に関するアニメーションデータを記憶する記憶領域が含まれている。また、BGMや効果音に関するサウンドデータを記憶する記憶領域、光の点消灯のパターンに関するランプデータを記憶する記憶領域等が含まれている。
サブRAM103は、サブDRAM(Dynamic Random Access Memory)103aと、サブSRAM(Static Random Access Memory)103bから構成される。サブDRAM103aには、例えば、決定された演出内容や演出データを登録する格納領域や、主制御回路91から送信される内部当籤役等の各種データを格納する格納領域が設けられている。サブSRAM103bには、例えば、24hドア監視ユニット63から受信する各種情報が記憶される。
サブCPU102、レンダリングプロセッサ104、描画用RAM(フレームバッファを含む)105及びドライバ106は、演出内容により指定されたアニメーションデータに従って映像を作成し、作成した映像を液晶表示装置11に表示させる。
また、サブCPU102は、演出内容により指定されたサウンドデータに従ってBGMなどの音をスピーカ58,64,65L,65R等のスピーカにより出力させる。また、サブCPU102は、演出内容により指定されたランプデータに従ってLED85等の光源の点灯及び消灯を制御する。
また、サブRTC(Real Time Clock)108は計時回路であり、サブCPU102のリクエストに応じて現在時刻を示す情報、すなわち年、月、日、時、分、秒そして曜日を示す情報を出力する。
<24hドア監視ユニットの構成>
次に、24hドア監視ユニット63について、図10を参照して説明する。
図10は、24hドア監視ユニット63の構成例を示すブロック図である。
図10に示すように、24hドア監視ユニット63は、制御LSI200と、RTC(Real Time Clock)201と、バッテリー202と、ROM203と、RAM204と、EEPROM(Electrically Erasable Programmable Read-Only Memory)205と、を有している。また、24hドア監視ユニット63は、副制御基板72と、ドア開閉監視スイッチ67と、電源基板53bと、に電気的に接続されている。
制御LSI200は、24hドア監視ユニット63の動作を制御する。制御LSI200は、制御コントローラ回路206と、シリアル通信回路207と、乱数発生回路208と、I/Oポート回路209と、を有している。
制御コントローラ回路206は、ROM203に格納されているプログラムに従って後述する各種処理を実行する。乱数発生回路208は、フリーランカウンタ(以下、「FRC」と称する場合がある)で構成され、FRCから取得したカウント値を用いて規定の演算を行うことで乱数を発生させる。I/Oポート回路209は、ドア開閉監視スイッチ67に接続されており、ドア開閉監視スイッチ67からのフロントドア2bの開閉を示す信号を受信する。
シリアル通信回路207は、24hドア監視ユニット63に接続されているホスト機器との間でコマンドやデータを送受信する際に用いられる。シリアル通信回路207がホスト機器からコマンドやデータを1バイト受信する毎に、制御LSI200は、後述の受信割込み処理(図27参照)を実行する。
なお、図10では、ホスト機器としての副制御基板72が24hドア監視ユニット63に接続されている例を示している。しかし、24hドア監視ユニットに接続されるホスト機器は、これに限らない。例えば、パチスロ1の製造時やメンテナンス時に24hドア監視ユニット63の各種設定を行う場合は、ホスト機器として設定機(図示省略)が24hドア監視ユニット63に接続される。この設定機は、不揮発性の記憶装置(ハードディスクなど)と揮発性の記憶装置(RAMなど)を備えている。
バッテリー202は、例えばリチウムイオン二次電池で構成されている。バッテリー202は、パチスロ1の電源が切られているときに24hドア監視ユニット63の電源として機能する。このため、24hドア監視ユニット63は、パチスロ1の電源が切られているときも後述の各種処理を行うことが可能となっている。なお、このバッテリー202は、パチスロ1に電源がONになっているときに電源基板53bから供給される電力を蓄電する。なお、パチスロ1の電源が切られている間の電源として、充電が可能な二次電池を例示したが、これに限らず、一次電池(例えば、リチウム電池,アルカリマンガン乾電池)を用いてもよい。
RTC201は計時回路であり、制御LSI200のリクエストに応じて現在時刻を示す情報、すなわち年、月、日、時、分、秒そして曜日を示す情報を出力する。RTC201は、監視側計時手段を構成する。
EEPROM205は、不揮発性メモリであり、フロントドア2bの開閉履歴を示す情報(以下、「開閉履歴情報」と称する。)などを記憶する。EEPROM205に記憶する情報及びEEPROM205における情報の格納場所については、後で図11を参照して説明する。
RAM204は、DRAM(Dynamic Random Access memory)で構成され、制御LSI200の作業領域や制御LSI200とホスト機器との通信のバッファ領域として用いられる。RAM204に記憶する情報及びRAM204における情報の格納場所については、後で図12を参照して説明する。
<EEPROMのメモリーマップ>
次に、EEPROM205に記憶する情報及びEEPROM205における情報の格納場所について、図11を参照して説明する。
図11は、EEPROM205のメモリーマップであり、EEPROM205における情報の格納場所を概念的に示す図である。図11では、EEPROM205の記憶領域を1バイトずつ区切って示している。このため、図11における1マスは、1バイトの記憶領域を示している。
図11に示すように、先頭から連続する16バイトの領域は、シリアルID格納領域を形成する。シリアルID格納領域には、24hドア監視ユニット63のシリアルIDが記憶される。シリアルIDは、16桁の英数字からなる(例えば、「0123456789ABCDEF」)。すなわち、各バイトには、1文字分の16進数の値が記憶される。
次の連続する16バイトの領域は、秘密鍵格納領域を形成する。秘密鍵格納領域には、秘密鍵が記憶される。秘密鍵は、16桁の英数字からなる(例えば、「SECRETKEY0000000」)。すなわち、各バイトには、1文字分の16進数の値(例えば、文字「S」の場合はASCIIコードの53Hが、文字「0」の場合はASCIIコードの30H)が記憶される。秘密鍵は、制御LSI200が実行する後述の乱数コマンド受信時処理(図31参照)においてパスワードを生成する際に用いられる。すなわち、本実施形態では、EEPROM205は、秘密鍵が格納される秘密鍵格納領域を備える監視側基準データ記憶手段を構成する。
次の連続する5バイトの領域は、予備の領域であり、情報は記憶されない。
次の1バイトの領域は、記録モード格納領域を形成する。記録モード格納領域には、記録モードの種別を示す情報が記憶される。記録モードの種別には、EEPROM205にフロントドア2bの後述の開閉履歴情報を常時記録させる「常時記録モード」と、記録しない「無記録モード」がある。
次の1バイトの領域は、履歴カウンタ格納領域を形成する。履歴カウンタ格納領域には、履歴カウンタの値が記憶される。履歴カウンタの値は、EEPROM205に記憶されている後述の開閉履歴情報の数を示す値である。本実施形態では、最大128個の開閉履歴情報が記憶可能なので、履歴カウンタの値として、0〜128が記憶される。なお、記憶可能な開閉履歴情報の数は、24hドア監視ユニット63に搭載される不揮発性メモリの種類及び記憶容量により、適宜増減する。
次の1バイトの領域は、最新番号格納領域を形成する。最新番号格納領域には、最新の開閉履歴情報が記憶されている後述の開閉履歴格納領域の番号である最新番号が記憶される。
次の連続する1024バイトの領域には、開閉履歴情報が記憶される。開閉履歴情報は、フロントドア2bが閉止又は開放された年月日及び時間を示す情報である。また、開閉履歴情報は、連続する8バイトの情報からなる。したがって、この連続する1024バイトの領域には、128個の開閉履歴情報が記憶可能となっている。
開閉履歴情報は、監視対象を示す1バイトの監視対象情報(本実施形態では、フロントドア2b)と、開放(OPEN)か閉止(CLOSE)かを示す1バイトの状態情報と、年、月、日、時、分、そして秒を各バイトで示す連続する6バイトの時間情報からなる。時間情報の各バイトは、年、月、日、時、分、そして秒の下2桁を、16進数の値で示す。
また、この連続する1024バイトとの領域は、1個の開閉履歴情報を記憶する領域毎に、すなわち8バイトずつに区切られている。これら区切られたそれぞれの領域は、開閉履歴情報格納領域を形成し、1〜128の番号が付けられている。なお、番号「128」の開閉履歴情報格納領域に開閉履歴情報が記憶された後に記憶される開閉履歴情報は、番号「1」の開閉履歴情報格納領域に上書きされて記憶される。以降、開閉履歴情報は、同様に、番号「2」以降の開閉履歴情報格納領域に上書きされて記憶される。すなわち、本実施形態では、開閉履歴情報を記憶する開閉履歴情報格納領域を備えるEEPROM205は、開閉履歴情報記憶手段を構成する。
次の連続する4バイトの領域は、監視間隔時間格納領域を形成する。監視間隔時間格納領域には、監視間隔時間に対応するカウント数が記憶される。監視間隔時間とは、開閉履歴情報をEEPROM205に記憶させる間隔である。本実施形態では、分刻みで1分〜100分の監視間隔時間が設定可能である。後述するように制御LSI200は、20msec(ミリ秒)ごとに監視間隔カウントを加算し、監視間隔カウントが設定した監視間隔時間に対応するカウント数に達した後に、開閉履歴情報をEEPROM205に記憶させる。したがって、監視間隔時間に対応するカウント数として、監視間隔時間格納領域には、3000(監視間隔時間1分に対応するカウント数)〜300000(監視間隔時間100分に対応するカウント数)が記憶される。なお、この監視間隔時間格納領域には、監視間隔時間に対応するカウント数の16進数の値が記憶される。
次の連続する4バイトの領域は、記録開始時間格納領域を形成する。記録開始時間格納領域には、記録開始時間に対応するカウント数が記憶される。記録開始時間とは、後述の記録開始時間設定処理(図29に示す特権コマンド受信時処理のS88参照)が行われてから開閉履歴情報の記憶を開始させるまでの時間である。本実施形態では、分刻みで1分〜100分の記録開始時間が設定可能である。後述するように制御LSI200は、20msec(ミリ秒)ごとに記録開始時間カウントを加算し、記録開始時間カウントが設定した記録開始時間に対応するカウント数に達した後に、開閉履歴情報をEEPROM205に記憶させる。したがって、記録開始時間に対応するカウント数として、記録開始時間格納領域には、3000(記録開始時間1分に対応するカウント数)〜300000(記録開始時間100分に対応するカウント数)の値が記憶される。なお、記録開始時間格納領域には、記録開始時間に対応するカウント数の16進数の値が記憶される。
なお、図示は省略するが、EEPROM205には、上記の他、各種情報を記憶する格納領域が形成されている。
例えば、EEPROM205には、プログラムバージョンが記憶されるプログラムバージョン格納領域が形成されている。プログラムバージョンとは、24hドア監視ユニット63で実行されるプログラムのバージョンである。
<RAMのメモリーマップ>
次に、RAM204に記憶する情報及びRAM204における情報の格納場所については、図12を参照して説明する。
図12は、RAM204のメモリーマップであり、RAM204における情報の格納場所を概念的に示す図である。図12では、RAM204の記憶領域を1バイトずつ区切って示している。このため、図12における1マスは、1バイトの記憶領域を示している。
図12に示すように、先頭の1バイトの領域は、出力ポート情報格納領域を形成する。出力ポート情報格納領域には、I/Oポート回路209の出力ポートを介して送信される情報が記憶される。
次の1バイトの領域は、入力ポート情報格納領域を形成する。入力ポート情報格納領域には、後述するポート入力処理(図22参照)において、I/Oポート回路209の入力ポートを介してドア開閉監視スイッチ67から受信した信号に基いたフロントドア2bが開放状態か閉止状態かを示す状態情報が記憶される。
次の1バイトの領域には、状態変化フラグ格納領域を形成する。状態変化フラグ格納領域には、状態変化フラグが記憶される。状態変化フラグとは、EEPROM205に開閉履歴情報を格納中か否かを示すフラグである。状態変化フラグは、入力ポート情報格納領域に格納された情報が示すフロントドア2bの開閉状態とEEPROM205に格納されている最新の開閉履歴情報が示すフロントドア2bの開閉状態とが一致せず、入力ポート情報格納領域に格納された情報に基づく開閉履歴情報をEEPROM205に格納する場合にONに設定される(後述の図24に示すドア監視状態検知処理のS46参照)。また、状態変化フラグは、開閉履歴情報をEEPROM205に格納した後にOFFに設定される(後述の図23に示すドア監視処理のS34参照)。
次の1バイトの領域は、受信完了フラグ格納領域を形成する。受信完了フラグ格納領域には、受信完了フラグが記憶される。受信完了フラグは、ホスト機器から送信されたコマンド及びそれに付随する情報の受信が完了したか否かを示すフラグである。受信完了フラグは、受信が完了した場合にONに設定され(「1」がセットされ)、受信したコマンドに応じた送信処理(後述の図33の送信処理参照)を行う際にOFFに設定される(クリアされる)。
次の1バイトの領域は、サムカウンタ格納領域を形成する。サムカウンタ格納領域には、サムカウンタが記憶される。サムカウンタは、ホスト機器から送信されたサム値の数を示す。本実施形態では、ホスト機器から送信されるコマンド及びそれに付随する情報に2桁のサム値が含まれている。サム値は、1桁1バイトずつの情報としてホスト機器から送信され、制御LSI200は、各桁のサム値を受信するたびにサムカウンタに1を加算する(後述の図27に示す受信割込み処理のS68参照)。
次の1バイトの領域は、ETX受信フラグ格納領域を形成する。ETX受信フラグ格納領域には、ETX受信フラグが記憶される。ETX受信フラグは、ホスト機器からETXコマンドを受信したか否かを示すフラグである。ETXコマンドを受信した場合は、ETX受信フラグは、ONに設定される(「1」がセットされる)。
次の1バイトの領域には、ログインフラグ格納領域を形成する。ログインフラグ格納領域には、ログインフラグが記憶される。ログインフラグは、ホスト機器から受信したパスワードと、後述するRAM204のパスワード格納領域に記憶されたパスワードと、が一致するか否かを示すフラグである。ログインフラグは、パスワードが一致する場合に、ONに設定される、すなわち「1」がセットされる(後述の図32に示すログインコマンド受信時処理を参照)。
次の1バイトの領域は、記録許可フラグ格納領域を形成する。記録許可フラグ格納領域には、記録許可フラグが記憶される。記憶許可フラグは、開閉履歴情報をEEPROM205に記憶可能否かを示すフラグである。記憶許可フラグは、記録モードが常時記録モードに設定され、且つ、記録開始時間カウンタの値が記録開始時間に対応するカウント数以上のとき、すなわちEEPROM205に開閉履歴情報を記録可能な場合にONに設定される。
次の連続する8バイトの領域は、第1検知結果格納領域を形成する。第1検知結果格納領域には、開閉履歴情報が記憶される。開閉履歴情報が第1検知結果格納領域に記憶される態様については、後で図24を参照して説明する。本実施形態において、RAM205に配された第1検知結果格納領域を備え、後述のドア監視状態検知処理(後述の図24参照)を行う24hドア監視ユニット63の制御LSI200は、開閉状態取得手段を構成する。
次の連続する8バイトの領域は、第2検知結果格納領域を形成する。第2検知結果格納領域には、開閉履歴情報が記憶される。開閉履歴情報が第2検知結果格納領域に記憶される態様については、後で図24を参照して説明する。
次の連続する16バイトの領域は、パスワード格納領域を形成する。パスワード格納領域には、パスワードが記憶される。パスワードは、後述する特権コマンドに係る処理をホスト機器が24hドア監視ユニット63に要求する際に必要となる情報である。また、パスワードは、16桁の英数字からなる。すなわち、各バイトには、1文字分の16進数の値が記憶される。パスワードがパスワード格納領域に記憶される態様については、後で図31を参照して説明する。すなわち、本実施形態では、パスワードが格納されるパスワード格納領域を備えるRAM204は、監視側認証情報記憶手段を構成する。
次の連続する24バイトの領域(S1〜S24)には、24hドア監視ユニット63からホスト機器に情報を送信する際に、送信に係る情報が一時的に記憶される。すなわち、これら連続する24バイトの領域は、コマンド等を送信するときにバッファとして機能する送信バッファを形成する。
次の連続する24バイトの領域(R1〜R24)には、24hドア監視ユニット63がホスト機器から受信したコマンド及びそれに付随する情報が一時的に記憶される。すなわち、これら連続する24バイトの領域は、コマンド等を受信するときにバッファとして機能する受信バッファを形成する。
次の連続する4バイトの領域は、記録開始時間カウンタ格納領域を形成する。記録開始時間カウンタ領域には、後で図21を参照して説明するドア監視ユニットメイン処理のS8で加算される記録開始時間カウンタの値が記憶される。
次の連続する4バイトの領域は、監視間隔カウンタ格納領域を形成する。監視間隔カウンタ格納領域には、後で図23を参照して説明するドア監視処理のS24で加算される監視間隔カウンタの値が記憶される。
次の連続する8バイトの領域は、乱数格納領域を形成する。乱数格納領域は、後で図31を参照して説明する乱数コマンド受信時処理のS121で生成される8桁(16進数)の乱数値が記憶される。すなわち、各バイトには、1桁分の値が記憶される。
なお、図示は省略するが、RAM204には、上記の他、各種情報を記憶する格納領域が形成されている。
例えば、RAM204には、受信カウンタ格納領域が形成されている。受信カウンタ格納領域の値は、受信データを記憶させる受信バッファの領域(R1〜R24に対応)を示す。
<コマンド>
次に、24hドア監視ユニット63とホスト機器と間の通信で用いられるコマンドについて説明する。本実施形態では、24hドア監視ユニット63とホスト機器と間の通信で用いられるコマンドの種別として、「特権コマンド」と「一般コマンド」がある。特権コマンドは、ホスト機器が24hドア監視ユニットに各種設定を要求する際などに用いられる。一般コマンドは、ホスト機器が24hドア監視ユニットに情報の送信を要求する際などに用いられる。なお、後述する「特権コマンド」及び「一般コマンド」の24hドア監視ユニット63がホスト機器に送信するアンサでは、各コマンドのIDが、アンサ用のIDとして用いられる、すなわち、コマンドとアンサは、そのIDで一対一の関係が成立する。
<特権コマンド>
まず、図13を参照して特権コマンドについて説明する。図13は、24hドア監視ユニット63とホスト機器と間の通信で用いられる特権コマンドを説明するための図である。
図13に示すように、特権コマンドには、初期化コマンド、時計セットコマンド、監視間隔時間設定コマンド、記録開始時間設定コマンド、モード記録設定コマンド、秘密鍵設定コマンドがある。
(1)初期化コマンド
初期化コマンドは、ホスト機器が24hドア監視ユニット63に初期化を要求する際にホスト機器から24hドア監視ユニット63に送信されるコマンドである。初期化コマンドのIDは、「SI」である。
初期化コマンドを受信した24hドア監視ユニット63は、当該コマンドを受信した旨を示す初期化アンサをホスト機器に送信する。また、24hドア監視ユニット63は、監視間隔時間設定及び記録開始時間設定を初期化する。具体的には、24hドア監視ユニット63は、EEPROM205に記憶されている監視間隔時間に対応するカウント数及び記録開始時間に対応するカウント数をクリアする。また、RAM204に記憶されている監視間隔カウンタの値及び記録開始時間カウンタの値をクリアする。
(2)時計セットコマンド
時計セットコマンドは、ホスト機器が24hドア監視ユニット63に年、月、日、時、分、秒そして曜日の設定を要求するときにホスト機器から24hドア監視ユニット63に送信されるコマンドである。時計セットコマンドのIDは、「ST」である。時計セットコマンドには、ホスト機器が備えるRTCから取得した年、月、日、時、分、秒そして曜日を示す情報が付随する。
時計セットコマンドを受信した24hドア監視ユニット63は、当該コマンドを受信した旨を示す日時設定アンサをホスト機器に送信する。また、24hドア監視ユニット63は、時計セットコマンドに付随する年、月、日、時、分、秒そして曜日を示す情報に基いて、RTC201の年、月、日、時、分、秒そして曜日を設定する(後述の図29のS84参照)。このように、24hドア監視ユニット63の制御LSI200は、監視側計時設定手段を構成する。
(3)監視間隔時間設定コマンド
監視間隔時間設定コマンドは、ホスト機器が24hドア監視ユニット63に監視間隔時間の設定を要求するときにホスト機器から24hドア監視ユニット63に送信されるコマンドである。監視間隔時間設定コマンドのIDは、「SA」である。監視間隔時間設定コマンドには、監視間隔時間を示す情報(カウント数)が付随する。
監視間隔時間設定コマンドを受信した24hドア監視ユニット63は、当該コマンドを受信した旨を示す監視間隔時間設定アンサをホスト機器に送信する。また、24hドア監視ユニット63は、監視間隔時間設定コマンドに付随する監視間隔時間を示す情報(カウント数)に基いて、監視間隔時間を設定する。具体的には、24hドア監視ユニット63は、受信したカウント数を、EEPROM205における監視間隔時間格納領域に記憶させる。なお、当該領域に既に監視間隔時間に対応するカウント数が記憶されている場合は、今回記憶させる監視間隔時間に対応するカウント数を上書きする。
(4)記録開始時間設定コマンド
記録開始時間設定コマンドは、ホスト機器が24hドア監視ユニット63に記録開始時間の設定を要求するときにホスト機器から24hドア監視ユニット63に送信されるコマンドである。記録開始時間設定コマンドのIDは、「SB」である。記録開始時間設定コマンドには、記録開始時間を示す情報(カウント数)が付随する。
記録開始時間設定コマンドを受信した24hドア監視ユニット63は、当該コマンドを受信した旨を示す記録開始時間設定アンサをホスト機器に送信する。また、24hドア監視ユニット63は、記録開始時間設定コマンドに付随する記録開始時間を示す情報(カウント数)に基いて、記録開始時間を設定する。具体的には、24hドア監視ユニット63は、受信したカウント数を、EEPROM205における記録開始時間格納領域に記憶させる。なお、当該領域に既に記録開始時間に対応するカウント数が記憶されている場合は、今回記憶させる記録開始時間に対応するカウント数を上書きする。
(5)記録モード設定コマンド
記録モード設定コマンドは、ホスト機器が24hドア監視ユニット63に記録モード(「常時記録モード」又は「無記録モード」)の設定を要求するときにホスト機器から24hドア監視ユニット63に送信されるコマンドである。記録モード設定コマンドのIDは、「SC」である。記録モード設定コマンドには、記録モードを示す情報が付随する。
記録モード設定コマンドを受信した24hドア監視ユニット63は、当該コマンドを受信した旨を示す記録モード設定アンサをホスト機器に送信する。また、24hドア監視ユニット63は、記録モード設定コマンドに付随する記録モードを示す情報に基いて、記録モードを設定する。具体的には、24hドア監視ユニット63は、EEPROM205の記録モード格納領域に、開閉履歴情報を常時記録させる「常時記録モード」又は、記録しない「無記録モード」を示す情報を記憶させる。
(6)秘密鍵設定コマンド
秘密鍵設定コマンドは、ホスト機器が24hドア監視ユニット63に秘密鍵の設定を要求するときにホスト機器から24hドア監視ユニット63に送信されるコマンドである。秘密鍵設定コマンドのIDは、「SW」である。秘密鍵設定コマンドには、16桁の英数字からなる秘密鍵が付随する。
秘密鍵設定コマンドを受信した24hドア監視ユニット63は、秘密鍵設定コマンドに付随する秘密鍵を、EEPROM205の秘密鍵格納領域に記憶させる(上書きする)。そして、秘密鍵設定コマンドに付随する秘密鍵データとEEPROM205に記憶されていうる秘密鍵とが一致するか否かの判定に基づいて、設定結果OKかNGか、を示すアンサをホスト機器に送信する。例えば、EEPROM205に障害が発生していて、秘密鍵設定コマンドに付随する秘密鍵を、EEPROM205に正常に記憶させることができなかった場合は、秘密鍵設定コマンドに付随する秘密鍵とEEPROM205に記憶されていうる秘密鍵とが一致しない。この場合は、設定結果NGの旨のアンサを送信する。
<一般コマンド>
次に、図14を参照して一般コマンドについて説明する。図14は、24hドア監視ユニット63とホスト機器と間の通信で用いられる一般コマンドを説明するための図である。
図14に示すように、一般コマンドには、シリアルIDコマンド、バージョン要求コマンド、乱数コマンド、ログインコマンド、ログアウトコマンド、時計読出コマンド、最新番号コマンド、開閉履歴情報読出コマンド、開閉履歴情報数コマンド、そしてステータス読出コマンドがある。
(1)シリアルIDコマンド
シリアルIDコマンドは、ホスト機器が24hドア監視ユニット63に24hドア監視ユニット63のシリアルIDの送信を要求するときにホスト機器から24hドア監視ユニット63に送信されるコマンドである。シリアルIDコマンドのIDは、「CR」である。
シリアルIDコマンドを受信した24hドア監視ユニット63は、EEPROM205に記憶されているシリアルIDをホスト機器に送信(返信)する。ホスト機器は、シリアルIDを受信すると、受信したシリアルIDと、ホスト機器が有する不揮発性の記憶装置に記憶されたシリアルIDとを比較する。
(2)バージョン要求コマンド
バージョン要求コマンドは、ホスト機器が24hドア監視ユニット63に24hドア監視ユニット63のプログラムバージョンの送信を要求するときにホスト機器から24hドア監視ユニット63に送信されるコマンドである。バージョン要求コマンドのIDは、「CV」である。
バージョン要求コマンドを受信した24hドア監視ユニット63は、EEPROM205に記憶されているプログラムバージョンをホスト機器に送信(返信)する。ホスト機器は、プログラムバージョンを受信すると、受信したプログラムバージョンと、ホスト機器が有する不揮発性の記憶装置に記憶されたプログラムバージョンとを比較する。
(3)乱数コマンド
乱数コマンドは、ホスト機器が24hドア監視ユニット63に乱数値の送信を要求するときにホスト機器から24hドア監視ユニット63に送信されるコマンドである。乱数コマンドのIDは、「CK」である。
乱数コマンドを受信した24hドア監視ユニット63は、乱数発生回路208から取得した値を用いて規定の演算を行い8桁の乱数を発生させ、発生させた乱数値をホスト機器に送信(返信)する。また、24hドア監視ユニット63は、発生させた乱数値を、RAM204の乱数格納領域に記憶させる。
ホスト機器は、乱数値を受信すると、受信した乱数値をホスト機器に設けられた揮発性の記憶装置に記憶させる。
(4)ログインコマンド
ログインコマンドは、ホスト機器が24hドア監視ユニット63に、特権コマンドに基く各種設定を要求できる状態に設定すること、すなわちログインを、要求するときに、ホスト機器から24hドア監視ユニット63に送信されるコマンドである。ログインコマンドのIDは、「CI」である。
ログインコマンドを受信した24hドア監視ユニット63は、ログインコマンドに付随する16桁のパスワードと、RAM204のパスワード格納領域に記憶されているパスワードが一致するか否かを判別し、一致する場合はログイン許可(OK)の旨のアンサを送信(返信)する。一方、一致しない場合はログイン不許可(NG)の旨のアンサを送信(返信)する。
(5)ログアウトコマンド
ログアウトコマンドは、ホスト機器が24hドア監視ユニット63に、特権コマンドに基く各種設定を要求できない状態に設定すること、すなわちログアウト、を要求するときにホスト機器から24hドア監視ユニット63に送信されるコマンドである。ログアウトコマンドのIDは、「CO」である。
ログアウトコマンドを受信した24hドア監視ユニット63は、ログアウトを行う。具体的には、RAM204のログインフラグをOFFに設定(クリア)する。なお、後述するように、24hドア監視ユニット63は、ログイン状態のときに一般コマンドを受信すると、ログインフラグをOFFに設定(クリア)する(図28のS77参照)。
そして、ログアウトした旨を示すアンサ(ログアウトアンサ)をホスト機器に送信する。
(6)時計読出コマンド
時計読出コマンドは、ホスト機器が24hドア監視ユニット63のRTC201が計時する現在時刻の読出を要求するときにホスト機器から24hドア監視ユニット63に送信されるコマンドである。時計読出コマンドのIDは、「CT」である。
時計読出コマンドを受信した24hドア監視ユニット63は、RTC201が計時する現在時刻(監視側時刻)をホスト機器に送信(返信)する(後述の図35のS172参照)。このように、24hドア監視ユニット63の制御LSI200は、監視側時刻送信手段を構成する。また、24hドア監視ユニット63から送信されたRTC201が計時する時刻情報を受信する(後述の図48のS352参照)ホスト機器、例えば副制御基板72のサブCPU102は、設定側時刻受信手段を構成する。
(7)最新番号コマンド
最新番号コマンドは、ホスト機器が、24hドア監視ユニット63に、最新の開閉履歴情報が記憶されている開閉履歴格納領域の番号である最新番号の送信を要求するときにホスト機器から24hドア監視ユニット63に送信されるコマンドである。最新番号コマンドのIDは、「CN」である。
最新番号コマンドを受信した24hドア監視ユニット63は、EEPROM205の最新番号格納領域を参照し、最新番号をホスト機器に送信(返信)する。
最新番号を受信したホスト機器は、ホスト機器が有する不揮発性の記憶装置に既に記憶されている最新番号と、受信した最新番号とを比較し、これらが一致しない場合、受信した最新番号を不揮発性の記憶装置に記憶させる(上書きする)。
(8)開閉履歴情報読出コマンド
開閉履歴情報読出コマンドは、ホスト機器が24hドア監視ユニット63に記憶されている開閉履歴情報の送信を要求するときにホスト機器から24hドア監視ユニット63に送信されるコマンドである。開閉履歴情報読出コマンドのIDは、「CB」である。
開閉履歴情報読出コマンドを受信した24hドア監視ユニット63は、開閉履歴情報読出コマンドに付随する番号に対応するEEPROM205の開閉履歴格納領域に記憶されている開閉履歴情報をホスト機器に送信(返信)する。
開閉履歴情報を受信したホスト機器は、受信した開閉履歴を不揮発性の記憶装置に記憶させる。
(9)開閉履歴情報数コマンド
開閉履歴情報数コマンドは、ホスト機器が24hドア監視ユニット63に、24hドア監視ユニット63に記憶されている開閉履歴情報の数の送信を要求するときにホスト機器から24hドア監視ユニット63に送信されるコマンドである。開閉履歴情報数コマンドのIDは、「CC」である。
開閉履歴情報数コマンドを受信した24hドア監視ユニット63は、EEPROM205の履歴カウンタ格納領域を参照し、履歴カウンタの値をホスト機器に送信(返信)する。
履歴カウンタの値を受信したホスト機器は、ホスト機器が有する不揮発性の記憶装置に既に記憶されている履歴カウンタの値と、受信した履歴カウンタの値とを比較し、これらが一致しない場合、受信した履歴カウンタの値を不揮発性の記憶装置に記憶させる(上書きする)。
(10)ステータス読出コマンド
ステータス読出コマンドは、ホスト機器が24hドア監視ユニット63に、フロントドア2bの開閉状態、すなわちステータスの送信を要求するときにホスト機器から24hドア監視ユニット63に送信されるコマンドである。ステータス読出コマンドのIDは、「CS」である。
ステータス読出コマンドを受信した24hドア監視ユニット63は、RAM204の第1検知結果格納領域に記憶されている開閉履歴情報をホスト機器に送信(返信)する。
なお、一般コマンドの送信に対応して24hドア監視ユニット63から受信した各種情報(シリアルID、プログラムバージョン、乱数値、開閉履歴情報番号、開閉履歴情報、開閉履歴情報数)は、例えば、ホスト機器が副制御基板72の場合は、サブDRAM103aやサブSRAM103bに記憶される。また、ホスト機器が設定機(図示省略)の場合は、設定機が備えるハードディスクやRAMに記憶される。また、受信した各種情報が記憶される記憶装置は、これに限らず、周知の書き換え可能な記憶装置を適宜選択可能である。
<通信フォーマット>
次に、24hドア監視ユニット63とホスト機器と間の通信フォーマットについて、図15を参照して説明する。
図15は、24hドア監視ユニット63とホスト機器と間の通信フォーマットを説明するための図であり、Aは通信フォーマットの概要を説明するための図であり、Bは24hドア監視ユニット63からホスト機器へ乱数を送信する際の通信データの態様の一例を示す図である。
図15Aに示すように、本実施形態において、通信データは、ASCIIコードの形式で送信される。通信データの先頭には通信伝文中のテキスト部分の開始を表す制御文字であるSTX(Start of TeXt)が配置される。STXの後方には、通信によって送受信される情報(TEXT)が配置される。TEXTの後方には、通信伝文中のテキスト部分の終了を表す制御文字であるETX(End of TeXt)が配置される。そして、ETXの後方には、TEXTの値の合計値に基く2桁のサム値が配置される。したがって、本実実施形態における通信データは、1バイトのSTX,0〜20バイト(送受信される情報によって異なる)のTEXT、1バイトのETX、2バイトのサム値からなる。
なお、図15Aに示す通信フォーマットは、ホスト機器から24hドア監視ユニット63へコマンドを送信する際だけでなく、ホスト機器から送信されたコマンドに応じて24hドア監視ユニット63がホスト機器へ返信するアンサにおいても用いられる。例えば、ホスト機器から送信された乱数コマンド(CK)に応じて24hドア監視ユニット63がホスト機器へ返信するアンサの例を図15B(24hドア監視ユニット63が「12345678」の乱数を生成した場合の例)に示す。図15Bに示すように、このアンサは、先頭にSTX(02H)に対応するASCIIコードが配置され、STXの後方には、乱数コマンドのアンサであることを示す乱数コマンドのID「CK」に対応するASCIIコードが配置される。また、その後方には、乱数の値である「12345678」に対応する8桁のASCIIコードが配置され、その後方には、ETX(03H)に対応するASCIIコード、そしてサム値に対応するASCIIコードが配置される。
<シーケンス>
次に、シーケンスについて、図16を参照して、説明する。
図16は、ホスト機器が有しているシーケンステーブルの一例を示す図である。
シーケンステーブルは、ホスト機器の不揮発性の記憶装置、例えばホスト機器が副制御基板72の場合はロムカートリッジ基板86に、また、ホスト機器が設定機(図示省略)の場合は、ハードディスクに記憶されている。
シーケンステーブルは、複数のシーケンスを規定している。シーケンスは、少なくとも一つの一般コマンド又は特権コマンドからなる。ホスト機器が行う所定の処理において、シーケンスが実行されると、シーケンスを構成するコマンドがホスト機器から24hドア監視ユニット63に送信される。シーケンステーブルは、シーケンスを構成するコマンドが複数ある場合は、コマンドの送信順も規定する。なお、いずれのシーケンスにおいても、ホスト機器は、シーケンスにおける後順のコマンドを、前順のコマンドに対応するアンサや情報を24hドア監視ユニット63から受信した後に、送信する。
図16に示すように、シーケンステーブルには、シーケンスとして、起動シーケンス、第1状態検知シーケンス、履歴取得シーケンス、全履歴取得シーケンス、初期化シーケンス、時計セットシーケンス、監視間隔時間設定シーケンス、記録開始時間設定シーケンスが規定されている。また、記録モード設定シーケンス、秘密鍵設定シーケンス、一括設定シーケンス、第2状態検知シーケンスが規定されている。
シーケンステーブルの「Step」列には、シーケンスを構成するコマンドの送信順序が規定されている。また、「check」列がONになっているコマンドは、当該コマンドの送信後に、「条件」列に規定されている内容に応じた処理が行われることを示している。
(1)起動シーケンス
まず、起動シーケンスについて説明する。起動シーケンスは、バージョン要求コマンド(CV)、シリアルIDコマンド(CR)、ステータス読出コマンド(CS)からなる。ホスト機器は、起動シーケンスの実行時に、バージョン要求コマンド(CV)、シリアルIDコマンド(CR)、ステータス読出コマンド(CS)の順で、コマンドを24hドア監視ユニット63に送信する。
(2)第1状態検知シーケンス
第1状態検知シーケンスは、ステータス読出コマンド(CS)、開閉履歴情報数コマンド(CC)、最新番号コマンド(CN)からなる。ホスト機器は、第1状態検知シーケンスの実行時に、ステータス読出コマンド(CS)、開閉履歴情報数コマンド(CC)、最新番号コマンド(CN)の順で、コマンドを24hドア監視ユニット63に送信する。
また、ホスト機器は、最新番号コマンド(CN)の送信後、受信した最新番号と、ホスト機器が有する不揮発性の記憶装置が記憶する最新番号が一致しない場合、すなわち最新番号に変化があれば、後述の履歴取得シーケンスを実行する。
(3)履歴取得シーケンス
履歴取得シーケンスは、開閉履歴情報読出コマンド(CB)からなり、履歴取得シーケンスの実行時に、ホスト機器は、開閉履歴情報読出コマンド(CB)を24hドア監視ユニット63に送信する。なお、この開閉履歴情報読出コマンドには、ホスト機器が有する不揮発性の記憶装置に記憶されている最新番号が付随する。
(4)全履歴取得シーケンス
全履歴取得シーケンスは、開閉履歴情報数コマンド(CC)、最新番号コマンド(CN)、開閉履歴情報読出コマンド(CB)からなる。ホスト機器は、第1状態検知シーケンスの実行時に、開閉履歴情報数コマンド(CC)、最新番号コマンド(CN)、開閉履歴情報読出コマンド(CB)の順で、コマンドを24hドア監視ユニット63に送信する。
ホスト機器は、最新番号コマンドを送信した後、受信した最新番号及び履歴カウンタの値と、ホスト機器が有する不揮発性の記憶装置が記憶する最新番号及び履歴カウンタの値が一致しない場合、受信した最新番号と履歴カウンタの値に基いて、開閉履歴情報を取得する先の開閉履歴情報格納領域の番号を特定する。このとき、履歴カウンタの値が「60」で、最新番号が「60」の場合は、開閉履歴情報を取得する先の開閉履歴情報格納領域の番号として、「1〜60」を特定する。また、履歴カウンタの値が「128」のときは、最新番号の値に関わらず、開閉履歴情報を取得する先の開閉履歴情報格納領域の番号として、「1〜128」を特定する。
そして、ホスト機器は、特定した開閉履歴情報格納領域の番号が付された開閉履歴情報格納領域の全てから開閉履歴情報を取得するまで、開閉履歴情報読出コマンド(CB)の送信を繰り返す(ループする)。
なお、受信した最新番号と履歴カウンタの値と、ホスト機器が有する不揮発性の記憶装置が記憶する最新番号と履歴カウンタの値の比較の結果、これらが一致する場合は、開閉履歴情報を取得する開閉履歴情報格納領域の番号の特定及び開閉履歴情報読出コマンド(CB)の送信を行うことなく、全履歴取得シーケンスに係るコマンドの送信処理を終了する。
(5)初期化シーケンス
初期化シーケンスは、乱数コマンド(CK)、ログインコマンド(CI)、初期化コマンド(SI)、ログアウトコマンド(CO)からなる。ホスト機器は、初期化シーケンスの実行時に、乱数コマンド(CK)、ログインコマンド(CI)、初期化コマンド(SI)、ログアウトコマンド(CO)の順でコマンドを送信する。
ホスト機器がログインコマンド(CI)を送信後、24hドア監視ユニット63からログイン不許可(NG)の旨のアンサを受信した場合、ホスト機器は、後順の初期化コマンド(SI)、ログアウトコマンド(CO)の送信を行わず、初期化シーケンスを構成するコマンドの送信処理を終了する。
(6)時計セットシーケンス
時計セットシーケンスは、乱数コマンド(CK)、ログインコマンド(CI)、時計セットコマンド(ST)、ログアウトコマンド(CO)からなる。ホスト機器は、時計セットシーケンスの実行時に、乱数コマンド(CK)、ログインコマンド(CI)、時計セットコマンド(ST)、ログアウトコマンド(CO)の順でコマンドを送信する。
ホスト機器がログインコマンド(CI)を送信後、24hドア監視ユニット63からログイン不許可(NG)の旨のアンサを受信した場合、ホスト機器は、後順の時計セットコマンド(ST)、ログアウトコマンド(CO)の送信を行わず、時計セットシーケンスを構成するコマンドの送信処理を終了する。
(7)監視間隔時間設定シーケンス
監視間隔時間設定シーケンスは、乱数コマンド(CK)、ログインコマンド(CI)、監視間隔時間設定コマンド(SA)、ログアウトコマンド(CO)からなる。ホスト機器は、監視間隔時間設定シーケンスの実行時に、乱数コマンド(CK)、ログインコマンド(CI)、監視間隔時間設定コマンド(SA)、ログアウトコマンド(CO)の順でコマンドを送信する。
ホスト機器がログインコマンド(CI)を送信後、24hドア監視ユニット63からログイン不許可(NG)の旨のアンサを受信した場合、ホスト機器は、後順の監視間隔時間設定コマンド(SA)、ログアウトコマンド(CO)の送信を行わず、監視間隔時間設定シーケンスを構成するコマンドの送信処理を終了する。
(8)記録開始時間設定シーケンス
記録開始時間設定シーケンスは、乱数コマンド(CK)、ログインコマンド(CI)、記録開始時間設定コマンド(SB)、ログアウトコマンド(CO)からなる。ホスト機器は、記録開始時間設定シーケンスの実行時に、乱数コマンド(CK)、ログインコマンド(CI)、記録開始時間設定コマンド(SB)、ログアウトコマンド(CO)の順でコマンドを送信する。
ホスト機器がログインコマンド(CI)を送信後、24hドア監視ユニット63からログイン不許可(NG)の旨のアンサを受信した場合、ホスト機器は、後順の記録開始時間設定コマンド(SB)、ログアウトコマンド(CO)の送信を行わず、記録開始時間設定シーケンスを構成するコマンドの送信処理を終了する。
(9)記録モード設定シーケンス
記録モード設定シーケンスは、乱数コマンド(CK)、ログインコマンド(CI)、記録モード設定コマンド(SC)、ログアウトコマンド(CO)からなる。ホスト機器は、記録モード設定シーケンスの実行時に、乱数コマンド(CK)、ログインコマンド(CI)、記録モード設定コマンド(SC)、ログアウトコマンド(CO)の順でコマンドを送信する。
ホスト機器がログインコマンド(CI)を送信後、24hドア監視ユニット63からログイン不許可(NG)の旨のアンサを受信した場合、ホスト機器は、後順の記録モード設定コマンド(SC)、ログアウトコマンド(CO)の送信を行わず、記録モード設定シーケンスを構成するコマンドの送信処理を終了する。
(10)秘密鍵設定シーケンス
秘密鍵設定シーケンスは、乱数コマンド(CK)、ログインコマンド(CI)、秘密鍵設定コマンド(SW)、ログアウトコマンド(CO)からなる。ホスト機器は、秘密鍵設定シーケンスの実行時に、乱数コマンド(CK)、ログインコマンド(CI)、秘密鍵コマンド(SW)、ログアウトコマンド(CO)の順でコマンドを送信する。
ホスト機器がログインコマンド(CI)を送信後、24hドア監視ユニット63からログイン不許可(NG)の旨のアンサを受信した場合、ホスト機器は、後順の秘密鍵設定コマンド(SW)、ログアウトコマンド(CO)の送信を行わず、秘密鍵設定シーケンスを構成するコマンドの送信処理を終了する。
(11)一括設定シーケンス
一括設定シーケンスは、乱数コマンド(CK)、ログインコマンド(CI)、監視間隔時間設定コマンド(SA)、記録開始時間設定コマンド(SB)、記録モード設定コマンド(SC)、ログアウトコマンド(CO)からなる。ホスト機器は、一括設定シーケンスの実行時に、乱数コマンド(CK)、ログインコマンド(CI)、監視間隔時間設定コマンド(SA)、記録開始時間設定コマンド(SB)、記録モード設定コマンド(SC)、ログアウトコマンド(CO)の順でコマンドを送信する。
ホスト機器がログインコマンド(CI)を送信後、24hドア監視ユニット63からログイン不許可(NG)の旨のアンサを受信した場合、ホスト機器は、後順の監視間隔時間設定コマンド(SA)、記録開始時間設定コマンド(SB)、記録モード設定コマンド(SC)、ログアウトコマンド(CO)の送信を行わず、一括設定シーケンスを構成するコマンドの送信処理を終了する。
(12)第2状態検知シーケンス
第2状態検知シーケンスは、ステータス読出コマンド(CS)、開閉履歴情報数コマンド(CC)、最新番号コマンド(CN)、時計読出コマンド(CT)からなる。ホスト機器は、第2状態検知シーケンスの実行時に、ステータス読出コマンド(CS)、開閉履歴情報数コマンド(CC)、最新番号コマンド(CN)、時計読出コマンド(CT)の順で、コマンドを24hドア監視ユニット63に送信する。
<秘密鍵設定時の処理>
次に、ホスト機器と24hドア監視ユニット63が行う処理の一例として、秘密鍵設定時の処理を、図17を参照して説明する。なお、以下の説明では、初期値の秘密鍵を変更する場合の秘密鍵設定時の処理について説明する。
図17は、秘密鍵設定時の処理について説明するための図である。
この処理において、ホスト機器は、シーケンステーブルを参照し、秘密鍵シーケンスを実行し、乱数コマンド(CK)、ログインコマンド(CI)、秘密鍵設定コマンド(SW)、ログアウトコマンド(CO)の順でコマンドを24hドア監視ユニット63に送信する。
まず、ホスト機器は、乱数コマンド(CK)を24hドア監視ユニット63に送信する(C11)。乱数コマンドを受信した24hドア監視ユニット63は、乱数を発生させ、発生させた乱数値をホスト機器に送信(返信)する(C12:乱数アンサ)。
また、24hドア監視ユニット63は、発生させた乱数値を、RAM204の乱数格納領域に記憶させる。また、24hドア監視ユニット63は、EEPROM205の秘密鍵格納領域から初期値の秘密鍵を読み出し、読み出した秘密鍵とRAM204の乱数格納領域に記憶させた乱数値とを用いて、所定の演算を行ってパスワードを生成する。そして、生成したパスワードをRAM204のパスワード格納領域に記憶させる。
一方、ホスト機器は、24hドア監視ユニット63から乱数値を受信すると、受信した乱数値を揮発性の記憶装置に記憶させる。また、ホスト機器は、不揮発性の記憶装置から初期値の秘密鍵を読み出す。なお、ホスト機器の不揮発性の記憶装置には、EEPROM205に記憶されていた初期値の秘密鍵と同じ秘密鍵が予め記憶されている。ホスト機器は、読み出した秘密鍵と揮発性の記憶装置に記憶させた乱数値とを用いて、所定の演算を行ってパスワードを生成する。そして、生成したパスワードを揮発性の記憶装置に記憶させる。
次に、ホスト機器は、ログインコマンド(CI)を24hドア監視ユニット63に送信する(C13)。ログインコマンドには、ホスト機器が生成し、揮発性の記憶装置に記憶させたパスワードが付随している。
ログインコマンドを受信した24hドア監視ユニット63は、ログインコマンドに付随するパスワードと、RAM204のパスワード格納領域に記憶されているパスワードが一致するか否かを判別し、一致する場合はログイン許可(OK)の旨、一致しない場合はログイン不許可(NG)の旨のアンサを送信(返信)する(C14)。
24hドア監視ユニット63からログイン不許可の旨のアンサを受信した場合、ホスト機器は、第1警告表示処理を行う。ホスト機器は、第1警告表示処理において、ホスト機器が有する表示装置にログイン不許可の旨を示す画面を表示させる。例えば、ホスト機器が副制御基板72の場合は、液晶表示装置11(図2参照)に図19に示すように、画面の中央に「監視ユニットにログインできません。」というメッセージが配置された警告画面を表示する。また、この警告画面の下部には、「監視ユニットの状態を確認してください。尚、監視ユニットの設定は1時間行えません。」というメッセージが配置されている。
24hドア監視ユニット63からログイン許可の旨のアンサを受信した場合、ホスト機器は、秘密鍵設定コマンド(SW)を24hドア監視ユニット63に送信する。秘密鍵設定コマンドには、変更に係る秘密鍵が付随する。なお、変更に係る秘密鍵は、ホスト機器が自動的に生成してもよいし、ホスト機器の入力操作部(図示省略)を操作者に操作させて入力させてもよく、また、予めホスト機器の不揮発性の記憶装置に記憶しておいてもよい。
秘密鍵設定コマンドを受信した24hドア監視ユニット63は、秘密鍵設定コマンドに付随する秘密鍵を、EEPROM205の秘密鍵格納領域に記憶させる(上書きする)。そして、上述の設定結果OKかNGか、を示すアンサをホスト機器に送信する(C16)。
次に、ホスト機器は、ログアウトコマンド(CO)を24hドア監視ユニット63に送信する(C17)。ログアウトコマンドを受信した24hドア監視ユニット63は、ログアウトを行う。そして、ログアウトした旨を示すログアウトアンサをホスト機器に送信する(C18)。
なお、本実施形態において、乱数コマンド(CK)、ログインコマンド(CI)の順で送信する他のシーケンス(具体的には、初期化シーケンス、時計セットシーケンス、監視間隔時間設定シーケンス、記録開始時間設定シーケンス、記録モード設定シーケンス、一括設定シーケンス)の実行時における、乱数コマンド(CK)、ログインコマンド(CI)に係る処理の内容は共通である。
また、上記では、初期値の秘密鍵を変更する場合の秘密鍵設定時の処理について説明したが、既に初期値から変更された秘密鍵を変更する場合の秘密鍵設定時の処理も、パスワードの作成に用いられる秘密鍵が初期値から変更された秘密鍵を用いる以外は、上記と同様である。
<起動時〜監視中の処理>
次に、ホスト機器と24hドア監視ユニット63が行う処理の他の例として、ホスト機器の起動時からホスト機器がフロントドア2bの開閉状態を監視しているときの処理を、図18を参照して説明する。
図18は、起動時〜監視中の処理について説明するための図である。
この処理の冒頭において、ホスト機器は、シーケンステーブルを参照し、起動シーケンスを実行し、バージョン要求コマンド(CV)、シリアルIDコマンド(CR)、ステータス読出コマンド(CS)の順で、コマンドを24hドア監視ユニット63に送信する。
まず、ホスト機器は、バージョン要求コマンド(CV)を24hドア監視ユニット63に送信する(C21)。バージョン要求コマンドを受信した24hドア監視ユニット63は、EEPROM205に記憶されているプログラムバージョンをホスト機器に送信(返信)する(C22:バージョンアンサ)。
ホスト機器は、プログラムバージョンを受信すると、受信したプログラムバージョンと、ホスト機器が有する不揮発性の記憶装置に記憶されたプログラムバージョンとを比較する。そして、一致しない場合は、第2警告表示処理を行う。ホスト機器は、第2警告表示処理において、ホスト機器が有する表示装置にログイン不許可の旨を示す画面を表示させる。例えば、ホスト機器が副制御基板72の場合は、液晶表示装置11に、画面の中央に「プログラムバージョンが異なります」というメッセージが配置された警告画面(図示省略)を表示する。
また、ホスト機器は、プログラムバージョンを受信すると、シリアルIDコマンド(CR)を24hドア監視ユニット63に送信する(C23)。シリアルIDコマンドを受信した24hドア監視ユニット63は、EEPROM205に記憶されているシリアルIDをホスト機器に送信(返信)する(C24:シリアルIDアンサ)。
ホスト機器は、シリアルIDを受信すると、受信したシリアルIDと、ホスト機器が有する不揮発性の記憶装置に記憶されたシリアルIDとを比較する。そして、一致しない場合は、第3警告表示処理を行う。ホスト機器は、第3警告表示処理において、24h監視ドア監視ユニットが交換された旨を示す画面を表示させる。例えば、ホスト機器が副制御基板72の場合は、液晶表示装置11(図2参照)に、図20に示すように画面の中央に「監視ユニットが交換されました。」というメッセージが配置された警告画面を表示する。また、この警告画面の下部には、ホスト機器の記憶装置に記憶されているシリアルIDが「OLD UNIT SERIAL ID」として表示され、受信したシリアルIDが「NEW UNIT SERIAL ID」として表示される。
また、ホスト機器は、シリアルIDを受信すると、ステータス読出コマンド(CS)を24hドア監視ユニット63に送信する(C25)。ステータス読出コマンドを受信した24hドア監視ユニット63は、RAM204の第1検知結果格納領域に記憶されている開閉履歴情報をホスト機器に送信(返信)する(C26:ステータスアンサ)。
起動シーケンスに係るコマンドの送信が終了すると、ホスト機器は、シーケンステーブルを参照し、全履歴取得シーケンスを実行し、開閉履歴情報数コマンド(CC)、最新番号コマンド(CN)、開閉履歴情報読出コマンド(CB)の順で、コマンドを24hドア監視ユニット63に送信する。
まず、ホスト機器は、開閉履歴情報数コマンド(CC)を送信する(C27)。開閉履歴情報数コマンドを受信した24hドア監視ユニット63は、履歴カウンタの値をホスト機器に送信する(C28:開閉履歴情報数アンサ)。
次いで、ホスト機器は、最新番号コマンド(CN)を送信する(C29)。最新番号コマンドを受信した24hドア監視ユニット63は、最新番号をホスト機器に送信する(C28:最新番号アンサ)。
ホスト機器は、受信した最新番号と履歴カウンタの値を、ホスト機器が有する不揮発性の記憶装置が記憶する最新番号と履歴カウンタの値と比較する。比較の結果、差異がある場合は、最新番号と履歴カウンタの値に基いて、開閉履歴情報を取得する先の開閉履歴情報格納領域の番号を特定する。そして、ホスト機器は、特定した開閉履歴情報格納領域の番号が付された開閉履歴情報格納領域を指定した開閉履歴情報読出コマンド(CB)を送信する(C31)。
開閉履歴情報読出コマンドを受信した24hドア監視ユニット63は、読出コマンドに付随する番号に対応する開閉履歴格納領域に記憶されている開閉履歴情報をホスト機器に送信(返信)する(C32:開閉履歴情報読出アンサ)。
なお、C31及びC32は、特定した開閉履歴情報格納領域の番号が付された開閉履歴情報格納領域の全てから開閉履歴情報を取得するまで繰り返される。
全履歴取得シーケンスに係るコマンドの送信が終了すると、ホスト機器は、シーケンステーブルを参照し、第1状態検知シーケンスを実行し、ステータス読出コマンド(CS)、開閉履歴情報数コマンド(CC)、最新番号コマンド(CN)の順で、コマンドを24hドア監視ユニット63に送信する。なお、以降、第1状態検知シーケンスは、所定の間隔、本実施形態では500msec毎に実行される。
まず、ホスト機器は、ステータス読出コマンド(CS)を、24hドア監視ユニット63に送信する(C33)。ステータス読出コマンドを受信した24hドア監視ユニット63は、RAM204の第1検知結果格納領域に記憶されている開閉履歴情報をホスト機器に送信(返信)する(C34:ステータスアンサ)。
受信した開閉履歴情報が、フロントドア2bの開放状態を示している場合、ホスト機器は、ホスト機器に接続された表示装置(ホスト機器が副制御基板72の場合は液晶表示装置11)にフロントドア2bが開放状態である旨を示す画面(図示省略)を表示させる(ドアオープン表示)。
次いで、ホスト機器は、開閉履歴情報数コマンド(CC)を、24hドア監視ユニット63に送信する(C35)。開閉履歴情報数コマンドを受信した24hドア監視ユニット63は、EEPROM205の履歴カウンタ格納領域を参照し、履歴カウンタの値をホスト機器に送信(返信)する(C35:開閉履歴情報数アンサ)。履歴カウンタの値を受信したホスト機器は、ホスト機器が有する不揮発性の記憶装置に既に記憶されている履歴カウンタの値と、受信した履歴カウンタの値とを比較し、これらが一致しない場合、受信した履歴カウンタの値を不揮発性の記憶装置に記憶させる(上書きする)。
次いで、ホスト機器は、最新番号コマンド(CN)を、24hドア監視ユニット63に送信する(C37)。最新番号コマンドを受信した24hドア監視ユニット63は、EEPROM205の最新番号格納領域を参照し、最新番号をホスト機器に送信(返信)する(C38:最新番号アンサ)。最新番号を受信したホスト機器は、ホスト機器が有する不揮発性の記憶装置に既に記憶されている最新番号と、受信した最新番号とを比較し、これらが一致しない場合、受信した最新番号を不揮発性の記憶装置に記憶させる(上書きする)。
また、ホスト機器は、受信した最新番号と、不揮発性の記憶装置が記憶する最新番号が一致しない場合、履歴取得シーケンスを実行する。
ホスト機器は、履歴取得シーケンスを実行し、開閉履歴情報読出コマンド(CB)を24hドア監視ユニット63に送信する。なお、この開閉履歴情報読出コマンドには、ホスト機器が有する不揮発性の記憶装置に記憶されている最新番号が付随する。
開閉履歴情報読出コマンドを受信した24hドア監視ユニット63は、開閉履歴情報読出コマンドに付随する番号に対応する開閉履歴格納領域に記憶されている開閉履歴情報をホスト機器に送信(返信)する(C40:開閉履歴情報読出アンサ)。そして、開閉履歴情報を受信したホスト機器は、受信した開閉履歴を不揮発性の記憶装置に記憶させる。
<24hドア監視ユニットの制御LSI200が行う処理>
次に、24hドア監視ユニット63の制御LSI200が行う各種処理について、図21〜図35を参照して説明する。
(1)ドア監視ユニットメイン処理
まず、制御LSI200が行うドア監視ユニットメイン処理について、図21を参照して説明する。
図21は、本実施形態におけるドア監視ユニットメイン処理の例を示すフローチャートである。
ドア監視ユニットメイン処理において、制御LSI200は、まず、初期化処理を行う(S1)。初期化処理において、制御LSI200は、EEPROM205に記憶されている監視間隔時間に対応するカウント数及び記録開始時間に対応するカウント数をクリアする。また、RAM204に記憶されている監視間隔カウンタの値及び記録開始時間カウンタの値をクリアする。
次いで、制御LSI200は、ポート入力処理を行う(S2)。ポート入力処理において、制御LSI200は、フロントドア2bが開放状態か閉止状態かを示す情報をI/Oポート回路209の入力ポートから取得し、取得した情報をRAM204に記憶する。ポート入力処理の具体的な内容は、後で図22を参照して説明する。
次いで、制御LSI200は、ドア監視処理を行う(S3)。ドア監視処理では、制御LSI200は、開閉履歴情報をEEPROM205に記憶させる。ドア監視処理の具体的な内容は、後で図23を参照して説明する。
次いで、制御LSI200は、受信処理を行う(S4)。受信処理では、制御LSI200は、後述する受信割込み処理(図27参照)でホスト機器から受信したコマンドに応じた各種処理を行う。受信処理の具体的な内容は、後で図28を参照して説明する。
次いで、制御LSI200は、送信処理を行う(S5)。送信処理では、制御LSI200は、ホスト機器に各種アンサを送信する。送信処理の具体的な内容は、後で図33を参照して説明する。
次いで、制御LSI200は、周期ウェイト処理を行う(S6)。周期ウェイト処理では、制御LSI200は、前回の周期ウェイト処理から20msec経過したか否かを判別し、経過していない場合は経過するまで、次の処理(S7)への移行を保留し、経過してから処理をS7に移行させる。このため、制御LSI200が実行する各種処理における各種カウンタに1を加算する処理は、20msec毎に1回実行されることになる。なお、制御LSI200が実行する各種処理における各種カウンタに1を加算する処理には、ドア監視ユニットメイン処理の後述するS8、後述するドア監視処理(図23参照)のS24がある。
次いで、制御LSI200は、RAM204の記録開始時間カウンタ格納領域及びEEPROM205の記録開始時間格納領域を参照し、記録開始時間カウンタの値が記録開始時間に対応するカウント数未満か否かを判別する(S7)。S7において、記録開始時間カウンタの値が記録開始時間に対応するカウント数未満でないと判別したとき(S7がNO判定の場合)、制御LSI200は、処理をS2に移行し、S2以降の処理を繰り返す。
一方、S7において、記録開始時間カウンタの値が記録開始時間に対応するカウント数未満と判別したとき(S7がYES判定の場合)、制御LSI200は、記録開始時間カウンタの値に1を加算する(S8)。その後、制御LSI200は、処理をS2に移行し、S2以降の処理を繰り返す。
(2)ポート入力処理
次に、ドア監視ユニットメイン処理(図21参照)のS2におけるポート入力処理について、図22を参照して説明する。
図22は、本実施形態におけるポート入力処理の例を示すフローチャートである。
ポート入力処理において、制御LSI200は、まず、フロントドア2bが開放状態か閉止状態かを示す状態情報をI/Oポート回路209の入力ポートから取得する(S11)。
次いで、制御LSI200は、取得した状態情報をRAM204の入力ポート情報格納領域に保存する(S12)。そして、制御LSI200は、ポート入力処理を終了し、処理をドア監視ユニットメイン処理(図21参照)のS3に戻す。
(3)ドア監視処理
次に、ドア監視ユニットメイン処理(図21参照)のS3におけるドア監視処理について、図23を参照して説明する。
図23は、本実施形態におけるドア監視処理の例を示すフローチャートである。
ドア監視処理において、制御LSI200は、まず、ドア監視状態検知処理を行う(S21)。ドア監視状態検知処理において、制御LSI200は、RAM204の入力ポート情報格納領域に記憶されている状態情報を第1検知結果格納領域や第2検知結果格納領域に記憶させる。ドア監視状態検知処理の具体的な内容は、後で図24を参照して説明する。
次いで、制御LSI200は、ドア監視記録判定処理を行う(S22)。ドア監視記録判定処理において、制御LSI200は、開閉履歴情報をEEPROM205に記憶可能か否かを判定し、記録可能と判定する場合は、記録許可フラグをONに設定する(「1」をセットする)。一方、記録可能でないと判定する場合は、記録許可フラグをOFFに設定する(クリアする)。ドア監視記録判定処理の具体的な内容は、後で図25を参照して説明する。
次いで、制御LSI200は、記録許可フラグがONに設定されてているか(「1」がセットされているか)否か、を判別する(S23)。S23において、記録許可フラグがOFFに設定されていると判別したとき(S23がNO判定の場合)、制御LSI200は、ドア監視処理を終了し、処理をドア監視ユニットメイン処理(図21参照)のS4に戻す。
一方、S23において、記録許可フラグがONに設定されていると判別したとき(S23がYES判定の場合)、制御LSI200は、RAM204の監視間隔カウンタ格納領域に記憶されている監視間隔カウンタの値に1を加算する(S24)。
次いで、制御LSI200は、RAM204の監視間隔カウンタの値が、EEPROM205の監視間隔時間格納領域に記憶されている監視間隔時間に対応するカウント数以上か否かを判別する(S25)。S25において、監視間隔カウンタの値が監視間隔時間に対応するカウント数未満と判別したとき(S25がNO判定の場合)、制御LSI200は、ドア監視処理を終了し、処理をドア監視ユニットメイン処理(図21参照)のS4に戻す。
一方、S25において、監視間隔カウンタの値が監視間隔時間に対応するカウント数以上と判別したとき(S25がYES判定の場合)、制御LSI200は、監視間隔カウンタに0をセット(クリア)する(S26)。
次いで、制御LSI200は、RAM204の状態変化フラグ格納領域に記憶されている状態変化フラグがONに設定されているか否かを判別する(S27)。状態変化フラグは、後述のドア監視状態検知処理(図24参照)のS46でONに設定される。S27において、状態変化フラグがOFFに設定されていると判別したとき(S27がNO判定の場合)、制御LSI200は、ドア監視処理を終了し、処理をドア監視ユニットメイン処理(図21参照)のS4に戻す。
一方、S27において、状態変化フラグがONに設定されていると判別したとき(S27がYES判定の場合)、制御LSI200は、EEPROM205の最新番号格納領域に記憶されている最新番号が128以上か否かを判別する(S28)。
S27において、EEPROM205の最新番号格納領域に記憶されている最新番号が128以上であると判別したとき(S28がYES判定の場合)、制御LSI200は、EEPROM205の最新番号格納領域に最新番号として「1」をセットする(S29)。そして、制御LSI200は、処理をS31に移行する。
S27において、EEPROM205の最新番号格納領域に記憶されている最新番号が128未満であると判別したとき(S28がNO判定の場合)、制御LSI200は、EEPROM205の最新番号格納領域の値に「1」を加算する(S30)。そして、制御LSI200は、処理をS31に移行する。
S31の処理において、制御LSI200は、EEPROM205の履歴カウンタ格納領域に記憶されている履歴カウンタが128未満か否かを判別する(S31)。S31の処理において、履歴カウンタが128未満と判別したとき(S31がYES判定の場合)、制御LSI200は、履歴カウンタに1を加算する(S32)。そして、制御LSI200は、処理をS33に移行する。
一方、S31の処理において、履歴カウンタが128未満でない判別したとき(S31がNO判定の場合)、制御LSI200は、処理をS33に移行する。
S33の処理において、制御LSI200は、EEPROM205の最新番号格納領域に記憶されている最新番号が付された開閉履歴情報格納領域に、RAM204の第2検知結果格納領域に記憶されている開閉履歴情報を記憶させる。
次いで、制御LSI200は、RAM204の状態変化フラグ格納領域に記憶されている状態変化フラグをOFFに設定する(S34)。そして、制御LSI200は、ドア監視処理を終了し、処理をドア監視ユニットメイン処理(図21参照)のS4に戻す。
(4)ドア監視状態検知処理
次に、ドア監視処理(図23参照)のS21におけるドア監視状態検知処理について、図24を参照して説明する。
図24は、本実施形態におけるドア監視状態検知処理の例を示すフローチャートである。
ドア監視状態検知処理において、制御LSI200は、まず、RAM204の第1検知結果格納領域に記憶されている開閉履歴情報における状態情報(開放か閉止かを示す情報)と、RAM204の入力ポート情報格納領域に記憶されている状態情報と、が異なるか否かを判別する(S41)。
S41において、第1検知結果格納領域の状態情報と、入力ポート情報格納領域の状態情報と、が異ならない(一致する)と判別したとき(S41がNO判定の場合)、制御LSI200は、ドア監視状態検知処理を終了し、処理をドア監視処理(図23参照)のS22に戻す。
S41において、第1検知結果格納領域の状態情報と、入力ポート情報格納領域の状態情報と、が異なると判別したとき(S41がYES判定の場合)、制御LSI200は、RTC201から現在時刻の日時情報を取得し、取得した日時情報と入力ポート情報格納領域の状態情報からなる開閉履歴情報を第1検知結果格納領域に記憶させる(S42)。
次いで、制御LSI200は、RAM204の状態変化フラグ格納領域に記憶されている状態変化フラグがOFFに設定されているか否かを判別する(S43)。S43において、状態変化フラグがOFFに設定されていないと判別したとき(S43がNO判定の場合)、制御LSI200は、ドア監視状態検知処理を終了し、処理をドア監視処理(図23参照)のS22に戻す。
一方、S43において、状態変化フラグがOFFに設定されていると判別したとき(S43がYES判定の場合)、制御LSI200は、EEPROM205の最新番号格納領域に記憶されている最新番号が付された開閉履歴情報格納領域に記憶されている開閉履歴情報の状態情報と、入力ポート情報格納領域の状態情報と、が異なるか否かを判別する(S44)。
S44の処理に置いて、最新番号が付された開閉履歴情報格納領域に記憶されている開閉履歴情報の状態情報と、入力ポート情報格納領域の状態情報と、が異ならない(一致する)と判別したとき(S44がNO判定の場合)、制御LSI200は、ドア監視状態検知処理を終了し、処理をドア監視処理(図23参照)のS22に戻す。
一方、S44の処理に置いて、最新番号が付された開閉履歴情報格納領域に記憶されている開閉履歴情報の状態情報と、入力ポート情報格納領域の状態情報と、が異なると判別したとき(S44がYES判定の場合)、制御LSI200は、RTC201から現在時刻の日時情報を取得し、取得した日時情報と入力ポート情報格納領域の状態情報からなる開閉履歴情報を第2検知結果格納領域に記憶させる(S45)。
次いで、制御LSI200は、RAM204の状態変化フラグ格納領域に記憶されている状態変化フラグをONに設定する(S46)。そして、制御LSI200は、ドア監視状態検知処理を終了し、処理をドア監視処理(図23参照)のS22に戻す。
(5)ドア監視記録判定処理
次に、ドア監視処理(図23参照)のS22におけるドア監視記録判定処理について、図25を参照して説明する。
図25は、本実施形態におけるドア監視記録判定処理の例を示すフローチャートである。
ドア監視記録判定処理において、制御LSI200は、まず、EEPROM205の記録モード格納領域を参照し、記録モードが常時記録モードに設定されているか否かを判別する(S51)。S51の処理において、記録モードが常時記録モードに設定されていないと判別したとき(S51がNO判定の場合)、制御LSI200は、処理を後述のS54に移行する。
S51の処理において、記録モードが常時記録モードに設定されていると判別したとき(S51がYES判定の場合)、制御LSI200は、RAM204の記録開始時間カウンタ格納領域及びEEPROM205の記録開始時間格納領域を参照し、記録開始時間カウンタの値が記録開始時間に対応するカウント数以上か否かを判別する(S52)。S52において、記録開始時間カウンタの値が記録開始時間に対応するカウント数以上でないと判別したとき(S52がNO判定の場合)、制御LSI200は、処理を後述のS54に移行する。
S52において、記録開始時間カウンタの値が記録開始時間に対応するカウント数以上であると判別したとき(S52がYES判定の場合)、制御LSI200は、RAM204の記録許可フラグ格納領域に記憶されている記録許可フラグをONに設定する(S53)。そして、制御LSI200は、ドア監視記録判定処理を終了し、処理をドア監視処理(図23参照)のS23に戻す。
S54において、制御LSI200は、RAM204の記録許可フラグ格納領域に記憶されている記録許可フラグをOFFに設定する(S54)。そして、制御LSI200は、ドア監視記録判定処理を終了し、処理をドア監視処理(図23参照)のS23に戻す。
ここで、図21〜図25の処理の結果、ドア開閉監視スイッチ67からの信号の出力タイミングと、第1検知結果格納領域に開閉履歴情報を記憶させるタイミングと、第2検知結果格納領域に開閉履歴情報を記憶させるタイミングと、について図26を参照して説明する。
図26は、第1検知結果格納領域及び第2検知結果格納領域に開閉履歴情報を記憶するタイミングを示すタイミングチャートである。
図26では、予め設定されている記録開始時間が経過した後の状態を示している。また図26における縦実線は、RAM204の第2検知結果格納領域に記憶されている開閉履歴情報がEEPROM205の開閉履歴情報格納領域に記憶されるタイミング(図23に示すドア監視処理のS33の実行タイミング)を示している。したがって、縦実線の間隔は、監視間隔時間を示している。
図26におけるt0の時点は、フロントドア2bが閉止されている状態がしばらく続き、第2検知結果格納領域に格納されている閉止状態を示す開閉履歴情報がEEPROM205の開閉履歴格納領域に記憶された時点を示している。
t1の時点において、ドア開閉監視スイッチ67からフロントドア2bが開放状態である旨を示す状態情報が出力されると、t2の時点で、第1検知結果格納領域に、開放状態を示す開閉履歴情報が記憶される(図24に示すドア監視状態検知処理のS42参照)。また、同様に、t2の時点で、第2検知結果格納領域に、開放状態を示す開閉履歴情報が記憶される(図24に示すドア監視状態検知処理のS45参照)。また、RAM204の状態変化フラグ格納領域に記憶されている状態変化フラグがONに設定される(図24に示すドア監視状態検知処理のS46参照)。
なお、t1とt2との間隔は、ドア監視状態検知処理のS42及びS45の処理が20msec毎に実行されることに起因するタイムラグである。すなわち、このタイムラグの最大値は、最大で20msecとなる。なお、後述するt3とt4との間隔、t6とt7との間隔、t8とt9との間隔、t11とt12との間隔、t14とt15との間隔も同様のタイムラグを示している。
t3の時点で、ドア開閉監視スイッチ67からフロントドア2bが閉止状態である旨を示す状態情報が出力されると、t4の時点で、第1検知結果格納領域に、閉止状態を示す開閉履歴情報が記憶される(図24に示すドア監視状態検知処理のS42参照)。
一方、t4の時点では、RAM204の状態変化フラグ格納領域に記憶されている状態変化フラグがONに設定されている(図24に示すドア監視状態検知処理のS46参照)。このため、t3の時点で出力された状態情報に基く開閉履歴情報は、第2検知結果格納領域には、記憶されない(図24に示すドア監視状態検知処理のS43)。すなわち、第2検知結果格納領域に開放状態を示す開閉履歴情報が記憶されている状態が維持される。
t0の時点から開始間隔時間が経過したt5の時点で、第2検知結果格納領域に記憶されている開放状態を示す開閉履歴情報がEEPROM205の最新番号が付された開閉履歴情報格納領域に記憶される(図23に示すドア監視処理のS33参照)。また、RAM204の状態変化フラグ格納領域に記憶されている状態変化フラグがOFFに設定される(図23に示すドア監視処理のS34参照)。
t6の時点で、ドア開閉監視スイッチ67からフロントドア2bが開放状態である旨を示す状態情報が出力されると、t7の時点で、第1検知結果格納領域に、開放状態を示す開閉履歴情報が記憶される(図24に示すドア監視状態検知処理のS42参照)。
一方、t7の時点において、RAM204の状態変化フラグ格納領域に記憶されている状態変化フラグはOFFに設定されているが、EEPROM205の最新番号が付された開閉履歴情報格納領域には、開放状態を示す開閉履歴情報が記憶されている。このため、t6の時点で出力された状態情報に基く開閉履歴情報は、第2検知結果格納領域には、記憶されない(図24に示すドア監視状態検知処理のS44)。すなわち、第2検知結果格納領域に開放状態を示す開閉履歴情報が記憶されている状態が維持される。
t8の時点で、ドア開閉監視スイッチ67からフロントドア2bが閉止状態である旨を示す状態情報が出力されると、t9の時点で、第1検知結果格納領域に、閉止状態を示す開閉履歴情報が記憶される(図24に示すドア監視状態検知処理のS42参照)。
また、t9の時点では、RAM204の状態変化フラグ格納領域に記憶されている状態変化フラグはOFFに設定され、且つ、EEPROM205の最新番号が付された開閉履歴情報格納領域には、開放状態を示す開閉履歴情報が記憶されている。このため、t8の時点で出力された状態情報に基く開閉履歴情報が、第2検知結果格納領域に、記憶される(図24に示すドア監視状態検知処理のS45)。すなわち、第2検知結果格納領域に閉止状態を示す開閉履歴情報が記憶される。また、RAM204の状態変化フラグ格納領域に記憶されている状態変化フラグがONに設定される(図24に示すドア監視状態検知処理のS46参照)。
t5の時点から開始間隔時間が経過したt10の時点で、第2検知結果格納領域に記憶されている閉止状態を示す開閉履歴情報がEEPROM205の最新番号が付された開閉履歴情報格納領域に記憶される(図23に示すドア監視処理のS33参照)。また、RAM204の状態変化フラグ格納領域に記憶されている状態変化フラグがOFFに設定される(図23に示すドア監視処理のS34参照)。
t11の時点において、ドア開閉監視スイッチ67からフロントドア2bが開放状態である旨を示す状態情報が出力されると、t12の時点で、第1検知結果格納領域に、開放状態を示す開閉履歴情報が記憶される(図24に示すドア監視状態検知処理のS42参照)。また、同様に、t12の時点で、第2検知結果格納領域に、開放状態を示す開閉履歴情報が記憶される(図24に示すドア監視状態検知処理のS45参照)。また、RAM204の状態変化フラグ格納領域に記憶されている状態変化フラグがONに設定される(図24に示すドア監視状態検知処理のS46参照)。
t11の時点から開始間隔時間が経過したt13の時点で、第2検知結果格納領域に記憶されている開放状態を示す開閉履歴情報がEEPROM205の最新番号が付された開閉履歴情報格納領域に記憶される(図23に示すドア監視処理のS33参照)。また、RAM204の状態変化フラグ格納領域に記憶されている状態変化フラグがOFFに設定される(図23に示すドア監視処理のS34参照)。
t14の時点で、ドア開閉監視スイッチ67からフロントドア2bが閉止状態である旨を示す状態情報が出力されると、t15の時点で、第1検知結果格納領域に、閉止状態を示す開閉履歴情報が記憶される(図24に示すドア監視状態検知処理のS42参照)。
また、t14の時点では、RAM204の状態変化フラグ格納領域に記憶されている状態変化フラグはOFFに設定され、且つ、EEPROM205の最新番号が付された開閉履歴情報格納領域には、開放状態を示す開閉履歴情報が記憶されている。このため、t14の時点で出力された状態情報に基く開閉履歴情報が、第2検知結果格納領域に、記憶される(図24に示すドア監視状態検知処理のS45)。すなわち、第2検知結果格納領域に閉止状態を示す開閉履歴情報が記憶される。また、RAM204の状態変化フラグ格納領域に記憶されている状態変化フラグがONに設定される(図24に示すドア監視状態検知処理のS46参照)。
t13の時点から開始間隔時間が経過したt16の時点で、第2検知結果格納領域に記憶されている閉止状態を示す開閉履歴情報がEEPROM205の最新番号が付された開閉履歴情報格納領域に記憶される(図23に示すドア監視処理のS33参照)。また、RAM204の状態変化フラグ格納領域に記憶されている状態変化フラグがOFFに設定される(図23に示すドア監視処理のS34参照)。
(6)受信割込み処理
次に、制御LSI200のシリアル通信回路207がホスト機器からコマンドやデータを1バイト受信する毎に、制御LSI200が実行する受信割込み処理について、図27を参照して説明する。
図27は、本実施形態における受信割込み処理の例を示すフローチャートである。
受信割込み処理において、制御LSI200は、まず、受信したデータが「STX」であるか否かを判別する(S61)。S61において、受信したデータが「STX」であると判別したとき(S61がYES判定の場合)、制御LSI200は、RAM204の受信バッファ及び受信カウンタ格納領域に記憶されている受信カウンタの値に「1」を設定し、且つ、RAM204のETX受信フラグ格納領域に記憶しているETX受信フラグをOFFに設定する(S62)。そして、制御LSI200は、受信割込み処理を終了する。
一方、S61において、受信したデータが「STX」でないと判別したとき(S61がNO判定の場合)、制御LSI200は、受信カウンタ格納領域に記憶されている受信カウンタの値に対応する受信バッファに受信したデータを記憶させる(S63)。
次いで、制御LSI200は、受信カウンタの値に1を加算する(S64)。
次いで、制御LSI200は、受信データが「ETX」であるか否かを判別する(S65)。S65において、受信データが「ETX」であると判別したとき(S65がYES判定の場合)、制御LSI200は、RAM204のETX受信フラグ格納領域に記憶されているETX受信フラグをONに設定する。また、RAM204のサムカウンタの値をクリアする(S66)。そして、制御LSI200は、受信割込み処理を終了する。
一方、S65において、受信データが「ETX」でないと判別したとき(S65がNO判定の場合)、制御LSI200は、RAM204のETX受信フラグ格納領域に記憶されているETX受信フラグがONに設定されているか否かを判別する(S67)。S67において、ETX受信フラグがONに設定されていないと判別したとき(S67がNO判定の場合)、制御LSI200は、受信割込み処理を終了する。
S67において、ETX受信フラグがONに設定されていると判別したとき(S67がYES判定の場合)、サムカウンタの値に1を加算する(S68)。
次いで、制御LSI200は、サムカウンタの値が2であるか否かを判別する(S69)。S69において、サムカウンタの値が2でないと判別したとき(S69がNO判定の場合)、制御LSI200は、受信割込み処理を終了する。一方、S69において、サムカウンタの値が2であると判別したとき(S69がYES判定の場合)、制御LSI200は、RAM204の受信完了フラグ格納領域に記憶されている受信完了フラグをONに設定し(S70)、受信割込み処理を終了する。
(7)受信処理
次に、ドア監視ユニットメイン処理(図21参照)のS4における受信処理について、図28を参照して説明する。
図28は、本実施形態における受信処理の例を示すフローチャートである。
受信処理において、制御LSI200は、まず、RAM204の受信完了フラグ格納領域に記憶されている受信完了フラグがONに設定されているか否かを判別する(S71)。S71において、受信完了フラグがONに設定されていないと判別したとき(S71がNO判定の場合)、制御LSI200は、受信処理を終了し、処理をドア監視ユニットメイン処理(図21参照)のS5に戻す。
一方、S71において、受信完了フラグがONに設定されていると判別したとき(S71がYES判定の場合)、制御LSI200は、RAM204の受信バッファを参照し、受信したサム値と受信したデータとが整合しているか否かを判定する整合性判定処理を行う(S72)。具体的には、整合性判定処理では、RAM204の受信バッファに保存されている受信データ(図15A参照)の「STX」を除く「ETX」までの1バイト単位で受信データを順次加算して1バイトのサム値を算出し、算出結果をASCIIコードに変換することで、2バイトのサム値を生成し、生成したサム値と、受信バッファに保存されているサム値(図15AのSAM(ASCII)2Byte)とを照合することで、受信したデータが整合しているか否かを判定する。なお、整合性判定処理の具体例として、加算によりサム値を算出する例を説明したが、これに限らず、例えば、減算又は排他的論理和によりサム値を算出してもよい。また、サム値を算出することに代えて、受信バッファに保存されているサム値をASCIIコードからバイナリコードに変換することで、サム値の判定を行ってもよい。
次いで、制御LSI200は、S72の整合性判定処理の結果、受信したサム値と受信したデータとが整合していると判定したか、すなわち、整合性判定処理の結果がOKであるか否かを判別する(S73)。S73において、整合性判定処理の結果がOKでないと判別したとき(S73がNO判定の場合)、制御LSI200は、受信処理を終了し、処理をドア監視ユニットメイン処理(図21参照)のS5に戻す。
一方、S73において、整合性判定処理の結果がOKであると判別したとき(S73がYES判定の場合)、制御LSI200は、受信コマンドは特権コマンドかであるか否かを判別する(S74)。具体的には、制御LSI200は、受信バッファを参照し、受信したデータに特権コマンドのID(図13に示すSI,ST,SA,SB,SC,SWのいずれか)が含まれている場合は、受信コマンドは特権コマンドであると判別し、含まれていない場合は、特権コマンドでないと判別する。
S74において、受信コマンドは特権コマンドでないと判別したとき(S74がNO判定の場合)、制御LSI200は、処理を後述のS77に以降する。一方、S74において、受信コマンドは特権コマンドであると判別したとき(S74がYES判定の場合)、制御LSI200は、RAM204のログインフラグ格納領域に記憶されているログインフラグがONに設定されているか否かを判別する(S75)。
S75において、ログインフラグがONに設定されていないと判別したとき(S75がNO判定の場合)、制御LSI200は、受信処理を終了し、処理をドア監視ユニットメイン処理(図21参照)のS5に戻す。
一方、S75において、ログインフラグがONに設定されていると判別したとき(S75がYES判定の場合)、制御LSI200は、特権コマンド受信時処理を行う(S76)。特権コマンド受信時処理において、制御LSI200は、受信した特権コマンドに応じた各種処理を行う。特権コマンド受信時処理の具体的な内容は、後で図29を参照して説明する。特権コマンド受信時処理の後、制御LSI200は、受信処理を終了し、処理をドア監視ユニットメイン処理(図21参照)のS5に戻す。
ここで、S74の処理の説明に戻って、受信コマンドは特権コマンドでないと判別したとき(S74がNO判定の場合)、制御LSI200は、ログインフラグをOFFに設定する(S77)。
次いで、制御LSI200は、一般コマンド受信時処理を行う(S78)。一般コマンド受信時処理において、制御LSI200は、受信した一般コマンドに応じた各種処理を行う。一般コマンド受信時処理の具体的な内容は、後で図31を参照して説明する。一般コマンド受信時処理の後、制御LSI200は、受信処理を終了し、処理をドア監視ユニットメイン処理(図21参照)のS5に戻す。
(8)特権コマンド受信時処理
次に、受信処理(図28参照)のS76における特権コマンド受信時処理について、図29を参照して説明する。
図29は、本実施形態における特権コマンド受信時処理の例を示すフローチャートである。
特権コマンド受信時処理において、制御LSI200は、まず、受信した特権コマンドが初期化コマンドであるか否かを判別する(S81)。制御LSI200は、受信バッファを参照し、受信したデータに初期化コマンドのIDである「SI」が含まれている場合は、特権コマンドが初期化コマンドであると判別し、「SI」が含まれていない場合は、初期化コマンドでないと判別する。
S81において、受信した特権コマンドが初期化コマンドであると判別したとき(S81がYES判定の場合)、制御LSI200は、初期化処理を行う(S82)。その後、制御LSI200は、特権コマンド受信時処理を終了する。
一方、S81において、受信した特権コマンドが初期化コマンドでないと判別したとき(S81がNO判定の場合)、制御LSI200は、受信コマンドが時計セットコマンドであるか否かを判別する(S83)。制御LSI200は、受信バッファを参照し、受信したデータに初期化コマンドのIDである「ST」が含まれている場合は、特権コマンドが時計セットコマンドであると判別し、「ST」が含まれていない場合は、時計セットコマンドでないと判別する。
S83において、受信した特権コマンドが時計セットコマンドであると判別したとき(S81がYES判定の場合)、制御LSI200は、RTC設定処理を行う(S84)。すなわち、RAM204の受信バッファから時計セットコマンドに付随する、年、月、日、時、分、秒そして曜日を示す情報を取得し、取得した情報に基づいてRTC201を設定する。その後、制御LSI200は、特権コマンド受信時処理を終了する。
一方、S83において、受信した特権コマンドが時計セットコマンドでないと判別したとき(S83がNO判定の場合)、制御LSI200は、受信コマンドが監視間隔時間設定コマンドであるか否かを判別する(S85)。制御LSI200は、受信バッファを参照し、受信したデータに監視間隔時間設定コマンドのIDである「SA」が含まれている場合は、特権コマンドが監視間隔時間設定コマンドであると判別し、「SA」が含まれていない場合は、監視間隔時間設定コマンドでないと判別する。
S85において、受信した特権コマンドが監視間隔時間設定コマンドであると判別したとき(S85がYES判定の場合)、制御LSI200は、監視間隔時間設定処理を行う(S86)。すなわち、RAM204の受信バッファから監視間隔時間設定コマンドに付随する監視間隔時間を示す情報(カウント数)を取得し、EEPROM205の監視間隔時間格納領域に記憶させる。その後、制御LSI200は、特権コマンド受信時処理を終了する。
一方、S85において、受信した特権コマンドが監視間隔時間設定コマンドでないと判別したとき(S85がNO判定の場合)、制御LSI200は、受信コマンドが記録開始時間設定コマンドであるか否かを判別する(S87)。制御LSI200は、受信バッファを参照し、受信したデータに記録開始時間設定コマンドのIDである「SB」が含まれている場合は、特権コマンドが記録開始時間設定コマンドであると判別し、「SB」が含まれていない場合は、記録開始時間設定コマンドでないと判別する。
S87において、受信した特権コマンドが記録開始時間設定コマンドであると判別したとき(S87がYES判定の場合)、制御LSI200は、記録開始時間設定処理を行う(S88)。すなわち、RAM204の受信バッファから記録開始時間設定コマンドに付随する記録開始時間を示す情報(カウント数)を取得し、EEPROM205の記録開始時間格納領域に記憶させる。その後、制御LSI200は、特権コマンド受信時処理を終了する。
一方、S87において、受信した特権コマンドが記録開始時間設定コマンドでないと判別したとき(S87がNO判定の場合)、制御LSI200は、記録モード設定コマンドであるか否かを判別する(S89)。制御LSI200は、受信バッファを参照し、受信したデータに記録モード設定コマンドのIDである「SC」が含まれている場合は、特権コマンドが記録モード設定コマンドであると判別し、「SC」が含まれていない場合は、記録モード設定コマンドでないと判別する。
S89において、受信した特権コマンドが記録モード設定コマンドであると判別したとき(S89がYES判定の場合)、制御LSI200は、記録モード設定処理を行う(S90)。すなわち、RAM204の受信バッファから記録モード設定コマンドに付随する記録モードを示す情報を取得し、EEPROM205の記録モード格納領域に記憶させる。その後、制御LSI200は、特権コマンド受信時処理を終了する。
一方、S89において、受信した特権コマンドが記録モード設定コマンドでないと判別したとき(S89がNO判定の場合)、制御LSI200は、秘密鍵設定コマンドであるか否かを判別する(S91)。制御LSI200は、受信バッファを参照し、受信したデータに秘密鍵設定コマンドのIDである「SW」が含まれている場合は、特権コマンドが秘密鍵設定コマンドであると判別し、「SW」が含まれていない場合は、秘密鍵設定コマンドでないと判別する。
S91において、受信した特権コマンドが秘密鍵設定コマンドであると判別したとき(S89がYES判定の場合)、制御LSI200は、秘密鍵設定処理を行う(S92)。すなわち、RAM204の受信バッファから秘密鍵設定コマンドに付随する秘密鍵を取得し、EEPROM205の秘密鍵格納領域に記憶させる。その後、制御LSI200は、特権コマンド受信時処理を終了する。
一方、S91において、受信した特権コマンドが秘密鍵設定コマンドでないと判別したとき(S91がNO判定の場合)、制御LSI200は、特権コマンド受信時処理を終了する。
(9)一般コマンド受信時処理
次に、受信処理(図28参照)のS78における一般コマンド受信時処理について、図30を参照して説明する。
図30は、本実施形態における一般コマンド受信時処理の例を示すフローチャートである。
一般コマンド受信時処理において、制御LSI200は、まず、受信した一般コマンドがシリアルIDコマンドであるか否かを判別する(S101)。制御LSI200は、受信バッファを参照し、受信したデータにシリアルIDコマンドのIDである「CR」が含まれている場合は、一般コマンドがシリアルIDコマンドであると判別し、「CR」が含まれていない場合は、シリアルIDコマンドでないと判別する。
S101において、受信した一般コマンドがシリアルIDコマンドであると判別したとき(S101がYES判定の場合)、制御LSI200は、シリアルIDコマンド受信時処理を行う(S102)。この処理で、制御LSI200は、EEPROM205のシリアルID格納領域に記憶されているシリアルIDを取得する。その後、制御LSI200は、一般コマンド受信時処理を終了する。
一方、S101において、受信した一般コマンドがシリアルIDコマンドでないと判別したとき(S101がNO判定の場合)、制御LSI200は、受信コマンドがバージョン要求コマンドであるか否かを判別する(S103)。制御LSI200は、受信バッファを参照し、受信したデータにバージョン要求コマンドのIDである「CV」が含まれている場合は、一般コマンドがバージョン要求コマンドであると判別し、「CV」が含まれていない場合は、バージョン要求コマンドでないと判別する。
S103において、受信した一般コマンドがバージョン要求コマンドであると判別したとき(S103がYES判定の場合)、制御LSI200は、バージョン要求コマンド受信時処理を行う(S104)。この処理で、制御LSI200は、EEPROM205のバージョン格納領域に記憶されているプログラムバージョンを取得する。その後、制御LSI200は、一般コマンド受信時処理を終了する。
一方、S103において、受信した一般コマンドがバージョン要求コマンドでないと判別したとき(S103がNO判定の場合)、制御LSI200は、受信コマンドが乱数コマンドであるか否かを判別する(S105)。制御LSI200は、受信バッファを参照し、受信したデータに乱数コマンドのIDである「CK」が含まれている場合は、一般コマンドが乱数コマンドであると判別し、「CK」が含まれていない場合は、乱数コマンドでないと判別する。
S105において、受信した一般コマンドが乱数コマンドであると判別したとき(S105がYES判定の場合)、制御LSI200は、乱数コマンド受信時処理を行う(S106)。この処理で、制御LSI200は、乱数を発生させ、また、パスワードを生成する。乱数コマンド受信時処理の具体的な内容は、後で図31を参照して説明する。乱数コマンド受信時処理の後、制御LSI200は、一般コマンド受信時処理を終了する。
一方、S105において、受信した一般コマンドが乱数コマンドでないと判別したとき(S105がNO判定の場合)、制御LSI200は、受信コマンドがログインコマンドであるか否かを判別する(S107)。制御LSI200は、受信バッファを参照し、受信したデータにログインコマンドのIDである「CI」が含まれている場合は、一般コマンドがログインコマンドであると判別し、「CI」が含まれていない場合は、ログインコマンドでないと判別する。
S107において、受信した一般コマンドがログインコマンドであると判別したとき(S107がYES判定の場合)、制御LSI200は、ログインコマンド受信時処理を行う(S108)。この処理で、制御LSI200は、ログインコマンドに付随するパスワードとRAM204のパスワード記憶領域に記憶されているパスワードが一致するかを判定し、一致するときは特権コマンドに基く各種設定を要求できる状態に設定する(ログインフラグをONに設定する)。ログインコマンド受信時処理の具体的な内容は、後で図32を参照して説明する。その後、制御LSI200は、一般コマンド受信時処理を終了する。
一方、S107において、受信した一般コマンドがログインコマンドでないと判別したとき(S107がNO判定の場合)、制御LSI200は、受信コマンドがログアウトコマンドであるか否かを判別する(S109)。制御LSI200は、受信バッファを参照し、受信したデータにログアウトコマンドのIDである「CO」が含まれている場合は、一般コマンドがログアウトコマンドであると判別し、「CO」が含まれていない場合は、ログアウトコマンドでないと判別する。
S109において、受信した一般コマンドがログアウトコマンドであると判別したとき(S109がYES判定の場合)、制御LSI200は、RAM204のログインフラグ格納領域に記憶されているログインフラグをOFFに設定するログアウトコマンド受信時処理を行う(S110)。その後、制御LSI200は、一般コマンド受信時処理を終了する。
一方、S109において、受信した一般コマンドがログアウトコマンドでないと判別したとき(S109がNO判定の場合)、制御LSI200は、受信コマンドが時計読出コマンドであるか否かを判別する(S111)。制御LSI200は、受信バッファを参照し、受信したデータに時計読出コマンドのIDである「CT」が含まれている場合は、一般コマンドが時計読出コマンドであると判別し、「CT」が含まれていない場合は、時計読出コマンドでないと判別する。
S111において、受信した一般コマンドが時計読出コマンドであると判別したとき(S111がYES判定の場合)、制御LSI200は、時計読出コマンド受信時処理を行う(S112)。この処理で、制御LSI200は、RTC201が計時する現在時刻を取得する。そして、制御LSI200は、一般コマンド受信時処理を終了する。
一方、S111において、受信した一般コマンドが時計読出コマンドでないと判別したとき(S111がNO判定の場合)、制御LSI200は、受信コマンドが最新番号コマンドであるか否かを判別する(S113)。制御LSI200は、受信バッファを参照し、受信したデータに最新番号コマンドのIDである「CN」が含まれている場合は、一般コマンドが最新番号コマンドであると判別し、「CN」が含まれていない場合は、最新番号コマンドでないと判別する。
S113において、受信した一般コマンドが最新番号コマンドであると判別したとき(S113がYES判定の場合)、制御LSI200は、最新番号コマンド受信時処理を行う(S114)。この処理で、制御LSI200は、RAM204の最新番号格納領域を参照し、最新番号格納領域に記憶されている最新番号を取得する。そして、制御LSI200は、一般コマンド受信時処理を終了する。
一方、S113において、受信した一般コマンドが最新番号コマンドでないと判別したとき(S113がNO判定の場合)、制御LSI200は、受信コマンドが開閉履歴情報読出コマンドであるか否かを判別する(S115)。制御LSI200は、受信バッファを参照し、受信したデータに開閉履歴情報読出コマンドのIDである「CB」が含まれている場合は、一般コマンドが開閉履歴情報読出コマンドであると判別し、「CB」が含まれていない場合は、開閉履歴情報読出コマンドでないと判別する。
S115において、受信した一般コマンドが開閉履歴情報読出コマンドであると判別したとき(S115がYES判定の場合)、制御LSI200は、開閉履歴情報読出コマンド受信時処理を行う(S116)。この処理で、制御LSI200は、開閉履歴情報読出コマンドに付随する番号に対応するEEPROM205の開閉履歴格納領域に記憶されている開閉履歴情報を取得する。そして、制御LSI200は、一般コマンド受信時処理を終了する。
一方、S115において、受信した一般コマンドが開閉履歴情報読出コマンドでないと判別したとき(S115がNO判定の場合)、制御LSI200は、受信コマンドが開閉履歴情報数コマンドであるか否かを判別する(S117)。制御LSI200は、受信バッファを参照し、受信したデータに開閉履歴情報数コマンドのIDである「CC」が含まれている場合は、一般コマンドが開閉履歴情報数コマンドであると判別し、「CC」が含まれていない場合は、開閉履歴情報数コマンドでないと判別する。
S117において、受信した一般コマンドが開閉履歴情報数コマンドであると判別したとき(S117がYES判定の場合)、制御LSI200は、開閉履歴情報数コマンド受信時処理を行う(S118)。この処理で、制御LSI200は、EEPROM205の履歴カウンタ記憶領域に記憶されている履歴カウンタの値を取得する。そして、制御LSI200は、一般コマンド受信時処理を終了する。
一方、S117において、受信した一般コマンドが開閉履歴情報数コマンドでないと判別したとき(S117がNO判定の場合)、制御LSI200は、受信コマンドがステータス読出コマンドであるか否かを判別する(S119)。制御LSI200は、受信バッファを参照し、受信したデータにステータス読出コマンドのIDである「CS」が含まれている場合は、一般コマンドがステータス読出コマンドであると判別し、「CS」が含まれていない場合は、ステータス読出コマンドでないと判別する。
S119において、受信した一般コマンドがステータス読出コマンドであると判別したとき(S119がYES判定の場合)、制御LSI200は、ステータス読出コマンド受信時処理を行う(S120)。この処理で、制御LSI200は、RAM204の第1検知結果格納領域に記憶されている開閉履歴情報を取得する。そして、制御LSI200は、一般コマンド受信時処理を終了する。
一方、受信した一般コマンドがステータス読出コマンドでないと判別したとき(S119がNO判定の場合)、制御LSI200は、一般コマンド受信時処理を終了する。
(10)乱数コマンド受信時処理
次に、一般コマンド受信時処理(図30参照)のS106における乱数コマンド受信時処理について、図31を参照して説明する。
図31は、本実施形態における乱数コマンド受信時処理の例を示すフローチャートである。
乱数コマンド受信時処理において、制御LSI200は、まず、乱数発生回路208に乱数を発生させ、発生させた乱数をRAM204の乱数格納領域に記憶させる(S121)。具体的には、乱数発生回路208であるFRCのカウント値を取得し、式1の演算を行って乱数を発生させる。
乱数=カウント値×カウント値+カウント値・・・式1
式1の演算により算出された乱数は、ASCIIコードに変換され、RAM204の乱数格納領域に記憶される。S121の処理を行う制御LSI200は、特定情報発生手段を構成する。
次いで、制御LSI200は、EEPROM205の秘密鍵格納領域に記憶されている秘密鍵を取得する(S122)。
次いで、制御LSI200は、RAM204の乱数格納領域の乱数と、S122で取得した秘密鍵を用いて、パスワードを生成するパスワード生成処理を行う(S123)。具体的には、制御LSI200は、16バイトの秘密鍵と8バイトの乱数を基にパスワードとしてのハッシュ値を算出する(例えば、MD5,SHA−0,SHA−1,SHA−2,SHA−3等)。S123の処理を行う制御LSI200は、監視側認証情報生成手段を構成する。
次いで、制御LSI200は、生成したパスワードをEEPROM205のパスワード格納領域に記憶させる(S124)。そして、制御LSI200は、乱数コマンド受信時処理を終了する。
(11)ログインコマンド受信時処理
次に、一般コマンド受信時処理(図30参照)のS108におけるログインコマンド受信時処理について、図32を参照して説明する。
図32は、本実施形態におけるログインコマンド受信時処理の例を示すフローチャートである。
ログインコマンド受信時処理において、制御LSI200は、ログイン不許可タイマは計測中か否かを判別する(S131)。ここで、ログイン不許可タイマとは、ログインを許可しない状態が維持する時間を計測するタイマである。ログイン不許可タイマの計測は、不正ログインを防止するために、後述のS134の処理でパスワードが一致しないと判別した場合に、開始される。なお、本実施形態において、ログイン不許可タイマの計測は、RTC201を用いて行われ、長さは1時間に設定されている。具体的には、制御LSI200は、計測を開始した時刻をRAM204に記憶させ、S131の処理において、RTC201から取得した現在時刻と、計測を開始した時刻との差が、1時間未満の場合に、ログイン不許可タイマは計測中であると判別する。一方、制御LSI200は、RTC201から取得した現在時刻と、計測を開始した時刻との差が、1時間以上の場合に、ログイン不許可タイマは計測中でないと判別する。
S131において、ログイン不許可タイマは計測中であると判別したとき(S131がYES判定の場合)、制御LSI200は、ログインコマンド受信時処理を終了する。一方、S131において、ログイン不許可タイマは計測中でないと判別したとき(S131がNO判定の場合)、制御LSI200は、RAM204の受信バッファからホスト機器から受信したパスワードを取得する(S132)。
次いで、制御LSI200は、S132で取得したパスワードとEEPROM205のパスワード格納領域に記憶されているパスワードとを比較する(S133)。
次いで、制御LSI200は、S133の比較の結果、これらのパスワードが一致するか否かを判別する(S134)。S134の処理を行う制御LSI200は、認証情報判定手段を構成する。
S134において、これらのパスワードが一致すると判別するとき(S134がYES判定の場合)、制御LSI200は、RAM204のログインフラグ格納領域に記憶されているログインフラグをONに設定する(S135)。その後、制御LSI200は、ログインコマンド受信時処理を終了する。
S134において、これらのパスワードが一致しないと判別するとき(S134がNO判定の場合)、制御LSI200は、ログイン不許可タイマの計測を開始する(S136)。その後、制御LSI200は、ログインコマンド受信時処理を終了する。
(12)送信処理
次に、ドア監視ユニットメイン処理(図21参照)のS5における送信処理について、図33を参照して説明する。
図33は本実施形態における送信処理の例を示すフローチャートである。
送信処理において、制御LSI200は、まず、RAM204の受信完了フラグ格納領域に記憶されている受信完了フラグがONに設定されているか否かを判別する(S141)。S141において、受信完了フラグがONでないと判別したとき(S141がNO判定の場合)、制御LSI200は、送信処理を終了し、処理をドア監視ユニットメイン処理(図21参照)のS6に戻す。
一方、S141において、受信完了フラグがONに設定されていると判別したとき(S141がYES判定の場合)。制御LSI200は、受信完了フラグをOFFに設定する(S142)。
次いで、制御LSI200は、受信コマンドは特権コマンドかであるか否かを判別する(S143)。具体的には、制御LSI200は、受信バッファを参照し、受信したデータに特権コマンドのID(図13に示すSI,ST,SA,SB,SC,SWのいずれか)が含まれている場合は、受信コマンドは特権コマンドであると判別し、含まれていない場合は、特権コマンドでないと判別する。
S143において、受信コマンドは特権コマンドであると判別したとき(S143がYES判定の場合)、制御LSI200は、特権アンサ送信処理を行う(S144)。特権アンサ送信処理において、制御LSI200は、受信した特権コマンドに応じた各種送信処理を行う。特権アンサ送信処理の具体的な内容は、後で図34を参照して説明する。その後、制御LSI200は、送信処理を終了し、処理をドア監視ユニットメイン処理(図21参照)のS6に戻す。
S143において、受信コマンドは特権コマンドでないと判別したとき(S143がNO判定の場合)、制御LSI200は、一般アンサ送信処理を行う(S145)。一般アンサ送信処理において、制御LSI200は、受信した一般コマンドに応じた各種送信処理を行う。一般アンサ送信処理の具体的な内容は、後で図35を参照して説明する。その後、制御LSI200は、送信処理を終了し、処理をドア監視ユニットメイン処理(図21参照)のS6に戻す。
(13)特権アンサ送信処理
次に、送信処理(図32参照)のS144における特権アンサ送信処理について、図34を参照して説明する。
図34は本実施形態における特権アンサ送信処理の例を示すフローチャートである。
特権アンサ送信処理において、制御LSI200は、まず、受信したコマンドが秘密鍵設定コマンドであるか否かを判別する(S151)。制御LSI200は、RAM204の受信バッファを参照し、受信したデータに秘密鍵設定コマンドのIDである「SW」が含まれている場合は、特権コマンドが秘密鍵設定コマンドであると判別し、「SW」が含まれていない場合は、秘密鍵設定コマンドでないと判別する。
S151において、受信したコマンドが秘密鍵設定コマンドでないと判別したとき(S151がNO判定の場合)、制御LSI200は、後述のS155の処理を行う。
一方、S151において、受信したコマンドが秘密鍵設定コマンドであると判別したとき(S151がYES判定の場合)、制御LSI200は、受信バッファに記憶されている秘密鍵、すなわち受信した秘密鍵設定コマンドに付随する秘密鍵と、EEPROM205の秘密鍵格納領域に記憶されている秘密鍵とが一致するか否かを判別する(S152)。
S152の処理において両者が一致すると判別したとき(S152がYES判定の場合)、設定結果OKの旨のアンサをホスト機器に送信する送信処理を行う(S153)。そして、制御LSI200は、特権アンサ送信処理を終了する。
S152の処理において両者が一致しないと判別したとき(S152がNO判定の場合)、設定結果NGの旨のアンサをホスト機器に送信する送信処理を行う(S154)。そして、制御LSI200は、特権アンサ送信処理を終了する。
ここで、S151の説明に戻って、受信したコマンドが秘密鍵設定コマンドでないと判別したとき(S151がNO判定の場合)、制御LSI200は、RAM204の受信バッファを参照し、受信した特権コマンドを特定する(S155)。
次いで、制御LSI200は、S155で特定したコマンドに対応するアンサをホスト機器に送信する送信処理(S156)を行う。そして、制御LSI200は、特権アンサ送信処理を終了する。なお、S153,S154においては、受信した特権コマンドのIDに対応するアンサ用のIDに「設定結果OK」か「設定結果NG」の情報が付随したアンサがホスト機器に送信される。しかし、S156では、アンサ用のIDに付随させる情報がないため、受信した特権コマンドのIDに対応するアンサ用のIDのみがアンサとしてホスト機器に送信される。
(14)一般アンサ送信処理
次に、送信処理(図33参照)のS145における一般アンサ送信処理について、図35を参照して説明する。
図35は本実施形態における一般アンサ送信処理の例を示すフローチャートである。
一般コマンド受信時処理において、制御LSI200は、まず、受信した一般コマンドがシリアルIDコマンドであるか否かを判別する(S161)。S161において、受信した一般コマンドがシリアルIDコマンドであると判別したとき(S161がYES判定の場合)、制御LSI200は、シリアルIDコマンド受信時処理(図30のS102)で取得したシリアルIDをホスト機器に送信するアンサ送信処理(シリアルID)を行う(S162)。その後、制御LSI200は、一般アンサ送信処理を終了する。
一方、S161において、受信した一般コマンドがシリアルIDコマンドでないと判別したとき(S161がNO判定の場合)、制御LSI200は、受信コマンドがバージョン要求コマンドであるか否かを判別する(S163)。S163において、受信した一般コマンドがバージョン要求コマンドであると判別したとき(S163がYES判定の場合)、制御LSI200は、バージョン要求コマンド受信時処理(図30のS104参照)で取得したプログラムバージョンをホスト機器に送信するアンサ送信処理(バージョン)を行う(S164)。その後、制御LSI200は、一般アンサ送信処理を終了する。
一方、S163において、受信した一般コマンドがバージョン要求コマンドでないと判別したとき(S163がNO判定の場合)、制御LSI200は、受信コマンドが乱数コマンドであるか否かを判別する(S165)。制御LSI200は、S165において、受信した一般コマンドが乱数コマンドであると判別したとき(S165がYES判定の場合)、制御LSI200は、乱数コマンド受信時処理(図31参照)で発生させ、RAM204の乱数格納領域に記憶させた乱数をホスト機器に送信するアンサ送信処理(乱数)を行う(S166)。S166の処理を行う制御LSI200は、特定情報送信手段を構成する。その後、制御LSI200は、一般アンサ送信処理を終了する。
一方、S165において、受信した一般コマンドが乱数コマンドでないと判別したとき(S165がNO判定の場合)、制御LSI200は、受信コマンドがログインコマンドであるか否かを判別する(S167)。S167において、受信した一般コマンドがログインコマンドであると判別したとき(S167がYES判定の場合)、制御LSI200は、RAM204のログインフラグ格納領域を参照し、ログインコマンド受信時処理(図32参照)で設定されたログインフラグの状態(ON又はOFF)を示す情報をホスト機器に送信するアンサ送信処理(ログインフラグの状態)を行う(S168)。その後、制御LSI200は、一般アンサ送信処理を終了する。
一方、S167において、受信した一般コマンドがログインコマンドでないと判別したとき(S167がNO判定の場合)、制御LSI200は、受信コマンドがログアウトコマンドであるか否かを判別する(S169)。S169において、受信した一般コマンドがログアウトコマンドであると判別したとき、制御LSI200は、RAM204のログインフラグ格納領域を参照し、ログアウトコマンド受信時処理(図30のS110参照)で設定されたログインフラグの状態(OFF)を示す情報をホスト機器に送信するアンサ送信処理(ログインフラグの状態)を行う(S170)。その後、制御LSI200は、一般アンサ送信処理を終了する。
一方、S169において、受信した一般コマンドがログアウトコマンドでないと判別したとき(S169がNO判定の場合)、制御LSI200は、受信コマンドが時計読出コマンドであるか否かを判別する(S171)。S171において、受信した一般コマンドが時計読出コマンドであると判別したとき(S171がYES判定の場合)、制御LSI200は、時計読出コマンド受信時処理(図30のS112)で取得した現在時刻をホスト機器に送信するアンサ送信処理(RTC)を行う(S172)。その後、制御LSI200は、一般アンサ送信処理を終了する。
一方、S171において、受信した一般コマンドが時計読出コマンドでないと判別したとき(S171がNO判定の場合)、制御LSI200は、受信コマンドが最新番号コマンドであるか否かを判別する(S173)。S173において、受信した一般コマンドが最新番号コマンドであると判別したとき(S173がYES判定の場合)、制御LSI200は、最新番号コマンド受信時処理(図30のS114)で取得した最新番号をホスト機器に送信するアンサ送信処理(最新番号)を行う(S174)。そして、制御LSI200は、一般アンサ送信処理を終了する。
一方、S173において、受信した一般コマンドが最新番号コマンドでないと判別したとき(S172がNO判定の場合)、制御LSI200は、受信コマンドが開閉履歴情報読出コマンドであるか否かを判別する(S175)。S175において、受信した一般コマンドが開閉履歴情報読出コマンドであると判別したとき(S175がYES判定の場合)、制御LSI200は、開閉履歴情報読出コマンド受信時処理(図30のS116参照)で取得した、開閉履歴情報読出コマンドに付随する番号に対応するEEPROM205の開閉履歴格納領域に記憶されている開閉履歴情報を、ホスト機器に送信するアンサ送信処理(開閉履歴情報)を行う(S176)。そして、制御LSI200は、一般アンサ送信処理を終了する。
一方、S175において、受信した一般コマンドが開閉履歴情報読出コマンドでないと判別したとき(S175がNO判定の場合)、制御LSI200は、受信コマンドが開閉履歴情報数コマンドであるか否かを判別する(S177)。S177において、受信した一般コマンドが開閉履歴情報数コマンドであると判別したとき(S177がYES判定の場合)、制御LSI200は、開閉履歴情報数コマンド受信時処理(図30のS118)で取得した履歴カウンタの値をホスト機器に送信するアンサ送信処理(開閉履歴情報数)を行う(S178)。そして、制御LSI200は、一般アンサ送信処理を終了する。
一方、S177において、受信した一般コマンドが開閉履歴情報数コマンドでないと判別したとき(S177がNO判定の場合)、制御LSI200は、受信コマンドがステータス読出コマンドであるか否かを判別する(S179)。S179において、受信した一般コマンドがステータス読出コマンドであると判別したとき(S179がYES判定の場合)、制御LSI200は、ステータス読出コマンド受信時処理(図30のS120)で取得したRAM204の第1検知結果格納領域に記憶されている開閉履歴情報を、ホスト機器に送信するアンサ送信処理(ステータス)を行う(S180)。そして、制御LSI200は、一般アンサ送信処理を終了する。
一方、受信した一般コマンドがステータス読出コマンドでないと判別したとき(S179がNO判定の場合)、制御LSI200は、一般アンサ送信処理を終了する。
なお、一般アンサ送信処理における受信したコマンドの種別を判別する処理(S161,S163,S165,S167,S169,S171,S173,S175,S177,S179)において、制御LSI200は、受信バッファを参照し、受信したデータに含まれているコマンドのIDに基づいてコマンドの種別を判別する。
なお、一般アンサ送信処理におけるアンサ送信処理(S162,S164,S166,S168,S170,S172,S174,S176,S178,S180)では、受信した一般コマンドのIDに対応するアンサ用のIDに、各種情報(図35のS162,S164,S166,S168,S170,S172,S174,S176,S178,S180にかっこ書きで示した情報)が付随したアンサがホスト機器に送信される。
<ホスト機器が行う処理>
次に、ホスト機器が行う各種処理について、ホスト機器の一例である副制御基板72が備えるサブCPU102が行う処理を例に、図36〜図51を参照して、説明する。
ここで、サブSRAM103bには、EEPROM205と同様の、シリアルID格納領域、秘密鍵格納領域、履歴カウンタ格納領域、最新番号格納領域、128個の開閉履歴情報格納領域、プログラムバージョン格納領域が形成されている。サブSRAM103bのシリアルID格納領域には、予め24hドア監視ユニット63のシリアルIDが記憶されている。サブSRAM103bの秘密鍵格納領域には、24hドア監視ユニット63のEEPROM205が記憶している秘密鍵と同じ秘密鍵が記憶されている。また、プログラムバージョン格納領域には、予め24hドア監視ユニット63で実行されるプログラムのバージョンが記憶されている。また、履歴カウンタ格納領域、最新番号格納領域、128個の開閉履歴情報格納領域には、24hドア監視ユニット63から受信した履歴カウンタの値、最新番号、開閉履歴情報が記憶される。サブSRAM103bは、設定側記憶手段を構成する。
また、サブDRAM103aには、RAM204の受信完了フラグ格納領域、サムカウンタ格納領域、ETX受信フラグ格納領域、受信カウンタ格納領域と同様のサブ受信完了フラグ格納領域、サブサムカウンタ格納領域、サブETX受信フラグ格納領域、サブ受信カウンタ格納領域が形成されている。また、サブDRAM103aには、RAM204と同様の、パスワード格納領域、送信バッファ、受信バッファが形成されている。また、サブDRAM103aには、24hドア監視ユニット63から送信されたステータスコマンドのアンサに付随する開閉履歴情報を格納するステータス格納領域が形成されている。また、サブDRAM103aには、後述のドア監視タスク(図41参照)のS232で1が加算される第1ドア監視カウンタの値が記憶される第1ドア監視カウンタ格納領域と、同タスクのS235で1が加算される第2ドア監視カウンタの値が記憶される第2ドア監視カウンタ格納領域が形成されている。また、サブDRAM103aには、後述する特権フラグ格納領域が形成されている。なお、サブDRAM103aは、設定側認証情報記憶手段を構成する。
(1)ホールメニュータスク
まず、サブCPU102が行うホールメニュータスクについて、図36を参照して説明する。
図36は、本実施形態におけるホールメニュータスクの例を示すフローチャートである。
ホールメニュータスクは、パチスロ1の設定を変更する際又はパチスロ1の設定を確認する際に使用するホールメニューを制御するタスクである。ホールメニュータスクは、サブCPU102によって、所定の周期、本実施形態では所定時間、例えば33msec毎に行われる。
まず、サブCPU102は、設定キーはオフからオンになったか否かを判別する(S201)。この処理では、設定用鍵型スイッチ56が操作されたことによってメインCPU93から送信される設定変更開始コマンドをサブCPU102が受信すると、サブCPU102は、設定キーはオフからオンになったと判別する。
S102において、設定キーはオフからオンになっていないと判別したとき(S102がNO判定の場合)、サブCPU102は、S101の処理を再度行う。すなわち、サブCPU102は、設定キーはオフからオンになったと判別するまでS201の処理を繰り返す。
S201において、設定キーはオフからオンになったと判別したとき(S201がYES判定の場合)、サブCPU102は、液晶表示装置11にホールメニュー画面(図示省略)を表示するホールメニュー表示処理を行う(S202)。
各種情報・設定の確認や各種設定の変更を行うために、操作者は、ホールメニュー画面が液晶表示装置11に表示されているときに、エンターボタン25とセレクトボタン26(図2参照)を操作して、ホールメニュー画面に表示されているホールメニューの内、一つのホールメニューを選択する。
なお、サブCPU102は、ホールメニュー画面に、選択可能なホールメニューである[時刻設定]、[トータルメダル情報]、[設定変更・確認履歴]、[エラー情報履歴]、[監視履歴]、[警告表示設定]、[報知設定]、「メンテナンス」をそれぞれ矩形のボタン状に表示する。
S202のホールメニュー表示処理後、サブCPU102は、ホールメニュー処理を行う(S203)。この処理では、サブCPU102は、選択されたホールメニューに応じた処理を行う。ホールメニュー処理の具体的な内容については、後で図37を参照して説明する。
次に、サブCPU102は、設定キーはオフになったか否かを判別する(S204)。この処理では、設定用鍵型スイッチ56が操作されたことによってメインCPU93から送信されり設定変更終了コマンドをサブCPU102が受信すると、サブCPU102は、設定キーはオンからオフになったと判別する。
S204において、設定キーはオンからオフになっていないと判別したとき(S204がNO判定の場合)、サブCPU102は、処理をS203に戻す。
S204において、設定キーはオンからオフになったと判別したとき(S204がYES判定の場合)、サブCPU102は、ホールメニュー処理(S203)において、設定変更が行われたか否かを判別する(S205)。
S205において、設定変更が行われたと判別したとき(S205がYES判定の場合)、サブCPU102は、設定変更に伴う各種初期化を行う設定変更初期化処理を行い(S206)、処理をS207に移す。一方、S205において、設定変更が行われていないと判別したとき(S205がNO判定の場合)、サブCPU102は、処理をS207に移す。
S207において、サブCPU102は、遊技画面復帰表示処理を行う(S207)。この処理では、サブCPU102は、液晶表示装置11に、遊技を行う際に表示する演出用の映像や、パチスロ1が所定期間操作されなかった場合に表示する初期映像を表示する。そして、サブCPU102は、S207の処理後、処理をS201に移す。
(2)ホールメニュー処理
次に、図37を参照して、ホールメニュータスク(図36参照)におけるホールメニュー処理(S203)について説明する。
図37は、本実施形態におけるホールメニュー処理の例を示すフローチャートである。
ホールメニュー処理において、サブCPU102は、まず、操作者によるエンターボタン25及びセレクトボタン26の操作に基づいて各種情報・設定の確認や各種設定の変更を行う対象であるホールメニューを選択するホールメニュー選択処理を行う(S211)。
次に、サブCPU102は、S211で選択したホールメニューは[時刻設定]か否かを判別する(S212)。S212において、選択したホールメニューが[時刻設定]であると判別した場合(S212がYES判定の場合)、サブCPU102は、時刻設定処理を行う(S213)。この処理では、サブCPU102は、液晶表示装置11に時刻設定画面(図示省略)を表示し、操作者に設定されている時刻の確認及び変更を可能とする。
S211で選択したホールメニューが[時刻設定]でないと判別した場合(S212がNO判定の場合)、サブCPU102は、S211で選択したホールメニューは[トータルメダル情報]か否かを判別する(S214)。選択したホールメニューが[トータルメダル情報]であると判別した場合(S214がYES判定の場合)、サブCPU102は、トータルメダル情報処理を行う(S215)。この処理では、サブCPU102は、液晶表示装置11にトータルメダル情報画面(図示省略)を表示し、操作者にトータルメダル情報の確認を可能とする。
S211で選択したホールメニューが[トータルメダル情報]でないと判別した場合(S214がNO判定の場合)、サブCPU102は、S211で選択したホールメニューは[設定変更・確認]か否かを判別する(S216)。選択したホールメニューが[設定変更・確認]であると判別した場合(S216がYES判定の場合)、サブCPU102は、設定変更・確認処理を行う(S217)。この処理では、サブCPU102は、液晶表示装置11に設定変更・確認画面(図示省略)を表示し、操作者に設定の確認及び変更を可能とする。
S211で選択したホールメニューが[設定変更・確認]でないと判別した場合(S216がNO判定の場合)、サブCPU102は、S211で選択したホールメニューは[エラー情報履歴]か否かを判別する(S218)。選択したホールメニューが[エラー情報履歴]であると判別した場合(S218がYES判定の場合)、サブCPU102は、エラー情報履歴処理を行う(S219)。この処理では、サブCPU102は、液晶表示装置11にエラー情報履歴画面(図示省略)を表示し、操作者にエラー情報履歴の確認や変更を可能とする。
S211で選択したホールメニューが[エラー情報履歴]でないと判別した場合(S218がNO判定の場合)、サブCPU102は、S211で選択したホールメニューは[監視履歴]か否かを判別する(S220)。選択したホールメニューが[監視履歴]であると判別した場合(S220がYES判定の場合)、サブCPU102は、監視履歴処理を行う(S221)。この処理では、サブCPU102は、液晶表示装置11に、フロントドア2bの開閉履歴情報を示す監視履歴画面を表示し、操作者に監視履歴の確認を可能とする。監視履歴画面の具体的な内容は、後で図38を参照して説明する。
S221で選択したホールメニューが[監視履歴]でないと判別した場合(S220がNO判定の場合)、サブCPU102は、S211で選択したホールメニューは[警告表示設定]か否かを判別する(S222)。選択したホールメニューが[警告表示設定]であると判別した場合(S222がYES判定の場合)、サブCPU102は、警告表示設定処理を行う(S223)。この処理では、サブCPU102は、液晶表示装置11に警告表示設定画面を表示し、操作者に警告表示設定の確認及び変更を可能とする。警告表示設定の具体的な内容は、後で図39を参照して説明する。S223の処理を行うサブCPU102は、期間設定手段を構成する。
S211で選択したホールメニューが[警告表示設定]でないと判別した場合(S222がNO判定の場合)、サブCPU102は、S211で選択したホールメニューは[報知設定]か否かを判別する(S224)。選択したホールメニューが[報知設定]であると判別した場合(S224がYES判定の場合)、サブCPU102は、報知設定処理を行う(S225)。この処理では、サブCPU102は、液晶表示装置11に報知設定画面(図示省略)を表示し、操作者に報知設定の確認及び変更を可能とする。
S211で選択したホールメニューが[報知設定]でないと判別した場合(S224がNO判定の場合)、サブCPU102は、S211で選択したホールメニューは[メンテナンス]か否かを判別する(S226)。選択したホールメニューが[メンテナンス]であると判別した場合(S226がYES判定の場合)、サブCPU102は、メンテナンス処理を行う(S227)。
S211で選択したホールメニューが[メンテナンス]でないと判別した場合(S226がNO判定の場合)、サブCPU102は、ホールメニュー処理を終了し、処理をホールメニュータスク(図36参照)のS204に戻す。
また、S215、S217、S219、S221、S223、S225、S227の処理後、サブCPU102は、ホールメニュー処理を終了し、処理をホールメニュータスク(図36参照)のS204に戻す。
次に、サブCPU102がホールメニュー処理の監視履歴処理(図37のS221)で液晶表示装置11に表示する監視履歴画面について、図38を参照して説明する。
図38は、本実施形態における監視履歴画面の例を示す図である。
図38に示すように、監視履歴画面の略中央には、監視履歴表が配置されている。監視履歴表は、サブSRAM103bに記憶されている開閉履歴情報の一覧表である。監視履歴表では、10個の開閉履歴情報が表示可能である。
また、監視履歴画面の左下部には、該画面における操作方法が表示されている。表示される操作方法として、監視履歴表の任意の行を指定するカーソル(図示省略)がセレクトボタン26の押下によって移動する(「カーソル移動」)旨、また、エンターボタン25を押下することで監視履歴画面の表示を終了する(「戻る」)旨が表示されている。
監視履歴画面における監視履歴表の任意の行を指定するカーソルは、セレクトボタン26の上部が押下されることによって上方へ移動し、セレクトボタン26の下部が押下されることによって下方へ移動する。
図38に示す監視履歴画面には、サブSRAM103bが記憶する最新10個の開閉履歴情報が表示されているが、セレクトボタン26の操作、具体的には、監視履歴表の最下行にカーソルが位置している状態で、セレクトボタン26の下部を押下することによって、サブSRAM103bが記憶する最新10個の開閉履歴情報よりも前の開閉履歴情報を表示させることができる。
なお、監視履歴画面に表示する開閉履歴情報の数は適宜設定可能である。
また、監視履歴画面の上方には、24hドア監視ユニット63のステータス情報(「UNIT STATUS」)、シリアルID(「UNIT SERIAL」)、プログラムバージョン(「UNIT VERSION」)が表示されている。これらの情報は、サブCPU102が、後述のドア監視タスク(図41参照)で起動シーケンスを実行し、24hドア監視ユニット63から取得するステータス情報、シリアルID、プログラムバージョンが表示される。
次に、サブCPU102がホールメニュー処理の警告表示設定処理(図37のS223)の具体的な内容を、図39を参照して説明する。
図39は、本実施形態における警告表示設定画面の例を示す図である。
ここで、本実施形態のパチスロ1では、指定時間、例えばパチスロ1の電源がOFFになっている間に発生したフロントドア2bの開閉を示す開閉履歴情報を、パチスロ1の起動時に表示する警告表示を行う。警告表示設定では、この指定時間と、警告表示を行う時間(表示時間)を設定する。なお、警告表示時に液晶表示装置11に表示される警告表示画面の具体的な内容は、後で図40を参照して説明する。
上述のように、ホールメニュー処理の警告表示設定処理(図37のS223)において、サブCPU102は、図39に示す警告表示設定画面を表示する。警告表示設定画面の上方には、「ここで設定した指定時間の監視履歴が起動時に警告表示されます。」という文字列が表示される。また、警告表示設定画面の略中央には、初期値又は前回設定した表示時間と指定時間が表示されている。
図39に示すように、表示時間は、1秒〜99分59秒の範囲で、設定可能となっている。表示時間は、4桁(分2桁、秒2桁)で表示されている。操作者は、セレクトボタン26(図2参照)の左部又は右部を押して、変更したい桁にカーソル(点線で表示)を合わせ、セレクトボタン26の上部を押して表示されている数字を増加させ、又は、下部を押して表示されている数字を減少させて、表示時間を変更させる。
また、図39に示すように、指定時間の開始時間及び終了時間が、それぞれ4桁(時2桁、分2桁で表示)で表示されている。操作者は、セレクトボタン26(図2参照)の左部又は右部を押して、変更したい桁にカーソル(点線で表示)を合わせ、セレクトボタン26の上部を押して表示されている数字を増加させ、又は、下部を押して表示されている数字を減少させて、指定時間の開始時間及び終了時間を変更させる。なお、操作者は、表示時間の最も右に位置する桁にカーソルが位置している状態で、セレクトボタン26の右部を押すことで、カーソルを、指定時間における開始時間の最も左の桁に移動させることができる。また、指定時間の開始時間における最も右に位置する桁にカーソルが位置している状態で、セレクトボタン26の右部を押すことで、カーソルを、指定時間における終了時間の最も左の桁に移動させることができる。
警告表示画面の表示中に、エンターボタン25が押されると、サブCPU102は、エンターボタン25が押されたときに警告表示画面に表示されている表示時間並びに指定時間の開始時間及び終了時間をサブSRAM103bに記憶させる。また、サブCPU102は、警告表示画面の表示を終了させる。また、サブCPU102は、警告表示画面を表示させた後、定期的にサブRTC108から現在時刻を取得し、警告表示画面を表示させてからの経過時間がサブSRAM103bに記憶されている表示時間に達した時、警告表示画面の表示を終了させる。
なお、図39に示すように、警告表示画面の左下部には、該画面における操作方法が表示されている。
次に、警告表示時に液晶表示装置11に表示される警告表示画面について、図40を参照して説明する。
図40は、本実施形態における警告表示画面の例を示す図である。
図40に示すように、警告表示画面には、警告表示設定処理で設定した指定時間内に発生したフロントドア2bの開閉を示す開閉履歴情報が表示される。また、警告表示画面の左下部には、該画面における操作方法が表示されている。
サブCPU102は、パチスロ1の起動時に実行が開始される後述のドア監視タスク(図41参照)において、全履歴取得シーケンスが実行された後に、サブSRAM103bを参照し、記憶されている開閉履歴情報から、時間情報が指定時間内の開閉履歴情報を取得(抽出)し、液晶表示装置11に取得した開閉履歴情報を示す警告表示画面を表示させる。なお、起動時に全履歴取得シーケンスを実行し、開閉履歴情報を取得するサブCPU102は、開閉履歴取得手段を構成する。また、サブSRAM103bに記憶されている開閉履歴情報から、時間情報が指定時間内の開閉履歴情報を取得(抽出)するサブCPU102は、開閉履歴抽出手段を構成する。
なお、サブSRAM103bに時間情報が指定時間内の開閉履歴情報がない場合は、開閉履歴情報がない警告表示画面が液晶表示装置11に表示される。この場合は、当該警告表示画面を視た者は、指定時間内にフロントドア2bの開閉がなかったことを把握できる。
(3)ドア監視タスク
次に、図41を参照して、ドア監視タスクについて説明する。
図41は、本実施形態におけるドア監視タスクの例を示すフローチャートである。
ドア監視タスクは、パチスロ1の起動時に実行が開始される。
ドア監視タスクにおいて、サブCPU102は、まず、上述の起動シーケンスと、全履歴取得シーケンスを実行対象のシーケンスとしてセットする(S231)。
次いで、サブCPU102は、第1ドア監視カウンタを1加算する(S232)。第1ドア監視カウンタの値は、サブDRAM103aの第1ドア監視カウンタ格納領域に記憶される。
次いで、サブCPU102、第1ドア監視カウンタの値が25以上か否かを判別する(S233)。S233において、サブCPU102が、第1ドア監視カウンタの値が25以上でないと判別したとき(S233がNO判定の場合)、サブCPU102は、後述のS240の処理を行う。一方、S233において、第1ドア監視カウンタの値が25以上であると判別したとき(S233がYES判定の場合)、サブCPU102は、第1ドア監視カウンタをクリアする(S234)。
次いで、サブCPU102は、第2ドア監視カウンタを1加算する(S235)。第2ドア監視カウンタの値は、サブDRAM103aの第2ドア監視カウンタ格納領域に記憶される。
次いで、サブCPU102、第2ドア監視カウンタの値が7200以上か否かを判別する(S236)。S236において、サブCPU102が、第2ドア監視カウンタの値が7200以上であると判別したとき(S236がYES判定の場合)、サブCPU102は、実行対象のシーケンスとして、第2状態検知シーケンスをセットする(S237)。すなわち、S231の処理で起動シーケンスと全履歴取得シーケンスにセットした実行対象のシーケンスを、第2状態検知シーケンスに変更する。
次いで、サブCPU102は、第2ドア監視カウンタの値をクリアする(S238)。そして、サブCPU102は、後述のS240の処理を行う。
一方、S236において、第2ドア監視カウンタの値が7200以上でないと判別したとき(S236がNO判定の場合)、サブCPU102は、実行対象のシーケンスとして、第1状態検知シーケンスをセットする(S239)。すなわち、S231の処理で起動シーケンスと全履歴取得シーケンスにセットした実行対象のシーケンスを、第1状態検知シーケンスに変更する。そして、サブCPU102は、後述のS240の処理を行う。
S240において、サブCPU102は、シーケンス制御処理を行う(S280)。この処理において、サブCPU102は、S231(図16のNo1とNo4)、S237(図16のNo2、条件によりNo3まで)又はS239(図16のNo12)において実行対象としてセットしたシーケンスを実行する。
次に、サブCPU102は、リクエストがあるか否かを判別する(S241)。リクエストとは、サブCPU102が24hドア監視ユニット63に所定の動作を要求することであり、所定の契機(所定期間の経過など)や操作者からの入力に基づいて発生する。サブCPU102は、リクエストが発生すると、発生したリクエストに応じた特権コマンド又は一般コマンドを24hドア監視ユニット63に送信する。S241において、リクエストがないと判別したとき(S241がNO判定の場合)、サブCPU102は、後述のS243の処理を行う。
一方、S241において、リクエストがあると判別したとき(S241がYES判定の場合)、サブCPU102は、ドア監視送信処理を行う(S242)。ドア監視送信処理の具体的な内容については、後で図42を参照して説明する。そして、サブCPU102は、後述のS243の処理を行う。
S243において、サブCPU102は、ドア監視受信処理を行う(S243)。ドア監視受信処理において、サブCPU102は、24hドア監視ユニット63からアンサを受信する。ドア監視受信処理の具体的な内容については、後で図46を参照して説明する。
S243の後、サブCPU102は、処理をS232に戻す。以降、サブCPU102は、S232〜S243の処理を20msec毎に繰り返す。したがって、本実施形態において、第1ドア監視カウンタが25以上になるのは、500msecである。このため、サブCPU102は、500msec毎に第1状態検知シーケンスを実行する。ただし、500msecの周期のタイミングであっても、第2状態検知シーケンスを実行するときは、第1状態検知シーケンスは行わない。
また、本実施形態において、500msec毎に1加算される第2ドア監視カウンタが7200以上になるのは、3600000msec(1時間)である。このため、サブCPU102は、1時間毎に第2状態検知シーケンスを実行する。なお、S233で第1ドア監視カウンタと比較する値及びS237で第2ドア監視カウンタと比較する値は、適宜設定可能である。すなわち、第1状態検知シーケンス及び第2状態検知シーケンスの実行する周期は適宜設定可能である。
次に、ドア監視タスクのドア監視送信処理(図41のS242)の具体的な内容を、図42を参照して説明する。
図42は、本実施形態におけるドア監視送信処理の例を示すフローチャートである。
ドア監視送信処理において、サブCPU102は、リクエストは特権コマンドであるか否かを判別する(S251)。すなわち所定の契機(所定期間の経過など)や操作者からの入力に基づいて発生したリクエストが特権コマンドに係るリクエストであるか否かを判別する。
S251において、リクエストは特権コマンドでないと判別したとき(S251がNO判定の場合)、サブCPU102は、後述のS254の処理を行う。一方、S251において、リクエストは特権コマンドであると判別したとき(S251がYES判定の場合)、サブCPU102は、サブDRAM103aの特権フラグ格納領域に記憶されている特権フラグがONに設定されているか否かを判別する(S252)。特権フラグは、サブCPU102が24hドア監視ユニット63からログイン許可(OK)の旨のアンサを受信した場合に、後述のログイン受信時処理(図50参照)において、ONに設定される。
S252において、特権フラグがONに設定されていないと判別したとき(S252がNO判定の場合)、サブCPU102は、ドア監視送信処理を終了する。一方、S252において、特権フラグがONに設定されていると判別したとき(S252がYES判定の場合)、サブCPU102は、ドア監視特権コマンド送信処理を行う(S253)。この処理で、サブCPU102は、各種特権コマンドを24hドア監視ユニット63に送信する。ドア監視特権コマンド送信処理の具体的内容については、後で図43を参照して説明する。
ここで、S251の処理の説明に戻って、リクエストは特権コマンドでないと判別したとき(S251がNO判定の場合)、サブCPU102は、ドア監視一般コマンド送信処理を行う(S254)。この処理で、サブCPU102は、各種一般コマンドを24hドア監視ユニット63に送信する。ドア監視一般コマンド送信処理の具体的内容については、後で図44を参照して説明する。
(4)ドア監視特権コマンド送信処理
次に、サブCPU102がドア監視送信処理のドア監視特権コマンド送信処理(図42のS253)の具体的な内容を、図43を参照して説明する。
図43は、本実施形態におけるドア監視特権コマンド送信処理の例を示すフローチャートである。
ドア監視特権コマンド送信処理において、サブCPU102は、リクエストに係る特権コマンドが初期化コマンドであるか否かを判別する(S261)。S261において、リクエストに係る特権コマンドが初期化コマンドであると判別したとき(S261がYES判定の場合)、サブCPU102は、初期化コマンドを24hドア監視ユニット63に送信するドア監視コマンド送信処理(初期化)を行う(S262)。
一方、S261において、リクエストに係る特権コマンドが初期化コマンドでないと判別したとき(S261がNO判定の場合)、サブCPU102は、リクエストに係る特権コマンドが時計セットコマンドであるか否かを判別する(S263)。S263において、リクエストに係る特権コマンドが時計セットコマンドであると判別したとき(S263がYES判定の場合)、サブCPU102は、時計セットコマンドを24hドア監視ユニット63に送信するドア監視コマンド送信処理(RTC)を行う(S264)。なお、この時計セットコマンドには、サブRTC108が計時する時刻(設定側時刻)を示す時刻情報である年、月、日、時、分、秒そして曜日を示す情報(設定側時刻情報)が付随する。なお、サブRTC108が計時する時刻は、例えば、操作者からの入力に基づいて(例えば、ホスト機器が副制御回路101であれば、ホールメニュー処理の時刻設定処理(図37のS213))で変更可能である。
一方、S263において、リクエストに係る特権コマンドが時計セットコマンドでないと判別したとき(S263がNO判定の場合)、サブCPU102は、リクエストに係る特権コマンドが監視間隔時間設定コマンドであるか否かを判別する(S265)。S265において、リクエストに係る特権コマンドが監視間隔時間設定コマンドであると判別したとき(S265がYES判定の場合)、サブCPU102は、監視間隔時間設定コマンドを24hドア監視ユニット63に送信するドア監視コマンド送信処理(間隔時間)を行う(S266)。なお、この監視間隔時間設定コマンドには、例えば、操作者からの入力に基づくカウント数が付随する。
一方、S265において、リクエストに係る特権コマンドが監視間隔時間設定コマンドでないと判別したとき(S265がNO判定の場合)、サブCPU102は、リクエストに係る特権コマンドが記録開始時間設定コマンドであるか否かを判別する(S267)。S267において、リクエストに係る特権コマンドが記録開始時間設定コマンドであると判別したとき(S267がYES判定の場合)、サブCPU102は、記録開始時間設定コマンドを24hドア監視ユニット63に送信するドア監視コマンド送信処理(開始時間)を行う(S268)。なお、この記録開始時間設定コマンドには、例えば、操作者からの入力に基づくカウント数が付随する。
一方、S267において、リクエストに係る特権コマンドが記録開始時間設定コマンドでないと判別したとき(S267がNO判定の場合)、サブCPU102は、リクエストに係る特権コマンドが記録モード設定コマンドであるか否かを判別する(S269)。S269において、リクエストに係る特権コマンドが記録モード設定コマンドであると判別したとき(S269がYES判定の場合)、サブCPU102は、記録モード設定コマンドを24hドア監視ユニット63に送信するドア監視コマンド送信処理(記録設定)を行う(S270)。なお、この記録モード設定コマンドには、例えば、操作者からの入力に基づく記録モードの種別(「常時記録モード」、「無記録モード」)を示す情報が付随する。
一方、S269において、リクエストに係る特権コマンドが記録モード設定コマンドでないと判別したとき(S269がNO判定の場合)、サブCPU102は、リクエストに係る特権コマンドが秘密鍵設定コマンドであるか否かを判別する(S271)。S271において、リクエストに係る特権コマンドが秘密鍵設定コマンドであると判別したとき(S271がYES判定の場合)、サブCPU102は、秘密鍵設定コマンドを24hドア監視ユニット63に送信するドア監視コマンド送信処理(秘密鍵)を行う(S272)。なお、この秘密鍵設定コマンドには、設定に係る秘密鍵が付随する。そして、サブCPU102は、ドア監視特権コマンドを終了し、処理をドア監視タスク(図41参照)のS243に戻す。
また、S262、S264、S266、S268、S270、S272、S227の処理後、サブCPU102は、ドア監視特権コマンドを終了し、処理をドア監視タスク(図41参照)のS243に戻す。
(5)ドア監視一般コマンド送信処理
次に、サブCPU102がドア監視送信処理のドア監視一般コマンド送信処理(図42のS254)の具体的な内容を、図44を参照して説明する。
図44は、本実施形態におけるドア監視一般コマンド送信処理の例を示すフローチャートである。
ドア監視一般コマンド送信処理において、サブCPU102は、リクエストに係る一般コマンドがシリアルIDコマンドであるか否かを判別する(S281)。S281において、リクエストに係る一般コマンドがシリアルIDコマンドであると判別したとき(S281がYES判定の場合)、サブCPU102は、シリアルIDコマンドを24hドア監視ユニット63に送信するドア監視コマンド送信処理(シリアルID)を行う(S282)。
一方、S281において、リクエストに係る一般コマンドがシリアルIDコマンドでないと判別したとき(S281がNO判定の場合)、サブCPU102は、リクエストに係る一般コマンドがバージョン要求コマンドであるか否かを判別する(S283)。S283において、リクエストに係る一般コマンドがバージョン要求コマンドであると判別したとき(S283がYES判定の場合)、サブCPU102は、バージョン要求コマンドを24hドア監視ユニット63に送信するドア監視コマンド送信処理(バージョン要求)を行う(S284)。
一方、S283において、リクエストに係る一般コマンドがバージョン要求コマンドでないと判別したとき(S283がNO判定の場合)、サブCPU102は、リクエストに係る一般コマンドが乱数コマンドであるか否かを判別する(S285)。S285において、リクエストに係る一般コマンドが乱数コマンドであると判別したとき(S285がYES判定の場合)、サブCPU102は、乱数コマンドを24hドア監視ユニット63に送信するドア監視コマンド送信処理(乱数)を行う(S286)。
一方、S285において、リクエストに係る一般コマンドが乱数コマンドでないと判別したとき(S285がNO判定の場合)、サブCPU102は、リクエストに係る一般コマンドがログインコマンドであるか否かを判別する(S287)。S287において、リクエストに係る一般コマンドがログインコマンドであると判別したとき(S287がYES判定の場合)、サブCPU102は、ログインコマンドを24hドア監視ユニット63に送信するドア監視コマンド送信処理(ログイン)を行う(S288)。なお、このログインコマンドには、例えば、後述の乱数受信時処理(図49)において生成され、パスワード格納領域に保存されたパスワードが付随する。S288の処理を行うサブCPU102は、認証情報送信手段を構成する。
一方、S287において、リクエストに係る一般コマンドがログインコマンドでないと判別したとき(S287がNO判定の場合)、サブCPU102は、リクエストに係る一般コマンドがログアウトコマンドであるか否かを判別する(S289)。S289において、リクエストに係る一般コマンドがログアウトコマンドであると判別したとき(S289がYES判定の場合)、サブCPU102は、ログアウトコマンドを24hドア監視ユニット63に送信するドア監視コマンド送信処理(ログアウト)を行う(S290)。
一方、S289において、リクエストに係る一般コマンドがログアウトコマンドでないと判別したとき(S289がNO判定の場合)、サブCPU102は、リクエストに係る一般コマンドが時計読出コマンドであるか否かを判別する(S291)。S291において、リクエストに係る一般コマンドが時計読出コマンドであると判別したとき(S291がYES判定の場合)、サブCPU102は、時計読出コマンドを24hドア監視ユニット63に送信するドア監視コマンド送信処理(時計読出)を行う(S292)。
一方、S291において、リクエストに係る一般コマンドが時計読出コマンドでないと判別したとき(S291がNO判定の場合)、サブCPU102は、リクエストに係る一般コマンドが最新番号コマンドであるか否かを判別する(S293)。S293において、リクエストに係る一般コマンドが最新番号コマンドであると判別したとき(S293がYES判定の場合)、サブCPU102は、最新番号コマンドを24hドア監視ユニット63に送信するドア監視コマンド送信処理(最新番号)を行う(S294)。
一方、S293において、リクエストに係る一般コマンドが最新番号コマンドでないと判別したとき(S293がNO判定の場合)、サブCPU102は、リクエストに係る一般コマンドが開閉履歴情報読出コマンドであるか否かを判別する(S295)。S295において、リクエストに係る一般コマンドが開閉履歴情報読出コマンドであると判別したとき(S295がYES判定の場合)、サブCPU102は、開閉履歴情報読出コマンドを24hドア監視ユニット63に送信するドア監視コマンド送信処理(履歴情報読出)を行う(S296)。なお、この開閉履歴情報読出コマンドには、開閉履歴情報を読出す先の開閉履歴情報格納領域の番号を示す情報が付随する。
一方、S295において、リクエストに係る一般コマンドが開閉履歴情報読出コマンドでないと判別したとき(S295がNO判定の場合)、サブCPU102は、リクエストに係る一般コマンドが開閉履歴情報数コマンドであるか否かを判別する(S297)。S297において、リクエストに係る一般コマンドが開閉履歴情報数コマンドであると判別したとき(S297がYES判定の場合)、サブCPU102は、開閉履歴情報数コマンドを24hドア監視ユニット63に送信するドア監視コマンド送信処理(開閉履歴情報数)を行う(S298)。
一方、S297において、リクエストに係る一般コマンドが開閉履歴情報数コマンドでないと判別したとき(S297がNO判定の場合)、サブCPU102は、リクエストに係る一般コマンドがステータス読出コマンドであるか否かを判別する(S299)。S299において、リクエストに係る一般コマンドがステータス読出コマンドであると判別したとき(S299がYES判定の場合)、サブCPU102は、ステータス読出コマンドを24hドア監視ユニット63に送信するドア監視コマンド送信処理(ステータス読出)を行う(S300)。そして、サブCPU102は、ドア監視一般コマンドを終了し、処理をドア監視タスク(図41参照)のS243に戻す。
また、S282、S284、S286、S288、S290、S292、S294、S296、S298、S300の処理後、サブCPU102は、ドア監視一般コマンドを終了し、処理をドア監視タスク(図41参照)のS243に戻す。
(6)ドア監視受信割込み処理
次に、サブCPU102が、24hドア監視ユニット63からコマンドやデータを1バイト受信する毎に、実行するドア監視受信割込み処理について、図45を参照して説明する。
図45は、本実施形態におけるドア監視受信割込み処理の例を示すフローチャートである。
ドア監視受信割込み処理において、サブCPU102は、まず、受信したデータが「STX」であるか否かを判別する(S301)。S301において、受信したデータが「STX」であると判別したとき(S301がYES判定の場合)、サブCPU102は、サブDRAM103aのサブ受信バッファ及びサブ受信カウンタ格納領域に記憶されている受信カウンタの値に「1」を設定し、且つ、サブDRAM103aのサブETX受信フラグ格納領域に記憶しているサブETX受信フラグをOFFに設定する(S302)。そして、サブCPU102は、ドア監視受信割込み処理を終了する。
一方、S301において、受信したデータが「STX」でないと判別したとき(S301がNO判定の場合)、サブCPU102は、サブ受信カウンタ格納領域に記憶されているサブ受信カウンタの値に対応するサブ受信バッファに受信したデータを記憶させる(S303)。
次いで、サブCPU102は、サブ受信カウンタの値に1を加算する(S304)。
次いで、サブCPU102は、受信データが「ETX」であるか否かを判別する(S305)。S305において、受信データが「ETX」であると判別したとき(S305がYES判定の場合)、サブCPU102は、サブDRAM103aのサブETX受信フラグ格納領域に記憶されているサブETX受信フラグをONに設定する。また、サブDRAM103aのサブサムカウンタの値をクリアする(S306)。そして、サブCPU102は、ドア監視受信割込み処理を終了する。
一方、S305において、受信データが「ETX」でないと判別したとき(S305がNO判定の場合)、サブCPU102は、サブDRAM103aのサブETX受信フラグ格納領域に記憶されているサブETX受信フラグがONに設定されているか否かを判別する(S307)。S307において、サブETX受信フラグがONに設定されていると判別したとき(S307がYES判定の場合)、サブCPU102は、ドア監視受信割込み処理を終了する。
S307において、サブETX受信フラグがONに設定されていないと判別したとき(S307がNO判定の場合)、サブサムカウンタの値に1を加算する(S308)。
次いで、サブCPU102は、サブサムカウンタの値が2であるか否かを判別する(S309)。S309において、サブサムカウンタの値が2でないと判別したとき(S309がNO判定の場合)、サブCPU102は、ドア監視受信割込み処理を終了する。一方、S309において、サブサムカウンタの値が2であると判別したとき(S309がYES判定の場合)、サブCPU102は、サブDRAM103aのサブ受信完了フラグ格納領域に記憶されているサブ受信完了フラグをONに設定し(S301)、ドア監視受信割込み処理を終了する。
(7)ドア監視受信処理
次に、ドア監視タスク(図41参照)のS243におけるドア監視受信処理について、図46を参照して説明する。
図46は、本実施形態におけるドア監視受信処理の例を示すフローチャートである。
ドア監視受信処理において、サブCPU102は、まず、サブDRAM103aのサブ受信完了フラグ格納領域に記憶されているサブ受信完了フラグがONに設定されているか否かを判別する(S311)。S3111において、サブ受信完了フラグがONに設定されていないと判別したとき(S311がNO判定の場合)、サブCPU102は、ドア監視受信処理を終了し、処理をドア監視タスク(図41参照)のS232に戻す。
一方、S311において、サブ受信完了フラグがONに設定されていると判別したとき(S311がYES判定の場合)、サブCPU102は、サブ受信完了フラグをOFFに設定する(S312)。
次いで、サブCPU102は、特権アンサ受信処理を行う(S313)。特権アンサ受信処理では、サブCPU102は、送信した特権コマンドへの返信として24hドア監視ユニット63から受信したアンサに対応した各種処理を行う。特権アンサ受信処理の具体的な内容は、後で図47を参照して説明する。
次いで、サブCPU102は、一般アンサ受信処理を行う(S314)。一般アンサ受信処理では、サブCPU102は、送信した一般コマンドへの返信として24hドア監視ユニット63から受信したアンサに対応した各種処理を行う。一般アンサ受信処理の具体的な内容は、後で図48を参照して説明する。
そして、サブCPU102は、ドア監視受信処理を終了する。
(8)特権アンサ受信処理
次に、ドア監視受信処理(図46参照)のS313における特権アンサ受信処理について、図47を参照して説明する。
図47は、本実施形態における特権アンサ受信処理の例を示すフローチャートである。
特権アンサ受信処理において、サブCPU102は、まず、受信したアンサが初期化コマンドに対するアンサであるか否かを判別する(S321)。S321において、受信したアンサが初期化コマンドに対するアンサであると判別したとき(S321がYES判定の場合)、サブCPU102は、アンサ内容を確認する初期化受信時処理を行う(S322)。その後、サブCPU102は、特権アンサ受信処理を終了する。
一方、S321において、受信したアンサが初期化コマンドに対するアンサでないと判別したとき(S321がNO判定の場合)、サブCPU102は、受信したアンサが時計セットコマンドに対するアンサであるか否かを判別する(S323)。S323において、受信したアンサが時計セットコマンドに対するアンサであると判別したとき(S323がYES判定の場合)、サブCPU102は、アンサ内容を確認する時計セット受信時処理を行う(S324)。その後、サブCPU102は、特権アンサ受信処理を終了する。
一方、S323において、受信したアンサが時計セットコマンドに対するアンサでないと判別したとき(S323がNO判定の場合)、サブCPU102は、受信したアンサが監視間隔時間設定コマンドに対するアンサであるか否かを判別する(S325)。S325において、受信したアンサが監視間隔時間設定コマンドに対するアンサであると判別したとき(S325がYES判定の場合)、サブCPU102は、アンサ内容を確認する監視間隔時間設定受信時処理を行う(S326)。その後、サブCPU102は、特権アンサ受信処理を終了する。
一方、S325において、受信したアンサが監視間隔時間設定コマンドに対するアンサでないと判別したとき(S325がNO判定の場合)、サブCPU102は、受信したアンサが記録開始時間設定コマンドに対するアンサであるか否かを判別する(S327)。S327において、受信したアンサが記録開始時間設定コマンドに対するアンサであると判別したとき(S327がYES判定の場合)、サブCPU102は、アンサ内容を確認する記録開始時間設定受信時処理を行う(S328)。その後、サブCPU102は、特権アンサ受信処理を終了する。
一方、S327において、受信した記録開始時間設定コマンドに対するアンサでないと判別したとき(S327がNO判定の場合)、サブCPU102は、受信したアンサが記録モード設定コマンドに対するアンサであるか否かを判別する(S329)。S329において、受信したアンサが記録モード設定コマンドに対するアンサであると判別したとき(S329がYES判定の場合)、サブCPU102は、アンサ内容を確認する記録モード設定受信時処理を行う(S330)。その後、サブCPU102は、特権アンサ受信処理を終了する。
一方、S329において、受信した記録モード設定コマンドに対するアンサでないと判別したとき(S329がNO判定の場合)、サブCPU102は、受信したアンサが秘密鍵設定コマンドに対するアンサであるか否かを判別する(S331)。S331において、受信したアンサが秘密鍵設定コマンドに対するアンサでないと判別したとき(S331がNO判定の場合)、サブCPU102は、特権アンサ受信処理を終了する。
一方、S331において、受信したアンサが秘密鍵設定コマンドに対するアンサであると判別したとき(S331がYES判定の場合)、サブCPU102は、アンサ内容を確認し、設定結果がNGであるか否かを判別する(S332)。S332において、設定結果がNGでないと判別したとき(S332がNO判定の場合)、サブCPU102は、特権アンサ受信処理を終了する。
一方、S332において、設定結果がNGであると判別したとき(S332がYES判定の場合)、サブCPU102は、液晶表示装置11に秘密鍵を設定できなかった旨を示す画面である設定NG画面の表示を要求し(S333)、液晶表示装置11に該設定NG画面を表示させる。そして、サブCPU102は、特権アンサ受信処理を終了する。
なお、特権アンサ受信処理における受信したアンサの種別を判別する処理(S321,S323,S325,S327,S329,S331)において、サブCPU102は、サブDRAM103aの受信バッファを参照し、受信したデータ(アンサ)に含まれているコマンドのID(図13参照)に基づいてアンサの種別を判別する。
(9)一般アンサ受信処理
次に、ドア監視受信処理(図46参照)のS314における一般アンサ受信処理について、図48を参照して説明する。
図48は、本実施形態における一般アンサ受信処理の例を示すフローチャートである。
一般アンサ受信処理において、サブCPU102は、まず、受信したアンサがシリアルIDコマンドに対するアンサであるか否かを判別する(S341)。S341において、受信したアンサがシリアルIDコマンドに対するアンサであると判別したとき(S341がYES判定の場合)、サブCPU102は、シリアルID受信時処理を行う(S342)。この処理で、サブCPU102は、サブSRAM103bのシリアルID格納領域に記憶されているシリアルIDと、受信したアンサに付随するシリアルIDとを比較し、一致しない場合は、図20に示す警告画面を液晶表示装置に表示する第3警告表示処理を行う。そして、サブCPU102は、一般アンサ受信処理を終了する。
一方、S341において、受信したアンサがシリアルIDコマンドに対するアンサでないと判別したとき(S341がNO判定の場合)、制御LSI200は、受信したアンサがバージョン要求コマンドに対するアンサであるか否かを判別する(S343)。S343において、受信したアンサがバージョン要求コマンドに対するアンサであると判別したとき(S343がYES判定の場合)、制御LSI200は、バージョン受信時処理を行う(S344)。この処理で、サブCPU102は、サブSRAM103bのバージョン格納領域に記憶されているプログラムバージョンと、受信したアンサに付随するプログラムバージョンとを比較し、一致しない場合は、上述の第2警告表示処理を行う。そして、サブCPU102は、一般アンサ受信処理を終了する。
一方、S343において、受信したアンサがバージョン要求コマンドに対するアンサでないと判別したとき(S343がNO判定の場合)、サブCPU102は、受信アンサが乱数コマンドに対するアンサであるか否かを判別する(S345)。S345において、受信したアンサが乱数コマンドに対するアンサであると判別したとき(S345がYES判定の場合)、サブCPU102は、乱数受信時処理を行う(S346)。乱数受信時処理の具体的内容については、後で図49を参照して説明する。そして、サブCPU102は、一般アンサ受信処理を終了する。
一方、S345において、受信したアンサが乱数コマンドに対するアンサでないと判別したとき(S345がNO判定の場合)、サブCPU102は、受信したアンサがログインコマンドに対するアンサであるか否かを判別する(S347)。S347において、受信したアンサがログインコマンドに対するアンサであると判別したとき(S347がYES判定の場合)、サブCPU102は、ログイン受信時処理を行う(S348)。ログイン受信時処理の具体的内容については、後で図50を参照して説明する。そして、サブCPU102は、一般アンサ受信処理を終了する。
一方、S347において、受信したアンサがログインコマンドに対するアンサでないと判別したとき(S347がNO判定の場合)、サブCPU102は、受信したアンサがログアウトコマンドに対するアンサであるか否かを判別する(S349)。S349において、受信したアンサがログアウトコマンドに対するアンサであると判別したとき(S349がYES判定の場合)、サブCPU102は、サブDRAM103aの特権フラグ格納領域に記憶されている特権フラグをOFFに設定する(S350)そして、サブCPU102は、一般アンサ受信処理を終了する。
一方、S349において、受信したアンサがログアウトコマンドに対するアンサでないと判別したとき(S349がNO判定の場合)、サブCPU102は、受信したアンサが時計読出コマンドに対するアンサであるか否かを判別する(S351)。S351において、受信したアンサが時計読出コマンドに対するアンサであると判別したとき(S351がYES判定の場合)、サブCPU102は、時計読出受信時処理を行う(S352)。時計読出受信時処理の具体的内容については、後で図51を参照して説明する。そして、サブCPU102は、一般アンサ受信処理を終了する。
一方、S351において、受信したアンサが時計読出コマンドに対するアンサでないと判別したとき(S351がNO判定の場合)、サブCPU102は、受信したアンサが最新番号コマンドに対するアンサであるか否かを判別する(S353)。S353において、受信したアンサが最新番号コマンドに対するアンサであると判別したとき(S353がYES判定の場合)、サブCPU102は、最新番号受信時処理を行う(S354)。この処理で、サブCPU102は、サブSRAM103bの最新番号格納領域に、アンサに付随する最新番号を記憶(上書き)する。そして、サブCPU102は、一般アンサ受信処理を終了する。
一方、S353において、受信したアンサが最新番号コマンドに対するアンサでないと判別したとき(S353がNO判定の場合)、サブCPU102は、受信したアンサが開閉履歴情報読出コマンドに対するであるか否かを判別する(S355)。サブCPU102は、S355において、受信したアンサが開閉履歴情報読出コマンドに対するアンサであると判別したとき(S355がYES判定の場合)、サブCPU102は、開閉履歴情報受信時処理を行う(S356)。この処理で、サブCPU102は、アンサに付随する開閉履歴情報を、サブSRAM103bの開閉履歴格納領域に記憶させる。そして、サブCPU102は、一般アンサ受信処理を終了する。
一方、S355において、受信したアンサが開閉履歴情報読出コマンドに対するアンサでないと判別したとき(S355がNO判定の場合)、サブCPU102は、受信したアンサが開閉履歴情報数コマンドに対するアンサであるか否かを判別する(S357)。S357において、受信したアンサが開閉履歴情報数コマンドに対するアンサであると判別したとき(S357がYES判定の場合)、サブCPU102は、開閉履歴情報数受信時処理を行う(S358)。この処理で、サブCPU102は、アンサに付随する開閉履歴情報数を記憶させる。そして、サブCPU102は、一般アンサ受信処理を終了する。
一方、S357において、受信したアンサが開閉履歴情報数コマンドに対するアンサでないと判別したとき(S357がNO判定の場合)、サブCPU102は、受信したアンサがステータス読出コマンドに対するアンサであるか否かを判別する(S359)。S359において、受信したアンサがステータス読出コマンドに対するアンサであると判別したとき(S359がYES判定の場合)、ステータス受信時処理を行う(S360)。この処理で、サブCPU102は、アンサに付随する開閉履歴情報をサブDRAM103aのステータス格納領域に記憶させ、開閉履歴情報のドア開閉状態がOPENの場合、ドア開放状態の報知が行われていないときには、ドア開放状態である旨の報知(例えば、液晶表示装置11の表示部11aに「ドアが開いています」の表示、及び、スピーカ42,58,64,65L,65Rの全て又はいずれかのスピーカから警告音を出音)を行う。開閉履歴情報のドア開閉状態がCLOSEの場合、ドア開放状態の報知が行われている場合には、ドア開放状態の報知を終了する。ステータス読出コマンド受信時処理を行うサブCPU102は、ステータス取得手段を構成する。そして、制御LSI200は、一般コマンド受信時処理を終了する。
一方、S359において、受信したアンサがステータス読出コマンドに対するアンサでないと判別したとき(S359がNO判定の場合)、サブCPU102は、一般アンサ受信処理を終了する。
(10)乱数受信時処理
次に、一般アンサ受信処理(図48参照)のS346における乱数受信時処理について、図49を参照して説明する。
図49は、本実施形態における乱数受信時処理の例を示すフローチャートである。
乱数受信時処理において、サブCPU102は、サブSRAM103bの秘密鍵格納領域に記憶されている秘密鍵を取得する(S361)。
次いで、サブCPU102は、サブDRAM103aの受信バッファから24hドア監視ユニット63から受信した乱数を取得する(S362)。
次いで、サブCPU102は、サブDRAM103aの受信バッファから24hドア監視ユニット63から受信した乱数を取得する(S362)。
次いで、サブCPU102は、取得した乱数と秘密鍵を用いて、パスワードを生成するパスワード生成処理を行う(S363)。なお、この処理において、サブCPU102は、上述の制御LSI200が実行する乱数コマンド受信時処理(図31参照)のS123と同様の方法(計算)でパスワードを生成する。S363の処理を行うサブCPU102は、設定側認証情報生成手段を構成する。
次いで、サブCPU102は、生成したパスワードをサブSRAM103bのパスワード格納領域に記憶させる(S364)。そして、サブCPU102は、乱数受信時処理を終了する。
(11)ログイン受信時処理
次に、一般アンサ受信処理(図48参照)のS348におけるログイン受信時処理について、図50を参照して説明する。
図50は、本実施形態におけるログイン受信時処理の例を示すフローチャートである。
ログイン時処理において、サブCPU102は、サブDRAM103aの受信バッファからログインコマンドに対するアンサを取得する(S371)。
次いで、サブCPU102は、取得したアンサの内容がログイン許可(OK)であるか否かを判別する(S372)。S372の処理において、取得したアンサの内容がログイン許可(OK)であると判別したとき(S372がYES判定の場合)、サブCPU102は、サブDRAM103aの特権フラグ格納領域に記憶されている特権フラグをONに設定する(S373)。そして、サブCPU102は、ログイン受信時処理を終了する。
一方、S372において、取得したアンサの内容がログイン許可(OK)でないと判別したとき(S372がNO判定の場合)、サブCPU102は、特権フラグをOFFに設定する(S374)。そして、サブCPU102は、ログイン受信時処理を終了する。なお、この場合、サブCPU102は、液晶表示装置11に図19に示す警告画面を表示させる。
(12)時計読出受信時処理
次に、一般アンサ受信処理(図48参照)のS352における時計読出受信時処理について、図51を参照して説明する。
図51は、本実施形態における時計読出受信時処理の例を示すフローチャートである。
時計読出時処理において、サブCPU102は、サブDRAM103aの受信バッファを参照し、時計読出コマンドのアンサに付随する時刻情報(日時データ)と、副制御基板72のサブRTC108から取得した時刻情報とを比較し、差分が所定時間(本実施形態では3分)以上あるか否かを判別する(S381)。なお、本実施形態では、上記所定時間を3分と設定した態様を説明したが、この所定時間は任意に設定可能である。
S381において、差分が3分以上あると判別したとき(S381がYES判定の場合)サブCPU102は、時計セットシーケンスを実行する(S382)。そして、サブCPU102は、時計読出受信時処理を終了する。なお、S381の判別の結果、S382で時計セットシーケンスを実行し、当該シーケンス内でサブRTC108が計時する時刻を示す時刻情報を24hドア監視ユニット63へ送信するサブCPU102は、設定側時刻送信手段を構成する。
S381において、差分が3分以上でないと判別したとき(S381がNO判定の場合)サブCPU102は、時計読出受信時処理を終了する。
<作用>
(1)第1の作用
本実施形態のパチスロ1では、図16及び図17に示すように、24hドア監視ユニット63の各種設定を行うための各種シーケンス(図16のNo5〜11のシーケンス)が実行されると、ホスト機器である副制御基板72は、24hドア監視ユニット63に乱数コマンド(CK)を送信する。なお、各種設定を行うための各種シーケンス(図16のNo5〜11のシーケンス)を実行する際の副制御基板72(副制御回路101)のサブCPU102は、設定手段を構成する。
乱数コマンドを受信した24hドア監視ユニット63は、乱数を発生させ(図31のS121参照)、発生させた乱数値を副制御基板72に送信する(図35のS166参照)。また、24hドア監視ユニット63は、EEPROM205から秘密鍵を読み出し、読み出した秘密鍵と副制御基板72に送信した乱数値とを用いて、所定の演算を行ってパスワードを生成する。
また、24hドア監視ユニット63から乱数値を受信した副制御基板72は、サブSRAM103bに記憶されている秘密鍵と受信した乱数値とを用いて、所定の演算を行ってパスワードを生成する(図49のS363参照)。
次に、副制御基板72は、24hドア監視ユニット63に生成したパスワードが付随するログインコマンド(CI)を送信する(図44のS288参照)。ログインコマンドを受信した24hドア監視ユニット63は、副制御基板72から受信したパスワードと、自身が生成したパスワードとが一致するか否かを判別する(図32のS133.S134参照)。一致すると判別したとき、24hドア監視ユニット63は、特権コマンドに基く各種設定を要求できる状態(以下、「ログイン状態」と称する場合がある)に設定される(図32のS135参照)。
一方、副制御基板72から受信したパスワードと、自身が生成したパスワードとが一致しないと判別したとき(図32のS134がNO判定の場合)、24hドア監視ユニット63はログイン状態に設定されない。また、サブCPU102は、各種シーケンスにおいてログインコマンドに続くコマンドを送信することなく各種シーケンスを終了する(図41のS240のシーケンス制御処理において、各種シーケンスを終了することで、リクエストが発生しないためS241がNO判定となる)。なお、このようにパスワードの一致/不一致に基づいて、ログイン状態に設定する24hドア監視ユニット63の制御LSI200は、認証情報状態設定手段を構成する。
以上のように、24hドア監視ユニット63の各種設定を行うための各種シーケンスが実行される度に、24hドア監視ユニット63をログイン状態にするためのパスワードが副制御基板72と24hドア監視ユニット63において秘密鍵と乱数を用いて生成される。したがって、生成されるパスワードは、毎回異なるパスワードとなる。したがって、副制御基板72と24hドア監視ユニット63間の通信内容を解析することにより、そのときのパスワードが判明しても、以後、そのパスワードを用いて、24hドア監視ユニット63をログイン状態に設定することはできない。このように、24hドア監視ユニット63への不正なアクセスを防止することができる。このため、24hドア監視ユニット63の設定の不正な変更や記憶している情報の不正な改ざんや消去を防止することができる。
また、24hドア監視ユニット63が他の24hドア監視ユニットに付け替えられた場合で、当該他の24hドア監視ユニットが記憶する秘密鍵と24hドア監視ユニット63が記憶する秘密鍵が異なる場合は、副制御基板72と付け替えられた24hドア監視ユニットのそれぞれで生成されるパスワードは、同じ乱数を用いても異なるものとなる。本実施形態では、副制御基板72は、24hドア監視ユニットからログイン不許可の旨のアンサを受信した場合、液晶表示装置11に図19に示すような警告画面を表示する。このため、24hドア監視ユニット63の付け替えが発生したことを容易に把握することができる。
(2)第2の作用
本実施形態のパチスロ1では、パチスロ1の起動時に、警告表示画面(図40参照)を液晶表示装置11に表示することで、指定時間内に発生したフロントドア2bの開閉に係る開閉履歴情報を表示する警告表示を行う。また、指定時間は、警告表示設定画面(図39参照)を介して任意に設定可能である。したがって、開閉履歴情報を視る者が注目している開閉履歴情報を見落としてしまうことを防止することができる。
(3)第3の作用
本実施形態のパチスロ1では、上述のように、制御LSI200は、ドア監視ユニットメイン処理(図21)を20msec周期で実行する。したがって、制御LSI200は、ドア監視ユニットメイン処理のS2のポート入力処理(図22参照)における各処理及びS3のドア監視処理(図23参照)における各処理を20msec周期で実行する。したがって、ドア開閉監視スイッチ67がフロントドア2bの開閉を検知してから、ドア開閉監視スイッチ67からの信号に基くフロントドア2bの開閉状態を示す状態情報が、24hドア監視ユニット63のRAM204における入力ポート情報格納領域に記憶され(図22のS11参照)、また、その状態情報に基づく開閉履歴情報が第1検知結果格納領域に記憶されるまでのタイムラグは、最大で20msecに過ぎない。
また、サブCPU102は、500msec毎に第1状態検知シーケンスを実行してステータス読出コマンドを送信し(図16のNo2及び図41のS239参照)、24hドア監視ユニット63からステータス読出コマンドのアンサとして、RAM204の第1検知結果格納領域に記憶されている開閉履歴情報を取得する。そして、取得した開閉履歴情報が、フロントドア2bの開放状態を示している場合、サブCPU102は、液晶表示装置11にフロントドア2bが開放状態である旨を示す画面(図示は省略するが、例えば液晶表示装置11の略中央に「ドアが開いています」というメッセージ)を表示させる。したがって、フロントドア2bの開閉状態を適切に把握することができる。
また、開閉履歴情報をEEPROM205に記憶させる間隔である監視間隔時間を分刻みで1分〜100分の間で設定可能である。したがって、例えば、チャタリングによる誤検出に基く開閉履歴情報などをEEPROM205に記録することがない。このため、EEPROM205に記憶される開閉履歴情報がすぐに記憶可能な上限数に達してしまうことを防止することができる。したがって、開閉履歴情報を適切に記憶させることができる。
(4)第4の作用
本実施形態のパチスロ1では、サブCPU102は、所定時間(本実施形態では1時間)毎に第2状態検知シーケンスを実行し、時計読出コマンド(CT)を24hドア監視ユニット63に送信する(図16参照)。そして、サブCPU102は、時計読出コマンドのアンサを24hドア監視ユニット63から受信すると、図51に示す時計読出受信時処理を行う(図48のS352参照)。
時計読出受信時処理において、サブCPU102は、時計読出コマンドのアンサに付随する時刻情報(日時データ)と、副制御基板72のサブRTC108から取得した時刻情報とを比較し、差分が所定時間(本実施形態では3分)以上あるか否かを判別する(図51のS381)。そして、差分が3分以上あると判別したとき(図51のS381がYES判定の場合)サブCPU102は、時計セットシーケンス(図16のNo6参照)を実行する(図51のS382)。
時計セットシーケンスを実行すると、サブCPU102は、乱数コマンド(CK)、ログインコマンド(CI)、時計セットコマンド(ST)、ログアウトコマンド(CO)の順でコマンドを送信する(図16参照)。ログインコマンドを受信した24hドア監視ユニット63は、ログインコマンドに付随するパスワードと、RAM204のパスワード格納領域に記憶されているパスワードが一致するか否かを判別し、一致する場合はログイン許可(OK)の旨、一致しない場合はログイン不許可(NG)の旨のアンサを送信(返信)する。なお、時計セットシーケンスの実行時においてサブSRAM103bに記憶されているパスワードが付随するログインコマンド(CI)を送信するサブCPU102は、設定側認証情報送信手段を構成する。また、ログインコマンドに付随するパスワードと、RAM204のパスワード格納領域に記憶されているパスワードが一致するか否かを判別する24hドア監視ユニット63の制御LSI200は、認証情報判別手段を構成する。また、上記判別の結果が一致する場合は特権コマンドに基く各種設定を要求できるログイン状態に設定し、一致しない場合はログイン状態に設定しない24hドア監視ユニット63の制御LSI200は、認証状態許容手段を構成する。また、上記判別結果をホスト機器に送信する24hドア監視ユニット63の制御LSI200は、認証結果通知手段を構成する。
そして、サブCPU102は、24hドア監視ユニット63からログイン不許可の旨のアンサを受信した場合、液晶表示装置11に図19に示すように、画面の中央に「監視ユニットにログインできません。」というメッセージが配置された警告画面を表示させる。また、サブCPU102は、ログインコマンドの後順のコマンドを送信することなく時計セットシーケンスを終了する。なお、上記警告画面を液晶表示装置11に表示させるサブCPU102は、報知要求手段を構成する。
一方、サブCPU102は、24hドア監視ユニット63からログイン許可の旨のアンサを受信した場合、サブRTC108から取得した年、月、日、時、分、秒そして曜日を示す情報が付随する時計セットコマンド(ST)を24hドア監視ユニット63に送信する。時計セットコマンドを受信した24hドア監視ユニット63は、時計セットコマンドに付随する年、月、日、時、分、秒そして曜日を示す情報に基いて、RTC201の年、月、日、時、分、秒そして曜日を設定する。
ここで、24hドア監視ユニット63が他の24hドア監視ユニットと付け替えられ、当該他の24hドア監視ユニットが記憶する秘密鍵と24hドア監視ユニット63が記憶する秘密鍵が異なる場合は、時計セットシーケンスにおけるログインコマンドに対するアンサとして、ログイン不許可(NG)の旨のアンサが送信される(図35のS168参照)。そして、液晶表示装置11に図19に示すような警告画面が表示される。したがって、定期的に行われる第2状態検知シーケンスに起因して、24hドア監視ユニット63の付け替えを定期的に検査でき、且つ、また、24hドア監視ユニット63が付け替えられたことを容易に把握することができる。
また、両RTC108,201が計時する現在時刻に誤差が生じることを抑制することができる。
<変形例>
上記実施形態では、本発明を適用した遊技機としてパチスロ1を例に挙げて説明した。しかし、本発明を適用可能な遊技機はパチスロに限らず、例えば、「パチンコ」と呼ばれる遊技機やスロットマシンがある。
また、本実施形態では、ホスト機器が行う各種処理について、ホスト機器の一例である副制御基板72のサブCPU102が行う処理を例に説明した。しかし、ホスト機器としてパチスロ1の製造時やメンテナンス時に24hドア監視ユニット63の各種設定を行う設定機(図示省略)を接続させた場合は、この設定機の処理装置に、上記のサブCPU102が行う処理を行わせてもよい。