JP2012213859A - Printer, program, and printer system - Google Patents

Printer, program, and printer system Download PDF

Info

Publication number
JP2012213859A
JP2012213859A JP2011078890A JP2011078890A JP2012213859A JP 2012213859 A JP2012213859 A JP 2012213859A JP 2011078890 A JP2011078890 A JP 2011078890A JP 2011078890 A JP2011078890 A JP 2011078890A JP 2012213859 A JP2012213859 A JP 2012213859A
Authority
JP
Japan
Prior art keywords
key code
printer
application
computer
storage unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2011078890A
Other languages
Japanese (ja)
Inventor
Tsutomu Miyazawa
勉 宮澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Component Ltd
Original Assignee
Fujitsu Component Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Component Ltd filed Critical Fujitsu Component Ltd
Priority to JP2011078890A priority Critical patent/JP2012213859A/en
Publication of JP2012213859A publication Critical patent/JP2012213859A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a printer, a program, and a printer system, for easily transmitting data to applications provided in a computer.SOLUTION: The printer includes: a plurality of end points (EP0 to EPx) to be used for communication with the computer 10; and a CPU 42 configured to interrupt-transfer a keycode to the computer 10 from at least one end point EP2 to be used for HID (Human interface Device)-class communication among the plurality of endpoints (EP0 to EPx).

Description

本発明は、プリンタ、プログラム、およびプリンタシステムに関する。   The present invention relates to a printer, a program, and a printer system.

コンピュータと、キーボード、マウス、及びプリンタなどの各種コンピュータ周辺機器との接続インタフェースに、ユニバーサルシリアルバス(Universal Serial Bus:USB)が用いられることが多い。USBは、コンピュータ周辺機器に関するプラグ&プレイ機能、コネクタケーブルの共通化など、ユーザの使い易さを考慮した設計になっている。   In many cases, a universal serial bus (USB) is used as a connection interface between a computer and various computer peripheral devices such as a keyboard, a mouse, and a printer. The USB is designed in consideration of ease of use by the user, such as a plug and play function related to computer peripheral devices and a common connector cable.

コンピュータとプリンタとの間では、コンピュータからプリンタへ印刷データが通信されるほか、プリンタからコンピュータへ例えばプリンタステータスのデータが通信される。特許文献1には、プリンタが有するデータ記憶領域の空き状態データをコンピュータにインタラプト転送する技術が開示されている。特許文献2には、コンピュータからのゲット・ディスクリプタに対して、製品名などのデータに続けて製品属性データを付加して送信する技術が開示されている。特許文献3には、デジタルプリンタからデジタルカメラにプリンタステータスデータをバルク転送する技術が開示されている。   Between the computer and the printer, print data is communicated from the computer to the printer, and for example, printer status data is communicated from the printer to the computer. Patent Document 1 discloses a technique for interrupt-transferring free state data in a data storage area of a printer to a computer. Japanese Patent Application Laid-Open No. H10-228688 discloses a technique for adding product attribute data to a get descriptor from a computer followed by data such as a product name and transmitting the data. Japanese Patent Application Laid-Open No. 2004-228561 discloses a technique for bulk transferring printer status data from a digital printer to a digital camera.

特開2002−318778号公報JP 2002-318778 A 特開2004−272570号公報JP 2004-272570 A 特開2005−312080号公報JP 2005-31080 A

コンピュータとプリンタとがUSBインタフェースを介して接続されている場合において、コンピュータとプリンタとの間の通信は一般的にバルク転送が使用される。即ち、プリンタからコンピュータに例えばプリンタステータスのデータを送信する場合にはバルク転送が使用される。コンピュータに送信されたプリンタステータスのデータは、最終的にはコンピュータの所定のアプリケーション(例えば、印刷アプリケーション)に通知されることとなる。   When the computer and the printer are connected via the USB interface, bulk transfer is generally used for communication between the computer and the printer. That is, when transferring printer status data from a printer to a computer, for example, bulk transfer is used. The printer status data transmitted to the computer is finally notified to a predetermined application (for example, a printing application) of the computer.

しかしながら、例えば印刷アプリケーションにプリンタステータスのデータを通知しようとすると、複雑な処理を要することになる。そこで、本発明は、このような課題に鑑みなされたものであり、アプリケーションにデータを容易に通知することが可能なプリンタ、プログラム、およびプリンタシステムを提供することを目的とする。   However, for example, when trying to notify the printer application of printer status data, complicated processing is required. Therefore, the present invention has been made in view of such a problem, and an object of the present invention is to provide a printer, a program, and a printer system capable of easily notifying data to an application.

本発明は、コンピュータとの通信に使用される複数のエンドポイントと、前記複数のエンドポイントのうちHIDクラスの通信に使用する少なくとも1つのエンドポイントからキーコードを前記コンピュータにインタラプト転送する制御部と、を備えることを特徴とするプリンタである。本発明によれば、複雑な処理を行うデバイスドライバやソフトウェアを使用することなく、コンピュータに備わるアプリケーションにデータを容易に通知できる。   The present invention includes a plurality of endpoints used for communication with a computer, and a control unit that interrupt-transfers a key code to the computer from at least one of the plurality of endpoints used for HID class communication; A printer comprising: According to the present invention, data can be easily notified to an application provided in a computer without using a device driver or software that performs complicated processing.

上記構成において、前記キーコードは、プリンタステータスに対応したキーコードである構成とすることができる。   In the above configuration, the key code may be a key code corresponding to a printer status.

上記構成において、前記キーコードを記憶する記憶部を有し、前記制御部は、前記記憶部に記憶された前記キーコードを前記コンピュータにインタラプト転送すると共に、前記コンピュータからの指示に基づき、前記記憶部に記憶された前記キーコードを変更する構成とすることができる。この構成によれば、ユーザ毎の使用状況に応じたキーコードの設定ができる。   In the above configuration, the storage unit stores the key code, and the control unit interrupt-transfers the key code stored in the storage unit to the computer and also stores the storage based on an instruction from the computer. The key code stored in the section can be changed. According to this configuration, it is possible to set a key code according to the usage situation for each user.

本発明は、複数のエンドポイントを有するプリンタに接続され、前記複数のエンドポイントのうちHIDクラスの通信に使用される少なくとも1つのエンドポイントからキーコードがインタラプト転送されるコンピュータを、前記1つのエンドポイントからインタラプト転送される前記キーコードがキーボードイベントとしてアクティブなアプリケーションに通知される前に前記キーコードを取得する取得手段、前記取得手段で取得した前記キーコードを、記憶部に記憶された前記キーコードに対応したウィンドウメッセージに変換する変換手段、前記変換手段で変換した前記ウィンドウメッセージを、前記記憶部に通知先として記憶されたアプリケーションに通知する通知手段、として機能させることを特徴とするプログラムである。本発明によれば、プリンタから送信されたデータを、アクティブなアプリケーションだけではなく、任意のアプリケーションに通知することができる。   The present invention relates to a computer connected to a printer having a plurality of endpoints, wherein a key code is interrupt-transferred from at least one endpoint used for HID class communication among the plurality of endpoints. Acquisition means for acquiring the key code before the active application is notified to the active application as a keyboard event, and the key code acquired by the acquisition means is stored in the storage unit A program for causing a conversion means for converting into a window message corresponding to a code, and a notification means for notifying an application stored as a notification destination in the storage section of the window message converted by the conversion means. is there. According to the present invention, data transmitted from a printer can be notified not only to an active application but also to an arbitrary application.

上記構成において、前記キーコードは、プリンタステータスに対応したキーコードである構成とすることができる。   In the above configuration, the key code may be a key code corresponding to a printer status.

上記構成において、前記変換手段は、前記取得手段で取得した前記キーコードを、前記キーコードに対応したキーボードイベントに変換する構成とすることができる。   The said structure WHEREIN: The said conversion means can be set as the structure which converts the said key code acquired by the said acquisition means into the keyboard event corresponding to the said key code.

上記構成において、前記記憶部に記憶された前記通知先のアプリケーションを変更する第1変更手段、を有する構成とすることができる。   The said structure WHEREIN: It can be set as the structure which has a 1st change means to change the said application of the notification destination memorize | stored in the said memory | storage part.

上記構成において、前記記憶部に記憶された前記ウィンドウメッセージを変更する第2変更手段、を有する構成とすることができる。   The said structure WHEREIN: It can be set as the structure which has the 2nd change means to change the said window message memorize | stored in the said memory | storage part.

本発明は、コンピュータと、前記コンピュータとの通信に使用される複数のエンドポイントのうちHIDクラスの通信に使用する少なくとも1つのエンドポイントからプリンタステータスに対応したキーコードを前記コンピュータにインタラプト転送するプリンタと、を備えることを特徴とするプリンタシステムである。本発明によれば、複雑な処理を行うデバイスドライバやソフトウェアを使用することなく、コンピュータに備わるアプリケーションにデータを容易に通知できる。   The present invention relates to a printer for interrupt-transferring a key code corresponding to a printer status from at least one endpoint used for HID class communication among a plurality of endpoints used for communication between the computer and the computer to the computer. A printer system comprising: According to the present invention, data can be easily notified to an application provided in a computer without using a device driver or software that performs complicated processing.

