LED异步屏动态库使用说明V161.docx

上传人:b****7 文档编号:8956047 上传时间:2023-02-02 格式:DOCX 页数:23 大小:28.65KB
下载 相关 举报
LED异步屏动态库使用说明V161.docx_第1页
第1页 / 共23页
LED异步屏动态库使用说明V161.docx_第2页
第2页 / 共23页
LED异步屏动态库使用说明V161.docx_第3页
第3页 / 共23页
LED异步屏动态库使用说明V161.docx_第4页
第4页 / 共23页
LED异步屏动态库使用说明V161.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

LED异步屏动态库使用说明V161.docx

《LED异步屏动态库使用说明V161.docx》由会员分享,可在线阅读,更多相关《LED异步屏动态库使用说明V161.docx(23页珍藏版)》请在冰豆网上搜索。

LED异步屏动态库使用说明V161.docx

LED异步屏动态库使用说明V161

LED异步屏动态库使用说明

TYLED动态库提供了一组方便直观的操作函数,使用户能快速对TY-AS系统LED控制卡进行二次开发。

TYLED.dll采用标准DLL结构,可被各种语言调用。

TYLed.DLL支持一台电脑同时与多个显示屏建立连接,支持网络和串行通信接口的显示屏设备混合使用;对串行通信方式,支持多串口;支持后台线程发送,相容多任务程序设计和管理。

一、动态库使用方法和步骤

动态库TYLed.dll和各种开发语言的函数原型和常数定义放在“DLL及函数原型文件V1.xx”目录。

各语言的函数原型和常数定义文件:

VC6:

TYLedDLL.h,TYLedDLL2.h(用于DLL显式加载)

VB6:

TYLedDLL.bas

VB2010(VB.Net):

TYLedDLL.vb

VC#2010:

LedDLL.cs

Delphi7:

TYLedDLL.pas。

A、在VisualC++6.0下的使用步骤

1、将TYLed.DLL拷入到执行文件目录或Windows系统目录或Windows目录;

2、将头文件TYLedDLL.h和TYLed.lib拷入工程目录;

3、在ProjectSettings\Link\Object|LibraryModule中增加TYled.lib项,在需要调用库函数的源代码文件前加入#include“TYLedDLL.h”

如果使用显示加载动态库,则不需要TYLed.lib。

头文件用TYLedDLL2.h。

B、其它开发语言

1、将TYLed.DLL拷入到执行文件目录或Windows系统目录或Windows目录;

注:

一些开发语言如VB6,在IDE下启动程序时,执行文件目录认为是VB6.exe目录。

2、将相应语言的函数原型文件拷入到开发工程的项目目录下。

并在IDE中,将相应的函数原型文件作为公共模块加入到工程中。

如对VB6,选择“工程”-“添加模块”-“现存”-选TYLedDLL.bas,即将TYLedDLL.bas加入到公共模块。

对C#,选择“项目”-“添加现有项”,将LedDLL.cs加入。

对Delphi7,要在主程序的uses下加单元名TYLedDLL。

请参见相关语言DLL测试示例源代码。

C、扩展库的使用

扩展库TYLed_Ex.dll支持Word和Excel文件的显示,但库文件较大,使用的系统资源比TYLed.dll多。

如果需要使用TYLed_Ex.dll,将TYLed_Ex.dll和TYLed_Ex.lib(仅VC使用)分别改名为TYLed.dll和TYLed.lib,再按上述步骤操作即可。

二、LED显示屏基本编程步骤

A、单页方式

单页方式操作简单,能适应大部分应用,只有一个窗口,每次发送一幅画面到LED屏。

1、根据显示屏的通信接口调用相应的连接函数建立与LED显示屏的连接。

建立连接后会获得一个连接号,以后使用该连接号控制LED屏的操作。

建立连接后DLL会在内存中自动创建一个与显示屏对应的内存映象画面。

2、在内存画面上设置字体、书写文字、画线等;

3、将画面内容作为即时信息传送到LED显示屏,LED屏显示画面内容;

4、重复以上2和3步骤或者关闭连接退出。

注:

长时间不用的连接,宜先关断。

详见DLL测试程序中“发送画面(内容1)”和“发送画面(内容2)”按键的响应程序。

B、多节目多窗口多文件方式

多节目多窗口方式适应比较复杂的显示场合。

有二种方法支持此方式:

1、先用“LED节目编辑程序”编辑好LED播放文件(.aled),之后使用以这个.aled文件为模板,进行播放窗及显示项目及内容的编辑,以对显示屏进行控制。

2、在内存中动态创建播放文件,然后添加节目、播放窗和显示项。

