自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(167)
  • 资源 (2)
  • 问答 (2)
  • 收藏
  • 关注

原创 C++ 指针,数组与指针之间的关系以及指针运算

但是在使用过程中arr[0]和p[0]是一样的,而且这两个是可以通用的,为什么会出现这样的情况呢,那就是因为arr的地址是整个数组的地址,而不是首元素的地址,然而p是数组首元素的地址。正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的地址,它表示了在内存中的一个地址。指针和数组是密切相关的。指针的释放(delete)只能释放用new声明的指针,不能释放将一个变量地址给指针的指针,*对于上面的例子,`*var` 的值是1,即数组 `var` 的第一个元素的值。

2024-01-29 09:11:26 903

原创 c++中 cin中的hello world 也有需要注意的事情

因为cin.get读取一行的时候,是不读取换行符的,所以当我们输入一行按下回车时,读取了内容后,将换行符还留在输入队列中,导致后续的读取都会遇到换行符,就认为已经输入完成了,所以直接跳过了等待用户输入的过程。当我们发现其实还有cin.get()的时候,原来这个问题有答案,cin.get是面向行输入,那我们上面的例子就能解决了,于是我们继续做示例,看看下面这个吧。整个交互过程根本没有给我第二次输入姓名的机会,这是为什么呢,只能打开书看一下了,发现这里面涉及到一些字符串的知识和标注输入输出的知识。

2024-01-26 09:54:07 333

原创 opencv-py-基础操作

【代码】opencv-py-基础操作。

2024-01-15 15:44:44 507

原创 vscode中关于python的一些常用配置

当方法以test开头的时候会自动识别成测试用例,会有一个标识,鼠标右键点击标识的时候可以执行测试,如果成功就会出现一个对号。打开扩展–> 找到python --> 打开json配置。安装插件 Black Formatter 插件。修改setting.json配置内容如下。将cv2的安装目录配置到如下位置。打开settings。具体为啥不行没搞明白。

2024-01-12 16:06:32 567

原创 Python的数组切片突然联想到三体中的维度打击,原来真的可以这样理解

按照上面的管理,那么二维数组的操作开始有意思起来,因为切片可以对第一维度操作,也可以对第二维度操作,便于我们理解,我可以把它说成是一个表格,也就是行列的形式,那么我们声明一个二维数组,并且对行操作,列操作分别作出测试,代码如下。以此类推,我们得到了六维数组,是每一个三维数组的元素是一个三维数组,这又让我想起了我们的现实世界,当我们使用精度,维度,高度的时候能够定位到一个位置,可是如果我们将这个位置无限微观的观察下去,内部又是通过三维定位的世界。那我们生活的这个三维世界,会不会是更高层维度中的微观世界呢?

2024-01-08 14:56:27 851

原创 Redis入门日志

当配置的 maxmemory从节点小于主节点,如果复制的数据量超过从节点maxmemory 时,它会根据maxmemory-policy策略进行内存溢出控制,此时从节点数据已 经丢失,但主从复制流程依然正常进行,复制偏移量也正常。默认 情况下,Redis都是主节点。每个从节点只能有一个主节点,而主节点可以 同时具有多个从节点。复制的数据流是单向的,只能由主节点复制到从节 点。当master切换后,之前的发布与订阅依旧生效,不需要做多余的操作。通过上面的命令可以看到,默认安装的redis服务的路径是在。

2024-01-04 13:10:48 851

原创 System.Text.Json类库进行json转化时 ValueKind:Object 问题

webapi 当使用System.Text.Json类库进行json转化时,如果没有明确类型的基础类型,则会出现转换值为ValueKind:Object {xxxxx}等问题。通过自定义转换器实现。

2023-12-21 11:19:50 722

原创 uniapp-vue3微信小程序实现全局分享

监听用户点击页面内转发按钮(button 组件 )或右上角菜单“转发”按钮的行为,并自定义转发内容。注意:只有定义了此事件处理函数,右上角菜单才会显示“转发”按钮参数 Object object:此事件处理函数需要 return 一个 Object,用于自定义转发内容,返回内容如下:自定义转发内容 基础库 2.8.1 起,分享图支持云图片。示例代码在开发者工具中预览效果onShareTimeline()监听右上角菜单“分享到朋友圈”按钮的行为,并自定义分享内容。注意:只有定义了此事件处理函数,右上角

