- 上位机李工架构之一
zhxup606
架构
本篇将围绕半导体可靠性测试机上位机开发,提供一个系统性教程与学习路线,结合C#高级编程(反射、接口、抽象类、泛型、设计模式、集合、特性、索引、委托事件、匿名方法、多线程、面向对象等)和异步/同步对比,深入讲解如何高效开发上位机系统。同时,基于前文的实时数据可视化(WPF、LiveCharts2、WebSocket)、AI异常检测(ML.NET隔离森林)和异步任务调度(DAG调度、PID控制),本篇
- 李工ROBOT架构之硬件驱动或数据存储的详细代码
我将提供基于.NET8.0-windows7.0的半导体可靠性测试机上位机系统的硬件驱动和数据存储模块的详细代码实现。代码将与之前的UI框架(WPF、Prism、MVVM、MaterialDesignThemes、LiveCharts2)无缝集成,涵盖硬件驱动的抽象接口、不同协议(串口、TCP/UDP、Modbus)支持,以及数据存储的CSV、SQLite和MySQL实现。以下内容包含详细的代码示
- 李工ROBOT架构之扩展 TestController 以支持更多实验(如 TDDB、TC)并增强可扩展性
基于您的需求,我将为半导体可靠性测试机上位机系统提供以下内容的详细实现:扩展TestController以支持更多实验(如TDDB、TC)并增强可扩展性,以及硬件驱动层协议扩展(支持Modbus、UDP)。内容基于.NETCore8.0、WPF、MVVM模式、Prism框架,并使用中文描述,确保代码可落地且易于扩展。我将提供具体代码示例、设计思路和性能优化建议,并实现动态配置切换不同测试模式的功能
- 李工ROBOT架构之开篇
zhxup606
架构
以下是一个基于.NETCore+WPF的半导体可靠性测试机上位机系统的完整架构设计,涵盖UI、业务逻辑、硬件驱动、数据处理模块、日志、计算和扩展功能等。内容将按照模块化、分层设计进行详细说明,并提供关键代码示例。由于内容较长,我会分模块逐步展开,确保清晰且实用。同时,我会根据你的需求(MVVM、Prism、Autofac、Serilog、LiveCharts等)提供一个系统性框架,并附带中文解释。
- WPF之URI的使用
要记得喝水
wpfc#visualstudiowindows
pack://application:,pack://application:,是一个在WPF(WindowsPresentationFoundation)应用程序中用于指定资源位置的URI(统一资源标识符)方案的特定格式。这个格式用于访问嵌入在应用程序程序集(assemblies)中的资源,如图像、XAML文件、样式等。解析这个URI的各个部分:**pack://:**这是URI方案的开始,表示
- C#安装使用教程
小奇JAVA面试
安装使用教程c#开发语言
一、C#简介C#(读作C-Sharp)是微软开发的现代化、面向对象的编程语言,运行在.NET平台之上。它语法简洁、安全,广泛用于桌面应用、Web开发、游戏开发(Unity)以及跨平台开发。二、C#应用场景Windows桌面应用程序(WinForms、WPF)Web应用(ASP.NET)游戏开发(Unity3D)移动开发(Xamarin、MAUI)云服务、API开发控制台程序、自动化工具三、安装开发
- WPF (容器控件10)Viewbox控件的详细使用教程
生命不息-学无止境
WPFwpf
Viewbox是WPF中用于缩放其子元素以适应可用空间的控件。无论Viewbox的大小如何变化,它都可以按比例缩放其内容,使内容保持一致的布局和比例。这对于创建具有响应性或可缩放界面的应用程序特别有用。以下是Viewbox控件的详细使用教程。1.基本结构Viewbox包含一个子元素,并将该子元素缩放以填充Viewbox的可用空间。无论Viewbox的大小如何变化,子元素都将按比例缩放。基本示例:在
- WPF学习(动画)
✎ ﹏梦醒͜ღ҉繁华落℘
#WPFwpf学习
文章目录一、图像变换RenderTransform1、常见变换类型2、`RenderTransform`的核心作用3、`RenderTransform`的使用方式4、与`LayoutTransform`的对比5、在动画中的应用二、滚动的椭圆三、Storyboard放置位置1.**元素的`Resources`集合**2.**控件模板(`ControlTemplate`)或数据模板(`DataTemp
- textblock和label
lph1972
wpf
在WPF中,可以使用Label控件的Target属性和Binding来实现通过快捷键(如Alt+字母)将焦点跳转到指定控件的功能。以下是具体的实现方法:使用Label的Target属性Label控件支持通过Target属性将助记键(如Alt+字母)与另一个控件关联。在Label的Content属性中使用下划线_来指定快捷键对应的字母。例如:在这个例子中,当用户按下Alt+N时,焦点会跳转到txtN
- C# WPF入门学习主线篇(二十三)—— 控件模板(ControlTemplate)和数据模板(DataTemplate)
Ice bear433
C#WPF学习c#wpf学习
C#WPF入门学习主线篇(二十三)——控件模板(ControlTemplate)和数据模板(DataTemplate)在WPF开发中,控件模板(ControlTemplate)和数据模板(DataTemplate)是非常重要的概念。它们允许开发者自定义控件的外观和展示数据的方式。通过使用这些模板,开发者可以创建更具视觉吸引力和用户友好的界面。本篇博客将详细介绍控件模板和数据模板的定义和应用,并通过
- 非常有科技感的wpf GroupBox 控件
StevenChen85
上位机WPF科技c#wpf
效果样式<PolylinePoints="030,01
- .net wpf混淆
佛·追命
.netwpf
混淆要求1、把exe所用到的依赖dll都合并到exe中2、使用反编译工具无法得到源代码混淆方式1、.netReactor优点:可以dll到exe中,也能防止反编译,但是要注意QuickSettings尽量勾选完毕缺点:争对WPF程序无法使用NativeEXEFile,但是Winform可以2、Confuser优点:可以防止反编译,也能防止反编译工具查看程序集名称缺点:无法把依赖的dll合并到exe
- poi java 缩进段落的方法
在ApachePOI中设置段落缩进主要通过操作XWPFParagraph对象实现,以下是常用的五种方法及示例:一、首行缩进(常用)通过setFirstLineIndent()方法设置,参数单位为缇(twips)(1英寸=1440缇)。缩进2字符通常需400-600缇(约0.28-0.42英寸)。代码示例:javaCopyCodeXWPFParagraphparagraph=document.
- C# WPF一个控件绑定另外一个控件的值
音尘啊
c#开发语言后端
Path=想要取的元素(控件)的值ElementName=元素(控件)的名称(x:Name)
- 43.Textbox的数据绑定 C#例子 WPF例子
军训猫猫头
c#wpfjava
固定最简步骤,包括XAML:题头里引入命名空间标题下面引入类box和block绑定属性C#:通知的类,及对应固定的任务引入字段引入属性属性双触发,其中一个更新block的属性block=>指向box的属性从Textbox这行看binding是绑定的意思,后面的inputtext是类里的一个属性意思就是它的文本和这个属性绑定了updatesourcetrigger是一个触发,后面等号后的内容是不同的
- WPF 之 exe 单文件打包工具:LibZ
外来物种
桌面软件WPFC#
▪前言在VS开发过程中我们需要不断的编译软件并进行测试,同时VS会自动在项目跟目录的\bin\Debug文件夹里生成一系列文件(包括程序执行的主exe文件)。对于简单WPF程序,我们通常可以直接拷贝[ProjectSub]\bin\Debug下程序主exe文件就可以到其他机子使用了,当然前提是机子要已经装了对应的.NetFormework版本库但是有时候我们会在项目引入其他第三方库(非.Net框架
- WPF实现一个播放音乐和视频的应用
code_shenbing
WPFwpf音视频C#
一、项目准备创建WPF项目在VisualStudio中新建WPFApp(.NETFramework)项目命名为"MediaPlayerApp"添加必要的NuGet包Install-PackageMicrosoft.WindowsAPICodePack-ShellInstall-PackageTagLibSharp二、界面设计1.主窗口XAML(MainWindow.xaml)三、代码实现1.主窗口
- wpf打包一个独立的库
null_null999
windows
https://www.google.com/search?q=wpf+%E6%89%93%E5%8C%85%E4%B8%80%E4%B8%AA%E7%8B%AC%E7%AB%8B%E5%BA%93&newwindow=1&sca_esv=32f9ae821a1b1a5d&sxsrf=AE3TifNo_KqCzke3ZkSz6zdxZGXDQv6lWA%3A1751356705342&ei=IZV
- WPF学习笔记(3):ListView根据内容自动调整列宽
weixin_30709061
WPF学习笔记(3):ListView根据内容自动调整列宽原文:WPF学习笔记(3):ListView根据内容自动调整列宽DataGrid中,只要不设置DataGrid的宽度和列宽度,或者将宽度设置为Auto,那么表格就会根据内容自动调整宽度,以显示所有内容。但如果是ListView,按以上方法设置,却达不到列宽自动调整的效果,列宽在控件第一次加载的时候已经确定,之后不会随着某列数据长度的增加和减
- wpf 学习笔记
1.同时加载两个窗体先添加一个子窗体,然后再app.xaml.cs里重写OnStartup方法//app.xaml.csusingSystem.Configuration;usingSystem.Data;usingSystem.Windows;namespaceWpfApp1{//////InteractionlogicforApp.xaml///publicpartialclassApp:Ap
- C#WPF的Style 中触发器Trigger详解
未来无限
C#WPF程序设计wpf模板styleTriggerC#触发器
本文详解C#WPF的Style中触发器Trigger目录触发器概念基本Trigger多条件触发器MultiTrigger数据触发器DataTrigger多数据条件触发的MultiDataTrigger事件触发器EventTrigger触发器概念即当某些条件满足时会触发一个行为(比如某些值的变化或动画的发生等)。触发器比较像事件。事件一般是由用户操作触发的,而触发器除了有事件触发型的EventTri
- WPF学习笔记(17)样式Style
三千道应用题
WPF学习笔记wpf
样式Style1.概述2Style详解3.Setter详解4Style用法5.EventSetter详解6EventSetterStyle用法总结1.概述样式(Style类)用于给控件定义外观,样式包含一个或多个Setter对象的集合,每个Setter由Property和Value组成。样式也是一种资源,可以像引用任何其他资源一样对其进行引用。官方文档:https://learn.microsof
- WPF学习笔记(18)触发器Trigger
触发器1.概述2.详解2.1.Trigger用法2.2.MultiTrigger用法2.3.DataTrigger用法2.4.EventTrigger用法总结1.概述官方文档:https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.trigger?view=netframework-4.82.详解在Style中可以指定触发器类型,触发
- WPF两种绑定方式的分析
zzyzxb
WPFwpf
一、两种绑定方式的分析你提供的代码展示了两种不同的属性绑定实现方式:传统的CLR属性配合INotifyPropertyChanged接口,以及WPF依赖属性(DependencyProperty)系统。相同点目的相同:两种方式都是为了实现属性值变化时通知UI更新数据绑定支持:都可以用于WPF/Silverlight/Xamarin等支持数据绑定的UI框架基本功能:都能实现单向绑定和双向绑定的基本功
- WPF中Style和Template异同
zzyzxb
WPFwpf
在WPF(WindowsPresentationFoundation)中,Style和Template是两个核心概念,用于控制UI元素的外观和行为,但它们的职责和使用场景有明显区别。以下是详细分析:一、基本概念1.Style(样式)定义:Style是一组属性值的集合,用于统一设置控件的外观和行为属性(如颜色、字体、边距等)。作用:简化重复属性设置,提高代码复用性。示例:2.Template(模板)
- WPF中依赖属性和附加属性
zzyzxb
WPFwpf
依赖属性(DependencyProperty)依赖属性是WPF中的一种特殊属性,它的实现依赖于DependencyObject类提供的基础设施。与普通的.NET属性不同,依赖属性的值可以通过多种方式确定,包括继承、样式、数据绑定和动画等。主要特点:值的多重来源:依赖属性的值可以来自于多种优先级不同的源,如本地值、样式、模板等。内存效率:依赖属性只有在值被显式设置时才会占用内存空间,否则使用元数据
- Excel数据匹配合并工具
摆渡搜不到你
excel
Excel数据匹配合并工具一个功能强大的WPF应用程序,专门用于合并和匹配Excel文件中的数据。该工具支持多工作表处理、灵活的字段映射、数据筛选和配置管理等功能。主要功能文件管理多格式支持:支持.xlsx和.xls格式的Excel文件密码保护:支持加载带密码保护的Excel文件拖拽操作:支持文件拖拽到指定区域快速加载实时预览:文件加载后实时显示工作表和数据预览工作表处理多工作表选择:支持同时选择
- C# WPF + Helix Toolkit 实战:用两种方式打造“六面异色立方体”
凌霜残雪
WPF+3D数字孪生实战wpf3d材质数字孪生
引言在3D图形开发中,给立方体的每个面设置不同颜色是一个非常经典且实用的小项目。它不仅帮助我们理解3D网格构造、材质绑定和光照渲染的基本原理,还为我们后续学习更复杂的模型操作打下基础。在这篇博客中,我们将使用HelixToolkit(WPFSharpDX版本),通过两种方法来实现一个“六面异色立方体”,并详细分析它们的优缺点与适用场景。效果演示方法一:自动解析网格——CreateColoredBo
- Emgu-WPF 激光雷达研究-绘制雷达图
DuelCode
WPFc#Emgu激光雷达雷达图
硬件:HokuyoURG04LX环境:VS2017-win10-64Emgu_3.2.0.2682语言:C#WPF数据解析参考:https://sourceforge.net/p/urgnetwork/wiki/Home/https://github.com/bqhdev/urg04lx_data_decoderhttp://sourceforge.net/projects/urgnetwork/
- WPF 常用布局控件的基础使用
Dr.多喝热水
WPFwpf
WPF常用布局控件在WPF中,布局控件(也叫布局容器)负责安排子元素(比如按钮、文本框等)的摆放位置。1.Grid(网格布局)Grid是最常用的布局控件,它把空间划分成行和列,可以让子元素按照表格方式排列。示例:说明:RowDefinitions和ColumnDefinitions分别定义了行和列。Height="Auto"表示高度根据内容自动调整。Height="*"表示分配剩余空间。2*表示是
- java杨辉三角
3213213333332132
java基础
package com.algorithm;
/**
* @Description 杨辉三角
* @author FuJianyong
* 2015-1-22上午10:10:59
*/
public class YangHui {
public static void main(String[] args) {
//初始化二维数组长度
int[][] y
- 《大话重构》之大布局的辛酸历史
白糖_
重构
《大话重构》中提到“大布局你伤不起”,如果企图重构一个陈旧的大型系统是有非常大的风险,重构不是想象中那么简单。我目前所在公司正好对产品做了一次“大布局重构”,下面我就分享这个“大布局”项目经验给大家。
背景
公司专注于企业级管理产品软件,企业有大中小之分,在2000年初公司用JSP/Servlet开发了一套针对中
- 电驴链接在线视频播放源码
dubinwei
源码电驴播放器视频ed2k
本项目是个搜索电驴(ed2k)链接的应用,借助于磁力视频播放器(官网:
http://loveandroid.duapp.com/ 开放平台),可以实现在线播放视频,也可以用迅雷或者其他下载工具下载。
项目源码:
http://git.oschina.net/svo/Emule,动态更新。也可从附件中下载。
项目源码依赖于两个库项目,库项目一链接:
http://git.oschina.
- Javascript中函数的toString()方法
周凡杨
JavaScriptjstoStringfunctionobject
简述
The toString() method returns a string representing the source code of the function.
简译之,Javascript的toString()方法返回一个代表函数源代码的字符串。
句法
function.
- struts处理自定义异常
g21121
struts
很多时候我们会用到自定义异常来表示特定的错误情况,自定义异常比较简单,只要分清是运行时异常还是非运行时异常即可,运行时异常不需要捕获,继承自RuntimeException,是由容器自己抛出,例如空指针异常。
非运行时异常继承自Exception,在抛出后需要捕获,例如文件未找到异常。
此处我们用的是非运行时异常,首先定义一个异常LoginException:
/**
* 类描述:登录相
- Linux中find常见用法示例
510888780
linux
Linux中find常见用法示例
·find path -option [ -print ] [ -exec -ok command ] {} \;
find命令的参数;
- SpringMVC的各种参数绑定方式
Harry642
springMVC绑定表单
1. 基本数据类型(以int为例,其他类似):
Controller代码:
@RequestMapping("saysth.do")
public void test(int count) {
}
表单代码:
<form action="saysth.do" method="post&q
- Java 获取Oracle ROWID
aijuans
javaoracle
A ROWID is an identification tag unique for each row of an Oracle Database table. The ROWID can be thought of as a virtual column, containing the ID for each row.
The oracle.sql.ROWID class i
- java获取方法的参数名
antlove
javajdkparametermethodreflect
reflect.ClassInformationUtil.java
package reflect;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.Modifier;
import javassist.bytecode.CodeAtt
- JAVA正则表达式匹配 查找 替换 提取操作
百合不是茶
java正则表达式替换提取查找
正则表达式的查找;主要是用到String类中的split();
String str;
str.split();方法中传入按照什么规则截取,返回一个String数组
常见的截取规则:
str.split("\\.")按照.来截取
str.
- Java中equals()与hashCode()方法详解
bijian1013
javasetequals()hashCode()
一.equals()方法详解
equals()方法在object类中定义如下:
public boolean equals(Object obj) {
return (this == obj);
}
很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们知道,String 、Math、I
- 精通Oracle10编程SQL(4)使用SQL语句
bijian1013
oracle数据库plsql
--工资级别表
create table SALGRADE
(
GRADE NUMBER(10),
LOSAL NUMBER(10,2),
HISAL NUMBER(10,2)
)
insert into SALGRADE values(1,0,100);
insert into SALGRADE values(2,100,200);
inser
- 【Nginx二】Nginx作为静态文件HTTP服务器
bit1129
HTTP服务器
Nginx作为静态文件HTTP服务器
在本地系统中创建/data/www目录,存放html文件(包括index.html)
创建/data/images目录,存放imags图片
在主配置文件中添加http指令
http {
server {
listen 80;
server_name
- kafka获得最新partition offset
blackproof
kafkapartitionoffset最新
kafka获得partition下标,需要用到kafka的simpleconsumer
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.
- centos 7安装docker两种方式
ronin47
第一种是采用yum 方式
yum install -y docker
 
- java-60-在O(1)时间删除链表结点
bylijinnan
java
public class DeleteNode_O1_Time {
/**
* Q 60 在O(1)时间删除链表结点
* 给定链表的头指针和一个结点指针(!!),在O(1)时间删除该结点
*
* Assume the list is:
* head->...->nodeToDelete->mNode->nNode->..
- nginx利用proxy_cache来缓存文件
cfyme
cache
user zhangy users;
worker_processes 10;
error_log /var/vlogs/nginx_error.log crit;
pid /var/vlogs/nginx.pid;
#Specifies the value for ma
- [JWFD开源工作流]JWFD嵌入式语法分析器负号的使用问题
comsci
嵌入式
假如我们需要用JWFD的语法分析模块定义一个带负号的方程式,直接在方程式之前添加负号是不正确的,而必须这样做:
string str01 = "a=3.14;b=2.71;c=0;c-((a*a)+(b*b))"
定义一个0整数c,然后用这个整数c去
- 如何集成支付宝官方文档
dai_lm
android
官方文档下载地址
https://b.alipay.com/order/productDetail.htm?productId=2012120700377310&tabId=4#ps-tabinfo-hash
集成的必要条件
1. 需要有自己的Server接收支付宝的消息
2. 需要先制作app,然后提交支付宝审核,通过后才能集成
调试的时候估计会真的扣款,请注意
- 应该在什么时候使用Hadoop
datamachine
hadoop
原帖地址:http://blog.chinaunix.net/uid-301743-id-3925358.html
存档,某些观点与我不谋而合,过度技术化不可取,且hadoop并非万能。
--------------------------------------------万能的分割线--------------------------------
有人问我,“你在大数据和Hado
- 在GridView中对于有外键的字段使用关联模型进行搜索和排序
dcj3sjt126com
yii
在GridView中使用关联模型进行搜索和排序
首先我们有两个模型它们直接有关联:
class Author extends CActiveRecord {
...
}
class Post extends CActiveRecord {
...
function relations() {
return array(
'
- 使用NSString 的格式化大全
dcj3sjt126com
Objective-C
格式定义The format specifiers supported by the NSString formatting methods and CFString formatting functions follow the IEEE printf specification; the specifiers are summarized in Table 1. Note that you c
- 使用activeX插件对象object滚动有重影
蕃薯耀
activeX插件滚动有重影
使用activeX插件对象object滚动有重影 <object style="width:0;" id="abc" classid="CLSID:D3E3970F-2927-9680-BBB4-5D0889909DF6" codebase="activex/OAX339.CAB#
- SpringMVC4零配置
hanqunfeng
springmvc4
基于Servlet3.0规范和SpringMVC4注解式配置方式,实现零xml配置,弄了个小demo,供交流讨论。
项目说明如下:
1.db.sql是项目中用到的表,数据库使用的是oracle11g
2.该项目使用mvn进行管理,私服为自搭建nexus,项目只用到一个第三方 jar,就是oracle的驱动;
3.默认项目为零配置启动,如果需要更改启动方式,请
- 《开源框架那点事儿16》:缓存相关代码的演变
j2eetop
开源框架
问题引入
上次我参与某个大型项目的优化工作,由于系统要求有比较高的TPS,因此就免不了要使用缓冲。
该项目中用的缓冲比较多,有MemCache,有Redis,有的还需要提供二级缓冲,也就是说应用服务器这层也可以设置一些缓冲。
当然去看相关实现代代码的时候,大致是下面的样子。
[java]
view plain
copy
print
?
public vo
- AngularJS浅析
kvhur
JavaScript
概念
AngularJS is a structural framework for dynamic web apps.
了解更多详情请见原文链接:http://www.gbtags.com/gb/share/5726.htm
Directive
扩展html,给html添加声明语句,以便实现自己的需求。对于页面中html元素以ng为前缀的属性名称,ng是angular的命名空间
- 架构师之jdk的bug排查(一)---------------split的点号陷阱
nannan408
split
1.前言.
jdk1.6的lang包的split方法是有bug的,它不能有效识别A.b.c这种类型,导致截取长度始终是0.而对于其他字符,则无此问题.不知道官方有没有修复这个bug.
2.代码
String[] paths = "object.object2.prop11".split("'");
System.ou
- 如何对10亿数据量级的mongoDB作高效的全表扫描
quentinXXZ
mongodb
本文链接:
http://quentinXXZ.iteye.com/blog/2149440
一、正常情况下,不应该有这种需求
首先,大家应该有个概念,标题中的这个问题,在大多情况下是一个伪命题,不应该被提出来。要知道,对于一般较大数据量的数据库,全表查询,这种操作一般情况下是不应该出现的,在做正常查询的时候,如果是范围查询,你至少应该要加上limit。
说一下,
- C语言算法之水仙花数
qiufeihu
c算法
/**
* 水仙花数
*/
#include <stdio.h>
#define N 10
int main()
{
int x,y,z;
for(x=1;x<=N;x++)
for(y=0;y<=N;y++)
for(z=0;z<=N;z++)
if(x*100+y*10+z == x*x*x
- JSP指令
wyzuomumu
jsp
jsp指令的一般语法格式: <%@ 指令名 属性 =”值 ” %>
常用的三种指令: page,include,taglib
page指令语法形式: <%@ page 属性 1=”值 1” 属性 2=”值 2”%>
include指令语法形式: <%@include file=”relative url”%> (jsp可以通过 include