无线通道仿真软件源程序.docx
- 文档编号:10176378
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:63
- 大小:28.95KB
无线通道仿真软件源程序.docx
《无线通道仿真软件源程序.docx》由会员分享,可在线阅读,更多相关《无线通道仿真软件源程序.docx(63页珍藏版)》请在冰豆网上搜索。
无线通道仿真软件源程序
高速磁悬浮无线通道仿真软件源程序
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Net;
usingSystem.Net.Sockets;
usingSystem.Threading;
usingSystem.Collections;
usingSystem.Xml;
usingSystem.IO;
usingSystem.Runtime.InteropServices;
namespaceWirelessInterface
{
publicpartialclassMainForm:
Form
{
//用于画线路图的画笔
privateGraphicsg;
privatePenmypen=newPen(Color.Green,5);
privatePenmypen1=newPen(Color.Red,5);
privateBrushmybrush=newSolidBrush(Color.Black);
//用于建立TCP/IP连接
privateIPAddressWirelessIP;
privateintWirelessPort;
privateIPEndPointWirelessServer;
privateSocketWirelessSock;
privateSocketWirelessSocket;
privateIPAddressSimuIP;
privateintSimuPort;
privateIPEndPointSimuServer;
privateSocketSimuSock;
privateIPAddressDRCUIP1;
privateIPAddressDRCUIP2;
privateIPAddressMRCUIP1;
privateIPAddressMRCUIP2;
privateList
//程序运行中所用线程
privateThreadWirelessThread;
privateThreadAcceptThread;
privateThreadSimuThread;
//用于绘制线路图
privateint[]BSLoc=newint[47];//基站公里标
privatePoint[]BSPoint=newPoint[47];//基站坐标
privatestring[]BSName=newstring[47]{"1A1","1B1","1A2","1B2","2B1","2A1","2B2","2A2","2B3","2A3","2B4","2A4",
"2B5","2A5","2B6","2A6","2B7","2A7","2B8","2A8","2B9","2A9","2B10","2A10",
"2B11","2A11","2B12","2A12","2B13","2A13","2B14","2A14","2B15","2A15","2B16",
"2A16","2B17","2A17","2B18","2A18","2B19","2A19","2B20","2A20","2B21","2A21","2B22"};//基站名
staticprivateintDistance=0;//水平滚动条当前值
staticprivateinttrainLoc=0;//列车当前位置
privatePointtrainPoint=newPoint(0,220);//列车当前坐标
//标识位
privateboolTimeFlag=false;//用于标识时间同步与否
privateboolBSInitFlag=false;//用于标识基站初始化与否
privatebool[]WirelessFlag=newbool[4]{false,false,false,false};//用于标识MRCU和DRCU当前通信状态
//发送至仿真管理计算机的报文
staticprivateintSerialNum=0;//用于标识报文序列号
privatebyte[]SimuMessage=newbyte[26]{0x02,0x08,0x00,0x0D,0x00,0x00,0x00,0x00,0xD0,0x02,0x0B,0x00,0x00,
0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD0,0x02};//状态报文
privatebyte[]SimuRespond=newbyte[5]{0x02,0x00,0x06,0x73,0xff};//命令应答报文
privatebyte[]TimeRespond=newbyte[2]{0x66,0x66};//时间同步应答报文
//用于ListView显示
staticprivateintNum1=0;
staticprivateintNum2=0;
privateErrorStatEState=newErrorStat();
privateFileWRfileWR=newFileWR();
privateByteProcessbytePro=newByteProcess();
publicMainForm()
{
InitializeComponent();
}
privatevoidForm1_Load(objectsender,EventArgse)
{
//界面第一次打开时,5盏信号灯全红
pictureBox1.Image=imageList1.Images[1];
pictureBox3.Image=imageList1.Images[1];
pictureBox5.Image=imageList1.Images[1];
pictureBox15.Image=imageList1.Images[1];
pictureBox17.Image=imageList1.Images[1];
//实例化装载4个TCP/IP连接的List
SocketList.Add(newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp));
SocketList.Add(newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp));
SocketList.Add(newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp));
SocketList.Add(newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp));
Control.CheckForIllegalCrossThreadCalls=false;
}
privatevoidtoolStripMenuItem1_Click(objectsender,EventArgse)
{
Microsoft.Win32.SystemEvents.TimeChanged+=newEventHandler(SystemEvents_TimeChanged);
//加载配置信息
XmlDocumentdoc=newXmlDocument();
doc.Load("无线通道初始化配置文件.xml");
XmlNoderoot=doc.DocumentElement;
XmlNodetempNode;
tempNode=root.SelectSingleNode("通信接口信息/仿真管理计算机以太网配置/IP");
SimuIP=IPAddress.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("通信接口信息/仿真管理计算机以太网配置/port");
SimuPort=Int32.Parse(tempNode.InnerText);
//与仿真管理计算机TCP/IP连接初始化
try
{
SimuServer=newIPEndPoint(SimuIP,SimuPort);
SimuSock=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
SimuSock.Connect(SimuServer);
//开始周期的向仿真管理计算机发送报文
if(SimuSock.Connected)
{
SimuThread=newThread(newThreadStart(SimuRecv));
SimuThread.Start();
pictureBox17.Image=imageList1.Images[0];
SimuThread.IsBackground=true;
}
}
catch
{
MessageBox.Show("仿真管理计算机以太网参数设置故障");
}
}
privatevoid无线通道初始化ToolStripMenuItem_Click(objectsender,EventArgse)
{
WirelessInitdialog1=newWirelessInit();
dialog1.Owner=this;
dialog1.ShowDialog();
if(dialog1.DialogResult==DialogResult.OK)
{
//加载配置信息
XmlDocumentdoc=newXmlDocument();
doc.Load("无线通道初始化配置文件.xml");
XmlNoderoot=doc.DocumentElement;
XmlNodetempNode;
tempNode=root.SelectSingleNode("通信接口信息/无线通道以太网配置/IP");
WirelessIP=IPAddress.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("通信接口信息/无线通道以太网配置/port");
WirelessPort=Int32.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("通信接口信息/DRCU1以太网配置/IP");
DRCUIP1=IPAddress.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("通信接口信息/DRCU2以太网配置/IP");
DRCUIP2=IPAddress.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("通信接口信息/MRCU1以太网配置/IP");
MRCUIP1=IPAddress.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("通信接口信息/MRCU2以太网配置/IP");
MRCUIP2=IPAddress.Parse(tempNode.InnerText);
//创建TCP/IP连接
WirelessServer=newIPEndPoint(WirelessIP,WirelessPort);
WirelessSock=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
WirelessSock.Bind(WirelessServer);
WirelessSock.Listen(10);
AcceptThread=newThread(newThreadStart(SockAccept));
AcceptThread.Start();
AcceptThread.IsBackground=true;
无线通道初始化ToolStripMenuItem.Enabled=false;
基站模拟初始化ToolStripMenuItem.Enabled=true;
故障注入ToolStripMenuItem.Enabled=true;
MsgShowing("无线通道初始化成功");
}
}
privatevoid基站模拟初始化ToolStripMenuItem_Click(objectsender,EventArgse)
{
BSInitdialog2=newBSInit();
dialog2.Owner=this;
dialog2.ShowDialog();
if(dialog2.DialogResult==DialogResult.OK)
{
//加载配置信息
XmlDocumentdoc=newXmlDocument();
doc.Load("无线通道初始化配置文件.xml");
XmlNoderoot=doc.DocumentElement;
XmlNodetempNode;
tempNode=root.SelectSingleNode("基站位置信息/一分区基站位置/A1");
BSLoc[0]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/一分区基站位置/B1");
BSLoc[1]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/一分区基站位置/A2");
BSLoc[2]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/一分区基站位置/B2");
BSLoc[3]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/B1");
BSLoc[4]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/A1");
BSLoc[5]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/B2");
BSLoc[6]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/A2");
BSLoc[7]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/B3");
BSLoc[8]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/A3");
BSLoc[9]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/B4");
BSLoc[10]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/A4");
BSLoc[11]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/B5");
BSLoc[12]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/A5");
BSLoc[13]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/B6");
BSLoc[14]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/A6");
BSLoc[15]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/B7");
BSLoc[16]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/A7");
BSLoc[17]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/B8");
BSLoc[18]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/A8");
BSLoc[19]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/B9");
BSLoc[20]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/A9");
BSLoc[21]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/B10");
BSLoc[22]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/A10");
BSLoc[23]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/B11");
BSLoc[24]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/A11");
BSLoc[25]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/B12");
BSLoc[26]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/A12");
BSLoc[27]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/B13");
BSLoc[28]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/A13");
BSLoc[29]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/B14");
BSLoc[30]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/A14");
BSLoc[31]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/B15");
BSLoc[32]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/A15");
BSLoc[33]=int.Parse(tempNode.InnerText);
tempNode=root.SelectSingleNode("基站位置信息/二分区基站位置/B16");
BSLoc[34]=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 无线 通道 仿真 软件 源程序