- ble_peripheral 패키지 추가 (Peripheral/GATT Server 역할) - flutter_blue_plus 패키지 활용 (Central/스캔/연결 역할) 변경 사항: - BleConstants: BLE UUID 및 설정 상수 정의 - BluetoothService: Mock에서 실제 BLE 통신으로 전면 재작성 - Receiver: GATT Server로 광고, Write callback으로 데이터 수신 - Sender: 서비스 UUID로 스캔, 연결 후 Characteristic에 데이터 전송 - 청크 기반 대용량 데이터 전송 프로토콜 구현 - ShareDevice: BLE 디바이스 정보 필드 추가 (remoteId, rssi, bleDevice) - Android/iOS: BLE 권한 및 기능 선언 추가 데이터 전송 프로토콜: - 'CHUNK:index:total:data' 형식으로 500바이트 단위 분할 전송 - 수신 측에서 청크 조립 후 JSON 파싱
33 lines
1.0 KiB
Dart
33 lines
1.0 KiB
Dart
/// BLE 공유 기능에서 사용하는 상수 정의
|
|
class BleConstants {
|
|
BleConstants._();
|
|
|
|
/// LunchPick 전용 서비스 UUID
|
|
static const String serviceUuid = 'a1b2c3d4-e5f6-7890-abcd-ef1234567890';
|
|
|
|
/// 맛집 데이터 전송용 Characteristic UUID
|
|
static const String dataCharacteristicUuid =
|
|
'a1b2c3d4-e5f6-7890-abcd-ef1234567891';
|
|
|
|
/// 공유 코드 확인용 Characteristic UUID (매칭용)
|
|
static const String codeCharacteristicUuid =
|
|
'a1b2c3d4-e5f6-7890-abcd-ef1234567892';
|
|
|
|
/// 청크 사이즈 (MTU - 3, 보수적으로 설정)
|
|
/// BLE 표준 MTU는 23바이트지만, 협상을 통해 더 커질 수 있음
|
|
/// 안전하게 500바이트로 설정
|
|
static const int chunkSize = 500;
|
|
|
|
/// 광고 이름 prefix
|
|
static const String advertiseNamePrefix = 'LP-';
|
|
|
|
/// 스캔 타임아웃 (초)
|
|
static const int scanTimeoutSeconds = 10;
|
|
|
|
/// 연결 타임아웃 (초)
|
|
static const int connectionTimeoutSeconds = 15;
|
|
|
|
/// 청크 전송 간 딜레이 (밀리초)
|
|
static const int chunkDelayMs = 50;
|
|
}
|