网站首页  词典首页

请输入您要查询的论文:

 

标题 LED点阵屏定时自动发布字幕初探
范文

    刘德军

    摘要:LED点阵屏通过LED(发光二极管)组成,以灯珠亮灭来显示文字、图片、动画、视频。LED点阵显示屏有制作简单,安装方便的优点,被广泛应用于各种公共场合。如何实现定时自动发布动态更新的信息是本文重点探讨的内容。

    关键词:LED点阵屏;定时;发布;自动

    中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)36-0241-02

    我院在门诊一块单色LED屏,专用于门诊专家排班发布,考虑到手工处理每天不同排班信息较为繁琐,故考虑通过程序控制来实现了LED点阵屏定时自动发布字幕功能。

    1 需求

    该功能的需求如下:① 从数据库中获取每日专家排班信息;② 只发布当天的专家排班信息;③ 发生排班调整,可手工更新;④ 能自动定时发布。

    2 方法

    用C#通过调用开发包中封装的DLL文件,并读取数据库中排班信息,向屏幕区域添加,并完成发送,具体流如下图示:

    

    3 详细步骤

    3.1 建立C#应用程序

    建立界面如图1,控件参数见下表。

    3.2 编写代码

    //常用命名空间略

    using System.Runtime.InteropServices;

    using System.Data.OleDb;

    namespace WindowsFormsApplication1

    {public partial class Form1 : Form

    {//常数定义(略)

    //调用动态库(略)

    public Form1()

    {InitializeComponent();}

    private void Form1_Load(object sender, EventArgs e)

    { timer1.Enabled = true; }

    //获取挂号排班信息(GetGH_info代码略)

    //获取当前屏号、动态区域

    private void GetcurGrpCaption()

    { RichTextBox1.Text = FAddDynamicArea + "(屏号:" + spnedt_PNo + ")";

    RichTextBox1.Text = FAddDYAreaFile + "(屏号:" + spnedt_PNo + ";动态区域编号:" + spnedt_DYAreaID + ")\r\n";}

    //初始化动态库InitializeDLL()代码略

    private void AddScreen()//添加显示屏

    { nResult = AddScreen_Dynamic(nControlType, spnedt_PNo, nSendMode,spnedt_Width, spnedt_Height, nScreenType, cbb_Pixel, cbb_Comm, cbb_Baud,edt_StaticIP_IP, spnedt_StaticIP_Port, nServerMode, Barcode, NetworkID, edt_ServerIP, edt_ServerPort,edt_User, edt_Password , edt_SaveFile);

    GetErrorMessage("执行添加显示屏,", nResult);}

    //释放动态库Exp_DLL代码略

    private void AddScreenDynamicArea()//添加屏幕动态区域

    { //添加专家排班信息区域

    nResult = AddScreenDynamicArea(spnedt_PNo, spnedt_DYAreaID, nRunMode, spnedt_TimeOut, nAllProRelate, szProRelateList, nPlayPriority, spnedt_DYAreaX, 30, spnedt_DYAreaW, 66, nAreaFMode, nAreaFLine, spnedt_DYAreaFSingleColor, cbb_DYAreaFStunt, spnedt_DYAreaFRunSpeed, spnedt_DYAreaFMoveStep);

    GetErrorMessage("执行添加屏幕动态区域0,", nResult);}

    private void AddTxttoDynamicArea()//添加文本到当前动态区域

    { nResult = 0;

    int nSingleLine=0;

    string textContent = ShowMessage;

    //添加专家信息

    nResult = AddScreenDynamicAreaText(spnedt_PNo, spnedt_DYAreaID,textContent, nSingleLine, "黑体", 20, 0, 65535, 1,spnedt_DYAreaRunSpeed, spnedt_DYAreaShowTime+10);

    GetErrorMessage("执行添加文本到当前动态区域0, ", nResult);

    RichTextBox1.Text = RichTextBox1.Text + textContent + "\r\n";}

    

    private void SendDynamicAreaText()//發送信息到动态区域。

    { int nResult;

    nResult = SendDynamicAreaInfoCommand(spnedt_PNo, spnedt_DYAreaID);

    GetErrorMessage("执行发送信息0, ", nResult);}

    private void button1_Click(object sender, EventArgs e)

    {

    InitializeDLL();

    AddScreen();

    AddScreenDynamicArea();

    GetGH_info();

    AddTxttoDynamicArea();

    SendDynamicAreaText();

    Exp_DLL();

    Application.ExitThread();//执行结束后退出程序}}}

    3.3 生成可执行文件

    在C#编译生成名称为“门诊LED屏信息发布.exe”的可执行文件,该文件位于当前工程目录下“日志清除工具\bin\Debug\”,注意需与引用的DLL位于同一目录下,在“任务计划”中添加任务计划,定时执行即可。

    4 体会与说明

    实现LED点阵屏定时自动发布字幕的体会如下:1)在程序执行完成后,需由定时器触发程序自时关闭;2)除Button1外的多出的几个按钮用于按顺序测试;3)发生排班调整时,只需手动运行一次即可;4)本例所用的DLL为仰邦BX5二次开发包;5)DLL内置函数详见开发包说明。提供的此功能在Windows XP SP3 + Microsoft Visual Studio 2010及屏参设置正常的环境下调试通过。

    参考文献:

    [1] 宋智军,邱仲潘.Visual C#2010从入门到精通,电子工业出版社,2011.

    [2] Christian Nagel,Bill Evjen.李铭译,黄静审校[M]. 8版.C#高级编程,2013(10).

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/10 22:41:47