healthrian_mqtt_support 2.1.5 copy "healthrian_mqtt_support: ^2.1.5" to clipboard
healthrian_mqtt_support: ^2.1.5 copied to clipboard

unlisted

A Very Good Project created by Very Good CLI.

example/lib/main.dart

import 'dart:async';

import 'package:flutter/material.dart';
import 'package:healthrian_mqtt_support/healthrian_mqtt_support.dart';
import 'package:mqtt_client/mqtt_client.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  /// bootstrap
  await mqtt.waitForCompletion();
  mqtt.ip = '112.222.235.52';
  mqtt.id = 'test';
  mqtt.pw = 'test';
  mqtt.connect();
  runApp(const MyApp());
}

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

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: Column(
        children: [
          Expanded(child: MyHomePage(topic: 'topic')),
          Expanded(child: MyHomePage(topic: 'topic/#')),
          // Expanded(child: MyHomePage(topic: 'HEH001/5019')),
          // Expanded(child: MyHomePage(topic: 'HEH001/5020')),
        ],
      ),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.topic});

  final String topic;

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

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          children: [
            StreamBuilder(
              stream: widget.topic.flattens,
              builder: (context, snapshot) {
                if (!snapshot.hasData) {
                  return Text('Wait for the subscription from ${widget.topic}');
                }
                final c = snapshot.data;
                final recMess = c!.payload as MqttPublishMessage;
                return Text((recMess, DateTime.now()).toString());
              },
            ),
          ],
        ),
      ),
      floatingActionButton: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          FloatingActionButton(onPressed: mqtt.reconnect),
          FloatingActionButton(onPressed: () => widget.topic.publishMessage([1, 2, 3, 4])),
          FloatingActionButton(onPressed: widget.topic.subscribe),
          FloatingActionButton(onPressed: widget.topic.unsubscribe),
          FloatingActionButton(onPressed: () => setState(() {})),
        ],
      ),
    );
  }
}
2
likes
110
points
59
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A Very Good Project created by Very Good CLI.

License

MIT (license)

Dependencies

dart_mqtt, device_info_plus, flutter, healthrian_ble_interface, healthrian_utility_support, healthrian_visualization_support, mobx, mqtt_client, rxdart, uuid

More

Packages that depend on healthrian_mqtt_support