(57)【要約】  ネットワーク接続された端末によりデバイスを制御できるようにする。  アプリケーション３１を備えた端末３と、デバイスを制御するプリンター５とを備えたデバイス制御システムである。端末３は、アプリケーション３１が生成するＸＭＬで記述されたリクエストを送信する。プリンター５は、ＸＭＬのリクエストを受信し、端末３がＸＭＬのレスポンスを送信し、端末３がＸＭＬのリクエストでデバイスの制御を要求した場合にデバイスを制御する。
2014106883.tif 000002
【特許請求の範囲】
【請求項１】
データの入力もしくは出力を行うデバイスと、
マークアップ言語のリクエストの送信及びマークアップ言語のレスポンスを受信するアプリケーションを実行する端末と、
前記デバイスと接続し、前記マークアップ言語のリクエストに基づく前記デバイスの制御及び前記マークアップ言語のレスポンスの送信を行うデバイス制御装置と、
を備えることを特徴とするデバイス制御システム。
【請求項２】
前記レスポンスは、前記デバイスの制御の結果を示すデータを含む請求項１に記載のデバイス制御システム。
【請求項３】
前記アプリケーションは、前記デバイス制御装置に通信経路の確立を要求する通信確立メッセージを含む前記リクエストを前記デバイス制御装置に送信し、
前記デバイス制御装置は、前記通信確立メッセージを含む前記リクエストを受信した時、前記リクエストに含まれる前記通信確立メッセージに対する応答メッセージを含む前記レスポンスを前記アプリケーションに送信する請求項１に記載のデバイス制御システム。
【請求項４】
前記アプリケーションは、前記デバイス制御装置で送信された前記レスポンスに含まれる前記通信確立メッセージに対する応答メッセージに基づいて前記デバイス制御装置との前記通信経路を確立する請求項３に記載のデバイス制御装置。
【請求項５】
前記アプリケーションは、前記通信経路が確立した後、前記デバイス制御装置に前記デバイス制御装置に接続された前記デバイスとの通信をオープンするオープンメッセージを含む前記リクエストを前記デバイス制御装置に送信する請求項４に記載のデバイス制御装置。
【請求項６】
前記デバイス制御装置は、前記オープンメッセージを含む前記リクエストを受信した時、前記リクエストに含まれる前記オープンメッセージに対する応答メッセージを含む前記レスポンスを前記アプリケーションに送信する請求項５に記載のデバイス制御システム。    
【請求項７】
前記アプリケーションは、前記デバイス制御装置で送信した前記オープンメッセージに対する応答メッセージを含む前記レスポンスを受信し、前記オープンメッセージに対する応答メッセージに基づいて前記デバイスとの通信が可能な状態となる請求項６に記載のデバイス制御システム。
【請求項８】
前記アプリケーションは、前記デバイスとの通信が可能な状態となった後、前記デバイスとの通信をクローズするクローズメッセージを含む前記リクエストを前記デバイス制御装置に送信する請求項７に記載のデバイス制御システム。
【請求項９】
前記デバイス制御装置は、前記クローズメッセージを含む前記リクエストを受信し、
前記クローズメッセージに対応する応答メッセージを含む前記レスポンスを前記アプリケーションに送信する請求項８に記載のデバイス制御システム。
【請求項１０】
前記アプリケーションは、前記デバイス制御装置で送信した前記クローズメッセージに対する応答メッセージを含む前記レスポンスを受信し、前記クローズメッセージに対する応答メッセージに基づいて前記デバイスとの通信をクローズする請求項９に記載のデバイス制御システム。
【請求項１１】
データの入力もしくは出力を行うデバイス、アプリケーションを実行する端末、及び前記デバイスと接続するデバイス制御装置を有し、
前記アプリケーションで生成したマークアップ言語のリクエストを前記デバイス制御装置に送信し、
前記デバイス制御装置で前記リクエストを受信し、
前記マークアップ言語のレスポンスを生成し、
生成した前記レスポンスを前記端末へ送信することを特徴とするデバイス制御システムの制御方法。
【請求項１２】
前記デバイス制御装置で、前記リクエストに含まれる情報を前記デバイスに送信し、
前記デバイスは、前記リクエストに含まれる情報に基づいて処理を行い、
前記リクエストに含まれる情報に基づいて処理した結果を前記デバイス制御装置に送信し、
前記デバイスで送信した前記リクエストに含まれる情報に基づいて処理した結果を含む前記レスポンスを前記端末に送信する請求項１１に記載のデバイス制御システムの制御方法。
【請求項１３】
前記アプリケーションで、前記デバイス制御装置に通信経路の確立を要求する通信確立メッセージを含む前記リクエストを前記デバイス制御装置に送信し、
前記デバイス制御装置で、前記通信確立メッセージを含む前記リクエストを受信した時、前記リクエストに含まれる前記通信確立メッセージに対する応答メッセージを含む前記レスポンスを前記アプリケーションに送信する請求項１に記載のデバイス制御システムの制御方法。
【請求項１４】
前記アプリケーションで、前記デバイス制御装置で送信された前記レスポンスに含まれる前記通信確立メッセージに対する応答メッセージに基づいて前記デバイス制御装置との前記通信経路を確立する請求項１３に記載のデバイス制御装置の制御方法。
【請求項１５】
前記通信経路が確立した後、前記アプリケーションで前記デバイス制御装置に前記デバイス制御装置に接続された前記デバイスとの通信をオープンするオープンメッセージを含む前記リクエストを前記デバイス制御装置に送信する請求項１４に記載のデバイス制御システムの制御方法。
【請求項１６】
前記デバイス制御装置で前記オープンメッセージを含む前記リクエストを受信した時、前記リクエストに含まれる前記オープンメッセージに対する応答メッセージを含む前記レスポンスを前記アプリケーションに送信する請求項１５に記載のデバイス制御システムの制御方法。
【請求項１７】
前記アプリケーションで前記デバイス制御装置が送信した前記オープンメッセージに対する応答メッセージを含む前記レスポンスを受信し、
前記オープンメッセージに対する応答メッセージに基づいて前記デバイスとの通信が可能となる請求項１６に記載のデバイス制御システムの制御方法。
【請求項１８】
前記アプリケーションと前記デバイスとの通信が可能になった後に前記アプリケーションを停止させるとき、前記アプリケーションで前記デバイスとの通信をクローズするクローズメッセージを含む前記リクエストを前記デバイス制御装置に送信する請求項１７に記載のデバイス制御システムの制御方法。
【請求項１９】
前記デバイス制御装置で前記クローズメッセージを含む前記リクエストを受信し、
前記クローズメッセージに対応する応答メッセージを含む前記レスポンスを前記アプリケーションに送信する請求項１８に記載のデバイス制御システムの制御方法。
【請求項２０】
前記アプリケーションで前記デバイス制御装置が送信した前記クローズメッセージに対する応答メッセージを含む前記レスポンスを受信し、
前記クローズメッセージに対する応答メッセージに基づいて前記デバイスとの通信をクローズする請求項１９に記載のデバイス制御システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイスを制御するデバイス制御システム、及び、デバイス制御システムの制御方法に関する。
【背景技術】
【０００２】
従来、ネットワークに接続された端末により、キーボード、バーコードスキャナー等のデバイスを制御するシステムでは、デバイスの制御用に、コントローラーとなる機器（コンピューターなど）が用意されていた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１５２２５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、シンプルな構成で上述したようなデバイスを使用したいというニーズがあった。
本発明は、上述した事情に鑑みてなされたものであり、ネットワーク接続された端末によりデバイスを制御できるデバイス制御システム、端末、及び、デバイス制御システムの制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明のデバイス制御システムは、データの入力もしくは出力を行うデバイスと、マークアップ言語のリクエストの送信及びマークアップ言語のレスポンスを受信するアプリケーションを実行する端末と、前記デバイスと接続し、前記マークアップ言語のリクエストに基づく前記デバイスの制御及び前記マークアップ言語のレスポンスの送信を行うデバイス制御装置と、を備えることを特徴とする。
本発明によれば、ネットワーク接続された端末により、デバイス制御装置に接続されたデバイスを制御できる。また、端末は、ＸＭＬで記述されたデータを生成するアプリケーションを実行できる装置であれば、制限されない。ＸＭＬは汎用性が高いので、様々な装置を端末として使用できる。また、端末のアプリケーションの開発が容易である。【０００６】
また、レスポンスは、前記デバイスの制御の結果を示すデータを含む。
また、前記アプリケーションは、前記デバイス制御装置に通信経路の確立を要求する通信確立メッセージを含む前記リクエストを前記デバイス制御装置に送信し、前記デバイス制御装置は、前記通信確立メッセージを含む前記リクエストを受信した時、前記リクエストに含まれる前記通信確立メッセージに対する応答メッセージを含む前記レスポンスを前記アプリケーションに送信する。【０００７】
また、前記アプリケーションは、前記デバイス制御装置で送信された前記レスポンスに含まれる前記通信確立メッセージに対する応答メッセージに基づいて前記デバイス制御装置との前記通信経路を確立する。【０００８】
また、前記アプリケーションは、前記通信経路が確立した後、前記デバイス制御装置に前記デバイス制御装置に接続された前記デバイスとの通信をオープンするオープンメッセージを含む前記リクエストを前記デバイス制御装置に送信する。【０００９】
また、前記デバイス制御装置は、前記オープンメッセージを含む前記リクエストを受信した時、前記リクエストに含まれる前記オープンメッセージに対する応答メッセージを含む前記レスポンスを前記アプリケーションに送信する。
また、前記アプリケーションは、前記デバイス制御装置で送信した前記オープンメッセージに対する応答メッセージを含む前記レスポンスを受信し、前記オープンメッセージに対する応答メッセージに基づいて前記デバイスとの通信が可能な状態となる。【００１０】
また、前記アプリケーションは、前記デバイスとの通信が可能な状態となった後、前記デバイスとの通信をクローズするクローズメッセージを含む前記リクエストを前記デバイス制御装置に送信する。
また、前記デバイス制御装置は、前記クローズメッセージを含む前記リクエストを受信し、前記クローズメッセージに対応する応答メッセージを含む前記レスポンスを前記アプリケーションに送信する。【００１１】
また、前記アプリケーションは、前記デバイス制御装置で送信した前記クローズメッセージに対する応答メッセージを含む前記レスポンスを受信し、前記クローズメッセージに対する応答メッセージに基づいて前記デバイスとの通信をクローズする。【００１２】
また、本発明のデバイス制御システムの制御方法は、データの入力もしくは出力を行うデバイス、アプリケーションを実行する端末、及び前記デバイスと接続するデバイス制御装置を有し、前記アプリケーションで生成したマークアップ言語のリクエストを前記デバイス制御装置に送信し、前記デバイス制御装置で前記リクエストを受信し、前記マークアップ言語のレスポンスを生成し、生成した前記レスポンスを前記端末へ送信することを特徴とする。【００１３】
また、前記デバイス制御装置で、前記リクエストに含まれる情報を前記デバイスに送信し、前記デバイスは、前記リクエストに含まれる情報に基づいて処理を行い、前記リクエストに含まれる情報に基づいて処理した結果を前記デバイス制御装置に送信し、前記デバイスで送信した前記リクエストに含まれる情報に基づいて処理した結果を含む前記レスポンスを前記端末に送信する。【００１４】
また、前記アプリケーションで、前記デバイス制御装置に通信経路の確立を要求する通信確立メッセージを含む前記リクエストを前記デバイス制御装置に送信し、前記デバイス制御装置で、前記通信確立メッセージを含む前記リクエストを受信した時、前記リクエストに含まれる前記通信確立メッセージに対する応答メッセージを含む前記レスポンスを前記アプリケーションに送信する。
また、前記アプリケーションで、前記デバイス制御装置で送信された前記レスポンスに含まれる前記通信確立メッセージに対する応答メッセージに基づいて前記デバイス制御装置との前記通信経路を確立する。【００１５】
また、前記通信経路が確立した後、前記アプリケーションで前記デバイス制御装置に前記デバイス制御装置に接続された前記デバイスとの通信をオープンするオープンメッセージを含む前記リクエストを前記デバイス制御装置に送信する。
また、前記デバイス制御装置で前記オープンメッセージを含む前記リクエストを受信した時、前記リクエストに含まれる前記オープンメッセージに対する応答メッセージを含む前記レスポンスを前記アプリケーションに送信する。
また、前記アプリケーションで前記デバイス制御装置が送信した前記オープンメッセージに対する応答メッセージを含む前記レスポンスを受信し、前記オープンメッセージに対する応答メッセージに基づいて前記デバイスとの通信が可能となる。
また、前記アプリケーションと前記デバイスとの通信が可能になった後に前記アプリケーションを停止させるとき、前記アプリケーションで前記デバイスとの通信をクローズするクローズメッセージを含む前記リクエストを前記デバイス制御装置に送信する。
また、前記デバイス制御装置で前記クローズメッセージを含む前記リクエストを受信し、前記クローズメッセージに対応する応答メッセージを含む前記レスポンスを前記アプリケーションに送信する。
また、前記アプリケーションで前記デバイス制御装置が送信した前記クローズメッセージに対する応答メッセージを含む前記レスポンスを受信し、前記クローズメッセージに対する応答メッセージに基づいて前記デバイスとの通信をクローズする。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態に係るデバイス制御システムの構成図である。
【図２】デバイス制御システムの機能的構成を示す図である。
【図３Ａ】キーボードから取得可能なキーコードの一覧を示す図である。
【図３Ｂ】キーボードから取得可能なキーコードの一覧を示す図である。
【図４】インテリジェントプリンターに接続されるデバイスの接続例を示す図である。
【図５】インテリジェントプリンターの外観斜視図である。
【図６】コネクターパネルを示す図である。
【図７】無線ＬＡＮユニットの接続例を示す図である。
【図８】環境構築のワークフローを示す図である。
【図９】デバイス制御スクリプトの登録の手順を示す図である。
【図１０】制御されるデバイスの登録の手順を示す図である。
【図１１】登録されるデバイスの種類の一覧を示す図である。
【図１２】デバイスの登録の説明図である。
【図１３】デバイスの登録の説明図である。
【図１４】デバイスの登録の説明図である。
【図１５】デバイスの登録の説明図である。
【図１６】デバイスの登録の説明図である。
【図１７】基本的なプログラミングのシーケンスを示す図である。
【図１８】使用されるインターフェイスを示す図である。
【図１９Ａ】データのフォーマットを示す図である。
【図１９Ｂ】データの内容を示す図である。
【図２０Ａ】通信データの例を示す図である。
【図２０Ｂ】通信データの例を示す図である。
【図２１】メッセージの要素の配列の例を示す図である。
【図２２】メッセージを示す図である。
【図２３】デバイスごとのメッセージデータを示す図である。
【図２４Ａ】<admin_info>メッセージの説明図である。
【図２４Ｂ】<admin_info>メッセージの説明図である。
【図２４Ｃ】<admin_info>メッセージの説明図である。
【図２４Ｄ】<admin_info>メッセージの説明図である。
【図２４Ｅ】<admin_info>メッセージの説明図である。
【図２５Ａ】<open_device>メッセージの説明図である。
【図２５Ｂ】<open_device>メッセージの説明図である。
【図２５Ｃ】<open_device>メッセージの説明図である。
【図２５Ｄ】<open_device>メッセージの説明図である。
【図２５Ｅ】<open_device>メッセージの説明図である。
【図２５Ｆ】<open_device>メッセージの説明図である。
【図２６Ａ】<close_device>メッセージの説明図である。
【図２６Ｂ】<close_device>メッセージの説明図である。
【図２６Ｃ】<close_device>メッセージの説明図である。
【図２６Ｄ】<close_device>メッセージの説明図である。
【図２６Ｅ】<close_device>メッセージの説明図である。
【図２７Ａ】<device_data>メッセージの説明図である。
【図２７Ｂ】<device_data>メッセージの説明図である。
【図２７Ｃ】<device_data>メッセージの説明図である。
【図２７Ｄ】<device_data>メッセージの説明図である。
【図２８Ａ】<error>メッセージの説明図である。
【図２８Ｂ】<error>メッセージの説明図である。
【図２８Ｃ】<error>メッセージの説明図である。
【図２９Ａ】バーコードスキャナー用メッセージの説明図である。
【図２９Ｂ】バーコードスキャナー用メッセージの説明図である。
【図２９Ｃ】バーコードスキャナー用メッセージの説明図である。
【図３０Ａ】プリンター用メッセージの説明図である。
【図３０Ｂ】プリンター用メッセージの説明図である。
【図３１Ａ】プリンター用メッセージの説明図である。
【図３１Ｂ】プリンター用メッセージの説明図である。
【図３２Ａ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３２Ｂ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３３Ａ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３３Ｂ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３３Ｃ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３３Ｄ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３４Ａ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３４Ｂ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３４Ｃ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３４Ｄ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３４Ｅ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３４Ｆ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３４Ｇ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３４Ｈ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３４Ｉ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３４Ｊ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３４Ｋ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３４Ｌ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３４Ｍ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３４Ｎ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３４Ｐ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３５】プリンター制御ＸＭＬドキュメントの説明図である。
【図３６Ａ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３６Ｂ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３６Ｃ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３６Ｄ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３７Ａ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３７Ｂ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３８Ａ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３８Ｂ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３８Ｃ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３８Ｄ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３８Ｅ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３８Ｆ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３８Ｇ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３８Ｈ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３８Ｉ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３８Ｊ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３９Ａ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３９Ｂ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３９Ｃ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３９Ｄ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３９Ｅ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３９Ｆ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３９Ｇ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３９Ｈ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３９Ｉ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３９Ｊ】プリンター制御ＸＭＬドキュメントの説明図である。
【図３９Ｋ】プリンター制御ＸＭＬドキュメントの説明図である。
【図４０Ａ】プリンター制御ＸＭＬドキュメントの説明図である。
【図４０Ｂ】プリンター制御ＸＭＬドキュメントの説明図である。
【図４１Ａ】プリンター制御ＸＭＬドキュメントの説明図である。
【図４１Ｂ】プリンター制御ＸＭＬドキュメントの説明図である。
【図４２Ａ】プリンター制御ＸＭＬドキュメントの説明図である。
【図４２Ｂ】プリンター制御ＸＭＬドキュメントの説明図である。
【図４３Ａ】プリンター制御ＸＭＬドキュメントの説明図である。
【図４３Ｂ】プリンター制御ＸＭＬドキュメントの説明図である。
【図４４Ａ】プリンター制御ＸＭＬドキュメントの説明図である。
【図４４Ｂ】プリンター制御ＸＭＬドキュメントの説明図である。
【図４５Ａ】プリンター制御ＸＭＬドキュメントの説明図である。
【図４５Ｂ】プリンター制御ＸＭＬドキュメントの説明図である。
【図４６】プリンター制御ＸＭＬドキュメントの説明図である。
【図４７Ａ】プリンター制御ＸＭＬドキュメントの説明図である。
【図４７Ｂ】プリンター制御ＸＭＬドキュメントの説明図である。
【図４８Ａ】プリンター制御ＸＭＬドキュメントの説明図である。
【図４８Ｂ】プリンター制御ＸＭＬドキュメントの説明図である。
【図４９Ａ】プリンター制御ＸＭＬドキュメントの説明図である。
【図４９Ｂ】プリンター制御ＸＭＬドキュメントの説明図である。
【図５０Ａ】プリンター制御ＸＭＬドキュメントの説明図である。
【図５０Ｂ】プリンター制御ＸＭＬドキュメントの説明図である。
【図５０Ｃ】プリンター制御ＸＭＬドキュメントの説明図である。
【図５１Ａ】プリンター制御ＸＭＬドキュメントの説明図である。
【図５１Ｂ】プリンター制御ＸＭＬドキュメントの説明図である。
【図５１Ｃ】プリンター制御ＸＭＬドキュメントの説明図である。
【図５２Ａ】カスタマーディスプレイ用メッセージの説明図である。
【図５２Ｂ】カスタマーディスプレイ用メッセージの説明図である。
【図５３Ａ】カスタマーディスプレイ用メッセージの説明図である。
【図５３Ｂ】カスタマーディスプレイ用メッセージの説明図である。
【図５４Ａ】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図５４Ｂ】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図５５Ａ】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図５５Ｂ】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図５５Ｃ】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図５６】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図５７Ａ】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図５７Ｂ】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図５７Ｃ】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図５７Ｄ】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図５８Ａ】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図５８Ｂ】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図５８Ｃ】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図５９Ａ】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図５９Ｂ】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図５９Ｃ】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図６０Ａ】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図６０Ｂ】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図６１Ａ】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図６１Ｂ】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図６２Ａ】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図６２Ｂ】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図６２Ｃ】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図６２Ｄ】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図６２Ｅ】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図６２Ｆ】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図６３】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図６４】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図６５】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図６６】カスタマーディスプレイ制御ＸＭＬドキュメントの説明図である。
【図６７Ａ】ＰＯＳキーボード用メッセージの説明図である。
【図６７Ｂ】ＰＯＳキーボード用メッセージの説明図である。
【図６７Ｃ】ＰＯＳキーボード用メッセージの説明図である。
【図６８Ａ】ＰＯＳキーボード用メッセージの説明図である。
【図６８Ｂ】ＰＯＳキーボード用メッセージの説明図である。
【図６９Ａ】ＰＯＳキーボード用メッセージの説明図である。
【図６９Ｂ】ＰＯＳキーボード用メッセージの説明図である。
【図６９Ｃ】ＰＯＳキーボード用メッセージの説明図である。
【図７０Ａ】シリアル通信デバイス用メッセージの説明図である。
【図７０Ｂ】シリアル通信デバイス用メッセージの説明図である。
【図７１Ａ】シリアル通信デバイス用メッセージの説明図である。
【図７１Ｂ】シリアル通信デバイス用メッセージの説明図である。
【図７１Ｃ】シリアル通信デバイス用メッセージの説明図である。
【図７２】デバイス制御スクリプトの説明図である。
【図７３】デバイス制御スクリプトの説明図である。
【図７４】デバイス制御スクリプトの説明図である。
【図７５】デバイス制御スクリプトの説明図である。
【図７６】デバイス制御スクリプトの説明図である。
【図７７】デバイス制御スクリプトの説明図である。
【図７８】デバイス制御スクリプトの説明図である。
【図７９】デバイス制御スクリプトの説明図である。
【図８０】デバイス制御スクリプトの説明図である。
【図８１】デバイス制御スクリプトの説明図である。
【図８２】プログラムの例を示す図である。
【図８３】プログラムの環境構築のフローを示す。
【図８４Ａ】プログラムの環境構築の説明図である。
【図８４Ｂ】プログラムの環境構築の説明図である。
【発明を実施するための形態】
【００１７】
以下、図面を参照して本発明の実施形態について説明する。
図１は、本発明を適用した実施形態のデバイス制御システム１００の構成を示す図である。デバイス制御システム１００は、端末３、及び、プリンター（インテリジェントプリンター）５を備えている。
端末３は、ネットワークに接続して、Socket通信ができるデバイスであればよく、パーソナルコンピューター、スマートフォン、あるいはタブレットコンピューターなどが使用できる。端末３は、Socket通信ができ、マークアップ言語であるＸＭＬ文書をハンドリングできる環境を有し、OS（オペレーティングシステム）として、例えば、iOS（登録商標）、Android（登録商標）、Windows（登録商標）、Linux（登録商標）、Mac（登録商標）OS等を備える。
【００１８】
端末３及びプリンター５は通信ネットワークを介して接続される。図１の例では、デバイス制御システム１００は、無線ＬＡＮアクセスポイント１１を有し、プリンター５に無線ＬＡＮアクセスポイント１１がケーブル接続される。端末３と無線ＬＡＮアクセスポイント１１とが無線接続されることにより、端末３とプリンター５が通信する。
【００１９】
プリンター５は、制御対象のデバイスとして、ネットワークプリンター７、カスタマーディスプレイ８、及びバーコードスキャナー９が接続される。ネットワークプリンター７は、プリンター５にネットワークを介して接続される。ネットワークプリンター７は、プリンター５が備えるローカルプリンター５５（図２）とは別のプリンターであり、有線ＬＡＮまたは無線LANのインターフェイスを備える。カスタマーディスプレイ８は、後述するＵＳＢインターフェイスに接続される。バーコードスキャナー９は、後述するＵＳＢインターフェイスを介して接続される。これらのデバイスは、一般的に周辺機器（peripheral）と呼ばれるが、以下の説明ではデバイスと呼ぶ。プリンター５に接続できるデバイスは図１に示す機器に限定されない。例えば、ディスプレイ、及び、キーボード等のキー入力デバイスを含む。さらに、ＯＳ標準のＨＩＤ（Human interface device）ドライバーで制御可能なデバイス、ＯＳ標準のシリアル通信ドライバーで動作可能なシリアル通信デバイス、及び、シリアル通信デバイスと同様に制御可能なＵＳＢデバイスを含む。
【００２０】
デバイス制御システム１００の動作は、次の通りである。
（１）端末３にアプリケーションを配置し、表示する。
（２）アプリケーションからプリンター５にリクエストメッセージを送信する。
（３）プリンター５から制御可能なデバイスにデータを送信する。
（４）プリンター５に接続されているデバイスやネットワークプリンターを制御する。
（５）プリンター５が端末３にレスポンスを返す。
【００２１】
図２は、デバイス制御システム１００の機能的構成を示す図である。
デバイス制御システム１００は、プリンター５に接続されたデバイス（周辺機器）を制御する機能をマークアップ言語であるＸＭＬのコマンド体系であるデバイスＸＭＬを備える。
端末３は、アプリケーション３１を有する。アプリケーション３１は、端末３にインストールされたネイティブアプリケーションプログラムである。アプリケーション３１は、デバイスアプリケーションプログラムインターフェース（ＡＰＩ）３３は、プリンター５に対して、ＸＭＬフォーマットのリクエストメッセージをSocket通信で送信する（Request）。
【００２２】
プリンター５には、デバイスサービスインターフェイス５０１及びデバイス制御スクリプト５０２が組み込まれる。デバイスサービスインターフェイス５０１及びデバイス制御スクリプト５０２は、リクエストメッセージを解釈して、デバイス制御スクリプト５０２にリクエストを出力する。デバイス制御スクリプト５０２は、キー入力デバイス１８及びシリアル通信デバイス１９を制御する。デバイス制御スクリプト５０２は、キー入力デバイス１８及びシリアル通信デバイス１９のイベントや制御結果のレスポンスを、デバイスサービスインターフェイス５０１に出力する。ここで、キー入力デバイス１８は図１のキーボード１４を含み、シリアル通信デバイス１９は図１のバーコードスキャナー９及びキャッシュドロワー１３を含む。
また、デバイスサービスインターフェイス５０１は、ローカルプリンター５５とデータを送受信する。ローカルプリンター５５は、プリンター５が備えるプリンターである。また、デバイスサービスインターフェイス５０１は、ネットワークプリンター７及びカスタマーディスプレイ８とデータを送受信する。
デバイスサービスインターフェイス５０１は、ネットワークプリンター７、カスタマーディスプレイ８及びローカルプリンター５５の制御の結果やデバイス制御スクリプト５０２のレスポンスをもとに、ＸＭＬフォーマットのレスポンス（Response）をアプリケーション３１に出力する。
このように、プリンター５は、デバイスサービスインターフェイス５０１及びデバイス制御スクリプト５０２によってデバイスを制御する。図２の例で制御されるデバイスはネットワークプリンター７、カスタマーディスプレイ８、キー入力デバイス１８、シリアル通信デバイス１９、及び、ローカルプリンター５５である。
【００２３】
以上の動作により、デバイス制御システム１００が備えるデバイスＸＭＬを利用して、端末３によってプリンター５に接続されたデバイスを制御できる。
デバイスＸＭＬは、以下の特徴を有する。
・デバイスの制御用に別途、コントローラーとなる機器（コンピューターなど）を用意する必要がない。
・プリンター５のＯＳが備える標準のドライバーで動作するデバイスは、ドライバーをインストールせずに、デバイス制御スクリプト５０２で使用できる。
・デバイスにアクセスすると、デバイスは、排他ロックされる。複数の端末３から同時アクセスしても、制御が混在しない。デバイスを制御していた端末３がデバイスを解放すると、解放されたデバイスは他の端末３から制御可能となる。
【００２４】
また、デバイスＡＰＩ３３は、以下の特徴を有する。
・罫線を印刷するコマンドは、プリンター５のローカルプリンター５５またはネットワークプリンター７が「罫線コマンド」をサポートしている場合に使用できる。
・プリンター５またはネットワークプリンター７にブザーが接続されている場合にブザーの機能を使用できる。
・キーボード１４から取得できるキーコードに制限がある。キーボード１４から取得可能なキーコードは、図３Ａ、図３Ｂの通りである。
【００２５】
プリンター５の構成について説明する。
プリンター５は、ＣＰＵ、ＲＡＭ、フラッシュＲＯＭ、ＮＶ（不揮発性メモリー）、ビデオコントローラー、補助記憶装置（ＳＳＤ：solidstatedrive）、インターフェイス、及び、ローカルプリンター（印刷部）を備えている。プリンター５は、スピーカーを備えていてもよい。ローカルプリンターは、80mm幅または58mm幅のロール紙に印刷するサーマルプリンターである。
プリンター５にはＰＯＳ（point of sales）システムをインストールできる。プリンター５のＯＳ（operating system）は、例えばＷｉｎｄｏｗｓ（登録商標）ベースであり、補助記憶装置に記憶される。
【００２６】
プリンター５は、プリンター５に接続されるデバイスを端末３が制御するソフトウェアである、デバイス制御プログラムを備えている。このため、端末３はドライバープログラムを必要としない。
プリンター５は、プリンター５が備えるローカルプリンター、及び、デバイスを制御するソフトウェアである、Ｗｉｎｄｏｗｓ（登録商標）標準のデバイスドライバープログラム（ＡＰＤ）、ＵＰＯＳドライバー、ＯＰＯＳドライバー等を備えている。
プリンター５には、ウェブアプリケーションをインストールできる。これにより、図３に示すようにプリンター５をアプリケーションサーバーとして利用できる。ウェブアプリケーションは、例えば、ＰＨＰ及びＰｅｒｌのサーバーサイドスクリプト、ＳＱＬｉｔｅデータベースアクセス（サーバーサイドスクリプト）が可能である。
【００２７】
図４は、プリンター５に接続されるデバイスの接続例を示す図である。
プリンター５には、上述したネットワークプリンター７、カスタマーディスプレイ８及びバーコードスキャナー９を接続できる。プリンター５にディスプレイ１２、キャッシュドロワー１３、及びキーボード１４を接続できる。
図５は、プリンター５の外観斜視図である。
プリンター５の上部には、ロール紙カバー５１が設けられる。ロール紙カバーはカバーオープンボタン５２を押すと開き、ロール紙を出し入れできる。印刷後のロール紙を排出する排出口には、手動でロール紙をカットするマニュアルカッター５３、及び、カッターカバー５４を有する。カッターカバー５４はプリンター５のローカルプリンターで紙ジャムが発生した場合及びロール紙カバー５１が開かない場合に開かれる。カッターカバー５４を開くとマニュアルカッター５３のブレードが基準位置に戻る。プリンター５は、電源スイッチ５６Ｂ、リセットボタン５６Ａ、ＬＥＤ表示部５７、及び、コントロールパネル５８を備える。ＬＥＤ表示部５７は、補助記憶装置のアクセスを示すディスクアクセスＬＥＤ、及び、ステータスＬＥＤを備える。ステータスＬＥＤは、ＯＳの動作状態、ＯＳのスタンバイモード、電源オフ状態、ＯＳの起動シーケンス中、ＣＰＵの高温警告を通知する。
コントロールパネル５８はパワーＬＥＤ、エラーＬＥＤ、ロール紙ＬＥＤ、及び送りボタンを備える。パワーＬＥＤは電源が供給されている場合に点灯する。エラーＬＥＤは通常動作時は消灯し、リセットされたとき、及び、ロール紙の末端が検出されて印刷が停止したときに点灯する。ペーパーＬＥＤはロール紙の残量が十分なときは消灯し、残量がすくなくなると点灯し、自己診断機能の実行時に点滅する。送りボタンを押すと１行ずつ、または連続してロール紙が搬送される。
【００２８】
プリンター５の後部にはコネクターカバー５９が設けられる。コネクターカバー５９を外すと、プリンター５の背面のコネクターパネル（connection panel）が現れる。
図６はコネクターパネル６０を示す図である。コネクターパネル６０は、ドロワーキックコネクター６１、イーサネットコネクター６２、ＵＳＢコネクター６３、ＶＧＡコネクター６４、ＣＯＭコネクター６５、ライン出力６６、及びＤＣ入力６７を有する。コネクターパネル６０は、本発明の接続部に相当する。但し、プリンター５のデバイスには、プリンター５本体が備えるローカルプリンター５５が含まれる。従って、接続部は、コネクターパネル６０、及び、プリンター５内部のインターフェイスを含む。
ドロワーキックコネクター６１には、キャッシュドロワー１３またはオプションのブザーが接続される。イーサネットコネクター６２はネットワークに接続される。ＵＳＢコネクター６３は６個のＵＳＢポートを有する。ＵＳＢコネクター６３にはカスタマーディスプレイ８、バーコードスキャナー９、キーボード１４及びその他のデバイスが接続される。ＶＧＡコネクター６４にはディスプレイ１２が接続される。ＣＯＭコネクター６５にはシリアル通信を行うデバイスのシリアルインターフェイスが接続される。ライン出力６６は外部のスピーカーに接続される。
図７は、無線ＬＡＮユニット１７の接続例を示す図である。無線ＬＡＮユニット１７は、ＵＳＢ延長ケーブル１５に差し込まれ、ＵＳＢ延長ケーブル１５はＵＳＢコネクター６３に差し込まれる。これにより、プリンター５を無線ＬＡＮ接続することができる。
【００２９】
デバイスサービスインターフェイス５０１の環境構築について説明する。
図８は、環境構築のワークフローを示す。
１．ネットワーク設定
システム及びプリンター５のネットワーク設定をする。プリンター５のネットワーク設定は、以下のいずれかの方法により設定できる。
・プリンター５で、Windows（登録商標）のネットワーク設定を行う。
・外部機器（Windowsのコンピューター）に、プリンター５の設定アプリケーションであるTMNet WinConfigをインストールして設定する。
２．プリンター５にデバイスを接続
プリンター５にデバイスを接続する。接続可能なデバイスは、上述したように、カスタマーディスプレイ８、バーコードスキャナー９、ディスプレイ１２、キャッシュドロワー１３、キーボード１４等である。さらに、ＯＳ標準のＨＩＤドライバーで制御可能なデバイス、ＯＳ標準のシリアル通信ドライバーで動作可能なシリアル通信デバイス、及び、シリアル通信デバイスと同様に制御可能なＵＳＢデバイスを含む。図６のコネクターパネル６０には、ＣＯＭコネクター６５が１つしかないが、シリアル−USB変換ケーブル、及び、シリアル−USB変換に対応したドライバープログラムがあれば、複数のシリアル通信デバイスを接続できる。
３．デバイス制御スクリプトの登録
プリンター５が対応した製品以外のデバイスをプリンター５で制御する場合、ユーザーが用意したデバイス制御スクリプトを登録する。登録は、ウェブブラウザーから行う。
４．デバイスの登録
プリンター５に接続するデバイスをプリンター５のソフトウェアに登録する。登録は、ウェブブラウザーから行う。
手順１．〜５で使用するウェブブラウザーは、端末３で動作するウェブブラウザーを含む。
【００３０】
図９を参照して、ユーザーが予め用意したデバイス制御スクリプトを登録する方法を説明する。
登録の手順は以下の通りである。
（１）カスタマイズしたデバイス制御スクリプトを用意する。
（２）プリンター５の電源をオンにする。
（３）ウェブブラウザーを起動し、URL（http：//プリンター５のIPアドレス/WebConfig/）を入力する。
（４）TMNetWebConfigが起動する。図９の画面の［Webサービス設定］-［登録と削除］をクリックする。
（５）“制御スクリプト”画面が表示される。
［登録する制御スクリプト］の［参照］をクリックし、登録するデバイス制御スクリプトを選択する。
（６）［登録］をクリックする。
デバイス制御スクリプトが登録され、画面下の［登録済み制御スクリプト］に一覧表示される。
【００３１】
デバイスＸＭＬにより制御されるデバイスを登録する。図１０に示すように、ウェブブラウザーでTMNetWebConfigを表示してデバイスを登録する。
登録の手順は以下の通りである。
（１）ウェブブラウザーを起動し、URL（http：//プリンター５のIPアドレス/WebConfig/）を入力する。
（２）TMNetWebConfigが起動する。図１０の画面の［Webサービス設定］-［デバイス登録］より登録するデバイスの種類にしたがってクリックする。図１０で［デバイス登録］にはデバイスが表示される。登録するデバイスの種類をクリックする。本実施形態ではデバイスの種類は、図１１に示すように、プリンター、ディスプレイ、キー入力デバイス、シリアル通信デバイス、その他、の５種類から選択される。デバイスの種類の詳細は図１１に示す通りである。
【００３２】
（３）各デバイスの設定画面が表示される。接続したデバイスをプリンター５に登録する。
（３−１）プリンターを登録する場合
プリンター５の本体が備えるローカルプリンターが登録されていることを、以下の手順で確認する。
（３−１−１）図１０の画面で［登録済みプリンター］のデバイスID”local_printer”に、”プリンター５”が登録されていることを確認する。
（３−１−２）［テスト印字］をクリックする。ローカルプリンター５５により「TEST_PRINT」が印字されることを確認する。
（３−１−３）接続しているネットワークプリンター７を登録する。
以下の手順で登録する。
（３−１−３−１）図１２に示す項目（デバイスID、タイプ、型番、IPアドレス、リトライ間隔）を設定し、［登録］をクリックする。
（３−１−３−２）［登録済みプリンター］に追加されたことを確認したら、［テスト印字］をクリックする。登録したネットワークプリンター７により「TEST_PRINT」が印字されることを確認する。
（３−２）ディスプレイ（カスタマーディスプレイ８）を登録する場合。
カスタマーディスプレイ８のデバイスIDは、"local_display"固定である。接続しているカスタマーディスプレイ８を、以下の手順で登録する。
（３−２−１）図１０の画面で［使用する］を選択する。
（３−２−２）図１３の項目（通信設定、輝度設定）を設定し、［登録］をクリックする。
（３−２−３）［テスト表示］をクリックする。カスタマーディスプレイ８に文字が表示されることを確認する。
（３−３）キー入力デバイス１８を登録する場合
接続しているキー入力デバイス１８を、以下の手順で登録する。
（３−３−１）図１４の項目（デバイスID、デバイス名、制御スクリプト）を設定し、［登録］をクリックする。
（３−３−２）［登録済みキー入力デバイス］に追加されたことを確認したら、［動作テスト］をクリックする。
（３−３−３）ウェブブラウザーにより画面が表示される。キー入力デバイス１８を操作し、操作したとおりの結果が表示されることを確認する。
（３−４）シリアル通信デバイス１９を登録する場合
接続しているシリアル通信デバイス１９を、以下の手順で登録する。
（３−４−１）接続しているシリアル通信デバイス１９について、図１５の項目（デバイスID、デバイス名、制御スクリプト、通信速度、データビット、パリティ、ストップビット、フリー制御）を設定し、［登録］をクリックする。
（３−４−２）［登録済みシリアル通信デバイス］に追加されたことを確認する。
（３−５）その他のデバイスを登録する場合
接続しているデバイスを、以下の手順で登録する。
（３−５−１）接続しているデバイスについて、図１６の項目（デバイスID、制御スクリプト）を設定し、［登録］をクリックする。
（３−５−２）［登録済みその他デバイス］に追加されたことを確認する。
【００３３】
ここで、Device XMLを使用したアプリケーション開発のプログラミング方法について説明する。
Device XMLの基本的なプログラミングのシーケンスは、図１７のとおりである。
図１７の”Applications”はアプリケーション３１に相当し、”DeviceControl”はデバイス制御機能（デバイスサービスインターフェイス５０１）に相当し、”Device”は制御されるデバイスを示す。
【００３４】
１：TCPコネクションの確立。アプリケーション３１からプリンター５のSocket I/FにTCP接続する。
２：Connectメッセージ。デバイスサービスインターフェイス５０１との通信経路を確立する。
３：アプリケーション３１がopen_deviceメッセージ（type_printer）を送信する。
３．１：デバイスサービスインターフェイス５０１によりデバイスに”Cmd（）”コマンドが送信される。
４：デバイスは”Deviceopen”を返す。
４．１：デバイスサービスインターフェイス５０１がレスポンスを返す。
６：アプリケーション３１がdevice_data_messageを送信する。device_data_messageを使ってデバイスを制御する。
６．１：デバイスに”Cmd（）”コマンドが送信される。
６．１．１：デバイスが実行する。
ここで、Device_data_messageにレスポンスする。
７．：デバイスが実行結果を返す。
７．１：デバイスサービスインターフェイス５０１がdevice_data_message、または、error messageを返す。
８：アプリケーション３１がclose_device_nmessageを送信する。デバイスサービスインターフェイス５０１との接続およびSocket I/F通信を切断する。
８．１：デバイスサービスインターフェイス５０１によりデバイスに”Cmd（）”コマンドが送信される。
９：デバイスがcloseする。
９．１：デバイスサービスインターフェイス５０１がアプリケーション３１にレスポンスを返す。
【００３５】
デバイスXMLによる制御を行う場合、図１８のインターフェイスが使用される。
各データアイテムのフォーマットは図１９Ａの通りであり、各データの内容は図１９Ｂに示す。
【００３６】
アプリケーション３１とデバイスサービスインターフェイス５０１との間の通信データの例を図２０Ａ、図２０Ｂに示す。図２０Ａ、図２０Ｂでは、ＮＵＬＬ文字を”＼０”で表現する。図２０Ａ、図２０Ｂには、接続の確立、管理者情報の取得、デバイスのオープン、デバイスの制御、デバイスのクローズのデータの例を示す。
【００３７】
<device_data>メッセージの<data>要素の配列方法を説明する。
<data>タグ内で配列を記述する際のプログラミング方法は以下のとおりである。
・配列にする要素の先頭に属性array="true"を指定する。
・以降は同名の要素名で値を指定する。
keycodes=［49,50,51,52］；を表現する場合の例を図２１に示す。
【００３８】
Device XMLについて説明する。ePOS-Device XMLの一覧を示す。
ePOS-Device XMLには、以下が用意されている
・メッセージ（図２２）
メッセージは、アプリケーション３１からプリンター５にリクエストするメッセージ、及び、プリンター５からアプリケーション３１へのレスポンスメッセージのXMLである。
・デバイスごとのメッセージデータ（図２３）
制御するデバイスごとの、リクエスト、及びレスポンスのデータを格納するXMLである。この形式は、<device_data>メッセージの<data>要素の子要素になる。
【００３９】
デバイスごとのメッセージデータについて説明する。
デバイスごとのメッセージデータは、<device_data>メッセージの<data>要素の子要素で、デバイスを制御するデータを指定する。
メッセージデータの構成要素はデバイスの種類に応じて異なる。
データを指定する前に、<type>要素でメッセージデータの種類を指定してから、子要素のデータを指定する。デバイスの種類ごとに使用可能な<type>要素は図２３の通りである。
【００４０】
以下、メッセージについて説明する。
<connect>
［レスポンス］に含まれるメッセージである。
コネクションが確立されたことを、アプリケーションに返す。
アプリケーション３１は、本メッセージの受信をトリガーとして、以降に説明するメッセージ送信を行う。
［例］
<connect></connect>
【００４１】
<admin_info>
プリンター５に設定された、管理者情報を返す。TMNet WebConfigで設定した情報である。
［リクエスト］に含まれるメッセージである。
管理者情報を、プリンター５へ要求する。
［例］
<admin_info></admin_info>
［レスポンス］に含まれるメッセージである。
管理者情報を、アプリケーション３１に返す。子要素、データ型及び説明を図２４Ａに示す。
・code
code要素を図２４Ｂに示す。
・data
data要素を図２４Ｃに示す。
受信データの文字列について述べる。図２４Ｄに示す文字列はエスケープ処理される。
［例］正常時および異常時のレスポンスの例を、図２４Ｅに示す。
【００４２】
<open_device>
デバイスIDに紐付いたデバイスを使用可能にする。リクエストしたアプリケーション３１に対し、指定されたデバイスの排他的使用権を与える。
［リクエスト］に含まれるメッセージである。
オープンするデバイスを指定する。子要素、データ型及び説明を図２５Ａに示す。
・data
data要素を図２５Ｂに示す。
［例］リクエストの例を図２５Ｃに示す。
［レスポンス］に含まれるメッセージである。
デバイスのオープン結果を、アプリケーション３１に返す。子要素、データ型及び説明を図２５Ｄに示す。
・code
code要素を図２５Ｅに示す。
［例］正常時および異常時のレスポンスの例を、図２５Ｆに示す。
【００４３】
<close_device>
オープンしたデバイスをクローズする。
［リクエスト］に含まれるメッセージである。
クローズするデバイスを指定する。子要素、データ型及び説明を図２６Ａに示す。
［例］リクエストの例を図２６Ｂに示す。
［レスポンス］に含まれるメッセージである。
デバイスのクローズ結果を、アプリケーション３１に返す。子要素、データ型及び説明を図２６Ｃに示す。
・code
code要素を図２６Ｄに示す。
［例］正常時および異常時のレスポンスの例を、図２６Ｅに示す。
【００４４】
<device_data>
［リクエスト］に含まれるメッセージである。
デバイスへのデータを送信する。デバイス制御の命令や印刷・表示データが含まれる。子要素、データ型及び説明を図２７Ａに示す。
［例］リクエストの例を図２７Ｂに示す。
［レスポンス］に含まれるメッセージである。
デバイスからのデータを返す。デバイス制御の結果、デバイスで発生したイベントや、デバイスからの入力データが含まれる。子要素、データ型及び説明を図２７Ｃに示す。
［例］レスポンスの例を図２７Ｄに示す。
【００４５】
<error>
［レスポンス］に含まれるメッセージである。
デバイス制御命令、サービス制御命令でのエラー、その他共通エラーを返す。子要素、データ型及び説明を図２８Ａに示す。
・code
code要素を図２８Ｂに示す。
［例］レスポンスの例を図２８Ｃに示す。
【００４６】
バーコードスキャナーのメッセージデータについて説明する。
<type>ondata</type>
［レスポンス］に含まれるメッセージである。
バーコードスキャナーからのスキャンデータを、アプリケーションへ返す。子要素、データ型及び説明を図２９Ａに示す。
受信データの文字列について述べる。図２９Ｂの文字列はエスケープ処理される。
［例］レスポンスの例を図２９Ｃに示す。
【００４７】
プリンターのメッセージデータについて説明する。
印刷データについては、後述の「プリンター制御用XML」で説明する。
<type>print</type>
［リクエスト］に含まれるメッセージである。
プリンターへ印刷データと設定データを送信する。子要素、データ型及び説明を図３０Ａに示す。
［例］リクエストの例を図３０Ｂに示す。
【００４８】
<type>onxmlresult</type>
［レスポンス］に含まれるメッセージである。
印刷結果を、アプリケーションへ返す。子要素、データ型及び説明を図３１Ａに示す。
［例］レスポンスの例を図３１Ｂに示す。
【００４９】
プリンターを制御するＸＭＬ文書であるプリンター制御用XMLについて説明する。
プリンターのメッセージデータについては、後述する「プリンターのメッセージデータ」で説明する。
<epos-print>
アプリケーションからプリンターへ送信するＸＭＬ文書である。指定した機能の実行をプリンターにリクエストする。<epos-print>は要素を持っている。
［属性］
・xmlns
epos-printの名前を宣言する。
［子要素］子要素を図３２Ａに示す。
［例］ＸＭＬ文書の例を図３２Ｂに示す。
【００５０】
<response>
プリンターからアプリケーションへ返すＸＭＬ文書である。
［属性］
・success
表示結果を取得する。属性値を図３３Ａに示す。
・code
エラーコードを取得する。属性値を図３２Ｂに示す。
・status
プリンターの状態に応じて、以下の値の論理和を10進表現で取得する。属性値を図３２Ｃに示す。
［例］ＸＭＬ文書の例を図３３Ｄに示す。
【００５１】
<text>
印字する文字列を指定する。また、文字の装飾や印字位置、改行量など文字列に関する設定もする。
テキストの印字後、テキスト以外を印字する場合、改行または紙送りを実行する。
ページモードでは、文字のベースラインドット（151ページ「プリンターの仕様」）を基準として、現在の印字位置に文字を展開する。
［実体参照］
プリンター制御に必要な水平タブ、改行、および以下の記号は、図３４Aの実体参照を用いて記述する。
［属性］
・lang
対象言語を指定する。属性値を図３４Ｂに示す。
印字できる文字コードは、各プリンターの仕様による。
・font
文字フォントを指定する。属性値を図３４Ｃに示す。
日本語を指定すると、シフトJISコード体系の文字を印字できる。
・smooth
スムージングを設定する。スムージングを有効にすると、文字の印字品質が向上する。属性値を図３４Ｄに示す。
・dw
横倍角を設定する。属性値を図３４Ｅに示す。
ひとつの要素の中にdw属性とwidth属性を同時に指定した場合、width属性の倍率指定を優先される。
・dh
縦倍角を設定する。属性値を図３４Ｆに示す。
ひとつの要素の中にdh属性とheight属性を同時に指定した場合、height属性の倍率指定を優先される。
・width
横方向倍率を指定する。属性値を図３４Ｇに示す。
ひとつの要素の中にdw属性とwidth属性を同時に指定した場合、width属性の倍率指定を優先される。
・height
縦方向倍率を指定する。属性値を図３４Ｈに示す。
ひとつの要素の中にdh属性とheight属性を同時に指定した場合、height属性の倍率指定を優先される。
・reverse
白黒反転文字を設定する。属性値を図３４Ｉに示す。
・ul
アンダーラインを設定する。属性値を図３４Ｊに示す。
・em
強調印字を設定する。属性値を図３４Ｋに示す。
・color
文字色を指定する。属性値を図３４Ｌに示す。
・x
（初期値：“0”）
文字の印字開始位置をドット単位で指定する。
ページモードでは、position要素による横方向の印字位置指定と同じであるが、横方向の印字位置が移動する。
・align
位置揃えを指定する。属性値を図３４Ｍに示す。
スタンダードモードの場合、align属性の指定は「行の先頭の状態」で行う。
本要素で設定するalign属性は、image,logo,barcode,symbol要素のalign属性にも適用される。
・rotate
倒立印字を設定する。属性値を図３４Ｎに示す。
ページモードでは、rotateの指定は無効である。
ページモードではdirectionで印字方向を右→左（right_to_left）に設定して180度回転印字を行う。
本要素で設定するrotate属性は、barcode,symbol要素のrotate属性にも適用される。
・linespc
（初期値：“30”）
1行あたりの紙送り量をドット単位で指定する。
［例］文字列を印字する設定の例を図３４Ｐに示す。
【００５２】
<feed>
紙送り量を指定する。ドット単位または、行単位で紙送り量を指定する。紙送り量の指定がない場合、1行の紙送り（改行）する。また、1行あたりの改行量を設定する。
［属性］
・unit
紙送り量をドット単位で指定する。
・line
紙送り量を行単位で指定する。
・linespc
（初期値：“30”）
1行あたりの紙送り量をドット単位で指定する。
1行あたりの紙送り量が30ドットの場合、最大240行まで指定可能である。
スタンダードモードとページモードでは、改行量を別々に保持する。linespc属性を指定すると、後に続く<text>、<feed>のlinespc属性に影響する。
［例］ＸＭＬ文書の例を図３５に示す。
【００５３】
<image>
ラスター形式のビットイメージデータを指定する。（データ型xs：base64Binary）
ラスター形式とは、画像の左上を原点に画素を水平方向に走査したデータである。
データは2階調の場合は1画素あたり1ビット、16階調の場合は1画素あたり4ビットで、バイトデータの上位ビットから詰めていく。また、1ラインの走査データがバイト単位になるように、0でパディングする。
ラスターイメージを高速に印字する場合、align属性をleftに指定し、width属性の値をプリンターの用紙幅を超えない8の倍数に指定する。
ページモードでは、ラスターイメージの左下ドットを基準として、現在の印字位置にラスターイメージを展開する。印字位置は移動しない。
ページモードでは、ラスターイメージが印字領域をはみ出さないように、印字位置を設定する。
多階調ラスターイメージで印刷したバーコード・2次元コードの読み取り品質の影響があるので、2階調で印刷する。
ラスター形式のビットイメージは、ePOS-Print XML生成ツールで作成するか、ユーザーのアプリケーションで作成する。ユーザーのアプリケーションで作成する場合次の点を考慮する。
・2階調の場合：画像の幅を8の倍数にするか、足りないbitを0にする。
・16階調の場合：画像の幅を2の倍数にするか、足りないbitを0にする。
［属性］
・width
画像の幅をドット単位で指定する。
・height
画像の高さをドット単位で指定する。
・color
文字色を指定する。属性値を図３６Ａに示す。
・align
印刷位置を指定する。属性値を図３６Ｂに示す。
本要素で設定するalign属性は、text,logo,barcode,symbol要素のalign属性にも適用される。
・mode
（オプション（オプション））
カラーモードを指定する。属性値を図３６Ｃに示す。
［例］ＸＭＬ文書の例を図３６Ｄに示す。
【００５４】
<logo>
プリンターのNVメモリーに登録されているロゴを指定する。
ロゴは、機種専用ユーティリティーやロゴ登録ユーティリティー（TMFLogo）を使って、あらかじめプリンターにロゴの登録をする。
ページモードでは、ロゴの左下ドットを基準として、現在の印字位置にロゴを展開する。
［属性］
・key1
NVロゴ登録時に設定したキーコード1の値を指定する。
・key2
NVロゴ登録時に設定したキーコード2の値を指定する。必ず指定する。
・align
印刷位置を指定する。属性値を図３７Ａに示す。
本要素で設定するalign属性は、text,image,barcode,symbol要素のalign属性にも適用される。
［例］ＸＭＬ文書の例を図３７Ｂに示す。
【００５５】
<barcode>
バーコードデータを文字列で指定する。
バーコードの規格に準拠しない設定を行った場合、あるいは、バーコードがプリンターの印字領域よりも大きくなる場合、バーコードを印字しない。
ページモードでは、バーコードの左下ドット（HRIを除く）を基準として、現在の印字位置にバーコードを展開する。
［バーコードの種類］
図３８Ａ、図３８Ｂ、図３８Ｃに示すバーコードを指定することができる。
文字列で表現できないバイナリーデータを指定する場合、図３８Ｄに示すエスケープシーケンスで指定する。
［属性］
・type
バーコードの種類を指定する。属性値を図３８Ｅに示す。
・hri
HRIの位置を指定する。属性値を図３８Ｆに示す。
・font
HRIフォントを指定する。属性値を図３８Ｇに示す。
・width
（初期値：“3”）
モジュールの幅をドット単位で指定する。2〜6の整数値で指定する。
・height
（初期値：“162”）
モジュールの高さをドット単位で指定する。
・align
印刷位置を指定する。属性値を図３８Ｈに示す。
本要素で設定するalign属性は、text,image,logo,symbol要素のalign属性にも適用される。
・rotate
倒立印字を指定する。属性値を図３８Ｉに示す。
本要素で設定するrotate属性は、text,symbol要素のrotate属性にも適用される。
［例］ＸＭＬ文書の例を図３８Ｊに示す。
【００５６】
<symbol>
２次元コードを印刷する。
2次元コードを文字列で指定する。
2次元コードの規格に準拠しない設定を行った場合、あるいは、2次元コードがプリンターの印字領域よりも大きくなる場合、2次元コードを印字しない。
ページモードでは、2次元コードの左上ドットを基準として、現在の印字位置に2次元コードを展開する。
［2次元コードの種類］
図３９Ａ、図３９Ｂに示す2次元コードを指定することができる。
文字列で表現できないバイナリーデータを指定する場合、図３９Ｃに示すエスケープシーケンスで指定する。
［属性］
・type
２次元コードの種類を指定する。属性値を図３９Dに示す。
・level
エラー訂正レベルを指定する。属性値を図３９Ｅに示す。
レベルは2次元コードの種類に合わせて選択する。
MaxiCode,2次元GS1DataBarの場合、defaultを選択する。
・width
1モジュールの幅をドット単位で指定する。詳細を図３９Ｆに示す。
・height
1モジュールの高さをドット単位で指定する。詳細を図３９Ｇに示す。
・size
図３９Ｈに詳細を示す。
・align
印刷位置を指定する。属性値を図３９Ｉに示す。
本要素で設定するalign属性は、text,image,logo,barcode要素のalign属性にも適用される。
・rotate
倒立印字を指定する。属性値を図３９Ｊに示す。
本要素で設定するrotate属性は、text,barcode要素のrotate属性にも適用される。
［例］ＸＭＬ文書の例を図３９Ｋに示す。
【００５７】
<hline>
横罫線を指定する。
［属性］
・x1
横罫線の描画開始位置（ドット単位）を指定する。
・x2
横罫線の描画終了位置（ドット単位）を指定する。
・style
（オプション）
罫線の種類を指定する。属性値を図４０Ａに示す。
［例］ＸＭＬ文書の例を図４０Ｂに示す。
【００５８】
<vline-begin>
縦罫線の描画を開始する。
ページモードでは使用できない。
縦罫線は、後述する<vline-end>で終了を指定するまで描画する。本要素はvline-endと一緒に使用する。
［属性］
・x
縦罫線の描画開始位置（ドット単位）を指定する。
・style
（オプション）
罫線の種類を指定する。属性値の例を図４１Ａに示す。
［例］ＸＭＬ文書の例を図４１Ｂに示す。
【００５９】
<vline-end>
縦罫線の描画を終了する。
本要素は上記のvline-beginと一緒に使用する。
［属性］
・x
縦罫線の描画終了位置（ドット単位）を指定する。
・style
（オプション）
罫線の種類を指定する。属性値の例を図４２Ａに示す。
［例］ＸＭＬ文書の例を図４２Ｂに示す。
【００６０】
<page>
スタンダードモードからページモードへ切り替える。
［<page>の要素］
<page>には図４３Ａに示す要素を使用できる。
［例］ＸＭＬ文書の例を図４３Ｂに示す。
【００６１】
<area>
ページモードの印刷領域を指定する。
絶対原点を基準に、原点、幅、高さを指定して、印字領域を設定する。図４４Ａに示すように、絶対原点は、印字可能領域の左上のドットである。
印字内容に合わせて印字領域を指定する。印字データが印字領域をはみ出た場合、印字データが途中で切れた印字結果になる。
本要素はpage要素内で使用する。
［属性］
・x
（初期値：“0”）
横方向の原点をドット単位で指定する。
・y
（初期値：“0”）
縦方向の原点をドット単位で指定する。
・width
（初期値：機種によって異なる）
印字領域の幅をドット単位で指定する。
・height
（初期値：機種によって異なる）
印字領域の高さをドット単位で指定する。
印字領域の幅と高さは、印字方向の設定に合わせて確定する。印字データが切れてしまう場合がある。
［例］ＸＭＬ文書の例を図４４Ｂに示す。
【００６２】
<direction>
ページモードの印字方向を指定する。
印字方向を指定して、印字領域の回転を行う。印字領域の回転に合わせて、印字領域の始点が移動する。
本要素はpage要素内で使用する。
［属性］
・dir
回転方向を指定する。属性値を図４５Ａに示す。
［例］ＸＭＬ文書の例を図４５Ｂに示す。
【００６３】
<position>
ページモードの印字位置を指定する。
印字領域の始点を基準に、印字位置を指定する。印字領域の始点は、印字領域の回転に合わせて移動する。
本要素はpage要素内で使用する。
［属性］
・x
（初期値：“0”）
横方向位置をドット単位で指定する。
・y
（初期値：“21”）
縦方向位置をドット単位で指定する。
印字開始位置（座標）は、印字内容に合わせて指定する。以下を参考にする。
・文字列を印字する場合
最初の文字のベースライン左端を指定する。
標準の大きさで、左詰めで印字する場合はオプション能である。高さが2倍の文字を印刷する場合は、yを”42”以上に指定する。
・バーコードを印字する場合
シンボルの左下を指定する。yにバーコードの高さを指定する。
・グラフィック/ロゴを印字する場合
グラフィックデータの左下を指定する。yにグラフィックデータの高さを指定する。
・2次元コードを印字する場合
シンボルの左上を指定する。
［例］ＸＭＬ文書の例を図４６に示す。
【００６４】
<line>
ページモードで直線を描画する。
斜線は描画できない。
本要素はpage要素内で使用する。
［属性］
・x1
横罫線の描画開始位置（ドット単位）を指定する。
・y1
縦罫線の描画開始位置（ドット単位）を指定する。
・x2
横罫線の描画終了位置（ドット単位）を指定する。
・y2
縦罫線の描画終了位置（ドット単位）を指定する。罫線の種類を指定する。
・style
（オプション）
罫線の種類を指定する。属性値を図４７Ａに示す。
［例］ＸＭＬ文書の例を図４７Ｂに示す。
【００６５】
<rectangle>
ページモードで長方形を描画する。
本要素はpage要素内で使用する。
スタンダードモードではhline要素、vline-begin要素、vline-end要素を使用する。
［属性］
・x1
横罫線の描画開始位置（ドット単位）を指定する。
・y1
縦罫線の描画開始位置（ドット単位）を指定する。
・x2
横罫線の描画終了位置（ドット単位）を指定する。
・y2
縦罫線の描画終了位置（ドット単位）を指定する。
・style
（オプション）
罫線の種類を指定する。属性値の例を図４８Ａに示す。
［例］ＸＭＬ文書の例を図４８Ｂに示す。
【００６６】
<cut>
用紙カットを指定する。
スタンダードモードで使用する。
「行の先頭の状態」で実行する。用紙をカットすると「行の先頭の状態」になる。
［属性］
・type
（オプション）
カットの種類を指定する。属性値の例を図４９Ａに示す。
［例］ＸＭＬ文書の例を図４９Ｂに示す。
【００６７】
<pulse>
ドロアーキックコネクターに信号出力を指定する。機種によりブザーを鳴らすことができる。
［属性］
・drawer
（オプション）
ドロアーキックコネクターを指定する。属性値を図５０Ａに示す。
・time
（オプション）
ドロアーキック信号のオン時間を指定する。属性値を図５０Ｂに示す。
［例］ＸＭＬ文書の例を図に示す。
【００６８】
<sound>
ブザーを鳴らす。
［属性］
・pattern
（オプション）
ブザーの音色を指定する。属性値を図５１Ａに示す。
・repeat
（オプション，初期値：”1”）
繰り返し回数を指定する。属性値を図５１Ｂに示す。
［例］ＸＭＬ文書の例を図に示す。
【００６９】
カスタマーディスプレイのメッセージデータについて説明する。
表示データについては、後述の「カスタマーディスプレイ制御用XML」で説明する。
【００７０】
<type>display</type>
［リクエスト］
カスタマーディスプレイへ表示データと設定データを送信する。子要素を図５２Ａに示す。
［例］リクエストの例を図５２Ｂに示す。
【００７１】
<type>onxmlresult</type>
［レスポンス］
カスタマーディスプレイへ送信した結果を、アプリケーションへ返す。子要素を図５３Ａに示す。
［例］レスポンスの例を図５３Ｂに示す。
【００７２】
カスタマーディスプレイを制御するXML文書であるカスタマーディスプレイ制御用XMLについて説明する。
カスタマーディスプレイのメッセージデータについては、上述の「カスタマーディスプレイのメッセージデータ」で説明した通りである。
【００７３】
<epos-display>
アプリケーションからカスタマーディスプレイへ送信するXML文書である。指定した機能の実行をカスタマーディスプレイにリクエストする。<epos-display>はカスタマーディスプレイの制御に必要な子要素を持つ。
［属性］
・xmlns
epos-displayの名前を宣言する。子要素を図５４Ａに示す。
［例］ＸＭＬ文書の例を図５４Ｂに示す。
【００７４】
<response>
カスタマーディスプレイからアプリケーションへ返すXML文書である。
［属性］
・success
表示結果を取得する。属性値を図５５Ａに示す。
・code
エラーコードを取得する。属性値を図５５Ｂに示す。
・status
常に"0"がセットされる。
［例］ＸＭＬ文書の例を図５５Ｃに示す。
【００７５】
<window>
ウィンドウの作成、削除、カレントウィンドウの移動を制御する。
・属性number,x,y,width,heightが指定されている場合、指定のウィンドウの作成を行う。ウィンドウを定義する場合は定義済ウィンドウと重ならないように定義する。また、ディスプレイのサイズ（20桁×2行）に収まる大きさを指定する。
・属性number destroy="true"が指定されている場合、指定のウィンドウを削除する。
・ウィンドウの作成、削除に合致する属性が指定されておらず、numberが指定されている場合、カレントウィンドウを指定のウィンドウに移動する。
［属性］
・number
対象のウィンドウ番号を指定する。属性値を図５６に示す。
・x
ウィンドウ作成時のx座標（1〜20）を整数値で指定する。
・y
ウィンドウ作成時のy座標（1〜2）を整数値で指定する。
・width
ウィンドウ作成時の幅（1〜20）を整数値で指定する。
・height
ウィンドウ作成時の高さ（1〜2）を整数値で指定する。
・scrollmode
ウィンドウ作成時、作成ウィンドウのスクロール方法を指定する。属性値を図５７Ａに示す。
・destroy
numberで指定されたウィンドウを削除するか指定する。属性値を図５７Ｂに示す。
［エラー条件］
エラーの場合、図５７Ｃの値が返る。
［例］ＸＭＬ文書の例を図５７Ｄに示す。
【００７６】
<text>
文字列の表示を制御する。
・属性x及びyが指定されている場合、指定されたカーソル位置から表示を行う。
・属性x及びyが指定されていない場合、現在のカーソル位置から表示を行う。
［属性］
・x
テキスト表示のx座標（1〜20）を整数値で指定する。
・y
テキスト表示のy座標（1〜2）を整数値で指定する。
・reverse
表示文字の明暗反転を指定する。属性値を図５８Ａに示す。
・lang
テキスト表示の言語を指定する。省略時は、現在の設定が維持される。属性値を図５８Ｂに示す。
［例］ＸＭＬ文書の例を図５８Ｃに示す。
【００７７】
<cursor>
カーソル位置および表示設定を制御する。
・x,yの指定によりディスプレイ内でのカーソル座標を指定する。
・movetoの指定によりカレントウィンドウ内でのカーソル位置を指定する。
・x,y,movetoが同時に指定されている場合、どちらも実施しない。
［属性］
・x
カーソルのx座標（1〜20）を整数値で指定する。
・y
カーソルのy座標（1〜2）を整数値で指定する。
・moveto
カレントウィンドウ内のカーソル位置を指定する。属性値を図５９Ａに示す。
・type
カーソルの表示方法を指定する。省略時は現在の設定が維持される。属性値を図５９Ｂに示す。
［例］ＸＭＬ文書の例を図５９Ｃに示す。
【００７８】
<blink>
画面の点滅を制御する。intervalに指定した間隔で明滅を繰り返す。
実際の明滅間隔は、50ms単位で切り上げられる。
例えばintervalが1〜50の場合50ms、51〜100の場合100msとなる。
［属性］
・interval
点滅の間隔を整数値で指定する。属性値を図６０Ａに示す。
［例］ＸＭＬ文書の例を図６０Ｂに示す。
【００７９】
<brightness>
ディスプレイの輝度を制御する。
［属性］
・value
輝度をパーセントで指定する。属性値を図６１Ａに示す。
［例］ＸＭＬ文書の例を図６１Ｂに示す。
【００８０】
<marquee>
文字列のマーキー表示を制御する。
指定された文字列をuwaitに指定された間隔で1文字ずつ表示する。終端まで表示完了後、rwaitで指定された時間待機し、再度先頭から表示する。
［属性］
・format
マーキーの表示パターンを指定する。属性値を図６２Ａに示す。
・repeat
表示の繰り返し回数を指定する。属性値を図６２Ｂに示す。
・uwait
1文字表示の待機間隔をミリ秒で指定する。属性値を図６２Ｃに示す。
・rwait
文字列の終端を表示後の待機間隔をミリ秒で指定する。属性値を図６２Ｄに示す。
・lang
表示言語を指定する。省略時は現在の設定が維持される。属性値を図６２Ｅに示す。
［例］ＸＭＬ文書の例を図６２Ｆに示す。
【００８１】
<clock>
ディスプレイ画面の最下段右端に時刻を表示する。
表示時刻はプリンター５のOSが管理しているローカルタイムである。
［例］ＸＭＬ文書の例を図６３に示す。
【００８２】
<clear>
カレントウィンドウの表示を消去する。
ウィンドウが存在しない場合、ディスプレイ全体の表示を消去する。
［例］ＸＭＬ文書の例を図６４に示す。
【００８３】
<reset>
ディスプレイの表示を初期化する。初期化により、以下の状態となる。
・表示文字はすべて消去され、登録されたすべてのウィンドウが破棄される。
・カーソルはデフォルト状態に戻り、ディスプレイ原点に移動する。
・表示点滅、表示輝度がデフォルト状態に戻る。
［例］ＸＭＬ文書の例を図６５に示す。
【００８４】
<command>
任意のESC/POSコマンドを実行する。
指定するコマンドは16進文字列で指定する。
［例］ＸＭＬ文書の例を図６６に示す。
【００８５】
ＰＯＳキーボードのメッセージデータについて説明する。
<type>onkeypress</type>
［レスポンス］
ＰＯＳキーボードからの入力データを、アプリケーションへ返す。子要素を図６７Ａに示す。
（受信データの文字列について）
図６７Ｂに示す文字列はエスケープ処理される。
［例］レスポンスの例を図６７Ｃに示す。
【００８６】
<type>setprefix</type>
ＰＯＳキーボードからの入力を検出するため、文字列の始まりと判断するキーコードを指定する。本メッセージにより指定されたキーコードが入力された場合、そこからEnterキーが押されるまでの文字列がonstringメッセージとして通知される。例えば、ＰＯＳキーボードから、バーコードの代替入力を行う場合に使用する。onstringメッセージを止める場合、keycodeのないsetprefixメッセージを送信する。
［リクエスト］
ＰＯＳキーボードからの入力を検出するための、文字列の始まりを判断するキーコードを指定する。子要素を図６８Ａに示す。
［例］リクエストの例を図６８Ｂに示す。
【００８７】
<type>onstring</type>
［レスポンス］
ＰＯＳキーボードからの入力データを、アプリケーションへ返す。
setprefixで指定したキーコードのいずれかからEnterまでの入力が検出されたことを通知する。引数には入力された一連の文字列のほか、検出されたキーコードの情報が取得する。子要素を図６９Ａに示す。
（受信データの文字列について）
図６９Ｂの文字列はエスケープ処理される。
［例］レスポンスの例を図６９Ｃに示す。
【００８８】
シリアルデバイスのメッセージデータについて説明する。
<type>sendcommand</type>
［リクエスト］
コマンドを、シリアルデバイスに送信する。子要素を図７０Aに示す。
［例］リクエストの例を図７０Ｂに示す。
【００８９】
<type>oncommandreply</type>
［レスポンス］
シリアルデバイスからのデータを、アプリケーションへ返す。子要素を図７１Ａに示す。
・status
属性値を図７１Ｂに示す。
［例］レスポンスの例を図７１Ｃに示す。
【００９０】
続いて、デバイス制御スクリプト５０２について説明する。
まず、プログラミングについて説明する。
図７２は、デバイス制御スクリプトの使用に関する説明図である。
本発明のデバイス制御機能で提供するデバイス制御スクリプト用ＡＰＩを使うことにより、デバイスのデータ処理のカスタマイズをしたり、新たなデバイスをアプリケーション３１から使用したりすることができる。
図７２に示すように、デバイス制御スクリプト５０２は、デバイスコネクション５０３と、クライアントコネクション５０４とを有する。この図７２では高機能プリンター５のデバイスを総称してデバイス２０として示す。
【００９１】
上述したopen_deviceメッセージを含むＸＭＬデータ（リクエスト）が送信されると、プリンター５上のSocket I/F５００が、ＸＭＬデータを受信する。Socket I/F５００は受信したデータをデバイスサービスインターフェイス５０１に渡す。デバイスサービスインターフェイス５０１は、open_deviceメッセージで要求されたデバイスに対応するデバイス制御スクリプトを使用できるようにオブジェクトを生成する。生成されたオブジェクトにより、デバイス２０を制御できる。
［デバイス制御スクリプトのオブジェクト］
デバイス制御スクリプト５０２には、デバイスサービスインターフェイス５０１から図７３に示すオブジェクトが渡される。これらクライアント接続（ClientConnection）オブジェクト、及び、デバイス接続（DeviceConnection）オブジェクトを使うことで、デバイス制御スクリプト５０２はアプリケーション３１、およびデバイス２０と通信することができる。
【００９２】
デバイス制御スクリプトのオブジェクト使った機能について説明する。
デバイス制御スクリプトＡＰＩを使って以下の機能を使用できる。
・アプリケーション３１側のデバイスオブジェクトの任意のイベントを呼び出し可能である。
・デバイスにデータを送信可能である。
・デバイスから発生したデータを受信可能である。
【００９３】
デバイス制御スクリプトの構成について説明する。
デバイス制御スクリプトは以下の条件を含むようにコーディングされる。
・デバイス制御に必要なコードは、1つのファイルにまとめて記述される。
（TMNetWebConfigを使ってデバイスの設定をする際、1つのファイルしか登録できない。）
・ファイル名の最初のドット"."までの名称と、コンストラクター名称を同じにする。
［例］ファイル名：Keyboard_Generic.ver1.0.js→コンストラクターの名称：Keyboard_Generic
・コンストラクターの外部参照のために、exports宣言する。
［例］exports.Keyboard_Generic=Keyboard_Generic
・デバイス制御スクリプトには、図７４及び図７５に示すプロパティを持たせる。コンストラクターで適切な名称を設定される。
DEVICE_TYPEプロパティ（オブジェクト種類：String）
設定値の一覧を図７４に示す。
DEVICE_GROUPプロパティ（オブジェクト種類：String）
設定値の一覧を図７５に示す。
・デバイスで発生したデータを受け取るためonDeviceDataメソッドを用意する。詳細は、後述する「デバイス制御スクリプト名オブジェクト」で説明する。
・アプリケーション３１側で動作するデバイスオブジェクトのメソッドに対応するメソッドを用意する。詳細は、後述する「任意イベント」で説明する。
デバイス制御スクリプト５０２の構成例を、図７６に示す。
【００９４】
デバイス制御スクリプトAPIの一覧を示す。
デバイス制御スクリプトAPIには、次のオブジェクトが用意されている。
・ClientConnectionオブジェクト（図７７にAPIの一覧を示す。）
・DeviceConnectionオブジェクト（図７８にＡＰＩの一覧を示す。）
・デバイス制御スクリプト名オブジェクト（図７９にＡＰＩの一覧を示す。）
【００９５】
ClientConnectionオブジェクトについて説明する。
このオブジェクトは、デバイス制御スクリプト５０２のコンストラクターの第1パラメーターに渡されるオブジェクトである。
・send
ブラウザーで動作するデバイスオブジェクトにデータを送信する。
［構文］
send（event,data）；
［パラメーター］
・event：オブジェクト種類：（String）
デバイスオブジェクトのイベント名を設定する。
・data：オブジェクト種類：（Object）
デバイスオブジェクトのイベントに渡すデータを指定する。
例を図８０に示す。この例では、デバイスオブジェクトのonkeypressイベントが呼び出され、onkeypressイベントのdataパラメーターを使い、data.keycodeから49、data.asciiから'1'を取得する。
【００９６】
DeviceConnectionオブジェクトについて説明する。
このオブジェクトは、デバイス制御スクリプト５０２のコンストラクターの第2パラメーターに渡されるオブジェクトである。
・send
シリアル通信デバイスにデータを送信する。
［構文］
send（data）；
［パラメーター］
・data：オブジェクト種類：（Buffer）
デバイスに送信するデータを指定する。
【００９７】
デバイス制御スクリプト名オブジェクトについて説明する。
・onDeviceDataイベント（HIDドライバーで動作可能な入力デバイス）
このイベントは、キー入力デバイスから検出されたデータを受信するイベントである。
キー入力デバイス用のデバイス制御スクリプト５０２の場合、この形式でイベントが記述される。
［構文］
onDeviceData（event,keycode,ascii）；
［パラメーター］
・event：オブジェクト種類：（Number）
キー操作の方向を受け取る。値の一覧を図８１に示す。
・keycode：オブジェクト種類：（Number）
キーコードを受け取る。キーコードの例は図３Ａ、図３Ｂのキーコード一覧に示した。
・ascii：オブジェクト種類：（String）
操作されたキーに対応する文字を受け取る。
キーコードに対応する文字がない場合（F1キーなど）、undefinedになる。
【００９８】
・onDeviceDataイベント（シリアル通信デバイス）
このイベントはシリアル通信デバイスからデータを受信するイベントである。
シリアル通信用のデバイス制御スクリプト５０２の場合、この形式でイベントが記述される。
［構文］
onDeviceData（data）；
［パラメーター］
・data：オブジェクト種類：（Buffer）
シリアル通信デバイスから受信したデータを受け取る。
【００９９】
・任意イベント
ブラウザーで動作するデバイスオブジェクトのAPI実行結果を受信するイベントである。
［構文］
callEventで指定した名称（data）；
［パラメーター］
・data：オブジェクト種類：（Object）
デバイスオブジェクトのcallEventでパラメーター指定したオブジェクトを受け取る。
【０１００】
プログラムについて説明する。
［概要］
プログラムは、図８２に示すように、バーコードスキャナーでデータを読み取り、印刷する機能を提供する。
［環境］
デバイス
・プリンター５
・バーコードスキャナー９
実行環境
ここでは次の環境で解説する。
【０１０１】
プログラムの環境構築のフローを図８３Ａに示す。
１．プリンター５のネットワークを設定する。
システム及びプリンター５のネットワーク設定をする。プリンター５のネットワーク設定は、以下のいずれかの方法により設定できる。
・プリンター５で、Windowsのネットワークを設定する。
・外部機器（Windowsのコンピューター）に、TMNet WinConfigをインストールして設定する。
２．プリンター５にバーコードスキャナー９を接続。
プリンター５にバーコードスキャナー９を接続する。
３．バーコードスキャナーの設定。
プリンター５に、バーコードスキャナー９を登録する。登録は、ウェブブラウザーから行う。
【０１０２】
［バーコードスキャナーの設定］
デバイスＸＭＬにより制御されるバーコードスキャナー９を、プリンター５に登録する。登録及び設定を、TMNet WebConfigを使って行う。
TMNet WebConfigの画面の例を図９４Ａに示す。
１．プリンター５にバーコードスキャナー９が接続されているか確認し、プリンター５の電源をオンにする。
２．設定用のコンピューターでウェブブラウザーを起動し、ＵＲＬ（http：//プリンター５のIPアドレス/webconfig/）を入力する。
３．TMNet WebConfigが起動される。図９４Ａに（３）で示す［Webサービス設定］-［デバイス管理］-［キー入力デバイス］を選択する。
４．“キー入力デバイス”画面が表示される。図９４Ａの（４）で示す入力欄に、図９４Ｂに示す項目を設定し、［登録］をクリックする。
５．登録したバーコードスキャナーが、図９４Ａの（５）の［登録済みキー入力デバイス］に表示される。
【０１０３】
以上説明したように、本発明を適用した実施形態のデバイス制御システム１００は、アプリケーション３１を実行する端末３と、デバイスが接続されるコネクターパネル６０を備えたプリンター５とを、ネットワークを介して接続する。端末３は、アプリケーション３１が生成するＸＭＬで記述されたデータをプリンター５に送信する。プリンター５は、端末３から送信されたＸＭＬのデータをSocket I/F５００により受信する。プリンター５は、デバイスサービスインターフェイス５０１及びデバイス制御スクリプト５０２の機能により、端末３がデータで管理者情報を要求した場合はプリンター５が有する管理者情報を端末３に送信する。また、プリンター５は、端末３がデータでデバイスの制御を要求した場合はデバイスを制御する。このため、ネットワーク接続された端末３により、プリンター５に接続されたデバイスを制御できる。また、端末３は、ＸＭＬで記述されたデータを生成するアプリケーションを実行できる装置であれば、制限されない。ＸＭＬは汎用性が高いので、様々な装置を端末３として使用できる。また、端末３のアプリケーションの開発が容易である。
【０１０４】
また、プリンター５は、端末３が<admin_info>メッセージを含むデータで管理者情報を要求した場合に、プリンター５が有する管理者名及び／又はロケーションを含むＸＭＬのデータを端末３に返す。
また、プリンター５は、端末３がデータでデバイスのオープンを要求した場合に、デバイスを制御可能な状態にし、端末３がデータでデバイスのクローズを要求した場合に、制御可能なデバイスを制御不能な状態に移行する。
また、アプリケーション３１が生成するデータは、プリンター５に接続されたデバイスごとに異なるメッセージデータ、または、デバイスに共通のメッセージデータを含む。
また、プリンター５は、データで要求されたデバイスを制御する場合に、デバイスにデータを送信するDeviceConnectionオブジェクトと、端末３にデータを送信するClientConnectionオブジェクトとを生成する。
【０１０５】
なお、上述した実施の形態は、あくまでも本発明の一態様を示すものであり、本発明の範囲内で任意に変形および応用が可能である。
【産業上の利用可能性】
【０１０６】
以上説明したように、本発明は、デバイスを制御するデバイス制御システムに有用であり、ＰＯＳシステムに用いられるデバイスの制御や印刷装置に適用可能である。
【符号の説明】
【０１０７】
２…アプリケーションサーバー、３…端末、５…プリンター、７…ネットワークプリンター、８…カスタマーディスプレイ、９…バーコードスキャナー、１１…無線ＬＡＮアクセスポイント、１２…ディスプレイ、１３…キャッシュドロワー、１４…キーボード、１５…ＵＳＢ延長ケーブル、１７…無線ＬＡＮユニット、１８…キー入力デバイス、１９…シリアル通信デバイス、２０…デバイス、３１…アプリケーション、５１…ロール紙カバー、５２…カバーオープンボタン、５３…マニュアルカッター、５４…カッターカバー、５５…ローカルプリンター、５６Ａ…リセットボタン、５６Ｂ…電源スイッチ、５７…ＬＥＤ表示部、５８…コントロールパネル、５９…コネクターカバー、６０…コネクターパネル、６１…ドロワーキックコネクター、６２…イーサネットコネクター、６３…ＵＳＢコネクター、６４…ＶＧＡコネクター、６５…ＣＯＭコネクター、１００…デバイス制御システム、５００…Socket I/F、５０１…デバイスサービスインターフェイス、５０２…デバイス制御スクリプト、５０３…デバイスコネクション、５０４…クライアントコネクション。
【図１】
2014106883.tif 000003
【図２】
2014106883.tif 000004
【図３Ａ】
2014106883.tif 000005
【図３Ｂ】
2014106883.tif 000006
【図４】
2014106883.tif 000007
【図５】
2014106883.tif 000008
【図６】
2014106883.tif 000009
【図７】
2014106883.tif 000010
【図８】
2014106883.tif 000011
【図９】
2014106883.tif 000012
【図１０】
2014106883.tif 000013
【図１１】
2014106883.tif 000014
【図１２】
2014106883.tif 000015
【図１３】
2014106883.tif 000016
【図１４】
2014106883.tif 000017
【図１５】
2014106883.tif 000018
【図１６】
2014106883.tif 000019
【図１７】
2014106883.tif 000020
【図１８】
2014106883.tif 000021
【図１９Ａ】
2014106883.tif 000022
【図１９Ｂ】
2014106883.tif 000023
【図２０Ａ】
2014106883.tif 000024
【図２０Ｂ】
2014106883.tif 000025
【図２１】
2014106883.tif 000026
【図２２】
2014106883.tif 000027
【図２３】
2014106883.tif 000028
【図２４Ａ】
2014106883.tif 000029
【図２４Ｂ】
2014106883.tif 000030
【図２４Ｃ】
2014106883.tif 000031
【図２４Ｄ】
2014106883.tif 000032
【図２４Ｅ】
2014106883.tif 000033
【図２５Ａ】
2014106883.tif 000034
【図２５Ｂ】
2014106883.tif 000035
【図２５Ｃ】
2014106883.tif 000036
【図２５Ｄ】
2014106883.tif 000037
【図２５Ｅ】
2014106883.tif 000038
【図２５Ｆ】
2014106883.tif 000039
【図２６Ａ】
2014106883.tif 000040
【図２６Ｂ】
2014106883.tif 000041
【図２６Ｃ】
2014106883.tif 000042
【図２６Ｄ】
2014106883.tif 000043
【図２６Ｅ】
2014106883.tif 000044
【図２７Ａ】
2014106883.tif 000045
【図２７Ｂ】
2014106883.tif 000046
【図２７Ｃ】
2014106883.tif 000047
【図２７Ｄ】
2014106883.tif 000048
【図２８Ａ】
2014106883.tif 000049
【図２８Ｂ】
2014106883.tif 000050
【図２８Ｃ】
2014106883.tif 000051
【図２９Ａ】
2014106883.tif 000052
【図２９Ｂ】
2014106883.tif 000053
【図２９Ｃ】
2014106883.tif 000054
【図３０Ａ】
2014106883.tif 000055
【図３０Ｂ】
2014106883.tif 000056
【図３１Ａ】
2014106883.tif 000057
【図３１Ｂ】
2014106883.tif 000058
【図３２Ａ】
2014106883.tif 000059
【図３２Ｂ】
2014106883.tif 000060
【図３３Ａ】
2014106883.tif 000061
【図３３Ｂ】
2014106883.tif 000062
【図３３Ｃ】
2014106883.tif 000063
【図３３Ｄ】
2014106883.tif 000064
【図３４Ａ】
2014106883.tif 000065
【図３４Ｂ】
2014106883.tif 000066
【図３４Ｃ】
2014106883.tif 000067
【図３４Ｄ】
2014106883.tif 000068
【図３４Ｅ】
2014106883.tif 000069
【図３４Ｆ】
2014106883.tif 000070
【図３４Ｇ】
2014106883.tif 000071
【図３４Ｈ】
2014106883.tif 000072
【図３４Ｉ】
2014106883.tif 000073
【図３４Ｊ】
2014106883.tif 000074
【図３４Ｋ】
2014106883.tif 000075
【図３４Ｌ】
2014106883.tif 000076
【図３４Ｍ】
2014106883.tif 000077
【図３４Ｎ】
2014106883.tif 000078
【図３４Ｐ】
2014106883.tif 000079
【図３５】
2014106883.tif 000080
【図３６Ａ】
2014106883.tif 000081
【図３６Ｂ】
2014106883.tif 000082
【図３６Ｃ】
2014106883.tif 000083
【図３６Ｄ】
2014106883.tif 000084
【図３７Ａ】
2014106883.tif 000085
【図３７Ｂ】
2014106883.tif 000086
【図３８Ａ】
2014106883.tif 000087
【図３８Ｂ】
2014106883.tif 000088
【図３８Ｃ】
2014106883.tif 000089
【図３８Ｄ】
2014106883.tif 000090
【図３８Ｅ】
2014106883.tif 000091
【図３８Ｆ】
2014106883.tif 000092
【図３８Ｇ】
2014106883.tif 000093
【図３８Ｈ】
2014106883.tif 000094
【図３８Ｉ】
2014106883.tif 000095
【図３８Ｊ】
2014106883.tif 000096
【図３９Ａ】
2014106883.tif 000097
【図３９Ｂ】
2014106883.tif 000098
【図３９Ｃ】
2014106883.tif 000099
【図３９Ｄ】
2014106883.tif 000100
【図３９Ｅ】
2014106883.tif 000101
【図３９Ｆ】
2014106883.tif 000102
【図３９Ｇ】
2014106883.tif 000103
【図３９Ｈ】
2014106883.tif 000104
【図３９Ｉ】
2014106883.tif 000105
【図３９Ｊ】
2014106883.tif 000106
【図３９Ｋ】
2014106883.tif 000107
【図４０Ａ】
2014106883.tif 000108
【図４０Ｂ】
2014106883.tif 000109
【図４１Ａ】
2014106883.tif 000110
【図４１Ｂ】
2014106883.tif 000111
【図４２Ａ】
2014106883.tif 000112
【図４２Ｂ】
2014106883.tif 000113
【図４３Ａ】
2014106883.tif 000114
【図４３Ｂ】
2014106883.tif 000115
【図４４Ａ】
2014106883.tif 000116
【図４４Ｂ】
2014106883.tif 000117
【図４５Ａ】
2014106883.tif 000118
【図４５Ｂ】
2014106883.tif 000119
【図４６】
2014106883.tif 000120
【図４７Ａ】
2014106883.tif 000121
【図４７Ｂ】
2014106883.tif 000122
【図４８Ａ】
2014106883.tif 000123
【図４８Ｂ】
2014106883.tif 000124
【図４９Ａ】
2014106883.tif 000125
【図４９Ｂ】
2014106883.tif 000126
【図５０Ａ】
2014106883.tif 000127
【図５０Ｂ】
2014106883.tif 000128
【図５０Ｃ】
2014106883.tif 000129
【図５１Ａ】
2014106883.tif 000130
【図５１Ｂ】
2014106883.tif 000131
【図５１Ｃ】
2014106883.tif 000132
【図５２Ａ】
2014106883.tif 000133
【図５２Ｂ】
2014106883.tif 000134
【図５３Ａ】
2014106883.tif 000135
【図５３Ｂ】
2014106883.tif 000136
【図５４Ａ】
2014106883.tif 000137
【図５４Ｂ】
2014106883.tif 000138
【図５５Ａ】
2014106883.tif 000139
【図５５Ｂ】
2014106883.tif 000140
【図５５Ｃ】
2014106883.tif 000141
【図５６】
2014106883.tif 000142
【図５７Ａ】
2014106883.tif 000143
【図５７Ｂ】
2014106883.tif 000144
【図５７Ｃ】
2014106883.tif 000145
【図５７Ｄ】
2014106883.tif 000146
【図５８Ａ】
2014106883.tif 000147
【図５８Ｂ】
2014106883.tif 000148
【図５８Ｃ】
2014106883.tif 000149
【図５９Ａ】
2014106883.tif 000150
【図５９Ｂ】
2014106883.tif 000151
【図５９Ｃ】
2014106883.tif 000152
【図６０Ａ】
2014106883.tif 000153
【図６０Ｂ】
2014106883.tif 000154
【図６１Ａ】
2014106883.tif 000155
【図６１Ｂ】
2014106883.tif 000156
【図６２Ａ】
2014106883.tif 000157
【図６２Ｂ】
2014106883.tif 000158
【図６２Ｃ】
2014106883.tif 000159
【図６２Ｄ】
2014106883.tif 000160
【図６２Ｅ】
2014106883.tif 000161
【図６２Ｆ】
2014106883.tif 000162
【図６３】
2014106883.tif 000163
【図６４】
2014106883.tif 000164
【図６５】
2014106883.tif 000165
【図６６】
2014106883.tif 000166
【図６７Ａ】
2014106883.tif 000167
【図６７Ｂ】
2014106883.tif 000168
【図６７Ｃ】
2014106883.tif 000169
【図６８Ａ】
2014106883.tif 000170
【図６８Ｂ】
2014106883.tif 000171
【図６９Ａ】
2014106883.tif 000172
【図６９Ｂ】
2014106883.tif 000173
【図６９Ｃ】
2014106883.tif 000174
【図７０Ａ】
2014106883.tif 000175
【図７０Ｂ】
2014106883.tif 000176
【図７１Ａ】
2014106883.tif 000177
【図７１Ｂ】
2014106883.tif 000178
【図７１Ｃ】
2014106883.tif 000179
【図７２】
2014106883.tif 000180
【図７３】
2014106883.tif 000181
【図７４】
2014106883.tif 000182
【図７５】
2014106883.tif 000183
【図７６】
2014106883.tif 000184
【図７７】
2014106883.tif 000185
【図７８】
2014106883.tif 000186
【図７９】
2014106883.tif 000187
【図８０】
2014106883.tif 000188
【図８１】
2014106883.tif 000189
【図８２】
2014106883.tif 000190
【図８３】
2014106883.tif 000191
【図８４Ａ】
2014106883.tif 000192
【図８４Ｂ】
2014106883.tif 000193
【国際調査報告】
2014106883.tif 000194
2014106883.tif 000195