葫芦岛

using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Net.NetworkInformation;
using System.Net.Sockets;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using UserDataProtocol;

namespace FBGroundControl.Forms
{
    public partial class HLDReception : Form
    {
        public HLDReception()
        {
            InitializeComponent();
            LoadIPv4Addresses();//刷新IP列表
            Lhldjs = new List<jylink_huludao_JS>();
        }

        private void HLDReception_FormClosing(object sender, FormClosingEventArgs e)
        {
            timer1.Stop();//关闭数据刷新
            if (udpReceiver != null)
                udpReceiver.StopListening();//关闭数据监听
        }
        #region 监听逻辑
        private UdpMulticastReceiver udpReceiver;
        private List<jylink_huludao_JS> Lhldjs;
        //获取本机的所有IPv4地址并将它们填充到下拉控件中
        private void LoadIPv4Addresses()
        {
            var ipAddresses = GetLocalIPv4Addresses();
            comboBoxIP.Items.AddRange(ipAddresses);
        }

        private string[] GetLocalIPv4Addresses()
        {
            return NetworkInterface.GetAllNetworkInterfaces()
                                   .SelectMany(ni => ni.GetIPProperties().UnicastAddresses)
                                   .Where(ua => ua.Address.AddressFamily == AddressFamily.InterNetwork)
                                   .Select(ua => ua.Address.ToString())
                                   .ToArray();
        }

        private void btn_Startlistening_Click(object sender, EventArgs e)
        {
            string IP = comboBoxIP.Text;
            string MIp = tbx_zbIP.Text;
            string port = tbx_port.Text;
            int portNumber = 0;
            if (!IsValidIp(IP)) { return; }
            if (!IsValidIp(MIp)) { return; }
            if (!int.TryParse(port, out portNumber))
            {
                tbx_port.BackColor = Color.Red;
                return;
            }
            else
            {
                tbx_port.BackColor = Color.White;
            }
            udpReceiver = new UdpMulticastReceiver(IP, MIp, portNumber);
            udpReceiver.StartListening();
        }

        public bool IsValidIp(string ip)
        {
            return IPAddress.TryParse(ip, out _);
        }

        private void btn_Turnofflistening_Click(object sender, EventArgs e)
        {
            if (udpReceiver != null)
                udpReceiver.StopListening();
        }

        int oldvalue = 0;
        byte[] idsum;
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (udpReceiver.TryDequeueData(out byte[] data))
            {
                byte[] parsedData = udpReceiver.ParseData(data, 23); // 假设固定长度为23
                jylink_huludao_JS hldjs = (jylink_huludao_JS)ByteToStruct(parsedData, typeof(jylink_huludao_JS));
                if (!MainForm.instance.Table_id.Contains(hldjs.bid))//判断是否为本地站组内靶机编号
                {
                    return;
                }
                if (Lhldjs.FindAll(s => s.bid == hldjs.bid).Count > 0)
                {
                    jylink_huludao_JS nhldjs = new jylink_huludao_JS();
                    nhldjs.xinyuan = hldjs.xinyuan;
                    nhldjs.xinsu = hldjs.xinsu;
                    nhldjs.m_type = hldjs.m_type;
                    nhldjs.mid = hldjs.mid;
                    nhldjs.time = hldjs.time;
                    nhldjs.dec_state = hldjs.dec_state;
                    nhldjs.bid = hldjs.bid;
                    nhldjs.times = hldjs.times;
                    nhldjs.flight_mode1 = hldjs.flight_mode1;
                    nhldjs.flight_mode2 = hldjs.flight_mode2;
                    nhldjs.flight_mode3 = hldjs.flight_mode3;
                    nhldjs.flight_mode4 = hldjs.flight_mode4;
                    nhldjs.kz_type = hldjs.kz_type;
                    Lhldjs.Add(nhldjs);
                }
                else
                {
                    jylink_huludao_JS ohldjs = Lhldjs.Find(s => s.bid == hldjs.bid);
                    ohldjs.xinyuan = hldjs.xinyuan;
                    ohldjs.xinsu = hldjs.xinsu;
                    ohldjs.m_type = hldjs.m_type;
                    ohldjs.mid = hldjs.mid;
                    ohldjs.time = hldjs.time;
                    ohldjs.dec_state = hldjs.dec_state;
                    ohldjs.bid = hldjs.bid;
                    ohldjs.times = hldjs.times;
                    ohldjs.flight_mode1 = hldjs.flight_mode1;
                    ohldjs.flight_mode2 = hldjs.flight_mode2;
                    ohldjs.flight_mode3 = hldjs.flight_mode3;
                    ohldjs.flight_mode4 = hldjs.flight_mode4;
                    ohldjs.kz_type = hldjs.kz_type;
                }
            }

