HeartBeatRate/Software/dashboard/lib/hal/X9C10X.dart

69 lines
1.5 KiB
Dart

import 'package:dart_periphery/dart_periphery.dart';
import 'package:logging/logging.dart';
import 'dart:io';
class X9c10x {
final int _id;
//final int _ohm;
final GPIO _inc;
final GPIO _ud;
final GPIO? _ss;
final _log = Logger("X9C10X");
final Function(int)? _onSelect;
final Function(int)? _onRelease;
X9c10x({
required int id,
required int ohm,
required GPIO inc,
required GPIO ud,
GPIO? ss,
dynamic Function(int)? onSelect,
dynamic Function(int)? onRelease,
}) : _onRelease = onRelease, _onSelect = onSelect, _ss = ss, _ud = ud, _inc = inc, _id = id;
void _selectChip(){
_onSelect?.call(_id);
_ss?.write(false);
_log.info("_selectChip() <$_id>");
}
void _releaseChip(){
_log.info("_releaseChip() <$_id>");
_ss?.write(true);
_onRelease?.call(_id);
}
void _skip()=>sleep(const Duration(milliseconds: 3));
void _storeSkip()=>sleep(const Duration(milliseconds: 20));
Future<void> wipeUp() async {
_log.info("wipeUp()");
_selectChip();
_ud.write(true);
_skip();
_inc.write(false);
_skip();
_inc.write(true);
_releaseChip();
_storeSkip();
}
Future<void> wipeDown() async {
_log.info("wipeDown()");
_selectChip();
_ud.write(false);
_skip();
_inc.write(false);
_skip();
_inc.write(true);
_releaseChip();
_storeSkip();
}
void dispose(){
_inc.dispose();
_ud.dispose();
_ss?.dispose();
}
}