上記構成において、前記コンピュータは、前記1つのエンドポイントからインタラプト転送される前記キーコードがキーボードイベントとしてアクティブなアプリケーションに通知される前に前記キーコードを取得し、前記キーコードを記憶部に記憶された前記キーコードに対応したウィンドウメッセージに変換し、前記ウィンドウメッセージを前記記憶部に通知先として記憶されたアプリケーションに通知する構成とすることができる。この構成によれば、プリンタから送信されたデータを、アクティブなアプリケーションだけではなく、任意のアプリケーションに通知することができる。   In the above configuration, the computer acquires the key code before the active application is notified as a keyboard event of the key code interrupt-transferred from the one endpoint, and the key code is stored in the storage unit. The window message may be converted into a window message corresponding to the key code, and the window message may be notified to an application stored as a notification destination in the storage unit. According to this configuration, the data transmitted from the printer can be notified not only to the active application but also to an arbitrary application.

本発明によれば、複雑な処理を行うデバイスドライバやソフトウェアを使用することなく、コンピュータに備わるアプリケーションにデータを容易に通知できる。   According to the present invention, data can be easily notified to an application provided in a computer without using a device driver or software that performs complicated processing.

図1は、比較例1に係るプリンタシステムの機能ブロック図の例である。FIG. 1 is an example of a functional block diagram of a printer system according to the first comparative example. 図2は、実施例1に係るプリンタシステムの全体構成を示すブロック図の例である。FIG. 2 is an example of a block diagram illustrating the overall configuration of the printer system according to the first embodiment. 図3は、実施例1に係るプリンタシステムの機能ブロック図の例である。FIG. 3 is an example of a functional block diagram of the printer system according to the first embodiment. 図4は、コンピュータとプリンタとの間のコントロール転送の通信手順を示すシーケンス図の例である。FIG. 4 is an example of a sequence diagram illustrating a control transfer communication procedure between a computer and a printer. 図5は、ディスクリプタ(その1)の例である。FIG. 5 is an example of the descriptor (part 1). 図6は、ディスクリプタ(その2)の例である。FIG. 6 shows an example of the descriptor (part 2). 図7は、プリンタステータスに対応するキーコードの送信についてのフローチャートの例である。FIG. 7 is an example of a flowchart for transmitting a key code corresponding to the printer status. 図8は、プリンタステータスに対応したUSBキーコード、実際のキー、およびWindows(登録商標)仮想キーコードの例である。FIG. 8 is an example of a USB key code, an actual key, and a Windows (registered trademark) virtual key code corresponding to the printer status. 図9(a)および図9(b)は、プリンタステータスを通知する際に、プリンタから送信されるパケットデータの例である。FIGS. 9A and 9B are examples of packet data transmitted from the printer when notifying the printer status. 図10は、印刷アプリケーションでのプリンタステータス判定処理を説明するフローチャートの例である。FIG. 10 is an example of a flowchart for explaining printer status determination processing in a print application. 図11は、実施例2に係るプリンタシステムの全体構成を示すブロック図の例である。FIG. 11 is an example of a block diagram illustrating the overall configuration of the printer system according to the second embodiment. 図12は、実施例2に係るプリンタシステムの機能ブロック図の例である。FIG. 12 is an example of a functional block diagram of the printer system according to the second embodiment. 図13は、常駐アプリケーションで行われる制御処理を説明するフローチャートの例である。FIG. 13 is an example of a flowchart for explaining a control process performed by the resident application. 図14は、常駐アプリケーション内のキーコードフックルーチンの処理を説明するフローチャートの例である。FIG. 14 is an example of a flowchart for explaining the processing of the key code hook routine in the resident application. 図15は、常駐アプリケーションにより記憶部に記憶された内容を変更する処理を説明するフローチャートの例である。FIG. 15 is an example of a flowchart for explaining processing for changing the contents stored in the storage unit by the resident application.

まず初めに、比較例1に係るプリンタシステムを用いて、本発明が解決しようとする課題について詳細に説明する。図1は、比較例1に係るプリンタシステムを示す機能ブロック図の例である。図1のように、プリンタシステム300は、コンピュータ70とプリンタ80とがUSBインタフェースを介して接続している。コンピュータ70は、印刷アプリケーション12、GDI(Graphics Device Interface)14、プリンタドライバ16、スプーラ18、言語モニタ20、ポートモニタ22、USBバルクドライバ24、USBドライバスタック26、USBホストコントローラ28、およびドライバAPI(Application Programming Interface)72を備えている。ドライバAPI72は、プリンタ80のプリンタステータスデータを印刷アプリケーション12に通知するための専用のアプリケーションである。USBバルクドライバ24は、プリンタ80との通信に用いられるプリンタ用のドライバであり、USBドライバスタック26は、マイクロソフト(登録商標)社のWindows(登録商標)オペレーティングシステムで、USBホストコントローラ28を動かすためのドライバである。USBホストコントローラ28は、コンピュータ70のインタフェースに設けられ、プリンタ80との通信を管理する。   First, the problem to be solved by the present invention will be described in detail using the printer system according to Comparative Example 1. FIG. 1 is an example of a functional block diagram illustrating a printer system according to the first comparative example. As shown in FIG. 1, in the printer system 300, a computer 70 and a printer 80 are connected via a USB interface. The computer 70 includes a printing application 12, a GDI (Graphics Device Interface) 14, a printer driver 16, a spooler 18, a language monitor 20, a port monitor 22, a USB bulk driver 24, a USB driver stack 26, a USB host controller 28, and a driver API ( Application Programming Interface) 72. The driver API 72 is a dedicated application for notifying the printer application 12 of printer status data of the printer 80. The USB bulk driver 24 is a printer driver used for communication with the printer 80, and the USB driver stack 26 is a Windows (registered trademark) operating system of Microsoft (registered trademark) for operating the USB host controller 28. It is a driver. The USB host controller 28 is provided in the interface of the computer 70 and manages communication with the printer 80.

プリンタ80のインタフェースには、複数のエンドポイント(EP0からEPx)が設けられている。エンドポイントEP0はコントロール転送に使用する。エンドポイントEP1は印刷データを受信するためのエンドポイントであり、コンピュータ70からみてOUTの一方向のバルク転送に使用する。エンドポイントEP2は例えばプリンタステータスデータを送信するためのエンドポイントであり、コンピュータ70からみてINの一方向のバルク転送に使用する。   The interface of the printer 80 is provided with a plurality of end points (EP0 to EPx). The end point EP0 is used for control transfer. The end point EP1 is an end point for receiving print data, and is used for OUT one-way bulk transfer as seen from the computer 70. The endpoint EP2 is an endpoint for transmitting printer status data, for example, and is used for one-way bulk transfer of IN as viewed from the computer 70.

エンドポイントEP2からバルク転送されたプリンタステータスデータは、USBホストコントローラ28、USBドライバスタック26、USBバルクドライバ24、ポートモニタ22、言語モニタ20を経由してスプーラ18に渡される。このようなプリンタステータスデータを印刷アプリケーション12に通知する方法として例えば以下の4通りの方法が考えられる。   The printer status data bulk-transferred from the end point EP2 is passed to the spooler 18 via the USB host controller 28, the USB driver stack 26, the USB bulk driver 24, the port monitor 22, and the language monitor 20. For example, the following four methods are conceivable as methods for notifying the printer application 12 of such printer status data.

一つ目の通知方法は、言語モニタ20がポートモニタ22に対して通信を行い、プリンタ80から送信されるデータを常時監視し、プリンタステータスデータを取得したらドライバAPI72を介して印刷アプリケーション12に通知する方法である。   The first notification method is that the language monitor 20 communicates with the port monitor 22, constantly monitors the data transmitted from the printer 80, and notifies the print application 12 via the driver API 72 when printer status data is acquired. It is a method to do.

二つ目の通知方法は、ドライバAPI72がUSBバルクドライバ24に対して通信を行い、プリンタ80から送信されるデータを常時監視し、プリンタステータスデータを取得したら印刷アプリケーション12に通知する方法である。   The second notification method is a method in which the driver API 72 communicates with the USB bulk driver 24 to constantly monitor data transmitted from the printer 80 and notify the print application 12 when printer status data is acquired.

三つ目の通知方法は、印刷アプリケーション12がUSBバルクドライバ24に対して通信を行い、直接プリンタ80からのデータの監視を行い、プリンタステータスデータを取得する方法である。   The third notification method is a method in which the print application 12 communicates with the USB bulk driver 24, directly monitors data from the printer 80, and acquires printer status data.

四つ目の通知方法は、USBバルクドライバ24がUSBドライバスタック26に対して通信を行い、プリンタ80からのデータを常時監視し、プリンタステータスデータを取得したらドライバAPI72を介してあるいは直接印刷アプリケーション12に通知する方法である。   In the fourth notification method, the USB bulk driver 24 communicates with the USB driver stack 26, constantly monitors data from the printer 80, and acquires printer status data via the driver API 72 or directly with the printing application 12. It is a method to notify.

これら4通りの通知方法いずれにおいても、アプリケーションやドライバなどが周期的に通信を行い、プリンタステータスデータを読みに行かなければならない。また、プリンタステータスデータを印刷アプリケーション12に通知するための専用のアプリケーションであるドライバAPI72を用いる場合もある。このように、プリンタステータスデータを印刷アプリケーションに通知するには複雑な処理を要する。そこで、このような課題を解決すべく、以下において、アプリケーションにデータを容易に通知することが可能な実施例を説明する。   In any of these four notification methods, an application, a driver, or the like must periodically communicate to read printer status data. In some cases, a driver API 72, which is a dedicated application for notifying the printer status data to the print application 12, may be used. Thus, complicated processing is required to notify the printer status data to the printing application. Therefore, in order to solve such a problem, an embodiment capable of easily notifying data to an application will be described below.

