(57)【要約】【課題】  通信装置が、端末装置から受信される設定情報に応じて設定値を変更する処理を実行するために、通信装置のメモリに格納される情報量を低減させるための技術を提供すること。【解決手段】  通信装置は、複数個の設定項目のそれぞれについて、当該設定項目を示す短縮文字列と、当該設定項目の設定値と、を対応付けて格納するメモリを備える。短縮文字列の文字数は、端末装置に表示される項目文字列の文字数よりも少なく、短縮文字列は、項目文字列の一部の文字を含む。通信装置は、端末装置から、第１の項目文字列に関係する第１の関係文字列と、第１の設定値と、が対応付けられている設定情報を受信し、設定情報に含まれる第１の関係文字列を利用して、メモリ内の第１の設定項目を示す第１の短縮文字列を特定し、特定済みの第１の短縮文字列に対応付けられているメモリ内の設定値を、設定情報に含まれる第１の設定値に変更する。【選択図】  図２
2018077803.tif 000002
【特許請求の範囲】
【請求項１】
通信装置であって、
通信インターフェースと、
複数個の設定項目のそれぞれについて、当該設定項目を示す短縮文字列と、当該設定項目の設定値と、を対応付けて格納するメモリであって、前記複数個の設定項目のそれぞれについて、当該設定項目を示す短縮文字列の文字数は、前記通信装置とは異なる端末装置に表示される当該設定項目を示す項目文字列の文字数よりも少なく、当該設定項目を示す短縮文字列は、当該設定項目を示す項目文字列の一部の文字を含む、前記メモリと、
前記端末装置において、前記複数個の設定項目のうちの第１の設定項目を示す第１の項目文字列が表示されている状態で、前記第１の設定項目の第１の設定値が指定される場合に、前記端末装置から、前記通信インターフェースを介して、前記第１の項目文字列に関係する第１の関係文字列と、前記第１の設定値と、が対応付けられている設定情報を受信する第１の受信部と、
前記設定情報に含まれる前記第１の関係文字列を利用して、前記メモリ内の前記第１の設定項目を示す第１の短縮文字列を特定する第１の特定部と、
特定済みの前記第１の短縮文字列に対応付けられている前記メモリ内の設定値を、前記設定情報に含まれる前記第１の設定値に変更する変更部と、
を備える、通信装置。
【請求項２】
前記複数個の設定項目のそれぞれについて、当該設定項目を示す項目文字列は、当該設定項目を示す２個以上の階層名を含み、
前記複数個の設定項目のそれぞれについて、当該設定項目を示す短縮文字列は、当該設定項目を示す２個以上の階層名のそれぞれの少なくとも一部の文字を含む、請求項１に記載の通信装置。
【請求項３】
前記複数個の設定項目のそれぞれについて、当該設定項目を示す短縮文字列は、当該設定項目を示す２個以上の階層名のうち、最下層の階層名とは異なる１個以上の階層名のそれぞれの一部の文字と、最下層の階層名の全ての文字と、を含む、請求項２に記載の通信装置。
【請求項４】
前記第１の設定項目を示す前記第１の項目文字列は、最下層より上位層の階層名である特定の階層名と、最下層の階層名である第１の最下層名と、を含み、
前記複数個の設定項目のうち、前記第１の設定項目とは異なる第２の設定項目を示す第２の項目文字列は、前記特定の階層名と、最下層の階層名である第２の最下層名であって、前記第１の最下層名とは異なる前記第２の最下層名と、を含み、
前記第１の設定項目を示す前記第１の短縮文字列は、前記特定の階層名の一部の文字と、前記第１の最下層名の少なくとも一部の文字と、を含み、
前記第２の設定項目を示す第２の短縮文字列は、前記特定の階層名の前記一部の文字と、前記第２の最下層名の少なくとも一部の文字と、含む、請求項２又は３に記載の通信装置。
【請求項５】
前記第１の設定項目を示す前記第１の項目文字列に含まれる２個以上の階層名は、特定の階層名を含み、
前記特定の階層名は、所定記号と、前記特定の階層名を構成する各文字が並ぶ配列方向の第１側において前記所定記号に隣接する第１側文字列と、前記配列方向の第２側において前記所定記号に隣接する第２側文字列と、を含み、
前記第１の短縮文字列は、前記第１側文字列の両端を構成する２個の文字のうち、前記配列方向の一方側に存在する第１の文字と、前記第２側文字列の両端を構成する２個の文字のうち、前記配列方向の前記一方側に存在する第２の文字と、を含む、請求項２から４のいずれか一項に記載の通信装置。
【請求項６】
前記第１の関係文字列は、前記第１の項目文字列を含み、
前記第１の特定部は、前記第１の項目文字列を含む前記第１の関係文字列を利用して、前記第１の項目文字列の文字数よりも少ない文字数を有する前記第１の短縮文字列を生成し、生成済みの前記第１の短縮文字列に一致する前記メモリ内の前記第１の短縮文字列を特定する、請求項１から５のいずれか一項に記載の通信装置。
【請求項７】
前記第１の項目文字列は、２個以上の階層名を含み、
前記第１の特定部は、前記２個以上の階層名のそれぞれの少なくとも一部の文字を抽出し、前記２個以上の階層名のそれぞれの抽出済みの前記少なくとも一部の文字を含む前記第１の短縮文字列を生成する、請求項６に記載の通信装置。
【請求項８】
前記第１の特定部は、前記２個以上の階層名のうち、最下層の階層名とは異なる１個以上の階層名のそれぞれの一部の文字と、前記最下層の階層名の全ての文字と、を抽出し、前記１個以上の階層名のそれぞれの抽出済みの前記一部の文字と、前記最下層の階層名の抽出済みの前記全ての文字と、を含む前記第１の短縮文字列を生成する、請求項７に記載の通信装置。
【請求項９】
前記第１の特定部は、
前記２個以上の階層名のうちの処理対象の対象階層名が所定記号を含むのか否かを判断し、
前記対象階層名が前記所定記号を含むと判断される場合に、前記対象階層名のうちの第１の文字と第２の文字とを抽出し、前記第１の文字と前記第２の文字とを含む前記第１の短縮文字列を生成し、
前記対象階層名が前記所定記号を含まないと判断される場合に、前記対象階層名の一部である２個以上の文字を抽出し、前記２個以上の文字を含む前記第１の短縮文字列を生成し、
前記対象階層名が前記所定記号を含むと判断される場合に、前記対象階層名は、前記所定記号と、前記対象階層名を構成する各文字が並ぶ配列方向の第１側において前記所定記号に隣接する第１側文字列と、前記配列方向の第２側において前記所定記号に隣接する第２側文字列と、を含み、
前記第１の文字は、前記第１側文字列の両端を構成する２個の文字のうち、前記配列方向の一方側に存在する文字であり、
前記第２の文字は、前記第２側文字列の両端を構成する２個の文字のうち、前記配列方向の前記一方側に存在する文字であり、
前記２個以上の文字は、前記対象階層名のうち、前記配列方向の前記第１側又は前記第２側の端を構成する文字と、当該文字に隣接する文字と、を含む、請求項７又は８のいずれか一項に記載の通信装置。
【請求項１０】
前記設定情報は、ＪＳＯＮ（JavaScript Object Notationの略）形式に従って記述されている情報である、請求項１から９のいずれか一項に記載の通信装置。
【請求項１１】
前記通信装置は、さらに、
前記端末装置から、前記通信インターフェースを介して、第３の項目文字列に関係する第２の関係文字列を含む要求情報を受信する第２の受信部と、
前記第２の関係文字列を利用して、前記メモリ内の第３の短縮文字列であって、前記第３の項目文字列を示す前記第３の短縮文字列を特定する第２の特定部と、
特定済みの前記第３の短縮文字列に対応付けられている前記メモリ内の設定値を前記端末装置に送信する送信部と、
を備える、請求項１から１０のいずれか一項に記載の通信装置。
【請求項１２】
通信装置のためのコンピュータプログラムであって、
前記通信装置は、
通信インターフェースと、
複数個の設定項目のそれぞれについて、当該設定項目を示す短縮文字列と、当該設定項目の設定値と、を対応付けて格納するメモリであって、前記複数個の設定項目のそれぞれについて、当該設定項目を示す短縮文字列の文字数は、前記通信装置とは異なる端末装置に表示される当該設定項目を示す項目文字列の文字数よりも少なく、当該設定項目を示す短縮文字列は、当該設定項目を示す項目文字列の一部の文字を含む、前記メモリと、を備え、
前記コンピュータプログラムは、前記通信装置のコンピュータを、
前記端末装置において、前記複数個の設定項目のうちの第１の設定項目を示す第１の項目文字列が表示されている状態で、前記第１の設定項目の第１の設定値が指定される場合に、前記端末装置から、前記通信インターフェースを介して、前記第１の項目文字列に関係する第１の関係文字列と、前記第１の設定値と、が対応付けられている設定情報を受信する第１の受信部と、
前記設定情報に含まれる前記第１の関係文字列を利用して、前記メモリ内の前記第１の設定項目を示す第１の短縮文字列を特定する第１の特定部と、
特定済みの前記第１の短縮文字列に対応付けられている前記メモリ内の設定値を、前記設定情報に含まれる前記第１の設定値に変更する変更部と、
として機能させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書では、通信装置の設定値を変更するための技術を開示する。
【背景技術】
【０００２】
特許文献１には、サーバがＭＦＰ（Multifunction Peripheralの略）に所定の処理を実行させるための技術が開示されている。サーバは、ＭＦＰに所定の処理を実行させるための命令を生成し、当該命令をＭＦＰに供給する。当該命令は、所定のスクリプト言語であるＪＳＯＮ（JavaScript（登録商標） Object Notationの略）に従って記述される。ＭＦＰは、ＪＳＯＮで記述された命令を解釈して、所定の処理を実行する。所定の処理は、例えば、ＭＦＰの設定値を変更する処理、ＭＦＰの状態を示す情報をサーバに送信する処理等を含む。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１２５４７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＭＦＰが命令に従って所定の処理を実行するために、所定のスクリプト言語の文法に従った文字列をＭＦＰのメモリに予め格納しておくことが想定される。このような文字列を格納しておくためのメモリ容量を低減させることが求められている。
【０００５】
本明細書では、通信装置が、端末装置から受信される設定情報に応じて設定値を変更する処理を実行するために、通信装置のメモリに格納される情報量を低減させるための技術を提供する。
【課題を解決するための手段】
【０００６】
本明細書によって開示される通信装置は、通信インターフェースと、複数個の設定項目のそれぞれについて、当該設定項目を示す短縮文字列と、当該設定項目の設定値と、を対応付けて格納するメモリであって、前記複数個の設定項目のそれぞれについて、当該設定項目を示す短縮文字列の文字数は、前記通信装置とは異なる端末装置に表示される当該設定項目を示す項目文字列の文字数よりも少なく、当該設定項目を示す短縮文字列は、当該設定項目を示す項目文字列の一部の文字を含む、前記メモリと、前記端末装置において、前記複数個の設定項目のうちの第１の設定項目を示す第１の項目文字列が表示されている状態で、前記第１の設定項目の第１の設定値が指定される場合に、前記端末装置から、前記通信インターフェースを介して、前記第１の項目文字列に関係する第１の関係文字列と、前記第１の設定値と、が対応付けられている設定情報を受信する第１の受信部と、前記設定情報に含まれる前記第１の関係文字列を利用して、前記メモリ内の前記第１の設定項目を示す第１の短縮文字列を特定する第１の特定部と、特定済みの前記第１の短縮文字列に対応付けられている前記メモリ内の設定値を、前記設定情報に含まれる前記第１の設定値に変更する変更部と、を備える。
【０００７】
上記の構成によれば、通信装置のメモリは、複数個の設定項目のそれぞれについて、当該設定項目を示す短縮文字列と、当該設定項目の設定値と、を対応付けて格納する。これにより、複数個の設定項目のそれぞれについて、当該設定項目を示す項目文字列と、当該設定項目の設定値と、を対応付けて格納する構成と比べて、メモリに格納される情報量を低減させることができる。従って、メモリに格納される情報量を低減させつつ、端末装置から受信される設定情報に応じて通信装置内の設定値を変更することができる。
【０００８】
上記の通信装置を実現するための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを格納するコンピュータ読取可能記録媒体も、新規で有用である。
【図面の簡単な説明】
【０００９】
【図１】通信システムの構成を示す。
【図２】プリンタのメモリに格納される対応テーブル及び設定値の一例を示す。
【図３】端末装置に表示される画面を示す。
【図４】プリンタで実行される処理のフローチャートを示す。
【図５】テーブル生成処理のフローチャートを示す。
【図６】ＪＳＯＮファイルの階層構造と設定テーブルとを示す。
【図７】設定値を書き込むための具体的なケースを示す。
【図８】設定値を読み出すための具体的なケースを示す。
【発明を実施するための形態】
【００１０】
（通信システム２の構成；図１）
図１に示されるように、通信システム２は、プリンタ１０と端末装置１００とを備える。プリンタ１０と端末装置１００とは、同じＬＡＮ（Local Area Networkの略）４に所属しており、ＬＡＮ４を介して相互に通信可能である。
【００１１】
（プリンタ１０の構成）
プリンタ１０は、印刷機能を実行可能な周辺装置（即ち端末装置１００の周辺装置）である。プリンタ１０は、ネットワークインターフェース１６と制御部２０とを備える。各部１６、２０は、バス線（符号省略）に接続されている。以下では、インターフェースのことを「Ｉ／Ｆ」と呼ぶ。ネットワークＩ／Ｆ１６は、有線通信を実行するためのＩ／Ｆであり、ＬＡＮ４に接続されている。変形例では、ネットワークＩ／Ｆ１６は、無線通信を実行するためのＩ／Ｆであってもよく、この場合、ＬＡＮ４は、いわゆる無線ＬＡＮである。
【００１２】
制御部２０は、ＣＰＵ２２と、メモリ２４と、を備える。ＣＰＵ２２は、メモリ２４に格納されているプログラム２６に従って、様々な処理を実行する。メモリ２４は、揮発性メモリ、不揮発性メモリ等によって構成される。メモリ２４は、さらに、複数個の設定値３０と対応テーブル３４とを格納する。
【００１３】
（対応テーブル３４と設定値３０の一例；図２）
図２には、プリンタ１０で採用されている複数個の設定項目を示す複数個の項目文字列が階層構造で示されている。なお、本実施例では、階層構造は、最上層から最下層までの４個の階層によって表現されるが、変形例では、２個又は３個の階層によって表現されてもよいし、５個以上の階層によって表現されてもよい。各階層名は、１個の単語又は複数個の単語の組合せによって構成される。複数個の単語によって構成される階層名は、隣り合う２個の単語の間にアンダーバー記号「_」を含む。例えば、階層名「contact_and_location」は、３個の単語によって構成されており、２個の単語「contact」、「and」の間に「_」を含み、２個の単語「and」、「location」の間に「_」を含む。
【００１４】
４個の階層名を組み合わせることによって、１個の設定項目を示す１個の項目文字列が表現される。例えば、「setting」と「general」と「contact_and_location」と「contact」との組合せである項目文字列（一点破線参照）は、プリンタ１０のマシントラブルが発生した際の連絡先（例えば電話番号）に対応する設定項目を示す。また、「setting」と「general」と「contact_and_location」と「location」との組合せである項目文字列は、プリンタ１０が設置される場所に対応する設定項目（例えばフロア番号、部屋番号等）を示す。同様に、他の設定項目も表現される。階層名「sleep_time」を含む項目文字列は、プリンタ１０が通常モードから省電力モードへ移行するための待機時間に対応する設定項目を示す。階層名「language」を含む項目文字列は、プリンタ１０で表示されるメッセージの言語に対応する設定項目を示す。階層名「wireless_print」及び「enable」を含む項目文字列は、無線通信に従った印刷（即ち無線印刷）の可否に対応する設定項目を示す。階層名「cloud_print」及び「enable」を含む項目文字列は、クラウドサーバからダウンロードされるデータに従った印刷（即ちクラウド印刷）の可否に対応する設定項目を示す。
【００１５】
対応テーブル３４は、複数個の設定項目のそれぞれについて、当該設定項目を示す短縮文字列と、当該設定項目の設定値が格納されているメモリ２４内の位置を示すアドレスと、が対応付けられているテーブルである。複数個の設定項目のそれぞれについて、当該設定項目を示す短縮文字列の文字数は、当該設定項目を示す項目文字列の文字数よりも少なく、当該設定項目を示す短縮文字列は、当該設定項目を示す項目文字列の一部の文字を含む。具体的には、短縮文字列は、項目文字列に含まれる４個の階層名のうちの最上層から第３層までの３個の階層名のそれぞれの一部の文字と、最下層の階層名の全ての文字と、を含む。
【００１６】
例えば、項目文字列「setting general contact_and_location contact」（一点破線参照）は、各階層名の少なくとも一部がドット「.」で連結された短縮文字列「set.gen.cal.contact」として表現される。文字列「set」、文字列「gen」は、それぞれ、最上層の階層名「setting」、第２層の階層名「general」のうち、当該階層名の配列方向（即ち図２の左右方向）の左端（即ち先頭）の文字から連続する３個の文字である。文字列「cal」は、第３層の階層名「contact_and_location」を構成する３個の単語「contact」、「and」、「location」のそれぞれの先頭の文字の組合せである。文字列「contact」は、最下層の階層名「contact」の全ての文字である。このように、最下層よりも上位層の階層名については、アンダーバー記号を含まない場合には、当該階層名のうちの先頭の３個の文字が利用され、アンダーバー記号を含む場合には、各単語の先頭の文字が利用される。他の短縮文字列も同様に表現される。
【００１７】
項目文字列「setting general contact_and_location contact」と項目文字列「setting general contact_and_location location」とを比較すると、最上層から第３層までの各階層名は同じであり、最下層の階層名が異なる。そして、短縮文字列は、最下層の階層名の全ての文字を含む。このために、上記の２個の項目文字列から異なる２個の短縮文字列（即ち、「set.gen.cal.contact」、「set.gen.cal.location」）を生成することができる。即ち、２個の項目文字列から同じ短縮文字列が生成されるのを抑制することができる。また、最下層の階層名は、設定項目の内容を最も端的に示す。従って、プリンタ１０のベンダは、最下層の階層名の全ての文字列を含む短縮文字列から設定項目の内容を容易に連想することができる。このために、ベンダは、短縮文字列に関する処理を実行するためのプログラムを容易に生成し得る。
【００１８】
なお、変形例では、短縮文字列は以下のように構成されてもよい。例えば、最下層よりも上位層の階層名がアンダーバー記号を含む場合（例えば「contact_and_location」）には、３個の単語「contact」、「and」、「location」から、最後の３個の文字「tdn」が利用されてもよい。また、例えば、最下層よりも上位層の階層名（例えば「contact_and_location」）については、アンダーバー記号を含むのか否かに関わらず、当該階層名のうちの先頭の３個の文字（例えば「con」）が利用されてもよい。また、例えば、最下層よりも上位層の階層名（例えば「setting」）については、当該階層名のうちの先頭の３個の文字ではなく、先頭の２個の文字（例えば「se」）が利用されてもよいし、先頭の１個の文字（例えば「s」）が利用されてもよいし、最後の１個以上の文字（例えば「ing」）が利用されてもよい。また、例えば、最下層の階層名（例えば「contact」）については、当該階層名の全ての文字ではなく、当該階層名の一部の文字が利用されてもよい。また、例えば、先頭の１個以上の文字（例えば「con」）が利用されてもよいし、最後の１個以上の文字（例えば「act」）が利用されてもよい。
【００１９】
対応テーブル３４では、短縮文字列「set.gen.cal.contact」は、アドレスＡ１に対応付けられており、アドレスＡ１は、メモリ２４内の設定値「default」の位置を示す。従って、短縮文字列「set.gen.cal.contact」と設定値「default」とは、アドレスＡ１を介して対応付けられている。同様に、他の各短縮文字列も、各アドレスＡ２〜Ａ６を介して設定値に対応付けられている。ただし、変形例では、対応テーブル３４において、短縮文字列と設定値とが直接対応付けられていてもよい。設定値「default」は、マシントラブルの際の連絡先又はプリンタ１０の設置場所がまだ登録されていないことを示す。設定値「100」は、通常モードから省電力モードへ移行するための待機時間が１００秒であることを示す。設定値「English」は、プリンタ１０で表示されるメッセージの言語が英語であることを示す。設定値「false」は、無線印刷又はクラウド印刷が許可されていないことを示す。
【００２０】
（端末装置１００の構成；図１）
端末装置１００は、デスクトップＰＣ（Personal Computerの略）、ノートＰＣ等のユーザ端末である。端末装置１０には、ＰＪＬ（Printer Job Languageの略）プログラム１２６とＪＳＯＮ（JavaScript Object Notationの略）プログラム１２８とがインストールされている。また、端末装置１０には、スキームファイル１３０が格納されている。
【００２１】
ＰＪＬプログラム１２６は、ＰＪＬファイルを生成して、ＰＪＬファイルを端末装置１００に送信するためのプログラムである。ＰＪＬプログラム１２６は、プリンタ１０のベンダによって提供されるプログラムであり、例えば、プリンタ１０と共に出荷されるメディアから端末装置１００にインストールされてもよいし、インターネット上の図示省略のサーバから端末装置１００にインストールされてもよい。なお、ＰＪＬプログラム１２６は、プリンタ１０のベンダとは異なる事業者から提供されてもよい。
【００２２】
ＪＳＯＮプログラム１２８は、スキームファイル１３０からＪＳＯＮファイルを生成するためのプログラムである。ＪＳＯＮプログラム１２８は、プリンタ１０のベンダとは異なる事業者によって提供されるプログラムであり、例えば、インターネット上の図示省略のサーバから端末装置１００にインストールされる。
【００２３】
スキームファイル１３０は、プリンタ１０で採用されている複数個の設定項目を示す複数個の項目文字列を定義するファイルである。スキームファイル１３０は、プリンタ１０のベンダによって提供されるファイルであり、例えば、プリンタ１０と共に出荷されるメディアから端末装置１００にインストールされてもよいし、インターネット上の図示省略のサーバから端末装置１００にインストールされてもよい。スキームファイル１３０では、複数個の設定項目のそれぞれについて、当該設定項目の項目文字列と、当該設定項目の設定値の範囲と、が対応付けられている。
【００２４】
（端末装置１００に表示される画面；図３）
端末装置１００は、ユーザの操作に応じて、ＪＳＯＮプログラム１２８を起動する指示を受け付けると、図３に示されるように、ＪＳＯＮプログラム１２８に従って、スキームファイル１３０に記述された複数個の項目文字列を含む入力画面ＳＣを表示する。入力画面ＳＣは、複数個の項目文字列と、複数個の項目文字列に対応する複数個の設定値を入力するための複数個の入力欄と、ＯＫアイコンＩＣと、を含む。
【００２５】
入力画面ＳＣでは、階層名「setting」を示す枠Ｆ１と、枠Ｆ１の内側に配置される階層名「general」を示す枠Ｆ２と、枠Ｆ２の内側に配置される階層名「contact_and_location」を示す枠Ｆ３と、枠Ｆ３の内側に記述される階層名「contact」と、によって、項目文字列「setting general contact_and_location contact」が表現される。枠Ｆ３は、項目文字列「setting general contact_and_location contact」に対応する設定値を入力するための入力欄を含む。同様に、他の項目文字列及び入力欄も表示される。入力画面ＳＣでは、短縮文字列ではなく項目文字列が表示されるので、ユーザは、項目文字列がどの設定項目を示すのかを容易に把握することができる。
【００２６】
端末装置１００は、入力画面ＳＣにおいて、１個以上の入力欄への所望の設定値が入力された後に、ＯＫアイコンＡＣの選択を受け付ける。この場合、端末装置１００は、ＪＳＯＮプログラム１２８に従って、ＪＳＯＮファイルを生成する。
【００２７】
その後、端末装置１００は、ＰＪＬプログラム１２６を起動し、設定値を変更する処理と設定値を取得する処理とのうちのいずれかの処理を選択するための選択画面（不図示）を表示する。端末装置１００は、選択画面において、設定値を変更する処理の選択を受け付けると、ＰＪＬプログラム１２６に従って、生成済みのＪＳＯＮファイルを含むＰＪＬファイルを生成する。ここで、端末装置１００は、設定値の書き込み（即ち変更）を示す文字列「ＷＲＩＴＥ」が記述されたヘッダを含むＰＪＬファイルを生成する。そして、端末装置１００は、当該ＰＪＬファイルを端末装置１００に送信する。
【００２８】
また、端末装置１００のユーザがプリンタ１０内の現在の設定値を知りたい場合には、ユーザは、入力画面ＳＣにおいて、知りたい設定値に対応する１個以上の入力欄に適当な文字列（例えば「XXX」）を入力し、その後、ＯＫアイコンＡＣを選択する。この場合、端末装置１００は、適当な文字列が入力された１個以上の入力欄に対応する１個以上の項目文字列と、１個以上の適当な文字列「XXX」と、が記述されたＪＳＯＮファイルを生成する。
【００２９】
その後、端末装置１００は、選択画面において、設定値を取得する処理の選択を受け付けると、ＰＪＬプログラム１２６に従って、生成済みのＪＳＯＮファイルを含むＰＪＬファイルを生成する。ここで、端末装置１００は、設定値の読み出しを示す文字列「ＲＥＡＤ」が記述されたヘッダを含むＰＪＬファイルを生成する。そして、端末装置１００は、当該ＰＪＬファイルを端末装置１００に送信する。
【００３０】
（プリンタの処理；図４）
続いて、図４を参照して、プリンタ１０のＣＰＵ２２がプログラム２６に従って実行する処理の内容を説明する。この処理は、プリンタ１０の電源が投入されることをトリガとして開始される。
【００３１】
Ｓ１０では、ＣＰＵ２２は、端末装置１００からネットワークＩ／Ｆ１６を介してＰＪＬファイルを受信することを監視する。ＣＰＵ２２は、端末装置１００からＰＪＬファイルを受信すると（Ｓ１０でＹＥＳ）、Ｓ２０に進む。上述したように、ＰＪＬファイルは、「ＷＲＩＴＥ」又は「ＲＥＡＤ」が記述されたヘッダと、ＪＳＯＮファイルと、を含む。図４には、「ＷＲＩＴＥ」が記述されたヘッダを含むＪＳＯＮファイルの一例が示されている。ＪＳＯＮファイルでは、複数個の設定項目のそれぞれについて、当該設定項目を示す項目文字列と、当該設定項目の設定値と、が対応付けられている。ここでの設定値は、図３の入力画面ＳＣにおいて、ユーザによって入力された所望の設定値である。なお、「ＲＥＡＤ」が記述されたヘッダを含むＪＳＯＮファイルでは、設定値が記述されるべき領域に適当な文字列「XXX」が記述される。
【００３２】
Ｓ２０では、ＣＰＵ２２は、図５に示すテーブル生成処理を実行する。これにより、ＪＳＯＮファイルに含まれる設定文字列及び設定値の複数個の組合せから、短縮文字列及び設定値の複数個の組合せが記述された設定テーブルが生成される。
【００３３】
Ｓ３０では、ＣＰＵ２２は、ＰＪＬファイルのヘッダに「ＷＲＩＴＥ」が記述されているのか「ＲＥＡＤ」が記述されているのかを判断する。ＣＰＵ２２は、ヘッダに「ＷＲＩＴＥ」が記述されている場合（Ｓ３０でＹＥＳ）には、設定値を変更する処理を実行すべきと判断して、Ｓ３２に進む。一方、ＣＰＵ２２は、ヘッダに「ＲＥＡＤ」が記述されている場合（Ｓ３０でＮＯ）には、設定値を端末装置１００に送信する処理を実行すべきと判断して、Ｓ３６に進む。
【００３４】
Ｓ３２では、ＣＰＵ２２は、Ｓ２０で生成された設定テーブルから、１個の短縮文字列である対象短縮文字列と、対象短縮文字列に対応付けられている対象設定値（即ちＪＳＯＮファイルに記述されていた設定値）と、の組合せを特定する。次いで、ＣＰＵ２２は、対象短縮文字列に一致する対応テーブル３４内の短縮文字列を特定する。そして、Ｓ３４では、ＣＰＵ２２は、対応テーブル３４から、特定済みの短縮文字列に対応付けられているアドレス（例えば図２のＡ１）を特定する。次いで、ＣＰＵ２２は、特定済みのアドレスが示す位置に現在記述されている設定値に代えて、対象設定値を書き込む。ＣＰＵ２２は、設定テーブル内の短縮文字列及び設定値の他の組合せについても、同様の処理を実行する。これにより、メモリ２４内の各設定値３０の変更が実現される。Ｓ３４が終了すると、図４の処理が終了する。
【００３５】
Ｓ３６では、ＣＰＵ２２は、Ｓ３２と同様に、設定テーブルから、対象短縮文字列を特定する。次いで、ＣＰＵ２２は、対象短縮文字列に一致する対応テーブル３４内の短縮文字列を特定する。Ｓ３８では、ＣＰＵ２２は、対応テーブル３４から、特定済みの短縮文字列に対応付けられているアドレスを特定し、当該アドレスが示す位置に格納されている設定値を取得する（即ち読み出す）。次いで、ＣＰＵ２２は、対象短縮文字列の元の項目文字列と取得済みの設定値とが対応付けられている送信ファイルを生成する。ここで、送信ファイルは、ＪＳＯＮ形式（例えば図４に示される形式）に従って記述される。ＣＰＵ２２は、設定テーブル内の他の短縮文字列についても、同様の処理を実行する。これにより、送信ファイルが完成する。そして、Ｓ４０では、ＣＰＵ２２は、ネットワークＩ／Ｆ１６を介して、送信ファイルを端末装置１００に送信する。これにより、端末装置１００では、プリンタ１００内の各設定項目の各設定値が表示される。Ｓ４０が終了すると、図４の処理が終了する。
【００３６】
（テーブル生成処理；図５）
続いて、図５を参照して、図４のＳ２０で実行されるテーブル生成処理を説明する。Ｓ５０では、ＣＰＵ２２は、図４のＳ１０で受信されたＰＪＬファイル内のＪＳＯＮファイルから階層情報を生成する。階層情報は、ＪＳＯＮファイルに記述された複数個の項目文字列を構成する複数個の階層名のそれぞれについて、当該階層名によって示される階層の階位を示す情報である。ＣＰＵ２２は、例えば、Ｊａｓｓｏｎ、ＪＳＭＮ等のオープンソースのソフトウエアを利用して、階層情報を生成する。
【００３７】
Ｓ６０では、ＣＰＵ２２は、複数個の階層名の中から、処理対象の階層名である対象階層名を特定する。Ｓ６２では、ＣＰＵ２２は、階層情報を利用して、特定済みの対象階層名の階位が最下層であるの否かを判断する。ＣＰＵ２２は、対象階層名の階位が最下層である場合（Ｓ６２でＹＥＳ）には、Ｓ７０に進み、対象階層名の階位が最下層でない場合（Ｓ６２でＮＯ）には、Ｓ６４に進む。
【００３８】
Ｓ６４では、ＣＰＵ２２は、対象階層名を構成する全ての文字を抽出する。例えば、対象階層名が最下層の階層名「contact」である場合には、ＣＰＵ２２は、最下層の階層名「contact」から、全ての文字「contact」を抽出する。Ｓ６４が終了するとＳ８０に進む。
【００３９】
Ｓ７０では、ＣＰＵ２２は、対象階層名がアンダーバー記号「_」を含むのか否かを判断する。ＣＰＵ２２は、対象階層名がアンダーバー記号を含む場合（Ｓ７０でＹＥＳ）には、Ｓ７２に進み、対象階層名がアンダーバー記号を含まない場合（Ｓ７０でＮＯ）には、Ｓ７６に進む。
【００４０】
Ｓ７２では、ＣＰＵ２２は、対象階層名を構成する複数個の単語のそれぞれから、先頭の１個の文字を抽出する。Ｓ７４では、ＣＰＵ２２は、複数個の単語が並ぶ順序と同じ順序に従って、Ｓ７２で抽出済みの各文字を組み合わせる。例えば、対象階層名が階層名「contact_and_location」である場合には、ＣＰＵ２２は、Ｓ７２において、３個の単語「contact」、「and」、「location」のそれぞれからの先頭の文字「c」、「a」、「l」を抽出し、Ｓ７４において、抽出済みの３個の文字を組み合わせて文字列「cal」を生成する。また、例えば、対象階層名が階層名「sleep_mode」である場合には、ＣＰＵ２２は、Ｓ７２において、２個の単語「sleep」、「mode」のそれぞれから先頭の文字「s」、「m」を抽出し、Ｓ７４において、抽出済みの２個の文字を組み合わせて文字列「sm」を生成する。これにより、対象階層名がアンダーバー記号「_」を含む場合でも、対象階層名を適切に短縮することができる。
【００４１】
また、Ｓ７６では、ＣＰＵ２２は、対象階層名から先頭の３個の文字を抽出する。例えば、対象階層名が階層名「setting」である場合には、ＣＰＵ２２は、階層名「setting」から先頭の３個の文字「set」を抽出する。
【００４２】
Ｓ８０では、ＣＰＵ２２は、ＪＳＯＮファイルに記述された複数個の階層名の中に、対象階層名として特定されていない階層名が存在するのか否かを判断する。ＣＰＵ２２は、未特定の階層名が存在すると判断する場合（Ｓ８０でＹＥＳ）には、Ｓ６０に戻り、新たな対象階層名を特定する。一方、ＣＰＵ２２は、未特定の階層名が存在しないと判断する場合（Ｓ８０でＮＯ）には、Ｓ８２に進む。
【００４３】
Ｓ８２では、ＣＰＵ２２は、Ｓ５０で生成された階層情報と、Ｓ６０〜Ｓ８０で複数個の階層名から抽出された複数個の文字列と、を利用して、複数個の項目文字列を示す複数個の短縮文字列を生成する。この際、ＣＰＵ２２は、複数個の項目文字列と生成済みの複数個の短縮文字列との対応関係を示す関係情報をメモリ２４内に格納する。
【００４４】
Ｓ８４では、ＣＰＵ２２は、上記の関係情報とＪＳＯＮファイルとを利用して、設定テーブルを生成する。具体的には、ＣＰＵ２２は、Ｓ８２で生成された複数個の短縮文字列のそれぞれについて、関係情報を利用して、当該短縮文字列に対応する項目文字列を特定し、ＪＳＯＮファイルから、当該項目文字列に対応する設定値を抽出する。そして、ＣＰＵ２２は、複数個の短縮文字列のそれぞれについて、当該短縮文字列と抽出済みの設定値とが対応付けられている設定テーブルを生成する。Ｓ８４が終了すると、図５のテーブル生成処理が終了する。
【００４５】
（短縮文字列及び設定テーブルの具体例；図６）
図６を参照して、図５のテーブル生成処理によって生成される短縮文字列及び設定テーブルの具体例を説明する。図６の上段は、図４のＪＳＯＮファイルに記述される複数個の項目文字列の階層構造を示す。図６の下段は、当該ＪＳＯＮファイルから生成される設定テーブルを示す。
【００４６】
項目文字列「setting general contact_and_location contact」から短縮文字列「set.gen.cal.contact」が生成される具体例を説明する。最上層の階層名「setting」は、最下層ではなく（Ｓ６２でＮＯ）、アンダーバー記号を含まないので（Ｓ７０でＮＯ）、階層名「setting」から先頭の３個の文字「set」が抽出される（Ｓ７６）。第２層の階層名「general」についても、同様に、先頭の３個の文字「gen」が抽出される。第３層の階層名「contact_and_location」は、最下層ではなく（Ｓ６２でＮＯ）、アンダーバー記号を含むので（Ｓ７０でＹＥＳ）、３個の単語「contact」、「and」、「location」から３個の先頭の文字「c」、「a」、「l」が抽出され、文字列「cal」が生成される（Ｓ７２）。最下層の階層名「contact」は、最下層であるので（Ｓ６２でＹＥＳ）、全ての文字「contact」が抽出される（Ｓ７６）。抽出済みの各文字列がドット記号「.」で連結されて、短縮文字列「set.gen.cal.contact」が生成される（Ｓ８２）。他の短縮文字列も同様に生成される。
【００４７】
ユーザが設定値の変更を望む場合には、ＪＳＯＮファイルの設定値が記述されるべき領域には、所望の設定値（即ち図３の入力画面ＳＣに入力された設定値）が記述されている。そして、この場合に生成される設定テーブルＴＢ１では、複数個の短縮文字列と複数個の設定値（例えば「contact1」、「store1」）とが対応付けられている（Ｓ８４）。
【００４８】
一方、ユーザが設定値の変更を望む場合には、ＪＳＯＮファイルの設定値が記述されるべき領域には、適当な文字列「XXX」が記述される。そして、この場合に生成される設定テーブルＴＢ２では、複数個の短縮文字列と複数個の文字列「XXX」とが対応付けられている。
【００４９】
（設定値を書き込む具体的なケース；図７）
図７を参照して、図４のＳ３２及びＳ３４の処理によって設定値を書き込む具体的なケースを説明する。ＣＰＵ２２は、設定テーブルＴＢ１から、対象短縮文字列「set.gen.cal.contact」と対象設定値「contact1」との組合せを特定する。次いで、ＣＰＵ２２は、対象短縮文字列「set.gen.cal.contact」に一致する対応テーブル３４内の短縮文字列「set.gen.cal.contact」を特定する（Ｓ３２）。ＣＰＵ２２は、対応テーブル３４から、特定済みの短縮文字列「set.gen.cal.contact」に対応付けられているアドレスＡ１を特定し、アドレスＡ１が示す位置に現在記述されている設定値「default」に代えて、対象設定値「contact1」を書き込む（Ｓ３４）。ＣＰＵ２２は、設定テーブルＴＢ１内の短縮文字列及び設定値の他の組合せについても、同様の処理を実行する。これにより、複数個の設定値の変更が実現される。
【００５０】
（設定値を読み出す具体的なケース；図８）
図８を参照して、図４のＳ３６〜Ｓ４０の処理によって設定値を読み出す具体的なケースを説明する。ＣＰＵ２２は、設定テーブルＴＢ２から、図７のケースと同様に、対象短縮文字列「set.gen.cal.contact」に一致する対応テーブル３４内の短縮文字列「set.gen.cal.contact」を特定する（Ｓ３６）。ＣＰＵ２２は、対応テーブル３４から、特定済みの短縮文字列「set.gen.cal.contact」に対応付けられているアドレスＡ１を特定し、アドレスＡ１が示す位置に現在記述されている設定値「default」を取得する（Ｓ３８）。そして、ＣＰＵ２２は、設定テーブルＴＢ２の対象短縮文字列「set.gen.cal.contact」の元の設定文字列「setting general contact_and_location contact」と、取得済みの設定値「default」と、が対応付けられている送信ファイルＳＦを生成する。ＣＰＵ２２は、設定テーブルＴＢ２内の短縮文字列及び設定値の他の組合せについても、同様の処理を実行する。これにより、複数個の項目文字列とプリンタ１０内の現在の複数個の設定値とが対応づけられた送信ファイルＳＦが生成される。ＣＰＵ２２は、生成済みの送信ファイルを端末装置１００に送信する（Ｓ４０）。これにより、ユーザは、受信済みの送信ファイルＳＦの内容を端末装置１００に表示させることによって、プリンタ１０内の現在の複数個の設定値を知ることができる。
【００５１】
（本実施例の効果）
上記の構成によれば、プリンタ１０のメモリ２４は、複数個の設定項目のそれぞれについて、当該設定項目を示す項目文字列ではなく、少ない文字数を有する短縮文字列を含む対応テーブル３４を格納する。これにより、メモリ２４が複数個の項目文字列を含むテーブルを格納する構成と比べて、メモリ２４に格納される情報量を低減させることができる。従って、メモリ２４に格納される情報量を低減させつつ、端末装置１００から受信されるＪＳＯＮファイルに応じてプリンタ１０の設定値を変更することができる。
【００５２】
（対応関係）
プリンタ１０、ネットワークＩ／Ｆ１６が、それぞれ、「通信装置」、「通信インターフェース」の一例である。項目文字列「setting general contact_and_location contact」、設定値「contact1」が、それぞれ、「第１の項目文字列」、「第１の設定値」の一例である。ヘッダに「ＷＲＩＴＥ」が記述されたＰＪＬファイルに含まれるＪＳＯＮファイルが、「設定情報」の一例である。図４のＪＳＯＮファイルに記述されている項目文字列「setting general contact_and_location contact」、短縮文字列「set.gen.cal.contact」が、それぞれ、「第１の関係文字列」、「第１の短縮文字列」の一例である。階層名「contact_and_location」、階層名「contact」、階層名「location」、項目文字列「setting general contact_and_location location」、「set.gen.cal.location」が、それぞれ、「特定の階層名」、「第１の最下層名」、「第２の最下層名」、「第２の項目文字列」、「第２の短縮文字列」の一例である。アンダーバー記号「_」、単語「contact」、単語「and」、文字「c」、文字「a」が、それぞれ、「所定記号」、「第１側文字列」、「第２側文字列」、「第１の文字」、「第２の文字」の一例である。ヘッダに「ＲＥＡＤ」が記述されたＰＪＬファイルに含まれるＪＳＯＮファイル、当該ＪＳＯＮファイルに記述されている項目文字列「setting general contact_and_location contact」、短縮文字列「set.gen.cal.contact」が、「要求情報」、「第３の項目文字列（及び第２の関係文字列）」、「第３の短縮文字列」の一例である。
【００５３】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【００５４】
（変形例１）上記の実施例では、プリンタ１０は、端末装置１００からＪＳＯＮファイル含むＰＪＬファイルを受信して、図５の処理を実行してＪＳＯＮファイルから設定テーブルＴＢ１（又はＴＢ２）を生成する。これに代えて、端末装置１００は、ＪＳＯＮファイルを生成した後に、図５の処理を実行してＪＳＯＮファイルから設定テーブルＴＢ１（又はＴＢ２）を生成し、ＪＳＯＮファイルに代えて設定テーブルＴＢ１（又はＴＢ２）を含むＰＪＬファイルをプリンタ１０に送信してもよい。この場合、プリンタ１０は、図４のＳ２０をスキップして、ＰＪＬファイルに含まれる設定テーブルＴＢ１（又はＴＢ２）を利用してＳ３２〜Ｓ４０の処理を実行する。本変形例では、ＰＪＬファイルに含まれる設定テーブルＴＢ１（又はＴＢ２）内の短縮文字列が、「第１（又は第２）の関係文字列」の一例である。なお、本変形例では、図５の処理を実行するための特別なプログラムを端末装置１００にインストールする必要がある。これに対して、上記の実施例では、端末装置１００に当該特別なプログラムをインストールする必要が無い。
【００５５】
（変形例２）プリンタ１０は、図４のＳ１０において、端末装置１００からＰＪＬファイルではなくＪＳＯＮファイルのみを受信してもよい。この場合、プリンタ１０は、Ｓ３０及びＳ３６〜Ｓ４０を実行せずに、ＪＳＯＮファイルに従ってＳ３２及びＳ３４を実行してもよい。本変形例では、ＪＳＯＮファイルが、「設定情報」の一例であり、「第２の受信部」、「第２の特定部」、及び、「送信部」を省略可能である。
【００５６】
（変形例３）「設定情報」は、ＪＳＯＮ形式とは異なる形式（例えばＸＭＬ（Extensible Markup Languageの略）形式）に従って記述されてもよい。この場合、「設定情報」は、階層構造を有していなくてもよい。即ち、「項目文字列」は、２個以上の階層名を含まなくてもよい。
【００５７】
（変形例４）対応テーブル３４では、複数個の設定項目のそれぞれについて、当該設定項目を示す短縮文字列と、当該設定項目の設定値を書き込むための手順を示す関数と、が対応付けられていてもよい。例えば、関数は、設定値が格納されているメモリ２４内の位置を示すアドレスを含み、当該アドレスによって示される領域に設定値を格納するための手順を示す。プリンタ１０は、図４のＳ３２で対応テーブル３４内の短縮文字列を特定すると、特定済みの短縮文字列に対応付けられている関数を特定し、特定済みの関数によって示される手順に従って、特定済みの関数に含まれるアドレスによって示される領域に設定値を書き込む。本変形例では、「短縮文字列」と「設定値」は、関数及びアドレスを介して対応付けられている。
【００５８】
（変形例５）上記の実施例では、ＣＰＵ２２がプログラム２６（即ちソフトウェア）を実行することによって、図４及び図５の各処理が実現される。これに代えて、いずれかの処理は、論理回路等のハードウェアによって実現されてもよい。
【００５９】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【００６０】
２：通信システム、４：ＬＡＮ、１０：プリンタ、１２：操作部、１４：表示部、１６：ネットワークＩ／Ｆ、２０：制御部、２２：ＣＰＵ、２４：メモリ、２６：プログラム、３０：複数個の設定値、３４：対応テーブル、１００：端末装置、１２６：ＰＪＬプログラム、１２８：ＪＳＯＮプログラム、１３０：スキームファイル
【図１】
2018077803.tif 000003
【図２】
2018077803.tif 000004
【図３】
2018077803.tif 000005
【図４】
2018077803.tif 000006
【図５】
2018077803.tif 000007
【図６】
2018077803.tif 000008
【図７】
2018077803.tif 000009
【図８】
2018077803.tif 000010