SKKU-ESLAB / opel-alpha

Open Platform Event Logger (OPEL) Project
Other
3 stars 0 forks source link

Change on Establishing Wi-fi Direct Connection #189

Open RedCarrottt opened 6 years ago

RedCarrottt commented 6 years ago

현재 OPEL Beta 2(#144)에 들어가는 Appcore Manager 및 OPEL Manager의 Modularization 작업을 진행하고 있습니다. (#132, #180)

Appcore Manager와 OPEL Manager 간의 의존성을 줄이는 것이 목적이다 보니, communication framework에서 OPEL 장치와 Android 장치 간 Wi-fi Direct 연결을 수립하는 부분에서 큰 변화가 있을 예정입니다.

변화점

  1. Appcore Manager와 OPEL Manager 간 상호 Wi-fi direct 상태 확인 과정 제거
    • 이로 인해, Wi-fi Direct 연결 관련 코드의 장치 간 의존성이 줄어들고, 연결 시간도 크게 단축될 것으로 예상됨.
  2. Appcore Manager가 직접 OPEL device의 Wi-fi Direct Name과 IP Address를 OPEL Manager에 전달
    • 이로 인해, OPEL Manager 메인 화면 상단에 있는 target device type 선택 버튼 제거 가능.
  3. 2번 변화점으로 인해, Target Profile에는 "OPEL_WFD_NAME"(Wi-fi Direct Name)을 추가로 설정해야 함.
    • 기존 target profile에 OPEL_WFD_NAME 속성 추가 필요.

Old(Beta 1) Wi-fi Direct 연결 방법

  1. (OPEL Manager) select target device's type (Currently, "Raspberry PI" or "Tegra TX1")
  2. (OPEL Manager) set target device's Wi-fi Direct Name and IP Address
  3. (OPEL Manager) open & connect control port (Bluetooth)
  4. (Appcore Manager) accept control port
  5. Repeat until Wi-fi Direct states of both devices become "on"
    1. (Appcore Manager) try to turn on OPEL device's Wi-fi Direct
    2. (Appcore Manager) send its Wi-fi Direct state to OPEL Manager ("on" or "off")
    3. (OPEL Manager) send its Wi-fi Direct state to Appcore Manager ("on" or "off")
  6. (OPEL Manager) discover peer device

New(Beta 2) Wi-fi Direct 연결 방법

  1. (OPEL Manager) open & connect control port (Bluetooth)
  2. (Appcore Manager) accept control port
  3. (OPEL Manager) send "enableLargeData(on)" command to Appcore Manager
  4. (Appcore Manager) turn on Wi-fi Direct (blocked operation)
  5. (Appcore Manager) send "Wi-fi Direct Name" and "IP Address" to OPEL Manager
  6. (OPEL Manager) discover peer device
RedCarrottt commented 6 years ago

Target profile에 OPEL_WFD_NAME를 추가하는 방법보다는 wpa-supplicant와 통신하여 직접 Wi-fi Direct Name을 가져오는 것이 가장 바람직합니다만, 일단 임시 방편으로 이와 같이 구현하겠습니다.