-module(eensy). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([processes_info/0, get_system_platform/0, erlang_display/1, erlang_garbage_collect/0, pin/3, i2c/5, board/2]). -export_type([platform_name/0, pull/0, board_peripheral/0, board_config/0]). -if(?OTP_RELEASE >= 27). -define(MODULEDOC(Str), -moduledoc(Str)). -define(DOC(Str), -doc(Str)). -else. -define(MODULEDOC(Str), -compile([])). -define(DOC(Str), -compile([])). -endif. -type platform_name() :: generic_unix | emscripten | esp32 | pico | stm32. -type pull() :: up | down. -opaque board_peripheral() :: {i2c, binary(), integer(), integer(), integer(), pull()} | {pin, binary(), integer(), pull()}. -opaque board_config() :: {board_config, list(board_peripheral()), list(board_peripheral())}. -file("src/eensy.gleam", 16). ?DOC(" System processess\n"). -spec processes_info() -> nil. processes_info() -> eensy_ffi:processes_info(). -file("src/eensy.gleam", 20). ?DOC(" get the running platform name\n"). -spec get_system_platform() -> platform_name(). get_system_platform() -> atomvm:platform(). -file("src/eensy.gleam", 24). ?DOC(" using erlang:display directly from gleam for debug purposes\n"). -spec erlang_display(any()) -> nil. erlang_display(Any) -> erlang:display(Any). -file("src/eensy.gleam", 28). ?DOC(" using erlang:garbage_collect directly from gleam for forcing vm behaviour\n"). -spec erlang_garbage_collect() -> nil. erlang_garbage_collect() -> erlang:garbage_collect(). -file("src/eensy.gleam", 82). -spec pin(binary(), integer(), pull()) -> board_peripheral(). pin(Name, Num, Pull) -> {pin, Name, Num, Pull}. -file("src/eensy.gleam", 86). -spec i2c(binary(), integer(), integer(), integer(), pull()) -> board_peripheral(). i2c(Name, Sda, Scl, Clock_speed, Pull) -> {i2c, Name, Sda, Scl, Clock_speed, Pull}. -file("src/eensy.gleam", 96). -spec board(list(board_peripheral()), list(board_peripheral())) -> board_config(). board(Inputs, Outputs) -> {board_config, Inputs, Outputs}.