C# 开发USB通信、串口通信、Socket通信(适用于打印机的指令操作等)
背景:公司最近需要用到外接打印机(型号:东芝标签打印机B-FV4T,采用东芝自定义的TPCL指令格式),现在市场上可以购买到的主流打印机一般都是支持一下通信模式的。
1:USB通信
2:网络通信
3:串口通信(一般是RS232)
4:蓝牙通信(东芝标签打印机B-FV4T,没有蓝牙,所以本人没办法测试)
原因:因为想要打印机做到即插即用,所以需要绕过官方提供的打印机驱动,使用打印机指令来进行打印控制。但是其实还是避免不了一些驱动的安装,比如USB转RS232转接线的驱动等,但是在Win10操作系统,所有驱动都会自己安装,不需要那么麻烦。
USB通信:
usb通信有很多方式,我查询了很多网上的资料,大体上有三种,1:LibUsbDotNet 2:CyUSB 3:Win_32Api
前两种方式都需要下载对应的库文件(大家可以百度查询相关资料,很多),第三种是直接调用win32_api的函数。
这三种方式我都进行了测试,讲讲各自的区别。
第一种:功能很强大,但是有个麻烦的地方是,必须用他自己的一个软件(inf-wizard.exe),对USB设备进行注册后,才能被识别,如下图。
第二种:CyUSB提供三种USB可识别的驱动,但是我的使用的打印机以下三种都不能识别,我不知道是不是我哪里没有设置对,或者是哪里使用出错了,反正最后没有识别到我的USB设备,就放弃了;
CyConst.DEVICES_CYUSB——由CyUSB.sys提供设备驱动的USB设备
CyConst.DEVICES_HID——USB人机接口设备(如键盘、鼠标)
CyConst.DEVICES_MSC——USB大容量存储类设备(如U盘、移动硬盘)
第三种:调用Windows API,由于没有调用人家封装的库,所以代码比较复杂,比较多,但是功能齐全,我最后就是使用了这个方法。大家可以参考这篇文章“C#与USB HID间的通信”,但是他这篇文章的 讲的是USB中HID类型的通信,可以借鉴一下,但是如果你的设备不是HID类型的话,还需要修改。
转:c# USB通信
网络通信:
其实网络通信什么好讲的,就是建立一个Socket对象进行通信即可。
转:c# 网络通信
串口通信:
串口通信,建立一个SerialPort对象进行通信,但是需要注意一些细节方面的设置,否则可能会导致通信失败。
转:c# 串口通信
C# 开发USB通信、串口通信、Socket通信(适用于打印机的指令操作等)相关推荐
- 使用Petalinux实现ZYNQ的linux程序开发(实现简单的socket通信程序)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 (一)实现功能及开发环境 一.实现功能 二.开发环境 (二)实现步骤 一.开发环境搭建 1.设置Ubuntu 和 Windo ...
- 串口转socket通信
(1)串口转socket的思路 (2)串口结构体的定义 串口有波特率.校验位.数据位.停止位等等的设置,把这些设置打包在一起. typedef struct __COM_PORT // 定义一个串口结 ...
- ABB 机器人二次开发另一种方式 socket通信
前言: 前面我们说了一种方式是用 abb 官方提供的 c# sdk,只有c#的 所以有一定的局限性 PC SDK 还有另一种方法 写RAPID 代码 建立客户端/服务器 通过socket 与上位机通信 ...
- QT中使用C++ socket通信(了解socket通信、socket的三次握手和四次挥手、socket函数说明、客户端与服务端的代码实例)
一.TCP/IP协议四个抽象层: 二.socket位置 socket就在应用程序的传输层和应用层之间,传输层的底一层的服务提供给socket抽象层,socket抽象层再提供给应用层. 三.socket ...
- Socket通信学习(二):序列化与反序列化
Socket通信学习(二):序列化与反序列化 HoloLens的开发最近需要用到Socket通信,所以创建本系列进行记录,欢迎大家批评指正! 前言 Socket通信的默认发送的数据为byte[]类型, ...
- Socket通信学习(一):Socket通信原理
Socket通信学习(一):Socket通信原理 HoloLens的开发最近需要用到Socket通信,所以创建本系列进行记录,欢迎大家批评指正! 前言 应用Socket进行设备通信,首先需要了解Soc ...
- Android中socket通信简单实现
Android中socket通信简单实现 socket通信需要有一个服务器和客户端,可以把同一个APP作为服务器跟客户端,也可以分开成两个APP. 先上个图: 这里以一个APP作为服务器跟客户端为示例 ...
- 安卓开发板之串口通信,通过modbus Rtu协议控制下位机
安卓开发板之串口通信,通过modbus Rtu协议控制下位机 1.环境准备 2.编写串口操作核心类 3.编写测试类 前言:因为公司最近有个人脸识别门禁的项目,这个项目主要业务是实现远程人脸注册,管理员 ...
- 单片机、usb和串口通信
单片机 1 单片机定义 单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU.随机存储器RAM.只读存储器ROM.多种I/O口和中断系统.定时器/计数器等功能(可能 ...
最新文章
- Ubuntu下用matplotlib作图时显示中文
- 多环境下读取不同的配置文件
- n条线分平面问题解决方法总结
- docker镜像指定安装源_Docker快速安装以及换镜像源
- opencv之解决对加载图片大小限制的问题
- Codeforces 448 D. Multiplication Table
- 小米6X反复自动重启停不下,取下卡槽、电源音量-,ok了
- python抓取微博数据_技术入门 | python利用微博api获取数据
- 电脑如何进行长截图?
- 专访Nick McKeown:网络领域的游戏颠覆者
- java-Socket文件传输
- 微服务面试题 - Spring Cloud
- 【关于我】一个专注于嵌入式物联网架构设计的攻城狮
- 华为语音解锁设置_华为手机语音唤醒解锁 华为语音助手解锁屏幕
- 阅读技术书籍原著的困扰:技术书籍中的符号用英语该怎么念?
- 正则表达式 中文 英文 空格
- 用异地组网路由器,实现家校互联
- 使用手机自带邮箱软件登陆网易企业邮箱
- C语言代码覆盖率测试软件,代码覆盖率检测工具GCOV
- 谷歌浏览器突然变卡的解决方法