図2は、実施例1に係るプリンタシステムの全体構成を示すブロック図の例である。図2のように、実施例1に係るプリンタシステム100は、コンピュータ10とプリンタ40とがUSBインタフェースケーブル52を介して接続されている。コンピュータ10は、CPU30、ROMおよびRAMからなるメモリ32、およびI/F(インタフェース)34を有する。CPU30は、メモリ32に記憶された制御プログラムに従い、コンピュータ10全体を制御する。I/F34は、コンピュータ10とプリンタ40とを接続するインタフェースである。   FIG. 2 is an example of a block diagram illustrating the overall configuration of the printer system according to the first embodiment. As shown in FIG. 2, in the printer system 100 according to the first embodiment, the computer 10 and the printer 40 are connected via a USB interface cable 52. The computer 10 includes a CPU 30, a memory 32 including a ROM and a RAM, and an I / F (interface) 34. The CPU 30 controls the entire computer 10 according to a control program stored in the memory 32. The I / F 34 is an interface that connects the computer 10 and the printer 40.

プリンタ40は、CPU42、ROMおよびRAMからなるメモリ44、I/F46、フラッシュROMなどからなる記憶部48、およびプリント部50を有する。CPU42は、メモリ44に記憶された制御プログラムに従い、プリンタ40全体を制御する。I/F46は、プリンタ40とコンピュータ10とを接続するインタフェースである。I/F46には、後述するように複数のエンドポイントが設けられている。記憶部48は、プリンタステータスと対応付けされたキーコードを記憶する。プリント部50は、コンピュータ10から送られてきた印刷データに基づいて印刷を実行する。   The printer 40 includes a CPU 42, a memory 44 including a ROM and a RAM, an I / F 46, a storage unit 48 including a flash ROM, and a printing unit 50. The CPU 42 controls the entire printer 40 according to a control program stored in the memory 44. The I / F 46 is an interface that connects the printer 40 and the computer 10. The I / F 46 is provided with a plurality of end points as will be described later. The storage unit 48 stores a key code associated with the printer status. The print unit 50 executes printing based on the print data sent from the computer 10.

図3は、実施例1に係るプリンタシステムの機能ブロック図の例である。図3のように、コンピュータ10は、印刷アプリケーション12、GDI(Graphics Device Interface)14、プリンタドライバ16、スプーラ18、言語モニタ20、ポートモニタ22、ユーザインタフェース23、USBバルクドライバ24、HID(Human Interface Device)ドライバ25、およびUSBドライバスタック26を備えている。また、I/F34に、プリンタ40との通信を管理するUSBホストコントローラ28を備えている。   FIG. 3 is an example of a functional block diagram of the printer system according to the first embodiment. As shown in FIG. 3, the computer 10 includes a print application 12, a GDI (Graphics Device Interface) 14, a printer driver 16, a spooler 18, a language monitor 20, a port monitor 22, a user interface 23, a USB bulk driver 24, an HID (Human Interface). Device) driver 25 and USB driver stack 26 are provided. The I / F 34 includes a USB host controller 28 that manages communication with the printer 40.

印刷アプリケーション12、GDI14、プリンタドライバ16、スプーラ18、言語モニタ20、ポートモニタ22、およびユーザインタフェース23はユーザモードに設けられている。USBバルクドライバ24、HIDドライバ25、およびUSBドライバスタック26はカーネルモードに設けられている。カーネルモードに設けられたUSBバルクドライバ24は、プリンタ40との通信に用いられるプリンタ用のドライバである。HIDドライバ25は、プリンタ40との通信に用いられるキーボード用のドライバである。USBドライバスタック26は、マイクロソフト(登録商標)社のWindows(登録商標)オペレーティングシステムで、USBホストコントローラ28を動かすためのドライバである。   The print application 12, GDI 14, printer driver 16, spooler 18, language monitor 20, port monitor 22, and user interface 23 are provided in the user mode. The USB bulk driver 24, the HID driver 25, and the USB driver stack 26 are provided in the kernel mode. The USB bulk driver 24 provided in the kernel mode is a printer driver used for communication with the printer 40. The HID driver 25 is a keyboard driver used for communication with the printer 40. The USB driver stack 26 is a driver for operating the USB host controller 28 in the Windows (registered trademark) operating system of Microsoft (registered trademark).

プリンタ40が有するI/F46には、複数のエンドポイント(EP0からEPx)が設けられている。エンドポイントEP0はコントロール転送に使用する。このコントロール転送を使って、コンフィグレーションを行い、プリンタ40の使い方の設定情報を、コンピュータ10とプリンタ40との間で双方向通信する。エンドポイントEP1は印刷データを受信するためのエンドポイントである。エンドポイントEP1は、コンピュータ10からみてOUTの一方向の通信である。転送方式としてはバルク転送を使用する。エンドポイントEP2は、プリンタステータスに対応したキーコードを送信するためのエンドポイントであり、コンピュータ10からみてINの一方向の通信である。転送方式としてはインタラプト転送を使用する。   The I / F 46 included in the printer 40 is provided with a plurality of end points (EP0 to EPx). The end point EP0 is used for control transfer. Configuration is performed using this control transfer, and setting information on how to use the printer 40 is bidirectionally communicated between the computer 10 and the printer 40. The end point EP1 is an end point for receiving print data. The end point EP1 is one-way communication OUT as seen from the computer 10. Bulk transfer is used as the transfer method. The end point EP2 is an end point for transmitting a key code corresponding to the printer status, and is one-way communication IN as viewed from the computer 10. Interrupt transfer is used as the transfer method.

ここで、図4のシーケンス図を用い、コンピュータ10とプリンタ40との間のコントロール転送の通信手順について説明する。図4のように、コンピュータ10とプリンタ40とが接続された状態でプリンタ40の電源がONになった場合(ステップS10)、コンピュータ10は、プリンタ40の電源がONになったことを確認した後(ステップS12)、プリンタ40に対してゲット・ディスクリプタを転送する(ステップS14)。なお、ステップS10およびS12は、電源ON状態のプリンタ40が接続された場合でもよい。ゲット・ディスクリプタに対して、プリンタ40は、メモリ44に記憶されているディスクリプタ情報をコンピュータ10に返送する(ステップS16)。コンピュータ10は、返送されたディスクリプタ情報に基づき、適当なドライバの準備などの設定をする(ステップS18)。   Here, a communication procedure of control transfer between the computer 10 and the printer 40 will be described with reference to the sequence diagram of FIG. As shown in FIG. 4, when the printer 40 is turned on with the computer 10 and the printer 40 connected (step S10), the computer 10 confirms that the printer 40 is turned on. After (step S12), the get descriptor is transferred to the printer 40 (step S14). Note that steps S10 and S12 may be performed when the printer 40 in the power-on state is connected. In response to the get descriptor, the printer 40 returns the descriptor information stored in the memory 44 to the computer 10 (step S16). The computer 10 makes settings such as preparing an appropriate driver based on the returned descriptor information (step S18).

図5および図6に、メモリ44に記憶されたディスクリプタ情報の例を示す。図5および図6に示すディスクリプタ情報の例では、インタフェース1・ディスクリプタとエンドポイント1・ディスクリプタによって、プリンタクラスとバルク転送が指定されている。また、インタフェース2・ディスクリプタとエンドポイント2・ディスクリプタによって、HIDキーボードクラスとインタラプト転送が指定されている。これにより、コンピュータ10は、プリンタ40をプリンタとキーボードの2つのデバイスとして認識をし、図2および図4で説明したように、プリンタ用のドライバとしてUSBバルクドライバ24を準備し、キーボード用のドライバとしてHIDドライバ25を準備する。   5 and 6 show examples of descriptor information stored in the memory 44. FIG. In the example of descriptor information shown in FIGS. 5 and 6, the printer class and bulk transfer are specified by the interface 1 descriptor and the endpoint 1 descriptor. The HID keyboard class and interrupt transfer are specified by the interface 2 descriptor and the endpoint 2 descriptor. As a result, the computer 10 recognizes the printer 40 as two devices, a printer and a keyboard, and prepares the USB bulk driver 24 as a driver for the printer as described with reference to FIGS. 2 and 4. HID driver 25 is prepared as follows.

また、インタフェース1・ディスクリプタとエンドポイント1・ディスクリプタによってプリンタクラスとバルク転送が指定されていることから、エンドポイントEP1は、バルク転送された印刷データを受信するためのエンドポイントとして使用される。一方、インタフェース2・ディスクリプタとエンドポイント2・ディスクリプタによってHIDキーボードクラスとインタラプト転送が指定されていることから、エンドポイントEP2は、プリンタステータスに対応したキーコードをインタラプト転送で送信するためのエンドポイントとして使用される。   Since the printer class and the bulk transfer are specified by the interface 1 descriptor and the endpoint 1 descriptor, the endpoint EP1 is used as an endpoint for receiving the bulk-transferred print data. On the other hand, since the HID keyboard class and the interrupt transfer are specified by the interface 2 descriptor and the endpoint 2 descriptor, the endpoint EP2 is an endpoint for transmitting the key code corresponding to the printer status by the interrupt transfer. used.

