创建XCOM窗体和跳转连接

news2024/12/26 16:13:48

Xcom

窗体:

(groupBox组合框,comboBox下拉框)

xcom代码:

namespace _01_作业
{
    // 1kb 1024B 1200B
    // 1MB 

    public partial class Form1 : Form
    {
        public List<string> botelv = new List<string> {   "600","1200", "2400", "4800", "9600","14400", "19200", "28800","38400", "43000", "57600",
  "76800","115200","128000","230400","256000","460800","921600","1382400", "自定义" };
        public List<string> tizhiwei = new List<string>() { "1", "1.5", "2" };
        public List<string> shujuwei = new List<string>() { "5", "6", "7", "8" };
        public List<string> xiaojianwei = new List<string>() { "None", "Odd", "Even"};
        public List<string> xiaoshi = new List<string>() { "16禁止(HEX)", "字符显示(ASCII)" };
        SerialPort port;

        public Form1()
        {
            InitializeComponent();
            initPort();// 初始化串口的方法
            comboBox2.DataSource = botelv;          // 初始化波特率 所有波特率显示下拉框里面          
            comboBox3.DataSource = tizhiwei;
            comboBox4.DataSource = shujuwei;
            comboBox5.DataSource = xiaojianwei;
            comboBox6.DataSource = xiaoshi;
            comboBox2.Text = "9600";
            comboBox4.Text = "8";
            port = new SerialPort();
            port.DataReceived += Port_DataReceived;
            port.DtrEnable = true;
            port.RtsEnable = true;
        }

        private void Port_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            byte[] bs = new byte[port.BytesToRead];// 读取缓存区长度
            port.Read(bs, 0, bs.Length);

            string value = null;
            this.Invoke((EventHandler)delegate
            {
                if (comboBox6.Text == "16进制(HEX)")
                {
                    // 16进制显示
                    foreach (var item in bs)
                    {
                        value += "" + item.ToString("X");
                    }
                
                }
                else
                {
                    value = Encoding.GetEncoding("gb2312").GetString(bs);
                }
                richTextBox1.Text = value + "\t\n";
                richTextBox1.SelectionStart = richTextBox1.Text.Length;
                richTextBox1.ScrollToCaret();
                port.DiscardInBuffer();// 清空缓存区
            });
        }

        void initPort()
        {
            comboBox1.DataSource = null;// 给下拉框添加数据源
            // 获取电脑下所有的串行端口 GetPortNames()
            string[] names = SerialPort.GetPortNames();
            if (names.Length != 0)
            {
                comboBox1.DataSource = names;
            }
            else
            {
                MessageBox.Show("未扫描到串口");
            }
             
        }

        // 检测当前电脑串口行端口
        private void button1_Click(object sender, EventArgs e)
        {
            initPort();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (port.IsOpen == true)
            {
                port.Close();
                button2.Text = "打开串口";
                comboBox1.Enabled = comboBox2.Enabled = comboBox3.Enabled = comboBox4.Enabled = comboBox5.Enabled = comboBox6.Enabled = true;
            }
            else
            {
                port.Open();// 打开串口
                comboBox1.Enabled = comboBox2.Enabled = comboBox3.Enabled = comboBox4.Enabled = comboBox5.Enabled = comboBox6.Enabled = false;
                button2.Text = "关闭串口";
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            byte[] bs = Encoding.UTF8.GetBytes(this.richTextBox2.Text);
            port.Write(bs, 0, bs.Length);
        }
    }
}

跳转连接

创建两个窗体

From1 一个button按钮

namespace _02_作业
{
    public partial class Form1 : Form
    {
        UdpClient udp;
        public List<string> ip = new List<string> {"224.0.0.188","224.0.1.188"}; 
        public Form1()
        {
            InitializeComponent();
        }
        // 跳转
        private void button2_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2(udp,ip);
            f2.ShowDialog();
        }
    }
}

From2

