创建XCOM窗体和跳转连接

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.mzph.cn/web/37846.shtml

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

相关文章

Unix Network Programming Episode 96

‘socketpair’ Function The socketpair function creates two sockets that are then connected together. This function applies only to Unix domain sockets. #include <sys/socket.h> int socketpair(int family, int type, int protocol, int sockfd[2]);POSIX…

(十七)如何学习统计学基础知识(学习路线)

统计学是数据科学的基本支柱。统计学的目的是帮助你理解数据并从中得出有意义的结论。在数据科学中&#xff0c;统计学在理解数据模式和趋势、做出预测和检验假设方面起着至关重要的作用。 (一) 数据科学统计学习路线图 本文为学习统计学并将其应用于数据科学提供了清晰、结构化…

如何使用 SPM 插件从 Pkl 配置文件生成 Swift 接口

文章目录 前言示例展示 Pkl 配置生成 Swift 绑定手动安装和使用 pkl-gen-swift创建 SPM 命令插件加载 Pkl 配置总结前言 Pkl(全称为 Pickle)是苹果推出的一种全新的专用于配置的编程语言。它允许开发人员通过类型和内置验证安全、直观地设计数据模型。 作为苹果语言,Pkl 有…

Python容器 之 列表--下标和切片

列表的切片 得到是 新的列表字符串的切片 得到是 新的字符串 如果下标 不存在会报错 list1 [1, 3.14, "hello", False] print(list1)# 获取 列表中 第一个数据 print(list1[0]) # 1# 获取列表中的最后一个数据 print(list1[-1]) # [False]# 获取中间两个数 即 3.1…

3.2ui功能讲解之graph页面

本节重点介绍 : graph页面target页面flags页面status页面tsdb-status页面 访问地址 $ip:9090 graph页面 autocomplete 可以补全metrics tag信息或者 内置的关键字 &#xff0c;如sum聚合函数table查询 instante查询&#xff0c; 一个点的查询graph查询调整分辨率 resolutio…

记录:有趣的C#多元运算符 ? : 表达式写法

有时候用 if //...Whatre you she wanna go else if //...do do do else //...and i know something just like this... 感觉代码太多了怎么优雅的、高端的替换&#xff1f; 看个高端的栗子菊&#xff1a; LedCOM["parity"] ledData[4] "N" ? …

Study--Oracle-05-Oracler体系结构

一、oracle 体系概览 Oracle数据库的体系结构通常包括以下主要组件&#xff1a; 1、实例&#xff08;Instance&#xff09;&#xff1a;运行数据库的软件环境&#xff0c;包括内存结构&#xff08;SGA&#xff09;和进程结构&#xff08;Background Processes and User Proces…

Django 一对多关系

1&#xff0c;创建 Django 应用 Test/app9 django-admin startapp app9 2&#xff0c;注册应用 Test/Test/settings.py 3&#xff0c;添加应用路由 Test/Test/urls.py from django.contrib import admin from django.urls import path, includeurlpatterns [path(admin/,…

《每天5分钟用Flask搭建一个管理系统》 第10章:前端集成

第10章&#xff1a;前端集成 10.1 前端技术概述 前端技术指的是构建Web应用用户界面所使用的技术&#xff0c;包括HTML、CSS和JavaScript。现代Web开发中&#xff0c;前端框架如React、Vue.js和Angular等被广泛使用。 10.2 AJAX与Flask的集成 AJAX&#xff08;Asynchronous…

数据资产安全策略的定制化之道:深入了解各企业独特需求,量身打造个性化的数据资产保护方案,确保数据安全无虞,助力企业稳健发展

目录 一、引言 二、企业数据资产安全现状分析 &#xff08;一&#xff09;数据安全风险多样化 &#xff08;二&#xff09;传统安全措施难以满足需求 &#xff08;三&#xff09;企业数据资产安全意识亟待提高 三、定制化数据资产安全策略的重要性 &#xff08;一&#…

natvicat为什么连不上linux上的mysql?

