当前位置: 首页 > news >正文

自动化设备上位机设计 四

目录

一 设计原型

二 后台代码


一 设计原型

二 后台代码

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.lryc.cn/news/394154.html

相关文章:

  • [leetcode hot 150]第二十三题,合并K个升序链表
  • MybatisPlus实现插入/修改数据自动设置时间
  • Java语言程序设计篇一
  • Calicoctl工具学习 —— 筑梦之路
  • Wormhole Filters: Caching Your Hash on Persistent Memory——泛读笔记
  • PyTorch学习之torch.transpose函数
  • Git仓库介绍
  • 人工智能笔记分享
  • 秋招提前批面试经验分享(上)
  • [AIGC] ClickHouse的表引擎介绍
  • 关于新装Centos7无法使用yum下载的解决办法
  • OpenEarthMap:全球高分辨率土地覆盖制图的基准数据集(开源来下载!!!)
  • 工作助手VB开发笔记(1)
  • WAWA鱼曲折的大学四年回忆录
  • Go 依赖注入设计模式
  • 使用React复刻ThreeJS官网示例——keyframes动画
  • 嵌入式linux面试1
  • 智能交通(3)——Learning Phase Competition for Traffic Signal Control
  • 【扩散模型】LCM LoRA:一个通用的Stable Diffusion加速模块
  • 【PYG】pytorch中size和shape有什么不同
  • 备份服务器出错怎么办?
  • 数据库(表)
  • Feign-未完成
  • # [0705] Task06 DDPG 算法、PPO 算法、SAC 算法【理论 only】
  • Open3D 点云CPD算法配准(粗配准)
  • 04-ArcGIS For JavaScript的可视域分析功能
  • Nestjs基础
  • DDL:针对于数据库、数据表、数据字段的操作
  • 昇思学习打卡-5-基于Mindspore实现BERT对话情绪识别
  • Java中 普通for循环, 增强for循环( foreach) List中增删改查的注意事项