| implementation 'androidx.appcompat:appcompat:1.4.2' | implementation 'androidx.appcompat:appcompat:1.4.2' | ||||
| implementation 'androidx.constraintlayout:constraintlayout:2.0.4' | implementation 'androidx.constraintlayout:constraintlayout:2.0.4' | ||||
| testImplementation 'junit:junit:4.12' | testImplementation 'junit:junit:4.12' | ||||
| implementation 'com.github.elinkthings:AILinkSDKRepositoryAndroid:1.10.9'//蓝牙核心库 | |||||
| implementation 'com.github.elinkthings:AILinkSDKRepositoryAndroid:1.13.11'//蓝牙核心库 | |||||
| implementation 'com.github.elinkthings:AILinkSDKOtaLibraryAndroid:1.0.3'//OTA库,需要依赖核心库 | implementation 'com.github.elinkthings:AILinkSDKOtaLibraryAndroid:1.0.3'//OTA库,需要依赖核心库 | ||||
| implementation 'com.github.elinkthings:AILinkSDKParsingLibraryAndroid:1.8.0'//蓝牙解析库 | |||||
| implementation 'com.github.elinkthings:AILinkSDKParsingLibraryAndroid:1.8.4'//蓝牙解析库 | |||||
| implementation 'androidx.recyclerview:recyclerview:1.2.1' | implementation 'androidx.recyclerview:recyclerview:1.2.1' | ||||
| implementation 'com.jakewharton:butterknife:10.2.0' | implementation 'com.jakewharton:butterknife:10.2.0' | ||||
| annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.0' | annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.0' | 
| import android.widget.RadioGroup; | import android.widget.RadioGroup; | ||||
| import android.widget.Toast; | import android.widget.Toast; | ||||
| import androidx.annotation.Nullable; | |||||
| import androidx.appcompat.widget.AppCompatSpinner; | |||||
| import androidx.constraintlayout.widget.ConstraintLayout; | |||||
| import androidx.lifecycle.Lifecycle; | |||||
| import com.pingwang.bluetoothlib.device.BleDevice; | import com.pingwang.bluetoothlib.device.BleDevice; | ||||
| import com.pingwang.bluetoothlib.device.SendDataBean; | import com.pingwang.bluetoothlib.device.SendDataBean; | ||||
| import com.pingwang.bluetoothlib.listener.OnBleOtherDataListener; | import com.pingwang.bluetoothlib.listener.OnBleOtherDataListener; | ||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.base.BleAppBaseActivity; | import aicare.net.cn.sdk.ailinksdkdemoandroid.base.BleAppBaseActivity; | ||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.modules.airdetector_test.AirDetectorActivityTest; | import aicare.net.cn.sdk.ailinksdkdemoandroid.modules.airdetector_test.AirDetectorActivityTest; | ||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.TimeUtils; | import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.TimeUtils; | ||||
| import androidx.annotation.Nullable; | |||||
| import androidx.appcompat.widget.AppCompatSpinner; | |||||
| import androidx.constraintlayout.widget.ConstraintLayout; | |||||
| import androidx.lifecycle.Lifecycle; | |||||
| import cn.net.aicare.modulelibrary.module.airDetector.AirConst; | import cn.net.aicare.modulelibrary.module.airDetector.AirConst; | ||||
| import cn.net.aicare.modulelibrary.module.airDetector.AirDetectorWifeBleData; | import cn.net.aicare.modulelibrary.module.airDetector.AirDetectorWifeBleData; | ||||
| import cn.net.aicare.modulelibrary.module.airDetector.AirSendUtil; | import cn.net.aicare.modulelibrary.module.airDetector.AirSendUtil; | ||||
| String valueMin = ed_min.getText().toString().trim(); | String valueMin = ed_min.getText().toString().trim(); | ||||
| float myValueMax = valueMax.contains("\\.") ? Float.parseFloat(valueMax) : Integer.parseInt(valueMax); | float myValueMax = valueMax.contains("\\.") ? Float.parseFloat(valueMax) : Integer.parseInt(valueMax); | ||||
| float myValueMin = valueMin.contains("\\.") ? Float.parseFloat(valueMin) : Integer.parseInt(valueMin); | float myValueMin = valueMin.contains("\\.") ? Float.parseFloat(valueMin) : Integer.parseInt(valueMin); | ||||
| sendDataBean = AirSendUtil.setWarmTemp(supportBean.getPoint(), | |||||
| supportBean.getUnit(), myValueMax, myValueMin); | |||||
| sendDataBean = AirSendUtil.setWarmTemp(supportBean.getPoint(), supportBean.getUnit(), myValueMax, myValueMin,1); | |||||
| break; | break; | ||||
| case AirConst.AIR_TYPE_HUMIDITY: | case AirConst.AIR_TYPE_HUMIDITY: | ||||
| valueMax = ed_max.getText().toString().trim(); | valueMax = ed_max.getText().toString().trim(); | ||||
| myValueMax = valueMax.contains("\\.") ? Float.parseFloat(valueMax) : Integer.parseInt(valueMax); | myValueMax = valueMax.contains("\\.") ? Float.parseFloat(valueMax) : Integer.parseInt(valueMax); | ||||
| myValueMin = valueMin.contains("\\.") ? Float.parseFloat(valueMin) : Integer.parseInt(valueMin); | myValueMin = valueMin.contains("\\.") ? Float.parseFloat(valueMin) : Integer.parseInt(valueMin); | ||||
| sendDataBean = AirSendUtil.setWarmHumidity(supportBean.getPoint(), | sendDataBean = AirSendUtil.setWarmHumidity(supportBean.getPoint(), | ||||
| myValueMax, myValueMin); | |||||
| myValueMax, myValueMin,1); | |||||
| break; | break; | ||||
| case AirConst.AIR_SETTING_VOICE: | case AirConst.AIR_SETTING_VOICE: | ||||
| warmState = Integer.parseInt(ed_warm_state.getText().toString().trim()); | warmState = Integer.parseInt(ed_warm_state.getText().toString().trim()); | 
| import android.widget.Button; | import android.widget.Button; | ||||
| import android.widget.Toast; | import android.widget.Toast; | ||||
| import androidx.lifecycle.Lifecycle; | |||||
| import androidx.recyclerview.widget.LinearLayoutManager; | |||||
| import androidx.recyclerview.widget.RecyclerView; | |||||
| import com.pingwang.bluetoothlib.device.BleDevice; | import com.pingwang.bluetoothlib.device.BleDevice; | ||||
| import com.pingwang.bluetoothlib.listener.OnCallbackBle; | import com.pingwang.bluetoothlib.listener.OnCallbackBle; | ||||
| import com.pingwang.bluetoothlib.utils.BleLog; | import com.pingwang.bluetoothlib.utils.BleLog; | ||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.R; | import aicare.net.cn.sdk.ailinksdkdemoandroid.R; | ||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.base.BleAppBaseActivity; | import aicare.net.cn.sdk.ailinksdkdemoandroid.base.BleAppBaseActivity; | ||||
| import androidx.lifecycle.Lifecycle; | |||||
| import androidx.recyclerview.widget.LinearLayoutManager; | |||||
| import androidx.recyclerview.widget.RecyclerView; | |||||
| import cn.net.aicare.modulelibrary.module.airDetector.AirConst; | import cn.net.aicare.modulelibrary.module.airDetector.AirConst; | ||||
| import cn.net.aicare.modulelibrary.module.airDetector.AirDetectorWifeBleData; | import cn.net.aicare.modulelibrary.module.airDetector.AirDetectorWifeBleData; | ||||
| import cn.net.aicare.modulelibrary.module.airDetector.AirSendUtil; | import cn.net.aicare.modulelibrary.module.airDetector.AirSendUtil; | ||||
| type = AirConst.AIR_TYPE_TEMP; | type = AirConst.AIR_TYPE_TEMP; | ||||
| if (isSupportWarmType(type)) { | if (isSupportWarmType(type)) { | ||||
| addTest("设置温度报警"); | addTest("设置温度报警"); | ||||
| mAirDetectorWifeBleData.sendData(AirSendUtil.setWarmTemp(0, AirConst.UNIT_C, 30f, 0f)); | |||||
| mAirDetectorWifeBleData.sendData(AirSendUtil.setWarmTemp(0, AirConst.UNIT_C, 30f, 0f,1)); | |||||
| } | } | ||||
| break; | break; | ||||
| case STEP_WARM_HUMIDITY: | case STEP_WARM_HUMIDITY: | ||||
| type = AirConst.AIR_TYPE_HUMIDITY; | type = AirConst.AIR_TYPE_HUMIDITY; | ||||
| if (isSupportWarmType(type)) { | if (isSupportWarmType(type)) { | ||||
| addTest("设置湿度报警"); | addTest("设置湿度报警"); | ||||
| mAirDetectorWifeBleData.sendData(AirSendUtil.setWarmHumidity(0, 60f, 7f)); | |||||
| mAirDetectorWifeBleData.sendData(AirSendUtil.setWarmHumidity(0, 60f, 7f,1)); | |||||
| } | } | ||||
| break; | break; | ||||
| case STEP_WARM_PM2_5: | case STEP_WARM_PM2_5: | 
| import android.widget.ListView; | import android.widget.ListView; | ||||
| import android.widget.RadioButton; | import android.widget.RadioButton; | ||||
| import androidx.annotation.Nullable; | |||||
| import com.pingwang.bluetoothlib.bean.SupportUnitBean; | |||||
| import com.pingwang.bluetoothlib.device.BleDevice; | import com.pingwang.bluetoothlib.device.BleDevice; | ||||
| import java.text.SimpleDateFormat; | import java.text.SimpleDateFormat; | ||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.R; | import aicare.net.cn.sdk.ailinksdkdemoandroid.R; | ||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.base.BleBaseActivity; | import aicare.net.cn.sdk.ailinksdkdemoandroid.base.BleBaseActivity; | ||||
| import androidx.annotation.Nullable; | |||||
| import cn.net.aicare.modulelibrary.module.weightscale.WeightScaleDevice; | import cn.net.aicare.modulelibrary.module.weightscale.WeightScaleDevice; | ||||
| /** | /** | ||||
| private WeightScaleDevice mWeightScaleDevice; | private WeightScaleDevice mWeightScaleDevice; | ||||
| private Button btn_weight_battery, btn_weight_sync_time,btn_weight_query_unit; | |||||
| private Button btn_weight_battery, btn_weight_sync_time, btn_weight_query_unit; | |||||
| private RadioButton kg, jing, stlb, lb; | private RadioButton kg, jing, stlb, lb; | ||||
| addText("收到的A7 PayLoad:[" + A7DataStr + "]"); | addText("收到的A7 PayLoad:[" + A7DataStr + "]"); | ||||
| } | } | ||||
| @Override | |||||
| public void onSupportUnit(List<SupportUnitBean> list) { | |||||
| } | |||||
| @Override | @Override | ||||
| public void onMeasureOk() { | public void onMeasureOk() { | ||||
| addText("测量完成"); | addText("测量完成"); | ||||
| addText("版本号:" + version); | addText("版本号:" + version); | ||||
| } | } | ||||
| /** | |||||
| * 请求同步时间 | |||||
| * | |||||
| * @param quest 1-请求同步时间 | |||||
| */ | |||||
| @Override | |||||
| public void onSyncTime(int quest) { | |||||
| if (quest == 1) { | |||||
| if (mWeightScaleDevice != null) { | |||||
| mWeightScaleDevice.appSyncTime(); | |||||
| } | |||||
| } | |||||
| } | |||||
| @Override | @Override | ||||
| public void onBattery(int status, int battery) { | public void onBattery(int status, int battery) { | ||||
| if (mWeightScaleDevice != null) { | if (mWeightScaleDevice != null) { | ||||
| mWeightScaleDevice.appSyncTime(); | mWeightScaleDevice.appSyncTime(); | ||||
| } | } | ||||
| }else if (view.getId()==R.id.btn_weight_query_unit){ | |||||
| } else if (view.getId() == R.id.btn_weight_query_unit) { | |||||
| if (mWeightScaleDevice != null) { | if (mWeightScaleDevice != null) { | ||||
| mWeightScaleDevice.queryUnit(); | mWeightScaleDevice.queryUnit(); | ||||
| } | } |