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驱动浅析
随机推荐
- .gz解压
1.今天很神奇我遇到这样的压缩包,啧啧啧,好少见的,记录下 gzip -d http_log.gz 这是讲http_log文件解压到当前的路径下
- 集腋成裘-01-html -html基础
1 标签 1.1 单标签 注释标签 <!-- 注释标签 --> 换行标签 <br/> 水平线 <hr/> <img src="图片来源" ...
- httpstatus类的状态有哪些
HTTP Status Code 常见的状态码: HTTP: Status 200 – 服务器成功返回网页HTTP: Status 404 – 请求的网页不存在HTTP: Status 503 – 服 ...
- Just Oj 2017C语言程序设计竞赛高级组D: 字符串最大表示(next数组)
D: 字符串最大表示 时间限制: 1 s 内存限制: 128 MB 题目描述 有如下定义,abcnabcn表示字符串abc重复n次,例如abc2abc2表示abcabc. 给定一个字符串,求 ...
- Python模块的导入以及软件开发规范
Python文件的两种用途 1 . 当脚本直接使用,直接当脚本运行调用即可 def func(): print("from func1") func() 2 . 当做模块被导入使用 ...
- MySQL的预处理技术
所谓的预处理技术,最初也是由MySQL提出的一种减轻服务器压力的一种技术! 传统mysql处理流程 1, 在客户端准备sql语句 2, 发送sql语句到MySQL服务器 3, 在MySQL服务器 ...
- adb devices unauthorized解决办法
进行Android项目调试时,连接完设备,进行adb install ******.apk时,偶遇 adb devices unauthorized 这个小东西,解决办法:将手机设置->辅助功能 ...
- ubuntud安装Adobe Flash Player / Plugin
1.https://get.adobe.com/flashplayer/ , select tar.gz for other Linux, download 2.Unpack the tar.gz f ...
- 自建yum仓库yum源
目的:搭建自己的yum源主要是解决大批量服务器下载更新人互联网带宽占用问题及速度问题以及不能访问的问题. 服务端: 步骤如下: 一.创建一个目录,就是我们yum软件存放的目录 [root@vicwe ...
- 【Android】Android 4.0 Launcher2源码分析——启动过程分析
Android的应用程序的入口定义在AndroidManifest.xml文件中可以找出:[html] <manifest xmlns:android="http://schemas. ...