sensor_link_package 0.0.2 copy "sensor_link_package: ^0.0.2" to clipboard
sensor_link_package: ^0.0.2 copied to clipboard

A Flutter package for connecting to Bluetooth devices using MAC address and reading data

example/lib/main.dart

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

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(title: 'Bluetooth Temperature Sensor Demo', theme: ThemeData(primarySwatch: Colors.blue, useMaterial3: true), home: const BluetoothDemo());
  }
}

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

  @override
  State<BluetoothDemo> createState() => _BluetoothDemoState();
}

class _BluetoothDemoState extends State<BluetoothDemo> {
  late final SensorDeviceManager _sensorManager;
  late final TextEditingController _macController;

  bool _isConnected = false;
  String _statusMessage = '연결되지 않음';
  SensorData? _sensorData;

  @override
  void initState() {
    super.initState();
    _sensorManager = SensorDeviceManager();
    _macController = TextEditingController(text: '');
    _setupListeners();
  }

  void _setupListeners() {
    _sensorManager.connectionStream.listen((state) {
      if (!mounted) return;
      setState(() {
        _isConnected = state.isConnected;
        _statusMessage = state.isConnected ? '${state.deviceAddress}에 연결됨' : state.errorMessage ?? '연결되지 않음';
      });
    });

    _sensorManager.dataStream.listen((sensorData) {
      setState(() {
        _sensorData = sensorData;
      });
    });
  }

  Future<void> _connect() async {
    try {
      bool success = await _sensorManager.connectToSensor(_macController.text.trim());

      if (!success) {
        print('연결에 실패했습니다');
      }
    } catch (e) {
      print('연결 오류: $e');
    }
  }

  Future<void> _disconnect() async {
    try {
      await _sensorManager.disconnect();
    } catch (e) {
      print('연결 해제 오류: $e');
    }
  }

  @override
  void dispose() {
    _sensorManager.disconnect();
    _macController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('온/습도계 연결')),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          children: [
            TextField(controller: _macController, decoration: const InputDecoration(labelText: '온/습도계 MAC 주소', border: OutlineInputBorder(), hintText: '예: 11:22:33:44:55:66'), enabled: !_isConnected),
            const SizedBox(height: 20),
            Text(_statusMessage),
            const SizedBox(height: 20),
            Text('$_sensorData'),
            ElevatedButton(onPressed: _isConnected ? _disconnect : _connect, child: Text(_isConnected ? '연결 해제' : '연결')),
          ],
        ),
      ),
    );
  }
}
0
likes
0
points
23
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter package for connecting to Bluetooth devices using MAC address and reading data

Homepage

License

unknown (license)

Dependencies

flutter, flutter_blue_plus, permission_handler

More

Packages that depend on sensor_link_package