#ifndef DRIVER_KIT_SERIAL_CLIENT_H #define DRIVER_KIT_SERIAL_CLIENT_H #include #include #include #ifdef __cplusplus extern "C" { #endif enum { FlutterUsbDriverKindUnknown = 0, FlutterUsbDriverKindSerial = 1, FlutterUsbDriverKindHid = 2, }; typedef struct { uint64_t registryEntryId; uint32_t protocolVersion; uint32_t kind; uint16_t vendorId; uint16_t productId; uint16_t maxInputPacketSize; uint16_t maxOutputPacketSize; uint8_t interfaceNumber; uint8_t inputEndpoint; uint8_t outputEndpoint; uint8_t reserved; } FlutterUsbDriverDeviceInfo; bool FlutterUsbSerialDriverIsAvailable(void); size_t FlutterUsbSerialDriverCopyDevices( FlutterUsbDriverDeviceInfo *devices, size_t capacity); int32_t FlutterUsbSerialDriverOpen(uint64_t registryEntryId, uint32_t *connection); void FlutterUsbSerialDriverClose(uint32_t connection); int32_t FlutterUsbSerialDriverWrite(uint32_t connection, const uint8_t *bytes, uint32_t length, uint32_t *bytesWritten); int32_t FlutterUsbSerialDriverRead(uint32_t connection, uint8_t *bytes, uint32_t capacity, uint32_t timeoutMilliseconds, uint32_t *bytesRead); int32_t FlutterUsbSerialDriverConfigure(uint32_t connection, uint32_t baudRate, uint8_t dataBits, uint8_t parity, uint8_t stopBits); int32_t FlutterUsbSerialDriverSetLineState(uint32_t connection, bool dtr, bool rts); int32_t FlutterUsbSerialDriverPurge(uint32_t connection, bool purgeWrite, bool purgeRead); #ifdef __cplusplus } #endif #endif