Current section
Files
Jump to
Current section
Files
src/cangaroo/excansock.gleam
//// Internal bindings to the Excansock Elixir library.
////
//// This module provides direct FFI bindings to the `Excansock` Elixir module,
//// which handles the lower-level SocketCAN operations. These functions are used
//// internally by the main `cangaroo` module and are not part of the public API.
import gleam/dynamic
import gleam/erlang/atom
import gleam/erlang/process
@external(erlang, "Elixir.Excansock", "start_link")
pub fn start_link() -> #(atom.Atom, process.Pid)
@external(erlang, "Elixir.Excansock", "open")
pub fn open(pid: process.Pid, interface: String, canfd: Bool) -> dynamic.Dynamic
@external(erlang, "Elixir.Excansock", "close")
pub fn close(pid: process.Pid) -> atom.Atom
@external(erlang, "Elixir.Excansock", "send")
pub fn send(pid: process.Pid, frame: dynamic.Dynamic) -> atom.Atom
@external(erlang, "Elixir.Excansock", "set_loopback")
pub fn set_loopback(pid: process.Pid, value: Bool) -> atom.Atom
@external(erlang, "Elixir.Excansock", "recv_own_messages")
pub fn recv_own_messages(pid: process.Pid, value: Bool) -> atom.Atom
@external(erlang, "Elixir.Excansock", "set_filters")
pub fn set_filters(
pid: process.Pid,
filters: List(dynamic.Dynamic),
) -> atom.Atom
@external(erlang, "Elixir.Excansock", "set_error_filter")
pub fn set_error_filter(pid: process.Pid, filter: Int) -> atom.Atom
@external(erlang, "Elixir.GenServer", "stop")
pub fn stop(pid: process.Pid) -> atom.Atom