            if (Lhldjs.Count == 0)
            {
                return;
            }

            if (this.IsHandleCreated && !IsDisposed)
                BeginInvoke(new Action(delegate
                {
                    idsum = new byte[Lhldjs.Count];
                    if (Lhldjs.Count != oldvalue)
                    {
                        this.dataGridView1.Rows.Clear();
                        this.dataGridView1.Rows.Add(Lhldjs.Count);
                    }
                    int ii = 0;
                    foreach (var JY in Lhldjs)
                    {
                        idsum[ii] = JY.bid;
                        ii++;
                    }
                    Array.Sort(idsum);
                    oldvalue = Lhldjs.Count;
                    for (int i = 0; i < idsum.Length; i++)
                    {
                        dataGridView1.Rows[i].Cells[zdbh.Index].Value = idsum[i].ToString();//战斗编号
                        foreach (var JY in Lhldjs)
                        {
                            if (idsum[i] == JY.bid)
                            {
                                dataGridView1.Rows[i].Cells[xy.Index].Value = JY.xinyuan.ToString();//信源
                                dataGridView1.Rows[i].Cells[xs.Index].Value = JY.xinsu.ToString();//信宿
                                dataGridView1.Rows[i].Cells[xxlb.Index].Value = JY.m_type.ToString();//信息类别
                                dataGridView1.Rows[i].Cells[mbbh.Index].Value = JY.mid.ToString();//目标编号
                                dataGridView1.Rows[i].Cells[bjsj.Index].Value = BJSystemTime(JY.time);//北京时间
                                string eqstatus = "";
                                if (GetBitAtPosition(JY.dec_state, 0) == 1) { eqstatus += "上行锁定"; } else { eqstatus += "上行失锁"; }
                                if (GetBitAtPosition(JY.dec_state, 1) == 1) { eqstatus += " 下行锁定"; } else { eqstatus += " 下行失锁"; }
                                dataGridView1.Rows[i].Cells[zbzt.Index].Value = JY.dec_state.ToString();//装备状态
                                dataGridView1.Rows[i].Cells[zdsj.Index].Value = ZDSystemTime(JY.times);//战斗时间
                                dataGridView1.Rows[i].Cells[sdtj.Index].Value = JY.flight_mode1.ToString();//速度调节 
                                dataGridView1.Rows[i].Cells[hxtj.Index].Value = JY.flight_mode2.ToString();//航向调节
                                dataGridView1.Rows[i].Cells[cpjtj.Index].Value = JY.flight_mode3.ToString();//侧偏距调节
                                dataGridView1.Rows[i].Cells[gdtj.Index].Value = JY.flight_mode4.ToString();//高度调节指令
                                if (JY.kz_type == 1) { dataGridView1.Rows[i].Cells[kzzs.Index].Value = "速度控制"; }//控制指示标志字
                                else if (JY.kz_type == 2) { dataGridView1.Rows[i].Cells[kzzs.Index].Value = "航向控制"; }
                                else if (JY.kz_type == 3) { dataGridView1.Rows[i].Cells[kzzs.Index].Value = "测偏控制"; }
                                else if (JY.kz_type == 4) { dataGridView1.Rows[i].Cells[kzzs.Index].Value = "高度控制"; }
                            }
                        }
                    }
                }));
        }
        //北京时间解析
        public string BJSystemTime(uint timestamp)
        {
            // 将时间戳转换为毫秒数
            long totalMilliseconds = timestamp / 10;

            // 将毫秒数转换为秒数
            long totalSeconds = totalMilliseconds / 1000;

            // 计算小时
            int hours = (int)(totalSeconds / 3600);
            totalSeconds %= 3600;

            // 计算分钟
            int minutes = (int)(totalSeconds / 60);

            // 剩下的就是秒数
            int seconds = (int)(totalSeconds % 60);

            return $"{hours:D2}:{minutes:D2}:{seconds:D2}";//UTC Time: 
        }
        //战斗时间解析
        public string ZDSystemTime(uint timestamp)
        {
            // 将时间戳转换为毫秒数
            long totalMilliseconds = timestamp;

            // 将毫秒数转换为秒数
            long totalSeconds = totalMilliseconds / 1000;

            // 计算小时
            int hours = (int)(totalSeconds / 3600);
            totalSeconds %= 3600;

            // 计算分钟
            int minutes = (int)(totalSeconds / 60);

            // 剩下的就是秒数
            int seconds = (int)(totalSeconds % 60);

            return $"{hours:D2}:{minutes:D2}:{seconds:D2}";//UTC Time: 
        }
        //byte转数据
        public object ByteToStruct(byte[] bytes, Type type)
        {
            int size = Marshal.SizeOf(type);
            if (size > bytes.Length)
            {
                return null;
            }
            //分配结构体内存空间
            IntPtr structPtr = Marshal.AllocHGlobal(size);
            //将byte数组拷贝到分配好的内存空间
            Marshal.Copy(bytes, 0, structPtr, size);
            //将内存空间转换为目标结构体
            object obj = Marshal.PtrToStructure(structPtr, type);
            //释放内存空间
            Marshal.FreeHGlobal(structPtr);
            return obj;
        }
        //获取byte中的bit
        private int GetBitAtPosition(byte value, int position)
        {
            // 检查位置是否在有效范围内(0-7)
            if (position < 0 || position > 7)
            {
                throw new ArgumentOutOfRangeException(nameof(position), "位置必须在0到7之间");
            }
            // 获取指定位置的bit,使用位运算
            return (value >> position) & 1;
        }
        #endregion

