Connected the SmartRing

dev_3.3_BLE
Faiz Hashmi 2 years ago
parent 6cd410e2d9
commit be294ae264

@ -135,6 +135,7 @@ dependencies {
// Native Dependency
implementation "org.jetbrains.anko:anko-commons:0.10.4"
implementation 'com.github.kittinunf.fuel:fuel:2.3.0' //for JVM
implementation project(':blesdk_2301')
implementation 'com.github.kittinunf.fuel:fuel-android:2.3.0'
implementation 'com.google.android.gms:play-services-location:17.1.0'//for Android
implementation 'com.google.android.gms:play-services-basement:17.5.0'

@ -0,0 +1,52 @@
apply plugin: 'com.android.library'
android {
compileSdkVersion 33
lintOptions{
abortOnError false
}
defaultConfig {
minSdkVersion 18
targetSdkVersion 33
versionCode 3
versionName "3.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
consumerProguardFiles 'proguard-rules.pro'
}
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
consumerProguardFiles 'proguard-rules.pro'
}
}
task makejar(type: Jar) {
from file('build/intermediates/javac/debug/classes')
archiveName = '2301sdk' + defaultConfig.versionName + '.jar'
destinationDir = file('build/libs')
include "com/jstyle/blesdk2301/**"
}
makejar.dependsOn(build)
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
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'
}

@ -0,0 +1,26 @@
package com.jstyle.blesdk2301;
import android.content.Context;
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() throws Exception {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getTargetContext();
assertEquals("com.jstyle.blesdk.test", appContext.getPackageName());
}
}

