2020-09-24 1.修改MQTTSDK引用方式,修复闪退问题。
4个文件已添加
3个文件已删除
11个文件已修改
1 文件已重命名
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <project version="4"> |
| | | <component name="RemoteRepositoriesConfiguration"> |
| | | <remote-repository> |
| | | <option name="id" value="central" /> |
| | | <option name="name" value="Maven Central repository" /> |
| | | <option name="url" value="https://repo1.maven.org/maven2" /> |
| | | </remote-repository> |
| | | <remote-repository> |
| | | <option name="id" value="jboss.community" /> |
| | | <option name="name" value="JBoss Community repository" /> |
| | | <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" /> |
| | | </remote-repository> |
| | | <remote-repository> |
| | | <option name="id" value="MavenRepo" /> |
| | | <option name="name" value="MavenRepo" /> |
| | | <option name="url" value="https://repo.maven.apache.org/maven2/" /> |
| | | </remote-repository> |
| | | <remote-repository> |
| | | <option name="id" value="maven" /> |
| | | <option name="name" value="maven" /> |
| | | <option name="url" value="https://maven.google.com" /> |
| | | </remote-repository> |
| | | <remote-repository> |
| | | <option name="id" value="BintrayJCenter" /> |
| | | <option name="name" value="BintrayJCenter" /> |
| | | <option name="url" value="https://jcenter.bintray.com/" /> |
| | | </remote-repository> |
| | | <remote-repository> |
| | | <option name="id" value="Google" /> |
| | | <option name="name" value="Google" /> |
| | | <option name="url" value="https://dl.google.com/dl/android/maven2/" /> |
| | | </remote-repository> |
| | | <remote-repository> |
| | | <option name="id" value="$USER_HOME$/Library/Android/sdk/extras/google/m2repository" /> |
| | | <option name="name" value="$USER_HOME$/Library/Android/sdk/extras/google/m2repository" /> |
| | | <option name="url" value="file:$USER_HOME$/Library/Android/sdk/extras/google/m2repository" /> |
| | | </remote-repository> |
| | | <remote-repository> |
| | | <option name="id" value="$USER_HOME$/Library/Android/sdk/extras/android/m2repository" /> |
| | | <option name="name" value="$USER_HOME$/Library/Android/sdk/extras/android/m2repository" /> |
| | | <option name="url" value="file:$USER_HOME$/Library/Android/sdk/extras/android/m2repository/" /> |
| | | </remote-repository> |
| | | <remote-repository> |
| | | <option name="id" value="$USER_HOME$/Library/Android/sdk/extras/m2repository" /> |
| | | <option name="name" value="$USER_HOME$/Library/Android/sdk/extras/m2repository" /> |
| | | <option name="url" value="file:$USER_HOME$/Library/Android/sdk/extras/m2repository" /> |
| | | </remote-repository> |
| | | </component> |
| | | </project> |
| | |
| | | |
| | | HDL XW Android SDK Copyright (c) 2019 HDL Inc. |
| | | |
| | | SDK çæ¬ï¼hdl_lib_v1.6.9.20200316_beta |
| | | 1.å¢å å°ç±»æ¯3çé³ä¹ææ¾å¨æ¯æ; |
| | | 2.å å°ç模ååç¬æ§å¶æ¸©åº¦æ¥å£ï¼æ¥å£èªå¨æ ¹æ®å½å模å¼è®¾ç½®å½å模å¼çæ¸©åº¦åæ°ï¼ä¸éè¦ä¸å±èªå·±å¤æ;(HDLCommand.geothermalCtrlTemp()) |
| | | 3.å¢å ç®æç¼ç¨æç´¢åå¤,éè¿é
置大类å°ç±»ï¼è®©å£°å¿
å¯è®¾å¤æ¨¡ææç¬¬ä¸æ¹é³ä¹ææ¾å¨è¢«æç´¢ ; |
| | | //é
ç½®ç®æç¼ç¨æç´¢çåæ° (SDK åå§åçæ¶åé
ç½®ä¸æ¬¡) |
| | | /** |
| | | * é
ç½®ç®æç¼ç¨æç´¢è¿åçé»è®¤åæ° |
| | | * @param mSDKLocalBigClass 大类ID |
| | | * @param mSDKLocalSmallClass å°ç±»ID |
| | | * @param mSDKLocalRemark 夿³¨ |
| | | */ |
| | | public static void setEasyProgrammingSearchLocalData(int mSDKLocalBigClass, int mSDKLocalSmallClass, String mSDKLocalRemark); |
| | | 声å¿
å¯è®¾å¤setEasyProgrammingSearchLocalData(9,1,"声å¿
å¯é³ä¹"); |
| | | |
| | | åå°ç对åºå
³ç³» |
| | | HDL 声å¿
å¯ |
| | | æ®é èªå¨ |
| | | ç½å¤© æå¨ |
| | | ç¦»å¼ ä¼ç |
| | | 2020-03-15 ä¿®æ¹ä¸º |
| | | HDL 声å¿
å¯ |
| | | æ®é æå¨ |
| | | ç½å¤© èªå¨ |
| | | ç¦»å¼ ä¼ç |
| | | |
| | | SDK çæ¬ï¼hdl_lib_v1.6.9.20200118_beta |
| | | 1.ä¿®å¤RCUæ··åè°å
æ··åå¼å
³ 类模åï¼ä½¿ç¨ç©çåè·¯é®é¢; |
| | | 2.å¢å é»è®¤è·åWiFiè¿æ¥ç广æé
ç½®æ¹æ³; |
| | | |
| | | |
| | | SDK çæ¬ï¼hdl_lib_v1.6.8.20191016_beta |
| | | 1.æ§å¶é½æ¹æå¹¿æå½¢å¼äºï¼ä¸è®°å½ä¸ç«¯å£çIPã |
| | | |
| | | |
| | | SDK çæ¬ï¼hdl_lib_v1.6.4.20191015_beta |
| | | 1.å¢å æç´¢å®è®¾å¤æè
夿³¨å·æ°å®ï¼èªå¨ä¿å䏿¬¡æ°æ®å°æ¬å°ã |
| | | 2.å¢å è¯»åæ¬å°æ°æ®æ¥å£ï¼ |
| | | 3.å¢å å·æ°ææè®¾å¤ç夿³¨åç¶ææ¥å£ï¼ |
| | | |
| | | æ¥å£è¯´æï¼ |
| | | /** |
| | | * 读ååå è½½æ¬å°æ°æ® |
| | | */ |
| | | private void getLocalDevicesDataList() { |
| | | devicesDatas = HDLDeviceManager.getLocalDevicesDataList(); |
| | | if (devicesDatas.size() > 0) { |
| | | updateDeviceListView(); |
| | | HandleSearch.refreshAllDevicesStateAndRemarks();//妿æ¬å°ææ°æ®ï¼å¯ä»¥è°ç¨è¯¥æ¹æ³ï¼éååéæä»¤ï¼å·æ°ææè®¾å¤ç夿³¨åç¶æ |
| | | } else { |
| | | //showToast("æ¬å°æ°æ®ä¸ºç©º"); |
| | | } |
| | | } |
| | | |
| | | /**ä¿åæ°æ®å°æ¬å°æ¥å£ï¼é¤SDKèªå¨ä¿ååï¼ä¸å±å¯ä»¥éæ©æå¨è°ç¨ä¿å*/ |
| | | HDLDeviceManager.saveDevicesDataList(); |
| | | |
| | | |
| | | æä¾å£°å¿
å¯SDKé¡¹ç® |
| | | |
| | | ##Version 1.0.2 |
| | | 1.æ°å¢å°ç模ååæ°é£ç³»ç»æ§å¶å读åç¶ææ¥å£ï¼ |
| | | 2.æ°å¢å°ç模ååæ°é£ç³»ç»æ§å¶æ¼ç¤ºé¡µé¢ï¼ |
| | | 3.targetSdkVersion 28ï¼ |
| | | ##Version HDL_ZigBeeSDK_V1.0.1.B1.20200923.aar |
| | | 1.ä¿®æ¹org.eclipse.paho.client.mqttv3å¼ç¨æ¹å¼ï¼è§£å³ç½å®¶ä¹ä¹åï¼æå
æ¹æ³ä¼ä¸¢å¤±mqtt jarèµæºæä»¶ï¼å¯¼è´éªéé®é¢ã |
| | |
| | | } |
| | | |
| | | dependencies { |
| | | implementation fileTree(include: ['*.jar'], dir: 'libs') |
| | | implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs') |
| | | // implementation fileTree(include: ['*.jar'], dir: 'libs') |
| | | implementation 'com.android.support:appcompat-v7:28+' |
| | | implementation 'com.android.support.constraint:constraint-layout:1.1.0' |
| | | testImplementation 'junit:junit:4.12' |
| | | androidTestImplementation 'com.android.support.test:runner:1.0.2' |
| | | androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' |
| | | implementation project(':hdl_core') |
| | | // implementation project(':hdl_core') |
| | | implementation 'org.greenrobot:eventbus:3.0.0' |
| | | implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5' |
| | | } |
| | |
| | | private boolean isZigbee = false; |
| | | |
| | | |
| | | |
| | | @Override |
| | | protected void onCreate(Bundle savedInstanceState) { |
| | | super.onCreate(savedInstanceState); |
| | |
| | | |
| | | |
| | | // æ¤æ¹æ³ä¸ºä¸»å¨è·ååä¸è®¾å¤ç¶æï¼é»è¾æ¨¡åãèæ¯é³ä¹æ¨¡å没æè¿ä¸ªapiï¼ä»
æ¯æç¯å
ï¼çªå¸ï¼ç©ºè°ãä¸è¬ä¸éè¦ç¨å°ã |
| | | // HDLCommand.getDeviceState(appliancesInfo); |
| | | // HDLCommand.getDeviceState(appliancesInfo); |
| | | |
| | | |
| | | initcurState(); |
| | | initView(); |
| | | initClickOnEvent(); |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | private void initcurState() { |
| | | appliancesInfo = (AppliancesInfo) getIntent().getSerializableExtra("hdl"); |
| | | isZigbee = getIntent().getExtras().getBoolean("isZigbee2Item"); |
| | | if (isZigbee){ |
| | | HDLCommand.getDeviceState(CtrlActivity.this,appliancesInfo,isZigbee);//妿æ¯zigbeeçéè¦è°ç¨åä¸ç¶æåå¤ |
| | | }else { |
| | | if (isZigbee) { |
| | | HDLCommand.getDeviceState(CtrlActivity.this, appliancesInfo, isZigbee);//妿æ¯zigbeeçéè¦è°ç¨åä¸ç¶æåå¤ |
| | | } else { |
| | | // lightState = 100;//åå§åç¯å
亮度100 |
| | | curtainState = CurtainCtrlParser.curtainOff; |
| | | // è·åææè®¾å¤çç¶æãdeviceStateBeanList为ææè®¾å¤çç¶æå表 |
| | |
| | | lightBtn.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | HDLCommand.lightCtrl(appliancesInfo, 50,isZigbee);//stateå¼ä»£è¡¨è°å
大å°0-100 |
| | | HDLCommand.lightCtrl(appliancesInfo, 50, isZigbee);//stateå¼ä»£è¡¨è°å
大å°0-100 |
| | | // HDLCommand.lightCtrl(appliancesInfo,50,isZigbee); |
| | | } |
| | | }); |
| | |
| | | @Override |
| | | public void onClick(View view) { |
| | | //çªå¸æ¨¡å第äºä¸ªåæ° ä¸ºCurtainCtrlParser.curtainOnï¼CurtainCtrlParser.curtainOffï¼CurtainCtrlParser.curtainPauseå
¶ä¸ä¸ä¸ª |
| | | HDLCommand.curtainCtrl(appliancesInfo, curtainState,isZigbee); |
| | | HDLCommand.curtainCtrl(appliancesInfo, curtainState, isZigbee); |
| | | if (curtainState == CurtainCtrlParser.curtainOn) { |
| | | curtainState = CurtainCtrlParser.curtainOff; |
| | | } else { |
| | |
| | | curtainBtn2.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View view) { |
| | | HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainOn,isZigbee); |
| | | HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainOn, isZigbee); |
| | | } |
| | | }); |
| | | |
| | | curtainBtn3.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View view) { |
| | | HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainOff,isZigbee); |
| | | HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainOff, isZigbee); |
| | | |
| | | } |
| | | }); |
| | |
| | | curtainBtn4.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View view) { |
| | | HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainPause,isZigbee); |
| | | HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainPause, isZigbee); |
| | | } |
| | | }); |
| | | |
| | | curtainBtn5.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View view) { |
| | | HDLCommand.curtainCtrl(appliancesInfo, 20,isZigbee); |
| | | HDLCommand.curtainCtrl(appliancesInfo, 20, isZigbee); |
| | | } |
| | | }); |
| | | |
| | |
| | | @Override |
| | | public void onClick(View view) { |
| | | //æ¼ç¤ºå½åç¶æä¸ºå
³ï¼è®¾ç½®ä¸ºå¼ãå¼ï¼è®¾ç½®ä¸ºå
³ã |
| | | if (airSwitchState == 0) { |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSwich, AirCtrlParser.airOn,isZigbee);//空è°å¼ |
| | | } else { |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSwich, AirCtrlParser.airOff,isZigbee);//空è°å
³ |
| | | } |
| | | if (airSwitchState == 0) { |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSwich, AirCtrlParser.airOn, isZigbee);//空è°å¼ |
| | | } else { |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSwich, AirCtrlParser.airOff, isZigbee);//空è°å
³ |
| | | } |
| | | } |
| | | }); |
| | | |
| | |
| | | switch (airModeState) { |
| | | case 0: |
| | | //è¥å½åç©ºè°æ¨¡å¼ä¸ºå¶å·ï¼åç¹å»æé®è®¾ç½®ä¸ºå¶ç |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeHeatTem,isZigbee);//ç©ºè°æ¨¡å¼å¶ç |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeHeatTem, isZigbee);//ç©ºè°æ¨¡å¼å¶ç |
| | | break; |
| | | case 1: |
| | | //è¥å½åç©ºè°æ¨¡å¼ä¸ºå¶çï¼åç¹å»æé®è®¾ç½®ä¸ºéé£ |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeVen,isZigbee);//ç©ºè°æ¨¡å¼éé£ |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeVen, isZigbee);//ç©ºè°æ¨¡å¼éé£ |
| | | break; |
| | | case 2: |
| | | //è¥å½åç©ºè°æ¨¡å¼ä¸ºéé£ï¼åç¹å»æé®è®¾ç½®ä¸ºèªå¨ |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeAuto,isZigbee);//ç©ºè°æ¨¡å¼èªå¨ |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeAuto, isZigbee);//ç©ºè°æ¨¡å¼èªå¨ |
| | | break; |
| | | case 3: |
| | | //è¥å½åç©ºè°æ¨¡å¼ä¸ºèªå¨ï¼åç¹å»æé®è®¾ç½®ä¸ºæ½æ¹¿ |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeDehum,isZigbee);//ç©ºè°æ¨¡å¼æ½æ¹¿ |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeDehum, isZigbee);//ç©ºè°æ¨¡å¼æ½æ¹¿ |
| | | break; |
| | | case 4: |
| | | //è¥å½åç©ºè°æ¨¡å¼ä¸ºæ½æ¹¿ï¼åç¹å»æé®è®¾ç½®ä¸ºå¶å· |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeRefTem,isZigbee);//ç©ºè°æ¨¡å¼å¶å· |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeRefTem, isZigbee);//ç©ºè°æ¨¡å¼å¶å· |
| | | break; |
| | | default: |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeRefTem,isZigbee);//ç©ºè°æ¨¡å¼å¶å· |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeRefTem, isZigbee);//ç©ºè°æ¨¡å¼å¶å· |
| | | break; |
| | | |
| | | } |
| | |
| | | switch (airSpeedState) { |
| | | case 0: |
| | | //è¥å½å空è°é£é为èªå¨ï¼åç¹å»æé®è®¾ç½®ä¸ºé«é£ |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedHigh,isZigbee);//é£éé«é£ |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedHigh, isZigbee);//é£éé«é£ |
| | | break; |
| | | case 1: |
| | | //è¥å½å空è°é£é为é«é£ï¼åç¹å»æé®è®¾ç½®ä¸ºä¸é£ |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedMid,isZigbee);//é£éä¸é£ |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedMid, isZigbee);//é£éä¸é£ |
| | | break; |
| | | case 2: |
| | | //è¥å½å空è°é£é为ä¸é£ï¼åç¹å»æé®è®¾ç½®ä¸ºä½é£ |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedLow,isZigbee);//é£éä½é£ |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedLow, isZigbee);//é£éä½é£ |
| | | break; |
| | | case 3: |
| | | //è¥å½å空è°é£é为ä½é£ï¼åç¹å»æé®è®¾ç½®ä¸ºèªå¨ |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedAuto,isZigbee);//é£éèªå¨ |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedAuto, isZigbee);//é£éèªå¨ |
| | | break; |
| | | } |
| | | } |
| | |
| | | switch (airModeState) { |
| | | case 0: |
| | | //å½åç©ºè°æ¨¡å¼ä¸ºå¶å· |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.refTem, tempInt,isZigbee);//å¶å·æ¸©åº¦ |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.refTem, tempInt, isZigbee);//å¶å·æ¸©åº¦ |
| | | break; |
| | | case 1: |
| | | //å½åç©ºè°æ¨¡å¼ä¸ºå¶ç |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.heatTem, tempInt,isZigbee);//å¶ç温度 |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.heatTem, tempInt, isZigbee);//å¶ç温度 |
| | | break; |
| | | case 2: |
| | | //å½åç©ºè°æ¨¡å¼ä¸ºéé£ |
| | |
| | | break; |
| | | case 3: |
| | | //å½åç©ºè°æ¨¡å¼ä¸ºèªå¨ |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.autoTem, tempInt,isZigbee);//èªå¨æ¸©åº¦ |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.autoTem, tempInt, isZigbee);//èªå¨æ¸©åº¦ |
| | | break; |
| | | case 4: |
| | | //å½åç©ºè°æ¨¡å¼ä¸ºæ½æ¹¿ |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.dehumTem, tempInt,isZigbee);//æ½æ¹¿æ¸©åº¦ |
| | | HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.dehumTem, tempInt, isZigbee);//æ½æ¹¿æ¸©åº¦ |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | logicBtn.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View view) { |
| | | HDLCommand.logicCtrl(appliancesInfo,isZigbee); |
| | | HDLCommand.logicCtrl(appliancesInfo, isZigbee); |
| | | } |
| | | }); |
| | | |
| | | sensorBtn.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View view) { |
| | | HDLCommand.getDeviceState(CtrlActivity.this,appliancesInfo,isZigbee); |
| | | HDLCommand.getDeviceState(CtrlActivity.this, appliancesInfo, isZigbee); |
| | | } |
| | | }); |
| | | } |
| | |
| | | && event.getLightCtrlBackInfo().getChannelNum() == appliancesInfo.getChannelNum() |
| | | && event.getLightCtrlBackInfo().getPhysicsChannelNum() == appliancesInfo.getPhysicsChannelNum() |
| | | && event.getLightCtrlBackInfo().getAppliancesInfo().getDeviceType() == appliancesInfo.getDeviceType() |
| | | ) { |
| | | ) { |
| | | // å
夿æ¯å¦è¶
æ¶ |
| | | if (!event.isSuccess()) { |
| | | showToast("ç¯å
æ§å¶è¶
æ¶ï¼è¯·éæ°åè¯"); |
| | |
| | | if (event.getCurtainCtrlBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID() |
| | | && event.getCurtainCtrlBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID() |
| | | && event.getCurtainCtrlBackInfo().getNum() == appliancesInfo.getChannelNum() |
| | | ) { |
| | | ) { |
| | | |
| | | if (!event.isSuccess()) { |
| | | showToast("çªå¸æ§å¶è¶
æ¶ï¼è¯·éæ°åè¯"); |
| | |
| | | if (event.getAirCtrlBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID() |
| | | && event.getAirCtrlBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID() |
| | | && event.getAirCtrlBackInfo().getAppliancesInfo().getChannelNum() == appliancesInfo.getChannelNum() |
| | | ) { |
| | | ) { |
| | | // å
夿æ¯å¦è¶
æ¶ |
| | | if (!event.isSuccess()) { |
| | | showToast("ç©ºè°æ§å¶è¶
æ¶ï¼è¯·éæ°åè¯"); |
| | |
| | | // å
夿æ¯å¦è¶
æ¶ |
| | | if (event.getLogicCtrlBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID() |
| | | && event.getLogicCtrlBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID() |
| | | ) { |
| | | ) { |
| | | if (!event.isSuccess()) { |
| | | showToast("åºæ¯æ§å¶è¶
æ¶ï¼è¯·éæ°åè¯"); |
| | | return; |
| | |
| | | public void onDeviceStateEventMain(DeviceStateEvent event) { |
| | | if (event.getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID() |
| | | && event.getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID() |
| | | ) { |
| | | ) { |
| | | //è¿ä¸ªè¿åçä¿¡æ¯æ¯å½åç¶æç |
| | | switch (event.getAppliancesInfo().getDeviceType()) { |
| | | case HDLApConfig.TYPE_LIGHT_DIMMER: |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | public void showToast(String text) { |
| | |
| | | // Top-level build file where you can add configuration options common to all sub-projects/modules. |
| | | |
| | | buildscript { |
| | | |
| | | |
| | | repositories { |
| | | google() |
| | | mavenCentral() |
| | | maven { url 'https://maven.google.com' } |
| | | jcenter() |
| | | } |
| | | dependencies { |
| | | classpath 'com.android.tools.build:gradle:3.3.0' |
| | | classpath 'com.android.tools.build:gradle:3.4.1' |
| | | // classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0' |
| | | // classpath 'com.novoda:bintray-release:+' |
| | | |
| | | |
| | |
| | | allprojects { |
| | | repositories { |
| | | google() |
| | | mavenCentral() |
| | | maven { url 'https://maven.google.com' } |
| | | jcenter() |
| | | } |
| | | } |
| | |
| | | distributionPath=wrapper/dists |
| | | zipStoreBase=GRADLE_USER_HOME |
| | | zipStorePath=wrapper/dists |
| | | distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip |
| | | distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip |
| | |
| | | apply plugin: 'com.android.library' |
| | | //apply plugin: 'com.novoda.bintray-release' |
| | | |
| | | android { |
| | | compileSdkVersion 28 |
| | | defaultConfig { |
| | | minSdkVersion 17 |
| | | targetSdkVersion 28 |
| | | versionCode 2 |
| | | versionName "1.0.8" |
| | | versionCode 1 |
| | | versionName "1.0.1" |
| | | |
| | | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" |
| | | |
| | | } |
| | | buildTypes { |
| | |
| | | } |
| | | buildToolsVersion '28.0.3' |
| | | |
| | | /** |
| | | * æå
èªå¨å½å |
| | | */ |
| | | android.libraryVariants.all { variant -> |
| | | variant.outputs.all { |
| | | outputFileName = "HDL_ZigBeeSDK_V" + |
| | | defaultConfig.versionName + ".B" + defaultConfig.versionCode + "." + releaseTime() + ".aar" |
| | | } |
| | | } |
| | | |
| | | |
| | | // lintOptions { |
| | | // abortOnError false |
| | | // warning 'InvalidPackage' |
| | | // } |
| | | } |
| | | |
| | | dependencies { |
| | | implementation fileTree(include: ['*.jar'], dir: 'libs') |
| | | implementation 'com.android.support:appcompat-v7:28+' |
| | | api 'org.greenrobot:eventbus:3.0.0' |
| | | testImplementation 'junit:junit:4.12' |
| | | androidTestImplementation 'com.android.support.test:runner:1.0.2' |
| | | androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' |
| | | implementation files('libs/org.eclipse.paho.client.mqttv3-1.2.0.jar') |
| | | def releaseTime() { |
| | | return new Date().format("yyyyMMdd") |
| | | } |
| | | |
| | | |
| | | //task makeJar(type: Copy) { |
| | | ////å é¤åå¨ç |
| | | // delete'build/libs/test.jar' |
| | | ////设置æ·è´çæä»¶ |
| | | // from('build/intermediates/packaged-classes/release/') |
| | | ////æè¿jarå
åçæä»¶ç®å½ |
| | | // into('build/libs/') |
| | | ////å°casses.jaræ¾å
¥build/libs/ç®å½ä¸ |
| | | ////include ,excludeåæ°æ¥è®¾ç½®è¿æ»¤ |
| | | ////ï¼æä»¬åªå
³å¿classes.jarè¿ä¸ªæä»¶ï¼ |
| | | // include('classes.jar') |
| | | ////éå½å |
| | | // rename ('classes.jar','test.jar') |
| | | //} |
| | | //makeJar.dependsOn(build) |
| | | dependencies { |
| | | implementation fileTree(include: ['*.jar'], dir: 'libs') |
| | | implementation 'com.android.support:appcompat-v7:28.0.0' |
| | | api 'org.greenrobot:eventbus:3.0.0' |
| | | api 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5' |
| | | testImplementation 'junit:junit:4.12' |
| | | |
| | | |
| | | |
| | | |
| | | //publish { |
| | | // userOrg = 'tommydai' |
| | | // groupId = 'com.hdl.sdk' |
| | | // artifactId = 'hdlsdk' |
| | | // publishVersion = '1.5.8' |
| | | // desc = 'HDL core libray' |
| | | //} |
| | | } |
| | | |
| | |
| | | # If you keep the line number information, uncomment this to |
| | | # hide the original source file name. |
| | | #-renamesourcefileattribute SourceFile |
| | | |
| | | #-keep class org.eclipse.paho.client.mqttv3.logging.JSR47Logger { *; } |
| | | #-keep class org.eclipse.paho.* { *; } |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | // /** |
| | | // * è·åæ¬å°å¹¿æIP |
| | | // * @return |
| | |
| | | |
| | | /** |
| | | * è·åæ¬å°å¹¿æIP |
| | | * |
| | | * @return |
| | | */ |
| | | public static String getLocalBroadCastIp(){ |
| | | public static String getLocalBroadCastIp() { |
| | | return NetWorkUtil.getLocalBroadCast(); |
| | | } |
| | | |
| | | /** |
| | | * æ¯å¦å¼å¯SDKæ¥å¿æå° |
| | | * 2019-07-10æ°å¢ |
| | | * |
| | | * @param bOpen |
| | | */ |
| | | public static void setHDLLogOpen(boolean bOpen) { |
| | |
| | | // } |
| | | |
| | | |
| | | |
| | | /** |
| | | * è·åRCU模åçè®¾å¤ |
| | | * |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * è·åå®¶å±
è®¾å¤ |
| | | * |
| | | * @param context |
| | | */ |
| | | public static void getHomeDevices(Context context ,Boolean isZigbee) { |
| | | HandleSearch.getHomeDevices(context,isZigbee); |
| | | public static void getHomeDevices(Context context, Boolean isZigbee) { |
| | | HandleSearch.getHomeDevices(context, isZigbee); |
| | | } |
| | | |
| | | // public static void cancelSearching(){ |
| | |
| | | * @param info |
| | | * @param state |
| | | */ |
| | | public static void lightCtrl(final AppliancesInfo info, int state,boolean isZigbee) { |
| | | if (isZigbee){ |
| | | if (statusReadBackBean != null){ |
| | | if (info.getBigType() == Configuration.LIGTH_BIG_TYPE && info.getLittleType() == 1){//ç»§çµå¨ å¼å
³ |
| | | if (statusReadBackBean.getValue() == Configuration.RELAY_ON){ |
| | | HDLCommandText.sendStatus(zigbeeDeviceBean, ZigbeeDeviceID.OnOffOutput,Configuration.RELAY_OFF); |
| | | }else { |
| | | HDLCommandText.sendStatus(zigbeeDeviceBean,ZigbeeDeviceID.OnOffOutput,Configuration.RELAY_ON); |
| | | public static void lightCtrl(final AppliancesInfo info, int state, boolean isZigbee) { |
| | | if (isZigbee) { |
| | | if (statusReadBackBean != null) { |
| | | if (info.getBigType() == Configuration.LIGTH_BIG_TYPE && info.getLittleType() == 1) {//ç»§çµå¨ å¼å
³ |
| | | if (statusReadBackBean.getValue() == Configuration.RELAY_ON) { |
| | | HDLCommandText.sendStatus(zigbeeDeviceBean, ZigbeeDeviceID.OnOffOutput, Configuration.RELAY_OFF); |
| | | } else { |
| | | HDLCommandText.sendStatus(zigbeeDeviceBean, ZigbeeDeviceID.OnOffOutput, Configuration.RELAY_ON); |
| | | } |
| | | } |
| | | if (info.getBigType() == Configuration.LIGTH_BIG_TYPE && info.getLittleType() == 0){//è°å
å¨ å¼å°åºå®ç弿è
å¼å°0 |
| | | if (info.getBigType() == Configuration.LIGTH_BIG_TYPE && info.getLittleType() == 0) {//è°å
å¨ å¼å°åºå®ç弿è
å¼å°0 |
| | | int value = (int) (state * 2.55); |
| | | if (statusReadBackBean.getValue()!=0){ |
| | | if (statusReadBackBean.getValue() != 0) { |
| | | //lightStatus = 0; |
| | | HDLCommandText.sendStatus(zigbeeDeviceBean,ZigbeeDeviceID.DimmableLight,0); |
| | | }else { |
| | | HDLCommandText.sendStatus(zigbeeDeviceBean, ZigbeeDeviceID.DimmableLight, 0); |
| | | } else { |
| | | //lightStatus = value; |
| | | HDLCommandText.sendStatus(zigbeeDeviceBean,ZigbeeDeviceID.DimmableLight,value); |
| | | HDLCommandText.sendStatus(zigbeeDeviceBean, ZigbeeDeviceID.DimmableLight, value); |
| | | } |
| | | } |
| | | }else { |
| | | } else { |
| | | HDLLog.info("为è·åå°è®¾å¤ç¶æ"); |
| | | } |
| | | |
| | | }else { |
| | | } else { |
| | | // HDLDeviceManager.isLightCtrlSuccess = false; |
| | | HDLDeviceManager.setDeviceCtrlSuccessStateWithInfo(info, false); |
| | | if (lightCtrlFailTimer != null) { |
| | |
| | | * @param info |
| | | * @param state è°æ´çå¼ |
| | | */ |
| | | public static void curtainCtrl(final AppliancesInfo info, int state,boolean isZigbee) { |
| | | if (isZigbee){ |
| | | switch (state){ |
| | | case CurtainCtrlParser.curtainOn: |
| | | HDLCommandText.sendCurtainStatus(zigbeeDeviceBean,ZigbeeDeviceID.WindowCoveringDevice,0,0);//value = 0为å¼ï¼tag = 0为æ è®°æ§å¶ |
| | | public static void curtainCtrl(final AppliancesInfo info, int state, boolean isZigbee) { |
| | | if (isZigbee) { |
| | | switch (state) { |
| | | case CurtainCtrlParser.curtainOn: |
| | | HDLCommandText.sendCurtainStatus(zigbeeDeviceBean, ZigbeeDeviceID.WindowCoveringDevice, 0, 0);//value = 0为å¼ï¼tag = 0为æ è®°æ§å¶ |
| | | break; |
| | | case CurtainCtrlParser.curtainOff: |
| | | HDLCommandText.sendCurtainStatus(zigbeeDeviceBean,ZigbeeDeviceID.WindowCoveringDevice,1,0);//value = 1为å
³ï¼tag = 0为æ è®°æ§å¶ |
| | | case CurtainCtrlParser.curtainOff: |
| | | HDLCommandText.sendCurtainStatus(zigbeeDeviceBean, ZigbeeDeviceID.WindowCoveringDevice, 1, 0);//value = 1为å
³ï¼tag = 0为æ è®°æ§å¶ |
| | | break; |
| | | case CurtainCtrlParser.curtainPause: |
| | | HDLCommandText.sendCurtainStatus(zigbeeDeviceBean,ZigbeeDeviceID.WindowCoveringDevice,2,0);//value = 2为æåï¼tag = 0为æ è®°æ§å¶ |
| | | HDLCommandText.sendCurtainStatus(zigbeeDeviceBean, ZigbeeDeviceID.WindowCoveringDevice, 2, 0);//value = 2为æåï¼tag = 0为æ è®°æ§å¶ |
| | | break; |
| | | default: |
| | | HDLCommandText.sendCurtainStatus(zigbeeDeviceBean,ZigbeeDeviceID.WindowCoveringDevice,state,1);//value = stateä¸ºè°æ´æ°å¼ï¼tag = 1为æ è®°æ°å¼æ§å¶ |
| | | HDLCommandText.sendCurtainStatus(zigbeeDeviceBean, ZigbeeDeviceID.WindowCoveringDevice, state, 1);//value = stateä¸ºè°æ´æ°å¼ï¼tag = 1为æ è®°æ°å¼æ§å¶ |
| | | break; |
| | | } |
| | | }else { |
| | | } else { |
| | | HDLDeviceManager.setDeviceCtrlSuccessStateWithInfo(info, false); |
| | | if (curtainCtrlFailTimer != null) { |
| | | curtainCtrlFailTimer.cancel(); |
| | |
| | | * @param type |
| | | * @param state |
| | | */ |
| | | public static void airCtrl(final AppliancesInfo info, int type, int state , boolean isZigbee) { |
| | | if (isZigbee){ |
| | | switch (type){ |
| | | public static void airCtrl(final AppliancesInfo info, int type, int state, boolean isZigbee) { |
| | | if (isZigbee) { |
| | | switch (type) { |
| | | case AirCtrlParser.airSwich: |
| | | //å¼å
³éæ© |
| | | switch (state){ |
| | | switch (state) { |
| | | case AirCtrlParser.airOn://空è°å¼ |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,1,0,0);//value = 1为空è°å¼ tag = 0为æ å¿ä¸ºå¼å
³æ§å¶ modeå¿½ç¥ |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, 1, 0, 0);//value = 1为空è°å¼ tag = 0为æ å¿ä¸ºå¼å
³æ§å¶ modeå¿½ç¥ |
| | | break; |
| | | case AirCtrlParser.airOff://空è°å
³ |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,0,0,0);//value = 0为空è°å¼ tag = 0为æ å¿ä¸ºå¼å
³æ§å¶ modeå¿½ç¥ |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, 0, 0, 0);//value = 0为空è°å¼ tag = 0为æ å¿ä¸ºå¼å
³æ§å¶ modeå¿½ç¥ |
| | | break; |
| | | } |
| | | break; |
| | | case AirCtrlParser.airMode: |
| | | //ææ¸©å¨æ¨¡å¼éæ© |
| | | switch (state){ |
| | | switch (state) { |
| | | case AirCtrlParser.airModeHeatTem://ç©ºè°æ¨¡å¼å¶ç |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,4,1,0);//value = 4ä¸ºææ¸©å¨å¶ç tag = 1为æ å¿ä¸ºææ¸©å¨æ§å¶ modeå¿½ç¥ |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, 4, 1, 0);//value = 4ä¸ºææ¸©å¨å¶ç tag = 1为æ å¿ä¸ºææ¸©å¨æ§å¶ modeå¿½ç¥ |
| | | break; |
| | | case AirCtrlParser.airModeVen://ç©ºè°æ¨¡å¼éé£ |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,7,1,0);//value = 7ä¸ºææ¸©å¨éé£ tag = 1为æ å¿ä¸ºææ¸©å¨æ§å¶ modeå¿½ç¥ |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, 7, 1, 0);//value = 7ä¸ºææ¸©å¨éé£ tag = 1为æ å¿ä¸ºææ¸©å¨æ§å¶ modeå¿½ç¥ |
| | | break; |
| | | case AirCtrlParser.airModeAuto://ç©ºè°æ¨¡å¼èªå¨ |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,1,1,0);//value = 1ä¸ºææ¸©å¨èªå¨ tag = 1为æ å¿ä¸ºææ¸©å¨æ§å¶ modeå¿½ç¥ |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, 1, 1, 0);//value = 1ä¸ºææ¸©å¨èªå¨ tag = 1为æ å¿ä¸ºææ¸©å¨æ§å¶ modeå¿½ç¥ |
| | | break; |
| | | case AirCtrlParser.airModeDehum://ç©ºè°æ¨¡å¼æ½æ¹¿ |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,8,1,0);//value = 8ä¸ºææ¸©å¨æ½æ¹¿ tag = 1为æ å¿ä¸ºææ¸©å¨æ§å¶ modeå¿½ç¥ |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, 8, 1, 0);//value = 8ä¸ºææ¸©å¨æ½æ¹¿ tag = 1为æ å¿ä¸ºææ¸©å¨æ§å¶ modeå¿½ç¥ |
| | | break; |
| | | case AirCtrlParser.airModeRefTem://ç©ºè°æ¨¡å¼å¶å· |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,3,1,0);//value = 3ä¸ºææ¸©å¨å¶å· tag = 1为æ å¿ä¸ºææ¸©å¨æ§å¶ modeå¿½ç¥ |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, 3, 1, 0);//value = 3ä¸ºææ¸©å¨å¶å· tag = 1为æ å¿ä¸ºææ¸©å¨æ§å¶ modeå¿½ç¥ |
| | | break; |
| | | } |
| | | break; |
| | | case AirCtrlParser.airSpeed: |
| | | //é£é模å¼éæ© |
| | | switch (state){ |
| | | switch (state) { |
| | | case AirCtrlParser.airSpeedHigh://é£éé«é£ |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,3,2,0);//value = 3为é£éé«é£ tag = 2为æ å¿ä¸ºé£éæ§å¶ modeå¿½ç¥ |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, 3, 2, 0);//value = 3为é£éé«é£ tag = 2为æ å¿ä¸ºé£éæ§å¶ modeå¿½ç¥ |
| | | break; |
| | | case AirCtrlParser.airSpeedMid://é£éä¸é£ |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,2,2,0);//value = 2为é£éä¸é£ tag = 2为æ å¿ä¸ºé£éæ§å¶ modeå¿½ç¥ |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, 2, 2, 0);//value = 2为é£éä¸é£ tag = 2为æ å¿ä¸ºé£éæ§å¶ modeå¿½ç¥ |
| | | break; |
| | | case AirCtrlParser.airSpeedLow://é£éä½é£ |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,1,2,0);//value = 1为é£éä½é£ tag = 2为æ å¿ä¸ºé£éæ§å¶ modeå¿½ç¥ |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, 1, 2, 0);//value = 1为é£éä½é£ tag = 2为æ å¿ä¸ºé£éæ§å¶ modeå¿½ç¥ |
| | | break; |
| | | case AirCtrlParser.airSpeedAuto://é£éèªå¨ |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,5,2,0);//value = 5为é£éèªå¨ tag = 2为æ å¿ä¸ºé£éæ§å¶ modeå¿½ç¥ |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, 5, 2, 0);//value = 5为é£éèªå¨ tag = 2为æ å¿ä¸ºé£éæ§å¶ modeå¿½ç¥ |
| | | break; |
| | | } |
| | | break; |
| | | case AirCtrlParser.dehumTem://å½åç©ºè°æ¨¡å¼ä¸ºæ½æ¹¿ |
| | | case AirCtrlParser.refTem: //å½åç©ºè°æ¨¡å¼ä¸ºå¶å· |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,state,3,1);//value = stateä¸ºæ¸©åº¦å¼ tag = 3为æ å¿ä¸ºæ¸©åº¦æ§å¶ mode = 1为å¶å· |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, state, 3, 1);//value = stateä¸ºæ¸©åº¦å¼ tag = 3为æ å¿ä¸ºæ¸©åº¦æ§å¶ mode = 1为å¶å· |
| | | break; |
| | | case AirCtrlParser.heatTem://å½åç©ºè°æ¨¡å¼ä¸ºå¶ç |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,state,3,0);//value = stateä¸ºæ¸©åº¦å¼ tag = 3为æ å¿ä¸ºæ¸©åº¦æ§å¶ mode = 0为å¶ç |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, state, 3, 0);//value = stateä¸ºæ¸©åº¦å¼ tag = 3为æ å¿ä¸ºæ¸©åº¦æ§å¶ mode = 0为å¶ç |
| | | break; |
| | | case AirCtrlParser.autoTem://å½åç©ºè°æ¨¡å¼ä¸ºèªå¨ |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,state,3,2);//value = stateä¸ºæ¸©åº¦å¼ tag = 3为æ å¿ä¸ºæ¸©åº¦æ§å¶ mode = 2为èªå¨ |
| | | HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, state, 3, 2);//value = stateä¸ºæ¸©åº¦å¼ tag = 3为æ å¿ä¸ºæ¸©åº¦æ§å¶ mode = 2为èªå¨ |
| | | break; |
| | | } |
| | | }else { |
| | | } else { |
| | | // HDLDeviceManager.isACCtrlSuccess = false; |
| | | HDLDeviceManager.setDeviceCtrlSuccessStateWithInfo(info, false); |
| | | if (acCtrlFailTimer != null) { |
| | |
| | | * @param type |
| | | * @param state 2019-07-09 |
| | | */ |
| | | public static void freshAirCtrl(final AppliancesInfo info, int type, int state,boolean isZigbee) { |
| | | if (isZigbee){ |
| | | switch (type){ |
| | | public static void freshAirCtrl(final AppliancesInfo info, int type, int state, boolean isZigbee) { |
| | | if (isZigbee) { |
| | | switch (type) { |
| | | case FreshAirParser.freshAirSwich: |
| | | switch (state){ |
| | | case FreshAirParser.freshAirOn: |
| | | HDLCommandText.sendStatus(zigbeeDeviceBean,ZigbeeDeviceID.AirPanel,1);//value = 1为æ°é£å¼ |
| | | break; |
| | | case FreshAirParser.freshAirOff: |
| | | HDLCommandText.sendStatus(zigbeeDeviceBean,ZigbeeDeviceID.AirPanel,0);//value = 0为æ°é£å
³ |
| | | break; |
| | | } |
| | | break; |
| | | switch (state) { |
| | | case FreshAirParser.freshAirOn: |
| | | HDLCommandText.sendStatus(zigbeeDeviceBean, ZigbeeDeviceID.AirPanel, 1);//value = 1为æ°é£å¼ |
| | | break; |
| | | case FreshAirParser.freshAirOff: |
| | | HDLCommandText.sendStatus(zigbeeDeviceBean, ZigbeeDeviceID.AirPanel, 0);//value = 0为æ°é£å
³ |
| | | break; |
| | | } |
| | | break; |
| | | case FreshAirParser.freshAirSpeed://é«é£ãä½é£ |
| | | switch (state){ |
| | | switch (state) { |
| | | case FreshAirParser.freshAirSpeedMid://æ§å¶æé«é£ |
| | | HDLCommandText.sendStatus(zigbeeDeviceBean,ZigbeeDeviceID.AirPanel,3);//value = 3为æ°é£é«é£ |
| | | HDLCommandText.sendStatus(zigbeeDeviceBean, ZigbeeDeviceID.AirPanel, 3);//value = 3为æ°é£é«é£ |
| | | break; |
| | | case FreshAirParser.freshAirSpeedLow://æ§å¶æä½é |
| | | case FreshAirParser.freshAirSpeedOff: |
| | | HDLCommandText.sendStatus(zigbeeDeviceBean,ZigbeeDeviceID.AirPanel,1);//value = 1为æ°é£ä½é£ |
| | | HDLCommandText.sendStatus(zigbeeDeviceBean, ZigbeeDeviceID.AirPanel, 1);//value = 1为æ°é£ä½é£ |
| | | break; |
| | | } |
| | | break; |
| | | } |
| | | }else { |
| | | } else { |
| | | // HDLDeviceManager.isFreshAirCtrlSuccess = false; |
| | | HDLDeviceManager.setDeviceCtrlSuccessStateWithInfo(info, false); |
| | | if (freshAirCtrlFailTimer != null) { |
| | |
| | | * |
| | | * @param info |
| | | */ |
| | | public static void logicCtrl(final AppliancesInfo info,final boolean isZigbee) { |
| | | if (isZigbee){ |
| | | HDLCommandText.sendSceneStatus(zigbeeSceneBean.getScenesId(),0);//æ§å¶åºæ¯çidï¼å»¶æ¶æ¶é´ä¸º0 |
| | | }else { |
| | | public static void logicCtrl(final AppliancesInfo info, final boolean isZigbee) { |
| | | if (isZigbee) { |
| | | HDLCommandText.sendSceneStatus(zigbeeSceneBean.getScenesId(), 0);//æ§å¶åºæ¯çidï¼å»¶æ¶æ¶é´ä¸º0 |
| | | } else { |
| | | // HDLDeviceManager.isSceneCtrlSuccess = false; |
| | | HDLDeviceManager.setDeviceCtrlSuccessStateWithInfo(info, false); |
| | | |
| | |
| | | // }, 5000); |
| | | // |
| | | // } |
| | | |
| | | /** |
| | | * è·ååä¸è®¾å¤ç¶æ |
| | | */ |
| | | public static void getDeviceState(Context context,final AppliancesInfo appliancesInfo,boolean isZigbee) { |
| | | if (isZigbee){ |
| | | zigbeeDeviceDatas = SPUtils.getZigbeeDeviceSaveBean(context,SPUtils.KEY_ZIGBEE_IP); |
| | | zigbeeSceneDatas = SPUtils.getZigbeeSceneSaveBean(context,SPUtils.KEY_ZIGBEE_SCENE_IP); |
| | | public static void getDeviceState(Context context, final AppliancesInfo appliancesInfo, boolean isZigbee) { |
| | | if (isZigbee) { |
| | | zigbeeDeviceDatas = SPUtils.getZigbeeDeviceSaveBean(context, SPUtils.KEY_ZIGBEE_IP); |
| | | zigbeeSceneDatas = SPUtils.getZigbeeSceneSaveBean(context, SPUtils.KEY_ZIGBEE_SCENE_IP); |
| | | HDLCommandText hdlCommandText = new HDLCommandText(); |
| | | for (ZigbeeDeviceSaveBean zigbeeDeviceSaveBean : zigbeeDeviceDatas){ |
| | | if (appliancesInfo.getBigType() == Configuration.LIGTH_BIG_TYPE && appliancesInfo.getLittleType() == 1){ |
| | | for (ZigbeeDeviceSaveBean zigbeeDeviceSaveBean : zigbeeDeviceDatas) { |
| | | if (appliancesInfo.getBigType() == Configuration.LIGTH_BIG_TYPE && appliancesInfo.getLittleType() == 1) { |
| | | //ç»§çµå¨ |
| | | type = ZigbeeDeviceID.OnOffOutput; |
| | | if (zigbeeDeviceSaveBean.getmSubnetID() == appliancesInfo.getDeviceSubnetID() && |
| | |
| | | } |
| | | } |
| | | |
| | | if (appliancesInfo.getBigType() == Configuration.LIGTH_BIG_TYPE && appliancesInfo.getLittleType() == 0){ |
| | | if (appliancesInfo.getBigType() == Configuration.LIGTH_BIG_TYPE && appliancesInfo.getLittleType() == 0) { |
| | | //è°å
å¨ |
| | | type = ZigbeeDeviceID.DimmableLight; |
| | | if (zigbeeDeviceSaveBean.getmSubnetID() == appliancesInfo.getDeviceSubnetID() && |
| | |
| | | HDLCommandText.initStatus(zigbeeDeviceSaveBean, ZigbeeDeviceID.DimmableLight); |
| | | } |
| | | } |
| | | if (appliancesInfo.getBigType() == Configuration.CURTAIN_BIG_TYPE && appliancesInfo.getLittleType() == 0){ |
| | | if (appliancesInfo.getBigType() == Configuration.CURTAIN_BIG_TYPE && appliancesInfo.getLittleType() == 0) { |
| | | //çªå¸ |
| | | type = ZigbeeDeviceID.WindowCoveringDevice; |
| | | if (zigbeeDeviceSaveBean.getmSubnetID() == appliancesInfo.getDeviceSubnetID() && |
| | |
| | | HDLCommandText.initStatus(zigbeeDeviceSaveBean, ZigbeeDeviceID.WindowCoveringDevice); |
| | | } |
| | | } |
| | | if (appliancesInfo.getBigType() ==Configuration.AIR_BIG_TYPE && appliancesInfo.getLittleType() == 0){ |
| | | if (appliancesInfo.getBigType() == Configuration.AIR_BIG_TYPE && appliancesInfo.getLittleType() == 0) { |
| | | //ç©ºè° |
| | | type = ZigbeeDeviceID.Thermostat; |
| | | if (zigbeeDeviceSaveBean.getmSubnetID() == appliancesInfo.getDeviceSubnetID() && |
| | |
| | | HDLCommandText.initStatus(zigbeeDeviceSaveBean, ZigbeeDeviceID.Thermostat); |
| | | } |
| | | } |
| | | if (appliancesInfo.getBigType() ==Configuration.FRESH_AIR_BIG_TYPE && appliancesInfo.getLittleType() == 0){ |
| | | if (appliancesInfo.getBigType() == Configuration.FRESH_AIR_BIG_TYPE && appliancesInfo.getLittleType() == 0) { |
| | | //æ°é£ |
| | | type = ZigbeeDeviceID.AirPanel; |
| | | if (zigbeeDeviceSaveBean.getmSubnetID() == appliancesInfo.getDeviceSubnetID() && |
| | |
| | | } |
| | | } |
| | | } |
| | | for (ZigbeeSceneSaveBean zigbeeSceneSaveBean : zigbeeSceneDatas){ |
| | | if (appliancesInfo.getBigType() == Configuration.GLOBAL_LOGIC_BIG_TYPE && appliancesInfo.getLittleType() == 0){ |
| | | for (ZigbeeSceneSaveBean zigbeeSceneSaveBean : zigbeeSceneDatas) { |
| | | if (appliancesInfo.getBigType() == Configuration.GLOBAL_LOGIC_BIG_TYPE && appliancesInfo.getLittleType() == 0) { |
| | | //åºæ¯ |
| | | type = ZigbeeDeviceID.SceneMark; |
| | | if (zigbeeSceneSaveBean.getSubnetId() == appliancesInfo.getDeviceSubnetID() && |
| | |
| | | } |
| | | } |
| | | } |
| | | Log.d("11113", "type: "+type); |
| | | Log.d("11113", "type: " + type); |
| | | //读åç¶æä¿¡æ¯åè° |
| | | HDLCommandText.setStateListener(new StateListener() { |
| | | @Override |
| | | public void onData(final StateEvent event) { |
| | | //䏿¥zigbeeåé¦ä¿¡æ¯ |
| | | Log.d("11113", "zigbee åé¦json:" + event.getJson()); |
| | | switch (type){ |
| | | switch (type) { |
| | | case ZigbeeDeviceID.OnOffOutput: |
| | | //ç»§çµå¨è®¾å¤åè° |
| | | statusReadBackBean = JsonUtil.parseJsonWithGson(event.getJson(), StatusReadBackBean.class); |
| | | if (statusReadBackBean.getValue() == Configuration.RELAY_ON){ |
| | | if (statusReadBackBean.getValue() == Configuration.RELAY_ON) { |
| | | //ç»§çµå¨å
³ |
| | | appliancesInfo.setCurState(0); |
| | | EventBus.getDefault().post(new DeviceStateEvent(appliancesInfo, true)); |
| | | }else { |
| | | } else { |
| | | //ç»§çµå¨å¼ |
| | | appliancesInfo.setCurState(100); |
| | | EventBus.getDefault().post(new DeviceStateEvent(appliancesInfo, true)); |
| | | } |
| | | break; |
| | | case ZigbeeDeviceID.WindowCoveringDevice: |
| | | //çªå¸è®¾å¤åè° |
| | | statusReadBackBean = JsonUtil.parseJsonWithGson(event.getJson(), StatusReadBackBean.class); |
| | | case ZigbeeDeviceID.WindowCoveringDevice: |
| | | //çªå¸è®¾å¤åè° |
| | | statusReadBackBean = JsonUtil.parseJsonWithGson(event.getJson(), StatusReadBackBean.class); |
| | | appliancesInfo.setCurState(statusReadBackBean.getValue()); |
| | | EventBus.getDefault().post(new DeviceStateEvent(appliancesInfo,true)); |
| | | EventBus.getDefault().post(new DeviceStateEvent(appliancesInfo, true)); |
| | | break; |
| | | case ZigbeeDeviceID.DimmableLight: |
| | | //è°å
å¨è®¾å¤ |
| | | statusReadBackBean = JsonUtil.parseJsonWithGson(event.getJson(), StatusReadBackBean.class); |
| | | Log.d("2222", "åè°æ°æ®: "+statusReadBackBean.getValue()); |
| | | Log.d("2222", "åè°æ°æ®: " + statusReadBackBean.getValue()); |
| | | appliancesInfo.setCurState(statusReadBackBean.getValue()); |
| | | EventBus.getDefault().post(new DeviceStateEvent(appliancesInfo,true)); |
| | | EventBus.getDefault().post(new DeviceStateEvent(appliancesInfo, true)); |
| | | break; |
| | | case ZigbeeDeviceID.Thermostat: |
| | | //æ¸©åº¦è®¾å¤ |
| | | thermostatReadBean = JsonUtil.parseJsonWithGson(event.getJson(),StatusThermostatReadBean.class); |
| | | thermostatReadBean = JsonUtil.parseJsonWithGson(event.getJson(), StatusThermostatReadBean.class); |
| | | int fanMode = thermostatReadBean.getFanmode(); //æ°é£æ¨¡å¼ 0ï¼Offã1ï¼Lowã2ï¼Mediumã3ï¼Highã4ï¼Onã5ï¼Autoã6ï¼Smart |
| | | int thermostatMode = thermostatReadBean.getThermostatmode();//ææ¸©æ¨¡å¼ 0ï¼Offã1ï¼Autoã3ï¼Coolã4ï¼Heatã5ï¼Emergency heatingã6ï¼Precoolingã7ï¼Fan onlyã8ï¼Dryã9ï¼Sleepï¼ |
| | | int coolingSetpoint = thermostatReadBean.getCoolingSetpoint();//å¶å·æ¸©åº¦ |
| | | int heatingSetpoint = thermostatReadBean.getHeatingSetpoint();//å¶ç温度 |
| | | int tag = thermostatReadBean.getTag(); |
| | | switch (tag){ |
| | | switch (tag) { |
| | | case 0://å¼å
³æ¨¡å¼è¿å |
| | | if (fanMode == 0 && thermostatMode == 0){ |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSwich,AirCtrlParser.airOff)); //空è°å
³ |
| | | }else { |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSwich,AirCtrlParser.airOn));//空è°å¼ |
| | | if (fanMode == 0 && thermostatMode == 0) { |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSwich, AirCtrlParser.airOff)); //空è°å
³ |
| | | } else { |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSwich, AirCtrlParser.airOn));//空è°å¼ |
| | | } |
| | | break; |
| | | case 1://ææ¸©å¨æ¨¡å¼è¿å |
| | | if (fanMode ==0 && thermostatMode == 0){ |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSwich,AirCtrlParser.airOff));//空è°å
³ |
| | | }else { |
| | | switch (thermostatMode){ |
| | | case 1://èªå¨æ¨¡å¼ |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airMode,AirCtrlParser.airModeAuto)); |
| | | break; |
| | | case 3://å¶å·æ¨¡å¼ |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airMode,AirCtrlParser.airModeRefTem)); |
| | | break; |
| | | case 4://å¶çæ¨¡å¼ |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airMode,AirCtrlParser.airModeHeatTem)); |
| | | break; |
| | | case 7://é飿¨¡å¼ |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airMode,AirCtrlParser.airModeVen)); |
| | | break; |
| | | case 8://æ½æ¹¿æ¨¡å¼ |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airMode,AirCtrlParser.airModeDehum)); |
| | | break; |
| | | } |
| | | if (fanMode == 0 && thermostatMode == 0) { |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSwich, AirCtrlParser.airOff));//空è°å
³ |
| | | } else { |
| | | switch (thermostatMode) { |
| | | case 1://èªå¨æ¨¡å¼ |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airMode, AirCtrlParser.airModeAuto)); |
| | | break; |
| | | case 3://å¶å·æ¨¡å¼ |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airMode, AirCtrlParser.airModeRefTem)); |
| | | break; |
| | | case 4://å¶çæ¨¡å¼ |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airMode, AirCtrlParser.airModeHeatTem)); |
| | | break; |
| | | case 7://é飿¨¡å¼ |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airMode, AirCtrlParser.airModeVen)); |
| | | break; |
| | | case 8://æ½æ¹¿æ¨¡å¼ |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airMode, AirCtrlParser.airModeDehum)); |
| | | break; |
| | | } |
| | | } |
| | | |
| | | break; |
| | | case 2://éé£å¨æ¨¡å¼è¿å |
| | | if (fanMode == 0 && thermostatMode == 0){ |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSwich,AirCtrlParser.airOff)); //空è°å
³ |
| | | }else { |
| | | switch (fanMode){ |
| | | if (fanMode == 0 && thermostatMode == 0) { |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSwich, AirCtrlParser.airOff)); //空è°å
³ |
| | | } else { |
| | | switch (fanMode) { |
| | | case 1://ä½é£ |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSpeed,AirCtrlParser.airSpeedLow)); |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSpeed, AirCtrlParser.airSpeedLow)); |
| | | break; |
| | | case 2://ä¸é£ |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSpeed,AirCtrlParser.airSpeedMid)); |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSpeed, AirCtrlParser.airSpeedMid)); |
| | | break; |
| | | case 3://é«é£ |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSpeed,AirCtrlParser.airSpeedHigh)); |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSpeed, AirCtrlParser.airSpeedHigh)); |
| | | break; |
| | | case 5://èªå¨ |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSpeed,AirCtrlParser.airSpeedAuto)); |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSpeed, AirCtrlParser.airSpeedAuto)); |
| | | break; |
| | | } |
| | | } |
| | | break; |
| | | case 3://设置温度模å¼è¿å |
| | | if (fanMode == 0 && thermostatMode == 0){ |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSwich,AirCtrlParser.airOff)); //空è°å
³ |
| | | }else { |
| | | switch (thermostatMode){ |
| | | if (fanMode == 0 && thermostatMode == 0) { |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSwich, AirCtrlParser.airOff)); //空è°å
³ |
| | | } else { |
| | | switch (thermostatMode) { |
| | | case 1://TODO èªå¨æ¨¡å¼æ¸©åº¦è¿åéè¦åè®®ä¸ç |
| | | if (coolingSetpoint !=0 && heatingSetpoint ==0 ){ |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.autoTem,coolingSetpoint)); |
| | | }else { |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.autoTem,heatingSetpoint)); |
| | | if (coolingSetpoint != 0 && heatingSetpoint == 0) { |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.autoTem, coolingSetpoint)); |
| | | } else { |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.autoTem, heatingSetpoint)); |
| | | } |
| | | break; |
| | | case 3://å¶å·æ¨¡å¼ |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.refTem,coolingSetpoint)); |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.refTem, coolingSetpoint)); |
| | | break; |
| | | case 4://å¶çæ¨¡å¼ |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.heatTem,heatingSetpoint)); |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.heatTem, heatingSetpoint)); |
| | | break; |
| | | case 8://æ½æ¹¿æ¨¡å¼ |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.dehumTem,coolingSetpoint)); |
| | | appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.dehumTem, coolingSetpoint)); |
| | | break; |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | EventBus.getDefault().post(new DeviceStateEvent(appliancesInfo,true)); |
| | | EventBus.getDefault().post(new DeviceStateEvent(appliancesInfo, true)); |
| | | break; |
| | | case ZigbeeDeviceID.AirPanel: |
| | | //æ°é£è®¾å¤åè° |
| | | statusReadBackBean = JsonUtil.parseJsonWithGson(event.getJson(), StatusReadBackBean.class); |
| | | FreshAirBackInfo freshAirBackInfo = new FreshAirBackInfo(); |
| | | freshAirBackInfo.setAppliancesInfo(appliancesInfo); |
| | | switch (statusReadBackBean.getValue()){ |
| | | switch (statusReadBackBean.getValue()) { |
| | | case 0://飿å
³ |
| | | freshAirBackInfo.setIsOn(0); |
| | | freshAirBackInfo.setFreshAirSpeed(0); |
| | |
| | | case 255: |
| | | break; |
| | | } |
| | | EventBus.getDefault().post(new FreshAirFeedBackEvent(freshAirBackInfo,true)); |
| | | EventBus.getDefault().post(new FreshAirFeedBackEvent(freshAirBackInfo, true)); |
| | | break; |
| | | case ZigbeeDeviceID.SceneMark: |
| | | //åºæ¯åè° |
| | | statusReadBackBean = JsonUtil.parseJsonWithGson(event.getJson(),StatusReadBackBean.class); |
| | | if (statusReadBackBean.getValue() == 1){ |
| | | statusReadBackBean = JsonUtil.parseJsonWithGson(event.getJson(), StatusReadBackBean.class); |
| | | if (statusReadBackBean.getValue() == 1) { |
| | | LogicCtrlBackInfo logicCtrlBackInfo = new LogicCtrlBackInfo(); |
| | | logicCtrlBackInfo.setAppliancesInfo(appliancesInfo); |
| | | EventBus.getDefault().post(new LogicFeedBackEvent(logicCtrlBackInfo, true)); |
| | |
| | | } |
| | | } |
| | | }); |
| | | }else { |
| | | } else { |
| | | if (appliancesInfo == null) { |
| | | return; |
| | | } |
| | |
| | | && info.getChannelNum() == infos.get(j).getChannelNum() |
| | | ) { |
| | | //è¿éåºè¯¥æ¯è¦ä¿®å¤çï¼ææ¶æªæ¾å°ã |
| | | //20190712è§£å³å¼ºå¶è½¬æ¢intç±»åéªé |
| | | int state = HDLUtlis.getIntegerByObject(infos.get(j).getCurStateObject()); |
| | | //20190712è§£å³å¼ºå¶è½¬æ¢intç±»åéªé |
| | | int state = HDLUtlis.getIntegerByObject(infos.get(j).getCurStateObject()); |
| | | switch (state) { |
| | | case -1: |
| | | curState = 0; |
| | |
| | | package com.hdl.sdk.hdl_core.HDLDeviceManger.Core;
|
| | |
|
| | | import android.util.Log;
|
| | |
|
| | | import com.google.gson.Gson;
|
| | | import com.hdl.sdk.hdl_core.Config.ZigbeeDeviceID;
|
| | | import com.hdl.sdk.hdl_core.HDLDeviceManger.Bean.ZigbeeBean.CommonErrorBean;
|
| | |
| | | private static boolean isFinished = false;//æ è®°åè°ååºæ¯è®¾å¤æ°æ®
|
| | | public static Timer timer = null;//设置设å¤ååºæ¯åè°
|
| | | private static String ipAddr;//è®¾å®æ§å¶æ¶çipå°å
|
| | | private static boolean is1 = false,is2 = false;//æ è®°è·åçæ¸©åº¦åé£æå¼ºåº¦
|
| | | private static boolean is1 = false, is2 = false;//æ è®°è·åçæ¸©åº¦åé£æå¼ºåº¦
|
| | | private static int airTag = 0;//æ è®°ä¼ è¿æ¥æ§å¶ç©ºè°çæ¯ä»ä¹æ¹å¼ï¼å¼å
³ã模å¼ãé£éãè®¾å®æ¸©åº¦ï¼
|
| | | private static int airMode = 1;//æ æ³¨æ´æ¹æ¸©åº¦æ¶ï¼æ§å¶ç模å¼
|
| | | private static int scenesId = 0;//ååºæ¯æ¶ä¼ å
¥ï¼æ¹ä¾¿æ¶åºæ¯
|
| | |
| | | this.ipAddr = ipAddr;
|
| | | }
|
| | |
|
| | | public static void initData(){
|
| | | public static void initData() {
|
| | | zigbeeDeviceListBeans = new ArrayList<>();//æç´¢ææ§å¶æ¶åéåå§å
|
| | | }
|
| | |
|
| | | public interface DataCallBack{
|
| | | void onSuccess( List<ZigbeeDeviceListBean> zigbeeDeviceListBeans,ZigbeeSceneListBean zigbeeSceneListBeans);
|
| | | public interface DataCallBack {
|
| | | void onSuccess(List<ZigbeeDeviceListBean> zigbeeDeviceListBeans, ZigbeeSceneListBean zigbeeSceneListBeans);
|
| | | }
|
| | |
|
| | | //å¤çæ¥æ¶çæ°æ®
|
| | |
| | | //ææä¿¡æ¯è·åå®å¤ç
|
| | | //éæ©ç½å
³çè¯è¦å¨å¤æä¸å )
|
| | |
|
| | | if (topic.contains("Scene/GetInfo_Respon")){
|
| | | if (topic.contains("Scene/GetInfo_Respon")) {
|
| | | //å¤çæç´¢å°çåºæ¯
|
| | | handleSceneList(message);
|
| | | }
|
| | |
|
| | | if (topic.contains("DeviceInfoRespon")){
|
| | | if (topic.contains("DeviceInfoRespon")) {
|
| | | //å¤çè·åå°ç设å¤
|
| | | handleDeviceList(message);
|
| | | }
|
| | |
|
| | | if (topic.contains("Scene/Open_Respon")){
|
| | | if (topic.contains("Scene/Open_Respon")) {
|
| | | //è¿ååºæ¯è¢«æ§è¡
|
| | | reportSceneStatus(message);
|
| | | return;
|
| | | }
|
| | |
|
| | | if (topic.contains("DeviceInfoResponEnd")&&
|
| | | zigbeeDeviceListBeans.get(0).getData().getGwId().equals(gatewayId)){
|
| | | if (topic.contains("DeviceInfoResponEnd") &&
|
| | | zigbeeDeviceListBeans.get(0).getData().getGwId().equals(gatewayId)) {
|
| | | Log.d("11113", "ç¨åºæ¥åå®è¿æ¥å¤ç: ");
|
| | | isFinished = true;
|
| | | }
|
| | |
| | | return;
|
| | | }
|
| | |
|
| | | ZigbeeReportBean zigbeeReportBean =JsonUtil.parseJsonWithGson(message, ZigbeeReportBean.class);
|
| | | ZigbeeReportBean zigbeeReportBean = JsonUtil.parseJsonWithGson(message, ZigbeeReportBean.class);
|
| | | int cluterId = zigbeeReportBean.getData().getCluterID();
|
| | | if (!(cluterId == 6 || cluterId==8 || cluterId == 258 || cluterId == 513 || cluterId == 514)) {
|
| | | if (!(cluterId == 6 || cluterId == 8 || cluterId == 258 || cluterId == 513 || cluterId == 514)) {
|
| | | HDLLog.info("ä¸å¤ççcluterId:" + cluterId);
|
| | | return;
|
| | | }
|
| | | int deviceID = zigbeeReportBean.getDevice_ID();
|
| | | switch (deviceID){
|
| | | switch (deviceID) {
|
| | | case ZigbeeDeviceID.OnOffOutput:
|
| | | //ç¯å
设å¤
|
| | | StatusReadBackBean lightReadBackBean = new StatusReadBackBean();
|
| | |
| | | }
|
| | | break;
|
| | | case ZigbeeDeviceID.WindowCoveringDevice:
|
| | | //çªå¸è®¾å¤
|
| | | StatusReadBackBean curtainReadBackBean = new StatusReadBackBean();
|
| | | for (ZigbeeReportBean.DataBean.AttriButeBean attriButeBean : zigbeeReportBean.getData()
|
| | | .getAttriBute()){
|
| | | if (attriButeBean.getAttriButeId() == 8){
|
| | | curtainReadBackBean.setValue(attriButeBean.getAttriButeData());
|
| | | }
|
| | | }
|
| | | String curtainReadBackJson = JsonUtil.toJson(curtainReadBackBean);
|
| | | if (stateListener != null) {
|
| | | StateEvent event = new StateEvent(curtainReadBackJson);
|
| | | stateListener.onData(event);
|
| | | }
|
| | | //çªå¸è®¾å¤
|
| | | StatusReadBackBean curtainReadBackBean = new StatusReadBackBean();
|
| | | for (ZigbeeReportBean.DataBean.AttriButeBean attriButeBean : zigbeeReportBean.getData()
|
| | | .getAttriBute()) {
|
| | | if (attriButeBean.getAttriButeId() == 8) {
|
| | | curtainReadBackBean.setValue(attriButeBean.getAttriButeData());
|
| | | }
|
| | | }
|
| | | String curtainReadBackJson = JsonUtil.toJson(curtainReadBackBean);
|
| | | if (stateListener != null) {
|
| | | StateEvent event = new StateEvent(curtainReadBackJson);
|
| | | stateListener.onData(event);
|
| | | }
|
| | | break;
|
| | | case ZigbeeDeviceID.DimmableLight:
|
| | | //è°å
å¨è®¾å¤
|
| | | StatusReadBackBean dimmableLightReadBackBean = new StatusReadBackBean();
|
| | | for (ZigbeeReportBean.DataBean.AttriButeBean attriButeBean : zigbeeReportBean.getData()
|
| | | .getAttriBute()) {
|
| | | if (attriButeBean.getAttriButeId() == 0 && cluterId==8 ) {
|
| | | Log.d("2222", "è°å
卿°æ®: "+attriButeBean.getAttriButeData());
|
| | | dimmableLightReadBackBean.setValue((int) (attriButeBean.getAttriButeData()/2.55));
|
| | | if (attriButeBean.getAttriButeId() == 0 && cluterId == 8) {
|
| | | Log.d("2222", "è°å
卿°æ®: " + attriButeBean.getAttriButeData());
|
| | | dimmableLightReadBackBean.setValue((int) (attriButeBean.getAttriButeData() / 2.55));
|
| | | }
|
| | | }
|
| | | String dimmableLightReadBackJson = JsonUtil.toJson(dimmableLightReadBackBean);
|
| | |
| | | break;
|
| | | case ZigbeeDeviceID.Thermostat:
|
| | | //空è°è®¾å¤
|
| | | for (ZigbeeReportBean.DataBean.AttriButeBean attriButeBean:zigbeeReportBean.getData().getAttriBute()){
|
| | | for (ZigbeeReportBean.DataBean.AttriButeBean attriButeBean : zigbeeReportBean.getData().getAttriBute()) {
|
| | |
|
| | | if (attriButeBean.getAttriButeId() == 28 && attriButeBean.getAttriButeDataType() == 48){
|
| | | if (attriButeBean.getAttriButeId() == 28 && attriButeBean.getAttriButeDataType() == 48) {
|
| | | //å½åçç©ºè°æ¨¡å¼
|
| | | int thermostatmode = attriButeBean.getAttriButeData();
|
| | | thermostatReadBackBean.setThermostatmode(thermostatmode);
|
| | | is1 = true;
|
| | | }
|
| | |
|
| | | if (attriButeBean.getAttriButeId() == 0 && attriButeBean.getAttriButeDataType() == 0x30){
|
| | | if (attriButeBean.getAttriButeId() == 0 && attriButeBean.getAttriButeDataType() == 0x30) {
|
| | | //å½åçæ°é£æ¨¡å¼
|
| | | int fanmode = attriButeBean.getAttriButeData();
|
| | | thermostatReadBackBean.setFanmode(fanmode);
|
| | | is2 = true;
|
| | | }
|
| | | if (attriButeBean.getAttriButeId() == 17 && attriButeBean.getAttriButeDataType() == 41){
|
| | | if (attriButeBean.getAttriButeId() == 17 && attriButeBean.getAttriButeDataType() == 41) {
|
| | | //å¶å·æ¸©åº¦
|
| | | int coolingSetpoint = attriButeBean.getAttriButeData()/100;
|
| | | int coolingSetpoint = attriButeBean.getAttriButeData() / 100;
|
| | | thermostatReadBackBean.setCoolingSetpoint(coolingSetpoint);
|
| | | //Log.d("11113", "å¶å·æ¸©åº¦ä¸º: "+coolingSetpoint);
|
| | |
|
| | | }
|
| | | if (attriButeBean.getAttriButeId() == 18 && attriButeBean.getAttriButeDataType() == 41){
|
| | | if (attriButeBean.getAttriButeId() == 18 && attriButeBean.getAttriButeDataType() == 41) {
|
| | | //å¶ç温度
|
| | | int heatingSetpoint = attriButeBean.getAttriButeData()/100;
|
| | | int heatingSetpoint = attriButeBean.getAttriButeData() / 100;
|
| | | thermostatReadBackBean.setHeatingSetpoint(heatingSetpoint);
|
| | | //Log.d("11113", "å¶ç温度为: "+heatingSetpoint);
|
| | |
|
| | | }
|
| | | }
|
| | | if (is1 && is2 ){ //代表è·åææ¸©å¨å飿çç¶æåçåè°
|
| | | is1 = false;is2 = false;
|
| | | if (is1 && is2) { //代表è·åææ¸©å¨å飿çç¶æåçåè°
|
| | | is1 = false;
|
| | | is2 = false;
|
| | | thermostatReadBackBean.setTag(airTag);
|
| | | String thermostatReadJson = JsonUtil.toJson(thermostatReadBackBean);
|
| | | //Log.d("11113", "æ°æ®æ°æ®æ°æ®"+thermostatReadJson);
|
| | | if (stateListener != null ){
|
| | | if (stateListener != null) {
|
| | | StateEvent event = new StateEvent(thermostatReadJson);
|
| | | stateListener.onData(event);
|
| | | }
|
| | |
| | | case ZigbeeDeviceID.AirPanel:
|
| | | //æ°é£è®¾å¤
|
| | | StatusReadBackBean airPanelReadBackBean = new StatusReadBackBean();
|
| | | for (ZigbeeReportBean.DataBean.AttriButeBean attriButeBean : zigbeeReportBean.getData().getAttriBute()){
|
| | | if (attriButeBean.getAttriButeId() == 0 && attriButeBean.getAttriButeDataType() == 0x30){
|
| | | for (ZigbeeReportBean.DataBean.AttriButeBean attriButeBean : zigbeeReportBean.getData().getAttriBute()) {
|
| | | if (attriButeBean.getAttriButeId() == 0 && attriButeBean.getAttriButeDataType() == 0x30) {
|
| | | //å½åçæ°é£æ¨¡å¼
|
| | | int fanmode = attriButeBean.getAttriButeData();
|
| | | airPanelReadBackBean.setValue(fanmode);
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public static void sendThirdPartyJson(final ZigbeeDeviceSaveBean zigbeeJson, String statusJson, int type){
|
| | | public static void sendThirdPartyJson(final ZigbeeDeviceSaveBean zigbeeJson, String statusJson, int type) {
|
| | | HDLZigbeeMqtt.connect1(ipAddr);
|
| | | // 夿æ¯write è¿æ¯ readï¼æ§å¶æ¶å¤æä¼ éåæ°
|
| | | switch (type){
|
| | | switch (type) {
|
| | | case ZigbeeDeviceID.OnOffOutput:
|
| | | //ç»§çµå¨
|
| | | GatewayCommondBean gatewayCommondBean = JsonUtil.parseJsonWithGson(statusJson, GatewayCommondBean.class);
|
| | |
| | | reportError("cmd parameter error, please check it out");
|
| | | return;
|
| | | }
|
| | | switch (gatewayCommondBean.getCmd()){
|
| | | switch (gatewayCommondBean.getCmd()) {
|
| | | case "write":
|
| | | // ç¯å
æ§å¶ï¼0å
³ 1å¼
|
| | | if (!(gatewayCommondBean.getValue()==1||gatewayCommondBean.getValue()==0)){
|
| | | if (!(gatewayCommondBean.getValue() == 1 || gatewayCommondBean.getValue() == 0)) {
|
| | | reportError("Wrong lighting control parameters");
|
| | | return;
|
| | | }
|
| | |
| | | new Thread(new Runnable() {
|
| | | @Override
|
| | | public void run() {
|
| | | HDLZigbeeMqtt.sendMqttData1( "DeviceControl", ctrlLightjson);
|
| | | HDLZigbeeMqtt.sendMqttData1("DeviceControl", ctrlLightjson);
|
| | | }
|
| | | }).start();
|
| | | break;
|
| | |
| | | return;
|
| | | }
|
| | | //çªå¸æ§å¶
|
| | | switch (gatewayCurtainBean.getCmd()){
|
| | | switch (gatewayCurtainBean.getCmd()) {
|
| | | case "write":
|
| | | ZigbeeCtrlBean curtainCtrl = new ZigbeeCtrlBean();
|
| | | curtainCtrl.setCluster_ID(258);
|
| | | int curtainCmd;
|
| | | switch (gatewayCurtainBean.getTag()){
|
| | | switch (gatewayCurtainBean.getTag()) {
|
| | | case 0:
|
| | | switch (gatewayCurtainBean.getValue()){
|
| | | switch (gatewayCurtainBean.getValue()) {
|
| | | case 0:
|
| | | curtainCmd = 0;
|
| | | break;
|
| | |
| | | curtainBean.setAttriBute(curtainAttriButeBeanList);
|
| | | curtainReadBean.setData(curtainBean);
|
| | | String curtainReadJson = JsonUtil.toJson(curtainReadBean);
|
| | | HDLZigbeeMqtt.sendMqttData1("GetDeviceStatus",curtainReadJson);
|
| | | HDLZigbeeMqtt.sendMqttData1("GetDeviceStatus", curtainReadJson);
|
| | | break;
|
| | | }
|
| | | break;
|
| | | case ZigbeeDeviceID.DimmableLight:
|
| | | //è°å
ç¯
|
| | | GatewayCommondBean dimmableLightBean = JsonUtil.parseJsonWithGson(statusJson, GatewayCommondBean.class);
|
| | | if (dimmableLightBean.getCmd() == null) {
|
| | | reportError("cmd parameter error, please check it out");
|
| | | return;
|
| | | }
|
| | | switch (dimmableLightBean.getCmd()){
|
| | | case "write":
|
| | | // è°å
æ§å¶
|
| | | ZigbeeDimmableCtrlBean light = new ZigbeeDimmableCtrlBean();
|
| | | ZigbeeDimmableCtrlBean.Data data = new ZigbeeDimmableCtrlBean.Data();
|
| | | light.setCluster_ID(8);
|
| | | light.setSendMode(2);
|
| | | light.setCommand(4);
|
| | | light.setDeviceAddr(zigbeeJson.getDeviceAddr());
|
| | | light.setEpoint(zigbeeJson.getEpoint());
|
| | | data.setLevel(dimmableLightBean.getValue());
|
| | | data.setTransitionTime(2);
|
| | | light.setData(data);
|
| | | String ctrlLightjson = JsonUtil.toJson(light);
|
| | | HDLZigbeeMqtt.sendMqttData1( "DeviceControl", ctrlLightjson);
|
| | | break;
|
| | | case "read":
|
| | | ZigbeeReadBean lightReadBean = new ZigbeeReadBean();
|
| | | lightReadBean.setDeviceAddr(zigbeeJson.getDeviceAddr());
|
| | | lightReadBean.setEpoint(zigbeeJson.getEpoint());
|
| | | lightReadBean.setCluster_ID(8);
|
| | | lightReadBean.setCommand(108);
|
| | | lightReadBean.setSendMode(2);
|
| | | case ZigbeeDeviceID.DimmableLight:
|
| | | //è°å
ç¯
|
| | | GatewayCommondBean dimmableLightBean = JsonUtil.parseJsonWithGson(statusJson, GatewayCommondBean.class);
|
| | | if (dimmableLightBean.getCmd() == null) {
|
| | | reportError("cmd parameter error, please check it out");
|
| | | return;
|
| | | }
|
| | | switch (dimmableLightBean.getCmd()) {
|
| | | case "write":
|
| | | // è°å
æ§å¶
|
| | | ZigbeeDimmableCtrlBean light = new ZigbeeDimmableCtrlBean();
|
| | | ZigbeeDimmableCtrlBean.Data data = new ZigbeeDimmableCtrlBean.Data();
|
| | | light.setCluster_ID(8);
|
| | | light.setSendMode(2);
|
| | | light.setCommand(4);
|
| | | light.setDeviceAddr(zigbeeJson.getDeviceAddr());
|
| | | light.setEpoint(zigbeeJson.getEpoint());
|
| | | data.setLevel(dimmableLightBean.getValue());
|
| | | data.setTransitionTime(2);
|
| | | light.setData(data);
|
| | | String ctrlLightjson = JsonUtil.toJson(light);
|
| | | HDLZigbeeMqtt.sendMqttData1("DeviceControl", ctrlLightjson);
|
| | | break;
|
| | | case "read":
|
| | | ZigbeeReadBean lightReadBean = new ZigbeeReadBean();
|
| | | lightReadBean.setDeviceAddr(zigbeeJson.getDeviceAddr());
|
| | | lightReadBean.setEpoint(zigbeeJson.getEpoint());
|
| | | lightReadBean.setCluster_ID(8);
|
| | | lightReadBean.setCommand(108);
|
| | | lightReadBean.setSendMode(2);
|
| | |
|
| | | ZigbeeReadBean.DataBean lightBean = new ZigbeeReadBean.DataBean();
|
| | | List<ZigbeeReadBean.DataBean.AttriButeBean> lightAttriButeBeanList = new ArrayList<>();
|
| | | ZigbeeReadBean.DataBean.AttriButeBean lightAttriButeBean = new ZigbeeReadBean.DataBean.AttriButeBean();
|
| | | lightAttriButeBean.setAttriButeId(0);
|
| | | lightAttriButeBeanList.add(lightAttriButeBean);
|
| | | lightBean.setAttriBute(lightAttriButeBeanList);
|
| | | lightReadBean.setData(lightBean);
|
| | | String lightReadJson = JsonUtil.toJson(lightReadBean);
|
| | | HDLZigbeeMqtt.sendMqttData1("GetDeviceStatus", lightReadJson);
|
| | | break;
|
| | | }
|
| | | break;
|
| | | ZigbeeReadBean.DataBean lightBean = new ZigbeeReadBean.DataBean();
|
| | | List<ZigbeeReadBean.DataBean.AttriButeBean> lightAttriButeBeanList = new ArrayList<>();
|
| | | ZigbeeReadBean.DataBean.AttriButeBean lightAttriButeBean = new ZigbeeReadBean.DataBean.AttriButeBean();
|
| | | lightAttriButeBean.setAttriButeId(0);
|
| | | lightAttriButeBeanList.add(lightAttriButeBean);
|
| | | lightBean.setAttriBute(lightAttriButeBeanList);
|
| | | lightReadBean.setData(lightBean);
|
| | | String lightReadJson = JsonUtil.toJson(lightReadBean);
|
| | | HDLZigbeeMqtt.sendMqttData1("GetDeviceStatus", lightReadJson);
|
| | | break;
|
| | | }
|
| | | break;
|
| | | case ZigbeeDeviceID.Thermostat:
|
| | | //空è°
|
| | | final GatewayCommondBean thermostatBean = JsonUtil.parseJsonWithGson(statusJson, GatewayCommondBean.class);
|
| | |
| | | reportError("cmd parameter error, please check it out");
|
| | | return;
|
| | | }
|
| | | switch (thermostatBean.getCmd()){
|
| | | case "write":
|
| | | switch (airTag){
|
| | | switch (thermostatBean.getCmd()) {
|
| | | case "write":
|
| | | switch (airTag) {
|
| | | case 0://å¼å
³,å¼å
³ä¼ å
¥å¼å
³01
|
| | | switch (thermostatBean.getValue()){
|
| | | switch (thermostatBean.getValue()) {
|
| | | case 0://空è°å
³
|
| | | new Thread(new Runnable() {
|
| | | @Override
|
| | | public void run() {
|
| | | sendFan(zigbeeJson,0);//åé飿æ§å¶
|
| | | sendThermostat(zigbeeJson,0);//åéææ¸©å¨
|
| | | sendFan(zigbeeJson, 0);//åé飿æ§å¶
|
| | | sendThermostat(zigbeeJson, 0);//åéææ¸©å¨
|
| | | }
|
| | | }).start();
|
| | | break;
|
| | |
| | | new Thread(new Runnable() {
|
| | | @Override
|
| | | public void run() {
|
| | | sendThermostat(zigbeeJson,1);
|
| | | sendFan(zigbeeJson,4);
|
| | | sendThermostat(zigbeeJson, 1);
|
| | | sendFan(zigbeeJson, 4);
|
| | | }
|
| | | }).start();
|
| | |
|
| | |
| | | new Thread(new Runnable() {
|
| | | @Override
|
| | | public void run() {
|
| | | sendThermostat(zigbeeJson,thermostatBean.getValue());
|
| | | sendThermostat(zigbeeJson, thermostatBean.getValue());
|
| | | }
|
| | | }).start();
|
| | | break;
|
| | |
| | | new Thread(new Runnable() {
|
| | | @Override
|
| | | public void run() {
|
| | | sendFan(zigbeeJson,thermostatBean.getValue());
|
| | | sendFan(zigbeeJson, thermostatBean.getValue());
|
| | | }
|
| | | }).start();
|
| | | break;
|
| | | case 3://æ§å¶æ¸©åº¦
|
| | | switch (airMode){
|
| | | switch (airMode) {
|
| | | case 0://å¶ç
|
| | | new Thread(new Runnable() {
|
| | | @Override
|
| | | public void run() {
|
| | | contrlThermostat(zigbeeJson,thermostatBean.getValue(),0);
|
| | | contrlThermostat(zigbeeJson, thermostatBean.getValue(), 0);
|
| | | }
|
| | | }).start();
|
| | | break;
|
| | |
| | | new Thread(new Runnable() {
|
| | | @Override
|
| | | public void run() {
|
| | | contrlThermostat(zigbeeJson,thermostatBean.getValue(),1);
|
| | | contrlThermostat(zigbeeJson, thermostatBean.getValue(), 1);
|
| | | }
|
| | | }).start();
|
| | | break;
|
| | |
| | | new Thread(new Runnable() {
|
| | | @Override
|
| | | public void run() {
|
| | | contrlThermostat(zigbeeJson,thermostatBean.getValue(),2);
|
| | | contrlThermostat(zigbeeJson, thermostatBean.getValue(), 2);
|
| | | }
|
| | | }).start();
|
| | | break;
|
| | |
| | | reportError("cmd parameter error, please check it out");
|
| | | return;
|
| | | }
|
| | | switch (airpanelBean.getCmd()){
|
| | | case "write":
|
| | | sendNewFan(zigbeeJson,airpanelBean.getValue());
|
| | | switch (airpanelBean.getCmd()) {
|
| | | case "write":
|
| | | sendNewFan(zigbeeJson, airpanelBean.getValue());
|
| | | break;
|
| | | case "read":
|
| | | readFan(zigbeeJson);
|
| | |
| | | }
|
| | |
|
| | | //åå§åç¶æä¿¡æ¯
|
| | | public static void initStatus(final ZigbeeDeviceSaveBean zigbeeDevice, final int type){
|
| | | public static void initStatus(final ZigbeeDeviceSaveBean zigbeeDevice, final int type) {
|
| | | initData();
|
| | | airTag = 0;
|
| | | new Thread(new Runnable() {
|
| | | @Override
|
| | | public void run() {
|
| | | String sendStatus = HDLCommandText.setSendStatus("read",0);//读ä¸éè¦ç¥éç¶æï¼é便填ä¸ä¸ª
|
| | | HDLCommandText.sendThirdPartyJson(zigbeeDevice,sendStatus, type);
|
| | | String sendStatus = HDLCommandText.setSendStatus("read", 0);//读ä¸éè¦ç¥éç¶æï¼é便填ä¸ä¸ª
|
| | | HDLCommandText.sendThirdPartyJson(zigbeeDevice, sendStatus, type);
|
| | | }
|
| | | }).start();
|
| | | }
|
| | |
|
| | | //æ´æ°ç©ºè°ç¶æ
|
| | | public static void initAirStatus(final ZigbeeDeviceSaveBean zigbeeDevice,final int type ,int tag){
|
| | | public static void initAirStatus(final ZigbeeDeviceSaveBean zigbeeDevice, final int type, int tag) {
|
| | | airTag = tag;
|
| | | String sendStatus = HDLCommandText.setSendStatus("read",0);//读ä¸éè¦ç¥éç¶æï¼é便填ä¸ä¸ª
|
| | | HDLCommandText.sendThirdPartyJson(zigbeeDevice,sendStatus, type);
|
| | | String sendStatus = HDLCommandText.setSendStatus("read", 0);//读ä¸éè¦ç¥éç¶æï¼é便填ä¸ä¸ª
|
| | | HDLCommandText.sendThirdPartyJson(zigbeeDevice, sendStatus, type);
|
| | | }
|
| | |
|
| | |
|
| | | //åéç©ºè°æ§å¶
|
| | | public static void sendAirStatus(final ZigbeeDeviceSaveBean zigbeeDevice,final int type ,final int value,
|
| | | int tag,int mode){
|
| | | airTag = tag; airMode = mode;
|
| | | String sendStatus = HDLCommandText.setSendStatus("write",value);
|
| | | HDLCommandText.sendThirdPartyJson(zigbeeDevice,sendStatus,type);
|
| | | public static void sendAirStatus(final ZigbeeDeviceSaveBean zigbeeDevice, final int type, final int value,
|
| | | int tag, int mode) {
|
| | | airTag = tag;
|
| | | airMode = mode;
|
| | | String sendStatus = HDLCommandText.setSendStatus("write", value);
|
| | | HDLCommandText.sendThirdPartyJson(zigbeeDevice, sendStatus, type);
|
| | | }
|
| | |
|
| | | //åéå¼å
³æ§å¶æ§å¶
|
| | | public static void sendStatus(final ZigbeeDeviceSaveBean zigbeeDevice,final int type,final int value){
|
| | | String sendStatus = HDLCommandText.setSendStatus("write",value);
|
| | | HDLCommandText.sendThirdPartyJson(zigbeeDevice,sendStatus,type);
|
| | | public static void sendStatus(final ZigbeeDeviceSaveBean zigbeeDevice, final int type, final int value) {
|
| | | String sendStatus = HDLCommandText.setSendStatus("write", value);
|
| | | HDLCommandText.sendThirdPartyJson(zigbeeDevice, sendStatus, type);
|
| | | }
|
| | |
|
| | | //åå§åçªå¸æ§å¶
|
| | | public static void sendCurtainStatus(final ZigbeeDeviceSaveBean zigbeeDevice,final int type,
|
| | | final int value,final int tag){
|
| | | String sendStatus = HDLCommandText.setSendCurtainStatus("write",value,tag);
|
| | | HDLCommandText.sendThirdPartyJson(zigbeeDevice,sendStatus,type);
|
| | | public static void sendCurtainStatus(final ZigbeeDeviceSaveBean zigbeeDevice, final int type,
|
| | | final int value, final int tag) {
|
| | | String sendStatus = HDLCommandText.setSendCurtainStatus("write", value, tag);
|
| | | HDLCommandText.sendThirdPartyJson(zigbeeDevice, sendStatus, type);
|
| | | }
|
| | |
|
| | | //设置继çµå¨çç¶æ
|
| | | private static String setSendStatus(String status,int value){
|
| | | private static String setSendStatus(String status, int value) {
|
| | | GatewayCommondBean gatewayCommondBean = new GatewayCommondBean();
|
| | | gatewayCommondBean.setCmd(status);
|
| | | gatewayCommondBean.setValue(value);
|
| | |
| | | }
|
| | |
|
| | | //设置çªå¸çç¶æ
|
| | | private static String setSendCurtainStatus(String status,int value,int tag){
|
| | | private static String setSendCurtainStatus(String status, int value, int tag) {
|
| | | GatewayCurtainBean gatewayCurtainBean = new GatewayCurtainBean();
|
| | | gatewayCurtainBean.setCmd(status);
|
| | | gatewayCurtainBean.setValue(value);
|
| | |
| | | }
|
| | |
|
| | | //åéææ¸©å¨æ¨¡å¼
|
| | | private static void sendThermostat(ZigbeeDeviceSaveBean zigbeeJson,int value){
|
| | | private static void sendThermostat(ZigbeeDeviceSaveBean zigbeeJson, int value) {
|
| | | ZigbeeWriteCtrlBean zigbeeOffBean = new ZigbeeWriteCtrlBean();
|
| | | zigbeeOffBean.setDeviceAddr(zigbeeJson.getDeviceAddr());
|
| | | zigbeeOffBean.setEpoint(zigbeeJson.getEpoint());
|
| | |
| | | zigbeeOffDataBean.setAttributeData(value);
|
| | | zigbeeOffBean.setData(zigbeeOffDataBean);
|
| | | String zigbeeoffJson = JsonUtil.toJson(zigbeeOffBean);
|
| | | HDLZigbeeMqtt.sendMqttData1("SetWritableValue",zigbeeoffJson);
|
| | | initAirStatus(zigbeeJson,ZigbeeDeviceID.Thermostat,airTag);
|
| | | HDLZigbeeMqtt.sendMqttData1("SetWritableValue", zigbeeoffJson);
|
| | | initAirStatus(zigbeeJson, ZigbeeDeviceID.Thermostat, airTag);
|
| | | }
|
| | |
|
| | | //åé飿¨¡å¼
|
| | | private static void sendFan(final ZigbeeDeviceSaveBean zigbeeJson, int value){
|
| | | private static void sendFan(final ZigbeeDeviceSaveBean zigbeeJson, int value) {
|
| | | ZigbeeWriteCtrlBean zigbeeOffBean = new ZigbeeWriteCtrlBean();
|
| | | zigbeeOffBean.setDeviceAddr(zigbeeJson.getDeviceAddr());
|
| | | zigbeeOffBean.setEpoint(zigbeeJson.getEpoint());
|
| | |
| | | zigbeeOffDataBean.setAttributeData(value);
|
| | | zigbeeOffBean.setData(zigbeeOffDataBean);
|
| | | String zigbeeoffJson = JsonUtil.toJson(zigbeeOffBean);
|
| | | HDLZigbeeMqtt.sendMqttData1("SetWritableValue",zigbeeoffJson);
|
| | | initAirStatus(zigbeeJson,ZigbeeDeviceID.Thermostat,airTag);
|
| | | HDLZigbeeMqtt.sendMqttData1("SetWritableValue", zigbeeoffJson);
|
| | | initAirStatus(zigbeeJson, ZigbeeDeviceID.Thermostat, airTag);
|
| | | }
|
| | |
|
| | | //æ°é£ç¶æä¸å鿰飿¨¡å¼
|
| | | private static void sendNewFan(final ZigbeeDeviceSaveBean zigbeeJson, int value){
|
| | | private static void sendNewFan(final ZigbeeDeviceSaveBean zigbeeJson, int value) {
|
| | | ZigbeeWriteCtrlBean zigbeeOffBean = new ZigbeeWriteCtrlBean();
|
| | | zigbeeOffBean.setDeviceAddr(zigbeeJson.getDeviceAddr());
|
| | | zigbeeOffBean.setEpoint(zigbeeJson.getEpoint());
|
| | |
| | | zigbeeOffDataBean.setAttributeData(value);
|
| | | zigbeeOffBean.setData(zigbeeOffDataBean);
|
| | | String zigbeeoffJson = JsonUtil.toJson(zigbeeOffBean);
|
| | | HDLZigbeeMqtt.sendMqttData1("SetWritableValue",zigbeeoffJson);
|
| | | initStatus(zigbeeJson,ZigbeeDeviceID.AirPanel);
|
| | | HDLZigbeeMqtt.sendMqttData1("SetWritableValue", zigbeeoffJson);
|
| | | initStatus(zigbeeJson, ZigbeeDeviceID.AirPanel);
|
| | | }
|
| | |
|
| | | //温度æ§å¶
|
| | | private static void contrlThermostat(ZigbeeDeviceSaveBean zigbeeJson,int value, int mode){
|
| | | private static void contrlThermostat(ZigbeeDeviceSaveBean zigbeeJson, int value, int mode) {
|
| | | ZigbeeThermostatCtrlBean zigbeeThermostatCtrlBean = new ZigbeeThermostatCtrlBean();
|
| | | zigbeeThermostatCtrlBean.setDeviceAddr(zigbeeJson.getDeviceAddr());
|
| | | zigbeeThermostatCtrlBean.setEpoint(zigbeeJson.getEpoint());
|
| | |
| | | zigbeeData.setAmount(value);
|
| | | zigbeeThermostatCtrlBean.setData(zigbeeData);
|
| | | String zigbeeCtrlJson = JsonUtil.toJson(zigbeeThermostatCtrlBean);
|
| | | HDLZigbeeMqtt.sendMqttData1("DeviceControl",zigbeeCtrlJson);
|
| | | initAirStatus(zigbeeJson,ZigbeeDeviceID.Thermostat,airTag);
|
| | | HDLZigbeeMqtt.sendMqttData1("DeviceControl", zigbeeCtrlJson);
|
| | | initAirStatus(zigbeeJson, ZigbeeDeviceID.Thermostat, airTag);
|
| | | }
|
| | |
|
| | | //æ¥çé£é
|
| | | private static void readFan(ZigbeeDeviceSaveBean zigbeeJson){
|
| | | private static void readFan(ZigbeeDeviceSaveBean zigbeeJson) {
|
| | |
|
| | | //è·åå½åéé£ä¿¡æ¯
|
| | | ZigbeeReadBean fanBean = new ZigbeeReadBean();
|
| | |
| | | }
|
| | |
|
| | | //åéåºæ¯æ°æ®
|
| | | public static void sendSceneStatus(int ScenesId,int DelayTime){
|
| | | public static void sendSceneStatus(int ScenesId, int DelayTime) {
|
| | | scenesId = ScenesId;
|
| | | ZigbeeSceneCtrlBean zigbeeSceneCtrlBean = new ZigbeeSceneCtrlBean();
|
| | | zigbeeSceneCtrlBean.setCluster_ID(0);
|
| | |
| | | dataBean.setDelayTime(DelayTime);
|
| | | zigbeeSceneCtrlBean.setData(dataBean);
|
| | | String json = JsonUtil.toJson(zigbeeSceneCtrlBean);
|
| | | HDLZigbeeMqtt.sendMqttData1("Scene/Open",json);
|
| | | HDLZigbeeMqtt.sendMqttData1("Scene/Open", json);
|
| | | }
|
| | |
|
| | | //å¤ç设å¤ä¿¡æ¯
|
| | | private static void handleDeviceList(String message) {
|
| | | ZigbeeDeviceListBean zigbeeDeviceListBean = JsonUtil.parseJsonWithGson(message,ZigbeeDeviceListBean.class);
|
| | | ZigbeeDeviceListBean zigbeeDeviceListBean = JsonUtil.parseJsonWithGson(message, ZigbeeDeviceListBean.class);
|
| | | zigbeeDeviceListBeans.add(zigbeeDeviceListBean);
|
| | | }
|
| | |
|
| | | //å¤çåºæ¯ä¿¡æ¯
|
| | | private static void handleSceneList(String message) {
|
| | | Gson gson = new Gson();
|
| | | zigbeeSceneListBean = gson.fromJson(message,ZigbeeSceneListBean.class);
|
| | | zigbeeSceneListBean = gson.fromJson(message, ZigbeeSceneListBean.class);
|
| | | }
|
| | |
|
| | | //å¤çåºæ¯çæ°æ®
|
| | |
| | | return;
|
| | | }
|
| | | StatusReadBackBean statusReadBackBean = new StatusReadBackBean();
|
| | | if (sceneCtrlBackBean.getData().getScenesId() == scenesId){
|
| | | if (sceneCtrlBackBean.getData().getScenesId() == scenesId) {
|
| | | statusReadBackBean.setValue(sceneCtrlBackBean.getData().getResult());
|
| | | }
|
| | | String Json = JsonUtil.toJson(statusReadBackBean);
|
| | | Log.d("11114", "å¤çæ°æ®åè°: "+Json);
|
| | | Log.d("11114", "å¤çæ°æ®åè°: " + Json);
|
| | | if (stateListener != null) {
|
| | | StateEvent event = new StateEvent(Json);
|
| | | stateListener.onData(event);
|
| | |
| | | }
|
| | |
|
| | | //åè°è·åå°ç设å¤ä¿¡æ¯
|
| | | public static void handleDeviceData(final DataCallBack dataCallBack){
|
| | | public static void handleDeviceData(final DataCallBack dataCallBack) {
|
| | | timer = new Timer();
|
| | | timer.schedule(new TimerTask() {
|
| | | @Override
|
| | | public void run() {
|
| | | if (!isFinished){
|
| | | if (!isFinished) {
|
| | | Log.d("11112", "run: ç¨åºæ§è¡ä¸");
|
| | | }else {
|
| | | } else {
|
| | | timer.cancel();
|
| | | timer.purge();
|
| | | timer = null;
|
| | | isFinished = false;
|
| | | dataCallBack.onSuccess(zigbeeDeviceListBeans,zigbeeSceneListBean);
|
| | | dataCallBack.onSuccess(zigbeeDeviceListBeans, zigbeeSceneListBean);
|
| | | }
|
| | | }
|
| | | },1,500);
|
| | | }, 1, 500);
|
| | | }
|
| | | public static void reSearch(){
|
| | | if (timer != null){
|
| | |
|
| | | public static void reSearch() {
|
| | | if (timer != null) {
|
| | | timer.cancel();
|
| | | timer.purge();
|
| | | timer = null;
|
| | |
| | | CommonErrorBean errorBean = new CommonErrorBean();
|
| | | errorBean.setCmd("error");
|
| | | errorBean.setReason(reason);
|
| | | String errorJson =JsonUtil.toJson(errorBean);
|
| | | String errorJson = JsonUtil.toJson(errorBean);
|
| | | StateEvent event = new StateEvent(errorJson);
|
| | | stateListener.onData(event);
|
| | | }
|
| | |
| | | import org.eclipse.paho.client.mqttv3.MqttException; |
| | | import org.eclipse.paho.client.mqttv3.MqttMessage; |
| | | import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; |
| | | |
| | | import com.hdl.sdk.hdl_core.HDLDeviceManger.Callback.PushCallback; |
| | | import com.hdl.sdk.hdl_core.Util.LogUtil.HDLLog; |
| | | |
| | |
| | | |
| | | private static final String clientid = "HDLZigbeeDriver"; |
| | | private static MqttClient client; |
| | | private static boolean isCancel = false; |
| | | private static boolean isCancel = false; |
| | | |
| | | public static void setIsCancel(boolean isCancel) { |
| | | HDLZigbeeMqtt.isCancel = isCancel; |
| | | } |
| | |
| | | */ |
| | | public static void connect1(String host) { |
| | | try { |
| | | client = new MqttClient("tcp://"+host+":1883", clientid, new MemoryPersistence()); |
| | | MqttConnectOptions options = new MqttConnectOptions(); |
| | | options.setCleanSession(false); |
| | | options.setUserName("admin"); |
| | | options.setPassword("password".toCharArray()); |
| | | //设置èªå¨éè¿ |
| | | options.setAutomaticReconnect(true); |
| | | // 设置è¶
æ¶æ¶é´ |
| | | options.setConnectionTimeout(10); |
| | | // 设置ä¼è¯å¿è·³æ¶é´ |
| | | options.setKeepAliveInterval(20); |
| | | PushCallback pushCallback = new PushCallback(); |
| | | pushCallback.setHost(host); |
| | | client.setCallback(pushCallback); |
| | | client.connect(options); |
| | | if (isCancel){ |
| | | client.close(); |
| | | isCancel = false; |
| | | } |
| | | client = new MqttClient("tcp://" + host + ":1883", clientid, new MemoryPersistence()); |
| | | MqttConnectOptions options = new MqttConnectOptions(); |
| | | options.setCleanSession(false); |
| | | options.setUserName("admin"); |
| | | options.setPassword("password".toCharArray()); |
| | | //设置èªå¨éè¿ |
| | | options.setAutomaticReconnect(true); |
| | | // 设置è¶
æ¶æ¶é´ |
| | | options.setConnectionTimeout(10); |
| | | // 设置ä¼è¯å¿è·³æ¶é´ |
| | | options.setKeepAliveInterval(20); |
| | | PushCallback pushCallback = new PushCallback(); |
| | | pushCallback.setHost(host); |
| | | client.setCallback(pushCallback); |
| | | client.connect(options); |
| | | if (isCancel) { |
| | | client.close(); |
| | | isCancel = false; |
| | | } |
| | | } catch (MqttException e) { |
| | | e.printStackTrace(); |
| | | } |
| | |
| | | /** |
| | | * åémqttä¿¡æ¯ |
| | | */ |
| | | public static void sendMqttData1(String topic, String json) { |
| | | HDLLog.info("send Mqtt to gateway:"+json); |
| | | Log.d("111133", "sendMqttData1: "+json); |
| | | public static void sendMqttData1(String topic, String json) { |
| | | HDLLog.info("send Mqtt to gateway:" + json); |
| | | Log.d("111133", "sendMqttData1: " + json); |
| | | try { |
| | | MqttMessage message = new MqttMessage(); |
| | | message.setQos(2); |
| | |
| | | Log.d("111133", "å·²ç»åé"); |
| | | HDLLog.info("message is published completely!"); |
| | | } catch (MqttException e) { |
| | | Log.d("111133", "sendMqttData1: "+e.getMessage()); |
| | | Log.d("111133", "sendMqttData1: " + e.getMessage()); |
| | | HDLLog.info("åémqttä¿¡æ¯åºé"); |
| | | e.printStackTrace(); |
| | | } |
| | |
| | | import java.util.TimerTask; |
| | | |
| | | |
| | | |
| | | import com.hdl.sdk.hdl_core.HDLDeviceManger.Bean.ZigbeeBean.ZigbeeGatewayInfoBean; |
| | | import com.hdl.sdk.hdl_core.HDLDeviceManger.Callback.PushCallback; |
| | | import com.hdl.sdk.hdl_core.Util.LogUtil.HDLLog; |
| | |
| | | public static Timer searchTimer = null; |
| | | private static DatagramSocket datagramSocket; // æ°æ®æ¥å¥æ¥å |
| | | private static boolean isStop = false; |
| | | public interface OnSearchListener{ |
| | | void onSuccess( List<ZigbeeGatewayInfoBean> zigbeeGatewayInfoBeanList); |
| | | void onEorror(Exception e); |
| | | |
| | | public interface OnSearchListener { |
| | | void onSuccess(List<ZigbeeGatewayInfoBean> zigbeeGatewayInfoBeanList); |
| | | |
| | | void onEorror(Exception e); |
| | | } |
| | | |
| | | public static void release() { |
| | | if (datagramSocket != null){ |
| | | if (datagramSocket != null) { |
| | | isStop = true; |
| | | datagramSocket.disconnect(); |
| | | datagramSocket = null; |
| | |
| | | public void run() { |
| | | if (zigbeeGatewayInfoBean.getCount() < 20) { |
| | | zigbeeGatewayInfoBean.setCount(zigbeeGatewayInfoBean.getCount() + 1); |
| | | try { |
| | | byte[] sendBytes = new byte[44]; |
| | | sendBytes[0] = (byte) 0xFE; |
| | | sendBytes[1] = 0x29; |
| | | sendBytes[2] = 0; |
| | | sendBytes[3] = 0; |
| | | sendBytes[4] = 0; |
| | | sendBytes[5] = 0; |
| | | sendBytes[6] = 0; |
| | | //è·åææç½å
³ï¼æ éhouseID模å¼ï¼ï¼åé¢è¦æ¹ |
| | | sendBytes[7] = 0x67; |
| | | sendBytes[8] = 0x65; |
| | | sendBytes[9] = 0x74; |
| | | sendBytes[10] = 0x61; |
| | | sendBytes[11] = 0x6c; |
| | | sendBytes[12] = 0x6c; |
| | | sendBytes[13] = 0x67; |
| | | sendBytes[14] = 0x77; |
| | | for (int i = 15; i<sendBytes.length-1;i++){ |
| | | sendBytes[i] = 0; |
| | | } |
| | | sendBytes[sendBytes.length - 1] = 0x02; |
| | | //Log.d(TAG, "sendBytes: "+StringUtil.ByteArrToHex(sendBytes,0,sendBytes.length)); |
| | | InetAddress address = InetAddress.getByName(NetWorkUtil.getLocalBroadCast()); |
| | | DatagramPacket packet = new DatagramPacket( |
| | | sendBytes, |
| | | sendBytes.length, |
| | | address, 7624); |
| | | datagramSocket= new DatagramSocket(); |
| | | datagramSocket.send(packet); |
| | | try { |
| | | byte[] sendBytes = new byte[44]; |
| | | sendBytes[0] = (byte) 0xFE; |
| | | sendBytes[1] = 0x29; |
| | | sendBytes[2] = 0; |
| | | sendBytes[3] = 0; |
| | | sendBytes[4] = 0; |
| | | sendBytes[5] = 0; |
| | | sendBytes[6] = 0; |
| | | //è·åææç½å
³ï¼æ éhouseID模å¼ï¼ï¼åé¢è¦æ¹ |
| | | sendBytes[7] = 0x67; |
| | | sendBytes[8] = 0x65; |
| | | sendBytes[9] = 0x74; |
| | | sendBytes[10] = 0x61; |
| | | sendBytes[11] = 0x6c; |
| | | sendBytes[12] = 0x6c; |
| | | sendBytes[13] = 0x67; |
| | | sendBytes[14] = 0x77; |
| | | for (int i = 15; i < sendBytes.length - 1; i++) { |
| | | sendBytes[i] = 0; |
| | | } |
| | | sendBytes[sendBytes.length - 1] = 0x02; |
| | | //Log.d(TAG, "sendBytes: "+StringUtil.ByteArrToHex(sendBytes,0,sendBytes.length)); |
| | | InetAddress address = InetAddress.getByName(NetWorkUtil.getLocalBroadCast()); |
| | | DatagramPacket packet = new DatagramPacket( |
| | | sendBytes, |
| | | sendBytes.length, |
| | | address, 7624); |
| | | datagramSocket = new DatagramSocket(); |
| | | datagramSocket.send(packet); |
| | | |
| | | byte[] receiveBytes = new byte[1024]; |
| | | DatagramPacket dataPacket = new DatagramPacket(receiveBytes, receiveBytes.length); |
| | | datagramSocket.receive(dataPacket); |
| | | //æ¯å¦ä¸»ç½å
³-01为主ç½å
³-00为ä»ç½å
³ |
| | | String IsDomain = StringUtil.Byte2Hex(dataPacket.getData()[44]); |
| | | int headLength = 1 + 2 + 4 + 36 + 1 + 1 + 4 ; |
| | | if (receiveBytes.length > headLength) { |
| | | //ç½å
³åç§°é¿åº¦ |
| | | String str = StringUtil.Byte2Hex(dataPacket.getData()[49]); |
| | | int GwNameLength = Integer.parseInt(str,16); |
| | | byte[] receiveBytes = new byte[1024]; |
| | | DatagramPacket dataPacket = new DatagramPacket(receiveBytes, receiveBytes.length); |
| | | datagramSocket.receive(dataPacket); |
| | | //æ¯å¦ä¸»ç½å
³-01为主ç½å
³-00为ä»ç½å
³ |
| | | String IsDomain = StringUtil.Byte2Hex(dataPacket.getData()[44]); |
| | | int headLength = 1 + 2 + 4 + 36 + 1 + 1 + 4; |
| | | if (receiveBytes.length > headLength) { |
| | | //ç½å
³åç§°é¿åº¦ |
| | | String str = StringUtil.Byte2Hex(dataPacket.getData()[49]); |
| | | int GwNameLength = Integer.parseInt(str, 16); |
| | | |
| | | //ç½å
³åç§° |
| | | byte[] gwnamebyte = new byte[GwNameLength]; |
| | | for (int i = 0 ;i< GwNameLength ; i++){ |
| | | gwnamebyte[i] = dataPacket.getData()[i+50]; |
| | | } |
| | | String GwName =new String(gwnamebyte,0,gwnamebyte.length); |
| | | |
| | | //ç½å
³idé¿åº¦ |
| | | String str1 = StringUtil.Byte2Hex(dataPacket.getData()[50+GwNameLength]); |
| | | int GwIdLength = Integer.parseInt(str1,16); |
| | | |
| | | //è·åç½å
³id |
| | | byte[] gatewayId = new byte[GwIdLength]; |
| | | for (int i = 0 ;i< GwIdLength ; i++){ |
| | | gatewayId[i] = dataPacket.getData()[i+51+GwNameLength]; |
| | | } |
| | | |
| | | if (gatewayId.length > 1) { |
| | | String stringGateWayId = new String(gatewayId,0,gatewayId.length); |
| | | Log.d(TAG, "ç½å
³id: "+stringGateWayId); |
| | | |
| | | ZigbeeGatewayInfoBean zigbeeGatewayInfoBean = new ZigbeeGatewayInfoBean(); |
| | | zigbeeGatewayInfoBean.setGatewayId(stringGateWayId); |
| | | zigbeeGatewayInfoBean.setIpAddress(dataPacket.getAddress().getHostAddress()); |
| | | if (IsDomain.equals("01")){ |
| | | zigbeeGatewayInfoBean.setDomain(true); |
| | | }else { |
| | | zigbeeGatewayInfoBean.setDomain(false); |
| | | } |
| | | zigbeeGatewayInfoBean.setGatewayName(GwName); |
| | | boolean isExit = false; |
| | | for (int i = 0; i < zigbeeGatewayInfoBeanList.size(); i++) { |
| | | if (zigbeeGatewayInfoBeanList.get(i).getGatewayId() |
| | | .equals(zigbeeGatewayInfoBean.getGatewayId())) { |
| | | isExit = true; |
| | | break; |
| | | } |
| | | } |
| | | if (!isExit) { |
| | | zigbeeGatewayInfoBeanList.add(zigbeeGatewayInfoBean); |
| | | Log.d(TAG, "addList:æåæ·»å "); |
| | | } |
| | | } |
| | | } |
| | | datagramSocket.close(); |
| | | } catch (Exception e) { |
| | | Log.d(TAG, "run: "+e.toString()); |
| | | e.printStackTrace(); |
| | | datagramSocket.close(); |
| | | onSearchListener.onEorror(e); |
| | | //ç½å
³åç§° |
| | | byte[] gwnamebyte = new byte[GwNameLength]; |
| | | for (int i = 0; i < GwNameLength; i++) { |
| | | gwnamebyte[i] = dataPacket.getData()[i + 50]; |
| | | } |
| | | String GwName = new String(gwnamebyte, 0, gwnamebyte.length); |
| | | |
| | | //ç½å
³idé¿åº¦ |
| | | String str1 = StringUtil.Byte2Hex(dataPacket.getData()[50 + GwNameLength]); |
| | | int GwIdLength = Integer.parseInt(str1, 16); |
| | | |
| | | //è·åç½å
³id |
| | | byte[] gatewayId = new byte[GwIdLength]; |
| | | for (int i = 0; i < GwIdLength; i++) { |
| | | gatewayId[i] = dataPacket.getData()[i + 51 + GwNameLength]; |
| | | } |
| | | |
| | | if (gatewayId.length > 1) { |
| | | String stringGateWayId = new String(gatewayId, 0, gatewayId.length); |
| | | Log.d(TAG, "ç½å
³id: " + stringGateWayId); |
| | | |
| | | ZigbeeGatewayInfoBean zigbeeGatewayInfoBean = new ZigbeeGatewayInfoBean(); |
| | | zigbeeGatewayInfoBean.setGatewayId(stringGateWayId); |
| | | zigbeeGatewayInfoBean.setIpAddress(dataPacket.getAddress().getHostAddress()); |
| | | if (IsDomain.equals("01")) { |
| | | zigbeeGatewayInfoBean.setDomain(true); |
| | | } else { |
| | | zigbeeGatewayInfoBean.setDomain(false); |
| | | } |
| | | zigbeeGatewayInfoBean.setGatewayName(GwName); |
| | | boolean isExit = false; |
| | | for (int i = 0; i < zigbeeGatewayInfoBeanList.size(); i++) { |
| | | if (zigbeeGatewayInfoBeanList.get(i).getGatewayId() |
| | | .equals(zigbeeGatewayInfoBean.getGatewayId())) { |
| | | isExit = true; |
| | | break; |
| | | } |
| | | } |
| | | if (!isExit) { |
| | | zigbeeGatewayInfoBeanList.add(zigbeeGatewayInfoBean); |
| | | Log.d(TAG, "addList:æåæ·»å "); |
| | | } |
| | | } |
| | | } |
| | | datagramSocket.close(); |
| | | } catch (Exception e) { |
| | | Log.d(TAG, "run: " + e.toString()); |
| | | e.printStackTrace(); |
| | | datagramSocket.close(); |
| | | onSearchListener.onEorror(e); |
| | | } |
| | | } else { |
| | | if (searchTimer != null) { |
| | | //æ§è¡å®æç´¢åå°è¿ |