论文部分内容阅读
摘要: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).
关键词: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).