@ -0,0 +1,244 @@
package com.jstyle.blesdk2301.Util;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Rect;
import android.graphics.pdf.PdfDocument;
import android.text.TextUtils;
import com.jstyle.blesdk2301.model.UserInfo;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
public class PDFCreate {
private static final String TAG = "PDFCreate";
final static int maxXSize = 5120;
static float length = 20;
static float totalWidth = 1070;
static int startX = 35;
static float endX = startX + 1000;
static float startY ;
private static float endY;
private static float height ;
private static float width ;
private static int strokeWidthTime;
private static int strokeWidthLine;
private static float totalHeight;
public static void createPdf(String path, Context context, List<Integer> data, UserInfo userInfo) {
int size = data.size();
float col = size % maxXSize == 0 ? size / maxXSize : size / maxXSize + 1;//一次画5120个点分多少次画
length=dip2px(context,10);
height=length;
width=length;
startX=dip2px(context,20);
endX=startX+50*length;
totalWidth=endX+startX;
totalHeight = col * height * 5 + dip2px(context,130);//一次需要5个高度
PdfDocument pdfDocument = new PdfDocument();
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder((int) totalWidth, (int) totalHeight, 1)
// .setContentRect(new Rect(0,0,(int)totalWidth,(int)totalHeight))
.create();
PdfDocument.Page page = pdfDocument.startPage(pageInfo);
Canvas canvas = page.getCanvas();
Paint paint = new Paint();
strokeWidthTime = dip2px(context, 1.5f);
strokeWidthLine = dip2px(context, 0.5f);
drawReportInfo(context, canvas, paint,userInfo);
Path pathCanvas = new Path();
endY = startY + col * height * 5;
paint.setTextSize(dip2px(context, 15));
drawAxes(pathCanvas, canvas, paint, col);
drawTimeLine(pathCanvas, canvas, paint);
drawDataLine(context,pathCanvas, canvas, paint, col, data);
pdfDocument.finishPage(page);
File file = new File(path);
FileOutputStream outputStream = null;
try {
outputStream = new FileOutputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
pdfDocument.writeTo(outputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* @param context
* @param canvas
* @param paint
* @param
*/
private static void drawReportInfo(Context context, Canvas canvas, Paint paint,UserInfo userInfo) {
paint.setTextSize(dip2px(context,15));
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.FILL);
if(null!=userInfo){
if(!TextUtils.isEmpty(userInfo.getEcgTitle())){
String title=userInfo.getEcgTitle();
Rect rect = new Rect();
paint.getTextBounds(title, 0, title.length(), rect);
int heightTitle = rect.height();
float startTextY=heightTitle+dip2px(context,8);
float marginTop=dip2px(context,4);
float marginRight=dip2px(context,8);
//标题
canvas.drawText(title, totalWidth / 2 - 150, startTextY, paint);
//提醒
paint.setTextSize(dip2px(context, 12));
int widthTips = rect.width();
int heightTips = rect.height();
if(!TextUtils.isEmpty(userInfo.getEcgReportTips())) {
String tips = userInfo.getEcgReportTips();
float tipsTextY = startTextY + heightTitle + marginTop;
paint.getTextBounds(tips, 0, tips.length(), rect);
canvas.drawText(tips, totalWidth - widthTips - marginRight, tipsTextY, paint);
}
float tipsTextY=startTextY+heightTitle+marginTop;
String name = userInfo.getName();
String genderString = userInfo.getGender();
String age = userInfo.getAge();
String userWeight = userInfo.getWeight();
String userHeight = userInfo.getHeight();
//个人信息
float infoTextY=tipsTextY+heightTips+marginTop;
@SuppressLint("StringFormatMatches")
String info=name+" "+genderString+" "+age+" "+ userHeight+" "+userWeight;
paint.getTextBounds(info, 0, info.length(), rect);
int heightInfo = rect.height();
int widthInfo = rect.width();
canvas.drawText(info, totalWidth / 2 - (widthInfo >> 1), infoTextY, paint);
//时间
float dateTextY=infoTextY+heightInfo+marginTop;
String dateString=userInfo.getDate();
paint.getTextBounds(dateString, 0, dateString.length(), rect);
int widthDate=rect.width();
int heightDate=rect.height();
canvas.drawText(dateString, totalWidth - widthDate-marginRight, dateTextY, paint);
startY=dateTextY+heightDate+marginTop;
}
}
}
/**
*
*
* @param pathCanvas
* @param canvas
* @param paint
* @param col
*/
private static void drawAxes(Path pathCanvas, Canvas canvas, Paint paint, float col) {
//画网格竖线
int colorLine = Color.rgb(243, 119, 99);
paint.setColor(colorLine);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(strokeWidthLine);
paint.setAlpha(200);
for (int i = 0; i <51; i++) {
pathCanvas.moveTo(i * width + startX, startY);
pathCanvas.lineTo(i * width + startX, endY);
}
//画网格横线
for (int i = 0; i <= col * 5; i++) {
pathCanvas.moveTo(startX - (strokeWidthTime >> 1), i * height + startY);
pathCanvas.lineTo(endX + (strokeWidthTime >> 1), i * height + startY);
}
canvas.drawPath(pathCanvas, paint);
pathCanvas.reset();
}
/**
* 线
*
* @param pathCanvas
* @param canvas
* @param paint
*/
private static void drawTimeLine(Path pathCanvas, Canvas canvas, Paint paint) {
paint.setColor(Color.BLACK);
paint.setStrokeWidth(strokeWidthTime);
paint.setStyle(Paint.Style.FILL);
Rect rect=new Rect();
for (int i = 0; i < 11; i++) {
pathCanvas.moveTo(i * 5 * width + startX, startY);
pathCanvas.lineTo(i * 5 * width + startX, endY + 20);
String time=i+"s";
paint.getTextBounds(time, 0, time.length(), rect);
int widthTime=rect.width();
canvas.drawText(time, i * 5 * width + startX - (widthTime >> 1), endY + 50, paint);
}
int colorS = Color.rgb(255, 119, 99);
paint.setColor(colorS);
paint.setAlpha(255);
paint.setStyle(Paint.Style.STROKE);
canvas.drawPath(pathCanvas, paint);
pathCanvas.reset();
}
/**
*
*
* @param pathCanvas
* @param canvas
* @param paint
* @param col
* @param data
*/
private static void drawDataLine(Context context,Path pathCanvas, Canvas canvas, Paint paint, float col, List<Integer> data) {
int size = data.size();
paint.setStrokeWidth(strokeWidthLine);
paint.setColor(Color.BLACK);
out:
for (int i = 0; i < col; i++) {
int startPoint = i * maxXSize;
in: for (int j = 0; j <maxXSize; j++) {
int x = j;
if (startPoint + j >= size) break out;
Integer y = data.get(startPoint + j);
if (j == 0) pathCanvas.moveTo(startX, i * height * 5 + getCanvasY(y,context));
pathCanvas.lineTo(startX + x * (endX - startX) / maxXSize, i * height * 5 + getCanvasY(y,context));
}
}
canvas.drawPath(pathCanvas, paint);
}
private static float getCanvasY(double value,Context context) {
double height = 5 * 10 / 16000f;
return dip2px (context,(float) (height * (8000 - value))) + startY;
}
/**
* dp px()
*/
public static int dip2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
}

@ -0,0 +1,10 @@
package com.jstyle.blesdk2301.callback;
public interface BleConnectionListener {
void BleStatus(int status,int newState);//蓝牙4.0连接状态 Bluetooth 4.0 connection status
void ConnectionSucceeded();//连接设备成功 Successfully connected the device
void Connecting();//设备连接中 Device is connected
void ConnectionFailed();//设备连接失败 Device connection failed
void OnReconnect();//重新连接中 Reconnecting
void BluetoothSwitchIsTurnedOff();//蓝牙开关被关闭 Bluetooth switch is turned off
}

@ -0,0 +1,13 @@
package com.jstyle.blesdk2301.callback;
import java.util.Map;
/**
* Created by Administrator on 2018/4/10.
*/
public interface DataListener2301 {
void dataCallback(Map<String, Object> maps);
void dataCallback(byte[] value);
}

@ -0,0 +1,9 @@
package com.jstyle.blesdk2301.callback;
import com.jstyle.blesdk2301.model.Device;
public interface OnScanResults {
void Success(Device date);
void Fail(int code);
}

@ -0,0 +1,42 @@
package com.jstyle.blesdk2301.cmdenum;
import java.io.Serializable;
public class YhDeviceData implements Serializable {
int dataType;// is index
String data="";//data object
boolean dataEnd=false; //Is it over?
public boolean isDataEnd() {
return dataEnd;
}
public void setDataEnd(boolean dataEnd) {
this.dataEnd = dataEnd;
}
public int getDataType() {
return dataType;
}
public void setDataType(int dataType) {
this.dataType = dataType;
}
public String getData() {
return data==null?"":data;
}
public void setData(String data) {
this.data = data;
}
@Override
public String toString() {
return "YhDeviceData{" +
"dataType=" + dataType +
", data=" + data +
", dataEnd=" + dataEnd +
'}';
}
}

@ -0,0 +1,135 @@
package com.jstyle.blesdk2301.constant;
/**
* Created by Administrator on 2020/4/9.
*/
public class BleConst {
public static final String GetDeviceTime="0";
public static final String SetDeviceTime="1";
public static final String GetPersonalInfo="2";
public static final String SetPersonalInfo="3";
public static final String GetDeviceInfo="4";
public static final String SetDeviceInfo="5";//设置手环基本参数
public static final String CMD_Set_Mac="6";
public static final String GetStepGoal="7";
public static final String SetStepGoal="8";
public static final String GetDeviceBatteryLevel="9";
public static final String GetDeviceMacAddress="10";
public static final String GetDeviceVersion="11";
public static final String CMD_Reset="12";
public static final String CMD_MCUReset="13";
public static final String SetMotorVibrationWithTimes ="14";
public static final String GetDeviceName="15";
public static final String GetAutomatic="16";
public static final String SetAutomatic="17";
public static final String GetAlarmClock="18";
public static final String SetAlarmClockWithAllClock="19";
public static final String Notify="20";
public static final String GetSedentaryReminder="21";
public static final String SetSedentaryReminder="22";
public static final String RealTimeStep="23";
public static final String GetTotalActivityData="24";
public static final String GetDetailActivityData="25";
public static final String GetDetailSleepData="26";
public static final String GetDynamicHR="27";
public static final String GetStaticHR="28";
public static final String GetActivityModeData="29";
public static final String EnterActivityMode="30";
public static final String DeviceSendDataToAPP="31";
public static final String BackHomeView="35";
public static final String GetTempHistoryData="36";
public static final String ECGDATA="37";
public static final String EcgppGstatus="38";
public static final String EcgppG="39";
public static final String GPSControlCommand="40";
public static final String Gps="41";//手环发送给app
public static final String GetHRVData="42";
public static final String CMD_Set_TemperatureCorrection="43";
public static final String Weather="44";
public static final String Braceletdial="45";
public static final String Braceletdialok="46";
public static final String SportMode="47";
public static final String GetSportMode="48";
public static final String CMD_Set_WorkOutReminder="49";
public static final String CMD_Get_WorkOutReminder="50";
public static final String ReadSerialNumber="51";
public static final String ECG="53";
public static final String Clear_Bracelet_data="54";
public static final String Blood_oxygen="55";
public static final String SocialdistanceGetting="56";
public static final String SocialdistanceSetting="57";
public static final String Sos="58";
public static final String Temperature_history="59";
public static final String SetDialinterface="60";
public static final String HeartBeatpacket="61";
public static final String GetAxillaryTemperatureDataWithMode="62";
public static final String GetMAC="63";
public static final String Getppg="64";
public static final String CloseECGPPG="65";
public static final String GetEcgPpgStatus="66";
public static final String ECGdata="67";
public static final String GetAutomaticSpo2Monitoring="68";
public static final String SetSpo2="69";
public static final String GEtSpo2="70";
public static final String DeleteECGdata="71";
public static final String DeleteHrv="72";
public static final String MeasurementHrvCallback="73";
public static final String MeasurementHeartCallback="74";
public static final String MeasurementOxygenCallback="75";
public static final String StopMeasurementHrvCallback="76";
public static final String StopMeasurementHeartCallback="77";
public static final String StopMeasurementOxygenCallback="78";
public static final String ExitQRcode="79";
public static final String EnterQRcode="80";
public static final String QRcodebandBack="81";
public static final String SportData="82";
public static final String Delete_Obtain_The_data_of_manual_blood_oxygen_test="83";
public static final String Delete_Blood_oxygen="84";
public static final String Delete_GetTotalActivityData="85";
public static final String Delete_AlarmClock="87";
public static final String Delete_ActivityModeData="88";
public static final String Delete_GetStaticHR="89";
public static final String Delete_GetDynamicHR="90";
public static final String deleteGetTemperature_historyDataWithMode="91";
public static final String deleteGetAxillaryTemperatureDataWithMode="92";
public static final String deleteGetDetailActivityDataWithMode="93";
public static final String Delete_GetDetailSleepData="94";
public static final String Enter_photo_mode="95";
public static final String openRRInterval="96";
public static final String closeRRInterval="97";
public static final String realtimeRRIntervalData="98";
public static final String realtimePPGData="99";
public static final String realtimePPIData="100";
public static final String ppgWithMode="101";
public static final String ppgStartSucessed="102";
public static final String ppgStartFailed="103";
public static final String ppgStop="104";
public static final String ppgQuit="105";
public static final String ppgMeasurementProgress="106";
public static final String ppgResult="107";
public static final String SetBloodpressure_calibration="108";
public static final String GetBloodpressure_calibration="109";
public static final String SetWomenHealth="110";
public static final String GetWomenHealth="111";
public static final String SetPregnancyCycle="112";
public static final String GetPregnancyCycle="113";
public static final String Getpeisu="114";
public static final String GetpeisuER="115";
public static final String CMD_Set_Name="116";
public static final String CMD_Get_Name="117";
public static final String Blood_glucose_status="118";
public static final String Blood_glucose_data="119";
public static final String FindActivityMode="120";
public static final String FindMobilePhoneMode="FindMobilePhoneMode";
public static final String RejectTelMode ="RejectTelMode";
public static final String TelMode ="TelMode";
public static final String ECGResult="ECGResult";
public static final String ENTERECG="ENTERECG";
}

@ -0,0 +1,41 @@
package com.jstyle.blesdk2301.constant;
/**
* Created by Administrator on 2018/1/17.
*/
public class DeviceConst {
public static final byte CMD_SET_TIME = (byte)0x01;
public static final byte CMD_GET_TIME = (byte)0x41;
public static final byte CMD_Set_UseInfo = (byte)0x02;
public static final byte CMD_GET_USERINFO = (byte) 0x42;
public static final byte CMD_Set_DeviceID = (byte)0x05;
public static final byte CMD_Enable_Activity = (byte)0x09;//
public static final byte CMD_Get_BatteryLevel = (byte)0x13;//
public static final byte CMD_Get_Address = (byte)0x22;
public static final byte CMD_Get_Version = (byte)0x27;
public static final byte CMD_Reset = (byte)0x12;
public static final byte CMD_Mcu_Reset = (byte)0x2e;
public static final byte CMD_Set_Auto = (byte)0x2a;
public static final byte CMD_Get_Auto = (byte)0x2b;
public static final byte CMD_Get_TotalData = (byte)0x51;//
public static final byte CMD_Get_DetailData = (byte)0x52;
public static final byte CMD_Get_SleepData = (byte)0x53;
public static final byte CMD_Get_HeartData = (byte)0x54;
public static final byte CMD_Get_OnceHeartData = (byte)0x55;
public static final byte CMD_Get_HrvTestData = (byte)0x56;//
public static final byte ReadTempHisrory= (byte)0x62;
public static final byte MeasurementWithType= (byte)0x28;
public static final byte Oxygen_data= (byte)0x66;
public static final byte CMD_Start_EXERCISE = (byte)0x19;
public static final byte CMD_heart_package= (byte)0x17;
public static final byte CMD_HeartPackageFromDevice = (byte)0x18;//
public static final byte CMD_Set_Name = (byte)0x3d;
public static final byte CMD_Get_Name = (byte)0x3e;
public static final byte CMD_Get_SPORTData = (byte)0x5C;
public static final byte CMD_Get_Bloodsugar = (byte)0x78;
public static final byte Bloodsugar_data=(byte)0x3a;//血糖数据
}

@ -0,0 +1,413 @@
package com.jstyle.blesdk2301.constant;
/**
* Created by Administrator on 2018/4/10.
*/
public class DeviceKey {
public static final String heartValue = "heartValue";
public static final String hrvValue = "hrvValue";
public static final String Quality = "Quality";
public static final String HangUp = "HangUp";
public static final String Telephone = "Telephone";
public static final String Photograph = "Photograph";
public static final String CanclePhotograph = "CanclePhotograph";
public static final String type = "type";
public static final String Play = "Play";
public static final String Suspend = "Suspend";
public static final String LastSong = "LastSong";
public static final String NextSong = "NextSong";
public static final String VolumeReduction = "VolumeReduction";
public static final String VolumeUp = "VolumeUp";
public static final String FindYourPhone = "FindYourPhone";
public static final String Cancle_FindPhone = "Cancle_FindPhone";
public static final String SOS = "SOS";
public static final String DataType = "dataType";
public static final String enterActivityModeSuccess = "enterActivityModeSuccess";
public static final String Type = "Type";
public static final String Status = "Status";
public static final String RRIntervalData = "RRIntervalData";
public static final String Manual = "Manual";
public static final String automatic = "automatic";
public static final String Data = "dicData";
public static final String End = "dataEnd";
public static final String index = "index";
public static final String scanInterval = "scanInterval";
public static final String scanTime = "scanTime";
public static final String signalStrength = "signalStrength";
public static final String arrayX = "arrayX";
public static final String arrayY = "arrayY";
public static final String arrayZ = "arrayZ";
public static final String arrayPpgRawData = "arrayPpgRawData";
public static final String KGpsResCheck0 = "KGpsResCheck0"; // 设备时间 GET_DEVICE_Time
public static final String KGpsResCheck1 = "KGpsResCheck1"; // 设备时间
public static final String Band = "Band";
public static final String KFinishFlag = "finish";
public static final String DeviceTime = "strDeviceTime"; // 设备时间 GET_DEVICE_Time
public static final String GPSTime = "gpsExpirationTime"; // 设备时间 GET_DEVICE_Time
public static final String TimeZone = "TimeZone"; // 设备时间 GET_DEVICE_Time
public static final String KHrvBloodHighPressure = "KHrvBloodHighPressure";
public static final String KHrvBloodLowPressure = "KHrvBloodLowPressure";
/*
* GET_PERSONAL_INFO
* sex
* Age
* Height
* Weight
* stepLength
* deviceId ID
*/
public static final String Gender = "MyGender";
public static final String Age = "MyAge";
public static final String Height = "MyHeight";
public static final String Weight = "MyWeight";
public static final String Stride = "MyStride";
public static final String KUserDeviceId = "deviceId";
/*
* GET_DEVICE_INFO
* distanceUnit
* hourState 1224
* handleEnable 使
* handleSign
* screenState
* anceEnable ANCS使
*/
public static final String DistanceUnit = "distancUnit";
public static final String TimeUnit = "timeUnit";
public static final String TempUnit = "temperatureUnit";
public static final String WristOn = "wristOn";
public static final String TemperatureUnit = "TemperatureUnit";
public static final String NightMode = "NightMode";
public static final String LeftOrRight = "handleSign";
//public static final String ScreenShow = "screenState";
public static final String Dialinterface = "dialinterface";
public static final String SocialDistancedwitch = "SocialDistancedwitch";
public static final String ChineseOrEnglish= "ChineseOrEnglish";
public static final String Lauage= "Lauage";
public static final String ScreenBrightness = "dcreenBrightness";
public static final String KBaseHeart = "baseHeartRate";
public static final String isHorizontalScreen = "isHorizontalScreen";
public static final String Year = "Year";
public static final String Month = "Month";
public static final String Day = "Day";
public static final String MenstrualPeriod_Lenth = "MenstrualPeriod_Lenth";
public static final String MenstrualPeriod_Period = "MenstrualPeriod_Period";
/*
* SET_STEP_MODEL
*totalSteps
*calories
*distance
*time
*heartValue
*/
public static final String Step = "step";
public static final String Calories = "calories";
public static final String Distance = "distance";
public static final String ExerciseMinutes = "exerciseMinutes";
public static final String HeartRate = "heartRate";
public static final String ActiveMinutes = "ExerciseTime";
public static final String TempData = "TempData";
public static final String StepGoal = "stepGoal"; // 目标步数值 GET_GOAL
public static final String BatteryLevel = "batteryLevel"; // 电量级别 READ_DEVICE_BATTERY
public static final String Chargingstate = "Chargingstate"; // 充电状态
public static final String Voltage_value = "VoltageValue"; // 电压值
public static final String MacAddress = "macAddress"; // MAC地址 READ_MAC_ADDRESS
public static final String DeviceVersion = "deviceVersion"; // 版本号 READ_VERSION
public static final String DeviceName = "deviceName"; // 设备名称 GET_DEVICE_NAME
public static final String TemperatureCorrectionValue = "TemperatureCorrectionValue"; // 设备名称 GET_DEVICE_NAME
/*
* GET_AUTOMIC_HEART
*workModel
*heartStartHour
*heartStartMinter
*heartEndHour
*heartEndMinter
*heartWeek 使
*workTime
*/
public static final String WorkMode = "workModel";
public static final String StartTime = "heartStartHour";
public static final String KHeartStartMinter = "heartStartMinter";
public static final String EndTime = "heartEndHour";
public static final String KHeartEndMinter = "heartEndMinter";
public static final String Weeks = "weekValue";
public static final String IntervalTime = "intervalTime";
public static final String Time = "Time";
public static final String PPG = "PPG";
/*
* READ_SPORT_PERIOD
*StartTimeHour
*StartTimeMin
*EndTimeHour
*EndTimeMin
*Week 使
*KSportNotifierTime
*/
public static final String StartTimeHour = "sportStartHour";
public static final String StartTimeMin = "sportStartMinter";
public static final String EndTimeHour = "sportEndHour";
public static final String EndTimeMin = "sportEndMinter";
public static final String LeastSteps = "leastSteps";
/*
* GET_STEP_DATA
*historyDate
*historySteps
*historyTime
*historyDistance
*Calories
*historyGoal
*/
public static final String Date = "date";
public static final String Size = "size";
public static final String Goal = "goal";
/*
* GET_STEP_DETAIL
*Date
*ArraySteps
*Calories
*Distance
*KDetailMinterStep 10
*/
public static final String ArraySteps = "arraySteps";
public static final String KDetailMinterStep = "detailMinterStep";
public static final String temperature = "temperature";
public static final String axillaryTemperature = "axillaryTemperature";
/*
* GET_SLEEP_DETAIL
*Date
*KSleepLength
*ArraySleep 5 (24)
*/
public static final String KSleepLength = "sleepLength";
public static final String ArraySleep = "arraySleepQuality";
public static final String sleepUnitLength = "sleepUnitLength";//是不是一分钟的睡眠数据 1为1分钟数据 0为5分钟数据
/*
* GET_HEART_DATA
*Date
*ArrayDynamicHR 1012
*/
public static final String ArrayDynamicHR = "arrayDynamicHR";
public static final String Blood_oxygen = "Blood_oxygen";
/*
* GET_ONCE_HEARTDATA
*Date
*StaticHR
*/
public static final String StaticHR = "onceHeartValue";
/*
* GET_HRV_DATA
*Date
*HRV HRV
*VascularAging
*HeartRate
*Stress
*/
public static final String HRV = "hrv";
public static final String VascularAging = "vascularAging";
public static final String Fatiguedegree = "fatigueDegree";
public static final String Stress = "stress";
public static final String HighPressure = "highPressure";
public static final String LowPressure = "lowPressure";
public static final String highBP = "highBP";
public static final String lowBP = "lowBP";
/*
*GET_ALARM
*KAlarmId 04
*ClockType
*ClockTime
*KAlarmMinter
*Week 使
*KAlarmLength
*KAlarmContent
*/
public static final String KAlarmId = "alarmId";
public static final String OpenOrClose = "clockOpenOrClose";
public static final String ClockType = "clockType";
public static final String ClockTime = "alarmHour";
public static final String KAlarmMinter = "alarmMinter";
public static final String Week = "weekValue";
public static final String KAlarmLength = "alarmLength";
public static final String KAlarmContent = "dicClock";
/***********************GET_HRV_TESTDATA***************************************************/
/*
*KBloodTestLength
*KBloodTestProgress
*KBloodTestValue PPG
*KBolldTestCurve
*/
public static final String KBloodTestLength = "bloodTestLength";
public static final String KBloodTestProgress = "bloodTestProgress";
public static final String KBloodTestValue = "bloodTestValue";
public static final String KBloodTestCurve = "bloodTestCurve";
/*
*KBloodResultPercent
*KBloodResultRebound
*KBloodResultMax
*KBloodResultRank 16
*/
public static final String KBloodResultPercent = "bloodPercent";
public static final String KBloodResultRebound = "bloodRebound";
public static final String KBloodResultMax = "bloodResultMax";
public static final String KBloodResultRank = "bloodResultRank";
/*
*KHrvTestProgress
*KHrvTestWidth
*KHrvTestValue
*/
public static final String KHrvTestProgress = "hrvTestProgress";
public static final String KHrvTestWidth = "hrvTestWidth";
public static final String KHrvTestValue = "hrvTestValue";
/*
*KHrvResultState SDNN 0,
*KHrvResultAvg SDNN
*KHrvResultTotal SDNN
*KHrvResultCount
*KHrvResultTired
*KHrvResultValue
*/
public static final String KHrvResultState = "hrvResultState";
public static final String KHrvResultAvg = "hrvResultAvg";
public static final String KHrvResultTotal = "hrvResultTotal";
public static final String KHrvResultCount = "hrvResultCount";
public static final String KHrvResultTired = "hrvResultTired";
public static final String KHrvResultValue = "hrvResultValue";
/*
*KDisturbState 1: 0
*KSlipHand 1: 0;
*KPPGData PPG
*/
public static final String KDisturbState = "disturbState";
public static final String KSlipHand = "slipHand";
public static final String KPPGData = "ppgData";
public static final String KPPIData = "ppiData";
public static final String ppgResult = "ppgResult";
public static final String ppgStartSucessed="ppgStartSucessed";
public static final String ppgStartFailed="ppgStartFailed";
public static final String ppgStop="ppgStop";
public static final String ppgQuit="ppgQuit";
public static final String ppgMeasurementProgress="ppgMeasurementProgress";
/*
*@param Date
*@param Latitude
*@param Longitude
*/
public static final String Latitude = "locationLatitude";
public static final String Longitude = "locationLongitude";
public static final String KActivityLocationTime = "ActivityLocationTIme";
public static final String KActivityLocationLatitude = "ActivityLocationLatitude";
public static final String KActivityLocationLongitude = "ActivityLocationLongitude";
public static final String KActivityLocationCount = "KActivityLocationCount";
/*
* GET_SPORTMODEL_DATA
*@param Date
*@param ActivityMode
0=Run,
1=Cycling,
2=Swimming,
3=Badminton,
4=Football,
5=Tennis,
6=Yoga,
7=Medication,
8=Dance
*@param HeartRate
*@param ActiveMinutes
*@param Step
*@param Pace
*@param Calories
*@param Distance
*/
public static final String ActivityMode = "sportModel";
public static final String Pace = "sportModelSpeed";
public static final String KDataID = "KDataID";
public static final String KPhoneDataLength = "KPhoneDataLength";
public static final String KClockLast = "KClockLast";
public static final String TakePhotoMode = "TakePhotoMode";
public static final String KFunction_tel = "TelMode";
public static final String KFunction_reject_tel = "RejectTelMode";
public static final String FindMobilePhoneMode = "FindMobilePhoneMode";
public static final String KEnable_exercise = "KEnable_exercise";
public static final String ECGQualityValue = "ECGQualityValue";
public static final String ECGResultValue = "ECGResultVALUE";
public static final String ECGHrvValue = "ECGHrvValue";
public static final String ECGAvBlockValue = "ECGAvBlockValue";
public static final String ECGHrValue = "ECGHrValue";
public static final String PPGHrValue = "PPGHrValue";
public static final String ECGStreesValue = "ECGStreesValue";
public static final String ECGhighBpValue = "ECGhighBpValue";
public static final String ECGLowBpValue = "ECGLowBpValue";
public static final String ECGMoodValue = "ECGMoodValue";
public static final String ECGBreathValue = "ECGBreathValue";
public static final String KEcgDataString = "KEcgDataString"; // ecg
public static final String ECGValue = "ECGValue";
public static final String PPGValue = "PPGValue";
public static final String EcgStatus = "EcgStatus";
public static final String EcgSBP = "PPGSBP";
public static final String EcgDBP = "PPGDBP";
public static final String EcgHR = "PPGHR";
public static final String WaveformDownTime = "WaveformDownTime";
public static final String WaveformRiseTime = "WaveformRiseTime";
public static final String EcgGender = "Gender";
public static final String EcgAge = "Age";
public static final String EcgHeight = "Height";
public static final String EcgWeight = "Weight";
}

@ -0,0 +1,5 @@
package com.jstyle.blesdk2301.model;
public enum AutoMode {
AutoHeartRate, AutoSpo2,AutoTemp,AutoHrv
}

@ -0,0 +1,5 @@
package com.jstyle.blesdk2301.model;
public enum AutoTestMode {
AutoHeartRate, AutoSpo2,
}

@ -0,0 +1,87 @@
package com.jstyle.blesdk2301.model;
import java.io.Serializable;
/**
* Created by Administrator on 2018/1/16.
*/
public class Clock extends SendData implements Serializable {
int number;
int type;
int hour;
int minute;
byte week;
String content;
boolean enable;
public boolean isEnable() {
return enable;
}
public void setEnable(boolean enable) {
this.enable = enable;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public int getHour() {
return hour;
}
public void setHour(int hour) {
this.hour = hour;
}
public int getMinute() {
return minute;
}
public void setMinute(int minute) {
this.minute = minute;
}
public int getWeek() {
return week;
}
public void setWeek(byte week) {
this.week = week;
}
@Override
public String toString() {
return "Clock{" +
"number=" + number +
", type=" + type +
", hour=" + hour +
", minute=" + minute +
", week=" + week +
", content='" + content + '\'' +
", enable=" + enable +
'}';
}
}

@ -0,0 +1,103 @@
package com.jstyle.blesdk2301.model;
import android.bluetooth.BluetoothDevice;
import java.io.Serializable;
import java.util.concurrent.ScheduledThreadPoolExecutor;
public class Device implements Serializable{
String name;//设备名字
String mac;//设备的mac
int productID;//产品id,预留
BluetoothDevice getBluetoothDevice;//蓝牙
boolean isconted=false;//蓝牙是否连接
boolean IsPaired=false;//是否是配对设备
boolean isdfu=false;//是否直接升级
int riss=100;
public int getRiss() {
return riss;
}
public void setRiss(int riss) {
this.riss = riss;
}
ScheduledThreadPoolExecutor time=null;//每一个设备轮询器
public boolean isIsdfu() {
return isdfu;
}
public void setIsdfu(boolean isdfu) {
this.isdfu = isdfu;
}
public ScheduledThreadPoolExecutor getTime() {
return time;
}
public void setTime(ScheduledThreadPoolExecutor time) {
this.time = time;
}
public boolean isPaired() {
return IsPaired;
}
public void setPaired(boolean paired) {
IsPaired = paired;
}
public boolean isIsconted() {
return isconted;
}
public void setIsconted(boolean isconted) {
this.isconted = isconted;
}
public String getName() {
return name==null?"":this.name;
}
public void setName(String name) {
this.name = name;
}
public String getMac() {
return mac==null?"":this.mac;
}
public void setMac(String mac) {
this.mac = mac;
}
public int getProductID() {
return productID;
}
public void setProductID(int productID) {
this.productID = productID;
}
public BluetoothDevice getBluetoothDevice() {
return getBluetoothDevice;
}
public void setBluetoothDevice(BluetoothDevice bluetoothDevice) {
this.getBluetoothDevice = bluetoothDevice;
}
@Override
public String toString() {
return "Device{" +
"name='" + name + '\'' +
", mac='" + mac + '\'' +
", productID=" + productID +
", getBluetoothDevice=" + getBluetoothDevice +
", isconted=" + isconted +
'}';
}
}

@ -0,0 +1,29 @@
package com.jstyle.blesdk2301.model;
import java.util.List;
import java.util.Map;
/**
* Created by Administrator on 2018/4/28.
*/
public class DeviceBean {
List<Map<String,String>>dataList;
boolean finish;
public List<Map<String, String>> getDataList() {
return dataList;
}
public void setDataList(List<Map<String, String>> dataList) {
this.dataList = dataList;
}
public boolean isFinish() {
return finish;
}
public void setFinish(boolean finish) {
this.finish = finish;
}
}

@ -0,0 +1,17 @@
package com.jstyle.blesdk2301.model;
/**
* Created by Administrator on 2018/4/9.
*/
public class DeviceName extends SendData{
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

@ -0,0 +1,56 @@
package com.jstyle.blesdk2301.model;
/**
* Created by Administrator on 2018/8/2.
*/
public class ExerciseMode extends SendData {
public static final int Status_START=1;
public static final int Status_PAUSE=2;
public static final int Status_CONTUINE=3;
public static final int Status_FINISH=4;
public static final int Mode_RUN=0;
public static final int Mode_CYCLING=1;
public static final int Mode_BADMINTON=2;
public static final int Mode_FOOTBALL=3;
public static final int Mode_TENNIS=4;
public static final int Mode_YOGA=5;
public static final int Mode_BREATH=6;
public static final int Mode_DANCE=7;
public static final int Mode_BASKETBALL=8;
public static final int Mode_Walk=9;
public static final int Mode_workout=10;
public static final int Mode_Cricket=11;
public static final int Mode_Hiking=12;
public static final int Mode_Aerobics=13;
public static final int Mode_PingPong=14;
public static final int Mode_RopeJump=15;
public static final int Mode_Situps=16;
public static final int Volleyball=17;
public static int[]modes=new int[]{Mode_RUN,Mode_CYCLING,Mode_BADMINTON,Mode_FOOTBALL,
Mode_TENNIS,Mode_YOGA,Mode_BREATH,Mode_DANCE,Mode_BASKETBALL,Mode_Walk,Mode_workout
,Mode_Cricket,Mode_Hiking,Mode_Aerobics,Mode_PingPong, Mode_RopeJump,Mode_Situps,Volleyball};
int exerciseMode;
int enableStatus;
public int getExerciseMode(int position){
return modes[position];
}
public int getExerciseMode() {
return exerciseMode;
}
public void setExerciseMode(int exerciseMode) {
this.exerciseMode = exerciseMode;
}
public int getEnableStatus() {
return enableStatus;
}
public void setEnableStatus(int enableStatus) {
this.enableStatus = enableStatus;
}
}

@ -0,0 +1,50 @@
/*
* Copyright (c) 2015, Nordic Semiconductor
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package com.jstyle.blesdk2301.model;
import android.bluetooth.BluetoothDevice;
public class ExtendedBluetoothDevice {
/* package */public static final int NO_RSSI = -1000;
public final BluetoothDevice device;
/** The name is not parsed by some Android devices, f.e. Sony Xperia Z1 with Android 4.3 (C6903). It needs to be parsed manually. */
public String name;
public int rssi;
public ExtendedBluetoothDevice(BluetoothDevice device, String name, int rssi) {
this.device = device;
this.name = name;
this.rssi=rssi;
}
public ExtendedBluetoothDevice(final BluetoothDevice device) {
this.device = device;
this.name = device.getName();
this.rssi = NO_RSSI;
}
public boolean matches(final BluetoothDevice mdevice) {
return device.getAddress().equals(mdevice.getAddress());
}
}

@ -0,0 +1,22 @@
package com.jstyle.blesdk2301.model;
/**
* Created by Administrator on 2018/4/9.
*/
public class GetData extends SendData{
public final static byte DataNum_Delete= (byte) 0x99;
public final static int DataNum_Last=0;
/**
* 990
*/
int dataNum=DataNum_Last;
public int getDataNum() {
return dataNum;
}
public void setDataNum(int dataNum) {
this.dataNum = dataNum;
}
}

@ -0,0 +1,85 @@
package com.jstyle.blesdk2301.model;
/**
* Created by Administrator on 2018/1/16.
*/
public class MyAutomaticHRMonitoring extends SendData{
int open;//1 开启整个时间段都测量 2时间段内间隔测量 0关闭
// 1. Enable measurement throughout the entire time period 2. Measure intervals within the time period 0. Close
int startHour;//开始小时 Starting hours
int startMinute;//开始分钟 Start minute
int endHour;//结束小时 End Hour
int endMinute;//结束分钟 End minute
int week;//星期一到星期日 开启选择 Monday to Sunday open selection
int time;//多少时间测试一次,单位是分钟。 How many times does it take to test, in minutes.
public int getTime() {
return time;
}
public void setTime(int time) {
this.time = time;
}
public int getOpen() {
return open;
}
public void setOpen(int open) {
this.open = open;
}
public int getStartHour() {
return startHour;
}
public void setStartHour(int startHour) {
this.startHour = startHour;
}
public int getStartMinute() {
return startMinute;
}
public void setStartMinute(int startMinute) {
this.startMinute = startMinute;
}
public int getEndHour() {
return endHour;
}
public void setEndHour(int endHour) {
this.endHour = endHour;
}
public int getEndMinute() {
return endMinute;
}
public void setEndMinute(int endMinute) {
this.endMinute = endMinute;
}
public int getWeek() {
return week;
}
public void setWeek(int week) {
this.week = week;
}
@Override
public String toString() {
return "MyAutomaticHRMonitoring{" +
"open=" + open +
", startHour=" + startHour +
", startMinute=" + startMinute +
", endHour=" + endHour +
", endMinute=" + endMinute +
", week=" + week +
", time=" + time +
'}';
}
}

@ -0,0 +1,117 @@
package com.jstyle.blesdk2301.model;
/**
* Created by Administrator on 2018/4/9.
*/
public class MyDeviceInfo extends SendData{
boolean DistanceUnit;//1 miletrue,0km(false)
boolean is12Hour;//112小时true024小时制(false)
boolean Bright_screen;//1 turn on the bright screen, 0 turn off the bright screen
boolean Fahrenheit_or_centigrade;//Fahrenheit or centigrade
boolean isHorizontalScreen;//1 Horizontal screen, 0 Vertical screen
boolean Night_mode;//夜间模式
boolean Temperature_unit;//夜间模式
boolean Social_distance_switch;//社交距离开关 Social distance switch
int LauageNumber=-1;//中英文切换 Chinese_English_switch
int baseheart=60;//Basic heart rate
int ScreenBrightness=-1;//Screen brightness 屏幕亮度0-5
int Dialinterface=-1;//表盘更换 Dial replacement 0-10
public boolean isTemperature_unit() {
return Temperature_unit;
}
public void setTemperature_unit(boolean temperature_unit) {
Temperature_unit = temperature_unit;
}
public int getLauageNumber() {
return LauageNumber;
}
public void setLauageNumber(int lauageNumber) {
LauageNumber = lauageNumber;
}
public boolean isSocial_distance_switch() {
return Social_distance_switch;
}
public void setSocial_distance_switch(boolean social_distance_switch) {
Social_distance_switch = social_distance_switch;
}
public boolean isNight_mode() {
return Night_mode;
}
public void setNight_mode(boolean night_mode) {
Night_mode = night_mode;
}
public boolean isDistanceUnit() {
return DistanceUnit;
}
public void setDistanceUnit(boolean distanceUnit) {
DistanceUnit = distanceUnit;
}
public boolean isIs12Hour() {
return is12Hour;
}
public void setIs12Hour(boolean is12Hour) {
this.is12Hour = is12Hour;
}
public boolean isBright_screen() {
return Bright_screen;
}
public void setBright_screen(boolean bright_screen) {
Bright_screen = bright_screen;
}
public boolean isFahrenheit_or_centigrade() {
return Fahrenheit_or_centigrade;
}
public void setFahrenheit_or_centigrade(boolean fahrenheit_or_centigrade) {
Fahrenheit_or_centigrade = fahrenheit_or_centigrade;
}
public boolean isHorizontalScreen() {
return isHorizontalScreen;
}
public void setHorizontalScreen(boolean horizontalScreen) {
isHorizontalScreen = horizontalScreen;
}
public int getBaseheart() {
return baseheart;
}
public void setBaseheart(int baseheart) {
this.baseheart = baseheart;
}
public int getScreenBrightness() {
return ScreenBrightness;
}
public void setScreenBrightness(int screenBrightness) {
ScreenBrightness = screenBrightness;
}
public int getDialinterface() {
return Dialinterface;
}
public void setDialinterface(int dialinterface) {
Dialinterface = dialinterface;
}
}

@ -0,0 +1,86 @@
package com.jstyle.blesdk2301.model;
import java.util.Calendar;
/**
* Created by Administrator on 2018/1/16.
*/
public class MyDeviceTime extends SendData{
int year;
int month;
int day;
int hour;
int minute;
int second;
public MyDeviceTime() {
Calendar calendar=Calendar.getInstance();
this.year=calendar.get(Calendar.YEAR);
this.month=calendar.get(Calendar.MONTH)+1;
this.day=calendar.get(Calendar.DAY_OF_MONTH);
this.hour=calendar.get(Calendar.HOUR_OF_DAY);
this.minute=calendar.get(Calendar.MINUTE);
this.second=calendar.get(Calendar.SECOND);
}
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
public int getMonth() {
return month;
}
public void setMonth(int month) {
this.month = month;
}
public int getDay() {
return day;
}
public void setDay(int day) {
this.day = day;
}
public int getHour() {
return hour;
}
public void setHour(int hour) {
this.hour = hour;
}
public int getMinute() {
return minute;
}
public void setMinute(int minute) {
this.minute = minute;
}
public int getSecond() {
return second;
}
public void setSecond(int second) {
this.second = second;
}
@Override
public String toString() {
return "MyDeviceTime{" +
"year=" + year +
", month=" + month +
", day=" + day +
", hour=" + hour +
", minute=" + minute +
", second=" + second +
'}';
}
}

@ -0,0 +1,66 @@
package com.jstyle.blesdk2301.model;
/**
* Created by Administrator on 2018/1/16.
*/
public class MyPersonalInfo extends SendData{
int sex;//1 male,0female
int age;
int height;
int weight;
int stepLength=70;
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public int getWeight() {
return weight;
}
public void setWeight(int weight) {
this.weight = weight;
}
public int getStepLength() {
return stepLength;
}
public void setStepLength(int stepLength) {
this.stepLength = stepLength;
}
@Override
public String toString() {
return "MyPersonalInfo{" +
"sex=" + sex +
", age=" + age +
", height=" + height +
", weight=" + weight +
", stepLength=" + stepLength +
'}';
}
}

@ -0,0 +1,94 @@
package com.jstyle.blesdk2301.model;
/**
* Created by Administrator on 2018/1/16.
*/
public class MySedentaryReminder extends SendData{
int startHour;
int startMinute;
int endHour;
int endMinute;
int week;
int intervalTime;
int leastStep;
boolean enable;
public boolean isEnable() {
return enable;
}
public void setEnable(boolean enable) {
this.enable = enable;
}
public int getStartHour() {
return startHour;
}
public void setStartHour(int startHour) {
this.startHour = startHour;
}
public int getStartMinute() {
return startMinute;
}
public void setStartMinute(int startMinute) {
this.startMinute = startMinute;
}
public int getEndHour() {
return endHour;
}
public void setEndHour(int endHour) {
this.endHour = endHour;
}
public int getEndMinute() {
return endMinute;
}
public void setEndMinute(int endMinute) {
this.endMinute = endMinute;
}
public int getWeek() {
return week;
}
public void setWeek(int week) {
this.week = week;
}
public int getIntervalTime() {
return intervalTime;
}
public void setIntervalTime(int intervalTime) {
this.intervalTime = intervalTime;
}
public int getLeastStep() {
return leastStep;
}
public void setLeastStep(int leastStep) {
this.leastStep = leastStep;
}
@Override
public String toString() {
return "MySedentaryReminder{" +
"startHour=" + startHour +
", startMinute=" + startMinute +
", endHour=" + endHour +
", endMinute=" + endMinute +
", week=" + week +
", intervalTime=" + intervalTime +
", leastStep=" + leastStep +
", enable=" + enable +
'}';
}
}

@ -0,0 +1,58 @@
package com.jstyle.blesdk2301.model;
/**
* Created by Administrator on 2018/1/16.
*/
public class Notifier extends SendData{
public static final int Data_Tel=0;
public static final int Data_Sms=1;
public static final int Data_WeChat=2;
public static final int Data_Facebook=3;
public static final int Data_Instagram=4;
public static final int Data_Skype=5;
public static final int Data_Telegram=6;
public static final int Data_Twitter=7;
public static final int Data_Vkclient=8;
public static final int Data_WhatApp=9;
public static final int Data_QQ=10;
public static final int Data_IN=11;
public static final int Data_Stop_Tel=0xff;
int type;
String info="";
String title="";
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
@Override
public String toString() {
return "Notifier{" +
"type=" + type +
", info='" + info + '\'' +
", title='" + title + '\'' +
'}';
}
}

@ -0,0 +1,86 @@
package com.jstyle.blesdk2301.model;
/**
* 怀
* 280 7
*/
public class PregnancyCycle {
String address="";
String userId="";
String MenstrualPeriod_StartTime="1990-01-01";//经期开始时间 yyyy-MM-dd
String DueDateTime="";//预产期
long MenstrualPeriod_Period=30;//经期周期默认30天 21-35
public PregnancyCycle() {
}
public PregnancyCycle(String address, String userId,
String MenstrualPeriod_StartTime, String DueDateTime,
long MenstrualPeriod_Period) {
this.address = address;
this.userId = userId;
this.MenstrualPeriod_StartTime = MenstrualPeriod_StartTime;
this.DueDateTime = DueDateTime;
this.MenstrualPeriod_Period = MenstrualPeriod_Period;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getMenstrualPeriod_StartTime() {
return MenstrualPeriod_StartTime;
}
public void setMenstrualPeriod_StartTime(String menstrualPeriod_StartTime) {
MenstrualPeriod_StartTime = menstrualPeriod_StartTime;
}
public String getDueDateTime() {
return DueDateTime;
}
public void setDueDateTime(String dueDateTime) {
DueDateTime = dueDateTime;
}
public long getMenstrualPeriod_Period() {
return MenstrualPeriod_Period;
}
public void setMenstrualPeriod_Period(long menstrualPeriod_Period) {
MenstrualPeriod_Period = menstrualPeriod_Period;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "PregnancyCycle{" +
"address='" + address + '\'' +
", userId='" + userId + '\'' +
", MenstrualPeriod_StartTime='" + MenstrualPeriod_StartTime + '\'' +
", DueDateTime='" + DueDateTime + '\'' +
", MenstrualPeriod_Period=" + MenstrualPeriod_Period +
'}';
}
}

@ -0,0 +1,8 @@
package com.jstyle.blesdk2301.model;
/**
* Created by Administrator on 2018/4/8.
*/
public class SendData {
}

@ -0,0 +1,89 @@
package com.jstyle.blesdk2301.model;
/**
* Created by Administrator on 2018/1/16.
*/
public class SportPeriod extends SendData {
int startHour;
int startMinute;
int endHour;
int endMinute;
int week;
int days;
int intervalTime;
int leastStep;
boolean enable;
public boolean isEnable() {
return enable;
}
public void setEnable(boolean enable) {
this.enable = enable;
}
public int getStartHour() {
return startHour;
}
public void setStartHour(int startHour) {
this.startHour = startHour;
}
public int getStartMinute() {
return startMinute;
}
public void setStartMinute(int startMinute) {
this.startMinute = startMinute;
}
public int getEndHour() {
return endHour;
}
public void setEndHour(int endHour) {
this.endHour = endHour;
}
public int getEndMinute() {
return endMinute;
}
public void setEndMinute(int endMinute) {
this.endMinute = endMinute;
}
public int getWeek() {
return week;
}
public void setWeek(int week) {
this.week = week;
}
public int getIntervalTime() {
return intervalTime;
}
public void setIntervalTime(int intervalTime) {
this.intervalTime = intervalTime;
}
public int getLeastStep() {
return leastStep;
}
public void setLeastStep(int leastStep) {
this.leastStep = leastStep;
}
public int getDays() {
return days;
}
public void setDays(int days) {
this.days = days;
}
}

@ -0,0 +1,25 @@
package com.jstyle.blesdk2301.model;
/**
* Created by Administrator on 2018/4/9.
*/
public class StepModel extends SendData{
boolean stepState;//true开启实时计步false停止实时计步
public boolean isStepState() {
return stepState;
}
public void setStepState(boolean stepState) {
this.stepState = stepState;
}
@Override
public String toString() {
return "StepModel{" +
"stepState=" + stepState +
'}';
}
}

@ -0,0 +1,107 @@
package com.jstyle.blesdk2301.model;
/**
* Created by Administrator on 2022/2/18.
*/
public class UserInfo {
String phone="";
String name="";
String gender;//0男1女
String age="";//18
String height="";//175
String weight="";//75
String ecgTitle="";
String ecgReportTips="";
String date="";
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getHeight() {
return height;
}
public void setHeight(String height) {
this.height = height;
}
public String getWeight() {
return weight;
}
public void setWeight(String weight) {
this.weight = weight;
}
public String getEcgTitle() {
return ecgTitle;
}
public void setEcgTitle(String ecgTitle) {
this.ecgTitle = ecgTitle;
}
public String getEcgReportTips() {
return ecgReportTips;
}
public void setEcgReportTips(String ecgReportTips) {
this.ecgReportTips = ecgReportTips;
}
@Override
public String toString() {
return "UserInfo{" +
"phone='" + phone + '\'' +
", name='" + name + '\'' +
", gender='" + gender + '\'' +
", age='" + age + '\'' +
", height='" + height + '\'' +
", weight='" + weight + '\'' +
", ecgTitle='" + ecgTitle + '\'' +
", ecgReportTips='" + ecgReportTips + '\'' +
", date='" + date + '\'' +
'}';
}
}

@ -0,0 +1,49 @@
package com.jstyle.blesdk2301.model;
public class WeatherData {
int tempNow;
int tempHigh;
int tempLow;
String cityName="";
int weatherId;
public int getTempNow() {
return tempNow;
}
public void setTempNow(int tempNow) {
this.tempNow = tempNow;
}
public int getTempHigh() {
return tempHigh;
}
public void setTempHigh(int tempHigh) {
this.tempHigh = tempHigh;
}
public int getTempLow() {
return tempLow;
}
public void setTempLow(int tempLow) {
this.tempLow = tempLow;
}
public String getCityName() {
return cityName;
}
public void setCityName(String cityName) {
this.cityName = cityName;
}
public int getWeatherId() {
return weatherId;
}
public void setWeatherId(int weatherId) {
this.weatherId = weatherId;
}
}

@ -0,0 +1,264 @@
package com.jstyle.blesdk2301.model;
/**
*
*/
public class WomenHealth {
String userId="";
String address="";
String MenstrualPeriod_StartTime="1990-01-01";//经期开始时间 yyyy-MM-dd
long MenstrualPeriod_Lenth=7;//经期长度默认7天,2-8
long MenstrualPeriod_Period=30;//经期周期默认30天 21-35
long FlowRate=-1;//流量 -1没有数据 0-4等级
long Dysmenorrhea=-1;//痛经 -1没有数据 0-4等级
boolean Love=false;//爱爱
long mood=-1;//心情 -1没有数据 0-4等级
boolean start=false;//是否是第一个日期
boolean yuejinqi=false;//是否是月经期 经期七天
boolean yuceyuejinqi=false;//预测月经期 经期前3天
boolean yiyunqi=false;//是否是易孕期 经期七天后10天的日期
boolean yuceyiyunqi=false;//预测易孕期 易孕期前3天
boolean pailuanqi=false;//是否是排卵期 开始15后的一天
boolean up=false;//上升期还是下降器
boolean edidt=false;//是否被编辑过
int day=0;//每次循环的第几天
int[] Menstrual_symptoms = new int[32];//经期症状
public WomenHealth() {
}
public WomenHealth(String userId, String address,
String MenstrualPeriod_StartTime, long MenstrualPeriod_Lenth,
long MenstrualPeriod_Period, long FlowRate, long Dysmenorrhea,
boolean Love, long mood, boolean start, boolean yuejinqi,
boolean yuceyuejinqi, boolean yiyunqi, boolean yuceyiyunqi,
boolean pailuanqi, boolean up, boolean edidt, int day,
int[] Menstrual_symptoms) {
this.userId = userId;
this.address = address;
this.MenstrualPeriod_StartTime = MenstrualPeriod_StartTime;
this.MenstrualPeriod_Lenth = MenstrualPeriod_Lenth;
this.MenstrualPeriod_Period = MenstrualPeriod_Period;
this.FlowRate = FlowRate;
this.Dysmenorrhea = Dysmenorrhea;
this.Love = Love;
this.mood = mood;
this.start = start;
this.yuejinqi = yuejinqi;
this.yuceyuejinqi = yuceyuejinqi;
this.yiyunqi = yiyunqi;
this.yuceyiyunqi = yuceyiyunqi;
this.pailuanqi = pailuanqi;
this.up = up;
this.edidt = edidt;
this.day = day;
this.Menstrual_symptoms = Menstrual_symptoms;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public boolean isUp() {
return up;
}
public void setUp(boolean up) {
this.up = up;
}
public boolean isYuceyuejinqi() {
return yuceyuejinqi;
}
public void setYuceyuejinqi(boolean yuceyuejinqi) {
this.yuceyuejinqi = yuceyuejinqi;
}
public boolean isYuceyiyunqi() {
return yuceyiyunqi;
}
public void setYuceyiyunqi(boolean yuceyiyunqi) {
this.yuceyiyunqi = yuceyiyunqi;
}
public int getDay() {
return day;
}
public void setDay(int day) {
this.day = day;
}
public boolean isStart() {
return start;
}
public boolean isYuejinqi() {
return yuejinqi;
}
public void setYuejinqi(boolean yuejinqi) {
this.yuejinqi = yuejinqi;
}
public boolean isEdidt() {
return edidt;
}
public void setEdidt(boolean edidt) {
this.edidt = edidt;
}
public boolean isYiyunqi() {
return yiyunqi;
}
public void setYiyunqi(boolean yiyunqi) {
this.yiyunqi = yiyunqi;
}
public boolean isPailuanqi() {
return pailuanqi;
}
public void setPailuanqi(boolean pailuanqi) {
this.pailuanqi = pailuanqi;
}
public void setStart(boolean start) {
this.start = start;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getMenstrualPeriod_StartTime() {
return MenstrualPeriod_StartTime;
}
public void setMenstrualPeriod_StartTime(String menstrualPeriod_StartTime) {
MenstrualPeriod_StartTime = menstrualPeriod_StartTime;
}
public long getMenstrualPeriod_Lenth() {
return MenstrualPeriod_Lenth;
}
public void setMenstrualPeriod_Lenth(long menstrualPeriod_Lenth) {
MenstrualPeriod_Lenth = menstrualPeriod_Lenth;
}
public long getMenstrualPeriod_Period() {
return MenstrualPeriod_Period;
}
public void setMenstrualPeriod_Period(long menstrualPeriod_Period) {
MenstrualPeriod_Period = menstrualPeriod_Period;
}
public long getFlowRate() {
return FlowRate;
}
public void setFlowRate(long flowRate) {
FlowRate = flowRate;
}
public long getDysmenorrhea() {
return Dysmenorrhea;
}
public void setDysmenorrhea(long dysmenorrhea) {
Dysmenorrhea = dysmenorrhea;
}
public boolean isLove() {
return Love;
}
public void setLove(boolean love) {
Love = love;
}
public long getMood() {
return mood;
}
public void setMood(long mood) {
this.mood = mood;
}
public int[] getMenstrual_symptoms() {
return Menstrual_symptoms;
}
public void setMenstrual_symptoms(int[] menstrual_symptoms) {
Menstrual_symptoms = menstrual_symptoms;
}
public boolean getLove() {
return this.Love;
}
public boolean getStart() {
return this.start;
}
public boolean getYuejinqi() {
return this.yuejinqi;
}
public boolean getYiyunqi() {
return this.yiyunqi;
}
public boolean getPailuanqi() {
return this.pailuanqi;
}
public boolean getEdidt() {
return this.edidt;
}
public boolean getYuceyuejinqi() {
return this.yuceyuejinqi;
}
public boolean getYuceyiyunqi() {
return this.yuceyiyunqi;
}
public boolean getUp() {
return this.up;
}
}

@ -0,0 +1,17 @@
package com.jstyle.blesdk2301;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() throws Exception {
assertEquals(4, 2 + 2);
}
}

@ -1,4 +1,4 @@
include ':app'
include ':app', ':blesdk_2301'
def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()

@ -1,3 +1,5 @@
import 'dart:developer';
import 'package:diplomaticquarterapp/pages/medical/my_trackers/ble_device_type_screens/checkme_all_in_one_info_screen.dart';
import 'package:diplomaticquarterapp/pages/medical/my_trackers/ble_models/ble_devices_model.dart';
import 'package:diplomaticquarterapp/pages/medical/my_trackers/my_trackers_view_model/my_trackers_view_model.dart';
@ -30,6 +32,8 @@ class _SmartRingAllInOneConnectScreenState extends State<SmartRingAllInOneConnec
@override
void dispose() {
myTrackersVm.selectedAndesFitScanResult = null;
myTrackersVm.isAndesfitDeviceConnected = null;
myTrackersVm.disConnectAndesfitDevice(widget.deviceModel);
super.dispose();
}
@ -92,11 +96,11 @@ class _SmartRingAllInOneConnectScreenState extends State<SmartRingAllInOneConnec
}
}
Widget buildAllInOneUI(MyTrackersViewModel myTrackersViewModel) {
Widget buildSmartRingOperationsUI(MyTrackersViewModel myTrackersViewModel) {
return Expanded(
child: ListView(
children: [
if (myTrackersViewModel.checkMeProUsersList == null) ...[
if (myTrackersViewModel.isAndesfitDeviceConnected == null) ...[
Padding(
padding: const EdgeInsets.all(24.0),
child: Center(
@ -154,8 +158,8 @@ class _SmartRingAllInOneConnectScreenState extends State<SmartRingAllInOneConnec
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
buildAllInOneUI(myTrackersViewModel),
if (myTrackersViewModel.checkMeProUsersList != null) ...[
buildSmartRingOperationsUI(myTrackersViewModel),
if (myTrackersViewModel.isAndesfitDeviceConnected != null && myTrackersViewModel.isAndesfitDeviceConnected) ...[
Row(
children: [
Expanded(

@ -30,15 +30,12 @@ class BLEUtils {
static const String WEIGHT_MEASUREMENT_CHARACTERISTIC_FFF3 = "0000fff3-0000-1000-8000-00805f9b34fb";
static const String WEIGHT_MEASUREMENT_SERVICE = "0000fff0-0000-1000-8000-00805f9b34fb";
//CheckMe Pro AllInOne
static const String ALL_IN_ONE_SERVICE = "14839ac4-7d7e-415c-9a42-167340cf2339"; //
static const String ALL_IN_ONE_READ_CHARACTERISTIC = "0734594A-A8E7-4B1A-A6B1-CD5243059A57"; //49535343-1e4d-4bd9-ba61-23c647249616
static const String ALL_IN_ONE_WRITE_CHARACTERISTIC = "8B00ACE7-EB0B-49B0-BBE9-9AEE0A26E1A3"; //49535343-8841-43f4-a8d4-ecbe34729bb3
// public static final UUID service_uuid= UUID.fromString("14839ac4-7d7e-415c-9a42-167340cf2339");
// public static final UUID write_uuid =UUID.fromString("8B00ACE7-EB0B-49B0-BBE9-9AEE0A26E1A3");
// public static final UUID notify_uuid= UUID.fromString("0734594A-A8E7-4B1A-A6B1-CD5243059A57");
// public static final UUID service_uuid= UUID.fromString("14839ac4-7d7e-415c-9a42-167340cf2339");
// public static final UUID write_uuid =UUID.fromString("8B00ACE7-EB0B-49B0-BBE9-9AEE0A26E1A3");
// public static final UUID notify_uuid= UUID.fromString("0734594A-A8E7-4B1A-A6B1-CD5243059A57");
}

Loading…
Cancel
Save