17414656a9
- Updated README.md to reflect platform support for iPadOS. - Implemented isDriverAvailable method in FlutterUsbSerialPlugin for DriverKit readiness check. - Added DriverKitSerialClient C source and header files for iPadOS integration. - Created Swift Package for iPadOS support. - Updated pubspec.yaml and flutter_usb_serial.dart to clarify platform compatibility. - Enhanced tests to verify isDriverAvailable functionality. Signed-off-by: Tony <tonylu@tony-cloud.com>
65 lines
2.1 KiB
C
65 lines
2.1 KiB
C
#ifndef DRIVER_KIT_SERIAL_CLIENT_H
|
|
#define DRIVER_KIT_SERIAL_CLIENT_H
|
|
|
|
#include <stdbool.h>
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
#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
|