MacOS Swift, отправьте данные на USB-устройство с параметрами - PullRequest
0 голосов
/ 19 февраля 2019

Отправка данных через 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 байта данных.Как я могу построить этот запрос?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...