一 背景
嵌入式开发过程中,usb,tcp等都是经常使用到的功能,在上位机和设备通过usb,tcp通信时,我们往往要先制定协议,然后再去实现;功能ok后,我们要优先验证接口,基本功能是否ok,其他同事再去进行上位机开发。而网上找的第三方工具,不一定能满足我们的要求,比如你加了crc校验,使用第三方工具就要自己先计算好crc字节,再去发送,特别不便;因此如果能按照我们的需求,自己搞一个简单的USB或TCP GUI来验证,那将会是一个不错的选择。这里记录下使用C#开发usb hid gui过程中的一些历程。
二 记录
- VS C#可以用来开发三种类型应用
(1) Windows应用程序—带UI的exe
(2) 控制台应用程序------无UI,命令行输出
(3) 类库----------------不能直接运行,就是封装成dll库供调用
Ps: 注意winForms窗体应用是事件驱动的,不会像控制台程序那样顺序执行,而是等待用户交互
eg:工程目录
bin ---编译输出目录
obj ---临时编译文件
Form1.cs --- C#主窗体代码
Form1.Designer.cs ---窗体设计代码,自动生成
Form1.resx ---资源文件,存储窗体UI资源
Program.cs ---入口点 应用程序启动代码
WinformsUsb.csproj ---C#项目文件
WinformsUsb.csproj.user
- VS 属性配置
目标操作系统版本 -----应用程序可运行的最低操作系统版本
-
UI工具箱选择
如果是传统的winforms应用,选择.NET Framework组件就可以;
通用windows组件,适用于触摸屏等移动设备 -
关于控件属性的常见说明
AllowDrop 是否允许拖放
Anchor 是否与父容器边缘保持固定
AutoScroll 控制容器控件是否在其内容超出显示区域时自动显示滚动条
Padding 控件内容与控件的内边距
Size 设置控件的宽和高
MinimumSize 设置控件的最小尺寸限制
Magin 控件和其容器的外边距
Location Top,left边缘的距离
Forecolor 前景色,即文本内容颜色
backcolor 背景色
Autosize 指定控件是否根据内容自动调整大小
- 关于exe
要想生成独立的exe文件,编译完之后,要右键项目发布下才行;发布配置要配置成独立发布,生成单个文件
目标框架 --选net8.0
部署模式 --独立
文件发布选项 --勾选“生成单个文件”
三 usb 上位机开发总结
- 先创建winForms窗体应用,然后项目右键nuget包管理,安装usb库HidSharp—using HidSharp引入
- 按照gpt提示,一点点加程序调试就行了(先设计GUI,添加控件,然后在控件绑定逻辑里面去进行软件实现)
- 注意控件绑定的事件,如果做了修改,产生新的事件触发函数,旧的事件函数并不会自动去掉,需要手动取Designer.cs里面删除
- 对于引入的库,右键转到定义,可以看到其实现,基本不用再查资料
PS:由于公司网络限制,没法贴图片,只能文字描述了