Mculover666
CSDN博客专家,微信公众号mculover666,凭借与生俱来的热爱专注于嵌入式领域,在自己折腾的同时,以文字的方式分享所玩、所思、所想、所悟,作为一个技术人,我们一起前进~
展开
-
C#上位机开发(十八)—— 基于RSA算法实现数字签名与认证(私钥签名,公钥认证)
一、数字签名数字签名可以识别消息是否被篡改,并验证消息的可靠性,也可以防止否认。数字签名类似于现实世界中的盖章和签字,它具有以下四大特征:可验证性:接收者可以验证发送者签名的真实性和有效性;不可伪造性:除签名者之外,任何人不可伪造签名;不可否认性:发送方不能否认自己所发送的签名;数据完整性:能够提供对所签消息的完整性校验;二、RSA密钥对生成数字签名使用私钥签名,使用公钥验证签名。使用openssl生成签名。1. 生成私钥openssl genrsa -out ./rsa_priva原创 2022-05-24 21:03:50 · 2507 阅读 · 1 评论 -
C#上位机开发(十七)—— 基于NuGet安装并使用包(Visual Studio)
一、NuGet微软官方文档:https://docs.microsoft.com/zh-cn/nuget/。NuGet 是适用于 .NET 的包管理器。 它使开发人员能够创建、共享和使用有用的 .NET 库。 NuGet 客户端工具可生成这些库并将其作为“包”。二、添加 Newtonsoft.Json Nuget 包1. 创建项目可将 NuGet 包安装到任何 .NET 项目,前提是包支持与项目相同的目标框架。2. NuGet 程序包管理器(1)在解决方案资源管理器中,右键单击“引用”,选原创 2022-05-18 17:23:06 · 2611 阅读 · 1 评论 -
C#上位机开发(十五)—— 计算字符串哈希值和文件哈希值
一、C#计算哈希值方法1. 引用类库using System.Security.Cryptography;2. 计算哈希值//Compute hash based on source data.tmpHash = new MD5CryptoServiceProvider().ComputeHash(tmpSource);二、计算字符串哈希(1)声明用于保存源数据的字符串变量,以及两个字节数组 (未定义的大小) 保存源字节和生成的哈希值。string sSourceData;byte[]原创 2022-05-17 19:53:52 · 1618 阅读 · 0 评论 -
C#上位机开发(十四)—— C#中通过dll库调用外部C/C++函数
一、生成dll库方法一:使用mingw中的gcc生成dll动态链接库。编译时带上参数:gcc -o libxx.dll -fPIC -shared xx.c如果是64位gcc,还需要带上参数-m32或m64指定平台。方法二:参考下面文章第一节。二、C#调用dll库参考文章第二节:C# 调用 dll 文件。...原创 2022-05-16 15:25:38 · 1393 阅读 · 0 评论 -
C#上位机开发(十三)—— 使用Log4net添加日志记录功能
一、Log4net官方网站:https://logging.apache.org/log4net/。下载二进制dll库:包中提供了针对各个版本的dll库:二、使用日志库1. 添加库复制对应的库文件到项目中:2. 配置log4net2.1. 创建配置文件添加后修改该文件设置:2.2. 修改配置文件替换文件为以下内容,设置为日志文件输出:<?xml version="1.0" encoding="utf-8"?><log4net> <!--原创 2022-04-28 16:02:28 · 1426 阅读 · 0 评论 -
C#上位机开发(十二)—— SQLite的使用
一、System.Data.SQLite1. 下载安装下载地址:https://system.data.sqlite.org/index.html/doc/trunk/www/downloads-unsup.wiki。这里我使用的是.NET 4.0,所以下载64位 for 4.0 的支持:下载之后安装:安装完成之后查看安装目录:2. 添加引用库到工程二、使用1. 引用using System.Data.SQLite;2. 连接到指定数据库先设计一个简单的界面:然后编写l原创 2022-02-21 19:10:04 · 2297 阅读 · 7 评论 -
C#上位机开发(十一)—— 右键菜单的使用
一、菜单控件的基本使用1. ListBox放置一个ListBox,用于右键菜单操作,并默认添加5个数据项:2. 添加菜单控件添加右键菜单控件:3. 为每个菜单项添加名称点击右键菜单控制中的【添加】菜单项,然后在属性中找到Name,修改名称:同样,修改其它两个菜单项的名称。二、设置为右键菜单1. 添加鼠标单击事件给ListBox添加鼠标事件MouseUp:2. 弹出菜单在鼠标单击事件回调函数中,弹出菜单:private void listBox1_MouseUp(object原创 2021-12-27 11:40:44 · 3140 阅读 · 0 评论 -
C#上位机开发(十)—— 多线程+进度条的使用
1. 界面设计2. 使用多线程修改进度条引入多线程类库命名空间:using System.Threading;将变量添加到Form1类:private Thread th;将方法添加到Form1类:private void ThreadTask(){ int stp; int newval; Random rnd = new Random(); while (true) { stp = this.progressBa原创 2021-11-23 15:56:57 · 3233 阅读 · 0 评论 -
C#上位机开发(九)—— 表格控件的使用
一、表格控件的基本使用方法1. 添加控件添加一个DataGridView控件:为了方便使用,将该控件铺满整个窗口(Dock属性设为fill):2. 设置列数、列名添加初始化函数:private void InitGridView(){ // 设置列 dataGridView1.ColumnCount = 4; dataGridView1.Columns[0].Name = "学号"; dataGridView1.Columns[1].Name = "姓名";原创 2021-11-22 20:24:25 · 7090 阅读 · 3 评论 -
C#上位机开发(八)—— 美化界面(给按钮添加背景)
前言早在18年,博主第一次开始写博客,内容为 C# 上位机开发,写完后收获了不错的阅读量和好评:C#上位机开发(一)—— 了解上位机C#上位机开发(二)—— Hello,WorldC#上位机开发(三)—— 构建SerialAssistant雏形C#上位机开发(四)—— SerialAssistant功能完善C#上位机开发(五)——SerialAssistant界面升级(WinForm界面布局进阶)C#上位机开发(六)——SerialAssistant功能优化(串口自动扫描功能、接收数据保存功原创 2021-05-09 15:41:18 · 9866 阅读 · 8 评论 -
C#上位机开发(七)—— 修改窗口图标和exe文件图标
前言早在18年,博主第一次开始写博客,内容为 C# 上位机开发,写完后收获了不错的阅读量和好评:C#上位机开发(一)—— 了解上位机C#上位机开发(二)—— Hello,WorldC#上位机开发(三)—— 构建SerialAssistant雏形C#上位机开发(四)—— SerialAssistant功能完善C#上位机开发(五)——SerialAssistant界面升级(WinForm界面布局进阶)C#上位机开发(六)——SerialAssistant功能优化(串口自动扫描功能、接收数据保存功原创 2021-05-08 20:06:16 · 4045 阅读 · 5 评论 -
C#上位机开发(六)——SerialAssistant功能优化(串口自动扫描功能、接收数据保存功能、加载发送文件、发送历史记录、打开浏览器功能、定时发送功能)
前言早在18年,博主第一次开始写博客,内容为 C# 上位机开发,写完后收获了不错的阅读量和好评:C#上位机开发(一)—— 了解上位机C#上位机开发(二)—— Hello,WorldC#上位机开发(三)—— 构建SerialAssistant雏形C#上位机开发(四)—— SerialAssistant功能完善C#上位机开发(五)——SerialAssistant界面升级(WinForm界面布局进阶)在第五篇中优化了软件界面,在第三篇中实现了串口助手的基本功能,接下来再实现一些小功能:串口原创 2021-05-08 17:30:39 · 4652 阅读 · 7 评论 -
C#上位机开发(五)——SerialAssistant界面升级(WinForm界面布局进阶)
前言早在18年,博主第一次开始写博客,内容为 C# 上位机开发,写完后收获了不错的阅读量和好评:C#上位机开发(一)—— 了解上位机C#上位机开发(二)—— Hello,WorldC#上位机开发(三)—— 构建SerialAssistant雏形C#上位机开发(四)—— SerialAssistant功能完善这个系列存在的问题就是没有进行界面布局,所有的控件都是固定位置,所以时隔多年,再次利用空闲时间学习WinForm如何进行界面控件布局。一、使用Anchor属性进行布局1. Anchor原创 2021-05-07 16:51:41 · 4970 阅读 · 4 评论 -
【Arduino+C#串口上位机】10min教你编写C#上位机控制arduino板载LED
昨天有一个学弟找我帮忙写个程序,任务是编写一个串口上位机控制Arduino板载LED,已经焦头烂额了好久,无从下手,本来想几句话就能说清楚如何做,但是麻雀虽小,五脏俱全,包含了Arduino、串口、C#编程,写篇文章详细的讲述一下该如何做~1.任务需求编写一个电脑上位机控制Arduino板载LED。2.明确任务需求拿到这个任务,首先要确定一些不确定的因素(非常重要,不然,产品经理和攻城狮的...原创 2019-03-16 17:58:17 · 11595 阅读 · 15 评论 -
C#上位机开发(四)—— SerialAssistant功能完善
上百篇原创人工智能系列教程,从理论到实战,手把手带你掌握人工智能,点击☞这里☜进入传送门~ 上一篇中我们完成了一个串口助手的雏形,实现了基本发送和接收字符串功能,并将打开/关闭串口进行了异常处理,这篇就来按照流程,逐步将功能完善:1、构思功能 首先是接收部分,要添加一个“清空接收”的按钮来清空接收区;因为串口通信协议常用都是8bit数据(低7bit表示ASCII码,高1bi...原创 2018-06-06 00:45:00 · 11175 阅读 · 13 评论 -
C#上位机开发(三)—— 构建SerialAssistant雏形
上百篇原创人工智能系列教程,从理论到实战,手把手带你掌握人工智能,点击☞这里☜进入传送门~上一篇简单介绍了C#的一些基本知识,并成功的Hello,World,那么从这篇开始,我们来自己动手写一个串口助手:1、构思功能 串口助手在单片机开发中经常被用来调试,最基本的功能就是接收功能和发送功能,其次,串口在打开前需要进行一些设置:串口列表选择、波特率、数据位、校验位、停止位,这样就有...原创 2018-06-03 17:54:00 · 16516 阅读 · 15 评论 -
C#上位机开发(二)—— Hello,World
上百篇原创人工智能系列教程,从理论到实战,手把手带你掌握人工智能,点击☞这里☜进入传送门~上一篇大致了解了一下单片机实际项目开发中上位机开发部分的内容以及VS下载与安装,按照编程惯例,接下来就是“Hello,World!”1、新建C#项目工程 首先选择新建Windows窗体应用(.NET Framework),然后选择项目保存位置,填写项目名称,这里因为我们不需要用git进行版...原创 2018-06-02 18:42:00 · 24220 阅读 · 2 评论 -
C#上位机开发(一)—— 了解上位机
上百篇原创人工智能系列教程,从理论到实战,手把手带你掌握人工智能,点击☞这里☜进入传送门~ 在单片机项目开发中,上位机也是一个很重要的部分,主要用于数据显示(波形、温度等)、用户控制(LED,继电器等),下位机(单片机)与 上位机之间要进行数据通信的两种方式都是基于串口的:USB转串口 —— 上位机和下位机通过USB转串口连接线直接相连进行数据交互; 串口转WIFI(ESP8...原创 2018-06-02 16:07:00 · 62260 阅读 · 4 评论