Mac開發(fā)usbHid通訊實例+封裝

之前寫過一篇 Mac開發(fā)之USB HID 通訊
很多朋友在開發(fā)實戰(zhàn)中或多或少遇到一點問題,有的涉及到每個下位機的不同,會給開發(fā)帶來一些麻煩,我這邊手里事情也比較多,沒有辦法為朋友一一解答,回復,所以我封裝了一個Mac UsbHid 通訊庫 并且寫了一個通訊實例可供大家參考下載(注釋很詳盡??)。

git 下載地址 : 點擊下載實例

??測試通訊的時候里面需要修改的是:

usbHid.m
ID 信息需要改成通訊設備的ID
查詢-> 導航??圖標 -> 概覽 -> 系統(tǒng)報告 -> USB -> 對應設備信息里面
const long vendorID = 0xyyyy;
const long productID = 0xzzzz;

封裝的方法概覽:

連接設備

- (void)connectHID;

發(fā)送數(shù)據(jù)

- (void)sendData:(unsigned char *)outbuffer;

接收數(shù)據(jù)

//是通過代理返回到VC的噢
@property(nonatomic,strong)id<UsbHidDelegate> delegate;

//具體代理里面的方法如下:
//收到數(shù)據(jù)返回 recvData(具體數(shù)據(jù)) reportLength(數(shù)據(jù)長度)
- (void)usbhidDidRecvData:(uint8_t*)recvData length:(CFIndex)reportLength;

//設備插入/設備拔出
- (void)usbhidDidMatch;
- (void)usbhidDidRemove;

獲取設備管理對象

- (IOHIDManagerRef)getManageRef;
- (void)setManageRef:(IOHIDManagerRef)ref;

獲取設備

- (IOHIDDeviceRef)getDeviceRef;
- (void)setDeviceRef:(IOHIDDeviceRef)ref;

使用

1.在VC中 import usbHid.h / 引用代理

#include <IOKit/hid/IOHIDLib.h>
#import "usbHid.h"

@interface RootViewController ()<UsbHidDelegate>

2.聲明為局部變量 hid (各位看官老爺隨意)

usbHid *hid;

3.創(chuàng)建 usbHid 變量

hid = [usbHid sharedManager];

4.添加數(shù)據(jù)返回代理

hid.delegate = self;

5.連接設備

[hid connectHID];

6.發(fā)送數(shù)據(jù)

unsigned char testData[7];
[hid sendData:testData];

7.添加代理(數(shù)據(jù)返回)方法

- (void)usbhidDidRecvData:(uint8_t*)recvData length:(CFIndex)reportLength
{
    NSLog(@"recvDataLength -- %ld",reportLength);
}

備注:例子中有的不解可以參考 我的另一篇文章

git 下載地址 : 點擊下載實例

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容