Отправка данных через USB с параметрами.
Я хотел бы отправить данные на свое USB-устройство, но все примеры показывают только то, что запрос состоит только из 1-байтовых данных.В моем документе связи указано, что мне нужно отправить запрос с параметрами, состоящим из 1 слова.Как я могу это сделать?
enum EsconRequest: UInt8 {
case GETSTATUS = 0x01
case ENABLE = 0x05
}
func systemEnable () throws {
guard let deviceInterface = self.deviceInfo.deviceInterfacePtrPtr?.pointee?.pointee else {
throw EsconDeviceError.DeviceInterfaceNotFound
}
var kr:Int32 = 0
let length:Int = 2
var requestPtr:[UInt16] = [UInt16](repeating: 0, count: length)
// creating request
var request = IOUSBDevRequest(bmRequestType: 161,
bRequest: EsconRequest.ENABLE.rawValue,
wValue: 0,
wIndex: 0,
wLength: UInt16(length),
pData: &requestPtr,
wLenDone: 255)
kr = deviceInterface.DeviceRequest(self.deviceInfo.deviceInterfacePtrPtr, &request)
if (kr != kIOReturnSuccess) {
throw EsconDeviceError.RequestError(desc: "Enable Device request Error: \(kr)")
}
}
Я предполагаю, что Мой запрос состоит из 1 байта, а мой параметр состоит из данных в 1 слово, но в последовательности, которая будет 3 байта данных.Как я могу построить этот запрос?