        #region 数据接收处理类

        [StructLayout(LayoutKind.Sequential, Pack = 1, Size = 23)]
        public struct jylink_huludao_JS//数据接收
        {
            public byte xinyuan;//信源
            public byte xinsu;//信宿
            public byte m_type;//信息类别
            public byte mid;//目标编号
            public UInt32 time;//北京时间
            public byte dec_state;//装备状态

            public byte bid;//战斗编号(战斗编号可灵活配置)
            public UInt32 times;//战斗时间

            public short flight_mode1;//速度调节
            public short flight_mode2;//航向调节
            public short flight_mode3;//侧偏距调节
            public short flight_mode4;//高度调节指令
            public byte kz_type;//控制编制
        }
        public class UdpMulticastReceiver
        {
            private UdpClient udpClient;
            private IPEndPoint localEndPoint;
            private Thread receiveThread;
            private ConcurrentQueue<byte[]> dataQueue;
            private volatile bool listening;

            public UdpMulticastReceiver(string Ip, string multicastIp, int port)
            {
                localEndPoint = new IPEndPoint(IPAddress.Parse(Ip), port);
                udpClient = new UdpClient();
                udpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
                udpClient.Client.Bind(localEndPoint);
                if (!string.IsNullOrEmpty(multicastIp))
                {
                    udpClient.JoinMulticastGroup(IPAddress.Parse(multicastIp));
                }
                dataQueue = new ConcurrentQueue<byte[]>();
            }

            public void StartListening()
            {
                listening = true;
                receiveThread = new Thread(new ThreadStart(ReceiveData));
                receiveThread.IsBackground = true;
                receiveThread.Start();
            }

            public void StopListening()
            {
                listening = false;
                udpClient.DropMulticastGroup(localEndPoint.Address);
                udpClient.Close();
                if (receiveThread != null && receiveThread.IsAlive)
                {
                    receiveThread.Join();
                }
            }

            private void ReceiveData()
            {
                while (listening)
                {
                    try
                    {
                        byte[] data = udpClient.Receive(ref localEndPoint);
                        dataQueue.Enqueue(data);
                    }
                    catch (Exception ex)
                    {
                        // Handle exception
                        //MessageBox.Show("Error receiving data: " + ex.Message);
                    }
                }
            }

