编程
Java、dotnet、C++等
PascalMing
IT老兵 Git Hub/gitee:PascalMing
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
使用豆包大模型语音合成API生成语音文件
豆包语音合成API使用指南:注册火山引擎账号后获取APPID和AccessToken,下载Demo工程并配置参数(包括音色类型、文本内容等),通过VS2026编译运行即可生成.wav音频文件。注意部分缩写(如"2B")的读音可能不符合预期。GitHub提供简化参数的Demo工程供参考。原创 2025-11-10 16:51:55 · 799 阅读 · 0 评论 -
C# .Net8 WinFormsApp使用日志Serilog组件
本文介绍了在C# .NET8 WinForms应用中使用Serilog日志组件实现窗体日志显示的完整方案。通过自定义QueueLogSink将日志输出到并发队列,配合TextBox控件实现高效日志显示(替代RichTextBox提升性能)。关键点包括:1)正确配置Serilog组件包(共13个NuGet包);2)使用JSON文件配置日志级别和输出目标;3)实现日志队列管理器和定时器刷新机制;4)处理大日志量时的内存优化(限制最大行数)。该方案支持多日志级别输出,同时显示到控制台、调试窗口、日志文件和窗体界面原创 2025-08-31 17:01:55 · 397 阅读 · 0 评论 -
Ruoyi多主键表的增删改查
本文介绍了在Ruoyi框架中如何适配多key联合主键的数据表操作。主要修改包括:1) HTML前端通过拼接参数传递多个主键值;2) Controller层修改编辑和删除接口,采用路径参数接收多个主键;3) Service层和Mapper层统一使用实体对象作为参数,在SQL中通过联合条件定位记录。修改重点是确保前端参数传递与后端接口接收的一致性,以及在数据操作时正确使用联合主键条件。该方案适用于需要处理复合主键的业务场景。原创 2025-06-05 23:15:41 · 514 阅读 · 0 评论 -
若依Ruoyi中优先从本地文件加载静态资源
在 Spring Boot 中,若要让优先加载 JAR 包内的资源,可通过合理设置资源位置的顺序来达成。因为 Spring 会按照资源位置配置的先后顺序进行搜索,所以把 JAR 包内的资源路径放在前面就能实现优先加载。配置说明:Spring 会按照addResourceLocations方法中路径的顺序去搜索资源。在上述例子中,会先搜索 JAR 包内classpath:/static/路径下的资源,若找不到,才会去搜索外部文件系统file:./static/路径下的资源。原创 2025-06-04 23:03:33 · 776 阅读 · 0 评论 -
C# 通过脚本实现接口
本文介绍了在C#中通过脚本直接实现接口的方法,替代了传统的委托注入模式。作者在AI的提示下,尝试使用脚本动态或指定新类型创建接口实现对象。虽然代码稍显复杂,但脚本部分更加简洁和有条理。文章详细列出了所需的引用包,并提供了接口定义和验证文件的示例。加载和验证代码展示了如何读取外部代码文件、编译、检查错误、生成程序集,并最终创建接口实现对象。该方法通过内存中生成程序集,实现了动态加载和调用接口实现类,展示了C#在动态编程中的灵活性。原创 2025-05-14 23:24:13 · 641 阅读 · 0 评论 -
C#简易Modbus从站仿真器
C#使用NModbus库,编写从站仿真器,支持Modbus TCP访问,支持多个从站地址和动态启用/停用从站(模拟离线),支持数据变化,可以很方便实现,最终效果如图所示。原创 2025-05-08 22:15:41 · 610 阅读 · 0 评论 -
ubuntu 24.02部署java web服务
ubuntu 24.02 版本推荐使用jdk 21版本部署java web服务,开发后先使用sudo java -jar xxx.jar验证运行结果。启动依赖,在mysql.service启动后加载,避免服务运行时mysql还没有加载完成。sudo journalctl -u webmgr.service -f #查看运行日志。sudo systemctl enable webmgr #开机启动。sudo systemctl start webmgr #启动。原创 2025-04-16 23:46:14 · 370 阅读 · 0 评论 -
InfluxDB写入测试
早几年测试时序库时,采集数据到kafka,然后用不同数据进行存储验证。Influxdb是花时间比较多的,它的数据建模方法、读写方法都需要使用特殊的API。时间久了自己也经常忘记,把当时的测试关键代码记录下来,也方便日后查找。 代码基于java编写。 1、接口数据定义,clientid+tag组合必须唯一2、数据写入原创 2025-03-16 22:52:29 · 442 阅读 · 0 评论 -
Influxdb cli删除数据步骤
1、下载cli客户端 https://dl.influxdata.com/influxdb/releases/influxdb2-client-2.7.5-windows-amd64.zip,解压到指定目录。5、执行处理命令,命令格式建议参考https://docs.influxdata.com/influxdb/v2/reference/cli/influx/3、运行powershell,进入第1步解压的客户端目录。下面命令是删除所有指定库和测量名数据的命令。4、配置token,以本机访问为例。原创 2025-03-16 22:33:01 · 1258 阅读 · 0 评论 -
MQTTnet库的MQTT Client证书连接模式
在证书连接模式下,我们一般可以获取到的是ca.crt、client.crt和client.key,并不能直接得到pem和pfx文件,这时需要转换使用openssl来转换。MQTT为了加强安全性,是支持Tls的安全模式连接的。在安全连接模式下,默认的服务端口由1883变更为8883,且使用CA证书来保证通讯双方的安全性。在openssl的命令行下,执行两个转换语句,即可实现pem和pfx的转换。原创 2024-07-24 22:50:16 · 1920 阅读 · 0 评论 -
C# 日志框架Serilog使用
C#日志框架Serilog支持多种场景输出,简单验证了一下,比较方便包的安装,推荐直接使用“推荐NuGet包管理器”安装Serilog.AspNetCore,常见的组件都已经集成在一个包中,使用比较方便。原创 2024-06-24 00:24:18 · 1595 阅读 · 0 评论 -
C#使用NPOI保存DataGridView数据到EXCEL文件
C# DataGridView可以显示各种表格数据,有时需要将结果保存到EXCEL文件中。开源库NPOI支持EXCEL格式文件的读写,可以使用NPOI编写通用的方法,自动将DataGridView控件表格数据保存到EXCEL文件。原创 2024-03-12 23:57:28 · 1241 阅读 · 0 评论 -
C# OMRON PLC FINS TCP协议简单测试
FINS/UDP运用的是一种嵌套格式数据包,即Ethernet报头、IP报头、 UDP报头和FINS帧。一个UDP数据段(FINS 帧)超过1472字节将被分成若干个数据包来传送。分开的UDP数据将在UDP/IP协议层自动组合。通常不须要关注运用 层的数据分段,但是在一个多层 IP网络中1427字节的UDP包可能无法 发送。在这种系统中就须要运用 FINS/TCP方式。ICF为信息控制域,用于标明指令和响应;RSV为系统保留;GCT为网关允许数目;DNA为目的网络号;DA1为目的节点号;原创 2024-02-04 22:55:39 · 3528 阅读 · 0 评论 -
C# .Net6搭建灵活的RestApi服务器
C# .Net6后支持顶级语句,更简单的RestApi服务支持,可以快速搭建一个极为简洁的Web系统。推荐使用Visual Studio 2022,安装"ASP.NET 和Web开发"组件。原创 2024-01-23 23:21:03 · 1808 阅读 · 0 评论 -
C#灵活的任务调度组件FluentScheduler
FluentScheduler是一个C#的灵活的任务调度组件,支持各类任务调度。网上有很多演示代码,此处记录下来,方便自己查找。原创 2024-01-14 22:39:53 · 1642 阅读 · 0 评论 -
Access数据库C#读写验证
Access数据库是一个相当古老的文件型数据库,主打一个简单+方便,没有复杂的安装过程,没有庞大的后端管理,整个数据库就是一个文件。可以像普通文件一样复制和修改,可以同时读写。 在小型系统中,还是有较多的存量系统在使用Access数据库,相对简单的文件存储,还是有很大的进步。Access是关系型数据库,数据是结构化存储,数据的关系和格式,相对文件严谨很多。原创 2024-01-01 17:47:58 · 1449 阅读 · 0 评论 -
C# Microsoft.ClearScript.V8脚本使用
Microsoft.ClearScript.V8就是一个.NET绑定到Google V8的脚本引擎。它允许.NET应用程序直接从JavaScript代码中调用函数,并返回JavaScript类型。ClearScript.V8可以使用各种JavaScript库(比如jQuery)来提高工作效率,也可以使用它来测试JavaScript代码原创 2023-05-07 11:23:46 · 5524 阅读 · 0 评论 -
Windows下使用Inpout库直接读写IO设备端口
Windows2000以后,随着系统安全性的提高和驱动机制的改变,设备的I/O操作需要ring0权限,在应用的ring3已经很难使用。早期有WinIo库流行过一段时间,最近有个特殊的需求要在Win7/Win2019/Win10下操作I/O,发现WinIo已经不好使,即使后面更新的WinIo3.0也有驱动签名的问题,不容易使用。后来网上找到了开源的Inpout库,有32位和64为版本,仅安装时需要管理员权限,使用时普通权限即可,非常方便。原创 2023-03-18 22:27:37 · 2913 阅读 · 0 评论 -
C#开发OPC DA客户端的服务器状态处理
C#开发OPC DA客户端,最简单的方法是使用OpcRcw.Comn.dll,OpcRcw.Da.dll封装的API进行。如何使用C#开发OPC DA Client程序,网上有很多例子,包括各大自动化厂商和OPC服务器厂商都带有相关的示例,本文仅仅讨论如何处理与OPC服务器的连接状态问题。原创 2023-03-16 23:53:41 · 1799 阅读 · 0 评论 -
C# 使用MQTTnet 4.1 Client通讯异常检测失效处理
C#下的MQTTnet client不能有效检测到网络的异常断开,使用PingAsync() 可以更安全的解决问题原创 2023-03-15 23:27:21 · 2012 阅读 · 0 评论 -
C# Roslyn编写脚本数据交互示例
Java中的Groovy嵌入式脚本,在C#中类似的实现,找到了Roslyn,入手简单,和原生的C#一样强大,可以快速使用。本文尝试用Demo实现脚本和本体进程之间使用API进行数据交换原创 2023-02-19 15:47:29 · 1317 阅读 · 1 评论 -
C# 使用NetStandard.Opc.Ua读写OPC UA数据
OPCFoundation.NetStandard.Opc.Ua是OPC基金会发布的开源OPC UA包,提供Client读写库方便读写OPC 服务器数据。使用时有几点需要注意。原创 2022-09-10 00:26:00 · 14423 阅读 · 3 评论 -
C# MQTTnet 3.1升级到MQTTnet 4.0 Client编程变化
MQTTnet的C#版的开源MQTT通讯库,支持MQTTServer和Client,并提供各种类型的连接方法Demo。MQTTnet库3.1升级到4.0,并不完全兼容,在连接方式构建、事件订阅等方面需要修改。原创 2022-07-17 18:52:15 · 10291 阅读 · 4 评论 -
C#使用NModbus4读写Modbus数据
这些数据怎么存放,高低位怎么对齐,就产生了所谓的ABCD、CDAB等转换,这个Master与Slave一致就可以。Int32等类型数据更新时,需要同时对多个存储地址进行更新,而master可能还在高速并发读数据,需要注意使用一个同步锁,避免数据更新一半就被读取,产生数据不一致问题。推进使用Unicode编码,首先是与OPC的默认字符串编码格式一致,其次的每个中英文都占用一个地址2个字节,方便计算长度。Modbus是一个免费的协议,协议设计简单,有很多成熟的库支持。在使用文件中,添加引用。......原创 2022-07-15 07:58:57 · 7049 阅读 · 0 评论 -
Python使用paho.mqtt.client与Mqtt服务器通信示例
MQTT(Message Queuing Telemetry Transport)是一种轻量级的即时通信协议。Paho 是Eclipse的开源 MQTT 客户端项目,提供多种语言的 MQTT 客户端实现,包括 C、C++、C#、Java、Python、JavaScript 等。在Python环境下,Paho MQTT Python客户端由paho-mqtt模块支撑。...原创 2022-06-25 22:11:45 · 5791 阅读 · 0 评论 -
Python读写Restful Api,解析JSON示例
最近测试Python调用RestfulApi,解析JSON,使用相应的库后,很简单原创 2022-05-04 22:26:58 · 1461 阅读 · 0 评论 -
涛思数据TDengine now插值问题记录
TDengine 缺省的时间戳是毫秒精度,但通过在 CREATE DATABASE 时传递的 PRECISION 参数就可以支持微秒和纳秒。(从 2.1.5.0 版本开始支持纳秒精度)。在使用过程中如果没有特殊要求一般采用默认值。TDengine内部函数 now 是客户端的当前时间,插入记录时,如果时间戳为 now,插入数据时使用提交这条记录的客户端的当前时间。在使用“插入多条记录”方式写入数据时,不能把第一列的时间戳取值都设为 NOW,否则会导致语句中的多条记录使用相同的时间戳,于是就可能出现相互覆盖原创 2022-03-05 22:36:58 · 2062 阅读 · 0 评论 -
Vistual Stdio 2022 C# 11新语法备忘
Vistual Stdio 2022 C# 11新语法备忘原创 2022-02-18 22:25:30 · 1413 阅读 · 0 评论 -
Wonderware Historian Servers 操作
工控软件Wonderware System Platform带有Historian实时归档数据库,采用SQL Server+本地文件形式管理和存储归档数据。数据的元数据(包括标签名、说明、采样频率等)存储在SQL Server的Runtime库中,归档的结果数据存储在本地。原创 2022-02-13 12:25:56 · 2142 阅读 · 0 评论 -
dubbo zookeeper Session 0x0 for server 127.0.0.1/<unresolved>:2181
相关组件版本:dubbo 2.7.12zookeeper 3.6.3使用dubbo zookeeper,之前已经测试完毕,记得当时以为Zookeeper连接问题折腾了好久。这次使用,照搬上次的配置,结果报错Session 0x0 for server 127.0.0.1/<unresolved>:2181, unexpected error,完整信息如下:22:40:08.920 [restartedMain] INFO o.a.z.ZooKeeper - [logE原创 2021-07-24 23:12:08 · 3877 阅读 · 1 评论 -
C# JsonConvert 字段映射处理方法
C# Newtonsoft.Json.JsonConvert可以进行序列化处理,有时序列化存在特殊字段,可以通过JsonProperty来处理。Json格式:{ "appName":"PascalMingService", "Timestamp":"2021-07-12 18:47:55.156", "os.name":"Linux", "os.arch":"amd64"}数据类定义如下:class InfoData{ public String appNa原创 2021-07-12 19:06:29 · 1798 阅读 · 0 评论 -
bootstrap表格传递复杂文本参数问题
在Html前端页面使用bootstrap展示数据,对单元格进行函数调用传递参数时,如果参数串包涵特殊字符,往往会导致调用失败。这时可以考虑用base64编码进行转义。关键部分代码如下:<script th:inline="javascript"> $(function() { var options = { url: xxx, modalName: xxx, columns: [...原创 2021-07-09 08:36:06 · 594 阅读 · 0 评论 -
centos下dotnet服务启停脚本
以服务PascalMing.RestService.dll服务为例创建dotnet启动脚本vim start.shnohup dotnet PascalMing.RestService.dll --urls "http://10.10.10.11:10086">>log.txt&tail -f log.txt创建停止脚本vim stop.shecho "PascalMing.RestService 进程信息"ps -ef | grep Pasc原创 2021-07-06 18:18:01 · 1439 阅读 · 1 评论 -
若依(RuoYi)集成redis集群实现集群会话
若依官网提供的集成redis实现集群会话 http://doc.ruoyi.vip/ruoyi/document/cjjc.html,redis使用的是单机版,如果需要采用Redis集群还有做小的修改application.yml配置示例spring: redis: password: # 密码(默认为空) timeout: 3000 # 连接超时时长(毫秒) cluster: nodes: #改...原创 2021-07-06 09:51:46 · 4480 阅读 · 0 评论 -
若依(RouYi)框架使用多个Redis数据源
若依(RouYi)框架使用多个Redis数据源的方法application.yml配置spring: redis-app: password: # 密码(默认为空) timeout: 3000ms # 连接超时时长(毫秒) cluster: nodes: - xx.xx.xx.xx:xx #集群Redis Ip:port - xx.xx.xx.x原创 2021-07-05 09:24:05 · 3587 阅读 · 0 评论 -
java .yml文件取值问题
spring-boot-starter-actuator 的info取值时,需要配置info信息application.yml#自定义info端点查看应用相关的信息info: encoding: "@project.build.sourceEncoding@" traget: "@java.version@" name: "@project.artifactId@" description: "@project.description@"...原创 2021-06-16 10:42:06 · 698 阅读 · 1 评论 -
fastjson 反序列化测试
最近在分析Java服务性能时,发现在处理数据时大量解析JSON占用的CPU资源比较大,想看看不同方法之间是否有性能上的差异。编写了一小段代码测试,对比结果基本没有差别。fastjson库版本和引用如下: <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> ...原创 2021-06-04 21:06:24 · 320 阅读 · 0 评论 -
TDengine Taos数据库同步服务
功能:实现Taos不同数据库之间数据复制,可以用于数据库迁移和备份,支持续传运行环境:JDK 1.8 启动方法:java -jar Pascal.TaosDbSync.V2-1.0.jar使用方法:1、在application.yml中配置正确的taos源数据库和目标数据库以及相关参数2、iot.servermode为false时采用进程模式,所有参数来自与.yml,执行完毕退出3、iot.servermode为true时,采用服务模式Web+RestAPI运原创 2021-06-02 19:11:14 · 1939 阅读 · 0 评论 -
Java @Value使用@PropertySource加载.properties
Java 使用.properties进行配置时,一般用@PropertySource进行加载文件,使用示例如下:@PropertySource(value ={"classpath:my1.properties","file:my2.properties"},ignoreResourceNotFound = true,encoding="utf-8")@PropertySource的value,指定.properties文件,不能使用通配符,如果配置项有重复,实际使用时用value={}的后面文件原创 2021-05-20 15:04:15 · 611 阅读 · 0 评论 -
xxl-job 2.3.0增加RestJob JobHandler
xxl-job 2.3.0增加RestJobJobHandler,调度执行更加友好一点在xxl-job-executor模块的com.xxl.job.executor.service.jobhandler下增加RestXxlJob.javapackage com.xxl.job.executor.service.jobhandler;import com.xxl.job.core.context.XxlJobHelper;import com.xxl.job.core.handler.a..原创 2021-05-18 17:52:52 · 1225 阅读 · 0 评论
分享