![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#WinForm
文章平均质量分 56
我是菜鸟0713号
一个默默无闻的程序员
展开
-
基于modbus tcp通讯的雷赛导轨控制器调试软件
之前工作遇到了雷赛电机驱动器设备,主要是用来控制光学导轨移动。雷赛的调试软件用的时串口通讯,还要他们定制的串口线,在现场都是485转网络的接口,调试起来也很不方便。所以我就照着他们的说明书,写了一个简易版本的基于tcp modbus调试工具。项目地址giteegithub有安装包。原创 2024-07-13 10:57:45 · 293 阅读 · 0 评论 -
上位机工作感想-从C#到Qt的转变-2
在现有公司最大的难受点是没有同事和我聊技术,每个人都是信息孤岛,大家对技术都抱着一种能用就行的态度,尝试交流也是无功而返。所以现在每天就是干自己的事情,领导也是没有太多支持,也没有技术领导,好在不加班,可以有时间看看别的书籍。后面考虑再学学设计模式、重构、C++基础相关的东西,再去学学嵌入式相关的知识,搞点小突破。职业发展也是遇到了瓶颈(工资上不去),也在想有没有其它搞钱的路子。准备今年考个教师资格证,以后带带课,增加一下收入。原创 2024-04-24 07:06:17 · 1057 阅读 · 0 评论 -
使用BootStrapBlazor组件搭建Bootstarp风格的Winform界面
Blazor Hybird Winform原创 2024-01-27 16:07:19 · 992 阅读 · 0 评论 -
光谱仪测试平台总结
光谱仪数据采集软件开发心得原创 2023-05-03 21:44:20 · 302 阅读 · 0 评论 -
换工作总结
最近几个月遇到了很多事情,基本上都是不太好的事情。原创 2023-03-15 21:04:01 · 237 阅读 · 0 评论 -
上位机转算法感想(2022.04-2022.11工作总结)
这是我这六个月一直在做的工作,之前公司的近红外建模平台确实太老了,功能做的很全,但是耦合比较严重,很难加入新的算法进去。刚开始我是准备重构那个软件的,重构了几天后,发现这个任务有点困难,所以我就寻思着自己来写一个建模软件,也当时提高自己的业务能力吧。1.语言的选型刚开始来算法部这边就是因为水质算法和算法部同时认识了,在他的介绍下就转了过来。水质的算法使用python写的,基本上就是通过python脚本调用的方式来完成建模和预测业务的。原创 2022-11-18 23:02:07 · 725 阅读 · 6 评论 -
Accord.Net框架介绍
Accord.Net快速熟悉原创 2022-10-21 11:06:29 · 1533 阅读 · 0 评论 -
pythonnet调用python tsne算法
使用pythonnet调用sklearn的tsne算法库原创 2022-10-09 10:09:58 · 684 阅读 · 0 评论 -
.Net算法落地两个小坑
.Net算法落地小结原创 2022-08-17 14:52:29 · 179 阅读 · 0 评论 -
WPF跨线程调用
WPF后台线程调用前端UI原创 2022-07-22 14:08:47 · 619 阅读 · 0 评论 -
算法在C#端落地的心得
算法在C#落地的心得原创 2022-07-14 13:57:13 · 289 阅读 · 0 评论 -
C#ManualResetEvent的用法
C#ManuaResetEvent的用法原创 2022-06-23 17:10:21 · 221 阅读 · 0 评论 -
使用rpc进行python和C#的传参通讯
C#代码python代码def rpc_predict(xAyyay:[],yArray:[]) -> dict: print('start measure') data=np.array([xAyyay,yArray],dtype='float64') predicts=Predict(data=data).predict_values() result=dict() for k,v in predicts.items(): result原创 2022-03-22 18:37:55 · 4762 阅读 · 0 评论 -
2021年下半年工作总结
0.前言这是公司的年终总结,也是自己这半年来的主要工作,虽然干的不太爽,至少还是有收获的嘛。1.5100MP全光谱预测需求分析,功能开发,方案优化工作难度/创新点:1.近红外光谱建模软件训练集制作,模型搭建,模型训练、评估,数据预测功能移植2.算法实现从.Net平台移植到Python平台,分离算法和开发职责3.算法的移植性1.重构原有代码数据预测,评估模块,理清业务逻辑,完成模块移植2.使用脚本调用和TCP通讯两种交互方式,使用txt文件实现数据交互,将数据预测,建模,数据分析,自动建模等业原创 2022-01-09 14:21:33 · 1670 阅读 · 4 评论 -
Python集成算法服务
0.背景传统化学法做水质参数检测时虽然精度较高,但是耗时长、耗费大量化学药剂人力等资源,很难满足现有定型化快速化检测的需求。所以提出全光谱检测算法,其基本原理是在传统化学法得到结果的前提下,使用对应的全光谱谱图,二者结合生成训练集,再使用数学上的一些建模方法,建立全光谱分析模型。在得到一条新的全光谱谱图时,可以根据该模型计算预测出相应的因子值。原有公司近红外建模也是类似原理,不过建模,预测等功能都是在.Net平台上。需要程序员编写大量的基础算法,耗费大量人力,最终得到的结果往往也是不尽人意。考虑到Pyt原创 2021-12-01 19:40:32 · 492 阅读 · 2 评论 -
Python环境离线下载安装
Python环境离线下载安装一、下载Python二、下载包三、安装最近工作需要,用到C#通过调用Python脚本文件,获取Python计算回来的结果。由于公司现场的电脑都没有网络,就不能通过安装Python后连网安装一些算法包了。这里通过预先使用pip下载好所需要的包,后来在新电脑上使用pip重新安装一、下载Python我们是通过Python3.8开发的,百度一下就可以获得Python3.8安装包,Python3.8好像时自带pip的,省了不少事。二、下载包假设当前电脑已经有了Py3.8和所有的包原创 2021-10-15 20:22:08 · 1990 阅读 · 0 评论 -
.Net4.5 CallerInformation语法糖
.Net4.5 CallerInformation语法糖.Net4.5除了一个新特性CallerInformation,可以在调用方法是动态获取调用者方法名等信息,在调试的时候使用非常方便。也就是StaceTrace的一个语法糖的应用,下面看看效果吧。.private void GetMethodNmae([CallerMemberName] string name = "",[CallerFilePath] string filePath = "",[CallerLineNumber] int lin原创 2021-10-12 08:52:46 · 187 阅读 · 0 评论 -
C#上位机工作感想2(2020.4.15-2021.7.24)
前言自从上一家公司离职也已经过了一个半月有余了,其中也是经历了很多事情,也学习到了很多东西。当然学到的不一定是好的,也有可能是不好的经验,不管怎么样也是自己人生中的一段宝贵的经历吧。上一家公司一共是做了十一个月的上位机工程师,从一个初来乍到,啥也不会的小菜鸟,在我师傅的指导下成为了独当一面的项目主要角色。也觉得自己的成长是很明显的,公司也给了机会施展自己的一些想法,也是非常感谢老东家的。关于上一家的工作情况,在上一篇博客中写了出来。现在主要谈谈自己对现在公司的感想和以后工作学习的看法。一、找工作我找工原创 2021-07-24 21:47:01 · 2761 阅读 · 19 评论 -
数组转化为字符串
最近遇到个问题,就是将不同的数组,List等数据转化为一个长串的字符串。试了很多方法都不太好,今天突然想搞所有的数组List在C#中都是继承IEnumerable这个接口的,而这个接口是实现foreach的关键。所以就尝试着用下面的方法写出了一个比较通用的转化方法,给大家参考一下。using System;using System.Collections;using System.Collections.Generic;using System.Text;namespace Consol..原创 2021-07-21 21:39:48 · 239 阅读 · 0 评论 -
C#上位机工作感想1(2020.7.1-2021.4.4)
C#上位机工作感想(2020.7.1-2021.4.4)前言一、2020年二、2021年总结前言不知不觉工作已九个月有余了,从刚来公司还是个啥也不太懂得小菜鸟,现在已经是负责两个项目的大菜鸟啦。这大半年的时间内,师傅教给了我很多业务上的知识,自己也在工作和闲暇时间里学到了很多编程知识。对C#语言的底层实现和一些简单设计模式的应用都有了更深的理解。一、2020年先来说说项目路线吧,去年七月份刚来公司的时候,接手的是一个大体功能已经编写结束,还未开始进行联调的一个初版软件。大概花了一周多的时间熟悉代码。原创 2021-04-04 21:29:03 · 4105 阅读 · 22 评论 -
async/await简化多线程调用主界面控件方法
async/await简化多线程调用主界面控件方法1.C#4.0的做法C#4.0调用多线程多为Task操作,一般将耗时的工作交给后端线程去做,主线程只需要保持数据更新就行了。后端线程无法直接控制主界面的线程,一般是通过调用主界面的句柄,Invoke/BeginInvoke这两个方法,一个同步,一个异步方法。这样会导致很多不方便的地方。这里展示一个示例: private void btn_Click(object sender, EventArgs e) {原创 2021-01-16 17:02:12 · 375 阅读 · 0 评论 -
WinForm点击鼠标移动窗体
private Point mouseOff;//鼠标移动位置变量 private void Form2_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { mouseOff = new Point(-e.X, -e.Y); //得到变量的值 } } privat...原创 2020-08-07 07:18:16 · 519 阅读 · 0 评论 -
基于TCP的C#通讯窗口
1.前言这两天在公司刚入职没得电脑,师傅叫我用tcp/ip编写一个小的聊天Demo。刚好这两天才看设计模式,就寻思着将设计模式里面学的的东西应用到这个小Demo中。考虑到后期代码的界面的复用,这里用的是Build模式,Builder模式主要用于“分步骤构建一个复杂的对象”。在这其中“分步骤”是一个稳定算法,也就是程序的主线,而负责对象的各个部分则经常变化。变化点在哪里,封装哪里,Builder模式主要在与应对“复杂对象各个部分”的频繁需求变动。其缺点在于难以应对“分步骤构建算发”的需求变动。2.服务端原创 2020-07-06 22:30:01 · 1041 阅读 · 0 评论 -
Task小解
public static void AscnTask() { const int Count = 300; Task task01 = Task.Factory.StartNew(() => { for (int i = 0; i < Count; i++) { Conso原创 2020-07-02 10:35:45 · 197 阅读 · 0 评论 -
使用线程池创建新任务
1.代码 class RunningAShread { public const int nums=200; private void DoWork(object obj) { for (int i = 0; i < nums; i++) { Console.Write(obj.ToString()); }原创 2020-07-01 18:25:05 · 196 阅读 · 0 评论 -
Invoke和BeginInvoke的区别
1.示例代码 public partial class Form1 : Form { private delegate void InvokeDelegate(); public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) {原创 2020-07-01 16:23:36 · 325 阅读 · 0 评论