2023-10-11 16:02:48 3733 1

原创 C# 元组

选择类型时的一个重要考量是,是否需要对其进行序列化。序列化是将对象状态转换为可保持或传输的形式的过程。什么是可变的呢,其实就是可以get和set,举例说明,下面这段代码是不会出现错误提示的。匿名类型可用于表达式树,而元组不行。程序集:System.Runtime.dll。这个类型的属性是只读的(get),举例说明。)和匿名类型,但应进行一些权衡考虑。提供用于创造元组对象的静态方法。提供用于创建值元组的静态方法。优于使用匿名类型或元组类型。搞c#的都知道匿名类,比如。对比匿名类和元组的区别。

2023-07-03 10:13:46 346

原创 .NetCore消息总线 MessageBus

发布/订阅者模式增加了系统的可伸缩性,并提高了发送者的响应能力。降低程序(特别是cs程序)各个类之间的耦合度,在上位机开发中常常会遇到某一个page(form)调用另外一个page的功能,这样会出现多个page之间的引用,而且当一组数据产生多出影响或者行为的时候,大大降低了多个page之间的耦合。例如,发送者可能在发布消息后出现了异常,没有记录自己已经成功发送了消息,然后,发送者的新实例可能会启动并重复该消息。如果你的程序只有很少的订阅者,或者需要与子系统进行实时的交互,那么发布/订阅者模式是不适合的。

2023-06-26 09:40:25 253

原创 gRPC简介

关于更多proto3的语法请查阅语言指南(原型 3) |协议缓冲区文档 (protobuf.dev)C#版本的proto3协议基础知识查阅协议缓冲区基础知识:C# |协议缓冲区文档 (protobuf.dev)

2023-06-26 08:41:31 406

原创 SignalR 跨域问题(Vue3+Net6)

连接到 localhost URL 时,Internet Explorer 10 不会将其视为跨域连接,因此即使尚未在服务器上启用跨域连接,应用程序也会在本地使用 IE 10。,以便 CORS 中间件仅针对需要 CORS 支持 (的 SignalR 请求运行,而不是针对 .) Map 中指定的。网上找了一个多小时的SignalR的跨域问题,包括微软官网的一些说明都是这样的(下面这段在.net6中不好用)使用前后端分离技术,前端使用Vue,部署在独立的服务器上,后端接口部署在另外一个服务器上。

2023-06-20 13:50:18 1076

原创 SignalR服务主动发送消息给客户端

但是事与愿违,因为这里涉及到一个对象声明周期的问题,在调用Clients.All的时候会提示调用了一个已经释放的资源对象,具体错误如下:System.ObjectDisposedException:"Cannot access a disposed object.当服务端进行数据处理时(数据可能来源于非人工操作,比如各种控制器和信号源),需要将处理结果推送给客户端,进行实时数据显示。我这里使用了MessageBus的一个中间件,这样就实现了解耦,Messagebus的nuget包。在main函数中使用。

2023-06-20 09:56:37 682

原创 SignalR javascript 客户端

本文仅仅介绍如何通过使用signalRjs的库如何实现客户端,关于重连机制,服务端如何实现等不会介绍,如果需要知道服务端如何实现,请查看另外一篇文章。这里使用invoke的方法调用服务端的方法,第一个参数就是服务端的方法名,可以理解成controller的action(实际不是)通过上面的on函数,实现绑定服务端发过来的消息进行处理,因为服务端发送消息是包含一个函数名,也就是这边js中的。到此为止客户端的demo已经搭建完成。"接收到报警信息:"

2023-06-20 09:53:58 1622

原创 NetCore_signalR服务端

本文不介绍关于SignalR的原理内容,比如如何实现的长连接,如何实现双工通信,如何实现向下兼容的通信等等。到此为止一个服务端就做完了,运行起来也是看不到任何效果的。那么如何才能看到效果呢,请看下一篇文章。没有引入其他包,因为是WebApi项目,所以默认的asp.net的包都引入了。SignalR javascript 客户端。一个自己定义的Hub处理类,继承自Hub。

2023-06-20 09:52:58 1130

原创 .Net6 WebAPI 手动开启gRPC服务

