PoBD

푸조/시트로앵 디젤 OBD 스캐너 앱 개발 이야기

Peugeot OBD app 만들기 도전

<3단계> iOS, Android 겸용 Peugeot OBD앱 초기 버전 완성(1)

peugeotory 2024. 3. 5. 21:50

"(2023.12.29 작성글) 어떻게 만들어야 할까?"에 정리했듯이..

짧으면 3개월 길면 6개월 예상하고 시작했는데, 벌써 3개월이 훌쩍 흘러갔습니다.

그간 많은 작업을 했지만, 게으른 탓에 정리하지 못해서....

3개월치 작업 과정 정리하려니 엄두가 나지 않아 우선 결과만 정리하려고 합니다.


아래 내용처럼 기존에 분석했던 자료를 참조해서 앱을 만들었습니다. 
<1> FAP OBD2앱(android)CAN data 분석 도전!
<2> FAP OBD2앱 분석용 peugeot 508용 "가상 엔진 ECU 만들다!!!"
<3> FAP OBD2앱 동작 원리 완벽 분석!!

Flutter / Dart로 구현하다!

속도 때문에 C++로 라이브러리 만들어서 사용할까? 하다가, 수정하고 빌드하는게 번거로울것 같아 dart로  구현했습니다.
위에서 언급한 "<1> "자료의 5가지 명령을 보내서 읽어 오는 코드이므로 그리 어려운것은 없었습니다.


현재 구현한 것은 엔진 ECU data중 아래 (1)만 구현되어 있습니다.
(1) 연료 라인 정보 - 19 항목(완료)
(2) 흡기 라인 정보 - 16 항목 (예정)
(3) 배기 라인 정보 - 14 항목 (예정)
(4) 전기 라인 정보 - 15 항목 (예정)
(5) 냉각/에어컨 정보 - 6항목 (예정)

차에 처음으로 연결할 때의 긴장감...  휴,,,,

정말 동작할까?
우선 안드로이드폰(스마트폰 : 픽셀4) 설치해서 동작해봤습니다.

오!!!!
세상에나 읽혀집니다.!!!

하지만..
처음 연결했을 때 앱은 소수점값 자리수 표기 제한이 없어서 숫자가 이상하게 나옵니다. 

 

 

0.5초 간격으로 data 수집하기 때문에 상당히 늦게 업데이트 되는 것 처럼 보입니다.
나중에 수정하기로 하고... 우선 주행시 동작도 확인했습니다.

 

 

아이폰에서도 동작하는지 동일한 앱 설치 후(아이폰 11 pro) 확인한 결과 잘 작동합니다.!!!

 

* 현재는 디젤 엔진만 사용 가능하고 차량은 푸조 508 1.6(2011년식)에서만 test되었습니다.

 

처음 겪어보는 고장 

초기 버전의 경우,  코딩에 미숙한 점이 많아서 메모리 리크가 생겼습니다.

처음에는 엄청난 속도로 동작하다가...
시간이 지나면서 점점 느려지더니 앱이 멈춥니다.  ㅠㅜ

앱 리로드시 점유 메모리량이 현격히 줄어드는 것이 확인되므로 메모리 리크가 분명해 보입니다.


에러가 있는 것이 아니라, 어디에서 메모리 리크가 있는지 찾는게 어려웠습니다.
결국, DevTools 사용법을 배워서 하나씩 점검해 나가야 했습니다. (Visual studio code에 설치후)

1)DevTools로 무엇을 할 수 있나요? -[명령줄에서 DevTools 설치 및 실행] - https://docs.flutter.dev/tools/devtools/cli
2)Dart 및 Flutter DevTools 마스터하기 — 7부: 메모리 뷰    ←참조한 부분


< 다음편에 계속 >