Notice
Recent Posts
Recent Comments
Link
투케이2K
84. (TWOK/WORK) [업무 이슈] 모바일 - Esptouch SmartConfig 스마트 콘피그 타임 아웃 발생 및 무한 연결 대기 이슈 - 핸들러 작업 예약 지정 본문
투케이2K 업무정리
84. (TWOK/WORK) [업무 이슈] 모바일 - Esptouch SmartConfig 스마트 콘피그 타임 아웃 발생 및 무한 연결 대기 이슈 - 핸들러 작업 예약 지정
투케이2K 2024. 8. 25. 15:23[제 목]
[업무 이슈] 모바일 - Esptouch SmartConfig 스마트 콘피그 타임 아웃 발생 및 무한 연결 대기 이슈 - 핸들러 작업 예약 지정
[내 용]
------------------------------------------------------------------------------
[이슈 사항]
------------------------------------------------------------------------------
1. 특정 기기 등록 시 Esptouch 에스프레소 SmartConfig 동작 무한 로딩 연결 상태 체크 이슈 문의
------------------------------------------------------------------------------
[원인 파악 및 증상 재현]
------------------------------------------------------------------------------
1. 하드웨어 기기 고장 점검 체크
>> 다른 휴대폰 기종으로 기기 등록 과정 다중 테스트 수행 및 정상 기기 등록 확인
2. 모바일 로직 점검 수행
>> 스마트 콘피그 활성 수행 후 >> 정상 연결 완료 시 TCP/IP 통신 수행 로직 확인
>> 스마트 콘피그 기기 연결 체크를 위한 브로드 캐스팅 이후 추가 보완 로직 없는 상태 확인 (무한 연결 체크 현상 확인)
>> 실제 스마트 콘피그 라이브러리에서는 최대 60초 이후 타임 아웃이 발생하는 로그 확인
Welcome Esptouch 1.1.1 // TODO [초기화 성공]
agSocket(113) with statsTag=0xffffffff, statsUid=-1
tagSocket(117) with statsTag=0xffffffff, statsUid=-1
mServerSocket is created, socket read timeout: 60000, port: 18266 // TODO [타임 아웃 시간]
receiveSpecLenBytes() entrance: len = 11
received len : 11 // TODO [실제 브로드 캐스팅 전파 후 >> 콜백 연결 메시지 수신 받음]
recDatas[0]:24
recDatas[1]:36
recDatas[2]:-95
recDatas[3]:96
recDatas[4]:-88
recDatas[5]:77
recDatas[6]:-24
recDatas[7]:-64
recDatas[8]:-88
recDatas[9]:0
recDatas[10]:17
receiveSpecLenBytes: $�`�M���??
------------------------------------------------------------------------------
[조치 내용]
------------------------------------------------------------------------------
1. 모바일 로직 보완 및 스마트 콘피그 브로드 캐스팅 이후 Handler 핸들러 작업 예약으로 타임 아웃 처리 로직 작성
// --------------------------------------------------------
// TODO [브로드 캐스팅 알림 전파]
esptouchTask.setPackageBroadcast(true);
// --------------------------------------------------------
// TODO [최대 대기 브로드 캐스팅 및 연결 대기 시간]
Handler handler = new Handler(Looper.getMainLooper());
handler.postDelayed(new Runnable() {
@Override
public void run() {
S_Log._E_(ACTIVITY_NAME + " : EsptouchTask 브로드 캐스트 타임 아웃", null);
}
}, (broadCastSeconds * 1000) );
// --------------------------------------------------------
// TODO [브로드 캐스팅 알림 전파 이벤트 결과 확인]
esptouchTask.setEsptouchListener(new IEsptouchListener() {
@Override
public void onEsptouchResultAdded(IEsptouchResult result) {
S_Log._W_(ACTIVITY_NAME + " : EsptouchTask 브로드 캐스트 연결 상태 콜백 결과 확인", new String[]{ result.toString() });
}
});
// --------------------------------------------------------
// TODO [브로드 캐스팅 알림 결과 확인 대기]
int expectResultCount = 1;
List<IEsptouchResult> results = esptouchTask.executeForResults(expectResultCount);
IEsptouchResult first = results.get(0);
if (first.isCancelled()){
S_Log._E_(ACTIVITY_NAME + " : EsptouchTask 결과 확인 에러", new String[]{ "esptouchTask isCancelled" });
// [로직 종료]
return;
}
if (first.isSuc()) {
// TODO [ip 주소 확인] : [LOG :: DESCRIPTION :: EsptouchTaskBroadcast :: onNext :: 192.168.0.17]
String resultData = first.getInetAddress().getHostAddress();
}
else {
S_Log._E_(ACTIVITY_NAME + " : EsptouchTask 결과 확인 에러", new String[]{ "esptouchTask isSuc false" });
}
// --------------------------------------------------------
}
else {
S_Log._E_(ACTIVITY_NAME + " : EsptouchTask 브로드 캐스트 에러", new String[]{ "esptouchTask Is Null" });
}
------------------------------------------------------------------------------
반응형
'투케이2K 업무정리' 카테고리의 다른 글
Comments