通訊埠印表機
# Smart之通訊埠印表機
# 1. 說明
範例採用通訊埠通訊協議,控制通訊埠印表機進行列印輸出。通過向通訊埠輸入特定列印指令的字元,印表機對指令進行解析並列印出所需的內容。目前市面上的一些帶有通訊埠的標籤印表機使用的是TSPL(TSC標籤印表機的通訊埠列印程式語言),通過通訊埠輸入的內容需按照TSPL的規範進行。
範例使用到的是佳博GP-3120TN標籤印表機,該印表機帶有一個通訊埠介面,可用於接收TSPL指令進行列印操作,其外觀如下圖所示。
在使用前,先將USB通訊埠轉接線的通訊埠端與標籤印表機的通訊埠端連線,再將USB端與PC進行連線。印表機通電並打開印表機的電源開關,待PC端確認設備連線后,在Windows的設備管理器中檢視連線的通訊埠埠號,該埠號會在接下來的範例中使用到。
通過範例學習,可以掌握TComport元件的基本屬性,以及通過通訊埠進行列印操作的方法。
# 2. 設計明細
開啟Smart智慧控制平臺,分別加入下插圖之控制元件。或者通過點選功能表欄[檔案]-[打開專案]
選擇範例專案檔案來打開該範例。
①:TImage元件,控制元件名稱為Image1
。
②:TLabel元件,控制元件名稱為Label9
。
③:TImage元件,控制元件名稱為Image2
。
④:TMemo元件,控制元件名稱為Memo1
。
⑤:TComPort元件,控制元件名稱為ComPort1
。
⑥:TLabel元件,控制元件名稱為Label5
。
⑦:TLabel元件,控制元件名稱為Label1
。
⑧:TSwitchButton元件,控制元件名稱為SwitchButton1
。
⑨:TSwitchButton元件,控制元件名稱為SwitchButton2
。
Main窗體屬性設定
Caption
:設定窗體標題=通訊埠印表機
。ClientHeight
:設定窗體顯示區的高度=480
。ClientWidth
:設定窗體顯示區的寬度=384
。
①Image1屬性設定
Align
:設定對齊方式=alClient
。Stretch
:設定影象拉伸=True
。PicTure
:設定影象。點選Picture
屬性右側的[...]
按鈕,打開檔案上傳界面,點選[Load...]
從檔案瀏覽器中選擇對應的圖片檔案上傳,返回該界面下,待顯示出圖片後點擊[OK]
載入圖片。
②Label9屬性設定
AutoSize
:設定控制元件大小與字型自適應=True
。Caption
:設定顯示標籤的內容=通訊埠印表機
。Font
:設定字型,點選該屬性右側[...]
按鈕或者雙擊該屬性打開字型設定界面,設定內容如下。
③Image2屬性設定
Height
:設定控制元件高度=245
。Width
:設定控制元件寬度=289
。PicTure
:設定影象。點選Picture
屬性右側的[...]
按鈕,打開檔案上傳界面,點選[Load...]
從檔案瀏覽器中選擇對應的圖片檔案上傳,返回該界面下,待顯示出圖片後點擊[OK]
載入圖片。
④Memo1屬性設定
Height
:設定控制元件高度=181
。Width
:設定控制元件寬度=288
。Lines
:設定Memo中顯示的列印格式的內容。其中的內容是按照TSPL的規範進行編寫的,範例內容如下:
SIZE 40 mm,60 mm CLS TEXT 50,30,"TSS24.BF2",0,1,1,"商品清單" TEXT 50,45,"4",0,1,1,"--------------------" TEXT 50,60,"TSS24.BF2",0,1,1,"西紅柿 1 15 15 " TEXT 50,90,"TSS24.BF2",0,1,1,"娃哈哈 1 15 15 " TEXT 50,120,"TSS24.BF2",0,1,1,"牛肉乾 1 15 15 " TEXT 50,150,"TSS24.BF2",0,1,1,"紅牛 1 15 15 " TEXT 50,170,"4",0,1,1,"--------------------" TEXT 50,190,"TSS24.BF2",0,1,1,"合計 1 15 15 " QRCODE 50,210,L,4,A,0,"isoface.net" PRINT 1 EOP
1
2
3
4
5
6
7
8
9
10
11
12
13Visible
:設定控制元件是否可見=False
。
⑤ComPort屬性設定
BaudRate
:通訊的連線速率,設定為br9600
。DataBits
:通訊的數據位數。設定為db8
。DeviceName
:設備的埠號,設定為印表機通訊埠連線的埠號。
⑥Label5屬性設定
AutoSize
:設定控制元件大小與字型自適應=True
。Caption
:設定顯示標籤的內容=顯示列印格式
。Font
:設定字型,點選該屬性右側[...]
按鈕或者雙擊該屬性打開字型設定界面,設定內容如下。
⑦Label1屬性設定
AutoSize
:設定控制元件大小與字型自適應=True
。Caption
:設定顯示標籤的內容=打開通訊埠
。Font
:設定字型,點選該屬性右側[...]
按鈕或者雙擊該屬性打開字型設定界面,設定內容如下。
⑧SwitchButton1屬性設定
Height
:設定控制元件高度=38
。Width
:設定控制元件寬度=40
。SwitchOff
:設定IsChecked
=False
時顯示的圖片。點選屬性右側的[...]
按鈕,打開檔案上傳界面,點選[Load...]
從檔案瀏覽器中選擇對應的圖片檔案上傳,返回該界面下,待顯示出圖片後點擊[OK]
載入圖片。
SwitchOn
:設定IsChecked
=True
時顯示的圖片。點選屬性右側的[...]
按鈕,打開檔案上傳界面,點選[Load...]
從檔案瀏覽器中選擇對應的圖片檔案上傳,返回該界面下,待顯示出圖片後點擊[OK]
載入圖片。
⑨SwitchButton2屬性設定
Height
:設定控制元件高度=38
。Width
:設定控制元件寬度=40
。SwitchOff
:設定IsChecked
=False
時顯示的圖片。點選屬性右側的[...]
按鈕,打開檔案上傳界面,點選[Load...]
從檔案瀏覽器中選擇對應的圖片檔案上傳,返回該界面下,待顯示出圖片後點擊[OK]
載入圖片。
SwitchOn
:設定IsChecked
=True
時顯示的圖片。點選屬性右側的[...]
按鈕,打開檔案上傳界面,點選[Load...]
從檔案瀏覽器中選擇對應的圖片檔案上傳,返回該界面下,待顯示出圖片後點擊[OK]
載入圖片。
# 3. 程式設計
# 3.1. 程式初始設定
該程式無初始設定。
# 3.2. 事件設定
- ③Image2-OnClick事件
點選印表機的影象時,通訊埠處於連線狀態,則向通訊埠發送印表機指令,印表機列印出對應的內容。
procedure TMyHandler.Image2Click;
//點選列印
begin
IOT.ComWriteAnsiLine(FThis.ComPort1,FThis.Memo1.Lines.Text);
end;
2
3
4
5
- ⑧SwitchButton1-OnSwitch事件
顯示列印格式的開關按鈕,點選以切換是否顯示列印格式內容的文字框。
procedure TMyHandler.SwitchButton1Switch;
//是否顯示列印格式
begin
FThis.Memo1.Visible := FThis.SwitchButton1.IsChecked;
end;
2
3
4
5
- ⑨SwitchButton2-OnSwitch事件
打開關閉通訊埠的開關按鈕,點選以打開或者關閉通訊埠。
procedure TMyHandler.SwitchButton2Switch;
//打開或者關閉通訊埠
begin
if FThis.SwitchButton2.IsChecked then
begin
iot.ComOpen(FThis.ComPort1);
end
else
begin
iot.ComClose(FThis.ComPort1);
end;
end;
2
3
4
5
6
7
8
9
10
11
12
# 4. 運行結果
通過工具欄儲存,將程式儲存為 sdb 專案檔案。
使用滑鼠點選工具欄運行(Run),測試運行結果。程式運行時,點選打開通訊埠
右側的開關以打開通訊埠,顯示列印格式
右側的開關點選可切換顯示或者關閉列印格式文字框的顯示。在通訊埠連線的情況下,點選印表機影象,印表機會列印出對應標籤中的內容。