healthrian_visualization_support 2.2.0 copy "healthrian_visualization_support: ^2.2.0" to clipboard
healthrian_visualization_support: ^2.2.0 copied to clipboard

unlisted

Healthrian visualization support library

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:healthrian_ble_support_for_cardio_em_cdc/healthrian_ble_support_for_cardio_em_cdc.dart';
import 'package:healthrian_visualization_support/healthrian_visualization_support.dart';
import 'package:rxdart/rxdart.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key});

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final module = BLEManager().module;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          children: [
            ConnectionMonitor(module: module),
            HeartRateMonitor(module: module),
            LeadstateMonitor(module: module),
            Observer(
              builder: (context) => StreamBuilder(
                stream: module.ble.streams.ecg.meta.raw?.scan(
                      (acc, v, i) {
                    if ((acc.$2 + 1) % 0x100 != v[2]) print((acc.$2, v[2], DateTime.now()));
                    return ((acc.$2 + 1) % 0x100 == v[2], v[2]);
                  },
                  (false, -1),
                ),
                builder: (context, snapshot) {
                  return Text(snapshot.data.toString());
                },
              ),
            ),
            Expanded(
              child: SingleChildScrollView(
                child: EcgMonitor(module: module),
              ),
            ),
          ],
        ),
      ),
      floatingActionButton: ControlPanel(module: module),
    );
  }
}