特許第5727067号(P5727067)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ サトーホールディングス株式会社の特許一覧

特許5727067印刷装置へランタイムプログラミングコードを導入するためのシステム及び方法
<>
  • 特許5727067-印刷装置へランタイムプログラミングコードを導入するためのシステム及び方法 図000002
  • 特許5727067-印刷装置へランタイムプログラミングコードを導入するためのシステム及び方法 図000003
  • 特許5727067-印刷装置へランタイムプログラミングコードを導入するためのシステム及び方法 図000004
  • 特許5727067-印刷装置へランタイムプログラミングコードを導入するためのシステム及び方法 図000005
  • 特許5727067-印刷装置へランタイムプログラミングコードを導入するためのシステム及び方法 図000006
  • 特許5727067-印刷装置へランタイムプログラミングコードを導入するためのシステム及び方法 図000007
  • 特許5727067-印刷装置へランタイムプログラミングコードを導入するためのシステム及び方法 図000008
  • 特許5727067-印刷装置へランタイムプログラミングコードを導入するためのシステム及び方法 図000009
  • 特許5727067-印刷装置へランタイムプログラミングコードを導入するためのシステム及び方法 図000010
  • 特許5727067-印刷装置へランタイムプログラミングコードを導入するためのシステム及び方法 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5727067
(24)【登録日】2015年4月10日
(45)【発行日】2015年6月3日
(54)【発明の名称】印刷装置へランタイムプログラミングコードを導入するためのシステム及び方法
(51)【国際特許分類】
   G06F 9/44 20060101AFI20150514BHJP
   G06F 3/12 20060101ALI20150514BHJP
   B41J 29/38 20060101ALI20150514BHJP
【FI】
   G06F9/06 620K
   G06F3/12 C
   B41J29/38 Z
