LED顯示屏二次開發(fā)接口的設計方案
(4)如果(2)中指令是文件傳輸指令,則重復(2)、(3),直到文件傳輸結束。
在通信過程中,發(fā)送方要強制結束發(fā)送過程,可以發(fā)送通信握手命令或強制中止通信進行強制終止。
2。2通信通道接口
在對LED顯示屏進行通信之前,必須先建立通信通道,而退出系統(tǒng)時,則釋放通信通道資源。通信通道接口包括:
(1)打開通信通道
函數格式:DWORDCOMM_Open(constPDeviceParampDevParam,DWORDdwNotify,DWORDdwWindws,DWORDdwMsg);
參數說明:
①pDevParam:表示指定設備的參數,例如串口的波特率、串口號,以及網絡本地IP地址、端口號等參數;②dwNotify:表示當LED顯示屏有返回值時是否通知,0代表不通知,1表示通知;③dwWindws:表示消息通知的窗體句柄;④dwMsg:用戶定義的消息號。
返回值:
①0:表示創(chuàng)建失敗;②其它值:表示設備通道值。
功能描述:
該函數用來建立一個通信通道,函數運行一次即建立一個通道,建立成功就返回一個DWORD值,代表一個設備的句柄,用于區(qū)分不同的通道。該值供其它接口函數使用,以便對不同的顯示屏進行控制。
物理上支持串口通道、網絡通道,對于串口,設置串口號、波特率、接收/發(fā)送緩沖區(qū),然后打開串口;對于網絡,設置本地IP、端口號、接收/發(fā)送緩沖區(qū),然后打開網口。這里需要特別強調的是,網絡采用UDP方式,這主要是為了:
①在協議實現上與串口統(tǒng)一;②只需一次創(chuàng)建;③提高網絡通信握手連接。
因篇幅原因,以下函數將只列出函數格式和功能說明。
(2)關閉通信通道
函數格式:DWORDCOMM_Close(DWORDdwDev/*通信設備通道*/);
該函數關閉已打開的通信通道(dwDev),釋放通信通道資源,一般在退出系統(tǒng)前使用。
(3)強制中止通信
函數格式:DWORDCOMM_Break(DWORDdwDev);
該函數中止當前通信通道(dwDev)的通信。
(4)通信握手
函數格式:DWORDCOMM_Link(DWORDdwDev/*通信設備通道*/,
BYtebyDstNo/*目標顯示屏ID*/,
char*chHost/*網絡地址,串口時無效*/,
WORDwPort/*網絡端口號,串口時無效*/
);
該函數查詢顯示屏是否能夠通信,可在通信之前或監(jiān)控LED顯示屏時使用。
2。3節(jié)目接口
LED顯示屏顯示的信息其實是一個個的節(jié)目文件,一般先在上位機控制系統(tǒng)中生成,然后發(fā)送到顯示屏上顯示。在設計節(jié)目接口時,可能因節(jié)目結構不同,細節(jié)上有些差別,本文根據如圖3所示的樹形節(jié)目結構設計一種節(jié)目接口。
(1)節(jié)目初始化。
函數格式:
DWORDProgram_Init(DWORDdwProgramType/*節(jié)目類型*/,
DWORDdwScreenType/*顯示屏類型*/,
DWORDdwWidth/*節(jié)目寬度*/,
DWORDdwHeight/*節(jié)目高度*/
);
該函數用于在計算機內存開辟一塊內存空間,或釋放上一次節(jié)目占用的資源,為節(jié)目生成做準備。
(2)添加區(qū)域
函數格式:
DWORDProgram_AddArea(DWORDdwAreaType/*區(qū)域類型*/,
LPRECTrect/*顯示區(qū)域*/,
DWORDdwAreaNO/*區(qū)域號*/
);
在顯示屏頁面上,根據節(jié)目的要求,需要劃分不同的區(qū)域,設置其起點和寬高??墒褂迷摵瘮翟诋斍帮@示頁面上創(chuàng)建一個個的區(qū)域,以放置具體的顯示對象,例如內碼文字、時鐘等。
(3)添加各種對象。
在頁面的區(qū)域上,可添加單行文字、多行文字、內碼文字、圖片、視頻動畫、WORD文檔、Flash動畫、表格、數字時鐘、模擬時鐘、倒計時等各種顯示對象,在實現時,每一種對象對應一個函數。這里列出常用的添加圖片的函數:
函數格式:
DWORDProgram_AddPicture(DWORDdwAreaNO/*區(qū)域號*/,
HDCdc/*圖形dc*/,
DWORDdwWidth/*圖片寬*/,
DWORDdwHeight/*圖片高*/,
LPRECTrect/*顯示區(qū)域*/,
DWORDdwAction/*特效號*/,
DWORDdwExitAction/*退出特效號*/,
DWORDdwSpeed/*顯示速度*/,
DWORDdwTimecount/*顯示時間*/,
DWORDdwTransparent/*透明與否*/);
該函數在指定區(qū)域上添加一個圖片,顯示內容來自于dc。
(4)節(jié)目數據生成。
函數格式:DWORDProgram_MakeData()。
該函數生成節(jié)目數據,以便使用LEDControl_SendToScreen函數發(fā)送到不同的顯示屏。
2。4命令接口
命令接口主要為控制、監(jiān)控和發(fā)送節(jié)目數據而設計,例如,火車站或街頭的廣告屏,在夜間人少時,廣告效果不明顯,同時也為了省電,可在指定夜間時間點關閉顯示屏,然后到早晨指定時間點自動打開顯示屏。經過總結,命令接口的命令包括:
(1)重啟命令。
函數格式:DWORDLEDControl_Reboot(DWORDdwDev,BYTEbyDstNo,char*chHost,WORDwPort);
該函數用來重啟指定的LED顯示屏。
(2)電源控制。
函數格式:DWORDLEDControl_SetPower(DWORDdwDev,BYTEbyDstNo,charchHost,WORDwPort,DWORDdwPower/*開或關標識*/);
該函數打開或關閉顯示屏。
(3)顯示屏亮度調節(jié)。
函數格式:DWORDLEDControl_SetBrightness(DWORDdwDev,BYTEbyDstNo,char*chHost,WORDwPort,BYTEbyBrightness/*亮度*/);
該函數用于調節(jié)顯示屏亮度。
(4)校時。
函數格式:DWORDLEDControl_AdjustTime(DWORDdwDev,BYTEbyDstNo,char*chHost,WORDwPort);
該函數用于計算機時鐘校正顯示屏時鐘。
(5)節(jié)目發(fā)送接口。
函數格式:DWORDLEDControl_SendToScreen(DWORDdwDev,BYTEbyDstNo,char*chHost,WORDwPort);
該函數將Program_MakeData生成的節(jié)目數據發(fā)送到顯示屏,最后返回狀態(tài)值,表示成功、失敗及其它狀態(tài),用戶根據狀態(tài)再進行相應的處理。
(6)局部更新節(jié)目接口。
函數格式:DWORDLEDControl_UpdateCodeText(DWORDdwDev,BYTEbyDstNo,char*chHost,WORDwPort,char*chCodeText/*字符串緩沖區(qū)*/,intiLen/*字符串長度*/);
評論