nimmsta 1.0.1 copy "nimmsta: ^1.0.1" to clipboard
nimmsta: ^1.0.1 copied to clipboard

PlatformAndroid

A Flutter plugin for the Android NIMMSTA Core Library based on https://docs.nimmsta.com

example/lib/main.dart

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

import 'package:nimmsta/nimmsta.dart';
import 'package:nimmsta/nimmsta_event.dart';

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

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

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  final _nimmstaPlugin = Nimmsta();

  final layout = """<?xml version="1.0" encoding="utf-8"?>
<NimmstaLayout name="updating">
    <device width="1.54" height="1.54" pxx="200" pxy="200">
        <screen default="true" name="default">
            <staticElements>
                <cell name="title">Default Title</cell>
                <cell name="subtitle">Default Subtitle</cell>
            </staticElements>
        </screen>
    </device>
</NimmstaLayout>""";

  bool isConnected = false;

  String connectedDevice = "Not Connected";

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

  Future<void> initPlatformState() async {
    _nimmstaPlugin.nimmstaPlugin
        .getCallbackStream()
        .listen((NimmstaEvent event) {
      switch (event.type) {
        case NimmstaEventType.didScanBarcode:
          debugPrint("Event: Did scan barcode: ${event.data?["barcode"]}");
          break;

        case NimmstaEventType.batteryLevelChanged:
          debugPrint("Event: Battery level changed");
          break;

        case NimmstaEventType.didClickButton:
          debugPrint("Event: Did click button}");
          break;

        case NimmstaEventType.didDisconnect:
          debugPrint("Event: Did diconnect");

          setState(() {
            isConnected = false;
            connectedDevice = "Not Connected";
          });

          break;

        case NimmstaEventType.didConnectAndInit:
          debugPrint("Event: Did connect and init");

          setState(() {
            isConnected = true;
            connectedDevice = event.data?["device"];
          });

          break;

        case NimmstaEventType.didReconnectAndInit:
          debugPrint("Event: Did reconect and init");

          setState(() {
            isConnected = true;
            connectedDevice = event.data?["device"];
          });

          break;

        case NimmstaEventType.didReceiveEvent:
          debugPrint("Event: Did receive event");
          break;

        case NimmstaEventType.didTouch:
          debugPrint(
              "Event: Did touch x: ${event.data?["x"]} y: ${event.data?["y"]}");
          break;
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Center(
          child: Column(
            children: [
              Row(
                mainAxisAlignment: MainAxisAlignment.center,
                children: [Text("Connected Device: "), Text(connectedDevice)],
              ),
              TextButton(
                  onPressed: () async {
                    bool? isConnected = await _nimmstaPlugin.isConnected();

                    setState(() {
                      this.isConnected = isConnected ?? false;
                    });
                  },
                  child: Text("Is Connected")),
              TextButton(
                  onPressed: () async {
                    await _nimmstaPlugin.connect();
                  },
                  child: Text("Connect")),
              TextButton(
                  onPressed: () async {
                    await _nimmstaPlugin.reconnect("");
                  },
                  child: Text("Reconnect")),
              TextButton(
                  onPressed: isConnected
                      ? () async {
                          await _nimmstaPlugin.disconnect();
                        }
                      : null,
                  child: Text("Disconnect")),
              TextButton(
                  onPressed: isConnected
                      ? () async {
                          await _nimmstaPlugin.setLayout(layout, {});
                        }
                      : null,
                  child: Text("SetLayout")),
              TextButton(
                  onPressed: isConnected
                      ? () async {
                          await _nimmstaPlugin.setScreenInfoAsync(
                              {"title": "Nimmsta Flutter Plugin"});
                        }
                      : null,
                  child: Text("SetScreenInfoAsync")),
              TextButton(
                  onPressed: isConnected
                      ? () async {
                          await _nimmstaPlugin.setLEDColor(Colors.blue);
                        }
                      : null,
                  child: Text("SetLEDColor")),
              TextButton(
                  onPressed: isConnected
                      ? () async {
                          await _nimmstaPlugin.triggerLEDBurst(
                              2, 250, 400, Colors.red);
                        }
                      : null,
                  child: Text("TriggerLEDBurst")),
              TextButton(
                  onPressed: isConnected
                      ? () async {
                          await _nimmstaPlugin.triggerVibrationBurst(
                              3, 500, 250, 100);
                        }
                      : null,
                  child: Text("TriggerVibrationBurst")),
              TextButton(
                  onPressed: isConnected
                      ? () async {
                          await _nimmstaPlugin.triggerBeeperBurst(
                              5, 500, 250, 25);
                        }
                      : null,
                  child: Text("TriggerBeeperBurst"))
            ],
          ),
        ),
      ),
    );
  }
}
3
likes
160
points
8
downloads

Publisher

verified publisherpyck.ai

Weekly Downloads

A Flutter plugin for the Android NIMMSTA Core Library based on https://docs.nimmsta.com

Homepage
Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on nimmsta

Packages that implement nimmsta