ここで、印刷アプリケーション12で印刷処理が開始された場合に、プリンタ40のプリント部50で印刷されるまでの印刷処理について説明する。図3のように、印刷アプリケーション12で印刷処理が開始されると、印刷アプリケーション12はGDI14を呼び出し、GDI14がプリンタデバイスコンテキストへ描画を行う。その後、GDI14はプリンタドライバ16を呼び出し、プリンタドライバ16はプリンタ言語に基づいてプリンタ40で印刷可能な形の印刷データを生成する。生成された印刷データはスプーラ18に渡される。   Here, the printing process until printing is performed by the printing unit 50 of the printer 40 when the printing process is started by the printing application 12 will be described. As shown in FIG. 3, when the printing process is started by the printing application 12, the printing application 12 calls the GDI 14, and the GDI 14 performs drawing on the printer device context. Thereafter, the GDI 14 calls the printer driver 16, and the printer driver 16 generates print data that can be printed by the printer 40 based on the printer language. The generated print data is passed to the spooler 18.

次いで、必要な場合は言語モニタ20で処理が行われた後、ポートモニタ22はプリンタポートの種類に合わせて印刷データの出力処理を行う。印刷データは、カーネルモードに設けられたUSBバルクドライバ24およびUSBドライバスタック26に通知された後、USBホストコントローラ28の管理の下でプリンタ40にバルク転送により送信される。   Next, if necessary, the language monitor 20 performs processing, and then the port monitor 22 performs print data output processing in accordance with the type of printer port. The print data is notified to the USB bulk driver 24 and the USB driver stack 26 provided in the kernel mode, and then transmitted to the printer 40 by bulk transfer under the management of the USB host controller 28.

プリンタ40のエンドポイントEP1でバルク転送された印刷データを受信した後、CPU42の制御の下、印刷データに基づいてプリント部50で印刷が実行される。   After receiving the bulk transfer print data at the end point EP1 of the printer 40, printing is executed by the printing unit 50 based on the print data under the control of the CPU.

図7は、プリンタステータスに対応したキーコードの送信について説明するフローチャートである。図7のように、プリンタ40のCPU42は、プリンタステータスに異常が発生し、コンピュータ10に通知すべきプリンタステータスがあるかどうかを判断する(ステップS20)。通知すべきプリンタステータスがあると判断した場合は、CPU42は、記憶部48に記憶されたプリンタステータスと対応付けされたキーコードに基づき、通知すべきプリンタステータスに対応したキーコードをエンドポイントEP2からコンピュータ10に送信する(ステップS22)。通知すべきプリンタステータスがないと判断した場合は、CPU42は、エンドポイントEP2からコンピュータ10にNAKを送信する(ステップS24)。エンドポイントEP2における転送方式はインタラプト転送であり、インタラプト転送の動作は、エンドポイント2・ディスクリプタのEP_bIntervalで指定した間隔[ms]でINトランザクションが発生する。つまり、CPU42は、INトランザクションに対してプリンタステータスに対応したキーコードあるいはNAKを送信する。   FIG. 7 is a flowchart illustrating transmission of a key code corresponding to the printer status. As shown in FIG. 7, the CPU 42 of the printer 40 determines whether or not an abnormality has occurred in the printer status and there is a printer status to be notified to the computer 10 (step S20). If it is determined that there is a printer status to be notified, the CPU 42 obtains a key code corresponding to the printer status to be notified from the endpoint EP2 based on the key code associated with the printer status stored in the storage unit 48. It transmits to the computer 10 (step S22). When determining that there is no printer status to be notified, the CPU 42 transmits a NAK from the end point EP2 to the computer 10 (step S24). The transfer method at the end point EP2 is interrupt transfer, and the interrupt transfer operation causes an IN transaction at an interval [ms] specified by EP_bInterval of the end point 2 descriptor. That is, the CPU 42 transmits a key code or NAK corresponding to the printer status to the IN transaction.

図3に戻り、エンドポイントEP2から送信されたプリンタステータスに対応したキーコードは、USBホストコントローラ28、USBドライバスタック26、およびキーボード用のドライバであるHIDドライバ25を介してWindows(登録商標)に標準装備されたユーザインタフェース23に通知される。キーコードは、ユーザインタフェース23でキーボードイベント(WM_KEYDOWN/WM_KEYUPのウィンドウメッセージと仮想キーコード)に変換され、キーボードイベントとして印刷アプリケーション12に通知される。   Returning to FIG. 3, the key code corresponding to the printer status transmitted from the endpoint EP2 is sent to Windows (registered trademark) via the USB host controller 28, the USB driver stack 26, and the HID driver 25 which is a keyboard driver. The user interface 23 provided as a standard is notified. The key code is converted into a keyboard event (WM_KEYDOWN / WM_KEYUP window message and virtual key code) by the user interface 23 and notified to the print application 12 as a keyboard event.

ここで、図8に、プリンタステータスと対応付けされたUSBキーコードの例および夫々のUSBキーコードに対応する実際のキーおよびWindows(登録商標)仮想キーコードの例を示す。図8のように、プリンタステータスの例として、用紙なし、ニアエンド、マーク未検出、カバーオープン、カッタ異常、ハードウェア異常、電源電圧異常、ヘッド温度異常などが挙げられ、夫々に対してUSBキーコード6Aから6F、70、71が割り当てられている。USBキーコード6Aから6F、70、71は、実際のキーではF15からF22に対応し、ユーザインタフェース23でWindows(登録商標)仮想キーコードに変換されると、例えばUSBキーコード6AはWindows(登録商標)仮想キーコード7E(VK_F15)となる。   Here, FIG. 8 shows an example of a USB key code associated with the printer status, an example of an actual key corresponding to each USB key code, and an example of a Windows (registered trademark) virtual key code. As shown in FIG. 8, examples of printer status include no paper, near end, mark not detected, cover open, cutter error, hardware error, power supply voltage error, head temperature error, etc. 6A to 6F, 70 and 71 are assigned. The USB key codes 6A to 6F, 70, and 71 correspond to F15 to F22 in actual keys, and when converted to Windows (registered trademark) virtual key codes by the user interface 23, for example, the USB key code 6A is converted to Windows (registered). Trademark) virtual key code 7E (VK_F15).

なお、プリンタステータスと対応付けされたUSBキーコードとして6Aから6F、70、71を割り当てた理由は、USBキーコード6Aから6F、70、71に対応する実際のキーF15からF22は一般的には使用されないキーであるためである。したがって、プリンタステータスとの対応付けに割り当てるUSBキーコードは、6Aから6F、70、71に限られる訳ではないが、通常使用されないキーに対応するUSBキーコードを割り当てる場合が好ましい。   The reason for assigning 6A to 6F, 70, 71 as the USB key codes associated with the printer status is that the actual keys F15 to F22 corresponding to the USB key codes 6A to 6F, 70, 71 are generally This is because the key is not used. Therefore, the USB key code assigned to the association with the printer status is not limited to 6A to 6F, 70, 71, but it is preferable to assign a USB key code corresponding to a key that is not normally used.

図9(a)および図9(b)は、プリンタステータスを通知する際に、プリンタ40から送信されるパケットデータの例である。図9(a)は、用紙なしのプリンタステータスが発生した場合および解除された場合のパケットデータの例である。図9(b)は、カバーオープンと用紙なしのプリンタステータスが同時に発生した場合、カバーオープンのプリンタステータスが解除された場合、カバーオープンと用紙なしのプリンタステータスが解除された場合のパケットデータの例である。パケットデータ数は、エンドポイント2・ディスクリプタのEP_wMaxPacketSizeによって指定されたバイト数によって行われ(実施例1では8バイト)、プリンタステータスに対応したキーコードが第3バイト目から順に格納される。したがって、図9(a)の用紙なしのプリンタステータスが発生した場合では、用紙なしのキーコード0x6Aが第3バイト目に格納される。図9(b)のカバーオープンと用紙なしのプリンタステータスが発生した場合では、カバーオープンのキーコード0x6Dが第3バイト目に、用紙なしのキーコード0x6Aが第4バイト目に格納される。   FIGS. 9A and 9B are examples of packet data transmitted from the printer 40 when the printer status is notified. FIG. 9A shows an example of packet data when the printer status without paper is generated and when the printer status is canceled. FIG. 9B shows an example of packet data when the printer status with cover open and no paper is generated at the same time, when the printer status with cover open is canceled, or when the printer status with cover open and paper is released. It is. The number of packet data is determined by the number of bytes specified by EP_wMaxPacketSize of the endpoint 2 descriptor (8 bytes in the first embodiment), and key codes corresponding to the printer status are stored in order from the third byte. Therefore, when the printer status without paper in FIG. 9A occurs, the key code 0x6A without paper is stored in the third byte. When the printer status without cover open and no paper in FIG. 9B occurs, the key code 0x6D for cover open is stored in the third byte, and the key code 0x6A without paper is stored in the fourth byte.