老规矩&#xff0c;废话不多说&#xff0c;直接上教程。 号外&#xff0c;数据库管理工具领域的知名品牌Navicat&#xff0c;推出其免费版本——Navicat Premium Lite&#xff0c;用户可从Navicat官网下载体验这款软件。 https://www.navicat.com.cn/download/navicat-premium-…

【HALCON】如何实现hw窗口自适应相机拍照成像的大小

前言 在开发一个喷码检测软件的时候碰到相机成像和hw窗体的大小不一致&#xff0c;hw太小显示不完全成像的图片&#xff0c;这使得成像不均匀&#xff0c;现场辨别起来比较不直观&#xff0c;因此需要对其进行一个调整。 解决 省略掉读取图片的环节&#xff0c;我们只需要将…

别再用this.$forceUpdate()了!—性能优化篇

文章目录 别再用this.$forceUpdate()了&#xff01;—性能优化篇&#x1f388;介绍&#x1f9e8;弊端注意事项 &#x1f386;解决实例 别再用this.$forceUpdate()了&#xff01;—性能优化篇 起因是接手公司之前外包的项目做项目优化&#xff0c;代码看着一言难尽&#xff0c;…

CGI面试题及参考答案

什么是CGI?它在Web服务器与应用程序之间扮演什么角色? CGI(Common Gateway Interface) 是一种标准协议,它定义了Web服务器与运行在服务器上的外部程序(通常是脚本或应用程序)之间的通信方式。简单来说,CGI充当了一个桥梁,使得Web服务器能够将用户的请求传递给后端程序…

ruoyi—cloud 新建模块+生成代码

1.复制一个模块——修改名字 2.打开模块下的yml文件&#xff0c;修改端口号和名字 &#xff08;1&#xff09;修改一个名字 &#xff08;2&#xff09;打开yml文件 &#xff08;3&#xff09;修改端口号&#xff0c;不要重复 &#xff08;4&#xff09;改名字和模块一致 3.…

41、web基础和http协议

web基础与http协议 一、web web&#xff1a;就是我们所说得页面&#xff0c;打开网页展示得页面。&#xff08;全球广域网&#xff0c;万维网&#xff09; world wide webwww 分布式图形信息系统 http&#xff1a;超文本传输协议 https&#xff1a;加密的超文本传输协议…

猫冻干可以天天喂吗?喂冻干前要了解的必入主食冻干榜单

近年来&#xff0c;冻干猫粮因其高品质而备受喜爱&#xff0c;吸引了无数猫主人的目光&#xff0c;对于像我这样的养猫达人来说&#xff0c;早已尝试并认可了冻干喂养。然而&#xff0c;对于初入养猫行列的新手们来说&#xff0c;可能会有疑问&#xff1a;什么是冻干猫粮&#…

Qt——界面优化

目录 QSS 基本语法 QSS 设置方式 指定控件样式设置 全局样式设置 文件加载样式表 Qt Designer 编辑样式 选择器 子控件选择器 伪类选择器 样式属性 盒模型 控件样式 按钮 复选框 单选框 输入框 列表 菜单栏 登录界面 绘图 概念 绘制形状 绘制线段 绘制…

微信换手机号了怎么绑定新手机号?

微信换手机号了怎么绑定新手机号&#xff1f; 1、在手机上找到并打开微信&#xff1b; 2、打开微信后&#xff0c;点击底部我的&#xff0c;并进入微信设置&#xff1b; 3、在微信设置账号与安全内&#xff0c;找到手机号并点击进入&#xff1b; 4、选择更换手机号&#xff0c…

【代码随想录算法训练Day52】LeetCode 647. 回文子串、LeetCode 516.最长回文子串

Day51 动态规划第十三天 LeetCode 647. 回文子串 dp数组的含义&#xff1a;i到j的子串是否是回文的&#xff0c;是的话dp[i][j]1 递推公式&#xff1a;if(s[i]s[j]) i j 一个元素 是回文的 |i-j|1 两个元素 是回文的 j-i>1 判断dp[i1][j-1] 初始化&#xff1a;全部初始化成…