esense 0.1.3+1 copy "esense: ^0.1.3+1" to clipboard
esense: ^0.1.3+1 copied to clipboard

discontinued

The eSense Flutter Plugin supporting the eSense ear plugs from Nokia Bell Labs, Cambridge.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'dart:async';

import 'package:flutter/services.dart';
import 'package:esense/esense.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String _deviceName = 'Unknown';
  int _voltage = -1;
  bool _deviceConnecting, _deviceConnected;
  bool sampling = false;
  String _event;

  // the name of the eSense device to connect to -- change this to your own device.
  String eSenseName = 'eSense-0332';

  @override
  void initState() {
    super.initState();
    setupESense();
  }

  Future<void> setupESense() async {
    bool con = false;

    // if you want to get the connection events when connecting, set up the listener BEFORE connecting...
    ESenseManager.connectionEvents.listen((event) {
      print('CONNECTION event: $event');

      setState(() {
        _deviceConnected = ESenseManager.connected;
      });
    });

    con = await ESenseManager.connect(eSenseName);

    setState(() {
      _deviceConnecting = con;
    });
  }

  void _getESenseInfo() async {
    ESenseManager.eSenseEvents.listen((event) {
      print('ESENSE event: $event');

      setState(() {
        switch (event.runtimeType) {
          case DeviceNameRead:
            _deviceName = (event as DeviceNameRead).deviceName;
            break;
          case BatteryRead:
            _voltage = (event as BatteryRead).voltage;
            break;
        }
      });
    });

    print('getDeviceName: ${await ESenseManager.getDeviceName()}');
    print('getBatteryVoltage: ${await ESenseManager.getBatteryVoltage()}');

    ESenseManager.getDeviceName();
    ESenseManager.getBatteryVoltage();
    ESenseManager.getAccelerometerOffset();
    ESenseManager.getAdvertisementAndConnectionInterval();
    ESenseManager.getSensorConfig();
  }

  StreamSubscription subscription;
  void _startListenToSensor() async {
    subscription = ESenseManager.sensorEvents.listen((event) {
      print('SENSOR event: $event');
      setState(() {
        sampling = true;
        _event = event.toString();
      });
    });
    setState(() {
      sampling = true;
    });
  }

  void _stopListenToSensor() async {
    subscription.cancel();
    setState(() {
      sampling = false;
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('eSense Example App'),
        ),
        body: Align(
          alignment: Alignment.topLeft,
          child: Column(
            children: [
              Text('eSense Device Connecting: $_deviceConnecting'),
              Text('eSense Device Connected: $_deviceConnected'),
              Text('eSense Device Name: $_deviceName'),
              Text('eSense Battery Level: $_voltage'),
              Text('$_event'),
            ],
          ),
        ),
        floatingActionButton: new FloatingActionButton(
          // a floating button that starts/stops listening to sensor events.
          // is disabled until we're connected to the device.
          onPressed: (!ESenseManager.connected) ? null : (!sampling) ? _startListenToSensor : _stopListenToSensor,
          tooltip: 'Listen to eSense sensors',
          child: (!sampling) ? Icon(Icons.play_arrow) : Icon(Icons.stop),
        ),
      ),
    );
  }
}
0
likes
25
points
4
downloads

Publisher

unverified uploader

Weekly Downloads

The eSense Flutter Plugin supporting the eSense ear plugs from Nokia Bell Labs, Cambridge.

License

MIT (license)

Dependencies

flutter

More

Packages that depend on esense

Packages that implement esense