import 'package:flutter/material.dart'; import 'util/mouse_cursor.dart'; import 'package:dart_periphery/dart_periphery.dart'; import 'dart:io'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); // This widget is the root of your application. @override Widget build(BuildContext context) { return SoftwareMouseCursor( child : MaterialApp( title: 'Heart Beat Mice', theme: ThemeData( colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), useMaterial3: true, ), home: const MyHomePage(title: 'Heart Beat Mice'), ) ); } } class MyHomePage extends StatefulWidget { const MyHomePage({super.key, required this.title}); final String title; @override State createState() => _MyHomePageState(); } class _MyHomePageState extends State { int _counter = 0; var config, gpio, spi; @override void initState(){ super.initState(); spi = SPI(1, 0, SPImode.mode0, 100000); config = GPIOconfig.defaultValues(); config.direction = GPIOdirection.gpioDirOut; gpio = GPIO(2, GPIOdirection.gpioDirOut, 1); print("SPI info: ${spi.getSPIinfo()}"); } @override void dispose(){ super.dispose(); gpio.dispose(); spi.dispose(); } void _incrementCounter() { setState(() { _counter++; }); gpio.write(_counter.isOdd); spi.transfer([0, 1, 2, 3, 4, 5, 6, 7], false); print("gpio.write : $_counter.isOdd"); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( backgroundColor: Theme.of(context).colorScheme.inversePrimary, title: Text(widget.title), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ const Text( 'You have pushed the button this many times:', ), Text( '$_counter', style: Theme.of(context).textTheme.headlineMedium, ), ], ), ), floatingActionButton: FloatingActionButton( onPressed: _incrementCounter, tooltip: 'Increment', child: const Icon(Icons.add), ), ); } }