| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- import 'package:pedometer/pedometer.dart';
- import '../../../appcore/exercise.dart';
- import '../app.dart';
- import '../sport_wear.dart';
- import 'plug.dart';
- import 'package:get/get.dart';
- class PlugSportWear extends Plug {
- Exercise? _exercise;
- final SportWearService _sportWearService = Get.find();
- final _app = App.to;
- var _initStepCount = -1;
- void start(){
- heartRate.value=0;
- heartRatePercent.value=0;
- ei .value=0;
- ck .value=0;
- kCal.value=0;
- exerciseKcal.value=0;
- hrMean .value=0;
- hrMax.value=0;
- stepCount .value=0;
- _exercise?.close();
- _exercise=null;
- _initExercise();
- _isStart=true;
- }
- void stop(){
- _isStart=false;
- }
- Future<void> _initExercise()async{
- final exercise = Exercise();
- await exercise.init();
- final userProfile = _app.userProfile;
- await exercise.set(
- age: userProfile.age.val,
- sex: userProfile.sex,
- weightKg: userProfile.weightKg.val,
- heightCm: userProfile.heightCm.val,
- rhr: userProfile.rhr.val.toDouble());
- _exercise = exercise;
- }
- @override
- Future<void> init() async{
- await _initExercise();
- listenRx(_sportWearService.heartRateMeasurement, (p0) {
- heartRate.value = p0.heartRate;
- _exercise?.hrPercent(p0.heartRate).then((value) => heartRatePercent.value = value);
- if(_isStart){
- _exercise?.hrPush(p0.heartRate, p0.timestamp).then((value){
- _exercise?.ei().then((v) => ei.value = v);
- _exercise?.ck().then((v) => ck.value = v);
- _exercise?.kCal().then((v) => kCal.value = v);
- _exercise?.exerciseKcal().then((v) => exerciseKcal.value = v);
- _exercise?.hrMax().then((v) => hrMax.value = v);
- _exercise?.hrMean().then((v) => hrMean.value = v);
- });
- }
- });
- final stream = Pedometer.stepCountStream;
- stepCount.bindStream(stream.map((event){
- if(!_isStart){
- return 0;
- }
- if(_initStepCount == -1){
- _initStepCount = event.steps;
- return 0;
- }
- final stepCount = event.steps - _initStepCount;
- return stepCount;
- }));
- }
- @override
- Future<void> onClose() async{
- _exercise?.close();
- _exercise=null;
- }
- var _isStart=false;
- final heartRate = 0.obs;
- final heartRatePercent = 0.0.obs;
- final ei = 0.0.obs;
- final ck = 0.0.obs;
- final kCal = 0.0.obs;
- final exerciseKcal = 0.0.obs;
- final hrMean = 0.obs;
- final hrMax = 0.obs;
- final stepCount = 0.obs;
- }
|