You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
diplomatic-quarter/lib/pages/medical/my_trackers/viatom_devices/oxymeter_ble.dart

117 lines
3.4 KiB
Dart

import 'package:diplomaticquarterapp/viatom_ble/ble_connect.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
class Oxymeter_BLE extends StatefulWidget {
@override
State<Oxymeter_BLE> createState() => _Oxymeter_BLEState();
}
class _Oxymeter_BLEState extends State<Oxymeter_BLE> {
EventChannel eventChannel = EventChannel('BLE-Platform-Bridge-Event');
String receivedData = '';
final oxymeterValueNotifier = ValueNotifier<String>("start");
@override
void dispose() {
oxymeterValueNotifier.dispose();
super.dispose();
}
@override
void initState() {
// TODO: implement initState
super.initState();
eventChannel.receiveBroadcastStream().listen((event) {
print('Received event---: $event');
oxymeterValueNotifier.value = event;
});
}
@override
Widget build(BuildContext context) {
return AppScaffold(
appBarTitle: "Oxymeter",
showNewAppBar: true,
isShowDecPage: true,
showNewAppBarTitle: true,
backgroundColor: Color(0xffF8F8F8),
body: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Center(
child: GestureDetector(
onTap: () async {
await BleChannel.getScanningResult();
},
child: Container(
width: 50,
height: 50,
color: Colors.blueAccent,
),
),
),
ValueListenableBuilder(
valueListenable: oxymeterValueNotifier,
builder: (context, value, _) {
return value != "start"
? Column(
children: [
Text(
getSPO2(
value.toString().replaceAll("RtParam", ""),
),
),
Text(
getPR(
value.toString().replaceAll("RtParam", ""),
),
),
Text(
getPI(
value.toString().replaceAll("RtParam", ""),
),
),
],
)
: Text(value);
},
),
],
),
),
);
}
String getSPO2(String value) {
return "SpO2: " + value.split(",")[0].replaceAll("{spo2=", "");
}
String getPR(String value) {
return "Pulse Rate: " + value.split(",")[1].replaceAll("pr=", "");
}
String getPI(String value) {
return "Perfusion Index: " + value.split(",")[2].replaceAll("pi=", "") + "%";
}
// List<String> setResult(String value) {
// List<String> values = value.split(",");
//
// print(values[0].replaceAll("{spo2=", ""));
// print(values[1].replaceAll("pr=", ""));
// print(values[2].replaceAll("pi=", ""));
//
// values.clear();
// values.add(values[0].replaceAll("{spo2=", ""));
// values.add(values[1].replaceAll("pr=", ""));
// values.add(values[2].replaceAll("pi=", ""));
//
// return values;
// }
}