図9(a)に示す用紙なし発生時のパケットデータがプリンタ40から送信され、ユーザインタフェース23にキーコードが通知されると、ユーザインタフェース23でキーコード0x6Aがキーボードイベントに変換され、最終的には、WM_KEYDOWNと仮想キーコード7E(VK_F15)とのキーボードイベントが印刷アプリケーション12に通知される。同様に、図9(b)に示すカバーオープンと用紙なし発生時のパケットデータの場合は、WM_KEYDOWNと仮想キーコード81(VK_F18)、7E(VK_F15)とのキーボードイベントが印刷アプリケーション12に通知される。   9A is transmitted from the printer 40 and when the key code is notified to the user interface 23, the key code 0x6A is converted into a keyboard event by the user interface 23, and finally. The print application 12 is notified of the keyboard event of WM_KEYDOWN and the virtual key code 7E (VK_F15). Similarly, in the case of packet data at the time of cover open and no paper occurrence shown in FIG. 9B, the keyboard event of WM_KEYDOWN and virtual key code 81 (VK_F18), 7E (VK_F15) is notified to the printing application 12. .

また、図9(a)のように、用紙なしのプリンタステータスが解除されると0x6Aがクリアされたパケットデータがプリンタ40から送信され、WM_KEYUPと仮想キーコード7E(VK_F15)とのキーボードイベントが印刷アプリケーション12に通知される。図9(b)のように、カバーオープンのプリンタステータスのみが解除された場合は、0x6Dがクリアされ、0x6Aが第3バイト目に格納されたパケットデータが送信され、WM_KEYUPと仮想キーコード81(VK_F18)とが印刷アプリケーション12に通知される。その後に、用紙なしのプリンタステータスが解除された場合は、0x6Aがクリアされたパケットデータが送信され、WM_KEYUPと仮想キーコード7E(VK_F15)とのキーボードイベントが印刷アプリケーション12に通知される。   Also, as shown in FIG. 9A, when the printer status without paper is released, packet data with 0x6A cleared is transmitted from the printer 40, and a keyboard event of WM_KEYUP and virtual key code 7E (VK_F15) is printed. The application 12 is notified. As shown in FIG. 9B, when only the cover open printer status is canceled, 0x6D is cleared, packet data in which 0x6A is stored in the third byte is transmitted, and WM_KEYUP and virtual key code 81 ( VK_F18) is notified to the print application 12. Thereafter, when the printer status without paper is canceled, packet data with 0x6A cleared is transmitted, and the keyboard event of WM_KEYUP and virtual key code 7E (VK_F15) is notified to the printing application 12.

次に、キーボードイベントが通知された場合に、印刷アプリケーション12で行なわれるプリンタステータスの判定処理について説明する。図10は、印刷アプリケーション12でのプリンタステータス判定処理を説明するフローチャートの例である。図10のように、印刷アプリケーション12は、ウィンドウメッセージを受信すると(ステップS30)、ウィンドウメッセージがWM_KEYDOWNであるかどうか判断する(ステップS32)。WM_KEYDOWNである場合(Yesの場合)は、印刷アプリケーション12は、仮想キーコードが7E(VK_F15)から85(VK_F22)のいずれかであるかを判断する(ステップS34)。ステップS34でYesの場合は、印刷アプリケーション12は、仮想キーコードに対応したプリンタステータスを発生させる(ステップS36)。ステップS34でNoの場合は、印刷アプリケーション12は、ウィンドウメッセージに従った処理を実行する(ステップS38)。   Next, a printer status determination process performed by the print application 12 when a keyboard event is notified will be described. FIG. 10 is an example of a flowchart for explaining printer status determination processing in the print application 12. As shown in FIG. 10, when receiving the window message (step S30), the print application 12 determines whether the window message is WM_KEYDOWN (step S32). If it is WM_KEYDOWN (in the case of Yes), the print application 12 determines whether the virtual key code is any one of 7E (VK_F15) to 85 (VK_F22) (step S34). If Yes in step S34, the print application 12 generates a printer status corresponding to the virtual key code (step S36). If No in step S34, the print application 12 executes processing according to the window message (step S38).

ステップS32でNoの場合、印刷アプリケーション12は、ウィンドウメッセージがWM_KEYUPであるかどうかを判断する(ステップS40)。WM_KEYUPである場合(Yesの場合)は、印刷アプリケーション12は、仮想キーコードが7E(VK_F15)から85(VK_F22)のいずれかであるかを判断する(ステップS42)。ステップS42でYesの場合は、印刷アプリケーション12は、仮想キーコードに対応したプリンタステータスを解除する(ステップS44)。   If No in step S32, the print application 12 determines whether the window message is WM_KEYUP (step S40). If it is WM_KEYUP (in the case of Yes), the print application 12 determines whether the virtual key code is any one of 7E (VK_F15) to 85 (VK_F22) (step S42). If Yes in step S42, the print application 12 cancels the printer status corresponding to the virtual key code (step S44).

ステップS42でNoの場合およびステップS40でNoの場合は、印刷アプリケーション12は、ウィンドウメッセージに従った処理を実行する(ステップS38)。   In the case of No in step S42 and in the case of No in step S40, the print application 12 executes processing according to the window message (step S38).

以上説明してきたように、実施例1によれば、プリンタ40は、複数のエンドポイントEP0からEPxのうちの1つのエンドポイントEP2をHIDクラスの通信に使用し、プリンタステータスに対応したキーコードをインタラプト転送する。これにより、コンピュータ10は、Windows(登録商標)に標準装備のHIDドライバ25とユーザインタフェース23とを用いることで、インタラプト転送により一定周期で送信されてきたキーコードをキーボードイベントに変換でき、プリンタステータスをキーボードイベントとして印刷アプリケーション12に通知できる。このため、複雑な処理を行うデバイスドライバやソフトウェアを使用することなく、Windows(登録商標)に標準装備のHDIドライバ25とユーザインタフェース23とにより、プリンタステータスに関するデータを容易に印刷アプリケーション12に通知できる。   As described above, according to the first embodiment, the printer 40 uses one end point EP2 of the plurality of end points EP0 to EPx for communication of the HID class, and assigns a key code corresponding to the printer status. Interrupt transfer. Accordingly, the computer 10 can convert the key code transmitted at a constant cycle by the interrupt transfer into a keyboard event by using the standard HID driver 25 and the user interface 23 in Windows (registered trademark). Can be notified to the print application 12 as a keyboard event. For this reason, the printer application 12 can be easily notified of data relating to the printer status by using the HDI driver 25 and the user interface 23 that are standard on Windows (registered trademark) without using a device driver or software that performs complicated processing. .

プリンタ40は、コンピュータ10からのプリンタコマンドやベンダリクエストなどの指示に基づき、記憶部48に記憶されたプリンタステータスと対応付けされたキーコードを変更できる場合が好ましい。これにより、例えばユーザ毎の使用状況に応じて通常使用していないキーコードをプリンタステータスに対応したキーコードとして使用することができる。また、プリンタステータスと対応付けされたキーコードの変更は、印刷アプリケーションでのプリンタステータス判定処理との整合を取りつつ変更する場合が好ましい。   It is preferable that the printer 40 can change the key code associated with the printer status stored in the storage unit 48 based on an instruction such as a printer command or a vendor request from the computer 10. Thereby, for example, a key code that is not normally used can be used as a key code corresponding to the printer status in accordance with the usage status of each user. Further, it is preferable that the key code associated with the printer status is changed while maintaining consistency with the printer status determination process in the printing application.

実施例1において、HIDクラスの通信に使用するエンドポイントEP2からインタラプト転送されるキーコードは、プリンタステータスに対応したキーコードである場合を例に示したがこれに限られるわけではない。プリンタ40からコンピュータ10に送信されるデータであれば、プリンタステータス以外の事項に対応したキーコードである場合でもよい。また、エンドポイントEP1とエンドポイントEP2とを、実施例1とは反対の方法で使用する場合でもよい。即ち、エンドポイントEP1を、プリンタステータスに対応したキーコードをインタラプト転送で送信するエンドポイントに使用し、エンドポイントEP2を、バルク転送で送信された印刷データを受信するエンドポイントに使用してもよい。また、プリンタステータスに対応したキーコードをインタラプト転送で送信するエンドポイントを2つ以上設けた場合でもよい。即ち、複数のエンドポイントのうちの少なくとも1つのエンドポイントをHIDクラスの通信に使用し、プリンタステータスに対応したキーコードをインタラプト転送する場合であればよい。   In the first embodiment, the key code interrupt-transferred from the end point EP2 used for HID class communication is a key code corresponding to the printer status. However, the present invention is not limited to this. As long as the data is transmitted from the printer 40 to the computer 10, the key code may correspond to items other than the printer status. Further, the end point EP1 and the end point EP2 may be used in a manner opposite to that in the first embodiment. That is, the end point EP1 may be used as an end point that transmits a key code corresponding to the printer status by interrupt transfer, and the end point EP2 may be used as an end point that receives print data transmitted by bulk transfer. . Further, two or more endpoints for transmitting the key code corresponding to the printer status by interrupt transfer may be provided. That is, it is only necessary to use at least one of the plurality of endpoints for HID class communication and to interrupt-transfer the key code corresponding to the printer status.