            public bool TryDequeueData(out byte[] data)
            {
                return dataQueue.TryDequeue(out data);
            }

            public byte[] ParseData(byte[] data, int length)
            {
                if (data.Length < length)
                {
                    return null; // Not enough data
                }

                return data;
            }
        }
        #endregion


    }
}

namespace FBGroundControl.Forms
{
    partial class HLDReception
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.components = new System.ComponentModel.Container();
            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
            this.dataGridView1 = new System.Windows.Forms.DataGridView();
            this.xy = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.xs = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.xxlb = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.mbbh = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.bjsj = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.zbzt = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.zdbh = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.zdsj = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.sdtj = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.hxtj = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.cpjtj = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.gdtj = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.kzzs = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.panel2 = new System.Windows.Forms.Panel();
            this.btn_Startlistening = new System.Windows.Forms.Button();
            this.btn_Turnofflistening = new System.Windows.Forms.Button();
            this.tbx_port = new System.Windows.Forms.TextBox();
            this.label3 = new System.Windows.Forms.Label();
            this.tbx_zbIP = new System.Windows.Forms.TextBox();
            this.label2 = new System.Windows.Forms.Label();
            this.timer1 = new System.Windows.Forms.Timer(this.components);
            this.label1 = new System.Windows.Forms.Label();
            this.comboBoxIP = new System.Windows.Forms.ComboBox();
            ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
            this.panel2.SuspendLayout();
            this.SuspendLayout();
            // 
            // dataGridView1
            // 
            this.dataGridView1.AllowUserToAddRows = false;
            this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
            dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
            dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control;
            dataGridViewCellStyle4.Font = new System.Drawing.Font("宋体", 13.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
            dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText;
            dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight;
            dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
            dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
            this.dataGridView1.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4;
            this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
            this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
            this.xy,
            this.xs,
            this.xxlb,
            this.mbbh,
            this.bjsj,
            this.zbzt,
            this.zdbh,
            this.zdsj,
            this.sdtj,
            this.hxtj,
            this.cpjtj,
            this.gdtj,
            this.kzzs});
            dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
            dataGridViewCellStyle5.BackColor = System.Drawing.SystemColors.Window;
            dataGridViewCellStyle5.Font = new System.Drawing.Font("宋体", 15F);
            dataGridViewCellStyle5.ForeColor = System.Drawing.SystemColors.ControlText;
            dataGridViewCellStyle5.SelectionBackColor = System.Drawing.SystemColors.Highlight;
            dataGridViewCellStyle5.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
            dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
            this.dataGridView1.DefaultCellStyle = dataGridViewCellStyle5;
            this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill;
            this.dataGridView1.Location = new System.Drawing.Point(0, 30);
            this.dataGridView1.Name = "dataGridView1";
            this.dataGridView1.ReadOnly = true;
            dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
            dataGridViewCellStyle6.BackColor = System.Drawing.SystemColors.Control;
            dataGridViewCellStyle6.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
            dataGridViewCellStyle6.ForeColor = System.Drawing.SystemColors.WindowText;
            dataGridViewCellStyle6.SelectionBackColor = System.Drawing.SystemColors.Highlight;
            dataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
            dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
            this.dataGridView1.RowHeadersDefaultCellStyle = dataGridViewCellStyle6;
            this.dataGridView1.RowHeadersWidth = 50;
            this.dataGridView1.RowTemplate.Height = 20;
            this.dataGridView1.Size = new System.Drawing.Size(800, 420);
            this.dataGridView1.TabIndex = 5;
            // 
            // xy
            // 
            this.xy.HeaderText = "信源";
            this.xy.Name = "xy";
            this.xy.ReadOnly = true;
            this.xy.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
            // 
            // xs
            // 
            this.xs.HeaderText = "信宿";
            this.xs.Name = "xs";
            this.xs.ReadOnly = true;
            this.xs.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
            // 
            // xxlb
            // 
            this.xxlb.HeaderText = "信息类别";
            this.xxlb.Name = "xxlb";
            this.xxlb.ReadOnly = true;
            this.xxlb.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
            // 
            // mbbh
            // 
            this.mbbh.HeaderText = "目标编号";
            this.mbbh.Name = "mbbh";
            this.mbbh.ReadOnly = true;
            this.mbbh.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
            // 
            // bjsj
            // 
            this.bjsj.HeaderText = "北京时间";
            this.bjsj.Name = "bjsj";
            this.bjsj.ReadOnly = true;
            this.bjsj.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
            // 
            // zbzt
            // 
            this.zbzt.HeaderText = "装备状态";
            this.zbzt.Name = "zbzt";
            this.zbzt.ReadOnly = true;
            this.zbzt.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
            // 
            // zdbh
            // 
            this.zdbh.HeaderText = "战斗编号";
            this.zdbh.Name = "zdbh";
            this.zdbh.ReadOnly = true;
            this.zdbh.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
            // 
            // zdsj
            // 
            this.zdsj.HeaderText = "战斗时间";
            this.zdsj.Name = "zdsj";
            this.zdsj.ReadOnly = true;
            this.zdsj.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
            this.zdsj.Visible = false;
            // 
            // sdtj
            // 
            this.sdtj.HeaderText = "速度调节";
            this.sdtj.Name = "sdtj";
            this.sdtj.ReadOnly = true;
            this.sdtj.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
            this.sdtj.Visible = false;
            // 
            // hxtj
            // 
            this.hxtj.HeaderText = "航向调节";
            this.hxtj.Name = "hxtj";
            this.hxtj.ReadOnly = true;
            // 
            // cpjtj
            // 
            this.cpjtj.HeaderText = "侧偏距调节";
            this.cpjtj.Name = "cpjtj";
            this.cpjtj.ReadOnly = true;
            // 
            // gdtj
            // 
            this.gdtj.HeaderText = "高度调节";
            this.gdtj.Name = "gdtj";
            this.gdtj.ReadOnly = true;
            // 
            // kzzs
            // 
            this.kzzs.HeaderText = "控制指示";
            this.kzzs.Name = "kzzs";
            this.kzzs.ReadOnly = true;
            // 
            // panel2
            // 
            this.panel2.Controls.Add(this.btn_Startlistening);
            this.panel2.Controls.Add(this.btn_Turnofflistening);
            this.panel2.Controls.Add(this.tbx_port);
            this.panel2.Controls.Add(this.label3);
            this.panel2.Controls.Add(this.tbx_zbIP);
            this.panel2.Controls.Add(this.label2);
            this.panel2.Controls.Add(this.comboBoxIP);
            this.panel2.Controls.Add(this.label1);
            this.panel2.Dock = System.Windows.Forms.DockStyle.Top;
            this.panel2.Location = new System.Drawing.Point(0, 0);
            this.panel2.Name = "panel2";
            this.panel2.Size = new System.Drawing.Size(800, 30);
            this.panel2.TabIndex = 6;
            // 
            // btn_Startlistening
            // 
            this.btn_Startlistening.Dock = System.Windows.Forms.DockStyle.Right;
            this.btn_Startlistening.Location = new System.Drawing.Point(668, 0);
            this.btn_Startlistening.Name = "btn_Startlistening";
            this.btn_Startlistening.Size = new System.Drawing.Size(66, 30);
            this.btn_Startlistening.TabIndex = 7;
            this.btn_Startlistening.Text = "启动监听";
            this.btn_Startlistening.UseVisualStyleBackColor = true;
            this.btn_Startlistening.Click += new System.EventHandler(this.btn_Startlistening_Click);
            // 
            // btn_Turnofflistening
            // 
            this.btn_Turnofflistening.Dock = System.Windows.Forms.DockStyle.Right;
            this.btn_Turnofflistening.Location = new System.Drawing.Point(734, 0);
            this.btn_Turnofflistening.Name = "btn_Turnofflistening";
            this.btn_Turnofflistening.Size = new System.Drawing.Size(66, 30);
            this.btn_Turnofflistening.TabIndex = 6;
            this.btn_Turnofflistening.Text = "关闭监听";
            this.btn_Turnofflistening.UseVisualStyleBackColor = true;
            this.btn_Turnofflistening.Click += new System.EventHandler(this.btn_Turnofflistening_Click);
            // 
            // tbx_port
            // 
            this.tbx_port.Location = new System.Drawing.Point(374, 6);
            this.tbx_port.Name = "tbx_port";
            this.tbx_port.Size = new System.Drawing.Size(100, 21);
            this.tbx_port.TabIndex = 5;
            // 
            // label3
            // 
            this.label3.AutoSize = true;
            this.label3.Location = new System.Drawing.Point(327, 9);
            this.label3.Name = "label3";
            this.label3.Size = new System.Drawing.Size(41, 12);
            this.label3.TabIndex = 4;
            this.label3.Text = "端口号";
            // 
            // tbx_zbIP
            // 
            this.tbx_zbIP.Location = new System.Drawing.Point(221, 6);
            this.tbx_zbIP.Name = "tbx_zbIP";
            this.tbx_zbIP.Size = new System.Drawing.Size(100, 21);
            this.tbx_zbIP.TabIndex = 3;
            // 
            // label2
            // 
            this.label2.AutoSize = true;
            this.label2.Location = new System.Drawing.Point(162, 9);
            this.label2.Name = "label2";
            this.label2.Size = new System.Drawing.Size(53, 12);
            this.label2.TabIndex = 2;
            this.label2.Text = "组播地址";
            // 
            // timer1
            // 
            this.timer1.Interval = 1000;
            this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
            // 
            // label1
            // 
            this.label1.AutoSize = true;
            this.label1.Location = new System.Drawing.Point(12, 9);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(17, 12);
            this.label1.TabIndex = 0;
            this.label1.Text = "IP";
            // 
            // comboBoxIP
            // 
            this.comboBoxIP.FormattingEnabled = true;
            this.comboBoxIP.Location = new System.Drawing.Point(35, 6);
            this.comboBoxIP.Name = "comboBoxIP";
            this.comboBoxIP.Size = new System.Drawing.Size(121, 20);
            this.comboBoxIP.TabIndex = 1;
            // 
            // HLDReception
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(800, 450);
            this.Controls.Add(this.dataGridView1);
            this.Controls.Add(this.panel2);
            this.Name = "HLDReception";
            this.Text = "葫芦岛指令接收";
            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.HLDReception_FormClosing);
            ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
            this.panel2.ResumeLayout(false);
            this.panel2.PerformLayout();
            this.ResumeLayout(false);

        }

        #endregion

        private System.Windows.Forms.DataGridView dataGridView1;
        private System.Windows.Forms.Panel panel2;
        private System.Windows.Forms.Label label2;
        private System.Windows.Forms.TextBox tbx_zbIP;
        private System.Windows.Forms.TextBox tbx_port;
        private System.Windows.Forms.Label label3;
        private System.Windows.Forms.Button btn_Turnofflistening;
        private System.Windows.Forms.Button btn_Startlistening;
        public System.Windows.Forms.Timer timer1;
        private System.Windows.Forms.DataGridViewTextBoxColumn xy;
        private System.Windows.Forms.DataGridViewTextBoxColumn xs;
        private System.Windows.Forms.DataGridViewTextBoxColumn xxlb;
        private System.Windows.Forms.DataGridViewTextBoxColumn mbbh;
        private System.Windows.Forms.DataGridViewTextBoxColumn bjsj;
        private System.Windows.Forms.DataGridViewTextBoxColumn zbzt;
        private System.Windows.Forms.DataGridViewTextBoxColumn zdbh;
        private System.Windows.Forms.DataGridViewTextBoxColumn zdsj;
        private System.Windows.Forms.DataGridViewTextBoxColumn sdtj;
        private System.Windows.Forms.DataGridViewTextBoxColumn hxtj;
        private System.Windows.Forms.DataGridViewTextBoxColumn cpjtj;
        private System.Windows.Forms.DataGridViewTextBoxColumn gdtj;
        private System.Windows.Forms.DataGridViewTextBoxColumn kzzs;
        private System.Windows.Forms.ComboBox comboBoxIP;
        private System.Windows.Forms.Label label1;
    }
}

 

posted @ 2024-09-23 15:15  Mr.石  阅读(20)  评论(0)    收藏  举报