【請求項の数】2
【全頁数】17
(21)【出願番号】特願2014-80196(P2014-80196)
(22)【出願日】2014年4月9日
(62)【分割の表示】特願2011-551352(P2011-551352)の分割
【原出願日】2009年6月8日
(65)【公開番号】特開2014-194781(P2014-194781A)
(43)【公開日】2014年10月9日
【審査請求日】2014年4月9日
(73)【特許権者】
【識別番号】000130581
【氏名又は名称】サトーホールディングス株式会社
(72)【発明者】
【氏名】スタファン グリーベル
【審査官】 坂庭 剛史
(56)【参考文献】
【文献】 特開2006−352845(JP,A)
【文献】 特開2006−139675(JP,A)
【文献】 特開2006−085291(JP,A)
【文献】 特表2003−526845(JP,A)
【文献】 米国特許出願公開第2003/0020948(US,A1)
【文献】 特表2002−517033(JP,A)
【文献】 特開平11−327916(JP,A)
【文献】 特開平10−143334(JP,A)
【文献】 上野 豊,入門 Luaプログラミング,ソフトバンククリエイティブ株式会社,2008年 1月 3日,初版,p.186−192,200−204,ISBN978-4-7973-4272-7
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/44
G06F 3/12
B41J 29/38
(57)【特許請求の範囲】
【請求項1】
ファームウェアと、印刷動作を制御するための前記ファームウェアとインターフェースするように提供される第1プログラミングコードと、を備えたプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法であり、この方法は
プロセッサ読み取り可能媒体機器上で実行されたとき、ソースコード改変されることない前記ファームウェアとインターフェースし、前記プリンタに第1の機能を提供するために開発され、少なくとも1つのプレースホルダを含み、前記ファームウェアとは異なる言語で書かれた前記第1プログラミングコードが、前記プロセッサ読み取り可能媒体機器上に提供されて実行されることによって、ソースコード改変されることない前記ファームウェアと前記第1プログラミングコードとのインターフェースにより前記第1の機能を実現し、プロセッサ読み取り可能媒体機器上で実行されたとき、前記第1プログラミングコードとインターフェースし、前記第1の機能とは異なる前記プリンタの第2の機能を提供するために開発され、前記少なくとも1つのプレースホルダの機能として実行される前記第2プログラミングコードが、前記プロセッサ読み取り可能媒体機器上に提供されて実行されることによって、前記第1プログラミングコード前記第2プログラミングコードとのインターフェースにより前記第2の機能を実現し、
これにより、ソースコード改変されることない前記ファームウェアへの作用、及び操作が可能となるように、カスタム化及び拡張機能のためのプリンタアプリケーションプログラミングインターフェースとして形式が整えられたプリンタ拡張機能のセットが供給され、ソースコード改変されることない前記ファームウェアと組み合わせて前記プリンタアプリケーションプログラミングインターフェースを使用するプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法。
【請求項2】
プリンタの機能を改変するシステムであって、前記システムは、プリンタの機能を有するプリンタと、プリンタに設けられ、プリンタ上で実行されたときに印刷動作を制御し、ソースコード改変されることないファームウェアと、プロセッサ読み取り可能媒体機器上で実行され、前記プリンタに第1の機能を提供するコマンドを含み、前記ファームウェアとは異なる言語で書かれたもので、さらに、少なくとも1つのプレースホルダを含む第1プログラミングコードと、プロセッサ読み取り可能媒体機器上で実行され、前記第1の機能とは異なる前記プリンタの第2の機能を提供するために前記第1プログラミングコードとインターフェースするように提供される第2プログラミングコードと、前記第1プログラミングコード及び前記第2プログラミングコードが実行されるプロセッサ読み取り可能媒体機器と、を備え、前記第2プログラミングコードは前記少なくとも1つのプレースホルダの機能として実行され、前記ファームウェアへの作用、及び操作が可能となるように、カスタム化及び拡張機能のためのプリンタアプリケーションプログラミングインターフェースとして形式が整えられたプリンタ拡張機能のセットが供給され、前記ファームウェアと組み合わせて前記プリンタアプリケーションプログラミングインターフェースを使用すること、を特徴とするプリンタの機能を改変するシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概してプリンタに関し、特に、プログラミングコードによりプリンタの機能を拡張することに関する。
【背景技術】
【0002】
大半のラベル及びタグプリンタは、従来の予め定められた専用の制御言語により動作する。例えば、サトーバーコードプリンタ言語(”SBPL”)、ゼブラプログラミング言語(”ZPL”)、データマックスプリンタ言語(”DPL”)、インターメックプリンタ言語(”IPL”)等は、全て、ユーザーがプリンタ出力機能の変更を実施するための、極めて重要で最小限のスキルレベルを必要とする専用の機能を備えている。プリンタ供給メーカにより提供され、上述したプリンタ言語をサポートするような様々なプリンタモデルは、所定の個々のコマンドにより定義される印刷タスクを実行できる。プリンタ機能の特定の変更は、普通は、プリンタのファームウェアの変更により行われる。
【0003】
それぞれのプリンタ個々の制御言語は予め決まっているので、既存のプリンタは、所定のタスクの実行のみが可能である。もし、様々なプリンタ機能の追加が必要なら、プリンタのファームウェアの変更が必要である。このことは、複雑なソースコードの改訂版、及び、このソースコードの改訂板を作成するための埋め込みプログラミング開発ツールの改訂を、よく伴う。これは柔軟な手法ではなく、プリンタのエンドユーザーによってカスタマイズは、ローカルには行えない。
【0004】
さらに、プリンタの機能が設計の時点でプログラムに内蔵されても、異なるタイプのデータファイル又はデータセッティングが既存のプログラムされた機能を作動させることはできる、しかし、新しいものは追加できない。その上、プログラムされたアプリケーションは、限られた数の状況に対してのみ設計される。新しい機能が追加されたとき、プログラム全体が置き換えられなければならず、プリンタは再起動されなければならない。これは、多くの時間を要し、それ故、費用がかかる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来技術において、プリンタのファームウェアソースコードを変更することなく、かつ、高価な開発ツールなしに、ラベル/タグプリンタのソフトウェアをカスタマイズ又は改変する能力はない。
【課題を解決するための手段】
【0006】
そこで、プリンタの機能を改変するためのシステムと、プリンタの機能の改変を実現す
るコンピュータ・ソフトウェアによる情報処理方法と、が提供される。プリンタは、印刷
動作を制御するためのファームウェアとインターフェースするように提供されるプログラ
ミングコードと、ファームウェアと、一緒に提供される。プログラミングコードは、少な
くとも1つのプレースホルダを含む。第2プログラミングコードは、プロセッサ読み取り
可能媒体上で実行されたとき、新しい又は異なるプリンタ機能を提供するために、第1プ
ログラミングコードとインターフェースするように提供される。第2プログラミングコー
ドは、少なくとも1つのプレースホルダの機能として実行され、前記ファームウェアへの
作用、及び操作が可能となるように、カスタム化及び拡張機能のためのプリンタアプリケ
ーションプログラミングインターフェースとして形式が整えられたプリンタ拡張機能のセ
ットが供給され、ファームウェアと組み合わせてプリンタアプリケーションプログラミン
グインターフェースを使用する。
【0007】
本発明の他の特徴と利点が添付された図面を参照する以下の説明により明らかになるであろう。
【図面の簡単な説明】
【0008】
本発明を説明する目的のため、図面に、好適な形態を示す。しかし、本発明は、図に示されたそのままの構成及び手段に限定されるべきものでないことに留意されたい。本発明の特徴及び利点は、付随する図面を参照した以下の説明により明らかになるであろう。
【0009】
図1図1は、好適な実施形態によるハードウェアの構成例を示す。
図2図2は、図1に示す情報処理装置の一例の機能素子を示す。
図3図3は、好適な実施形態により提供されるプリンタAPIを示すブロック図である。
図4図4は、ラベル/タグプリンタにより印刷される、好適な実施形態により提供されたAPIにより定義される、ラベルの例を示す。
図5図5は、横位置、縦位置のそれぞれを示し、かつ、ラベル上に提供されるデータフィールドについて定義されるデータフィールドサイズの例を示す。
図6図6は、ラベル/タグプリンタにより印刷され、APIにより定義される、ラベルの別の例であり、好適な実施形態により提供される色オプションを示すものである。
図7図7は、複数の電気的メモリの形式を含む好適な実施形態の実装を示すものである。
図8図8は、複数の電気的メモリの形式を含む好適な実施形態の実装を示すものである。
図9図9は、複数の電気的メモリの形式を含む好適な実施形態の実装を示すものである。
図10図10は、複数の電気的メモリの形式を含む好適な実施形態の実装を示すものである。
【発明を実施するための形態】
【0010】
本技術によれば、ラベル/タグプリンタに供給されているファームウェアのソースコードを更新、変更、又は、改変をすること無しに、かつ、高価な開発ツールの必要がなく、各人がラベル/タグプリンタの設定をカスタマイズすることが可能となるように、1つ以上のインターフェースが提供される。故に、ラベル/タグプリンタは、プリンタのファームウェアを開発したプリンタの専用のインタープリタ型言語を使用して、アプリケーションを記述するのにその他のツールを使用することなく、効果的に、アプリケーション開発を行うことが可能となっている。
【0011】
好適な実施形態においては、インタープリタ型スクリプト言語が、ラベル/タグプリンタと組み合わせて供給される。カスタム化及び拡張機能のためのプリンタファームウェアへの作用、及び操作が可能となるように、プリンタアプリケーションプログラミングインターフェース(API)として形式が整えられたプリンタ拡張機能のセットが供給される。これらのAPIは、ラベル/タグプリンタに提供されていることが望ましい。好適な実施形態において、インタープリタ型スクリプト言語はLUAである。
【0012】
上記プリンタファームウェアを、例えば、スクリプト言語で開発された上記一群のプリンタAPIにインターフェースすることにより、ラベル/タグプリンタが種々のタスクを行うのに使用するソフトウェアによる命令を介して、ラベル/タグプリンタのユーザーは、改善された柔軟性やユーザー補助機能を享受することができる。プリンタのファームウェアと組み合わせてAPIを使用することにより、ユーザーは、カスタムプリンタ機能を開発可能であり、ラベル/タグプリンタのファームウェアのソースコードを改変する必要が無くなり、また、ラベル/タグプリンタのファームウェアソースコードの変更や改変に一般に必要となる開発ツールにアクセスする必要が無くなる。以下に詳しく記述するように、本技術に関連して提供されるAPIは、種々の機能、例えば、違う種類のキーボードや表示ディスプレイのためのインターフェース機能、可変フォントや印刷レンダリングの形式を提供する機能、プリンタのファイルシステムにアクセスする機能、プリンタの設定機能、及び、ラベル/タグプリンタに関係する種々のその他の機能を提供する。
【0013】
よって、本発明は、ファームウェアのソースコードを改変することなく、また、例えば、予め定義された専用の制御ファームウェア及びプリンタのファームウェアを改変するためのソフトウェア開発ツールを含む高価な埋め込み型システムを必要とすることなく、複数の印刷に関する解決策を提供するものである。
【0014】
さらに、カスタム機能及びプリンタにAPIによる機能を提供するためにプログラミングコードをプリンタに展開することを含む、プリンタの機能のためのプログラミングコードの開発をユーザーに可能とさせるという特徴がここで提供される。その後、ここでの教示にしたがって、ユーザーは、前に展開されたプログラミングコードを再展開することなく前に展開されたプログラミングコード内に統合される追加のプログラミングコードを開発する。このようにして、拡張プリンタ機能のためにコードが開発され、そして、例えば、ラベル及びタグプリンタに展開される。
【0015】
その後、ユーザーは、1つ又は他のプリンタ機能のため、又は、前に展開されたコードの機能を改変するために、実行時に実行されるプログラミングコードを含む追加のコードを開発する。ここでの教示にしたがって、前に展開されたコードが残っていても、ユーザーは、追加のコードをプリンタに展開することだけが必要である。新しい機能又は改良機能を提供するコードのみを開発し展開することをユーザーに可能とすることにより、多大な時間が節約できる。
【0016】
それ故、ユーザーは、追加機能を含む必要なプログラムを開発することと、そして、このコードをプリンタに提供することのみが必要とされる。好ましい実施形態において、コードはフラッシュ(又は、既知の)メモリにダウンロードされ、その後、プリンタにより受け取られる。以下に詳しく述べるように、前に展開されたプログラムは、新たに展開されたプログラミングコードを統合することが好ましく、1つの統一されたプログラムとして作用する。
【0017】
ラベル及びタグプリンタのようなプリンタにランタイムプログラミングコードを導入する能力は、その能力を有効とさせることにより、プリンタに前に展開されたコードを再展開することを要さずに改善点と新しいプリンタ機能をプリンタに展開することを組み込み、従来技術の欠点を解決する。このようにして、プリンタのファームウェアとインターフェースする前に展開されたカスタムプログラミングは、より簡単により早く改変されるか、更新されることができる。ユーザーは、追加機能用の特別のプログラミングコードの開発と、後にプリンタのファームウェアとインターフェースするフラッシュメモリへコードをダウンロードすることによるように、それをプリンタへ展開することのみが必要である。
【0018】
好ましい実施形態において、従来技術で既知のように、カスタマイズされた機能のために開発された前に展開されたプログラミングコードは、後に展開されたコードを前に展開されたコードに統合する後に展開されたプログラミングコードのためのプレースホルダを含む。好ましくは、前に展開されたプログラミングコードは、新たに展開されたコードをロードし、再展開又はプリンタ装置の再起動を必要とすることなく、実行時において新機能を実行する。このように、新たに追加されたプログラムされた命令は、実行時に実行される。ある実施形態において、新しく展開されたプログミングコードは、前に展開されたプログラミングコードと同じプログラミング言語で開発又は記述される。他の実施形態において、新しく展開されたプログミングコードは、前に展開されたコードとは異なるプログラミング言語で開発される。どちらにしても、新しく展開されたプログミングコードにより提供される機能は、プリンタが実行する前に展開されたコードを含むソフトウェアの一部として完全に統合され、便利である。
【0019】
好ましい実施形態において、前に展開されたカスタマイズされたコードを持つプリンタに対して展開されるカスタマイズされたプログラミングコードは、スクリプトプログラムとして開発され、インタープリタによりトークン化され、開始前にSDRAMメモリへロードされる。前に展開されたカスタムプログラミングコードが実行されるとき、命令は、新しく展開又は導入されたプログラムがトークン化プログラムに追加されることができた否かを見るために一覧の作成を実行することが望ましい。トークン化されたランタイム(SDRAM内)は、オリジナルと新しく導入されたプログラムとの両方を含む。オリジナル又は前に展開されたプログラムは、追加された特別なプログラムを何も認識しないので、前に展開されたプログラムは、追加プログラムについてのユーザー補助を提供するプレースホルダを含む。したがって、プリンタファームウェアAPIによりロードされたカスタマイズされたプログラミングアプリケーションは、好ましくは、その後統合される新しく展開又は導入されたプログラムのためのプレースホルダを含む。新しく展開されたプログラムは、オリジナルプログラムの一部に完全に統合されたものとして動作するのが望ましい。
【0020】
好ましい実施形態において、カスタマイズされたプログラミングコードは、スプレッドシート、データベース、テキストエディタ、ワードプロセッサ、統合開発環境等を含む、一般的なプラットフォームの複数のいずれかで開発することができ、新しいカスタムプリンタ機能は、ユーザーの要望通りユーザーにより追加できる。エンドユーザーに、前に展開されたアプリケーションと統合されるカスタムアプリケーションを開発することを可能とすることにより、ここで教示することは、プリンタのファームウェアによって提供される完全なプログラミングと、カスタマイズされた機能を提供するいくつかの前に展開されたアプリケーションとは、新しく開発されたプログラミングコードと統合されるので、プリンタの機能を強化するための強力な方法(way)を提供する。
【0021】
実施形態によれば、カスタマイズされたプログラミングコードによる、新しい、又は、改変されたプリンタの機能は、プリンタのファームウェアによっては影響されない。代わりに、スクリプトで提供される命令を含むプログラム命令は、プレースホルダの機能として、既存のカスタマイズされたプログラミングコードへ「導入」される。このような高レベルなコード導入技術は、エンドユーザーに、プリンタのファームウェアを変える必要なく、又は、改変又は改良されたプリンタの機能と共に更新されたカスタマイズされたプログラムアプリケーションの再展開をする必要なく、プリンタの機能を簡単かつ素早く改変及び改良を可能とする。
【0022】
参照図面においては、同様の参照番号は同様の構成要素を示す。図1は、本発明の実施形態における、直接接続されたケーブルを介して、又は、通信ネットワークを介して、プリンタアプリケーションプログラムを供給及びインストールするためのハードウェアの構成例を示すものであり、ここでは一般的に、システム100と称する。図1中での例においては、情報処理装置102には、例えば、本技術の当業者には周知であるように、LUAプログラミング言語でアプリケーションを開発するためのプログラム統合開発環境(IDE)が提供されており、情報処理装置102は、本発明をサポートするために必要な全てのデータベースを有するのが好ましい。しかし、ここでの情報処理装置102は、通信ネットワーク106又は、情報処理装置102が結合できるその他の通信ネットワークを介して、必要とされるいずれのデータベースにもアクセスできるようなものを想定している。通信ネットワーク106は、インターネットのような世界的な公共ネットワークであることが好ましいが、広域ネットワーク(WAN)やローカルネットワーク(LAN)や、又はイントラネットやコンピュータデバイスや周辺機器との通信を可能にするその他のネットワークでもよい。
【0023】
好適な実施形態において、情報処理装置102は、通信ネットワーク106を介してデータの送受信をすることができる任意のコンピュータ読み取り可能媒体機器であり、例えば、大型汎用コンピュータ、小型コンピュータ、パーソナルコンピュータ、ノート型コンピュータ、携帯情報端末(PDA)、携帯電話、及び、ウェブテレビのようなインターネットアクセス可能な機器である。また、情報処理装置102は、MICROSOFT INTERNET EXPLORE(登録商標)、MOZILLA FIREFOX(登録商標)のようなウェブブラウザのソフトウェアが装備されていることが望ましい。情報処理装置102は、既知のデータ通信ネットワーク技術を使用した通信ネットワーク106に接続される。
【0024】
また、図1には、プリンタ108が示されている。プリンタ108は、好ましくは、ラベル/タグプリンタであり、情報処理装置102から受けたデータのラベル及びタグを印刷する操作が可能であるものが好ましい。情報処理装置102に関係無く、又は、情報処理装置102と連携して、ラベル/タグプリンタ108の機能の入出力を行うことが可能とするために、ラベル/タグプリンタ108には、キーボード110及び表示ディスプレイ112が備えられてもよい。
【0025】
図2は、情報処理装置102の一例の機能構成要素を示し、これは、ソフトウェアコードを実行し、情報処理装置102の動作を制御するための1つ以上の中央処理装置(CPU)202を含んでいる。その他の構成要素としては、読み取り専用メモリ(ROM)204、ランダムアクセスメモリ(RAM)206、通信ネットワークを介して他のコンピュータデバイスとデータへのデータの送受信を行うための1つ以上のネットワークインターフェース208、プログラミングコードのデータベース及びアプリケーションデータを格納するための、ハードディスクドライブ、フロッピー(登録商標)ディスクドライブ、テープドライブ、CDROM、又はDVDのような記憶装置210、キーボード、マウス、トラックボール、マイク等の1つ以上の入力装置212、及び表示ディスプレイ214が挙げられる。さらに、また、ラベル/タグプリンタ108には、1つ以上の機能素子202から214が好適に形成、又は備えられてもよい。
【0026】
情報処理装置102の種々の構成要素は、物理的に同じ筐体に含まれる必要は無く、また、一箇所に設置される必要もない。例えば、記憶装置210は、情報処理装置102の残りの構成要素から離れた場所に設置してもよい。また、記憶装置210は、ネットワークインターフェース208を介した通信ネットワーク106を介してCPU202に接続してもよい。情報処理装置102は、ハイパーテキスト・マークアップ言語(HTML)、Java(登録商標)アプレット、Active−X制御プログラムを通信するための通信ウェブサーバーとして機能し、また、必要なデータベース、フォーラム、及びその他の通信サービスを提供することができるようにするため、十分な記憶容量を有するメモリを有することが好ましい。情報処理装置102は、例えば、図2に示すように、その予測される操作環境に適した構成要素と共に配置される。CPU202、ネットワークインターフェース208、及びメモリや格納素子については、期待される要求が満たされるようにその能力が確保されるように選択する。
【0027】
本発明は、コンピュータが実行可能なコード(すなわちソフトウェア)を作成する分野の当業者において、1つ以上の一般向けコンピュータプログラミング言語と開発環境の組み合わせたもの(これは、LUA、C、C++、Visual Basic、JAVA(登録商標)、HTML、XML、ACTIVE SERVER PAGES、JAVA(登録商標) server pages、servlets、MYSQL、及びPHPを含むが、これらに限るものではない)を使用することにより、ここに述べる機能を実装することを可能とするものである。
【0028】
本発明は、ここにおいては一例として、ウェブブラウザとウェブサイトサーバー(例えば、情報処理装置)を使用したウェブを基本としたシステムについて記述しているが、システム100は、そのような構成に限るものではない。ここでは、システム100は、既知の通信方法、例えば、インターネットワークパケット交換(IPX)、ダイアルアップネットワーク、第三者機関のネットワーク、個人のネットワーク、又は高度情報通信網(VAN)のようなローカルエリアネットワークプロトコルと結合した非インターネットブラウザであるWINDOWS(登録商標)ビューワーを使用して、ラベル/タグプリンタ108が通信を行い、かつ、情報処理装置102から受け取ったデータを出力できるように構成されると想定する。
【0029】
さらに、情報処理装置102には、任意の適切なオペレーティングシステムを使用することができると想定する。上記任意の適切なオペレーティングシステムには、例えば、DOS、WINDOWS(登録商標)3.x、WINDOWS(登録商標)95、WINDOWS(登録商標)98、WINDOWS(登録商標) NT、WINDOWS(登録商標)2000、WINDOWS(登録商標) ME、WINDOWS(登録商標) CE、WINDOWS(登録商標) POCKET PC、WINDOWS(登録商標) XP、MAC OS(登録商標)、UNIX(登録商標)、LINUX(登録商標)、PALM OS(登録商標)、POCKET PC、及びその他の適当なオペレーティングシステムを含む。
【0030】
好ましい実施形態において、ラベル/タグプリンタ108のアプリケーションは、LUAプログラミング言語で開発される。好適な実施形態において、アプリケーションに備えられたLUAプログラミングステートメントの実行を機能することができるように機能するLUAインタープリタが備えられる。一般の高度プログラミング言語と違って、LUAは、スクリプト言語であり、基本的なプログラミング言語ではない。種々の機能を実行させるようなSBPL命令や又は、その他の予め定義された命令を受ける一般のラベル/タグプリンタとは違って、本発明は、LUA言語の拡張である、プリンタファームウェアとインターフェースし、また、LUAインタープリタにより解釈されるプリンタAPIを実装するものである。これにより、関数呼び出しを介すること等により、より高度で複雑なアプリケーションを開発することが可能になる。さらに、従来のラベル/タグプリンタでは、一箇所の変更点を実装するために、対応するファームウェアアプリケーションを完全に上書きする必要があったが、LUAプログラミング言語の拡張機能であるAPIを実装することにより、ラベル/タグプリンタ108の機能を部分的に改変することが可能となった。
【0031】
本発明の別の利点は、LUAプログラミング言語で開発され、ラベル/タグプリンタ108により解釈されるアプリケーションは、よりコンパクトな構成であり、かつ、著しく動作が速いということが挙げられる。この理由は、従来のラベル/タグプリンタは、種々の機能(本発明においては、APIにより達成される)を実行するのにより多くのソフトウェア命令を必要とするからである。さらに、LUAインタープリタは、関数呼び出しや変数宣言等における利点を利用することにより、効率的に本発明のAPIとインターフェースし、メモリに対する要求が減ったことにより、コードの利便性が、従来技術におけるラベル/タグプリンタより著しく向上した。
【0032】
従来技術のラベル/タグプリンタに対する本発明のLUAプリンタAPIの別の利点は、インタープリタが、SBPLやZPLのような既存の制御言語を介して印刷機能にアクセスする必要なく、印刷機能にアクセスすることが可能ということである。いい換えると、APIは、ラベル/タグプリンタ108の印刷機能を制御するファームウェアに対して、直接インターフェースする。これは、従来技術によるシステムに対する改善点である。従来技術によるシステムにおいては、例えば既存の制御言語とのインターフェースするためにSBPL命令の生成が必要となり、これにより、プリンタの機能を改変するのに関連した直接、及び間接的な工程が増加してしまう。
【0033】
さらに、本発明のAPIは、LUAインタープリタを介してインターフェースするので、ラベル/タグプリンタ108における内部メモリの必要性を除いて、アプリケーションのサイズの制限が実質的に無くなる。これは、例えば、インストールされうるコードの行数の制限を持ち、また、動的メモリ割り当てをサポートしていない従来技術におけるラベル/タグプリンタに対する改善点である。本発明におけるAPIは、例えば、或る特定の機能のために実装されたプログラミングコードの量を増やすことができるようにメモリを解放すること(ガーベジコレクション機能)等の関数呼び出しやその他の高度なプログラミング言語機能をサポートしている。
【0034】
本発明の別の利点は、MICROSOFT VISUAL STUDIOやその他の統合的開発環境(IDE)等の開発ツールをLUAのプラグイン構成要素として使用できるということが挙げられる。各ラベル/タグプリンタ108のアプリケーション開発は、ビジュアルな統合開発環境におけるソフトウェア開発になじんだ、又は快適さを感じる開発者にとってより魅力的なものとなる。
【0035】
本発明の別の利点は、プリンタ動作をシミュレーション可能であるLUA仮想マシンを有するコンピュータ上で、LUAアプリケーションを走らせることが可能であるということが挙げられる。ユーザーは、アプリケーションをプリンタにダウンロードしてインストールする前に、開発したLUAアプリケーションをコンピューター上でテストすることが可能であり、これにより、LUAアプリケーションをテストするために実際にプリンタを動作させることが不要となる。
【0036】
好適な実施形態において、複数の独立したLUA仮想マシンは、連結操作可能であり、また、これらは、ネットワーク上の1つのラベル/タグプリンタ108に実装することができる。この方法においては、例えば、地域的な設定や言語の設定等の種々のカスタマイズ設定に応じてデータを並べかえるバーコードプリンタに対して、設定可能な動的ローカル設定が実装可能である。種々のローカル設定は、特定のコンピュータシステムのオペレーティングシステム上に格納されてもよい。また、動作の変更は、例えば、このローカルの設定に依存してもよい。
【0037】
LUAインタープリタを介してAPIを実装することにより、従来技術においてこれまで利用できたものに加えて、さらなる追加機能が提供される。好適な実施形態における追加のプリンタ機能及び改善された実装について以下に説明する。
【0038】
好ましくは、1つの実施形態においては、プログラム関数呼び出し、及び、変数の宣言、アドレッシング、及び変数を介してのプログラム関数への値の受け渡し機能は、LUAの実装を介してサポートされる。好ましくは、プログラム関数は、関数が成功して完了したかどうかを現すエラーコードのような値を返す。例えば、関数が意図したように実行されなかった場合、エラーの原因、エラーの症状、エラーの結果、又はその他の適切な情報を現すエラーコードを返す。好ましくは、テーブル名、文字列の値、日付、数値等の関数名や変数名はユーザーに積極的には表示されない。又は、少なくとも、一部又は全てを隠して表示を行ってもよい。
【0039】
セキュリティの実装は、例えば、ユーザーが特定のデータや、1つ以上のデータディレクトリにアクセスしたり、又は、データディレクトリやデータファイル等を作成、消去、又は改変する、といった種々のタスクを実行するための十分な認証やアクセス許可権を持っていることを要求すること等は、ここに記載している技術によりサポートされるのが望ましい。
【0040】
APIによりサポートされる別の特徴は、インターフェースのレンダリング機能である。ここで使われている「レンダリング」という意味は、一般に、対話式プログラミングオブジェクトの作成を示す。例えば、レンダリングされたオブジェクトは、データフィールド(テキストベースのフィールド)、バーコード、グラフィックフィールドとして形成されてもよい。これらレンダリングされたオブジェクトは、例えば、メソッドのようなもので操作できる1つ以上の特性を有している。好ましくは、APIによりレンダリングされたオブジェクト(例えば、テキストフィールド、バーコード、及び、グラフィックフィールド)には、ラベルオブジェクトが備えられ(例えば付加される、又は埋め込まれる)、これは、ラベル/タグプリンタ108を介して供給される。
【0041】
さらに、APIは、エラーを出すことなしに、ラベルの開発中、又はラベルの印刷中、又はその両方の処理中において、少なくともその一部が、ラベル/タグプリンタ108のプリント可能領域の外側にあるラベル上に位置するバーコードのようなオブジェクトの供給をサポートする。この特徴により、例えば、ラベル/タグプリンタ108により、半分しか印刷されないバーコードを有するラベルを開発することが可能となる。この特徴により、ユーザーが部分的、又は不完全なオブジェクト、例えば、バーコードをラベル/タグプリンタ108を使用して、ラベル上に印刷したい場合において、従来技術の方法に対する改善点となっている。
【0042】
実施形態において、及び動作中において、レンダリングされたオブジェクト、例えば、テキストフィールド、バーコード、グラフィックボックス、画像等の各位置は、水平、及び、垂直位置パラメータ(例えば、「hPos」及び「vPos」)により定義される。このパラメータ値は、オブジェクトの固定点の位置を定義することが好ましい。パラメータhPos及びvPosが適切に設定された場合、あるエラーパラメータ(例えば「E_SUCCESS」)が定義される。また、パラメータhPos及びvPosが適切に設定されなかった場合、違うエラーパラメータ(例えば「EPARAM」)が定義される。
【0043】
位置決めを定義するためのパラメータに加えて、本発明は、オブジェクト、例えば、バーコードや画像オブジェクトの倍率をサポートする。例えば、水平及び垂直倍率パラメータ(例えば、「hMag」及び「vMag」)は、水平及び垂直ピクセル倍率を設定するために定義されており(例えば、1〜12倍)、これにより、オブジェクトの水平及び垂直倍率の程度を現す。
【0044】
図3は、好適な実施形態により提供される、ラベル/タグプリンタ108をインターフェースするための関連するAPI302を示すブロック図である。図3に示すように、キーボードAPI304は、ラベル/タグプリンタ108に統合されたキーボード110からの信号を受信及び、解釈(読み込み)する働きを行う。又は、キーボードAPI304は、ラベル/タグプリンタ108に直接結合されていない外部キーボード又は他の入力装置212からの信号を読み込んで解釈する働きを行う。ディスプレイAPI306は、様々なテキスト、及び図形コンテンツを、プリンタ108に統合された表示ディスプレイ112に書き込む働きを行う。又は、ディスプレイAPI306は、テキスト、及び図形コンテンツを、ラベル/タグプリンタ108に付属した外部表示ディスプレイ214に書き込む働きを行う。ディスプレイAPI306は、例えば、様々な違った種類の文字言語のためのフォントや符号化方式を広く選択できるようにサポートするのが望ましい。
【0045】
引き続き図3を参照して説明する。印刷レンダリングAPI308は、ラベル/タグプリンタ108により印刷されるラベル上に出力されるユーザー定義のデータフィールド要素をサポートする。このようなデータフィールド要素の例として、テキストデータフィールド、一次元及び二次元バーコード、線と長方形、三角関数、画像、個々のピクセル、図形、書式付き日付、及びカウント値が上げられる。プリンタレンダリングAPI308により、ユーザーは、データフィールドの型、及び、特定のラベル及びタグ上に出力するデータフィールドの位置を定義することができる。プリンタレンダリングAPI308により、様々な言語をサポートするフォント及び符号化方式のための選択可能なオプションが提供されることが望ましい。固定長及び可変長データ形式がサポートされていることが望ましく、これは、フィールド定義に含まれるか、又は、プリンタレンダリングAPI308を介して、ファイル又は通信インターフェースから入力される。その他の特徴として、上記の1つ以上のフィールドオブジェクトの色を定義するための選択可能色出力オプションをサポートすることが挙げられる。さらに、白紙や印刷されたラベル/タグを出力するために、印刷レンダリングAPI308の関数として、1つ以上の印刷命令又は給紙命令を発行することが可能である。さらに、印刷レンダリングAPI308により、ユーザーが選択可能な印刷品質制御機能が提供されることが望ましい。
【0046】
さらに、コンパクトフラッシュ(登録商標)メモリカード、SDメモリカード、USBメモリ機器等である、ラベル/タグプリンタ108の読み込み専用メモリファイルシステム、ランダムアクセスメモリファイルシステム、フラッシュメモリファイルシステム、又は、外部メモリ源のうち、少なくとも1つに置かれたファイルについて、ユーザーは、格納、消去、読み込み及び書き込みの操作が可能となるようにするため、ファイルシステムAPI310が備えられることが望ましい。ラベル/タグプリンタ108に付随した種々の内部及び外部メモリ源に格納されたデータやファイル等にアクセスする手段をユーザーに提供したことにより、ユーザーは、より柔軟に、ラベル/タグプリンタ108の動作の制御及び操作を行うことができる。ファイルシステムAPI310に関連して提供される望ましい機能の例としては、ラベル/タグプリンタ108のファイルシステムのフォーマット、登録するディレクトリの階層の決定、特定のディレクトリへの移動、新しいディレクトリの作成、ファイルのコピー、ディレクトリ又はファイルの消去、ファイルシステムにおいて使用するバイト又は使用可能なバイトの決定、及び、ファイル又はディレクトリへのアクセス権の変更が挙げられる。
【0047】
引き続き図3を参照して説明する。無線識別(RFID)API312は、ラベル/タグプリンタ108に備えられたRFIDチップ/インレイ(内部構成部材)への読み込み及び書き込みのためのアクセスをサポートする。さらに、リアルタイムクロックAPI314により、ユーザーは、日時データを定義し、また、日時データをラベル/タグプリンタ108から読み込むことを可能としている。コンフィギュレーションAPI316は、ユーザー定義のプリンタに特定のパラメータをサポートするものである。例えば、コンフィギュレーションAPI316を使用することにより、ユーザーは、印刷スピード、印刷品質、日時機能、現地言語設定、メニュー制御等に関連した通信パラメータを定義することができる。一般にラベル/タグプリンタ108に備えられたファームウェアに限定され、特別なソフトウェアと技能を持った技術的な熟練者にのみ改変可能であるようなラベル/タグプリンタ108の制御動作をユーザーが定義及び改変できるようにするのに、コンフィギュレーションAPI316は特に有用である。また、コミュニケーションAPI318は、外部I/Oインターフェース機器との通信を制御することが望ましい。複数の通信プロトコルと仕様がサポートされる。サポートされる通信プロトコルと仕様の例として、RS232、RS485、RS422、USB、LAN、WAN、WLAN、及び外部デジタルリレーインターフェースが挙げられる。
【0048】
図3に示すその他のAPI302として、プリンタに含まれるデバイスを制御する働きを行うデバイスAPI320、ある時点のプリンタの状態を報告する働きを行うプリンタステータスAPI322、ラベル/タグプリンタ108に送られたXML命令、及び/又は、XMLファイルのような命令、及び/又は、ファイルの構文解析を行う働きをするパーサーAPI324が挙げられる。構文解析が行われると、XML命令は、インタープリトすることが可能となり、ラベル/タグプリンタ108による出力を制御するのに使用することができる。
【0049】
デバイスAPI320、プリンタステータスAPI322、及びパーサーAPI324に加えて、API302は、種々の用紙機能をサポートするためのペーパーハンドリングAPI326を有することが望ましい。この機能として、ラベル及びタグの1つ以上の用紙サイズについて、印刷給紙、用紙送り、行送り、テスト送り等が挙げられる。さらに、ラベル/タグプリンタ108に備えられるベル、ブザーやその他の音声装置に対する音声制御機能を提供するサウンドAPI328が挙げられる。さらに、ラベル/タグプリンタ108に備えられるラベルギャップセンサーやラベルマークセンサー等のセンサー機器からの情報を受信する働きを行い、また、ラベルの末端に達した時点、インクリボンの末端に達した時点、ラベルやインクリボンの末端に近づいた時点等の種々の条件を判断する働きを行うセンサーAPI330が挙げられる。ある実施形態において、センサーAPI330は、1つ以上の条件が発生したと判断された時に警告を発する働きをする。図3に示されるその他のAPI302として、ラベル/タグプリンタ108に起こった種々のイベントを受信し処理するイベントAPI332、必要に応じてデータのビット操作を行う働きをするビットハンドリングAPI334、ラベル/タグプリンタ108に起きるかもしれないエラー、例えば、停電、メモリーエラー、用紙詰まり等を処理する働きをするエラーハンドリングAPI336が挙げられる。
【0050】
したがって、好適な実施形態においては、例えば、LUAプログラミング言語やCプログラミング言語で複数のAPI302が開発され、インタープリタが既存の制御言語、例えば、SBPLやZPLを介して印刷機能にアクセスすることなく、それらをラベル/タグプリンタ108に実装することができる。1つ以上の実施形態において、図3に示したAPI302に加えて、種々のその他の機能を実装することが想定できる。例えば、開発を迅速及び容易にするため、テーブル及び/又は、メタテーブルを複製する機能をサポートする。その他の例としては、エラーコード値をエラー文字列値の結果で決定する機能(例えば、err2str)、1つ以上の書式(例えば、XML、LUA、及びその他の形式)でテーブルを保存する機能、複数の書式で提供されたテーブルをロードする機能、及び、メニュー及びプロンプト用の複数の書き言葉や話し言葉をサポートする機能等が挙げられる。
【0051】
図4は、好適な実施形態において提供されるものであり、API302を使用して定義されたものである、ラベル/タグプリンタ108により印刷された例のラベル400を示す。図4に示すように、印刷されたテキストデータの向き及び位置に関わらず、アンカーポイント402は、ラベル400上のテキストデータの左上位置(例えば、hMag及びvMag変数で定義される)に定義されている。また、図4には、ラベル400がラベル/タグプリンタ108により印刷される時のラベル400の給紙方向404が示されている。ラベル400上に印刷されたテキストデータに加えて、図形画像406がレンダリングAPI308により、レンダリングされる等して提供される。
【0052】
図5は、ラベル400に提供するデータフィールド500用に定義されたデータフィールドサイズの例を示し、また、データフィールド500の左上隅の水平及び垂直位置(例えば、hPos及びvPos)502、及び、右下隅位置504の水平及び垂直位置をそれぞれ示す。さらに、データ方向関数506(例えば、dir(0,.359))は、それがラベル400上に出力される時の、データフィールド500の相対的な向きを示す。
【0053】
図6は、好適な実施形態において提供されるものであり、API302を使用して定義されたものである、ラベル/タグプリンタ108により印刷された他の例のラベル600を示す。これは、図6に示す例のラベル600において、複数の色602、604、及び606がラベル600上に、それぞれの位置608に供給されているのが示されている。したがって、ここに示すように、LUA APIは、LUAインタープリタを介してAPIを解釈することにより、ラベル/タグプリンタ108のファームウェアとLUAインタープリタと共同して動作するインターフェースであり、顧客は、好ましい印刷動作を実行するLUAアプリケーションプログラムを作成することができる。
【0054】
図7を参照して説明する。好適な実施形態において、ラベル/タグプリンタ108は、2つの種類のメモリ、すなわち、フラッシュメモリ702とシンクロナスDRAM(SDRAM)704が備えられる。フラッシュメモリ702(ROMの代わりとして用いるのが望ましい)は、その他の適当なデータのうち、ラベル/タグプリンタ108の立ち上げコード、基本ファームウェア(例えば、ドライバやバーコード書式等)、LUA API及び、LUA仮想マシン等を格納する。本技術においてよく知られているように、フラッシュメモリ702に格納された立ち上げコードは、プリンタ108の立ち上がり処理において動作する。好適な実施形態において、ラベル/タグプリンタ108の基本ファームウェア及びLUA APIは、圧縮された形式でフラッシュメモリ702に格納されており、よって、フラッシュメモリ702のメモリ容量を節約できる。さらに、例えば、LUAアプリケーションプログラム及び/又は既存のアプリケーションプログラムへ展開及び導入される追加プログラミングコードを含む、カスタマイズされたプログラミングは、好ましくは、フラッシュメモリ702に格納される。
【0055】
ラベル/タグプリンタ108の立ち上げ処理前においては、SDRAM704は、空きスペースを大きくしておき、また、データをすぐ受信できるようにしておくことが望ましい。図8に示すように、ラベル/タグプリンタ108が立ち上がる時、ラベル/タグプリンタ108のファームウェア、LUA API、及び、LUA仮想マシンはフラッシュメモリ702に圧縮形式で格納されていることが望ましい。立ち上げ処理が完了した後、このファームウェア、LUA API,及び、LUA仮想マシンは、解凍され、非圧縮形式で、SDRAM704に供給される。この後、ラベル/タグプリンタ108の基本ファームウェア、ドライバ、バーコードデータ、ラベル書式、パーサー、画像バッファ、及びその他のデータは、動作させるため、適宜、一時的にSDRAM704に格納される。
【0056】
さらに、例えば、LUAプログラミング言語で開発されたアプリケーションプログラムは、SDRAM704へ供給される。図8に示し、ここで述べたように、LUAアプリケーションは、アプリケーションプログラムへ展開され「導入」される追加プログラミングコード(「IP」と示した)のためのプレースホルダを必要に応じて含むことが望ましい。
【0057】
図9を参照すると、LUA仮想マシンは、SDRAM704を介して、プリンタ108のファームウェア、LUA API、及びパーサーと関連して動作することが好ましい。好ましい実施形態において、ラベル/タグプリンタ108は、印刷動作においてはフラッシュメモリ702のみに依存せず、その代わり、SDRAM704に格納された非圧縮のデータと命令を介して動作する。SDRAM704は、フラッシュメモリ702よりもより高速かつ効率的に動作し、かつ、SDRAM704は、印刷動作完了後、非圧縮のデータと命令を消去できるので、本実施形態は、一般の典型的な従来技術によるシステム及び方法より好ましい。
【0058】
図9及び10を参照すると、印刷動作中、ここで述べたものと関連したLUA APIは、LUA仮想マシンを介して動作し、ラベル/タグプリンタ108のバッファに格納されたラベル画像やその他のオブジェクトを出力するためのラベル/タグプリンタ108のファームウェアをインターフェースする。ラベル/タグプリンタ108は、好ましくはLUA APIを介して定義されている複数の入力源から指示命令(例えば、LUA APIを介して)及び/又は、データを受信できることが望ましい。例えば、データはスキャンすることができ、また、タイピングすることができ、又は、入力装置212、通信ポート、ネットワークインターフェース208等の任意の適切な入力ポートを介して供給、及び受信することが可能であってよい。
【0059】
以上、説明及び主張し、かつ、添付図面にて示したように、ラベル/タグプリンタ108により与えられる機能性は、プリンタ108のファームウェアとインターフェースするAPI302の機能として、向上、改変、又は追加されることが好ましい。アプリケーションは、LUAプログラミング言語等の高度なプログラミング言語を用いて定義されることが好ましく、これにより、各個人が、特定のプリンタモデルのファームウェアの専用プログラミング言語に精通する必要が無くなり、又は、このプリンタのファームウェアを改変するための専用の開発ツールに触れる必要が無くなる。さらに、現在実行しているLUAアプリケーションへ「導入」される追加のプログラミングコードは、LUAアプリケーションと共に、又は、LUAアプリケーションに加えて、受信可能であり、かつ実行される。よって、プリンタにおいて、プリンタ専用のインタープリタ言語を用いることにより、アプリケーションそのものを書く必要なく、アプリケーション開発を行うことが可能となり、プログラミングコードは、アプリケーション中に備えられているプレースホルダの一機能として実行中のアプリケーションへ導入できる。
【0060】
ここで教示するように、予め実行されているプリンタアプリケーションとインターフェースする新しいプリンタアプリケーションが複数のプレースホルダの一機能として開発及び展開されることができる。新しいプリンタ機能は、全プログラムを置き換えることなく、プリンタを置き換え及び再起動することなく、提供される。よって、前に展開されたLUAプログラムのような従来技術における時間とプログラム作成の制約が、プリンタ機能を追加することをユーザーができるようにすることにより、克服される。ここで教示することにしたがって、ユーザーは、前に展開されたプログラムの改編、及び、プリンタへプログラムを再展開する必要がない。代わりに、プレースホルダを備えるカスタムアプリケーションが、新しいアプリケーションが提供されたときに認識でき、拡張されたプリンタ機能を迅速かつ便利に提供するために、プレースホルダによって、カスタムアプリケーションが、前に展開されたアプリケーションへ新しいアプリケーションを導入できる。
【0061】
本発明は、その特定の実施形態に関連して説明及び表現したが、本技術の当業者においては、その他多くの変形、及び改変及び使用は、当然、明白な事であろう。それゆえ、ここで開示した特定の事例にのみ、本発明を制限するものではない。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10