また、実施例1では、コンピュータ10はWindows(登録商標)オペレーティングシステムを備えている場合を例に示したが、プリンタ40から送信されたキーコードをキーボードイベントに変換して印刷アプリケーション12に通知する機能を有すれば、その他のオペレーティングシステムを備えている場合でもよい。また、プリンタ40から送信されるプリンタステータスに対応したキーコードはUSBキーコードの場合を例に示したが、割り当てられたキーの識別が可能なキーコードであればUSBキーコード以外のキーコードである場合でもよい。   In the first embodiment, the computer 10 includes a Windows (registered trademark) operating system. However, the key code transmitted from the printer 40 is converted into a keyboard event and notified to the print application 12. Other operating systems may be provided as long as they have the function. Further, the case where the key code corresponding to the printer status transmitted from the printer 40 is a USB key code is shown as an example. However, a key code other than the USB key code can be used as long as the assigned key can be identified. May be.

実施例1に係るプリンタシステム100では、プリンタステータスに対応したキーコードに基づいてユーザインタフェース23でキーボードイベントを発生させ、キーボードイベントとして印刷アプリケーション12に通知している。このため、キーボードイベントはアクティブなアプリケーションにのみ通知されることになる。そこで、実施例2では、アクティブでないアプリケーションなど、任意のアプリケーションにプリンタステータスに関するデータを通知することが可能な例を説明する。   In the printer system 100 according to the first embodiment, a keyboard event is generated on the user interface 23 based on a key code corresponding to the printer status, and the keyboard event is notified to the print application 12. For this reason, the keyboard event is notified only to the active application. Therefore, in the second embodiment, an example in which data relating to the printer status can be notified to an arbitrary application such as an inactive application will be described.

図11は、実施例2に係るプリンタシステムの全体構成を示すブロック図の例である。図11のように、実施例2に係るプリンタシステム200は、プリンタ40とUSBインタフェースケーブル52で接続するコンピュータ60が、例えばハードディスクである記憶部62を有している点で、実施例1に係るプリンタシステム100と異なる。記憶部62は例えばレジストリであり、記憶部62には、キーコードと対応付けされたウィンドウメッセージ、およびウィンドウメッセージを通知する通知先のアプリケーションのウィンドウ情報(ウィンドウ名とウィンドウクラス名)またはウィンドウハンドルが記憶されている。その他の構成については実施例1と同じであり、図2に示しているため、ここでは説明を省略する。   FIG. 11 is an example of a block diagram illustrating the overall configuration of the printer system according to the second embodiment. As shown in FIG. 11, the printer system 200 according to the second embodiment is related to the first embodiment in that the computer 60 connected to the printer 40 with the USB interface cable 52 includes a storage unit 62 that is a hard disk, for example. Different from the printer system 100. The storage unit 62 is, for example, a registry, and the storage unit 62 stores window information associated with the key code and window information (window name and window class name) or window handle of a notification destination application that notifies the window message. It is remembered. The other configuration is the same as that of the first embodiment and is shown in FIG.

図12は、実施例2に係るプリンタシステムの機能ブロック図の例である。図12のように、コンピュータ60は、図3で示したコンピュータ10の機能ブロックに、第1アプリケーション64、第2アプリケーション66、および常駐アプリケーション68を加えた構成をしている。第1アプリケーション64および第2アプリケーション66は、印刷アプリケーション12以外の他の印刷アプリケーションやプリンタ40を監視する専用のアプリケーションである。   FIG. 12 is an example of a functional block diagram of the printer system according to the second embodiment. As shown in FIG. 12, the computer 60 is configured by adding a first application 64, a second application 66, and a resident application 68 to the functional blocks of the computer 10 shown in FIG. The first application 64 and the second application 66 are dedicated applications for monitoring the printing application other than the printing application 12 and the printer 40.

Windows(登録商標)オペレーティングシステムには、SetWindows(登録商標)HookEx()のWin32API関数が用意されており、第1引数にWH_KEYBOARD(0x00000002)を指定することにより、プリンタ40から送信されたキーコードをフックし、キーボードイベントが発生する前にキーコードを取得することができる。そこで、常駐アプリケーション68では、SetWindows(登録商標)HookExによるキーコードフックを行い、プリンタ40から送信されたキーコードがキーボードイベントとしてアクティブなアプリケーションに通知される前にキーコードを取得する。そして、記憶部62に記憶されたキーコードと対応付けされたウィンドウメッセージに基づき、取得したキーコードをウィンドウメッセージに変換した後、ウィンドウメッセージを記憶部62に記憶された通知先のアプリケーション(例えば、印刷アプリケーション12、第1アプリケーション64、および第2アプリケーション66の中のいずれか1つのアプリケーションまたは選択した複数のアプリケーション)にPostMessage()で送信する。その他の構成については実施例1と同じであり、図3で示しているため、ここでは説明を省略する。   The Windows (registered trademark) operating system has a Win32 API function of SetWindows (registered trademark) HookEx (). By specifying WH_KEYBOARD (0x00000002) as the first argument, the key code transmitted from the printer 40 is obtained. You can hook and get the key code before the keyboard event occurs. Therefore, the resident application 68 performs a key code hook using SetWindows (registered trademark) HookEx, and acquires the key code before the key code transmitted from the printer 40 is notified to the active application as a keyboard event. And based on the window message matched with the key code memorize | stored in the memory | storage part 62, after converting the acquired key code into a window message, the notification destination application (for example, the window message is memorize | stored in the memory | storage part 62, for example) Any one of the printing application 12, the first application 64, and the second application 66 or a plurality of selected applications) is transmitted by PostMessage (). Other configurations are the same as those of the first embodiment and are shown in FIG.

次に、図13のフローチャートを用いて、プリンタ40からプリンタステータスに対応したキーコードが送信された場合に、常駐アプリケーション68で行われる制御処理を説明する。図13のように、常駐アプリケーション68は、まず起動後に、記憶部62から通知先のアプリケーションのウィンドウ情報またはウィンドウハンドルを取得する(ステップS50)。続いて、常駐アプリケーション68は、記憶部62からキーコードと対応付けされたウィンドウメッセージを取得する(ステップS52)。実施例2では、プリンタステータスに対応したキーコードがWM_KEYDOWN/WM_KEYUPのウィンドウメッセージに変換される場合を例に説明する。即ち、実施例1と同様に、プリンタステータスに対応したキーコードがキーボードイベントに変換される場合を例に説明する。   Next, a control process performed by the resident application 68 when a key code corresponding to the printer status is transmitted from the printer 40 will be described using the flowchart of FIG. As shown in FIG. 13, the resident application 68 first obtains window information or a window handle of a notification destination application from the storage unit 62 after being started (step S50). Subsequently, the resident application 68 acquires a window message associated with the key code from the storage unit 62 (step S52). In the second embodiment, a case where a key code corresponding to a printer status is converted into a WM_KEYDOWN / WM_KEYUP window message will be described as an example. That is, the case where the key code corresponding to the printer status is converted into a keyboard event as in the first embodiment will be described as an example.

次いで、常駐アプリケーション68は、キーコードフックルーチンを登録する(ステップS54)。これは、前述したように、SetWindows(登録商標)HookEx()の第1引数にWH_KEYBOARD(0x00000002)が指定されることで行われる。キーコードフックルーチンを登録することで、常駐アプリケーション68は、キーコードがキーボードイベントとしてアクティブなアプリケーションに通知される前にキーコードを取得できる。即ち、例えばプリンタ40からプリンタステータスに対応したキーコードが送信された場合、常駐アプリケーション68は、ユーザインタフェース23でキーボードイベントが発生する前にプリンタステータスに対応したキーコードを取得する(ステップS56)。   Next, the resident application 68 registers a key code hook routine (step S54). As described above, this is performed by specifying WH_KEYBOARD (0x00000002) as the first argument of SetWindows (registered trademark) HookEx (). By registering the key code hook routine, the resident application 68 can obtain the key code before the key code is notified to the active application as a keyboard event. That is, for example, when the key code corresponding to the printer status is transmitted from the printer 40, the resident application 68 acquires the key code corresponding to the printer status before the keyboard event occurs in the user interface 23 (step S56).

次いで、常駐アプリケーション68は、ステップS52で取得したキーコードと対応付けされたウィンドウメッセージに基づき、ステップS56で取得したキーコードをウィンドウメッセージに変換する(ステップS58)。実施例2では、プリンタステータスに対応したキーコードをWM_KEYDOWN/WM_KEYUPのウィンドウメッセージと仮想キーコードに変換する。   Next, the resident application 68 converts the key code acquired in step S56 into a window message based on the window message associated with the key code acquired in step S52 (step S58). In the second embodiment, the key code corresponding to the printer status is converted into a WM_KEYDOWN / WM_KEYUP window message and a virtual key code.

次いで、常駐アプリケーション68は、ウィンドウメッセージがWM_DESTROYであるかどうかを判断し(ステップS60)、WM_DESTROYではないと判断した場合(Noの場合)、各ウィンドウメッセージの処理を行う(ステップS62)。ステップS62では、WM_KEYDOWN/WM_KEYUP以外のウィンドウメッセージの処理を行う。また、ステップS60でウィンドウメッセージがWM_DESTROYであると判断された場合(Yesの場合)、常駐アプリケーション68は、UnhookWindows(登録商標)HookEx()により、キーコードフックルーチンを抹消する(ステップS64)。   Next, the resident application 68 determines whether the window message is WM_DESTROY (step S60). If it is determined that the window message is not WM_DESTROY (in the case of No), each window message is processed (step S62). In step S62, window messages other than WM_KEYDOWN / WM_KEYUP are processed. When it is determined in step S60 that the window message is WM_DESTROY (in the case of Yes), the resident application 68 deletes the key code hook routine by using UnoWindows (registered trademark) HookEx () (step S64).