方法1最直观,功能最全面,且可模拟显示效果。

基本步骤如下:

1、根据LED屏的通信接口调用相应的连接函数建立与LED显示屏的连接,连接建立后会获得一个连接号,以后使用该连接号控制LED屏的操作。

2、载入外部*.aled播放文件,或在内存中创建新的空的播放文件。

3、进行节目、播放窗和显示项目的增、删和修改。

应用最多的是对LED播放文件中某节目下的文档窗下面的显示文件项进行相关操作,如改变显示文件的内容,使用内存画面更新显示项,将内存画面作为显示项目插入到文档窗,更新文本文件的内容等。

4、调用SendToLED函数将LED播放文件作为即时信息发送到LED显示屏,LED屏将插播接受到的播放文件。

5、重复以上3和4步骤或者关闭连接退出。

详见DLL测试程序中“发送LED播放文(载入文件)”和“发送LED播放文(动态创建)”按键的响应程序。

播放文件(*.aled)简述:

播放文件(*.aled)由“LED节目编辑”程序编辑产生,它有点像批处理文件或开发语言中的工程文件。

播放文件包含节目、窗口和显示项的位置及控制信息,例如窗口大小、位置,显示文件的路径、显示方式等等。

除内置文本外,播放文件本身不包含显示内容,显示内容在显示文件中。

三、动态库中使用的结构

动态库程序使用如下结构。

各成员变量即含义如下:

typedefstruct

{

intiID;//LED设备连接号。

32位数

intiWidth;//显示屏宽度(象素点)。

32位数

intiHeight;//显示屏宽度(象素点)。

32位数

BYTEcScrType;//1=双基色屏(4色);2=单色屏。

8位无符号数

BYTEcScrNo;//屏号(屏地址)。

8位无符号数

BYTEcCard;//LED型号和状态。

8位无符号数

BYTEcRev1;

DWORDdwRev1;//保留1:

32位无符号数

DWORDdwRev2;//保留2:

32位无符号数

}LEDDEV;

当与LED显示屏建立连接时,使用此结构存放连接号和LED设备参数。

typedefstructtagDATE_ST

{

WORDwYear;//年。

16位无符号数

BYTEcMonth;//月。

8位无符号数

BYTEcDay;//日。

8位无符号数

}DATE_ST;

此结构用于日期计数和倒计数窗的设置起点或终至日期。

四、动态库函数说明

以下均以C语言函数原型格式进行说明,其它语言参见相应的函数原型文件。

1、建立连接函数

在控制LED显示前,要先与LED屏建立连接。

根据所用的通信接口,调用相应的连接函数。

(1)网络通信连接函数

intConnectToLED_TCPIP(BYTE*pIP,WORDwPortNo,UINTiConnectTimeOut,UINTiRvTimeOut,LEDDEV*pDev);

pIP:

指向4字节的IP地址的指针。

4个字节内容是显示屏的IP地址。

wPortNo:

端口号。

16位无符号数。

iConnectTimeOut:

与LED屏建立连接时的超时等待时间,单位:

毫秒ms。

例如,当显示屏没加电时,连接将失败,这个值决定最长等待时间。

应根据网络情况来设置这个时间值。

在网络响应慢或者跨网段控制时,该值要适当加大。

iConnectTimeOut是32位无符号数。

iRvTimeOut:

数据包发出后,等待响应的时间(单位:

毫秒ms),超过该时间没收到响应认为出错。

局域网可设置小一点,网络忙或互连网要适当加大。

示例程序设置为3300ms。

iRvTimeOut是32位无符号数。

pDev:

指向LEDDEV结构的指针(地址),用来接受LED连接号和屏参数。

函数成功将返回ERR_OK(0),否则返回一个错误代码,代码详见附一。

LEDDEV是设备结构,包括连接号iID、LED屏宽度、高度和类型等信息。

以后对该显示屏的操作均要使用这个连接号iID。

参见TYLedDLL.h。

对已连接的显示屏(IP和端口号相同),再调用此函数,将关闭之前的连接,重建连接。

(2)串行通信连接函数

对RS232和RS485通信,以及模拟串行口的一些无线模块通信,使用下面的函数与LED屏建立连接。

intConnectToLED_RS232(BYTEcScrNo,DWORDiCOMSNo,DWORDdwBaudNo,LEDDEV*pDev);

cScrNo:

显示屏的编号,用于多屏识别用。

8位无符号数。

iCOMSNo:

串口设备序号,1=COM1,2=COM…。

32位无符号数。

dwBaudNo:

波特率号。

0=9600,1=19200,2=38400,3=57600,4=115200。