Console.WriteLine($"接收到请求!});注意命名空间在GreeterService 中重写所有定义的方法否在在客户端调用服务端方法的时候,会出现异常。再通过对源码查看以后,发现所有的异常都是在自动生成代码中生成的,因为在自动生成的代码中所有的方法都抛出了一个异常,而没有写实现内容。其实这样做不是一个好的方式,生成的工具可以考虑生成一个抽象类,定义所有方法是抽象方法,这样用户在继承后,IDE就会提示错误,不用等到调用时才知道错了。

2023-06-19 19:17:38 1188

原创 .NetCore gRpc 客户端与服务端的单工通信Demo

ProtoBuf复制nanos字段表示从到的值。例如,decimal值1.5m将表示为。这就是此示例中的nanos字段使用sfixed32类型的原因:对于较大的值,其编码效率比int32更高。如果units字段为负,则nanos字段也应为负。

2023-06-19 19:04:20 1753 2

原创 C# 版 雪花ID

具体地,在每次生成ID时,都需要获取当前的系统时间戳,并与上一次生成ID时使用的时间戳进行比较。如果发现当前的时间戳小于等于上一次的时间戳,则说明系统时钟发生了回拨,此时可以抛出异常或者阻塞等待,直到系统时钟追上之前的时间戳。雪花ID广泛应用于分布式系统中。“雪花ID”(Snowflake ID),那么它是一种分布式系统中的唯一性标识符,可以保证在分布式环境下生成全局唯一的ID。总之,雪花ID是分布式系统中非常实用的工具之一,可以很好地解决全局唯一性的问题,进而帮助分布式系统更好地运转和管理。

2023-06-13 10:28:29 2119

转载 [转]MySQL忘记密码,重置root密码(纯步骤)

再次输入命令“ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’;”修改root账户的密码。原文链接:https://blog.csdn.net/qq_42307920/article/details/127049565。3、以管理员方式启动新的cmd命令提示符窗口,并进入mysql安装的bin目录。如果报错找不到命令“mysql”,可以输入“.\mysql”5、输入命令“use mysql;4、直接输入“mysql”进入mysql工作台界面。

2023-05-30 08:11:57 956

原创 利用ECharts实现winform中的可视化图表

如今web端的图表可以说是非常丰富且用起来方便,ECharts已经非常成熟了,如果在winform中使用那就太好了。使用winfrom程序封装一个web控件,然后进行展示就可以了,说干就干!在窗体加载后,将webview的url给到指定的html文件就可以了。按照ECharts官网搞了一个折线图,效果如下。到此一切都挺好,能正常显示了。在winfrom的工具箱中就能看到控件了。引入Web.View2。html的完整代码如下。

2023-05-04 12:48:50 1975 5

原创 Kestrel封装在Winform中

需求,已经开发了一款winform程序,并且是4.6.1版本的,如今为了和第三方对接,需要在这个winform上提供WebAPI的接口。因为第三方的程序是一份没有源码的程序。考虑4.6.1 版本刚好支持了netcore,所以可以将kestrel服务集成到winform中,直接提供webapi服务在使用nuget引入的时候会将关联的全部引入进来,完整的packages.conf

2023-04-28 12:52:15 1718 1

原创 .Net Framework 4.6.1+版本的Winform程序开启Web服务,支持Http webapi

@TOP在很久以前为了满足需求,已经开发了一款winform程序,并且是4.6.1版本的,如今为了和第三方对接,需要在这个winform上提供WebAPI的接口。因为第三方的程序是一份没有源码的程序。考虑4.6.1 版本刚好支持了netcore,所以可以将kestrel服务集成到winform中,直接提供webapi服务在使用nuget引入的时候会将关联的全部引入进来,完整的packages.config文件如下新建一个Startup类(叫什么名字都行)代码如下修改Program文件增加一个启动w

2023-04-25 13:06:48 2438 1

原创 Android 布局 Fragment

实际上,如果您要将现有 Android 应用转换为使用片段,可能只需将代码从 Activity 的回调方法移入片段相应的回调方法中。使用此类创建对话框可有效代替使用 Activity 类中的对话框辅助方法,因为您可以将片段对话框纳入由 Activity 管理的片段返回栈,从而使用户能够返回清除的片段。如要为您的片段绘制界面,您从此方法中返回的 View 必须是片段布局的根视图。比如,会留出比较大的空白的空间,所以,为了解决这种问题,谷歌在Android 3.0的时候推出了Fragment。

2023-04-13 09:29:50 595

原创 .net开发安卓从入门到放弃 最后的挣扎(排查程序闪退问题记录-到目前为止仍在继续)

ps:写在前面,这里只是记录一些方法,如果您有不同于这里的方法,希望能留言,给我指明方向!以下的这些方法能够查到一些端倪,但是没办法定位到问题的位置,所以到写这个记录的时候还没有解决闪退问题。导出日志到文件adb logcat -v time >d:\b10.txtcom.BOSHIAC.agvapp

2023-03-30 09:17:16 792 2

原创 adb 常用命令记录

adb shell monkey -v -v -p 桌面包名 --pct-touch 50 --pct-motion 30 --pct-syskeys 20 --throttle 300 -s 200 200000。offline情况解决办法,先执行adb kill-server 命令,再执行adb start-server 命令,再尝试adb devices 查看列表,如果还是offline,来来来,使用必杀技,重启大法。

2023-03-29 09:36:09 603

原创 广度优先寻路算法(一)

ps:写在前面,当时只是在一个纵横交错的库房内寻找到从A到B的路径,并没有最短最优的要求。

2023-03-28 13:00:36 417

原创 .net开发安卓从入门到放弃

有一些在android studio中很容易实现的功能,在.net下实现起来很困难,或者完全实现不了,比如launcher功能,在.net下超级麻烦,我最后也没能实现,但是在java中仅仅需要几行配置文件就可以搞定。所以,奉劝看到这篇文章的各位朋友,如果你有想要使用.net开发安卓的想法,我劝你浅尝可以,千万别拿来做复杂项目,我自己开发了一个多月的感受罗列一下,不一定正确,仅作参考。

2023-03-12 11:14:37 1017

原创 vs2022 实现无线调试安卓(Windows)

需要主动连接一下(这里的ip是设备IP,端口不是刚刚pair的端口了,应该是如下图的这个端口)按照上面格式输入 ip,端口和code后会提示连接成功。在vs这里就可以选择刚刚连接的那个设备了。多点击几次版本号后就打开了开发者模式。到此就可以进行无线调试了。有可能出现设备列表是空。

2023-02-21 09:02:11 2110

原创 .net开发安卓入门-自动升级(配合.net6 webapi 作为服务端)

xamrind.android 自动更新 apk 自动安装升级包含服务端和客户端

2023-02-19 22:54:31 1210

转载 【转】.net开发安卓入门-播放声音

1.对于延迟度要求不高,并且希望能够更全面的控制音乐的播放,MediaPlayer比较适合2.声音短小,延迟度小,并且需要几种声音同时播放的场景,适合使用SoundPool3.播放大文件音乐,如WAV无损音频和PCM无压缩音频,可使用更底层的播放方式AudioTrack。它支持流式播放,可以读取(可来自本地和网络)音频流,却播放延迟较小。ps:据我测试AudioTrack直接支持WAV和PCM,其他音频需要解码成PCM格式才能播放。(其他无损格式没有尝试,有兴趣可以使本文提供的例子测试一下)

2023-02-18 21:56:37 193

转载 C#与C/C++的交互

我们知道在大多数的静态语言中定义变量的时候都要先指定其数据类型,所谓数据类型,都是人们强加的一个便于记忆的名称,究其本质就是指明了这个数据在内存里到底是占用了几个字节,程序在运行的时候,首先找到这个数据的地址,然后再按着该类型的长度,读取相对应的内存,然后再处理。前面说明的都是简单数据类型的及其指针的传递,利用PInvoke我们也可以实现函数指针的传递,C#中并没有函数指针的概念,但是可以使用委托(delegate)来代替函数指针,关于C#中委托的说明,可以参考笔者前面的一个文章:《C#委托及事件》

2023-01-25 16:15:11 1549

原创 .net开发安卓入门-Dialog

【代码】.net开发安卓入门-Dialog。

2023-01-15 09:07:29 262

原创 .Net 线程安全 (细粒度锁定、无锁机制以及lock)

在多线程操作过程中,最省事的安全操作关键字就是lock,但是这会影响到多线程操作的性能。.NET Framework 4 引入了 System.Collections.Concurrent 命名空间,其中包含多个线程安全且可缩放的集合类。 多个线程可以安全高效地从这些集合添加或删除项,而无需在用户代码中进行其他同步。 编写新代码时,只要将多个线程同时写入到集合时,就使用并发集合类。简单来说使用上述的对象进行多线程之间操作的时候都能确保线程安全例子中使用一个主线程往队列中写入一些数据,然后分10个线程进行读

2023-01-13 10:27:29 1400

原创 Kestrel封装在WindowService中(.net5,.net6,.net7三个版本的介绍)

在一些开发过程中,会在局域网内搭建webapi服务作为移动端的服务接口使用,但是每次实施人员要到客户现场安装iis等工具,还有一些web的配置,非常繁琐,所以想着把webapi封装到WindowService中,可以通过自定义的安装程序进行一键部署,岂不美哉!因为.net6的改版,已经没有Startup文件了,而且程序的启动已经不再使用IHostBuilder接口了。之前做过.net5版本的处理,觉得挺简单的,但是到.net6的时候遇到了一些问题,所以下面都会记录。发布到本地目录,如下图。

2023-01-10 13:02:07 1422 2

原创 .net开发安卓入门-文件操作与配置操作

SharedPreferences是Android平台上一个轻量级的存储辅助类,用来保存应用的一些常用配置,它提供了String,set,int,long,float,boolean六种数据类型。SharedPreferences的数据以键值对的进行保存在以xml形式的文件中。在应用中通常做一些简单数据的持久化缓存。如果程序中有一些固定的配置文件,例如NLog中的nlog.config,或者一些不需要写入的才可以,因为Assets是只能读,不能写的。在Activity中。

2023-01-09 14:52:50 729

原创 .net开发安卓入门 - ImageView 显示网络图片

网上还有一些办法就是升级到https服务接口,这个需要证书什么的,在短时间内没有的用户是比较麻烦的。后来看了网友的文章受到启发,需要将网络图片先下载到本地,生成bitmap内存后才可以显示。方法直接将网络图片的url写进去就可以了,但是无论怎么样都不能显示网络图片。到此遇到的问题都已经解决完了。可以正确显示图片内容了。AndroidManifest.xml文件增加。想的挺好,错误来了。

2022-12-29 10:23:41 1125

原创 .net开发安卓入门 - 打包(.apk)

选中刚刚创建的签名信息,然后点击另存为出现如下图信息,填写刚刚的证书密码即可。

2022-12-28 08:35:35 919

原创 .net 移动开发 MAUI

如果有WPF开发经验,对于xaml语法相当熟悉,唯一的区别就是一些控件和属性的调整。有MVVM框架基础,对当前结构理解起来就更容易一下,特别是cliburn。AppShell文件就相当于pages文件。整体开发的结构可以理解成小程序的方式。

2022-12-13 16:41:01 792

原创 .net开发安卓入门 - Service (服务)

移动应用不像桌面应用。桌面具有大量资源,如屏幕空间、内存、存储空间和连接的电源,移动设备不会。这些约束强制移动应用的行为方式不同。例如,移动设备上的小屏幕通常意味着一次只显示一个应用 (,即活动) 可见。其他活动将移动到后台,并推送到无法执行任何工作的挂起状态。但是,仅仅因为 Android 应用程序处于后台并不意味着应用无法继续工作。活动、广播接收器、Intent和服务。活动是许多出色的 Android 应用程序的基石,因为它们提供了允许用户与应用程序交互的 UI。

2022-12-13 15:43:15 928

原创 .net开发安卓入门 - 四大基本组件

绑定服务会提供客户端-服务器接口,以便组件与服务进行交互、发送请求、接收结果,甚至是利用进程间通信 (IPC) 跨进程执行这些操作。多个组件可同时绑定到该服务,但全部取消绑定后,该服务即会被销毁。服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。在应用需要拨打电话号码时的显式广播示例它会分派一个目标,该意向面向 Android 上的电话应用,并沿要拨打的电话号码传递。注意:如果您的应用面向 API 级别 26 或更高版本,当应用本身未在前台运行时,系统会对运行后台服务施加限制。

2022-12-13 12:59:39 884

winform提供webapi服务,实现双向http通信

@[TOP](Winform程序开启Web服务) # 背景 在很久以前为了满足需求,已经开发了一款winform程序,并且是4.6.1版本的,如今为了和第三方对接,需要在这个winform上提供WebAPI的接口。因为第三方的程序是一份没有源码的程序。 # 思路 ## 方法1 - 网上有很多自写web服务的功能,个人觉得过于麻烦,而且还要考虑一些路由规则什么的,太难了 ## 方法2 - 使用iis或者nginx提供服务,一个web程序和一个winform程序实现通信,需要做两个程序,还要交互,麻烦 ## 方法3(本文使用的方法) 考虑4.6.1 版本刚好支持了netcore,所以可以将kestrel服务集成到winform中,直接提供webapi服务 # 实现 ## 在winform程序中引入几个nuget包 Microsoft.AspNetCore Version="2.1.7" Microsoft.AspNetCore.Mvc Version="2.1.3" 在使用nuget引入的时候会将关联的全部引入进来,完整的packages.config文件如下

2023-04-25

自动更新apk,xamarin.android 对话框

@[TOC] # 思路 - 服务端提供版本信息和apk下载地址 - 客户端通过对比版本进行文件下载安装升级 # 客户端 ## 权限清单(AndroidManifest.xml) ```xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0.2" package="com.companyname.boshiac.forklift.app" android:installLocation="auto"> <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="33" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="

2023-02-19

Kestrel封装成WindowServer.zip

背景 在一些开发过程中,会在局域网内搭建webapi服务作为移动端的服务接口使用,但是每次实施人员要到客户现场安装iis等工具,还有一些web的配置,非常繁琐,所以想着把webapi封装到WindowService中,可以通过自定义的安装程序进行一键部署,岂不美哉! 这篇文章主要是记录如何将Kestrel的服务封装在WindowService中 关于WindowsServer 请参考如下这篇文章 .netcore worker service (辅助角色服务) 的上手入门,包含linux和windows服务部署 开发服务 之前做过.net5版本的处理,觉得挺简单的,但是到.net6的时候遇到了一些问题,所以下面都会记录 .NET5版本 建项目 新建一个webapi项目,如下图 添加Controller using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; namespace WebApiNet_v5.Controllers { [Route("api/[controller]")]

2023-01-10

C# NModbus 操作

# Modbus 协议简介 Modbus通信协议具有多个变种,支持串口(主要是RS-485总线),以太网多个版本,其中最著名的是Modbus RTU,Modbus ASCII 和Modbus TCP三种。在工业现场一般都是采用Modbus RTU协议,一般大家说的基于串口通信的Modbus通信协议都是指Modbus RTU通信协议。 与Modbus RTU协议相比较,Modbus TCP协议则是在RTU协议上加一个MBAP报文头,并且由于TCP是基于可靠连接的服务,RTU协议中的 CRC校验码就不再需要,所以在Modbus TCP协议中是没有CRC校验码的,所以就常用一句比较通俗的话来说:Modbus TCP协议就是 Modbus RTU协议在前面加上五个0以及一个6,然后去掉两个CRC校验码字节就OK。虽然这句话说得不是特别准确,但是也基本上把RTU与TCP 之间的区别说得比较清楚了。 ## Modbus的功能码 |功能码 | 含义 | |--|--| | 0x01 |读线圈 | | 0x02 |读离散量输入 | | 0x03|读保持寄存器 | | 0x04

2022-11-17

C# 文件压缩解压与sqlite存储文件数据

使用C#对文件进行压缩和解压操作,并且将压缩的文件数据存储到sqlite中。在使用的时候将sqlite中的文件数据读取下来,进行解压到本地进行二次操作。 用途:用于文件存储与部署操作等。

2022-11-17

libssl-1_1-x64.dll

解决这个问题的dll 无法定位程序输入点 OPENSSL_sk_new_reserve 于动态链接库 xxx\libssl-1_1-x64.dll

2020-05-19

ORACLE与SQLSERVER中的语法区别

详细的描述了ORACLE和SQLSERVER中部分方法的区别和使用中遇到的坑

2015-10-13

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除