HeartBeatRate/Software/dashboard/lib/hardware/heartbeatmice.dart

69 lines
1.7 KiB
Dart
Raw Normal View History

2024-09-15 18:06:05 +07:00
import 'package:dashboard/hal/X9C10X.dart';
import 'package:logging/logging.dart';
2024-09-15 18:06:05 +07:00
import '../hal/ads1256.dart';
2024-09-02 09:47:21 +07:00
class HeartBeatMice {
Ads1256 adc1 = Ads1256(tag: "adc1",
spiBus: 1,
spiChip: 0,
gpioChip: 1,
pinDrdy: 202,
pinCS: 13,
isCSActiveHigh: false,
pinReset: 20);
Ads1256 adc2 = Ads1256(tag: "adc2",
spiBus: 1,
spiChip: 0,
gpioChip: 1,
pinDrdy: 6,
pinCS: 21,
isCSActiveHigh: false,
/*pinReset: 20*/);
2024-09-15 18:06:05 +07:00
X9c10x pot = X9c10x(ohm: 104000, gpioChip: 1, pinUd: 204, pinInc: 205);
Logger log = Logger("[HeartBeatMice]");
2024-09-15 18:06:05 +07:00
void potSelect(){
}
void potRelease(){
}
void init(){
adc1.begin(Ads1256.DRATE_500SPS, Ads1256.GAIN_1, true);
adc2.begin(Ads1256.DRATE_500SPS, Ads1256.GAIN_1, true);
2024-09-15 18:06:05 +07:00
adc1.ioDir = [Ads1256.IO_DIR_OUT, Ads1256.IO_DIR_OUT, Ads1256.IO_DIR_OUT, Ads1256.IO_DIR_OUT];
adc2.ioDir = [Ads1256.IO_DIR_OUT, Ads1256.IO_DIR_OUT, Ads1256.IO_DIR_OUT, Ads1256.IO_DIR_OUT];
}
int readAnalog(int no){
var adc = switch (no) {
1 || 2 || 3 || 4 || 9 || 10 || 11 || 12 =>adc2,
5 || 6 || 7 || 8 || 13 || 14 || 15 || 16 || _ =>adc1,
};
var ain = switch (no) {
1 || 15=>Ads1256.MUXP_AIN0,
2 || 14=>Ads1256.MUXP_AIN1,
13=>Ads1256.MUXP_AIN2,
8=>Ads1256.MUXP_AIN3,
12=>Ads1256.MUXP_AIN4,
4 || 6 || 11=>Ads1256.MUXP_AIN5,
3 || 5 || 10=>Ads1256.MUXP_AIN6,
7 || 9 || 16=>Ads1256.MUXP_AIN7,
_=>Ads1256.MUXP_AINCOM
};
log.info('readAnalog() <$no>');
log.info('> adc : <${adc.log.name}> | ain : <${ain.toRadixString(16)}> ');
var r = adc.analogRead(ain, Ads1256.MUXN_AINCOM);
log.info('> $r');
return r;
2024-09-15 18:06:05 +07:00
}
void dispose(){
2024-09-15 18:06:05 +07:00
adc1.dispose();
adc2.dispose();
pot.dispose();
2024-09-02 09:47:21 +07:00
}
}