自动化设备上位机设计 四

目录

一 设计原型

二 后台代码


一 设计原型

二 后台代码

using SimpleTCP;
using SqlSugar;
using System.Text;namespace 自动化上位机设计
{public partial class Form1 : Form{SqlHelper sqlHelper = new SqlHelper();SqlSugarClient dbContent = null;bool IsRun = false;int Count = 0;//数据收集对象EntryClass Datas = new EntryClass();//网络通讯客户端:长度测试仪器SimpleTcpClient client = new SimpleTcpClient();public Form1(){InitializeComponent();dbContent = sqlHelper.db;timer1.Enabled = true;timer1.Tick += Timer1_Tick;Task.Run(() =>{//设置编码格式,默认是UTF8client.StringEncoder = System.Text.ASCIIEncoding.UTF8;//设置分隔符,默认是0x13client.Delimiter = Encoding.ASCII.GetBytes("\r")[0];//收到分割数据的事件,遇到分隔符就会触发事件client.DelimiterDataReceived += (sender, msg) =>{AddLog("DelimiterStr-" + DateTime.Now.ToString() + msg.MessageString);};//收到数据的事件,可以在这里实现自己的协议client.DataReceived += (sender, msg) =>{//字节数组AddLog("字节数组Data:" + BitConverter.ToString(msg.Data));//字符串消息AddLog("字符串消息RDataseivedStr:" + msg.MessageString);//记录长度数据Datas.Len = msg.MessageString;};client.Connect("127.0.0.1", 8899);});}private void Timer1_Tick(object? sender, EventArgs e){this.Invoke(() =>{uiLedDisplay1.Text = DateTime.Now.ToString("HH:mm:ss");});}private void Form1_Load(object sender, EventArgs e){sqlHelper.CreateTable<EntryClass>();//开始批量插入数据Task.Run(() => { AddData(); });}private void AddData(){while (true){if (!IsRun) continue;//Datas.Len = new Random().Next(200, 300).ToString();Datas.Width = new Random().Next(40, 300).ToString();Datas.Hight = new Random().Next(150, 250).ToString();Datas.R = new Random().Next(10, 360).ToString();Datas.Weit = new Random().Next(20, 30).ToString();Datas.ZY = new Random().Next(50, 90).ToString();Datas.DC = new Random().Next(40, 300).ToString();Datas.DR = new Random().Next(400, 600).ToString();Datas.YL = new Random().Next(28, 88).ToString();Datas.WD = new Random().Next(89, 900).ToString();Datas.SD = new Random().Next(234, 454).ToString();Datas.LJ = new Random().Next(67, 89).ToString();//没有测量长度则不增加数据if (string.IsNullOrEmpty(Datas.Len)) continue;//数据放入数据库中dbContent.Insertable(Datas).ExecuteCommand();this.Invoke(() =>{//同步展示参数CD.Text = Datas.Len;KD.Text = Datas.Width;GD.Text = Datas.Hight;JD.Text = Datas.R;ZL.Text = Datas.Weit;ZY.Text = Datas.ZY;DY.Text = Datas.DC;NZ.Text = Datas.DR;PRESS.Text = Datas.YL;CC.Text = Datas.WD;SD.Text = Datas.SD;LJJ.Text = Datas.LJ;//参数展示到集合中Data.Rows.Add(Datas.Len, Datas.Width, Datas.Hight, Datas.R, Datas.Weit, Datas.ZY, Datas.DC, Datas.DR, Datas.YL, Datas.WD, Datas.SD, Datas.LJ, DateTime.Now.ToShortTimeString(), "OK", "测试数据");//计数Count++;uiLedDisplay2.Text = Count.ToString();//打印日志RunLog.AppendText("设备运行中,数据已加入到数据库\r\n");ErorrLog.AppendText("设备运行中,数据已加入到数据库\r\n");Log.AppendText("设备运行中,数据已加入到数据库\r\n");});Thread.Sleep(2000);}}private void uiSwitch1_ValueChanged(object sender, bool value){if (uiSwitch1.Active){uiLight1.OnColor = Color.Green;IsRun = true;RunLog.AppendText("设备启动。。。\r\n");ErorrLog.AppendText("设备启动。。。\r\n");Log.AppendText("设备启动。。。\r\n");}else{uiLight1.OnColor = Color.Red;IsRun = false;RunLog.AppendText("设备停止。。。\r\n");ErorrLog.AppendText("设备停止。。。\r\n");Log.AppendText("设备停止。。。\r\n");}}private void AddLog(string msg){this.Invoke(() =>{//打印日志RunLog.AppendText($"{msg}\r\n");ErorrLog.AppendText($"{msg}\r\n");Log.AppendText($"{msg}\r\n");});}}
}

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

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

相关文章

论文翻译 | (DSP)展示-搜索-预测:为知识密集型自然语言处理组合检索和语言模型

摘要 检索增强式上下文学习已经成为一种强大的方法&#xff0c;利用冻结语言模型 (LM) 和检索模型 (RM) 来解决知识密集型任务。现有工作将这些模型结合在简单的“检索-读取”流程中&#xff0c;其中 RM 检索到的段落被插入到 LM 提示中。 为了充分发挥冻结 LM 和 RM 的…

# Sharding-JDBC 从入门到精通(9)- 综合案例(二)添加商品

Sharding-JDBC 从入门到精通&#xff08;9&#xff09;- 综合案例&#xff08;二&#xff09;添加商品 一、Sharding-JDBC 综合案例-添加商品-dao 1、在 shopping 子工程&#xff08;子模块&#xff09;中&#xff0c;创建 dao 接口类 ProductDao.java /*** dbsharding\sh…

基于深度学习LightWeight的人体姿态之行为识别系统源码

一. LightWeight概述 light weight openpose是openpose的简化版本&#xff0c;使用了openpose的大体流程。 Light weight openpose和openpose的区别是&#xff1a; a 前者使用的是Mobilenet V1&#xff08;到conv5_5&#xff09;&#xff0c;后者使用的是Vgg19&#xff08;前10…

哈希表——C语言

哈希表&#xff08;Hash Table&#xff09;是一种高效的数据结构&#xff0c;能够在平均情况下实现常数时间的查找、插入和删除操作。 哈希表的核心是哈希函数&#xff0c;哈希函数是一个将输入数据&#xff08;通常称为“键”或“key”&#xff09;转换为固定长度的整数的函数…

Efficient Contrastive Learning for Fast and Accurate Inference on Graphs

发表于:ICML24 推荐指数: #paper/⭐⭐⭐ 创新点一颗星,证明三颗星(证明的不错,值得借鉴,但是思路只能说还行吧) 如图, 本文采取的创新点就是MLP用原始节点,GCN用邻居节点的对比学习.这样,可以加快运算速度 L E C L − 1 ∣ V ∣ ∑ v ∈ V 1 ∣ N ( v ) ∣ ∑ u ∈ N ( v )…

k8s 部署 springboot 项目内存持续增长问题分析解决

写在前面 工作中遇到&#xff0c;请教公司前辈解决&#xff0c;简单整理记忆博文内容涉及一次 GC 问题的分析以及解决理解不足小伙伴帮忙指正 &#x1f603;,生活加油 99%的焦虑都来自于虚度时间和没有好好做事&#xff0c;所以唯一的解决办法就是行动起来&#xff0c;认真做完…

语音识别FBank特征提取学习笔记

语音识别就是把一段语音信号转换成对应的文本信息&#xff0c;这一过程包括四个大的模块&#xff0c;分别是&#xff1a;特征提取、声学模型、语言模型、字典与解码。 本篇就来梳理一下特征提取模块的实现思路和方法。 常用的语音特征有&#xff1a; 梅尔频率倒谱系数&#x…

学生管理系统(通过顺序表,获取连续堆区空间实现)

将学生的信息&#xff0c;以顺序表的方式存储&#xff08;堆区&#xff09;&#xff0c;并且实现封装函数 &#xff1a; 1】顺序表的创建&#xff0c; 2】判满、 3】判空、 4】往顺序表里增加学生信息、 5】遍历学生信息 6】任意位置插入学生信息 7】任意位置删除学生信…

0301STM32GPIO外设输出

STM32GPIO外设输出 STM32内部的GPIO外设GPIO简介基本结构GPIO位结构输入部分&#xff1a;输出部分&#xff1a; GPIO八种工作模式浮空/上拉/下拉输入模拟输入开漏/推挽输出复用开漏/推挽输出 手册寄存器描述GPIO功能描述外设的GPIO配置GPIO寄存器描述端口输入数据寄存器端口输出…

QT入门笔记-自定义控件封装 30

具体代码如下: QT core guigreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c17# You can make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line. #DEFINES QT_DISABLE_DEPRECATED_BEFORE0x060000 …

并查集(还有反集也在)

一.定义 定义&#xff1a; 并查集是一种树型的数据结构&#xff0c;用于处理一些不相交集合的合并及查询问题&#xff08;即所谓的并、查&#xff09;。比如说&#xff0c;我们可以用并查集来判断一个森林中有几棵树、某个节点是否属于某棵树等。 主要构成&#xff1a; 并查集…

Android计算器界面的设计——表格布局TableLayout实操

目录 任务目标任务分析任务实施 任务目标 使用TextView、Button等实现一个计算器界面&#xff0c;界面如图1所示。 图1 计算器界面效果图 任务分析 界面整体使用表格布局&#xff0c;第一行使用一个TextView控件&#xff0c;横跨4列&#xff0c;中间4行4列&#xff0c;最后一…

io流 多线程

目录 一、io流 1.什么是io流 2.流的方向 i.输入流 ii.输出流 3.操作文件的类型 i.字节流 1.拷贝 ii.字符流 ​3.字符流输出流出数据 4.字节流和字符流的使用场景 5.练习 6.缓冲流 1.字节缓冲流拷贝文件 2.字符缓冲流特有的方法 1.方法 2.总结 7.转换流基本用法…

第2集《修习止观坐禅法要》

请打开补充讲表第一面&#xff0c;附表一、念佛摄心方便法。 我们前面讲到修止&#xff0c;就是善取所缘境的相貌&#xff0c;然后心于所缘&#xff0c;专一安住&#xff1b;心于所缘&#xff0c;相续安住&#xff1b;达到心一境性的目的。 站在修学净土的角度&#xff0c;他…

《C语言》预处理

文章目录 一、预定义符号二、#define定义常量三、#define定义宏四、宏更函数的对比五、#和##1、#运算符2、##运算符 一、预定义符号 C语言设置了一些预定义符号&#xff0c;可以直接使用&#xff0c;在预处理期间进行处理的。 __FILE__//进行编译的源文件 __LINE__//文件当前的…

【数据结构与算法】插入排序

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;《数据结构与算法》 期待您的关注 ​

人工智能、机器学习、神经网络、深度学习和卷积神经网络的概念和关系

人工智能&#xff08;Artificial Intelligence&#xff0c;缩写为AI&#xff09;--又称为机器智能&#xff0c;是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 人工智能是智能学科重要的组成部分&#xff0c;它企图了解智能的实质…

【问题解决】 pyocd 报错 No USB backend found 的解决方法

pyocd 报错 No USB backend found 的解决方法 本文记录了我在Windows 10系统上遇到的pyocd命令执行报错——No USB backend found 的分析过程和解决方法。遇到类似问题的朋友可以直接参考最后的解决方法&#xff0c;向了解问题发送原因的可以查看原因分析部分。 文章目录 pyoc…

排序-java(插入排序和选择排序)

一&#xff0c;分类 主要的排序大致分为以下几类&#xff1a; 1&#xff0c;插入排序&#xff0c;又分为直接插入排序和希尔排序 2&#xff0c;选择排序&#xff0c;又分为选择排序和堆排序 3&#xff0c;交换排序&#xff0c;又分为冒泡排序和快速排序 4&#xff0c;归并…

springboot配置扫描生效顺序

文章目录 举例分析项目结构如下noddles-user-backend 两个配置文件noddles-user-job 配置文件noddles-user-server 配置文件问题:server和Job启动时对应加载的数据库配置为哪一个&#xff1f; 总结 在微服务架构中&#xff0c;backend模块会定义一个基础的配置文件&#xff0c;…