專利名稱::使用程序腳本語言的標(biāo)識打印機(jī)api的制作方法
技術(shù)領(lǐng)域:
:一般來說本發(fā)明涉及打印機(jī),尤其涉及通過與標(biāo)識和標(biāo)簽打印機(jī)(labelandtagprinter)固件交互從而增強(qiáng)打印機(jī)功能。
背景技術(shù):
:大部分的標(biāo)識和標(biāo)簽打印機(jī)通過傳統(tǒng)的預(yù)定義專用控制語言工作。例如,佐藤條碼打印機(jī)語言(SATOBarcodePrinterLanguage,SBPL)、ZEBRA編程語言(ZEBRAprogramminglanguage,ZPL),DATAMAX打印機(jī)語言(DATAMAXPrinterLanguage,DPL),INTERMEC打印機(jī)語言(INTERMECPrinterLanguage,IPL)或類似的打印機(jī)語言,這些語言包括以下專用功能要求相當(dāng)?shù)偷募寄芩骄湍軌蚴褂脩魧崿F(xiàn)打印機(jī)輸出功能中的變化。各種打印機(jī)模型,例如由支持上述所列打印機(jī)語言的打印機(jī)的賣主提供的,能夠執(zhí)行通過預(yù)定義的單一指令確定的打印任務(wù)。典型地通過改變打印機(jī)的固件產(chǎn)生打印機(jī)功能的特定變化。由于每一打印機(jī)各自的控制語言是預(yù)定義的,現(xiàn)有打印機(jī)僅能夠執(zhí)行預(yù)定任務(wù)。如果需要增加各種打印機(jī)功能,則需要因此而改變固件。這經(jīng)常涉及進(jìn)行復(fù)雜的源代碼修訂和嵌入式程序設(shè)計開發(fā)工具以進(jìn)行修訂。但這不是靈活的方法并且客戶不能在本地定制。
發(fā)明內(nèi)容現(xiàn)有技術(shù)中,不改變打印機(jī)固件的源代碼并且沒有昂貴的開發(fā)工具,就不能定制或以其它方式修改標(biāo)識/標(biāo)簽打印機(jī)軟件。因此,提出一種用于實現(xiàn)修改具有用于控制打印操作的固件的打印機(jī)的功能的系統(tǒng)和方法。開發(fā)第一程序碼,所述第一程序碼在計算機(jī)可讀介質(zhì)上運行時并與打印機(jī)固件交互修改打印機(jī)功能。所述第一程序碼使用第一程序設(shè)計語言編寫,例如LUA程序設(shè)計語言,并且所述固件使用第二程序設(shè)計語言而不是第一程序設(shè)計語言編寫。此后,第一程序碼在計算機(jī)可讀介質(zhì)上運行,并且打印機(jī)的功能被修改作為與所述固件交互的運行的第一程序碼的功能。這種交互不會修改固件。在優(yōu)選實施方式中,提供一種與標(biāo)識和標(biāo)簽打印機(jī)相關(guān)的解釋性腳本語言,該腳本語言用于開發(fā)通過應(yīng)用程序接口(API)與打印機(jī)固件交互和互動的打印機(jī)軟件應(yīng)用(例如,打印機(jī)應(yīng)用程序)。優(yōu)選地,標(biāo)識和標(biāo)簽打印機(jī)安裝有LUA虛擬機(jī),優(yōu)選采用LUA腳本語言開發(fā)打印機(jī)應(yīng)用,所述打印機(jī)應(yīng)用適用于通過應(yīng)用程序接口(API)與打印機(jī)的固件交互的標(biāo)識和標(biāo)簽打印機(jī),并且LUA腳本語言允許訪問打印機(jī)的所有固件和硬件功能。在下面結(jié)合說明書附圖對本發(fā)明的描述中,本發(fā)明的其它特征和優(yōu)點是顯而易見的。為了舉例說明本發(fā)明,圖中示出了目前優(yōu)選的結(jié)構(gòu),然而應(yīng)該理解本發(fā)明不限于示出的具體結(jié)構(gòu)和技術(shù)手段。本發(fā)明的特征和優(yōu)點將在下面結(jié)合附圖的描述中顯而易見,其中圖1示出了根據(jù)優(yōu)選實施方式的硬件結(jié)構(gòu)實施例;圖2示出了圖1中的信息處理器實施例的功能元件;圖3是說明根據(jù)優(yōu)選實施方式提供的打印機(jī)API的框圖;圖4示出了根據(jù)優(yōu)選實施方式提供的使用API定義以及由標(biāo)識和標(biāo)簽打印機(jī)進(jìn)行標(biāo)識打印的標(biāo)識實施例;圖5示出了指示各自的水平和豎直位置并用于定義在標(biāo)識上的數(shù)據(jù)域的數(shù)據(jù)域尺寸實施例;圖6示出了根據(jù)優(yōu)選實施方式提供的使用API和表示顏色選擇限定以及由標(biāo)識和標(biāo)簽打印機(jī)打印的另一標(biāo)識實施例;圖7-10示出了包括多個電子存儲格式的優(yōu)選實施方式的實現(xiàn)方式。具體實施例方式在此根據(jù)教導(dǎo),提供一個或多個接口使個人能夠定制標(biāo)識和標(biāo)簽打印機(jī)設(shè)置并且不需要更新,改變或以其它方式更改設(shè)在標(biāo)識和標(biāo)簽打印機(jī)的固件源代碼并且無需昂貴的開發(fā)工具。因此,標(biāo)識和標(biāo)簽打印機(jī)能夠有效地用于應(yīng)用開發(fā)而無需讓其他人使用打印機(jī)專用解釋語言編寫應(yīng)用。在優(yōu)選實施方式中,結(jié)合標(biāo)識和標(biāo)簽打印機(jī)提供解釋性腳本語言。一套被格式化為打印機(jī)應(yīng)用程序接口(API)的打印機(jī)擴(kuò)展用于與打印機(jī)固件互相作用并操縱打印機(jī)固件從而實現(xiàn)定制和擴(kuò)展的功能。API優(yōu)選用于標(biāo)識和標(biāo)簽打印機(jī)使用。在優(yōu)選實施方式中,解釋性腳本語言是LUA0通過打印機(jī)固件與這套打印機(jī)API(例如用腳本語言開發(fā)的API)交互,通過標(biāo)識和標(biāo)簽打印機(jī)使用的軟件命令給予標(biāo)識和標(biāo)簽打印機(jī)的用戶更好的靈活性和訪問性以實現(xiàn)各種任務(wù)。使用與打印機(jī)固件聯(lián)合的API,用戶不再需要改變標(biāo)識和標(biāo)簽打印機(jī)的固件源代碼或訪問為改變或修改標(biāo)識和標(biāo)簽打印機(jī)的固件源代碼典型需要的開發(fā)工具。如下面更進(jìn)一步地詳細(xì)描述的,在此教導(dǎo)的API支持各種功能,例如與不同的鍵盤、顯示器交互,提供打印繪制的可變字體和樣式,訪問打印機(jī)文件系統(tǒng),打印機(jī)配置和各種與標(biāo)識和標(biāo)簽打印相關(guān)的其它功能。因此,本發(fā)明提供了許多打印解決方法并且這些解決方法不需要對固件源代碼修改,也不需要包括例如用于修改預(yù)定義的專用控制和打印機(jī)固件的軟件開發(fā)工具的嵌入式系統(tǒng)?,F(xiàn)在參考說明書附圖,其中相同的附圖標(biāo)識表示相同的元件,圖1舉例說明了根據(jù)本發(fā)明實施方式的一種硬件結(jié)構(gòu)實施例,可以通過直接的電纜連接或通過通信網(wǎng)絡(luò)提供和安裝打印機(jī)應(yīng)用程序,在此一般稱作系統(tǒng)100。在圖1示出的實施例中,信息處理器102具有集成開發(fā)程序環(huán)境(integrateddevelopmentprogrammingenvironment,IDE),例如使用本領(lǐng)域技術(shù)人員知道的LUA程序設(shè)計語言開發(fā)應(yīng)用。信息處理器102優(yōu)選包括各種必要的數(shù)據(jù)庫以支持本發(fā)明。然而,預(yù)設(shè)的信息處理器102可通過通信網(wǎng)絡(luò)106或者任何與信息處理器102連接的其它通信網(wǎng)絡(luò)訪問任何需要的數(shù)據(jù)庫。通信網(wǎng)絡(luò)106優(yōu)選是全球公共通信網(wǎng)絡(luò),例如因特網(wǎng),或者也可以是廣域網(wǎng)(Wideareanetwork,WAN),局域網(wǎng)(Localareanetwork,LAN),內(nèi)聯(lián)網(wǎng)或其它能夠使計算裝置和外圍設(shè)備通信的網(wǎng)絡(luò)。在優(yōu)選實施方式中,信息處理器102可以是任何能夠通過通信網(wǎng)絡(luò)106發(fā)送和接收數(shù)據(jù)的計算機(jī)可讀介質(zhì)裝置,例如大型計算機(jī)、迷你計算機(jī),個人計算機(jī),膝上型計算機(jī),個人數(shù)字助理(PersonaldigitalassistantPDA),蜂窩電話和因特網(wǎng)接入裝置如網(wǎng)絡(luò)電視(WebTV)。另外,信息處理器102優(yōu)選裝配有網(wǎng)絡(luò)瀏覽器軟件,如MICROSOFTINTERNETEXPLORER,M0ZILLAFIREFOX或類似瀏覽器軟件。使用任何已知數(shù)據(jù)通信網(wǎng)絡(luò)技術(shù)將信息處理器102與通信網(wǎng)絡(luò)106連接。打印機(jī)108也如圖1所示,其優(yōu)選是標(biāo)識和標(biāo)簽打印機(jī)并且可操作地打印從信息處理器102接收標(biāo)識和標(biāo)簽的數(shù)據(jù)。標(biāo)識和標(biāo)簽打印機(jī)108可具有鍵盤110和顯示器112以使標(biāo)識和標(biāo)簽打印機(jī)108在缺少信息處理器102的情況下或與信息處理器102共同配合的情況下能夠有輸入和輸出功能。圖2示出信息處理器102實施例的功能單元,其包括一個或多個用于運行軟件代碼和控制信息處理器102工作的中央處理單元(CPU)202。其它單元包括只讀存儲器(ROM)204;隨機(jī)存取存儲器(RAM)206;—個或多個通過通信網(wǎng)絡(luò)傳輸數(shù)據(jù)到其它計算裝置或從其它計算裝置接收數(shù)據(jù)的網(wǎng)絡(luò)接口208;用于存儲程序代碼數(shù)據(jù)庫和應(yīng)用數(shù)據(jù)的存儲裝置210,如硬盤驅(qū)動器、軟盤驅(qū)動器、磁帶驅(qū)動器、⑶ROM或DVD;—個或多個輸入裝置212,如鍵盤、鼠標(biāo)、跟蹤球、麥克風(fēng)或類似設(shè)備;以及顯示器214。進(jìn)一步地,一個或多個功能單元202-214也可以相適宜地配置有或設(shè)有標(biāo)識和標(biāo)簽打印機(jī)108。信息處理器102的各部件不需物理上包含在同一機(jī)殼內(nèi)或甚至位于單一位置。例如,存儲設(shè)置210可位于遠(yuǎn)離信息處理器102的其余單元的位置,并且甚至可經(jīng)通信網(wǎng)絡(luò)106通過網(wǎng)絡(luò)接口208連接到CPU202。信息處理器102優(yōu)選包括配有足夠存儲容量的存儲器以提供必要的數(shù)據(jù)庫、論壇和其它通信服務(wù)也作為用于超文本標(biāo)識語言(HypertextMarkupLanguage,HTML)、Java小應(yīng)用程序、Active-X控制程序通信的網(wǎng)絡(luò)服務(wù)器。信息處理器102布置有多個部件,例如圖2中示出的那些適合于信息處理器102的預(yù)期操作環(huán)境的部件。選擇CPU202、網(wǎng)絡(luò)接口208以及存儲器和存儲裝置以確保容量滿足預(yù)期要求。本發(fā)明的實質(zhì)是編寫計算機(jī)可運行代碼(如軟件)的本領(lǐng)域技術(shù)人員能夠采用一個或多個流行的計算機(jī)語言和開發(fā)環(huán)境的結(jié)合實施在此說明的功能,該計算機(jī)語言和開發(fā)環(huán)境包括但不限于LUA,C,C++,VisualBasic,JAVA,HTML,XML,ACTIVESERVERPAGES,JSP(JAVAServerPages),Servlet,MYSQL和PHP。雖然本發(fā)明由在此的實施例進(jìn)行說明并且依據(jù)采用網(wǎng)絡(luò)瀏覽器和網(wǎng)站服務(wù)器(例如信息處理器102)的基于Web系統(tǒng)進(jìn)行描述,但是系統(tǒng)100不限于這樣的配置。據(jù)此可知系統(tǒng)100被設(shè)置成通過任何已知的通信方法使標(biāo)識和標(biāo)簽打印機(jī)108與信息處理器102通信以及標(biāo)識和標(biāo)簽打印機(jī)108輸出從信息處理器102接收的數(shù)據(jù),例如,采用非因特網(wǎng)瀏覽器WINDOWS查看器外加局域網(wǎng)協(xié)議如互聯(lián)網(wǎng)分組交換協(xié)議(InternetPacketExchange,IPX)、撥號網(wǎng)、第三方網(wǎng)(Third-partyNetwork)、專用網(wǎng)或增值網(wǎng)(ValueAddedNetwork,VAN)。進(jìn)一步的可知任何合適的操作系統(tǒng)可在信息處理器102上使用,例如DOS,WINDOWS3.x,WINDOWS95,WINDOWS98,WINDOWSNT,WINDOWS2000,WINDOffSME,WINDOWSCE,WINDOWSPOCKETPC,WINDOWSXP,MACOS,UNIX,LINUX,PALMOS,POCKETPC禾口任何其它合適的操作系統(tǒng)。在優(yōu)選實施方式中,標(biāo)識和標(biāo)簽打印機(jī)108應(yīng)用采用LUA程序設(shè)計語言開發(fā)。根據(jù)一種優(yōu)選實施方式,則包括可操作以處理在所述應(yīng)用中提供的LUA程序設(shè)計聲明的LUA解釋器。與典型的高級程序設(shè)計語言不同,LUA是一種腳本語言并不是基礎(chǔ)程序設(shè)計語言。與接收SBPL命令或其它預(yù)定義的命令使得標(biāo)識和標(biāo)簽打印機(jī)執(zhí)行各種功能的典型標(biāo)識和標(biāo)簽打印機(jī)不同,本發(fā)明實現(xiàn)打印機(jī)API,該打印機(jī)API是對與打印機(jī)固件交互并且由LUA解釋器解釋的LUA語言的擴(kuò)展。這使得能夠開發(fā)更高級和復(fù)雜的應(yīng)用,例如通過函數(shù)調(diào)用。此外,相比于現(xiàn)有技術(shù)中為實現(xiàn)單一的改變而需要將各自固件應(yīng)用程序全部重寫的標(biāo)識和標(biāo)簽打印機(jī),本發(fā)明通過實現(xiàn)作為LUA程序設(shè)計語言擴(kuò)展的API即可更改標(biāo)識和標(biāo)簽打印機(jī)108部分功能。本發(fā)明的另一好處是使用LUA程序設(shè)計語言開發(fā)和用標(biāo)識和標(biāo)簽打印機(jī)108API實現(xiàn)的應(yīng)用更簡約并且運行明顯更快。這是因為為了實現(xiàn)本發(fā)明的API其它完成的各種功能,現(xiàn)有技術(shù)的標(biāo)識和標(biāo)簽打印機(jī)需要更多的軟件指令。更進(jìn)一步地,LUA解釋器有效地與本發(fā)明的API交互,例如通過利用函數(shù)調(diào)用,變量說明或類似方式,并且相比于現(xiàn)有技術(shù)標(biāo)識和標(biāo)簽打印機(jī)代碼利用率明顯改進(jìn),如需求更少的存儲空間的功能。本發(fā)明的LUA打印機(jī)API相比現(xiàn)有技術(shù)的標(biāo)識和標(biāo)簽打印機(jī)的另一優(yōu)勢是訪問打印函數(shù)的能力并且無需解釋器通過現(xiàn)有控制語言,如SBPL或ZPL,訪問打印函數(shù)。換句話說,API直接與控制標(biāo)識和標(biāo)簽打印機(jī)108打印功能的標(biāo)識和標(biāo)簽打印機(jī)108固件交互。這是相比于現(xiàn)有技術(shù)中需要例如一代SBPL命令以與現(xiàn)有控制語言交互的系統(tǒng)的改進(jìn),因而增加了與修改打印機(jī)功能關(guān)聯(lián)的步驟和處理時間。而且,由于本發(fā)明的API通過LUA解釋器交互,實際上消除了除基于標(biāo)識和標(biāo)簽打印機(jī)108的內(nèi)部存儲要求之外的與應(yīng)用關(guān)聯(lián)的尺寸限制。這相比于現(xiàn)有技術(shù)標(biāo)識和標(biāo)簽打印機(jī)是改進(jìn),例如,現(xiàn)有標(biāo)識和標(biāo)簽打印機(jī)對能被安裝且不支持動態(tài)存儲分配的代碼有行數(shù)限制。本發(fā)明的API支持,例如,函數(shù)調(diào)用和其它高級程序設(shè)計語言功能,如增加實現(xiàn)具體功能的程序設(shè)計代碼量的釋放存儲(無用單元收集)。本發(fā)明的另一好處是開發(fā)工具,如MICROSOFTVISUALSTUDIO或其它集成開發(fā)環(huán)境(IDE),對LUA來說作為插件組件是可用的。用于各標(biāo)識和標(biāo)簽打印機(jī)108的應(yīng)用開發(fā)對用可視化集成開發(fā)環(huán)境開發(fā)軟件應(yīng)用熟悉或感覺便利的開發(fā)者來說是更有吸引力。本發(fā)明的另一好處是LUA應(yīng)用能夠在具有模擬打印機(jī)工作的LUA虛擬機(jī)的計算機(jī)上運行。用戶能夠在下載并將應(yīng)用安裝到打印機(jī)上之前在計算機(jī)上測試已開發(fā)的LUA應(yīng)用,這省去了實際操作打印機(jī)從而測試LUA應(yīng)用的需要。在優(yōu)選實施方式中,多個獨立的LUA虛擬機(jī)在一種鏈?zhǔn)街惺强刹僮鞯牟⑶夷軌蛟趩我粯?biāo)識和標(biāo)簽打印機(jī)108或其網(wǎng)絡(luò)上實現(xiàn)。這樣,能夠?qū)崿F(xiàn)可配置的動態(tài)本地設(shè)置,例如,對于根據(jù)各種定制設(shè)置(例如區(qū)域設(shè)置和語音設(shè)置)分類數(shù)據(jù)的條形碼打印機(jī)。各種本地設(shè)置可存儲于特定計算機(jī)系統(tǒng)的操作系統(tǒng),性能的改變依據(jù)例如本地設(shè)置。通過LUA解釋器實現(xiàn)API,可提供不屬于之前現(xiàn)有技術(shù)的打印機(jī)功能的附加打印機(jī)功能,現(xiàn)提供根據(jù)一優(yōu)選實施方式給予的關(guān)于附加打印機(jī)功能及其改進(jìn)實現(xiàn)的討論。優(yōu)選地,在示例實施方式中通過執(zhí)行LUA來支持程序設(shè)計函數(shù)調(diào)用以及通過變量進(jìn)行聲明,尋址,與程序設(shè)計函數(shù)之間傳輸數(shù)值的能力。優(yōu)選地,程序設(shè)計函數(shù)返回代表函數(shù)是否成功運行的值,如錯誤代碼。假使例如函數(shù)沒有如預(yù)想一樣運行,返回代表錯誤的原因、錯誤的癥狀、錯誤的結(jié)果或其它合適信息的錯誤代碼。此外,函數(shù)名和變量名,如涉及的表名、字符串值、日期、數(shù)值或類似的參數(shù),優(yōu)選對用戶不輕易顯示并且即使顯示也是在視圖內(nèi)至少部分隱藏或者在視圖內(nèi)完全隱藏。優(yōu)選地,在此的教導(dǎo)用于支持安全性實現(xiàn),包括,例如要求提供有足夠授權(quán)和認(rèn)可的用戶執(zhí)行各種任務(wù),例如訪問特定的數(shù)據(jù)、一個或多個數(shù)據(jù)目錄,或者創(chuàng)建、移除或以其它方式修改數(shù)據(jù)目錄、數(shù)據(jù)文件或類似物。由API支持的另一特征是界面繪制。如在此使用的,繪制一般涉及交互式程序設(shè)計對象的創(chuàng)建。例如,繪制對象可形成數(shù)據(jù)域(例如基于文本的數(shù)據(jù)域),條形碼,圖表域。繪制對象包括一種或多種能夠操作的特性,例如通過方法。優(yōu)選地,通過API繪制的對象(例如文本域、條形碼和繪圖對象)提供(如,加入或以其它方式嵌入)標(biāo)識對象并且通過標(biāo)簽打印機(jī)108打印。而且,API在開發(fā)標(biāo)識或打印標(biāo)識或者開發(fā)和打印標(biāo)識時,支持提供置于標(biāo)識上的對象如條形碼并且不會造成錯誤,所述標(biāo)識至少部分在標(biāo)識和標(biāo)簽打印機(jī)108的可打印區(qū)域的外面。這個特征使得開發(fā)具有例如條形碼(通過標(biāo)識和標(biāo)簽打印機(jī)108僅打印一半的條形碼)的標(biāo)識成為可能。假定用戶期望通過標(biāo)識和標(biāo)簽打印機(jī)108打印部分或者不完整的對象,例如條形碼,在標(biāo)識上的,這個特征提供了對現(xiàn)有技術(shù)的修改打印機(jī)功能的方法的改進(jìn)。在一實施方式中的工作期間,繪制對象(例如文本域、條形碼、繪圖框、圖像或類似物)的各個位置由水平位置參數(shù)和垂直位置參數(shù)限定(如,hPos和vPos)。參數(shù)值優(yōu)選限定用于對象的定位點位置。假定hPos和vPos正確設(shè)置,那么定義誤差參數(shù)(如E_SUCCESS)??蛇x地,如果hPos或vPos沒有正確設(shè)置,那么定義不同的誤差參數(shù)(如EPARAM)。除了用于定位而定義的參數(shù)外,本發(fā)明支持對象放大,如條形碼或圖像。例如,定義水平和垂直放大參數(shù)(如hMag和vMag)用于設(shè)置水平和垂直像素放大(例如從值1_12),該像素放大代表對象的水平和垂直方向上各自的放大程度。圖3是舉例說明根據(jù)優(yōu)選實施方式提供的關(guān)聯(lián)API302的框圖,其與標(biāo)識和標(biāo)簽打印機(jī)108固件交互。如圖3所示,鍵盤API304是可操作的以接收或解釋(例如讀取)來自與標(biāo)簽打印機(jī)108集成的鍵盤110的信號??蛇x地,鍵盤API304工作以讀取或解釋來自不是直接與標(biāo)識和標(biāo)簽打印機(jī)108連接的外部鍵盤或其它輸入裝置212的信號。顯示API306工作以將各式各樣的文本和圖形內(nèi)容寫入到與標(biāo)識和標(biāo)簽打印機(jī)108相連的外部顯示器214。優(yōu)選地,顯示API306支持字體和編碼類型的多種選擇,例如,用于多種不同的寫入語、繼續(xù)參考圖3,打印繪制API308支持用戶定制的數(shù)據(jù)域元素作為標(biāo)識和標(biāo)簽打印機(jī)108打印的標(biāo)識上的輸出。這種數(shù)據(jù)域元素的實施例包括文本數(shù)據(jù)域,I-D和2-D條形碼,線條和框,三角函數(shù),圖像,單獨像素,圖形,格式化數(shù)據(jù)和計數(shù)器值。打印機(jī)繪制API308使用戶可定義一種類型的數(shù)據(jù)域和用于輸出到標(biāo)識/標(biāo)簽上的所述數(shù)據(jù)域的各自位置。優(yōu)選地,打印機(jī)繪制API提供支持各種語言的字體和編碼類型的可選選擇。優(yōu)選支持固定長度或可變長度數(shù)據(jù)格式,并且它們可包括在經(jīng)由打印機(jī)繪制API308的通信接口或文件輸入或域定義中。其它特征包括支持可選的彩色輸出選擇以實現(xiàn)定義一個或多個上述描述的域?qū)ο蟮念伾A硗?,一個或多個打印輸出或進(jìn)紙命令作為打印繪制API308的功能用于輸出空白或已印刷的標(biāo)識和標(biāo)簽。優(yōu)選地,打印繪制API308還提供用戶可選的打印質(zhì)量控制特征。此外,文件系統(tǒng)API310優(yōu)選使用戶能夠儲存、刪除、讀取和寫入文件,所述文件位于一個或多個標(biāo)識和標(biāo)簽打印機(jī)108的只讀存儲文件系統(tǒng)、隨機(jī)存取存儲文件系統(tǒng)、閃存文件系統(tǒng)或外部存儲源中,例如緊湊式閃存卡、安全數(shù)字存儲卡、USB存儲裝置或類似存儲裝置。提供用戶訪問存儲在與標(biāo)識和標(biāo)簽打印機(jī)關(guān)聯(lián)的各種內(nèi)部或外部源中的數(shù)據(jù)、文件或類似物明顯增加了用戶控制和操作標(biāo)識和標(biāo)簽打印機(jī)108運轉(zhuǎn)的靈活性。關(guān)于文件系統(tǒng)API310優(yōu)選具有的各種功能的實施例包括格式化標(biāo)識和標(biāo)簽打印機(jī)108的文件系統(tǒng),決定目錄的反復(fù)進(jìn)入,導(dǎo)航特定目錄,創(chuàng)建新的目錄,復(fù)制文件、移除目錄或文件,決定文件系統(tǒng)中的已用和可用字節(jié)以及改變對文件或目錄的訪問權(quán)限。繼續(xù)參考圖3,射頻識別(RadioFrequencyIdentification,RFID)API312支持對標(biāo)識和標(biāo)簽打印機(jī)108上的RFID芯片或RFID嵌體(RFIDInlay)的讀寫訪問。另外,實時時鐘API314使用戶能夠定義以及讀取日期和時間數(shù)據(jù)到標(biāo)識和標(biāo)簽打印機(jī)108和定義以及讀取來自標(biāo)識和標(biāo)簽打印機(jī)108的日期和時間數(shù)據(jù)。配置API316支持用戶定義的打印機(jī)具體參數(shù)。例如,配置API316使用戶能夠定義與打印速度、質(zhì)量、日期、時間功能、本地語言、菜單控制和類似功能相關(guān)的通信參數(shù)。配置API316對使用戶能夠定義或修改用于標(biāo)識和標(biāo)簽打印機(jī)108的操作控制特別有用,所述操作控制典型地對設(shè)在標(biāo)識和標(biāo)簽打印機(jī)108的固件是專用的并且僅通過具有專業(yè)化軟件和技能的技術(shù)性熟練用戶才能修改。另外,通信API318優(yōu)選控制與外部I/O接口裝置的通信。支持多數(shù)通信協(xié)議和標(biāo)準(zhǔn),包括,例如,RS232,RS485,RS422,USB,LAN,WLAN和中繼接口的外部數(shù)字。圖3中示出的其它API302包括可操作控制打印機(jī)中裝置的裝置API320,可操作在任何給定時間報告打印機(jī)狀態(tài)的打印機(jī)狀態(tài)API322,以及可操作解析已送到標(biāo)識和標(biāo)簽打印機(jī)108的命令和/或文件(例如已發(fā)送到標(biāo)識和標(biāo)簽打印機(jī)108的XML命令和/或XML文件)的解析器API3M。一旦被解析,就能夠解釋XML命令并將其用于控制由標(biāo)識和標(biāo)簽打印機(jī)108提供的輸出。除了裝置API320、打印機(jī)狀態(tài)API322和解析器API324之外,API302優(yōu)選包括紙?zhí)幚鞟PI326,其為了支持一個或多個標(biāo)識和標(biāo)簽尺寸提供多種紙張功能,包括例如打印進(jìn)紙,格式進(jìn)紙,換行,測試進(jìn)紙或類似功能。另外,圖中示出了提供聲音控制的聲音API3^例如對在標(biāo)識和標(biāo)簽打印機(jī)108中的蜂鳴器、蜂音器或其它聲音裝置。而且,圖中還示出了傳感器API330,其可操作接收來自設(shè)在標(biāo)識和標(biāo)簽打印機(jī)108上的傳感器裝置的信息,例如標(biāo)識間隙傳感器和標(biāo)識標(biāo)記傳感器,并且可操作判斷各種條件,例如到達(dá)標(biāo)識的末端時,到達(dá)色帶的末端時以及幾乎到達(dá)標(biāo)識和色帶的末端時。在一種實施方式中,傳感器API330工作以在這些條件的一個或多個確定發(fā)生時發(fā)出報警。圖3中顯示的其它API302包括事件API332、位處理API334和錯誤處理API336,其中事件API332接收和處理發(fā)生在標(biāo)識和標(biāo)簽打印機(jī)108中的各種事件,位處理API334在必要時可操作實現(xiàn)數(shù)據(jù)位操作,錯誤處理API336可操作處理可能發(fā)生在標(biāo)識和標(biāo)簽打印機(jī)108的錯誤,例如斷電、存儲錯誤、卡紙或類似錯誤。因此,根據(jù)優(yōu)選實施方式,開發(fā)多個API302,例如用LUA程序設(shè)計語言或C程序設(shè)計語言開發(fā),并且在標(biāo)識和標(biāo)簽打印機(jī)108中實現(xiàn)而且無需解釋器通過現(xiàn)有的控制語言如SBPL或ZPL訪問打印功能。除了圖3中舉例說明的API302以外,根據(jù)一個或多個實施方式還實現(xiàn)在此設(shè)想的各種其它的輔助功能。例如,支持復(fù)制表和/或原表(metatable)的功能以實現(xiàn)開發(fā)的快速和輕松。其它的實施例包括用于判斷錯誤編碼值的功能作為翻轉(zhuǎn)的錯誤字符串值的功能(例如,“errfstH)”)、用于在一個或多個復(fù)數(shù)格式(例如XML,LUA或其它)中存儲表的功能、以及用于載入提供在復(fù)數(shù)格式中的表的功能,并支持用于菜單和提示的多種書面語言和口語。圖4中舉例說明了根據(jù)一優(yōu)選實施方式提供、采用API302定義以及由標(biāo)識和標(biāo)簽打印機(jī)108打印的標(biāo)識400的實施例。如圖4所示,定位點402被定義在上面最左邊(如通過hMag和vMag變量值定義)、打印在標(biāo)識400上的文本數(shù)據(jù)的位置,即使打印的文本數(shù)據(jù)有各自方向或位置。圖4也示出了當(dāng)標(biāo)識400通過標(biāo)識和標(biāo)簽打印機(jī)108打印時的進(jìn)紙方向404。除打印在標(biāo)識400上的文本數(shù)據(jù)之外,還提供圖形圖像406,例如通過打印繪制API308繪制。圖5舉例說明了用于定義在標(biāo)識400上的數(shù)據(jù)域500的數(shù)據(jù)域尺寸實施例并指示了用于數(shù)據(jù)域500的上面最左邊角落的各自的水平和垂直位置502(“hPos”和“vPos”)和用于下面最右邊位置504的水平和垂直位置。此外,數(shù)據(jù)方向函數(shù)506(如dir(0,359))指示了輸出在標(biāo)識400上的數(shù)據(jù)域500的相關(guān)方向。圖6舉例說明了根據(jù)一優(yōu)選實施方式提供的采用API302定義以及由標(biāo)識和標(biāo)簽打印機(jī)108打印的標(biāo)識600的實施例。在圖6中示出的標(biāo)簽600的實施例中,示出了在標(biāo)識600上的在各自位置608上采用的多種顏色602,604和606。因此,如在此示出和描述的,LUAAPI是與標(biāo)識和標(biāo)簽打印機(jī)108的固件和LUA解釋器共同工作的接口,這些API通過LUA解釋器實現(xiàn),用戶能夠創(chuàng)建實現(xiàn)優(yōu)選打印操作的LUA應(yīng)用程序?,F(xiàn)參考圖7,在一優(yōu)選實施方式中,標(biāo)識和標(biāo)簽打印機(jī)108具有兩種類型的存儲閃存702和同步動態(tài)隨機(jī)存取存儲器(SDRAM)704。閃存702(優(yōu)選替代ROM使用)用于存儲,在其它合適的數(shù)據(jù)中,標(biāo)識和標(biāo)簽打印機(jī)108的啟動代碼,基礎(chǔ)固件(例如驅(qū)動器、條形碼格式或類似物),LUAAPI和LUA虛擬機(jī)。在現(xiàn)有技術(shù)中已知的,在打印機(jī)108啟動過程期間,存儲在閃存702中的啟動代碼工作。在優(yōu)選實施方式中,標(biāo)識和標(biāo)簽打印機(jī)108的基礎(chǔ)固件和LUAAPI以壓縮格式存儲在閃存702中,因而閃存702中保留有存儲空間。在標(biāo)識和標(biāo)簽打印機(jī)108啟動過程之前,SDRAM704優(yōu)選主要是空的,并準(zhǔn)備接收數(shù)據(jù)。如在圖8中舉例說明的,當(dāng)標(biāo)識和標(biāo)簽打印機(jī)108啟動時,標(biāo)識和標(biāo)簽打印機(jī)108的固件,LUAAPI和LUA虛擬機(jī)優(yōu)選以壓縮格式存儲在閃存702中。在啟動過程之后,解壓上述固件、LUAAPI和LUA虛擬機(jī)并且以未壓縮格式提供到SDRAM704。此后,標(biāo)識和標(biāo)簽打印機(jī)108的基礎(chǔ)固件、驅(qū)動器、條形碼,標(biāo)識格式,解析器、圖像緩沖區(qū)和其它數(shù)據(jù)在適當(dāng)?shù)臅r候臨時性地存儲在SDRAM704中以實現(xiàn)操作。參考圖9,LUA虛擬機(jī)優(yōu)選通過SDRAM704與打印機(jī)108的固件、LUAAPI和解析器一起工作。這樣根據(jù)優(yōu)選實施方式,標(biāo)識和標(biāo)簽打印機(jī)在打印工作期間不專門依賴閃存702相反而是通過存儲在SDRAM704上的未壓縮數(shù)據(jù)和指令工作以實現(xiàn)操作。該實施方式比典型的現(xiàn)有技術(shù)系統(tǒng)和方法更好,因為SDRAM704比閃存702工作的更快更有效率,并且SDRAM704能夠在打印機(jī)操作完成之后清除未壓縮的數(shù)據(jù)和指令。參考圖9和圖10,在打印工作期間,在此提供的與教導(dǎo)相關(guān)的LUAAPI通過LUA虛擬機(jī)工作,并且與標(biāo)識和標(biāo)簽打印機(jī)108固件交互以輸出存儲在標(biāo)識和標(biāo)簽打印機(jī)108的緩存中的標(biāo)識圖像或其它對象。優(yōu)選地,標(biāo)識和標(biāo)簽打印機(jī)108能優(yōu)選地通過LUAAPI定義的多個輸入源接收指令(如通過LUAAPI)和/或數(shù)據(jù)。例如,數(shù)據(jù)能通過任何合適的輸入端口被掃描、打字或以其它方式提供和接收,所述合適的輸入端口包括輸入裝置212,通信端口,網(wǎng)絡(luò)接口20或類似模塊。因此,如在此描述和請求的,同時如附圖所示,由標(biāo)識和標(biāo)簽打印機(jī)108具有的功能優(yōu)選被增強(qiáng)、修改或增加為與打印機(jī)108的固件交互的API302的功能。應(yīng)用優(yōu)選使用高級程序設(shè)計語言定義,如LUA程序設(shè)計語言,因而避免了個人熟悉打印機(jī)模型固件專用程序設(shè)計語言或者訪問專用開發(fā)工具以修改打印機(jī)固件的需要。因此,打印機(jī)能夠用于應(yīng)用開發(fā)并且無需使用打印機(jī)專用解釋語言編寫應(yīng)用。雖然本發(fā)明的描述和圖示與其特定的實施方式相關(guān),但是許多其它的變化以及修改以及其它的使用對本領(lǐng)域技術(shù)人員來說是顯而易見的。因此本發(fā)明優(yōu)選不限于在此的具體公開的內(nèi)容。權(quán)利要求1.一種修改具有固件的打印機(jī)的功能以控制打印操作的方法,所述方法包括開發(fā)第一程序碼,所述第一程序碼在計算機(jī)可讀介質(zhì)上運行時,與所述打印機(jī)固件交互和修改所述打印機(jī)的功能,其中所述第一程序碼以第一程序設(shè)計語言編寫,并且其中進(jìn)一步地所述固件以第二程序設(shè)計語言而不是所述第一程序設(shè)計語言編寫;在計算機(jī)可讀介質(zhì)上運行所述第一程序碼并且所述第一程序碼與所述固件交互;并且修改所述打印機(jī)的功能作為所述第一程序碼運行以及與所述固件交互的功能,其中所述交互并不修改所述固件。2.如權(quán)利要求1所述的方法,其中所述打印機(jī)是標(biāo)識和標(biāo)簽打印機(jī)。3.如權(quán)利要求1所述的方法,其中所述第一程序設(shè)計語言是腳本語言。4.如權(quán)利要求3所述的方法,其中所述腳本語言是LUA。5.如權(quán)利要求4所述的方法,其中運行所述第一程序碼進(jìn)一步包括在LUA虛擬機(jī)中解釋所述第一程序碼。6.如權(quán)利要求1所述的方法,其中所述第一程序碼包括至少一個應(yīng)用程序接口。7.如權(quán)利要求6所述的方法,其中所述至少一個應(yīng)用程序接口包括一個或多個鍵盤應(yīng)用程序接口,顯示應(yīng)用程序接口,打印繪制應(yīng)用程序接口,文件系統(tǒng)應(yīng)用程序接口,射頻識別應(yīng)用程序接口,實時時鐘應(yīng)用程序接口,配置應(yīng)用程序接口,通信應(yīng)用程序接口,裝置應(yīng)用程序接口,打印機(jī)狀態(tài)應(yīng)用程序接口,XML解析應(yīng)用程序接口,紙?zhí)幚響?yīng)用程序接口,聲音應(yīng)用程序接口,傳感器應(yīng)用程序接口,事件應(yīng)用程序接口,事件應(yīng)用程序接口,位處理應(yīng)用程序接口,以及錯誤處理應(yīng)用程序接口。8.如權(quán)利要求1所述的方法,其中所述第一程序碼除在所述打印機(jī)上之外在計算裝置上是可測試的。9.如權(quán)利要求1所述的方法,其中所述第一程序碼在集成開發(fā)環(huán)境開發(fā)。10.一種修改打印機(jī)功能的系統(tǒng),所述系統(tǒng)包括打印機(jī),所述打印機(jī)具有打印機(jī)功能;固件,所述固件使用第一程序設(shè)計語言編寫并且設(shè)置在所述打印機(jī)上,所述固件在所述打印機(jī)上運行時控制打印操作;第一程序碼,所述第一程序碼使用第二程序設(shè)計語言而不是第一程序設(shè)計語言編寫,并且所述第一程序碼在計算機(jī)可讀介質(zhì)上是可運行的,其中所述第一程序碼包括用于修改打印機(jī)功能的命令;以及計算機(jī)可讀介質(zhì),所述第一程序碼在所述計算機(jī)可讀介質(zhì)上運行;其中,當(dāng)所述第一程序碼在所述計算機(jī)可讀介質(zhì)上運行時,所述第一程序碼和所述固件交互以修改所述打印機(jī)的功能,并且其中進(jìn)一步地所述第一程序碼與所述固件的交互不修改所述固件。11.如權(quán)利要求10所述的系統(tǒng),其中所述打印機(jī)是標(biāo)識和標(biāo)簽打印機(jī)。12.如權(quán)利要求10所述的系統(tǒng),其中所述第二程序設(shè)計語言是腳本語言。13.如權(quán)利要求12所述的系統(tǒng),其中所述腳本語言是LUA。14.如權(quán)利要求13所述的系統(tǒng),其中所述第一程序碼的運行進(jìn)一步包括在LUA虛擬機(jī)上解釋所述第一程序碼。15.如權(quán)利要求10所述的系統(tǒng),其中所述第一程序碼包括至少一個應(yīng)用程序接口。16.如權(quán)利要求15所述的系統(tǒng),其中所述至少一個應(yīng)用程序接口包括一個或多個鍵盤應(yīng)用程序接口,顯示應(yīng)用程序接口,打印繪制應(yīng)用程序接口,文件系統(tǒng)應(yīng)用程序接口,射頻識別應(yīng)用程序接口,實時時鐘應(yīng)用程序接口,配置應(yīng)用程序接口,通信應(yīng)用程序接口,裝置應(yīng)用程序接口,打印機(jī)狀態(tài)應(yīng)用程序接口,XML解析應(yīng)用程序接口,紙?zhí)幚響?yīng)用程序接口,聲音應(yīng)用程序接口,傳感器應(yīng)用程序接口,事件應(yīng)用程序接口,事件應(yīng)用程序接口,位處理應(yīng)用程序接口,以及錯誤處理應(yīng)用程序接口。17.如權(quán)利要求10所述的系統(tǒng),其中所述第一程序碼沒有所述固件的情況下編寫。18.如權(quán)利要求10所述的系統(tǒng),進(jìn)一步包括用于開發(fā)所述第一程序碼的集成開發(fā)環(huán)境。19.一種修改具有固件的打印機(jī)的功能以控制打印操作的方法,所述方法包括開發(fā)第一程序碼,所述第一程序碼在計算機(jī)可讀介質(zhì)上運行時,與所述打印機(jī)固件交互并且修改所述打印機(jī)的功能,其中所述第一程序碼以第一程序設(shè)計語言編寫,并且其中進(jìn)一步地所述固件以第二程序設(shè)計語言而不是所述第一程序設(shè)計語言編寫;以壓縮格式將所述第一程序碼和所述固件存儲在所述打印機(jī)上的第一存儲器上;當(dāng)啟動所述打印機(jī)時,將所述壓縮的第一程序碼和所述固件解壓到所述打印機(jī)上的第二存儲器上;在所述第二存儲器上運行所述第一程序碼和所述固件并且所述第一程序碼與所述固件交互;以及修改打印機(jī)的功能作為所述第一程序碼運行以及與所述固件交互的功能,其中所述交互不會修改所述固件。20.如權(quán)利要求所述19的方法,其中所述第一存儲器是閃存。21.如權(quán)利要求所述的19的方法,其中所述第二存儲器是SDRAM。22.—種修改打印機(jī)功能的系統(tǒng),所述系統(tǒng)包括打印機(jī),所述打印機(jī)具有打印機(jī)功能;固件,所述固件使用第一程序設(shè)計語言編寫并且設(shè)置在所述打印機(jī)上,當(dāng)所述固件在所述打印機(jī)上運行時控制打印操作;第一程序碼,所述第一程序碼使用第二程序設(shè)計語言而不是第一程序設(shè)計語言編寫,并且所述第一程序碼在計算機(jī)可讀介質(zhì)上是可運行的,其中所述第一程序碼包括用于修改打印機(jī)功能的命令;第一存儲器,所述第一程序碼和所述固件以壓縮格式存儲在所述第一存儲上;第二存儲器,所述第一程序碼和所述固件在所述第二存儲器上運行;其中當(dāng)所述打印機(jī)啟動時,在所述第一存儲器上的所述壓縮的第一程序碼和固件解壓到所述第二存儲器上;其中當(dāng)所述第一程序碼和所述固件運行在所述第二存儲器上時,所述第一程序碼和所述固件交互以修改所述打印機(jī)的功能,并且其中進(jìn)一步地所述第一程序碼與所述固件的交互不會修改所述固件。23.如權(quán)利要求22所述的系統(tǒng),其中所述第一存儲器是閃存。24.如權(quán)利要求22所述的系統(tǒng),其中所述第二存儲器是SDRAM。25.—種修改具有固件的打印機(jī)的功能以控制打印操作的方法,所述方法包括開發(fā)第一程序碼,所述第一程序碼在計算機(jī)可讀介質(zhì)上運行時,與所述打印機(jī)固件交互并修改所述打印機(jī)的功能,其中所述第一程序碼以第一程序設(shè)計語言編寫,并且進(jìn)一步地其中所述固件以第二程序設(shè)計語言而不是所述第一程序設(shè)計語言編寫;將所述第一程序碼存儲在所述打印機(jī)內(nèi)的第一存儲器上;在所述第二存儲器上運行所述第一程序碼和所述固件并且所述第一程序碼與所述固件交互;以及修改打印機(jī)的功能作為所述第一程序碼運行以及與所述固件交互的功能,其中所述交互不會修改所述固件。26.—種修改打印機(jī)功能的系統(tǒng),所述系統(tǒng)包括打印機(jī),所述打印機(jī)具有打印機(jī)功能;固件,所述固件使用第一程序設(shè)計語言編寫并且所述固件提供在所述打印機(jī)上使得所述固件在所述打印機(jī)上運行時控制打印操作;第一編碼程序,所述第一編碼程序使用第二程序設(shè)計語言而不是第一程序設(shè)計語言編寫的第一程序碼,并且所述第一程序碼在計算機(jī)可讀介質(zhì)上是可運行的,其中所述第一程序碼包括修改打印機(jī)功能的命令;第一存儲器,所述第一程序碼和所述固件存儲在所述第一存儲上;第二存儲器,所述第一程序碼和所述固件在所述第二存儲器上運行;其中當(dāng)所述第一程序碼和所述固件在所述第二存儲器上運行時,所述第一程序碼和所述固件交互以修改所述打印機(jī)的功能,并且進(jìn)一步地其中所述第一程序碼與所述固件交互不會修改所述固件。全文摘要本發(fā)明提供了修改具有用于控制打印操作的固件的打印機(jī)的功能的方法和系統(tǒng)。開發(fā)第一程序碼使得所述第一程序碼在計算機(jī)可讀介質(zhì)上運行時與打印機(jī)的固件交互并且修改打印機(jī)的功能。所述第一程序碼使用第一程序設(shè)計語言編寫,例如LUA程序設(shè)計語言,并且所述固件使用第二程序設(shè)計語言而不是第一程序設(shè)計語言編寫。此后,第一程序碼運轉(zhuǎn)在計算機(jī)可讀介質(zhì)上,并且修改打印機(jī)的功能作為與所述固件交互的運行的第一程序碼的功能。所述交互不會修改所述固件。文檔編號B41J29/38GK102202904SQ200880131719公開日2011年9月28日申請日期2008年10月27日優(yōu)先權(quán)日2008年10月27日發(fā)明者L-A·伯格,M·赫德伯格申請人:株式會社佐藤,株式會社佐藤知識財產(chǎn)研究所