- 博客(155)
- 资源 (4)
- 收藏
- 关注
原创 Modbus Tcp 协议 讲的比较仔细
https://www.cnblogs.com/Kirito-Asuna-Yoyi/p/ModbusTCP.html
2025-12-02 15:55:13
103
原创 ROS2 命令大全
每一个功能包都有一个标配的manifest.xml文件,用于记录这个包的名字,构建工具,编译信息,拥有者,干啥用的等信息。通过这个信息,就可以自动为该功能包安装依赖,构建时确定编译顺序等。#列出turtlesim功能包的所有可执行文件。查看小乌龟模拟器功能包的信息。#输出某个包所在路径的前缀。列出包的清单描述文件。
2025-10-31 13:39:12
39
原创 C++ Restfull API
Crow是一个轻量级的C++微框架,借鉴了Python的Flask,支持路由、模板和JSON处理。Crow是一个头文件库,只需包含相应的头文件即可使用从。
2025-10-21 16:59:52
409
原创 C++ websocket通信
WebSocketpp 是一个跨平台的开源(BSD 许可证)头部专用 C++库,它允许将 WebSocket 客户端和服务器功能集成到 C++程序中。WebSocketpp 同时支持 HTTP 和 Websocket 两种网络协议, 比较适用于我们本次的项目, 所以我们选用该库作为项目的依赖库用来搭建 HTTP 和 WebSocket 服务器。• 可移植性:Posix/Windows、32/64bit、Intel/ARM。• 支持 HTTP/HTTPS、WS/WSS、IPv6。1.2 编写测试程序。
2025-10-20 16:35:54
256
原创 linux 脚本后台运行
在新建终端直接运行脚本,在终端关闭后会向该终端启动的进程发送SIGHUP信号,脚本会停止运行,为了解决在终端关闭后仍然能够继续运行脚本,有2种方式去解决。在trap命令行中,只需要列出希望shell执行的命令,以及希望捕获的信号列表(以空格分隔)。指定信号可以通过它们的数值或Linux信号名实现。如果脚本收到trap命令中列出的信号,它将保护该信号不被shell处理,并在本地处理它。还可以在信号出现时捕获信号和执行其他命令。格式: nohup test.sh &
2025-10-15 14:53:32
178
原创 nanomsg 消息队列
在两个节点间实现简单的一对一双向通信,允许两个节点互相发送消息让对方接收,对发送、接收都没有限制。PIPELINE :汇总来自多个来源的消息,并在许多目的点之间进行负载平衡。主要有下面函数 都在 nanomsg/nn.h文件中定义。REQREP :允许构建无状态集群来处理用户请求。SURVEY :允许一次查询多个应用程序的状态。PUBSUB :将消息分发给订阅消息的用户。2.1 PAIR :简单的一对一通信。PAIR :简单的一对一通信。BUS:简单的多对多通信。下载最新最新版本的源码。
2025-09-11 16:20:52
723
原创 dtls 通信测试
如果需要编译server-dtls13-event.c 需要安装apt-get install libevent-dev。解压后进入dtls目录,更改Makefile 中 WOLFSSL_INSTALL_DIR 为wolfssl库的安装路径。采用wolfssl开源库,该库支持DTLS1.3。1.下载wolfssl 最新版本。3. 下载wolf的测试例子。
2025-09-09 16:14:58
385
原创 C++ 版本的消息队列
1. cppzmq GitHub - zeromq/cppzmq: Header-only C++ binding for libzmq2. Simple-AMQP-Client GitHub - alanxz/SimpleAmqpClient: Simple C++ Interface to rabbitmq-c
2025-09-05 17:59:08
7
原创 dtls 编程
Qt官方示例-DTLS服务器-腾讯云开发者社区-腾讯云2. DTLS-exampleDTLS-Examples 项目教程-CSDN博客DTLS-Examples 项目常见问题解决方案-CSDN博客
2025-08-29 16:51:37
8
原创 十五、POCO学习总结之时间戳、日期和时间(格式化与解析)、时区、本地时间
Poco::Timestamp是Poco中时间戳。头文件 #include “Poco/Timestamp.h”Poco::Timestamp它存储一个基于UTC的64位时间值,(高达)微秒分辨率。实际的分辨率取决于操作系统。由于Poco::Timestamp是基于UTC的,所以它独立于时区(并对其进行更改)。Poco::Timestamp支持值语义、比较和简单算术。
2025-08-26 17:06:09
247
原创 十四: POCO学习之随机数、密码
通过反复调用Poco::DigestEngine的update()方法,将数据传入算法中,当所有数据都传递给Poco::DigestEngine后,调用digest()方法来获取加密后的数据。Poco::DigestInputStream和Poco::DigestOutputStream允许对写入输出流或从输入流读取的所有数据进行摘要计算。Poco::DigestEngine必须传递给流的构造函数。如果不使用seed(),POCO:::Random的构造函数只使用当前日期和时间生成伪随机数。
2025-08-26 16:07:02
582
原创 十三、Poco库学习之字符串操作
POCO提供一些函数来处理 std::string 和 std::wstring;比如:去除空格大小写转换不区分大小写比较字符转换和子字符串替换连接许多函数有两种变体:返回一个新字符串而不修改原字符串的函数;直接修改原始字符串的函数(函数名后面附加了inPlace);所有函数都在Poco命名空间中。2、去除空格2.1 说明std::[w]string trimLeft(const std::[w]string& str):返回str副本,副本中前面的空格将被删除。
2025-08-26 11:47:58
547
原创 十一、Poco库学习之文件文件系统(路径、文件属性、目录浏览、临时文件等)
Window:注意linux没有 node name 和 device name。
2025-08-25 16:09:37
526
原创 九、Poco库学习之进程、管道、进程间同步、共享内存
2)Poco::Process::times(long& userTime, long& kernelTime):返回当前进程分别在用户模式和内核模式下执行的秒数。1)Poco::Process::PID Process::id():返回当前线程的进程ID。这个两个方法类似于线程同步原语Poco::Mutex和Poco::Event。Poco::Pipe:用于新进程的标准输入、标准输出和标准错误通道。Poco::PipeOutputStream:输出管道。Poco::Process中的所有方法都是静态的。
2025-08-22 11:46:47
338
转载 七、Poco库学习之通知Notifications和事件Events
有值语义的变量,变量赋值可以转换成内存的逐位复制(bit-wise-copy)。关于“值语义”请参考博客:https://www.cnblogs.com/ly8838/p/3929025.html。
2025-08-21 17:33:07
5
原创 五、Poco库学习之Poco::Task Poco::Activity
应用Poco任务时,需要类Poco::Task和类Poco::TaskManager配合使用。活动方法的默认行为不符合“经典”活动对象的定义,活动对象的方法在单个线程中排队等待执行执行。c. 为了能够在任务运行时终止任务,必须在子类的runTask()函数中,周期性的调用isCancelled()或者sleep()函数,去检查是否有任务停止请求。b. 为了完成进度上报的功能,在子类的runTask()函数中,必须周期的调用setProgress()函数去上报信息。活动可以在任何时候停止。
2025-08-20 17:18:09
499
原创 四、POCO学习之线程、线程池、同步
Poco中线程类是Poco::Thread,在基础库Foundation中,对应动态库libPocoFoundation.so;使用时,需要包含头文件:#include “Poco/Thread.h”1.2.1 名字和ID可以给每个线程起一个名字(通过构造函数、或者setName());
2025-08-20 11:40:54
8
转载 fast-DSS ubuntu编译与测试
注意asio库 不能在windows 环境下 git clone下载,否则会出现 shell脚本执行出错误问题。
2025-04-30 15:33:15
4
原创 windows libmodbus 编译
Windows中libmodbus库在Visual Studio中的使用_libmodbus windows-CSDN博客
2025-03-25 15:36:46
11
原创 3.订阅 Edgex的消息总线的消息
Edgex的消息总线 有3种类型,ZeroMQ MQTT Redis ,通常都是Redis ,在设备驱动configuration.toml文件中[MessageQueue] 字段下也定义了消息总线类型。订阅消息来自通道msgChannel 然后将json格式解析为requests.AddEventRequest 格式。创建程序SubMsg.go 订阅主题 匹配edgex/events/# 主题的消息。订阅消息总线 可以参考。
2025-02-18 17:11:18
34
原创 C++ redis测试
使用cmake-gui 选择 如果不需要SSL 和 异步则不需要安装libevent-dev libssl-dev。1.安装 apt-get install autogen automake libtool。编译hiredis-1.2.0。
2025-01-20 16:51:22
273
原创 1. device-virtual 设备服务测试
添加完成后 可以看到有许多下面的 command ,这些command 列表显示的是device.virtual.int.yaml文件中 deviceResources 及 deviceCommands 列表下面 isHidden为false 所有的资源和命令。默认使用res/profiles res/device下面的文件 ,可手动删除面板下面的所有的device 和profile。http://[host]:59882/api/v2/device/name/设备名称/资源名字或者命令名字。
2025-01-14 17:37:12
34
原创 2. 官方device-virtual设备服务 测试
如果该设备服务器和edgex 不在一个主机上, [Service] 下面 Host 填写设备服务所在的主机地址。添加完成后 可以看到有许多下面的 command ,这些command 列表显示的是device.virtual.int.yaml文件中 deviceResources 及 deviceCommands 列表下面 isHidden为false 所有的资源和命令。默认使用res/profiles res/device下面的文件 ,可手动删除面板下面的所有的device 和profile。
2025-01-14 17:33:20
29
原创 三、Poco学习之内管管理 引用计数、共享指针、缓冲区管理
当Poco::AutoReleasePool被销毁(或者它的release()方法被调用)时,它通过调用每个对象的release()方法释放对它持有的所有对象的引用。对于内存的管理, Poco C++库中主要包含了引用计数,智能指针,内存池等几个部分。时代的内存池,主要解决内存碎片,和内存的频繁获取和释放的开销问题。和 C#的垃圾收集,在语言层次分装,所有的对象都在堆上分配,然后交由语言本身管理,对于 C 和 C++来说,堆上内存的管理是交由程序员完成的,程序员如果在堆上分配。个特殊的种类,装备制造业。
2025-01-02 16:51:58
586
原创 二、Poco学习之错误处理和调试、获取系统信息
std::string get(const Std::string& name):返回环境变量的值,如果变量未定义,抛出Poco::NotFoundException。std:: string nodeId ():返回在系统上找到的第一个以太网适配器的以太网地址,格式为xx:xx:xx:xx:xx(如果没有以太网适配器,则返回全零)。所有POCO异常都是POCO::Exception的子类,Poco::Exception派生自std:: Exception。类似Poco::DNS::hostName()
2025-01-02 15:12:08
481
原创 一、POCO学习之类型和字节序
POCO为固定大小的整数定义了类型头文件:#include “Poco/Types.h”Poco::Int8Poco::IntPtr, Poco::UIntPtr:与指针大小相同的整数(32 or 64 bits)POCO有两个宏来确定long类型和指针类型的大小。如果指针为64位,则有宏定义:POCO_PTR_IS_64_BIT,否则无如果long为64位,则有宏定义:POCO_LONG_IS_64_BIT,否则无3.1 本机字节序。
2025-01-02 14:34:52
248
原创 十二、POCO学习之流(文本编解码、数据压缩、文件读写流等)
Base64使用数字、大小写字符,以及’+‘和’-'来编码6位组。编码后的数据占用的空间是原始数据的1.33倍。Base64和HexBinary都可以用来编码任意二进制数据,只使用可打印的ASCII字符。HexBinary使用数字和字符’A’到’F’来编码4位的组。编码的数据占用两倍的空间。POCO提供了用于编码和解码Base64和HexBinary格式数据的过滤器流类。
2024-12-31 17:36:13
27
原创 八、Poco库学习之socket编程
客户端用到的类Poco::Net::StreamSocket。服务端用到的类Poco::Net::ServerSocket。服务端轮询用的到类 Poco::Net::PollSet。
2024-12-18 13:19:14
590
原创 go 包管理
GO111MODULE=auto,当项目在GOPATH/src目录之外,并且项目根目录有go.mod文件时,开启gomodule。GO111MODULE=on启用gomodule,编译时会忽略GOPATH和vendor文件夹,只根据go.mod下载依赖。go mod tidy //把项目所需要的依赖添加到go.mod,并删除go.mod中,没有被项目使用的依赖。终端下输入下面命令,包自动下载到 GOPATH下的pkg/mod 下面,同时更新 go.mod go.sum文件。
2024-11-01 16:55:40
506
原创 0.Edegex Foundry docker和源码安装
edgex文档下载在线文档查看首先要安装python3环境然后后安装 打开超级终端在浏览器中输入 http://127.0.0.1:8000/edgex-docs/2.3/ 即可打开在线文档edgex入门可以参考 https://blog.csdn.net/bxjie/article/details/113860800。
2024-09-12 15:41:17
957
原创 go 调用C语言函数或者库
通过 import “C” 语句启用 CGO 特性后,CGO 会将上一行代码所处注释块的内容视为 C 代码块。将编译后的动态库拷贝至系统lib路径 ,或者自定义路径下 然后修改/etc/ld.so.conf。在go安装目录 src\cmd\cgo 中定义。2. go程序中加入 import "C"GO语言与C语言的数据类型对应表。5.go与c数据转换可以参考。多行注释使用/* */3. go 与C 类型转换。1.查看cgo是否开启。使用动态库序号包含3行。执行ldconfig。
2024-08-14 18:09:45
639
转载 Source Insight 3.5的golang语言扩展及其设置
Source Insight 3.5的golang语言扩展及其设置_source insight3.5导入go-CSDN博客
2024-07-19 16:08:37
143
ESP32 基于4G模块透传 模式 实现MQTT通信
2023-02-27
程序出厂及升级自动化打包工具
2023-02-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