aman-kassa-flutter/lib/core/services/blue_print_service.dart

63 lines
1.5 KiB
Dart

import 'dart:typed_data';
import 'package:aman_kassa_flutter/core/base/base_service.dart';
import 'package:bluetooth_print/bluetooth_print.dart';
import 'package:bluetooth_print/bluetooth_print_model.dart';
class BluePrintService extends BaseService {
BluetoothPrint _bluetooth = BluetoothPrint.instance;
BluetoothDevice? _device;
Future<void> scan() async {
await _bluetooth.startScan(timeout: Duration(seconds: 4));
}
Future<void> stopScan() async {
await _bluetooth.stopScan();
}
Stream<List<BluetoothDevice>> get scanResult => _bluetooth.scanResults;
Stream<bool> get isScanning => _bluetooth.isScanning;
Stream<int> get state => _bluetooth.state;
set device(BluetoothDevice device) => _device = device;
Future<bool> connect() async {
bool response = false;
if (_device == null) {
response = false;
} else {
try {
await _bluetooth.connect(_device!);
await Future.delayed(Duration(seconds: 2));
response = true;
} catch (e) {
print('Error connect $e');
response = false;
}
}
return response;
}
Future<bool> disconnect() async {
bool response = false;
try {
await _bluetooth.disconnect();
response = true;
} catch (e) {
print('Error $e');
response = false;
}
return response;
}
Future<bool> printBytes(Uint8List bytes) async {
Map<String, dynamic> config = Map();
return await _bluetooth.rawBytes(config, bytes);
}
}