Replies: 1 comment 6 replies
-
@chaso1495 승운님 안녕하세요. 우선 구현 방안은 다양하겠지만(?) 제가 생각했을때 이것을 가장 쉽게 구현하는 방법은 EuPI를 사용하는 것입니다.
아래는 java에서 사용하는 api 예시인데요. txManager = new EuTxManager(this.getContext());
txManager.callEuPI(18500, EuTxManager.EuPIDuration.LENGTH_LONG); // 500ms
// txManager.callEuPI(18500, EuTxManager.EuPIDuration.LENGTH_SHORT); // 200ms
// txManager.callEuPI(18500, EuTxManager.EuPIDuration.LENGTH_FOREVER); // FOREVER
int api_1_count = 0;
int api_2_count = 0;
int api_3_count = 0;
mRxManager = new EuRxManager(EuOption.ModeType.EUPI);
mRxManager.setOnWaveKeyPressed(18500, new EuPICallDetector() {
@Override
public void call() {
api_1_count++;
API_1_COUNT.setText("" + api_1_count);
}
});
mRxManager.setOnWaveKeyDown(19000, new EuPICallDetector() {
@Override
public void call() {
api_2_count++;
API_2_COUNT.setText("" + api_2_count);
}
});
mRxManager.setOnWaveKeyUp(20000, new EuPICallDetector() {
@Override
public void call() {
api_3_count++;
API_3_COUNT.setText("" + api_3_count);
}
}); 위 코드는 이걸 참고하시면 해당 아이디어를 구현하실때 도움이 될 것 같아요. 각 기기마다 고유의 주파수를 지정해서 발생시키고 이를 다른 기기에서 주파수가 잡히는지를 확인하면 우선은 간단하게 prototyping 구현이 될 것 같아요. 그리고 EuPI는 jcenter artifact를 사용하는 것이 아닌 euphony를 직접 빌드해서 나온 aar 파일을 import 해서 쓰셔야 합니다. |
Beta Was this translation helpful? Give feedback.
-
E조 Soundary 팀의 팀장 채승운입니다.
우리 앱은 두 기기가 음파를 발생시키고, 서로를 인식하는 데 걸리는 시간을 계산하여, 두 사람의 사이의 거리를 확보합니다.
Euphony_hub_collector는 기기 자신이 입력받은 문자를 통해 음파를 발생시키고, 기기 자신이 그 음파를 다시 문자로 변환하여 Success를 출력합니다.
후자와 달리 우리 앱은 서로를 인식하면서도, 자기 스스로의 음파를 인식해서는 안 되므로,
한 기기가 다른 기기에 보내는 문자열을 "발생시간/문자열/ID"의 형태로 전송하는 것은 어떨까? 라는 아이디어를 떠올렸습니다.
각 기기의 listener들은 문자열을 받았을 때 뒤의 ID가 자신의 것인지 확인한 후 그렇지 않을 경우에만 문자열 속에 같이 속해있는 발생시간을 활용해 거리를 계산하는 과정을 진행할 것입니다. 거리는 4~5m 이내의 경우에만 화면에 dialog 형태로 출력할 것입니다.
이 아이디어 대해서 검토해주시면 감사하겠습니다:)
DB 등의 구축은 계획에 없고, 오직 두 기기의 상황만 프로토타입으로 구현해 보고자 합니다.
통신 개념에 대해 많이 미흡합니다. 친절한 설명해주시면 정말로 감사하겠습니다.
Beta Was this translation helpful? Give feedback.
All reactions