大理苍山电视转播台1KWCMMB电视发射机监控系统
【摘 要】 MS Visual C#是微软公司针对.NET产品的开发工具,但其在Windows桌面程序的开发上也不逊色于Visual Basic和Borland Delphi,较之于Visual C++更是提供了丰富的控件。基于本程序是一个小型的Windows运用程序,因此我们决定采用MS Visual C# 2008来编写,也是使用MS Visual C# 2008编写Windows运用程序的一种尝试。
【关键词】 MS Visual C# 2008 FOM1与FOM2数据通信
数字移动电视节目作为大理苍山电视转播台的增值业务引入我台,为保障节目的正常播出和播出设备的正常运行,需对播出设备实施计算机远程监测和控制。为此,我们开发了针对我台的凯腾1KW CMMB电视发射机的计算机远程控制系统。
1 系统原理
1.1 系统硬件(见图)
系统结构图
本系统中,监测、控制计算机采用兼容的商用计算机,其RS232口转换为RS485后与发射机的主控单元的RS485接口连接,监测、控制计算机以C/S方式接入网络。
1.2 系统软件
本系统程序运行环境为Windows XP Professional或Windows7旗舰版,程序是使用MS Visual C#2008编写 Windows 桌面程序。
MS Visual C#是微软公司针对.NET产品的开发工具,但其在Windows桌面程序的开发上也不逊色于Visual Basic和Borland Delphi,较之于Visual C++更是提供了丰富的控件。基于本程序是一个小型的Windows运用程序,因此我们决定采用MS Visual C# 2008来编写,也是使用MS Visual C# 2008编写Windows运用程序的一种尝试。
程序编写采用多窗口结构(见图):主窗口;激励器窗口;电源模块窗口;功率模块窗口。
程序主要模块:
Form1.cs:主窗口C#程序,其主要功能:实时采集发射机数据并处理;发射机各模块数据保存到对应的类中;根据数据处理结果对故障信息发出声音和故障灯报警提示并对故障事件写入数据库;接收用户开机操作命令完成对发射机开机操作,并将操作事件写入数据库;接收用户关机操作命令完成对发射机关机操作,并将操作事件写入数据库;实时查询数据库中记录的故障事件和操作时件。
Form2.cs:激励器窗口C#程序,其主要功能:实时读起选中激励器类中的数据并显示其工作状态和工作参数;
Form3.cs:电源模块窗口C#程序,其主要功能:实时读起选中电源类中的数据并显示其工作状态和工作参数;
Form4.cs:功率模块窗口C#程序,其主要功能:实时读起选中功率模
块类中的数据并显示其工作状态和工作参数;
Class1.cs:自定义类,包含:
SerialPort :串口接收类;
ProcReceiveData :接收数据处理类;
Energizing :激励器类;
PowerSupply:电源类;
Power:功率模块类;
电源模块类见代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ClassLibrary1
{
#region 串口接收
public class PowerSupply
{
private int state;
private int[] V = new int[5];
private int[] I = new int[5];
public PowerSupply()
{
}
public int State
{
get { return state; }
set { state = value; }
}
public int GetVoltage(int index)
{ return V[index]; }
public void SetVoltage(int v, int index)
{ V[index] = v; }
public int GetCurrent(int index)
{ return I[index]; }
public void SetCurrent(int i, int index)
{ I[index] = i; }
}
}
)
在C#中,提供了委托通信的方法实现窗口间的数据通信以保证数据的安全性,如Form1与Form2间的数据通信(见代码):
Form1.cs代码:
private void label10_Click(object sender, EventArgs e)
{
if (label49.Text == "")
energizingEntryPoint = 1;
else
energizingEntryPoint = 2;
Form2 fm2 = new Form2();
fm2.gd = new Form2.getDate(Energizing);
fm2.ShowDialog();
}
Form2.cs代码
public delegate int getDate(int mode);
public getDate gd;
private void Form2_Load(object sender, EventArgs e)
{
if (gd != null)
{
if ( gd(1)== 1)
{
groupBox1.Text = "主激励器工作状态";
groupBox2.Text = "主激励器工作数据";
}
if (gd(1) == 2)
{
groupBox1.Text = "备激励器工作状态";
groupBox2.Text = "备激励器工作数据";
}
}
}
2 结语
Visual C#作为微软公司针对.NET产品的开发工具,在我们用来开发基于Windows 的应用程序其易用性不逊色于其它编程语言。
参考文献
[1](美)Matthew MacDonald.ASP.NET 3.5从入门到精通(C#2008版).清华大学出版社,MSDN微软公司.
下一篇:论如何构建煤矿安全生产监控技术