ここで、図14のフローチャートを用い、常駐アプリケーション68内のキーコードフックルーチンの処理について詳しく説明する。図14のように、常駐アプリケーション68は、キーコードと共に受信するキーON/OFF情報からキーダウンであるかどうかを判断する(ステップS70)。キーダウンであると判断した場合(Yesの場合)、常駐アプリケーション68は、仮想キーコードが7E(VK_F15)から85(VK_F22)であるかどうかを判断する(ステップS72)。ステップS72でYesの場合、常駐アプリケーション68は、ステップS50で取得した通知先のアプリケーションのウィンドウを検索し(ステップS74)、ウィンドウがある場合(ステップS76でYesの場合)は、通知先のアプリケーションにキーボードイベントを通知して、当該ウィンドウにプリンタステータスを発生させる(ステップS78)。   Here, the processing of the key code hook routine in the resident application 68 will be described in detail using the flowchart of FIG. As shown in FIG. 14, the resident application 68 determines whether or not the key is down from the key ON / OFF information received together with the key code (step S70). If it is determined that the key is down (in the case of Yes), the resident application 68 determines whether the virtual key code is 7E (VK_F15) to 85 (VK_F22) (step S72). In the case of Yes in step S72, the resident application 68 searches for the window of the notification destination application acquired in step S50 (step S74). If there is a window (in the case of Yes in step S76), the resident application 68 sets the notification destination application. A keyboard event is notified and a printer status is generated in the window (step S78).

ステップS70でNoの場合、常駐アプリケーション68は、キーアップであるかどうかを判断する(ステップS80)。キーアップであると判断した場合(Yesの場合)、常駐アプリケーション68は、仮想キーコードが7E(VK_F15)から85(VK_F22)であるかどうかを判断する(ステップS82)。ステップS82でYesの場合、常駐アプリケーション68は、ステップS50で取得した通知先のアプリケーションのウィンドウを検索し(ステップS84)、ウィンドウがある場合(ステップS86でYesの場合)は、通知先のアプリケーションにキーボードイベントを通知して、当該ウィンドウのプリンタステータスを解除する(ステップS88)。   In the case of No in step S70, the resident application 68 determines whether or not the key is up (step S80). When it is determined that the key is up (in the case of Yes), the resident application 68 determines whether the virtual key code is 7E (VK_F15) to 85 (VK_F22) (step S82). In the case of Yes in step S82, the resident application 68 searches for the window of the notification destination application acquired in step S50 (step S84). If there is a window (in the case of Yes in step S86), the resident application 68 sets the notification destination application. A keyboard event is notified, and the printer status of the window is canceled (step S88).

ステップS80でNoの場合、または、ステップS78およびステップS88を実行した後、常駐アプリケーション68は、CallNextHookEx()により別のアプリケーション等が登録しているキーコードフックルーチンに処理を渡す(ステップS90)。   In the case of No in step S80, or after executing step S78 and step S88, the resident application 68 passes the processing to the key code hook routine registered by another application or the like by CallNextHookEx () (step S90).

次に、図15のフローチャートを用いて、常駐アプリケーション68により記憶部62に記憶された内容を変更する処理について説明する。図15のように、常駐アプリケーション68は、ユーザから入力された命令が、記憶部62に記憶された通知先のアプリケーションを変更するものであるかどうかを判断する(ステップS100)。通知先のアプリケーションを変更するものである場合(Yesの場合)、常駐アプリケーション68は、記憶部62に記憶された通知先のアプリケーションを、ユーザから入力された命令に基づき変更する(ステップS102)。   Next, processing for changing the contents stored in the storage unit 62 by the resident application 68 will be described using the flowchart of FIG. As shown in FIG. 15, the resident application 68 determines whether or not the command input from the user is to change the notification destination application stored in the storage unit 62 (step S100). When the notification destination application is to be changed (in the case of Yes), the resident application 68 changes the notification destination application stored in the storage unit 62 based on a command input by the user (step S102).

次いで、常駐アプリケーション68は、ユーザから入力された命令が、記憶部62に記憶されたキーコードと対応付けされたウィンドウメッセージを変更するものであるかどうかを判断する(ステップS104)。ウィンドウメッセージを変更するものである場合(Yesの場合)、常駐アプリケーション68は、記憶部62に記憶されたキーコードと対応付けされたウィンドウメッセージを、ユーザから入力された命令に基づき変更する(ステップS106)。   Next, the resident application 68 determines whether or not the command input from the user is to change the window message associated with the key code stored in the storage unit 62 (step S104). When the window message is to be changed (in the case of Yes), the resident application 68 changes the window message associated with the key code stored in the storage unit 62 based on a command input from the user (step). S106).

以上説明してきたように、実施例2によれば、常駐アプリケーション68は、プリンタステータスに対応したキーコードがキーボードイベントとしてアクティブなアプリケーションに通知される前に、プリンタステータスに対応したキーコードを取得する。そして、常駐アプリケーション68は、記憶部62に記憶されたキーコードと対応付けされたウィンドウメッセージに基づき、取得したキーコードをウィンドウメッセージに変換し、変換したウィンドウメッセージを記憶部62に記憶された通知先のアプリケーションに通知する。このような制御により、プリンタステータスに関するデータを、アクティブなアプリケーションだけではなく、任意のアプリケーションに通知することができる。   As described above, according to the second embodiment, the resident application 68 acquires the key code corresponding to the printer status before the key code corresponding to the printer status is notified to the active application as a keyboard event. . The resident application 68 converts the acquired key code into a window message based on the window message associated with the key code stored in the storage unit 62, and the notification stored in the storage unit 62 of the converted window message. Notify the destination application. By such control, data relating to the printer status can be notified not only to an active application but also to an arbitrary application.

実施例2において、常駐アプリケーション68は、プリンタステータスに対応したキーコードをキーボードイベント(WM_KEYDOWN/WM_KEYUPのウィンドウメッセージと仮想キーコード)に変換する場合を例に示したがこれに限られる訳ではない。常駐アプリケーション68は、記憶部62に記憶されたキーコードと対応付けされたウィンドウメッセージに基づき、任意のウィンドウメッセージに変換する場合でもよい。   In the second embodiment, the case where the resident application 68 converts the key code corresponding to the printer status into a keyboard event (WM_KEYDOWN / WM_KEYUP window message and virtual key code) is described as an example, but the present invention is not limited thereto. The resident application 68 may be converted into an arbitrary window message based on the window message associated with the key code stored in the storage unit 62.

また、ウィンドウメッセージは、1つのアプリケーションに通知するようにしてもよいし、複数のアプリケーションに同時に通知するようにしてもよい。即ち、記憶部62には、通知先のアプリケーションとして、1つのアプリケーションが記憶されている場合でも、複数のアプリケーションが記憶されている場合でもよい。また、記憶部62に複数のアプリケーションが記憶され、その中から、通知先のアプリケーションを選択できるようにしてもよい。   Further, the window message may be notified to one application, or may be simultaneously notified to a plurality of applications. That is, the storage unit 62 may store one application or a plurality of applications as notification destination applications. In addition, a plurality of applications may be stored in the storage unit 62, and a notification destination application may be selected from them.

図15で説明したように、常駐アプリケーション68は、記憶部62に記憶されたウィンドウメッセージの通知先のアプリケーションおよびキーコードと対応付けされたウィンドウメッセージを変更できる場合が好ましい。なお、通知先のアプリケーションの変更およびキーコードと対応付けされたウィンドウメッセージの変更は、常駐アプリケーション68が行う場合に限らず、例えば印刷アプリケーション12、第1アプリケーション64、第2アプリケーション66が行う場合でもよい。   As described with reference to FIG. 15, it is preferable that the resident application 68 can change the window message associated with the window message notification destination application and key code stored in the storage unit 62. Note that the change of the notification destination application and the change of the window message associated with the key code are not limited to being performed by the resident application 68, but may be performed by, for example, the print application 12, the first application 64, or the second application 66. Good.

実施例2では、コンピュータ10は、Windows(登録商標)オペレーティングシステムを備えている場合を例に説明したが、プリンタ40から送信されたキーコードをキーボードイベント発生前に取得するキーコードフックが可能であれば、その他のオペレーティングシステムを備えている場合でもよい。また、実施例2では、プリンタ40からのキーコードを取得する方法としてキーコードフックを用いているが、キーボードイベント発生前にキーコードの取得が可能であればその他の方法を用いてもよい。   In the second embodiment, the case where the computer 10 includes a Windows (registered trademark) operating system has been described as an example. However, a key code hook that acquires a key code transmitted from the printer 40 before the occurrence of a keyboard event is possible. Any other operating system may be used. In the second embodiment, the key code hook is used as a method for acquiring the key code from the printer 40, but other methods may be used as long as the key code can be acquired before the keyboard event occurs.

なお、本発明は、上述した実施例に限定されるものではなく、その要旨を逸脱しない範囲内で種々変形して実施することが可能である。   In addition, this invention is not limited to the Example mentioned above, In the range which does not deviate from the summary, it can change and implement variously.

