gpiod 0.1.0 copy "gpiod: ^0.1.0" to clipboard
gpiod: ^0.1.0 copied to clipboard

outdated

FFI for libgpiod

example/main.dart

import 'dart:convert';

import 'dart:ffi';
import 'package:ffi/ffi.dart';
import 'package:gpiod/gpiod.dart';
import 'package:gpiod/pthread.dart';
import 'package:gpiod/src/utils.dart';
import 'package:logging/logging.dart';

final Logger _log = new Logger('main');

var gpiod = GPIOD();
var pthread = Pthread();

void main() async {
  Logger.root.level = Level.ALL;
  Logger.root.onRecord.listen((LogRecord rec) {
    StringBuffer message = new StringBuffer();
    message.write('${rec.level.name}:${rec.loggerName} ${rec.time}: ${rec.message}');
    if (rec.error != null) {
      message.write(' ${rec.error}');
    }
    print(message);
  });

  try {


    _log.info('GPIOD version: ${Utf8.fromUtf8(gpiod.version_string())}');

    // iterate through the GPIO chips
    var chipiter = gpiod.chip_iter_new();
    if (chipiter.address == 0) {
      _log.severe("[gpiod] could not create GPIO chip iterator. gpiod_chip_iter_new");
      return;//errno;
    }

    Map<String,Pointer<gpiod_chip>> chips = <String,Pointer<gpiod_chip>>{};
    _log.info('get chips');
    for (var n_chips = 0, n_lines = 0, chip =  gpiod.chip_iter_next_noclose(chipiter);     chip.address != 0;
    n_chips++, chip = gpiod.chip_iter_next_noclose(chipiter))
    {
      _log.info('${n_chips} ${chip.ref.name} ${chip.ref.label}');
      _log.info('chip.ref.num_lines ${chip.ref.num_lines}');
      chips[chip.ref.label] = chip;
    }
    gpiod.chip_iter_free_noclose(chipiter);

    gpiodp_ensure_gpiod_initialized();

//    var chip = chips['pinctrl-bcm2835'];
//    var line14 = chip.ref.lines[14];
//    line14.ref.
    /// Request BCM 14 as output.
    gpiodp_request_line(
      14,
      consumer: 'LED',
        initialValue: true,
      direction: LineDirection.output,
        outputMode :OutputMode.pushPull,
        activeState : ActiveState.high
    );

  } catch(e, st){
    _log.severe("Error",e, st);
  }
}
1
likes
25
pub points
8%
popularity

Publisher

unverified uploader

FFI for libgpiod

Repository (GitHub)
View/report issues

License

MIT (LICENSE)

Dependencies

ffi, logging

More

Packages that depend on gpiod