CY7C68013 USB接口相机开发记录 - 第四天:上位机编写1
前面学习了USB相机硬件固件、设备驱动,可以实现USB设备识别、数据发送的功能。然后,非常重要的一部分,USB设备发出的数据,我要怎么接受,怎么查看发送的数据是否是正确的。网上百度了下,大部分人都使用的是C++的开发平台,而我想在.NET下使用C#制作上位机来实现USB设备数据的接收以及数据的显示,这里的数据为图像数据。查找了很久,C#部分的设计确实很少,大体的思路都有说道,但是更加清晰详细的解释没有。下面就针对我这几天查阅的资料作一分享:
基于VS开发平台,.NET架构下C#的USB设备编程,需要有以下几部分:
1、设备驱动CyUSB.SYS:提供设备描述相关信息,用于系统设备管理器识别设备;
2、.NET平台下的动态链接库CyUSB.dll:提供USB控制相关函数;
3、VS开发平台:用来进行上位机程序编译,生成可执行文件;
这里主要介绍下CyUSB.DLL中的一些USB控制函数
(1)USB控制类函数
(2)USBDeviceList类
USBDeviceList 函数
用于获取当前计算机连接的所有USB设备列表,
函数原型:public USBDeviceList(byte DeviceMask)
参数DeviceMask用于表示设备的类型。支持CyUSB驱动、USB HID设备和USB大容量存储设备的识别,取值如下:
CyConst.DEVICE_CYUSB:使用CyUSB驱动的USB设备
CyConst.DEVICE_MSC:USB大容量存储设备
CyConst.DEVICE_HID:USB HID设备
USBDeviceList函数在程序中使用方式:
声明:USBDeviceList usbDevices;
使用:usbDevices = new USBDeviceList(CyConst.DEVICES_CYUSB); //获取连接的CyUSB设备
Count成员变量
原型:public int Count(get;)
使用:
USBDeviceList usbDevices;
usbDevices = new USBDeviceList(CyConst.DEVICES_CYUSB); //获取连接的CyUSB设备
if(usbDevices.Count > 0)
{
//执行设备操作
}
Dispose函数
原型:public void Dispose()
使用:
先获取设备列表
USBDeviceList usbDevices;
usbDevices = new USBDeviceList(CyConst.DEVICES_CYUSB); //获取连接的CyUSB设备
在使用退出时,调用Dispose函数释放USB资源
usbDevices.Dispose();
USBDeviceList[...]成员变量
使用:通过后面括号中的值,来寻找相对应的USB设备。
(3)CyUSBDevice类
通过该类中的一些方法可以获取USB设备的信息及各类属性参数。比如:BCD码、设备类信息、协议信息、子类信息、驱动名称信息、制造商名称信息等等。
(4)CyControlEndPoint类
该类提供了USB设备控制端点的读写和设置,通过该类中的函数及成员变量可以实现USB设备的控制传输操作。这个在USB数据收发过程中相当重要。
XferData函数
通过当前USB控制端点执行一次控制传输
原型:unsafe public new bool_XferData(ref byte[] buf, ref int len)
使用:
CyControlEndPoint CtrlEndPt = null;
CtrlEndPt.Target = CyConst.TGT_DEVICE;
CtrlEndPt.ReqType = CyConst.REQ_VENDOR;
CtrlEndPt.Direction = CyConst.DIR_TO_DEVICE;
CtrlEndPt.ReqCode = x;
CtrlEndPt.Value = 0;
CtrlEndPt.Index = 0;
CtrlEndPt.XferData(ref buf, ref len); //参数buf表示控制传输的缓冲区,参数len表示控制传输的字节数。
(5)CylsocEndPoint类
用于同步传输端点控制,是CyUSBEndPoint的一个子类。同步传输端点控制类CylsocEndPoint提供了对同步端点的定义和函数支持,其函数列表如下:
CY7C68013 USB接口相机开发记录 - 第四天:上位机编写1的更多相关文章
- CY7C68013 USB接口相机开发记录 - 第一天:资料下载
一直觉得从头开发一套东西出来会极大的提升自己的自信心,能够最大化的开发自己的潜能.所以在犹豫很久之后决定学习下CY7C68013 USB接口相机的开发. 通过在网上查找多份资料后,觉得工欲善其事必先利 ...
- CY7C68013 USB接口相机开发记录 - 第三天:固件修改
上篇说了驱动怎么配置,这篇记录下对应的设备固件怎么配置.首先看下我们工程结构: 摘自官方文档AN61345 STARTUP.A51是建立工程时自动生成的文件,下面所有文件都是手动添加的.对于下面的几个 ...
- CY7C68013 USB接口相机开发记录 - 第二天:驱动修改
上次写了资料的下载,并对资料进行了分类,分完类看起来就比较清晰.同时通过强大的百度,也可以得到不少资料. 这里对比较关键的几个文件进行罗列: 一.驱动相关 cyusb.inf: 修改CYUSB.INF ...
- C#上位机开发(一)—— 了解上位机
在单片机项目开发中,上位机也是一个很重要的部分,主要用于数据显示(波形.温度等).用户控制(LED,继电器等),下位机(单片机)与 上位机之间要进行数据通信的两种方式都是基于串口的: USB转串口 — ...
- Web版记账本开发记录(四)
今天已经是是开发软件的第四天了,今天遇到了一些简单的小问题,虽然简单,但是自己仍旧不具备修改的能力, 自己尝试了各种办法仍旧没有修改成功,在收入表就状况百出,错误不断. 我决定明天还是静下心来好好地学 ...
- Html5+Mui前端框架,开发记录(四):下拉菜单绑定数据、搜索、时间控件
1.下拉菜单绑定数据,选择后回传值 1)html: <div class="mui-input-row"> <label>xxx:</label> ...
- 微信小程序之简单记账本开发记录(四)
昨天搭建了大致界面 今天需要将用到的一系列样式表配置出来并检查错误
- 用WindowsAppSDK(WASDK)优雅的开发上位机应用
C#开发上位机应用的一些选择 如果你不想看介绍,可以直接跳到优雅开发示例那里. 1. WASDK(WinUI 3) Windows 应用 SDK 是一组新的开发人员组件和工具,它们代表着 Window ...
- Linux 下wifi 驱动开发(四)—— USB接口WiFi驱动浅析
源: Linux 下wifi 驱动开发(四)—— USB接口WiFi驱动浅析
随机推荐
- SVN重新设置用户名和密码
在第一次使用TortoiseSVN从服务器CheckOut的时候,会要求输入用户名和密码,这时输入框下面有个选项是保存认证信息,如果选了这个选项,那么以后就不用每次都输入一遍用户名密码了. 不过,如果 ...
- linux:安装并使用activeMQ
1.下载安装包:curl -O https://archive.apache.org/dist/activemq/5.14.0/apache-activemq-5.14.0-bin.tar.gz 2. ...
- servlet在地址栏填写参数
单个参数:以"?"开头+参数名+"="符号+参数值 例如 https://i.cnblogs.com/EditPosts.aspx?opt=1 多个参数:以&q ...
- react-native 之gradle-2.x-all.zip 下载缓慢或失败
去官网http://www.gradle.org/downloadshttp://services.gradle.org/distributions下载匹配的 Gradle 版本把zip直接放到C:\ ...
- Windows 添加永久静态路由
route add -p 10.10.0.0 mask 255.255.0.0 10.10.6.1 -p 参数: p 即 persistent 的意思 -p 表示将路由表项永久加入系统注册表
- Caused by: java.net.ConnectException: Connection refused/Caused by: java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
1.使用sqoop技术将mysql的数据导入到Hive出现的错误如下所示: 第一次使用命令如下所示: [hadoop@slaver1 sqoop--cdh5.3.6]$ bin/sqoop impor ...
- MVC 添加JS,CSS等版本标签
在cshtml文件标签中添加 asp-append-version="true" <img src="~/images/codedigestlogo.png&quo ...
- ubuntu多版本cuda并存与切换【两个博客链接】
https://bluesmilery.github.io/blogs/a687003b/ https://blog.csdn.net/Maple2014/article/details/785742 ...
- JSP基础知识➣Cookie和Session(五)
JSP Cookie 处理 Cookie是存储在客户机的文本文件,它们保存了大量轨迹信息.在servlet技术基础上,JSP显然能够提供对HTTP cookie的支持.JSP脚本通过request对象 ...
- net core体系-web应用程序-4net core2.0大白话带你入门-11asp.net core 2.0 cookie的使用
asp.net core 2.0 cookie的使用 本文假设读者已经了解cookie的概念和作用,并且在传统的.net framework平台上使用过. cookie的使用方法和之前的相比也有所 ...