# nerves_gate_sdk v0.1.0 - API Reference

## Modules

- [NervesGateSDK.Backend](NervesGateSDK.Backend.md): Implemented by device firmware and the host simulator.
- [NervesGateSDK.CAN](NervesGateSDK.CAN.md): CAN frames and process-owned receive subscriptions. No interface configuration.
- [NervesGateSDK.CAN.Frame](NervesGateSDK.CAN.Frame.md): A classic CAN frame. Data is at most eight bytes; FD frames are not supported.
- [NervesGateSDK.CAN.Interface](NervesGateSDK.CAN.Interface.md): CAN availability. Configuration remains platform-owned.
- [NervesGateSDK.Equipment](NervesGateSDK.Equipment.md): Read-only observations of attached equipment.
- [NervesGateSDK.Equipment.Device](NervesGateSDK.Equipment.Device.md): Public equipment identity and reachability.
- [NervesGateSDK.Events](NervesGateSDK.Events.md): Process-owned subscriptions to public observations. Subscribe before querying.
- [NervesGateSDK.Events.Event](NervesGateSDK.Events.Event.md): A public event delivered directly to the subscribing process.
- [NervesGateSDK.Network](NervesGateSDK.Network.md): Read-only network observations. Network configuration belongs to the platform.
- [NervesGateSDK.Network.Interface](NervesGateSDK.Network.Interface.md): A public network observation, without platform configuration.
- [NervesGateSDK.RS485](NervesGateSDK.RS485.md): Exclusive, process-owned RS485 sessions. Claims are released on owner exit.
Receive data arrives as Events.Event with topic `{:rs485, port}` and binary value.
The platform owns serial settings; applications cannot open Linux devices.

- [NervesGateSDK.RS485.Port](NervesGateSDK.RS485.Port.md): A logical RS485 port and its availability.
- [NervesGateSDK.Storage](NervesGateSDK.Storage.md): SD storage observations and application-owned data directories.
- [NervesGateSDK.Storage.Status](NervesGateSDK.Storage.Status.md): Availability of application storage. Platform state does not require an SD card.
- [NervesGateSDK.System](NervesGateSDK.System.md): Read-only device identity and runtime information.
- [NervesGateSDK.System.Info](NervesGateSDK.System.Info.md): Public device identity. No credentials or distribution settings.

## Mix Tasks

- [mix nerves_gate.package](Mix.Tasks.NervesGate.Package.md): Compiles in production mode and writes `<app>-<version>.ez` in the current
directory, or to `--output path`. Set `:nerves_gate_sdk_requirement` in the
application's OTP `:env`.

