|
@@ -134,6 +134,7 @@ public class Things_Detail extends CustomActionBarActivity implements View.OnCli
|
|
|
private String sCall_HTTP_device_id = "";
|
|
private String sCall_HTTP_device_id = "";
|
|
|
private String sCall_HTTP_node_id = "";
|
|
private String sCall_HTTP_node_id = "";
|
|
|
private String sCall_HTTP_request_value = "";
|
|
private String sCall_HTTP_request_value = "";
|
|
|
|
|
+ private String sCall_HTTP_cmdcls_id = "";
|
|
|
private Boolean bPollingPause = false;
|
|
private Boolean bPollingPause = false;
|
|
|
private Boolean bPollingCancel = false;
|
|
private Boolean bPollingCancel = false;
|
|
|
private Boolean bActStop = false;
|
|
private Boolean bActStop = false;
|
|
@@ -176,6 +177,11 @@ public class Things_Detail extends CustomActionBarActivity implements View.OnCli
|
|
|
scheduledFuture.cancel(false);
|
|
scheduledFuture.cancel(false);
|
|
|
bPollingPause = true;
|
|
bPollingPause = true;
|
|
|
}
|
|
}
|
|
|
|
|
+ if ( bBound ) {
|
|
|
|
|
+ webSocketService.removeWebSocketResponse(webSocketResponse);
|
|
|
|
|
+ unbindService(serviceConnection);
|
|
|
|
|
+ bBound = false;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override protected void onNewIntent(Intent saveIntent) {
|
|
@Override protected void onNewIntent(Intent saveIntent) {
|
|
@@ -216,28 +222,30 @@ public class Things_Detail extends CustomActionBarActivity implements View.OnCli
|
|
|
@Override
|
|
@Override
|
|
|
public void onWebSocketResponse(String result) {
|
|
public void onWebSocketResponse(String result) {
|
|
|
try {
|
|
try {
|
|
|
|
|
+
|
|
|
JSONObject jsonObject = new JSONObject(result);
|
|
JSONObject jsonObject = new JSONObject(result);
|
|
|
- LogUtil.i(TAG, "websocket message type : " + jsonObject.get(Constants.WEBSOCKET_KEY_MESSAGE_TYPE));
|
|
|
|
|
- String resultCode = util.null2string(jsonObject.get(Constants.WEBSOCKET_KEY_RESULT_CODE));
|
|
|
|
|
|
|
+ String messageType = util.null2string(jsonObject.get(Constants.WEBSOCKET_KEY_MESSAGE_TYPE));
|
|
|
|
|
+ LogUtil.i(TAG, "websocket message type : " + messageType);
|
|
|
|
|
+ String resultCode = "";
|
|
|
String resultMsg = "";
|
|
String resultMsg = "";
|
|
|
|
|
+ if ( jsonObject.has(Constants.WEBSOCKET_KEY_RESULT_CODE) ) {
|
|
|
|
|
+ resultCode = util.null2string(jsonObject.get(Constants.WEBSOCKET_KEY_RESULT_CODE));
|
|
|
|
|
+ }
|
|
|
if ( jsonObject.has(Constants.WEBSOCKET_KEY_RESULT_MSG) ) {
|
|
if ( jsonObject.has(Constants.WEBSOCKET_KEY_RESULT_MSG) ) {
|
|
|
resultMsg = util.null2string(jsonObject.get(Constants.WEBSOCKET_KEY_RESULT_MSG));
|
|
resultMsg = util.null2string(jsonObject.get(Constants.WEBSOCKET_KEY_RESULT_MSG));
|
|
|
}
|
|
}
|
|
|
- if ( resultCode.equals("00") ) {
|
|
|
|
|
- appConfig.setSelect_Homegrp_Id(util.null2string(jsonObject.get(Constants.WEBSOCKET_KEY_HOME_GROUP_ID)));
|
|
|
|
|
- appConfig.setSelect_Homegrp_Homehub_Device_Id(util.null2string(Constants.WEBSOCKET_KEY_DEVICE_ID));
|
|
|
|
|
- appConfig.setsSelect_Homegrp_Homehub_Device_Key(util.null2string(Constants.WEBSOCKET_KEY_DEVICE_KEY));
|
|
|
|
|
- intent = new Intent();
|
|
|
|
|
- act.setResult(RESULT_OK, intent);
|
|
|
|
|
- finish();
|
|
|
|
|
|
|
+ if ( messageType.equals(Constants.WEBSOCKET_TYPE_NODE_COMMAND_RESULT) ) {
|
|
|
|
|
+ result_WS_node_command(jsonObject);
|
|
|
|
|
+ } else if ( messageType.equals(Constants.WEBSOCKET_TYPE_NODE_CONTENT) ) {
|
|
|
|
|
+ notification_WS_node_content(jsonObject);
|
|
|
} else {
|
|
} else {
|
|
|
- final String finalResultMsg = resultMsg;
|
|
|
|
|
|
|
+ /*final String finalResultMsg = resultMsg;
|
|
|
runOnUiThread(new Runnable() {
|
|
runOnUiThread(new Runnable() {
|
|
|
@Override
|
|
@Override
|
|
|
public void run() {
|
|
public void run() {
|
|
|
util.setShowToast(act, finalResultMsg, Toast.LENGTH_SHORT);
|
|
util.setShowToast(act, finalResultMsg, Toast.LENGTH_SHORT);
|
|
|
}
|
|
}
|
|
|
- });
|
|
|
|
|
|
|
+ });*/
|
|
|
}
|
|
}
|
|
|
} catch (JSONException e) {
|
|
} catch (JSONException e) {
|
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
@@ -579,7 +587,8 @@ public class Things_Detail extends CustomActionBarActivity implements View.OnCli
|
|
|
break;
|
|
break;
|
|
|
case MSG_COM_WS_NODE_COMMAND:
|
|
case MSG_COM_WS_NODE_COMMAND:
|
|
|
//dialog_show();
|
|
//dialog_show();
|
|
|
- send_P_devices_device_id_nodes_node_id_commands();
|
|
|
|
|
|
|
+// send_P_devices_device_id_nodes_node_id_commands();
|
|
|
|
|
+ send_WS_node_command();
|
|
|
break;
|
|
break;
|
|
|
default:
|
|
default:
|
|
|
break;
|
|
break;
|
|
@@ -838,14 +847,16 @@ public class Things_Detail extends CustomActionBarActivity implements View.OnCli
|
|
|
util.getTextView(act, R.id.tvThingsName).setText(sHTTP_device_name);
|
|
util.getTextView(act, R.id.tvThingsName).setText(sHTTP_device_name);
|
|
|
|
|
|
|
|
ArrayList<HashMap<String, Object>> alList = util.jsonToArrayListMap(sCmdclsList);
|
|
ArrayList<HashMap<String, Object>> alList = util.jsonToArrayListMap(sCmdclsList);
|
|
|
|
|
+ LogUtil.i(TAG, "alList : " + alList.toString());
|
|
|
if ( alList.size() > 0 ) {
|
|
if ( alList.size() > 0 ) {
|
|
|
for ( int iRow = 0; iRow < alList.size(); iRow++ ) {
|
|
for ( int iRow = 0; iRow < alList.size(); iRow++ ) {
|
|
|
HashMap<String, Object> hmTemp = new HashMap<String, Object>();
|
|
HashMap<String, Object> hmTemp = new HashMap<String, Object>();
|
|
|
hmTemp = alList.get(iRow);
|
|
hmTemp = alList.get(iRow);
|
|
|
hmTemp.put(Constants.HTTP_device_id, sHTTP_device_id);
|
|
hmTemp.put(Constants.HTTP_device_id, sHTTP_device_id);
|
|
|
|
|
+ hmTemp.put(Constants.HTTP_node_id, sHTTP_node_id);
|
|
|
hmTemp.put(Constants.HTTP_device_mf_id, sHTTP_device_mf_id);
|
|
hmTemp.put(Constants.HTTP_device_mf_id, sHTTP_device_mf_id);
|
|
|
hmTemp.put(Constants.HTTP_online_state, sHTTP_online_state);
|
|
hmTemp.put(Constants.HTTP_online_state, sHTTP_online_state);
|
|
|
- hmTemp.put(Constants.HTTP_cmdcls_id, sHTTP_cmdcls_id);
|
|
|
|
|
|
|
+ LogUtil.i(TAG, "hmTemp : " + hmTemp.toString());
|
|
|
alTotalList.add(hmTemp);
|
|
alTotalList.add(hmTemp);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -1430,6 +1441,7 @@ public class Things_Detail extends CustomActionBarActivity implements View.OnCli
|
|
|
sCall_HTTP_request_value = pageAdapter.getHTTP_Value();
|
|
sCall_HTTP_request_value = pageAdapter.getHTTP_Value();
|
|
|
sCall_HTTP_device_id = util.null2string(alTotalList_M.get(iPosition).get(Constants.HTTP_device_id));
|
|
sCall_HTTP_device_id = util.null2string(alTotalList_M.get(iPosition).get(Constants.HTTP_device_id));
|
|
|
sCall_HTTP_node_id = util.null2string(alTotalList_M.get(iPosition).get(Constants.HTTP_node_id));
|
|
sCall_HTTP_node_id = util.null2string(alTotalList_M.get(iPosition).get(Constants.HTTP_node_id));
|
|
|
|
|
+ sCall_HTTP_cmdcls_id = util.null2string(alTotalList_M.get(iPosition).get(Constants.HTTP_cmdcls_id));
|
|
|
String sHTTP_content_value = util.null2string(alTotalList_M.get(iPosition).get(Constants.HTTP_content_value));
|
|
String sHTTP_content_value = util.null2string(alTotalList_M.get(iPosition).get(Constants.HTTP_content_value));
|
|
|
String sHTTP_cmdcls_type_id = util.null2string(alTotalList_M.get(iPosition).get(Constants.HTTP_cmdcls_type_id));
|
|
String sHTTP_cmdcls_type_id = util.null2string(alTotalList_M.get(iPosition).get(Constants.HTTP_cmdcls_type_id));
|
|
|
String sHTTP_cmdcls_code = util.null2string(alTotalList_M.get(iPosition).get(Constants.HTTP_cmdcls_code));
|
|
String sHTTP_cmdcls_code = util.null2string(alTotalList_M.get(iPosition).get(Constants.HTTP_cmdcls_code));
|
|
@@ -1437,8 +1449,10 @@ public class Things_Detail extends CustomActionBarActivity implements View.OnCli
|
|
|
|
|
|
|
|
util.callBtnGoogleAnalytics(act, "Control_Things", sHTTP_cmdcls_code + "_2depth");
|
|
util.callBtnGoogleAnalytics(act, "Control_Things", sHTTP_cmdcls_code + "_2depth");
|
|
|
|
|
|
|
|
|
|
+ LogUtil.i(TAG, "Row info : " + alTotalList_M.get(iPosition).toString());
|
|
|
Dlog.v("sCall_HTTP_request_value", sCall_HTTP_request_value);
|
|
Dlog.v("sCall_HTTP_request_value", sCall_HTTP_request_value);
|
|
|
Dlog.v("sHTTP_content_value", sHTTP_content_value);
|
|
Dlog.v("sHTTP_content_value", sHTTP_content_value);
|
|
|
|
|
+ Dlog.v("sHTTP_cmdcls_id", sCall_HTTP_cmdcls_id);
|
|
|
|
|
|
|
|
String sTempValue = util.getStringValues(act, "CMDCLS_TYPE_ID_" + sHTTP_cmdcls_type_id + "_" + sCall_HTTP_request_value);
|
|
String sTempValue = util.getStringValues(act, "CMDCLS_TYPE_ID_" + sHTTP_cmdcls_type_id + "_" + sCall_HTTP_request_value);
|
|
|
|
|
|
|
@@ -1461,6 +1475,7 @@ public class Things_Detail extends CustomActionBarActivity implements View.OnCli
|
|
|
sCall_HTTP_request_value = sValue;
|
|
sCall_HTTP_request_value = sValue;
|
|
|
sCall_HTTP_device_id = util.null2string(alTotalList.get(iPosition).get(Constants.HTTP_device_id));
|
|
sCall_HTTP_device_id = util.null2string(alTotalList.get(iPosition).get(Constants.HTTP_device_id));
|
|
|
sCall_HTTP_node_id = util.null2string(alTotalList.get(iPosition).get(Constants.HTTP_node_id));
|
|
sCall_HTTP_node_id = util.null2string(alTotalList.get(iPosition).get(Constants.HTTP_node_id));
|
|
|
|
|
+ sCall_HTTP_cmdcls_id = util.null2string(alTotalList.get(iPosition).get(Constants.HTTP_cmdcls_id));
|
|
|
String sHTTP_content_value = util.null2string(alTotalList.get(iPosition).get(Constants.HTTP_content_value));
|
|
String sHTTP_content_value = util.null2string(alTotalList.get(iPosition).get(Constants.HTTP_content_value));
|
|
|
String sHTTP_cmdcls_type_id = util.null2string(alTotalList.get(iPosition).get(Constants.HTTP_cmdcls_type_id));
|
|
String sHTTP_cmdcls_type_id = util.null2string(alTotalList.get(iPosition).get(Constants.HTTP_cmdcls_type_id));
|
|
|
String sHTTP_cmdcls_code = util.null2string(alTotalList.get(iPosition).get(Constants.HTTP_cmdcls_code));
|
|
String sHTTP_cmdcls_code = util.null2string(alTotalList.get(iPosition).get(Constants.HTTP_cmdcls_code));
|
|
@@ -1470,6 +1485,7 @@ public class Things_Detail extends CustomActionBarActivity implements View.OnCli
|
|
|
|
|
|
|
|
Dlog.v("sCall_HTTP_request_value", sCall_HTTP_request_value);
|
|
Dlog.v("sCall_HTTP_request_value", sCall_HTTP_request_value);
|
|
|
Dlog.v("sHTTP_content_value", sHTTP_content_value);
|
|
Dlog.v("sHTTP_content_value", sHTTP_content_value);
|
|
|
|
|
+ Dlog.v("sHTTP_cmdcls_id", sCall_HTTP_cmdcls_id);
|
|
|
|
|
|
|
|
String sTempValue = util.getStringValues(act, "CMDCLS_TYPE_ID_" + sHTTP_cmdcls_type_id + "_" + sCall_HTTP_request_value);
|
|
String sTempValue = util.getStringValues(act, "CMDCLS_TYPE_ID_" + sHTTP_cmdcls_type_id + "_" + sCall_HTTP_request_value);
|
|
|
|
|
|
|
@@ -1499,10 +1515,97 @@ public class Things_Detail extends CustomActionBarActivity implements View.OnCli
|
|
|
sendParams.put(Constants.WEBSOCKET_KEY_DEVICE_ID, sDEVICE_ID);
|
|
sendParams.put(Constants.WEBSOCKET_KEY_DEVICE_ID, sDEVICE_ID);
|
|
|
sendParams.put(Constants.WEBSOCKET_KEY_NODE_ID, sNODE_ID);
|
|
sendParams.put(Constants.WEBSOCKET_KEY_NODE_ID, sNODE_ID);
|
|
|
sendParams.put(Constants.WEBSOCKET_KEY_COMMAND_TYPE, Constants.WEBSOCKET_COMM_TYPE_CONTROL);
|
|
sendParams.put(Constants.WEBSOCKET_KEY_COMMAND_TYPE, Constants.WEBSOCKET_COMM_TYPE_CONTROL);
|
|
|
- sendParams.put(Constants.WEBSOCKET_KEY_DEVICE_PROFILE_VERSION, sWS_device_profile_version);
|
|
|
|
|
- sendParams.put(Constants.WEBSOCKET_KEY_DEVICE_PASSWORD, sPass);
|
|
|
|
|
|
|
+ sendParams.put(Constants.WEBSOCKET_KEY_CMDCLS_ID, sCall_HTTP_cmdcls_id);
|
|
|
|
|
+ sendParams.put(Constants.WEBSOCKET_KEY_CMDCLS_VALUE, sCall_HTTP_request_value);
|
|
|
sendParams.put(Constants.WEBSOCKET_KEY_REQUEST_ID, appConfig.getiSelect_Servicehub_Request_Id());
|
|
sendParams.put(Constants.WEBSOCKET_KEY_REQUEST_ID, appConfig.getiSelect_Servicehub_Request_Id());
|
|
|
|
|
|
|
|
- webSocketService.send(Constants.WEBSOCKET_SEND_DEVICE_REGISTER, sendParams);
|
|
|
|
|
|
|
+ webSocketService.send(Constants.WEBSOCKET_SEND_NODE_COMMAND, sendParams);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * <PRE>
|
|
|
|
|
+ * 1. MethodName: result_WS_node_command
|
|
|
|
|
+ * 2. ClassName :
|
|
|
|
|
+ * 3. Comment : [Result]서비스 허브에 노드 제어를 요청한다.
|
|
|
|
|
+ * 4. Developer : 정백호
|
|
|
|
|
+ * 5. Created : 2016. 07.
|
|
|
|
|
+ * </PRE>
|
|
|
|
|
+ */
|
|
|
|
|
+ private void result_WS_node_command(JSONObject joResult) throws JSONException {
|
|
|
|
|
+ String sResultHTTP_device_id = util.null2string(joResult.get(Constants.WEBSOCKET_KEY_DEVICE_ID));
|
|
|
|
|
+ String sResultHTTP_node_id = util.null2string(joResult.get(Constants.WEBSOCKET_KEY_NODE_ID));
|
|
|
|
|
+ String sResultHTTP_request_time = util.null2string(joResult.get(Constants.WEBSOCKET_KEY_REQUEST_TIME));
|
|
|
|
|
+ for ( int iRow = 0; iRow < alTotalList.size(); iRow++ ) {
|
|
|
|
|
+
|
|
|
|
|
+ String sHTTP_device_id = util.null2string(alTotalList.get(iRow).get(Constants.HTTP_device_id));
|
|
|
|
|
+ String sHTTP_node_id = util.null2string(alTotalList.get(iRow).get(Constants.HTTP_node_id));
|
|
|
|
|
+ if ( sResultHTTP_device_id.equals(sHTTP_device_id) && sResultHTTP_node_id.equals(sHTTP_node_id) ) {
|
|
|
|
|
+ alTotalList.get(iRow).put(Constants.HTTP_request_time, sResultHTTP_request_time);
|
|
|
|
|
+
|
|
|
|
|
+ Dlog.v("Things jino0 =" + sResultHTTP_request_time);
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ setHomeHubStateList();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * <PRE>
|
|
|
|
|
+ * 1. MethodName: notification_WS_node_content
|
|
|
|
|
+ * 2. ClassName :
|
|
|
|
|
+ * 3. Comment : [notification]서비스 허브에서 노드 컨텐트 정보를 받는다.
|
|
|
|
|
+ * 4. Developer : 정백호
|
|
|
|
|
+ * 5. Created : 2016. 07.
|
|
|
|
|
+ * </PRE>
|
|
|
|
|
+ */
|
|
|
|
|
+ private void notification_WS_node_content(JSONObject joResult) throws JSONException {
|
|
|
|
|
+ LogUtil.i(TAG, "notification_WS_node_content!!");
|
|
|
|
|
+ String sTempHTTP_device_id1 = util.null2string(joResult.get(Constants.WEBSOCKET_KEY_DEVICE_ID));
|
|
|
|
|
+ String sTempHTTP_node_id1 = util.null2string(joResult.get(Constants.WEBSOCKET_KEY_NODE_ID));
|
|
|
|
|
+ String sTempHTTP_collect_time1 = util.null2string(joResult.get(Constants.WEBSOCKET_KEY_COLLECT_TIME));
|
|
|
|
|
+ HashMap<String, Object> hmContentValue = util.jsonToMap(joResult.get(Constants.WEBSOCKET_KEY_CONTENT_VALUE));
|
|
|
|
|
+ String sTempHTTP_online_state1 = util.null2string(hmContentValue.get(Constants.WEBSOCKET_KEY_ONLINE));
|
|
|
|
|
+
|
|
|
|
|
+ for ( int iRow1 = 0; iRow1 < alTotalList.size(); iRow1++ ) {
|
|
|
|
|
+ String sTempHTTP_device_id2 = util.null2string(alTotalList.get(iRow1).get(Constants.HTTP_device_id));
|
|
|
|
|
+ String sTempHTTP_node_id2 = util.null2string(alTotalList.get(iRow1).get(Constants.HTTP_node_id));
|
|
|
|
|
+ String sTempHTTP_request_time2 = util.null2string(alTotalList.get(iRow1).get(Constants.HTTP_request_time));
|
|
|
|
|
+ String sContentValue = util.null2string(hmContentValue.get(alTotalList.get(iRow1).get(Constants.HTTP_cmdcls_id)));
|
|
|
|
|
+ if ( sTempHTTP_device_id1.equals(sTempHTTP_device_id2) && sTempHTTP_node_id1.equals(sTempHTTP_node_id2) ) {
|
|
|
|
|
+ alTotalList.get(iRow1).put(Constants.HTTP_content_value, sContentValue);
|
|
|
|
|
+ alTotalList.get(iRow1).put(Constants.HTTP_collect_time, sTempHTTP_collect_time1);
|
|
|
|
|
+ alTotalList.get(iRow1).put(Constants.HTTP_online_state, sTempHTTP_online_state1);
|
|
|
|
|
+ LogUtil.i(TAG, "alTotalList : " + alTotalList.toString());
|
|
|
|
|
+ if ( !sTempHTTP_request_time2.equals("") ) {
|
|
|
|
|
+ if ( !sTempHTTP_collect_time1.equals("") ) {
|
|
|
|
|
+ if ( util.str2long(util.UTCtoLocal4(sTempHTTP_collect_time1.replaceAll("Z", ""))) > util.str2long(util.UTCtoLocal4(sTempHTTP_request_time2.replaceAll(
|
|
|
|
|
+ "Z", ""))) ) {
|
|
|
|
|
+ iThingsAction = 0;
|
|
|
|
|
+ alTotalList.get(iRow1).put(Constants.HTTP_request_time, "");
|
|
|
|
|
+ Dlog.v("Things jino1");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ for ( int iRow1 = 0; iRow1 < alTotalList.size(); iRow1++ ) {
|
|
|
|
|
+ String sHTTP_request_time = util.null2string(alTotalList.get(iRow1).get(Constants.HTTP_request_time));
|
|
|
|
|
+ if ( !sHTTP_request_time.equals("") ) {
|
|
|
|
|
+ Dlog.v("Things jino5");
|
|
|
|
|
+ Dlog.v("Things jino5 sHTTP_request_time=" + sHTTP_request_time);
|
|
|
|
|
+ Dlog.v("Things jino5 util.getRealTime1()=" + util.getRealTime1());
|
|
|
|
|
+ Dlog.v("Things jino5 10초후=" + util.stringDateAddTime(util.UTCtoLocal4(sHTTP_request_time.replaceAll("Z", "")), 10000));
|
|
|
|
|
+ if ( util.str2long(util.getRealTime1()) > util.str2long(util.stringDateAddTime(util.UTCtoLocal4(sHTTP_request_time.replaceAll("Z", "")), 10000)) ) {
|
|
|
|
|
+ iThingsAction++;
|
|
|
|
|
+ alTotalList.get(iRow1).put(Constants.HTTP_request_time, "");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if ( iThingsAction == 3 ) {
|
|
|
|
|
+ util.setShowToast(act, util.getString(act, R.string.MSG867), Toast.LENGTH_SHORT);
|
|
|
|
|
+ }
|
|
|
|
|
+ setNode_Disp();
|
|
|
|
|
+ setHomeHubStateList();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|