10 コンピュータ
12 印刷アプリケーション
14 GDI
16 プリンタドライバ
18 スプーラ
20 言語モニタ
22 ポートモニタ
23 ユーザインタフェース
24 USBバルクドライバ
25 HIDドライバ
26 USBドライバスタック
28 USBホストコントローラ
30 CPU
32 メモリ
34 I/F
40 プリンタ
42 CPU
44 メモリ
46 I/F
48 記憶部
50 プリント部
52 USBインタフェースケーブル
60 コンピュータ
62 記憶部
64 第1アプリケーション
66 第2アプリケーション
68 常駐アプリケーション
100 プリンタシステム
200 プリンタシステム
EP0からEPx エンドポイント
10 Computer 12 Printing Application 14 GDI
16 Printer Driver 18 Spooler 20 Language Monitor 22 Port Monitor 23 User Interface 24 USB Bulk Driver 25 HID Driver 26 USB Driver Stack 28 USB Host Controller 30 CPU
32 memory 34 I / F
40 Printer 42 CPU
44 Memory 46 I / F
48 Storage Unit 50 Print Unit 52 USB Interface Cable 60 Computer 62 Storage Unit 64 First Application 66 Second Application 68 Resident Application 100 Printer System 200 Printer System EP0 to EPx Endpoint

Claims (10)

コンピュータとの通信に使用される複数のエンドポイントと、
前記複数のエンドポイントのうちHIDクラスの通信に使用する少なくとも1つのエンドポイントからキーコードを前記コンピュータにインタラプト転送する制御部と、を備えることを特徴とするプリンタ。
Multiple endpoints used to communicate with the computer;
And a control unit that interrupt-transfers a key code from at least one of the plurality of endpoints used for HID class communication to the computer.
前記キーコードは、プリンタステータスに対応したキーコードであることを特徴とする請求項1記載のプリンタ。   The printer according to claim 1, wherein the key code is a key code corresponding to a printer status. 前記キーコードを記憶する記憶部を有し、
前記制御部は、前記記憶部に記憶された前記キーコードを前記コンピュータにインタラプト転送すると共に、前記コンピュータからの指示に基づき、前記記憶部に記憶された前記キーコードを変更することを特徴とする請求項1または2記載のプリンタ。
A storage unit for storing the key code;
The control unit interrupt-transfers the key code stored in the storage unit to the computer, and changes the key code stored in the storage unit based on an instruction from the computer. The printer according to claim 1 or 2.
複数のエンドポイントを有するプリンタに接続され、前記複数のエンドポイントのうちHIDクラスの通信に使用される少なくとも1つのエンドポイントからキーコードがインタラプト転送されるコンピュータを、
前記1つのエンドポイントからインタラプト転送される前記キーコードがキーボードイベントとしてアクティブなアプリケーションに通知される前に前記キーコードを取得する取得手段、
前記取得手段で取得した前記キーコードを、記憶部に記憶された前記キーコードに対応したウィンドウメッセージに変換する変換手段、
前記変換手段で変換した前記ウィンドウメッセージを、前記記憶部に通知先として記憶されたアプリケーションに通知する通知手段、として機能させることを特徴とするプログラム。
A computer connected to a printer having a plurality of endpoints and having a key code interrupted from at least one of the plurality of endpoints used for HID class communication;
An acquisition means for acquiring the key code before the active application is notified as a keyboard event of the key code interrupt-transferred from the one endpoint;
Conversion means for converting the key code acquired by the acquisition means into a window message corresponding to the key code stored in a storage unit;
A program which causes the window message converted by the conversion means to function as notification means for notifying an application stored as a notification destination in the storage unit.
前記キーコードは、プリンタステータスに対応したキーコードであることを特徴とする請求項4記載のプログラム。   5. The program according to claim 4, wherein the key code is a key code corresponding to a printer status. 前記変換手段は、前記取得手段で取得した前記キーコードを、前記キーコードに対応したキーボードイベントに変換することを特徴とする請求項4または5記載のプログラム。   6. The program according to claim 4, wherein the conversion unit converts the key code acquired by the acquisition unit into a keyboard event corresponding to the key code. 前記記憶部に記憶された前記通知先のアプリケーションを変更する第1変更手段、を有することを特徴とする請求項4から6のいずれか一項記載のプログラム。   The program according to any one of claims 4 to 6, further comprising first changing means for changing the notification destination application stored in the storage unit. 前記記憶部に記憶された前記ウィンドウメッセージを変更する第2変更手段、を有することを特徴とする請求項4から7のいずれか一項記載のプログラム。   The program according to any one of claims 4 to 7, further comprising second changing means for changing the window message stored in the storage unit. コンピュータと、
前記コンピュータとの通信に使用される複数のエンドポイントのうちHIDクラスの通信に使用する少なくとも1つのエンドポイントからプリンタステータスに対応したキーコードを前記コンピュータにインタラプト転送するプリンタと、を備えることを特徴とするプリンタシステム。
A computer,
A printer that interrupt-transfers to the computer a key code corresponding to a printer status from at least one endpoint used for HID class communication among a plurality of endpoints used for communication with the computer. Printer system.
前記コンピュータは、前記1つのエンドポイントからインタラプト転送される前記キーコードがキーボードイベントとしてアクティブなアプリケーションに通知される前に前記キーコードを取得し、前記キーコードを記憶部に記憶された前記キーコードに対応したウィンドウメッセージに変換し、前記ウィンドウメッセージを前記記憶部に通知先として記憶されたアプリケーションに通知することを特徴とする請求項9記載のプリンタシステム。   The computer acquires the key code before the active application is notified as a keyboard event of the key code interrupt-transferred from the one endpoint, and the key code is stored in the storage unit. 10. The printer system according to claim 9, wherein the window message is converted to a window message corresponding to the message, and the window message is notified to an application stored in the storage unit as a notification destination.
JP2011078890A 2011-03-31 2011-03-31 Printer, program, and printer system Pending JP2012213859A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011078890A JP2012213859A (en) 2011-03-31 2011-03-31 Printer, program, and printer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011078890A JP2012213859A (en) 2011-03-31 2011-03-31 Printer, program, and printer system

Publications (1)

Publication Number Publication Date
JP2012213859A true JP2012213859A (en) 2012-11-08

Family

ID=47267172

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011078890A Pending JP2012213859A (en) 2011-03-31 2011-03-31 Printer, program, and printer system

Country Status (1)

Country Link
JP (1) JP2012213859A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016167312A (en) * 2016-06-06 2016-09-15 キヤノン株式会社 Information processing apparatus, method and program
JP2019525591A (en) * 2016-07-29 2019-09-05 エヌチェーン ホールディングス リミテッドNchain Holdings Limited Method and system implemented by blockchain

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003018427A (en) * 2001-07-05 2003-01-17 Toshiba Corp Electronic equipment and its control method
JP2004139386A (en) * 2002-10-18 2004-05-13 Canon Inc Control method of print system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003018427A (en) * 2001-07-05 2003-01-17 Toshiba Corp Electronic equipment and its control method
JP2004139386A (en) * 2002-10-18 2004-05-13 Canon Inc Control method of print system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016167312A (en) * 2016-06-06 2016-09-15 キヤノン株式会社 Information processing apparatus, method and program
JP2019525591A (en) * 2016-07-29 2019-09-05 エヌチェーン ホールディングス リミテッドNchain Holdings Limited Method and system implemented by blockchain
JP7203009B2 (en) 2016-07-29 2023-01-12 エヌチェーン ライセンシング アーゲー Methods and systems implemented by blockchain
JP7454035B2 (en) 2016-07-29 2024-03-21 エヌチェーン ライセンシング アーゲー Methods and systems implemented by blockchain

Similar Documents

Publication Publication Date Title
US7752029B2 (en) Method to change USB device descriptors from host to emulate a new device
JP4837659B2 (en) Bus controller for processing split transactions
US8898349B1 (en) IPMI over USB data transfer between host computer and baseboard management controller (BMC)
TW439043B (en) Utility, method and device for handling a first set of higher-priority functions and a second set of lower-priority functions
US8665474B2 (en) Method, system, apparatus and medium for minimizing unnecessary processing associated with connection/disconnection of a same host
JP6140937B2 (en) Network device, program, system and method
US11204852B2 (en) Information processing apparatus, method of controlling the same, information processing system and storage medium
JP2001256170A (en) Peripheral device and printer
TWI413915B (en) Ps/2 to usb keyboard adaptor supporting n-key rollover
WO2010077813A2 (en) Composite device emulation
JP2012213859A (en) Printer, program, and printer system
JP2009259094A (en) Information processor, status monitoring program, image forming device driver and program set
WO2018003841A1 (en) Serial communication method and sensor controller
JP2002229967A (en) Computer system, cpu/memory-mounted device and input- output device
US7506082B2 (en) Data transferring system using USB and method thereof
JP2001184296A (en) Usb communication interface, computer, hub, electronic equipment, and function switching method in the electronic equipment
JP6216909B1 (en) Serial communication method and sensor controller
KR20070024600A (en) Bus controller for transferring data
KR101374801B1 (en) Usb keyboard apparatus and method capable of supporting n-key rollover with bios compatibility
JPH11161591A (en) Data communication equipment, data communication method, storage medium and device driver
JP3754930B2 (en) Printer and printer system
JP6531446B2 (en) UPS management apparatus and method using HID_USB communication
KR101340892B1 (en) Usb keyboard apparatus and method capable of supporting n-key rollover over 62 keys
JP2001199132A (en) Method for detecting state of printer having usb interface and printing system using the method
JP2018195209A (en) Device control device, device control method, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141014

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141015

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150224