dataAnalyze method
Implementation
dynamic dataAnalyze(BluetoothData data) {
MyFhrData? fhr;
switch (data.dataType) {
case 1:
decodeData(ADPCM().decodeAdpcm(data));
//decodeData(data.mValue.sublist(3, 103));
break;
case 2:
fhr = MyFhrData();
fhr.fhr1 = data.mValue[3] & 0xFF;
fhr.fhr2 = data.mValue[4] & 0xFF;
fhr.toco = data.mValue[5];
fhr.afm = data.mValue[6];
fhr.fhrSignal = (data.mValue[7] & 3);
fhr.afmFlag = ((data.mValue[7] & 4) != 0 ? 1 : 0);
fhr.devicePower = (data.mValue[8] & 15);
fhr.isHaveFhr1 = ((data.mValue[8] & 16) != 0 ? 1 : 0);
fhr.isHaveFhr2 = ((data.mValue[8] & 32) != 0 ? 1 : 0);
fhr.isHaveToco = ((data.mValue[8] & 64) != 0 ? 1 : 0);
fhr.isHaveAfm = ((data.mValue[8] & 128) != 0 ? 1 : 0);
return fhr;
case 3:
int checkSum = 0;
for (int index = 0; index < 11; ++index) {
checkSum += data.mValue[index];
}
checkSum = checkSum & 0xFF;
if (checkSum == data.mValue[11]) {
int index = (0xFF & data.mValue[3]) + ((data.mValue[4] & 0xFF) << 8);
// if (!monState) {
// reSendStartOrStopCmd(false);
// } else {
// rePlyAckMonIndex(index);
// }
// if (monCount != index) {
// monCount = index + 1;
// } else {
// monCount = index + 1;
fhr = MyFhrData();
fhr.fhr1 = data.mValue[5] & 0xFF;
fhr.fhr2 = data.mValue[6] & 0xFF;
fhr.toco = data.mValue[7];
fhr.afm = data.mValue[8];
fhr.fhrSignal = (data.mValue[9] & 3);
fhr.afmFlag = ((data.mValue[9] & 4) != 0 ? 1 : 0);
fhr.devicePower = (data.mValue[10] & 15);
fhr.isHaveFhr1 = ((data.mValue[10] & 16) != 0 ? 1 : 0);
fhr.isHaveFhr2 = ((data.mValue[10] & 32) != 0 ? 1 : 0);
fhr.isHaveToco = ((data.mValue[10] & 64) != 0 ? 1 : 0);
fhr.isHaveAfm = ((data.mValue[10] & 128) != 0 ? 1 : 0);
_dataStreamController.add(fhr);
// if (getFM()) {
// fhr.fmFlag = 1;
// }
//
// if (getToco()) {
// fhr.tocoFlag = 1;
// }
//
// if (getDocMark()) {
// fhr.docFlag = 1;
// }
//
// if (mLMTPDecoderListener != null) {
// mLMTPDecoderListener.fhrDataChanged(fhr);
// }
// }
}
break;
case 4:
Int16List value = Int16List(200);
ADPCM().decodeAdpcmFor10Or12BitAnd100ms(value, 0, data.mValue, 3, 100,
data.mValue[104], data.mValue[105], data.mValue[106], 10);
decodeData(value);
// if (mLMTPDecoderListener != null) {
// mLMTPDecoderListener.fhrAudioChanged(value);
// }
break;
case 5:
// clearStartOrStopCmd();
// needLoopTranslate = true;
// monCount = 0;
break;
case 6:
print("case 6");
// clearStartOrStopCmd();
// needLoopTranslate = false;
// monCount = 0;
break;
}
}