setProbeInfo method
开始工作(设置信息) 使用UUID(elinkWriteAndNotifyUuid: FFE3)的特征值写入 Write using the characteristic value of UUID(elinkWriteAndNotifyUuid: FFE3)
Implementation
List<int> setProbeInfo(ElinkProbeInfo probeInfo) {
final payload = List.filled(128, 0x00);
payload[0] = 0x35;
int index = 1;
payload[index++] = 0x01;
payload[index++] = 0x01;
final id = ElinkCmdUtils.intToBytes(probeInfo.id ~/ 1000);
payload.setAll(index, id);
index += id.length;
payload[index++] = probeInfo.foodType;
payload[index++] = probeInfo.foodRawness;
final targetTempCelsius = ElinkCmdUtils.intToBytes(probeInfo.targetTempCelsius, length: 2);
payload.setAll(index, targetTempCelsius);
index += targetTempCelsius.length;
final targetTempFahrenheit = ElinkCmdUtils.intToBytes(probeInfo.targetTempFahrenheit, length: 2);
payload.setAll(index, targetTempFahrenheit);
index += targetTempFahrenheit.length;
final lowerTempLimitCelsius = ElinkCmdUtils.intToBytes(probeInfo.lowerTempLimitCelsius, length: 2);
payload.setAll(index, lowerTempLimitCelsius);
index += lowerTempLimitCelsius.length;
final lowerTempLimitFahrenheit = ElinkCmdUtils.intToBytes(probeInfo.lowerTempLimitFahrenheit, length: 2);
payload.setAll(index, lowerTempLimitFahrenheit);
index += lowerTempLimitFahrenheit.length;
final upperTempLimitCelsius = ElinkCmdUtils.intToBytes(probeInfo.upperTempLimitCelsius, length: 2);
payload.setAll(index, upperTempLimitCelsius);
index += upperTempLimitCelsius.length;
final upperTempLimitFahrenheit = ElinkCmdUtils.intToBytes(probeInfo.upperTempLimitFahrenheit, length: 2);
payload.setAll(index, upperTempLimitFahrenheit);
index += upperTempLimitFahrenheit.length;
final alarmTempPercent = ElinkCmdUtils.doubleToBytes(probeInfo.alarmTempPercent ?? 0.8);
payload.setAll(index, alarmTempPercent);
index += alarmTempPercent.length;
final timerStart = ElinkCmdUtils.intToBytes((probeInfo.timerStart ?? 0) ~/ 1000);
payload.setAll(index, timerStart);
index += timerStart.length;
final timerEnd = ElinkCmdUtils.intToBytes((probeInfo.timerEnd ?? 0) ~/ 1000);
payload.setAll(index, timerEnd);
index += timerEnd.length;
payload[index++] = probeInfo.currentUnit;
return ElinkCmdUtils.getElinkA6Data(payload);
}