import 'package:flutter_blue_plus/flutter_blue_plus.dart'; /// BLE 공유를 위한 디바이스 정보 class ShareDevice { /// 공유 코드 (6자리 숫자) final String code; /// 디바이스 고유 ID final String deviceId; /// BLE Remote ID (MAC 주소 또는 UUID) final String? remoteId; /// 신호 강도 (RSSI) final int? rssi; /// 발견 시각 final DateTime discoveredAt; /// flutter_blue_plus BluetoothDevice 참조 /// 실제 BLE 연결 시 사용 final BluetoothDevice? bleDevice; ShareDevice({ required this.code, required this.deviceId, this.remoteId, this.rssi, required this.discoveredAt, this.bleDevice, }); /// 신호 강도 레벨 (0-4) /// RSSI 값을 기반으로 계산 int get signalLevel { if (rssi == null) return 0; if (rssi! >= -50) return 4; // 매우 강함 if (rssi! >= -60) return 3; // 강함 if (rssi! >= -70) return 2; // 보통 if (rssi! >= -80) return 1; // 약함 return 0; // 매우 약함 } /// 디버그용 문자열 @override String toString() { return 'ShareDevice(code: $code, deviceId: $deviceId, rssi: $rssi)'; } /// 복사본 생성 ShareDevice copyWith({ String? code, String? deviceId, String? remoteId, int? rssi, DateTime? discoveredAt, BluetoothDevice? bleDevice, }) { return ShareDevice( code: code ?? this.code, deviceId: deviceId ?? this.deviceId, remoteId: remoteId ?? this.remoteId, rssi: rssi ?? this.rssi, discoveredAt: discoveredAt ?? this.discoveredAt, bleDevice: bleDevice ?? this.bleDevice, ); } }