32位无符号整数。

pDev:

指向LEDDEV结构的指针(地址),用来接受LED连接号和屏参数。

函数成功将返回ERR_OK(0),否则返回一个错误代码,代码详见附一。

LEDDEV是设备结构,包括连接号iID、LED屏宽度、高度和类型等信息。

以后对该显示屏的操作均要使用这个连接号iID。

参见TYLedDLL.h。

一个COM端口一次只能与一块显示屏建立连接,当调用此函数时,会关闭使用此端口的任何连接,再重新建立与指定显示屏的连接。

提示:

LED显示屏的屏号、波特率及屏类型和大小在加电时会在屏右上角上显示。

这些配置参数可由“LED节目编辑”程序设置。

2、关闭连接函数

BOOLCloseLEDConnect(intiID)

关闭连接号iID指定的连接,释放Socket或串口资源及其它相关的资源。

iID:

连接号,建立连接时获得。

32位整数。

函数成功将返回TRUE

(1),否则返回一个FALSE(0)。

失败的原因通常是iID不对。

3、发送函数

(1)发送内存画面函数

intSendImageToLED(intiID,BYTEcInMode,BYTEcInSpeed,WORDwStay,BYTEcOutMode,BYTEcOutSpeed,BYTEcPlayCon,WORDwTimeOrLoops,BOOLbWaitSend)

将当前内存画面的内容作为即时信息发送到LED屏上显示。

iID:

连接号,建立连接时获得。

32位整数。

cInMode:

画面进入方式,8位字节。

进入方式代码见附二。

cInSpeed:

画面进入速度,8位字节。

0最慢,16中速,32最快。

wStay:

画面静止不动的时间,单位是0.1秒。

16位无符号数。

cOutMode:

画面退出方式,8位字节。

退出方式代码见附二。

cOutSpeed:

画面退出速度,8位字节。

0最慢,16中速,32最快。

注:

每个画面都由进入、静止显示和退出三个阶段组成一个显示周期(1轮)。

因为这里只有单页画面,因此将不断重复这个过程。

如果不希望画面动作,可将进入方式设为1(直接显示),退出方式设为1(保持)。

cPlayCon:

播放控制。

0=循环显示;1=定时,显示wTimeOrLoops秒后返回去播放FLASH内容;2=按轮次,当显示wTimeOrLoops轮后返回去播放FLASH内容。

wTimeOrLoops:

cPlayCon为1或2时有效。

表示定时时间(秒)或显示多少轮次。

bWaitSend:

是否等待发送结束。

为TRUE则等待发送完成;为FALSE则立即返回,发送过程在后台进行。

32位Boolean值。

函数成功将返回ERR_OK(0),否则返回一个错误代码,代码详见附一。

发送内容不多时采用等待发送以减少程序管理难度。

使用后台发送,主程序不用等待,但程序管理难度大些。

主程序可通过GetSendStatus()了解发送进度及是否完成。

(2)发送.aled播放文件

intSendToLED(intiID,BYTEcPlayCon,WORDwTimeOrLoops,BOOLbWaitSend)

将当前内存中的LED播放文件及其包含的显示内容作为即时信息发送到LED屏并显示。

调用此函数前要保证已载入.aled播放文件或创建了内存播放文件。

iID:

连接号,建立连接时获得。

32位整数。

cPlayCon:

播放控制。

0=循环显示;1=定时,显示wTimeOrLoops秒后返回去播放FLASH内容;2=按轮次,当显示wTimeOrLoops轮后返回去播放FLASH内容。

注:

播放文件的1轮指播放文件的所有节目全部播放完成1次。

wTimeOrLoops:

cPlayCon为1或2时有效。

表示定时时间(秒)或显示多少轮次。

bWaitSend:

是否等待发送结束。

为TRUE则等待发送完成,为FALSE则立即返回,发送过程在后台进行。

32位Boolean值。

函数成功将返回ERR_OK(0),否则返回一个错误代码,代码详见附一。

发送内容很多时可采用后台发送,主程序不用等待,发送时可以做其它的事,但程序管理难度大些。

主程序可通过GetSendStatus()了解发送进度及是否完成。

(3)发送.aled播放文件到FLASH

intSendToFLASH(intiID,BOOLbWaitSend)

将当前内存中的LED播放文件及其包含的显示内容发送到LED屏并显示。

该函数将播放文件保存到LED的FLASH存贮器中。

调用此函数前要保证已载入.aled播放文件或创建了播放文件。

FLASH是LED屏上用来保持永久内容的存贮器,断电不消失,容量大,但有写次数寿命限制,如果频繁写入不要使用些函数。