namespace _02_作业
{
    public partial class Form2 : Form
    {
        UdpClient udpclient;
        List<string> list;
        public Form2(UdpClient udp,List<string> ip)
        {
            InitializeComponent();
            udpclient = udp;
            list = ip;
            TianJia();
        }
        public void TianJia() 
        {
            this.listBox1.Items.Clear();
            this.listBox1.Items.AddRange(list.ToArray());
            this.Refresh();
        }
        // 添加组播
        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "")
            {
                MessageBox.Show("数据为空!");
            }
            else
            {
                if (list.Contains(textBox1.Text))
                {
                    MessageBox.Show("数据重复");
                }
                else
                {
                    list.Add(textBox1.Text);
                    TianJia();
                }
                
            }
        }
        // 删除组播
        private void button2_Click(object sender, EventArgs e)
        {
            if (list.Contains(textBox1.Text))
            {
                list.RemoveAt(list.IndexOf(textBox1.Text));
                TianJia();
            }
            else
            {
                MessageBox.Show("数据不存在");
            }
        }
        // 打开
        private void button3_Click(object sender, EventArgs e)
        {
            udpclient = new UdpClient(new IPEndPoint(IPAddress.Any, 8080));
            strartReceive();
           
        }

        private void button4_Click(object sender, EventArgs e)
        {
            byte[] bs = Encoding.UTF8.GetBytes(this.textBox2.Text);
            udpclient.Send(bs, bs.Length, this.textBox1.Text, 8080);
        }

        private void button5_Click(object sender, EventArgs e)
        {
            udpclient.JoinMulticastGroup(IPAddress.Parse(this.textBox1.Text));
        }
        async void strartReceive()
        {
            while (true)
            {
               
                UdpReceiveResult body = await udpclient.ReceiveAsync();
                BeginInvoke((Action)(() =>
                {
                    richTextBox1.AppendText(body.RemoteEndPoint.ToString() + ":" + Encoding.UTF8.GetString(body.Buffer) + "\t\n");
                    richTextBox1.ScrollToCaret();
                }));
            }

        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1883404.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Tools体验NLP编程的魅力

大模型能理解自然语言&#xff0c;从而能解决问题&#xff0c;但是就像人类大脑一样&#xff0c;大脑只能发送指令&#xff0c;实际行动得靠四肢&#xff0c;所以LangChain4j提供的Tools机制就是大模型的四肢。 大模型的不足 大模型在解决问题时&#xff0c;是基于互联网上很…

图像大模型中的注意力和因果掩码

AIM — 图像领域中 LLM 的对应物。尽管 iGPT 已经存在 2 年多了&#xff0c;但自回归尚未得到充分探索。在本文中&#xff0c;作者表明&#xff0c;当使用 AIM 对网络进行预训练时&#xff0c;一组图像数据集上的下游任务的平均准确率会随着数据和参数的增加而线性增加。 要运…

Android 大话binder通信

戳蓝字“牛晓伟”关注我哦&#xff01; 用心坚持输出易读、有趣、有深度、高质量、体系化的技术文章 由于 Android 大话binder通信(上) 和 Android 大话binder通信(下) 分为两篇阅读体验不好&#xff0c;顾合并为一篇。 本文摘要 用故事的方式把binder通信的整个过程都描述…

机械原理介绍

机械原理介绍 1 介绍1.1 概述1.2 资料书籍在线资料 2 [机械原理知识整理](https://tomm.muzing.top/) 【muzing整理编写】1 绪论2 机构的结构分析2-2 机构的组成及分类2-3 机构运动简图2-4 机构具有确定运动的条件及最小阻力定律2-5 2-6 机构自由度的计算2-7 平面机构的组成原理…

【深度学习】图生图img3img论文原理,SD EDIT

https://arxiv.org/abs/2108.01073 摘要 引导图像合成技术使普通用户能够以最小的努力创建和编辑逼真的图像。关键挑战在于平衡对用户输入&#xff08;例如&#xff0c;手绘的彩色笔画&#xff09;的忠实度和合成图像的真实感。现有的基于GAN的方法试图通过使用条件GAN或GAN反…

64.WEB渗透测试-信息收集- WAF、框架组件识别(4)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;63.WEB渗透测试-信息收集- WAF、框架组件识别&#xff08;3&#xff09;-CSDN博客 我们在…

面经-计算机基础

1.计算机⽹络 1.1 OSI与TCP/IP各层的结构与功能,都有哪些协议? 计算机网络体系结构 应⽤层 应⽤层 (application-layer &#xff09;的任务是通过应⽤进程间的交互来完成特定⽹络应⽤。 应⽤层协议定 义的是应⽤进程&#xff08;进程&#xff1a;主机中正在运⾏的程序&…

便签 Pro(Mac 智能便签工具)专业版怎么样,值得购买吗?

使用 Mac 的小伙伴平时都是怎么记录工作生活中的碎片信息&#xff1f;用聊天软件&#xff0c;还是系统备忘录呢&#xff1f; 实际体验下来&#xff0c;其实都难以称得上好用。 赶紧来了解一下 Mac 多彩思维速记工具便签 Pro&#xff01;拥有智能边框大小、iCloud 同步、历史记…

昇思25天学习打卡营第1天|MindSpore 全流程操作指南

目录 MindSpore 库相关操作的导入指南 处理数据集 网络构建 模型训练 保存模型 加载模型 MindSpore 库相关操作的导入指南 首先&#xff0c;我们导入了 MindSpore 这个库的整个模块。然后&#xff0c;从 MindSpore 库中引入了 nn 模块&#xff0c;一般来说&#xff0c;它是…

JavaEE—什么是服务器?以及Tomcat安装到如何集成到IDEA中?

目录 ▐ 前言 ▐ JavaEE是指什么? ▐ 什么是服务器&#xff1f; ▐ Tomcat安装教程 * 修改服务端口号 ▐ 将Tomcat集成到IDEA中 ▐ 测试 ▐ 结语 ▐ 前言 至此&#xff0c;这半年来我已经完成了JavaSE&#xff0c;Mysql数据库&#xff0c;以及Web前端知识的学习了&am…

ROS2在rviz2中实时显示轨迹和点

本文是将《ROS在rviz中实时显示轨迹和点》博客中rviz轨迹显示转为ROS2环境中的rviz2显示。 ros2的工作空间创建这里就不展示了。 包的创建 ros2 pkg create --build-type ament_cmake showpath --dependencies rclcpp nav_msgs geometry_msgs tf2_geometry_msgsshowpath.cpp…

【微服务网关——Websocket代理】

1.Websocket协议与原理 1.1 连接建立协议 1.1.1 客户端发起连接请求 客户端通过 HTTP 请求发起 WebSocket 连接。以下是一个 WebSocket 握手请求的例子&#xff1a; GET /chat HTTP/1.1 Host: server.example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key…

python 中的 下划线_ 是啥意思

在 Python 中&#xff0c;_&#xff08;下划线&#xff09;通常用作占位符&#xff0c;表示一个变量名&#xff0c;但程序中不会实际使用这个变量的值。 目录 忽略循环变量&#xff1a;忽略函数返回值&#xff1a;在解释器中使用&#xff1a;举例子1. 忽略循环变量2. 忽略不需…

APP逆向 day8 JAVA基础3

一.前言 昨天我们讲了点java基础2.0&#xff0c;发现是又臭又长&#xff0c;今天就是java基础的最后一章&#xff0c;也就是最难的&#xff0c;面向对象。上一末尾也是提到了面向对象&#xff0c;但是面向对象是最重要的&#xff0c;怎么可能只有这么短呢&#xff1f;所以今天…

怎样将word默认Microsoft Office,而不是WPS

设置——>应用——>默认应用——>选择"word"——>将doc和docx都选择Microsoft Word即可

【嵌入式DIY实例】- LCD ST7735显示DHT11传感器数据

LCD ST7735显示DHT11传感器数据 文章目录 LCD ST7735显示DHT11传感器数据1、硬件准备与接线2、代码实现本文介绍如何将 ESP8266 NodeMCU 板 (ESP-12E) 与 DHT11 (RHT01) 数字湿度和温度传感器连接。 NodeMCU 从 DHT11 传感器读取温度(以 C 为单位)和湿度(以 rH% 为单位)值,…

连锁品牌如何做宣传?短视频矩阵工具助轻松千万流量曝光!

今天给大家分享一家烘焙行业连锁品牌&#xff08;可可同学&#xff09;&#xff0c;通过小魔推获得了1031万的话题曝光&#xff0c;旗下的连锁门店登顶同城人气榜单第一名&#xff0c;​让自己的流量和销量获得双增长 01 品牌连锁店如何赋能旗下门店&#xff1f; 作为一家全国…

昇思25天学习打卡营第13天|基于MobileNetV2的垃圾分类

MobileNetv2模型原理介绍 相比于传统的卷积神经网络&#xff0c;MobileNet网络使用深度可分离卷积&#xff08;Depthwise Separable Convolution&#xff09;的思想在准确率小幅度降低的前提下&#xff0c;大大减小了模型参数与运算量。并引入宽度系数α和分辨率系数β使模型满…

【面试题】IPS(入侵防御系统)和IDS(入侵检测系统)的区别

IPS&#xff08;入侵防御系统&#xff09;和IDS&#xff08;入侵检测系统&#xff09;在网络安全领域扮演着不同的角色&#xff0c;它们之间的主要区别可以归纳如下&#xff1a; 功能差异&#xff1a; IPS&#xff1a;这是一种主动防护设备&#xff0c;不仅具备检测攻击的能力&…