example 코드 수정해서 OBDII 명령(ELM327 AT 명령) 보내기 위해, 아래와 같이 "device_screen.dart" 코드를 수정하여 전송 버튼 만듭니다.
실행하면 아래 처럼 우측 상단에 작은 버튼 하나 생성됩니다.
위의 버튼을 눌렀을 때 실행될수 있도록 _sendElm327Command() 함수 만들어줍니다.
아래 두줄로 Service UUID = 0x1801의 Characteristic 0x2A05 선택해줍니다.
BluetoothService basicObiidiService = services[1];
BluetoothCharacteristic pidCharacteristic = basicObiidiService.characteristics[0];
원하는 기능을 선택하려면 현재 사용하는 BT 동글이 어떤 서비스를 제공해야 하는지 알아야 합니다.
사용한 BTL 동글은 아래와 같은 서비스 제공합니다. services[1]과 characteristics[0]는 아래 테이블에서 오랜지색이 선택됨을 의미합니다. (0x2A05)
<실행 결과> 각각 배열의 값을 변경해서 아래 4가지 서비스 선택후 결과 확인
(1) services[0], characteristics[0] = 0x2A00
(2) services[1], characteristics[0] = 0x2A05
(3) services[2], characteristics[0] = 0xFFF1
(4) services[2], characteristics[1] = 0xFFF2
실패와 성공으로 나눠진 이유는 Write 기능 (여기서는 Write만 가능하고 응답을 받지 않는 "WriteNoResp") 때문인 것으로 추정됩니다.
결국, (3),(4) Characteristic 기능만 OBD 명령을 보낼 수 있습니다.
그럼 AT 명령 보내고, 받아 보는 "Notifiy" 기능은 어느 서비스가 제공할까요?
< 다음편에 계속...>
'Peugeot OBD app 만들기 도전' 카테고리의 다른 글
<2단계 > Android, Mac OS, iOS: OBDII(ELM327) 동일 코드 실행(8) (0) | 2024.01.17 |
---|---|
<2단계> Flutter_blue_plus 예제로 OBDII(ELM327) Notify 확인(7) (0) | 2024.01.16 |
<2단계> Flutter_blue_plus 예제 android 실행 결과와 API 정리(5) (0) | 2024.01.14 |
<2단계> (사전학습) 스마트폰에서 ELM327 명령 송수신 시도(4) (0) | 2024.01.13 |
<2단계> 미리 학습해야 할것 : Bluetooth Low(BLE) spec(3) (0) | 2024.01.12 |