通常内容多,不经常改动的信息使用FLASH。

iID:

连接号,建立连接时获得。

32位整数。

bWaitSend:

是否等待发送结束。

为TRUE则等待发送完成,为FALSE则立即返回,发送过程在后台进行。

32位Boolean值。

函数成功将返回ERR_OK(0),否则返回一个错误代码,代码详见附一。

发送内容很多时可采用后台发送,主程序不用等待,发送时可以做其它的事,但程序管理难度大些。

主程序可通过GetSendStatus()了解发送进度及是否完成。

4、播放控制及状态

(1)返回到FLASH播放函数

intReturnToFlashPlay(intiID)

该函数使得LED显示屏退出即时信息播放,返回去播放固化在FLASH中的播放文件。

iID:

连接号,建立连接时获得。

32位整数。

函数成功将返回ERR_OK(0),否则返回一个错误代码,代码详见附一。

注:

正在后台发送期间不要调用此函数。

(2)获得发送状态函数

intGetSendStatus(intiID);

获得发送状态。

仅当发送时选择后台发送(bWaitSend=FALSE)时才用此函数。

iID:

连接号,建立连接时获得。

32位整数。

返回值:

100表示发送成功完成;小于100表示正在发送的进度值(%);大于100表示出错,错误代码=(返回值-100)。

错误代码详见附一。

(3)停止发送函数

intStopSend(intiID);

停止在后台进行的发送。

仅当发送时选择后台发送(bWaitSend=FALSE)时才可用此函数。

iID:

连接号,建立连接时获得。

32位整数。

函数成功将返回ERR_OK(0),否则返回一个错误代码,代码详见附一。

5、内存画面操作函数

当与LED屏建立连接后,DLL会自动在电脑中创建与LED显示屏象素大小相同的内存映象画面。

可在画面上写文字、画线等,并可使用画面内容更新播放文件中的显示项。

(1)清画面内容

BOOLImage_Clear(intiID);

将画面内容擦掉。

重新写内容时,通常需要先清画面。

iID:

连接号,建立连接时获得。

32位整数。

函数成功返回TRUE

(1),失败返回FALSE(0)。

(2)设置内存画面字体

BOOLImage_SetFont(intiID,LPCSTRszFontName,intiCharWidth,intiCharHeight,BOOLbBold,BOOLbItalic)

设置画面写入文字时的字体。

字体设置后,之后的文字写入就使用该字体

iID:

连接号,建立连接时获得。

32位整数。

szFontName:

字体名称,如“宋体”等。

以0结尾的串。

iCharWidth:

英文字符宽(象素点),汉字宽度为英文字符的2倍。

32位整数。

iCharHeight:

字符高度(象素点),32位整数。

bBold:

为TRUE时文字加粗。

32位Boolean值。

bItalic:

为TRUE时文字倾斜。

32位Boolean值。

函数成功返回TRUE

(1),失败返回FALSE(0)。

Unicode版本程序调用:

BOOLImage_SetFontW()函数。

(3)在内存画面上写单行文字

BOOLImage_WriteText(intiID,LPCSTRszText,intiX,intiY,COLORREFiColorNo,intiCharSpacing,BOOLbTransparent,BOOLbRightToLeft)

在画面上写文字,此函数只支持单行文字的写入。

iID:

连接号,建立连接时获得。

32位整数。

szText:

要显示的文字串(单行)。

以0结尾的字符串,串长不要大于1024个字。

iX:

文字的写入起点x坐标。

32位整数。

iY:

文字的写入起点y坐标。

32位整数。

iColor:

文字的颜色。

常数RED,GREEN,YELLOW代表红、绿、黄。

32位整数。

iCharSpacing:

字符间距,单位:

象素点,可为负值。

32位整数。

bTransparent:

为TRUE透明写,为FALSE则覆盖。

32位Boolean值。

bRightToLeft:

为TRUE从右到左书写(中东风格)。

32位Boolean值。

函数成功返回TRUE

(1),失败返回FALSE(0)。

Unicode版本程序调用:

BOOLImage_WriteTextW()函数。

串长无限制。

(4)在内存画面上画线

BOOLImage_DrawLine(intiID,intiStartX,intiStartY,intiEndX,intiEndY,COLORREFiColor,BOOLbDashed);

iID:

连接号,建立连接时获得。

32位整数。

iStartX:

线的起点x坐标。

32位整数。

iStartY:

线的起点y坐标。

32位整数。

iEndX:

线的终点x坐标(不包括该点)。

32位整数。

iEndY:

线的终点y坐标(不包括该点)。

32位整数。

iColor:

线的颜色。

常数RED,GREEN,YELLOW代表红、绿、黄。

32位整数。

bDashed:

为TRUE虚线,否则是实线。

32位Boolean值。

函数成功返回TRUE

(1),失败返回FALSE(0)。

(5)在内存画面上画矩形框

BOOLImage_DrawRect(intiID,intiLeft,intiTop,intiRight,intiBottom,COLORREFiColor,BOOLbDashed)

iID:

连接号,建立连接时获得。

32位整数。

iLeft:

矩形的左上角x坐标。

32位整数。

iTop:

矩形的左上角y坐标。

32位整数。

iRight:

矩形的右下角x坐标(不包括该点)。

32位整数。

iBottom:

矩形的右下角y坐标(不包括该点)。

32位整数。

iColor:

线的颜色。

常数RED,GREEN,YELLOW代表红、绿、黄。

32位整数。

bDashed:

为TRUE虚线,否则是实线。

32位Boolean值。

函数成功返回TRUE

(1),失败返回FALSE(0)。

(6)在内存画面上显示图形文件

BOOLImage_DrawPicFile(intiID,LPCSTRszPicFile,intiX,intiY,BYTEcRGBMin)

将图形文件画在画面上(x,y)位置。

图象尺寸大于画面时,取左上角部分。

iID:

连接号,建立连接时获得。

32位整数。

szPicFile:

图形文件名,以0结尾的串。

支持BMP,GIF,JPG,PNG,ICO,PCX等几十种文件。

iX:

图形文件显示在画面上的起点x坐标。

32位整数。

iY:

图形文件显示在画面上的起点y坐标。

32位整数。

cRGBMin:

图象RGB过滤值,RGB大于些值才显示。

32位整数。

函数成功返回TRUE

(1),失败返回FALSE(0)。

Unicode版本程序调用:

BOOLImage_DrawPicFileW()函数。

(7)在内存画面上显示内存图形文件

BOOLImage_DrawMemPicFile(intiID,BYTE*pMemPicFile,UINTiFileSize,intiPicType,intiX,intiY,BYTEcRGBMin);

将图形文件画在画面上。

图象大于画面时,取左上角部分。

iID:

连接号,建立连接时获得。

32位整数。

pMemPicFile:

内存文件地址。

iFileSize:

内存文件长度。

32位无符号数。

iPicType:

图形文件类型。

1=BMP,2=GIF,3=JPG,4=PNG,5=ICO,6=TIF,7=TGA,8=PCX。

iX:

图形文件显示在画面上的起点x坐标。

32位整数。

iY:

图形文件显示在画面上的起点y坐标。

32位整数。

cRGBMin:

图象RGB过滤值,RGB大于些值才显示。

32位整数。

函数成功返回TRUE

(1),失败返回FALSE(0)。

(8)将内存画面保存为位图文件

BOOLImage_SaveAsBitmapFile(intiID,LPCSTRszBitmapFileName);

iID:

连接号,建立连接时获得。

32位整数。

szBitmapFileName:

要保存的位图文件名。

以0结尾的字符串。

函数成功返回TRUE

(1),失败返回FALSE(0)。

Unicode版本程序调用:

BOOLImage_SaveAsBitmapFileW()函数。

(9)将画面内容显示在MS-Window上

BOOLImage_DrawOnWindow(intiID,HWNDhWnd);

此函数将画面显示在电脑窗口上,可用于模拟或监控。

iID:

连接号,建立连接时获得。

32位整数。

hWnd:

MS-Window窗口句柄。

32位。

函数成功返回TRUE

(1),失败返回FALSE(0)。

6、LED播放文件操作函数

以下所有函数均没有对磁盘文件进行写入操作,因此不会改变磁盘文件的内容。

1个LED播放文件由1个或多个节目组成,1个节目由1个或多个播放窗组成,播放窗有多种类型,其中的文件窗用来显示文件或页面,1个文件窗可包含1个或多个显示项目(可以是文件,内置文本或页面)。

(1)载入LED播放文件

intLoadPlayFile(intiID,LPCSTRszPlayFile);

将磁盘上的LED播放文件(*.aled)载入到内存中。

之前载入或创建的播放文件资源释放。

iID:

连接号,建立连接时获得。

32位整数。

szPlayFile:

LED播放文件名(*.aled)。

以0结尾的字符串。

函数成功将返回ERR_OK(0),否则返回一个错误代码,代码详见附一。

Unicode版本程序调用:

BOOLLoadPlayFileW()函数。

(2)新建LED播放文件

intCreateNewPlayFile(intiID)

在内存中新

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 职高对口

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1