flutter_edflib
Credits
This is just updated version of original package dartedflib which implied that libEDF must be bundled to or deployed with the host application.
Features
A wrapper library around EDFLib v1.27 inspired by pyEDFlib v0.1.28 to read/write EDF+ files. The definition of the EDF/EDF+/BDF/BDF+ format can be found under edfplus.info.
This package uses dart:ffi to call libEDF's C APIs, which implies that libEDF must be bundled to or deployed with the host application.
Installation
Add flutter_edflib to pubspec.yaml:
dependencies:
flutter_edflib: ^0.1.0
Usage
import 'package:flutter_edflib/flutter_edflib.dart';
final writer = EdfWriter(fileName: filePath, numberOfChannels: 2);
final channel1headers = {
'label': 'channel1',
'sample_frequency': 125,
'physical_max': 255.0,
'physical_min': 0.0,
'digital_max': 255,
'digital_min': 0,
};
final channel2headers = {
'label': 'channel2',
'sample_frequency': 1,
'physical_max': 255.0,
'physical_min': 0.0,
'digital_max': 255,
'digital_min': 0,
};
writer.setSignalHeader(0, channel1headers);
writer.setSignalHeader(1, channel2headers);
final seconds = 5;
final channel1data = List<double>.filled(channel1headers['sample_frequency'] * seconds, 0.1);
final channel2data = List<double>.filled(channel2headers['sample_frequency'] * seconds, 1.0);
try {
writer.writeSamples([channel1data, channel2data]);
} finally {
// don't forget to close it!
writer.close();
}
Additional information
Regenerating bindings.dart
Make sure you have installed LLVM as described in ffigen.
If you want to upgrade to a later version of EDFLib, replace src/edflib.h and src/edflib.c with a newer version and run the task.
dart run ffigen --config ffigen.yaml