* draft: 临时提交 * feat: 实现扫描功能 * fix: 优化广播逻辑 * feat: 添加协程方法 * fix: 修改宏定义 * draft: 临时提交 * feat: 调整接口 * fix: 修改版本号 * feat: 4.1.1 * draft: 临时提交 * feat: 5.0.0-dev.2 * fix: 修复版本号错误 * draft: 临时提交 * fix: 修复连接断开异常 * fix: 修复问题 * fix: 优化代码 * fix: 优化 short UUID 格式化逻辑 * fix: 尝试实现 read_rssi 接口,当前此接口不可用,会报异常 * feat: 删除 getMaximumWriteLength 方法 * fix: 更新 CHANGELOG.md * feat: 5.0.0-dev.1 * fix: 更新依赖项 * feat: linux-5.0.0-dev.1 * fix: 更新 CHANGELOG.md * fix: 开始搜索设备时清空设备列表 * fix: 开始扫描时清空设备列表 * feat: 5.0.0-dev.2 * fix: 优化 MyGattService 和 MyGattCharacteristic * feat: 更新 interface 版本 -> 5.0.0-dev.4 * feat: 更新 interface 版本 -> 5.0.0-dev.4 * feat: 实现 flutter 部分 5.0.0 * fix: 移除 maximumWriteLength * fix: 移除 rssi * feat: 5.0.0-dev.1 * feat: 5.0.0-dev.2 * fix: 更新依赖项 * fix: 5.0.0-dev.4 * fix: 更新依赖项 * draft: 临时提交 * feat: 5.0.0-dev.5 * draft: 删除 MyCentralManager 和 MyPeripheralManager * fix: 更新依赖项 * fix: 更新依赖项 * feat: 适配新接口 * feat: 5.0.0-dev.6 * draft: 临时提交 * feat: 5.0.0-dev.7 * fix: 修改版本号 * feat: 5.0.0-dev.8 * feat: 5.0.0-dev.9 * fix: 修复 trimGATT 错误 * feat: 5.0.0-dev.6 * feat: 5.0.0-dev.3 * feat: 5.0.0-dev.4 * fix: 更新 pubspec.lock * feat: 5.0.0-dev.7 * feat: 5.0.0-dev.3 * fix: balabala * fix: balabala * draft: 5.0.0-dev.1 * fix: trim GATT when call the `writeCharacteristic` method. * fix: make difference of `trim` and `fragment`. * feat: 5.0.0-dev.1 * feat: 5.0.0-dev.1 * feat: 优化示例程序 * fix: 更新 README.md * fix: 修复插件引用 * draft: XXXX * feat: 增加调试信息 * fix: 更新 pubspec.lock * feat: 5.0.0-dev.4 * feat: 5.0.0-dev.3 * feat: 5.0.0 * feat: 5.0.0 * feat: 5.0.0 * feat: 5.0.0 * feat: 5.0.0 * feat: 5.0.0
228 lines
4.8 KiB
Dart
228 lines
4.8 KiB
Dart
import 'package:pigeon/pigeon.dart';
|
|
|
|
@ConfigurePigeon(
|
|
PigeonOptions(
|
|
dartOut: 'lib/src/my_api.g.dart',
|
|
dartOptions: DartOptions(),
|
|
swiftOut: 'darwin/Classes/MyApi.g.swift',
|
|
swiftOptions: SwiftOptions(),
|
|
),
|
|
)
|
|
enum MyBluetoothLowEnergyStateArgs {
|
|
unknown,
|
|
resetting,
|
|
unsupported,
|
|
unauthorized,
|
|
poweredOff,
|
|
poweredOn,
|
|
}
|
|
|
|
enum MyGattCharacteristicPropertyArgs {
|
|
read,
|
|
write,
|
|
writeWithoutResponse,
|
|
notify,
|
|
indicate,
|
|
}
|
|
|
|
enum MyGattCharacteristicWriteTypeArgs {
|
|
withResponse,
|
|
withoutResponse,
|
|
}
|
|
|
|
enum MyGattErrorArgs {
|
|
success,
|
|
invalidHandle,
|
|
readNotPermitted,
|
|
writeNotPermitted,
|
|
invalidPDU,
|
|
insufficientAuthentication,
|
|
requestNotSupported,
|
|
invalidOffset,
|
|
insufficientAuthorization,
|
|
prepareQueueFull,
|
|
attributeNotFound,
|
|
attributeNotLong,
|
|
insufficientEncryptionKeySize,
|
|
invalidAttributeValueLength,
|
|
unlikelyError,
|
|
insufficientEncryption,
|
|
unsupportedGroupType,
|
|
insufficientResources,
|
|
}
|
|
|
|
class MyManufacturerSpecificDataArgs {
|
|
final int idArgs;
|
|
final Uint8List dataArgs;
|
|
|
|
MyManufacturerSpecificDataArgs(this.idArgs, this.dataArgs);
|
|
}
|
|
|
|
class MyAdvertisementArgs {
|
|
final String? nameArgs;
|
|
final List<String?> serviceUUIDsArgs;
|
|
final Map<String?, Uint8List?> serviceDataArgs;
|
|
final MyManufacturerSpecificDataArgs? manufacturerSpecificDataArgs;
|
|
|
|
MyAdvertisementArgs(
|
|
this.nameArgs,
|
|
this.serviceUUIDsArgs,
|
|
this.serviceDataArgs,
|
|
this.manufacturerSpecificDataArgs,
|
|
);
|
|
}
|
|
|
|
class MyCentralArgs {
|
|
final String uuidArgs;
|
|
|
|
MyCentralArgs(this.uuidArgs);
|
|
}
|
|
|
|
class MyPeripheralArgs {
|
|
final String uuidArgs;
|
|
|
|
MyPeripheralArgs(this.uuidArgs);
|
|
}
|
|
|
|
class MyGattDescriptorArgs {
|
|
final int hashCodeArgs;
|
|
final String uuidArgs;
|
|
final Uint8List? valueArgs;
|
|
|
|
MyGattDescriptorArgs(
|
|
this.hashCodeArgs,
|
|
this.uuidArgs,
|
|
this.valueArgs,
|
|
);
|
|
}
|
|
|
|
class MyGattCharacteristicArgs {
|
|
final int hashCodeArgs;
|
|
final String uuidArgs;
|
|
final List<int?> propertyNumbersArgs;
|
|
final List<MyGattDescriptorArgs?> descriptorsArgs;
|
|
|
|
MyGattCharacteristicArgs(
|
|
this.hashCodeArgs,
|
|
this.uuidArgs,
|
|
this.propertyNumbersArgs,
|
|
this.descriptorsArgs,
|
|
);
|
|
}
|
|
|
|
class MyGattServiceArgs {
|
|
final int hashCodeArgs;
|
|
final String uuidArgs;
|
|
final List<MyGattCharacteristicArgs?> characteristicsArgs;
|
|
|
|
MyGattServiceArgs(
|
|
this.hashCodeArgs,
|
|
this.uuidArgs,
|
|
this.characteristicsArgs,
|
|
);
|
|
}
|
|
|
|
@HostApi()
|
|
abstract class MyCentralManagerHostApi {
|
|
void setUp();
|
|
void startDiscovery();
|
|
void stopDiscovery();
|
|
@async
|
|
void connect(String uuidArgs);
|
|
@async
|
|
void disconnect(String uuidArgs);
|
|
int getMaximumWriteValueLength(String uuidArgs, int typeNumberArgs);
|
|
@async
|
|
int readRSSI(String uuidArgs);
|
|
@async
|
|
List<MyGattServiceArgs> discoverServices(String uuidArgs);
|
|
@async
|
|
List<MyGattCharacteristicArgs> discoverCharacteristics(
|
|
String uuidArgs,
|
|
int hashCodeArgs,
|
|
);
|
|
@async
|
|
List<MyGattDescriptorArgs> discoverDescriptors(
|
|
String uuidArgs,
|
|
int hashCodeArgs,
|
|
);
|
|
@async
|
|
Uint8List readCharacteristic(String uuidArgs, int hashCodeArgs);
|
|
@async
|
|
void writeCharacteristic(
|
|
String uuidArgs,
|
|
int hashCodeArgs,
|
|
Uint8List valueArgs,
|
|
int typeNumberArgs,
|
|
);
|
|
@async
|
|
void setCharacteristicNotifyState(
|
|
String uuidArgs,
|
|
int hashCodeArgs,
|
|
bool stateArgs,
|
|
);
|
|
@async
|
|
Uint8List readDescriptor(String uuidArgs, int hashCodeArgs);
|
|
@async
|
|
void writeDescriptor(String uuidArgs, int hashCodeArgs, Uint8List valueArgs);
|
|
}
|
|
|
|
@FlutterApi()
|
|
abstract class MyCentralManagerFlutterApi {
|
|
void onStateChanged(int stateNumberArgs);
|
|
void onDiscovered(
|
|
MyPeripheralArgs peripheralArgs,
|
|
int rssiArgs,
|
|
MyAdvertisementArgs advertisementArgs,
|
|
);
|
|
void onConnectionStateChanged(String uuidArgs, bool stateArgs);
|
|
void onCharacteristicNotified(
|
|
String uuidArgs,
|
|
int hashCodeArgs,
|
|
Uint8List valueArgs,
|
|
);
|
|
}
|
|
|
|
@HostApi()
|
|
abstract class MyPeripheralManagerHostApi {
|
|
void setUp();
|
|
@async
|
|
void addService(MyGattServiceArgs serviceArgs);
|
|
void removeService(int hashCodeArgs);
|
|
void clearServices();
|
|
@async
|
|
void startAdvertising(MyAdvertisementArgs advertisementArgs);
|
|
void stopAdvertising();
|
|
int getMaximumUpdateValueLength(String uuidArgs);
|
|
void respond(int idArgs, int errorNumberArgs, Uint8List? valueArgs);
|
|
@async
|
|
void updateCharacteristic(
|
|
int hashCodeArgs,
|
|
Uint8List valueArgs,
|
|
List<String>? uuidsArgs,
|
|
);
|
|
}
|
|
|
|
@FlutterApi()
|
|
abstract class MyPeripheralManagerFlutterApi {
|
|
void onStateChanged(int stateNumberArgs);
|
|
void onCharacteristicReadRequest(
|
|
MyCentralArgs centralArgs,
|
|
int hashCodeArgs,
|
|
int idArgs,
|
|
int offsetArgs,
|
|
);
|
|
void onCharacteristicWriteRequest(
|
|
MyCentralArgs centralArgs,
|
|
int hashCodeArgs,
|
|
int idArgs,
|
|
int offsetArgs,
|
|
Uint8List valueArgs,
|
|
);
|
|
void onCharacteristicNotifyStateChanged(
|
|
MyCentralArgs centralArgs,
|
|
int hashCodeArgs,
|
|
bool stateArgs,
|
|
);
|
|
}
|