View Source VintageNetWizard.Backend behaviour (vintage_net_wizard v0.4.17)

Backends define the boundaries of getting access points, handling incoming messages, and scanning the network

Summary

Callbacks

Get all the access points that the backend knowns about

Apply the WiFi configurations

Perform final completion steps for the network configurations

Return the configuration status of a configuration that has been applied

Handle any message the is received by another process

Do any initialization work like subscribing to messages

Apply any actions required to set the backend back to an initial default state

Start scanning for WiFi access points

Stop the scan for WiFi access points

Types

Link to this type

configuration_status()

View Source
@type configuration_status() :: :not_configured | :good | :bad
@type device_info_name() :: String.t()
@type device_info_value() :: String.t()
@type opt() ::
  {:device_info, [{device_info_name(), device_info_value()}]}
  | {:configurations, [map()]}

Callbacks

@callback access_points(state :: any()) :: [VintageNetWiFi.AccessPoint.t()]

Get all the access points that the backend knowns about

@callback apply([map()], state :: any()) ::
  {:ok, state :: any()} | {:error, :invalid_state}

Apply the WiFi configurations

The configurations passed are network configurations that can be passed into the :network list in a VintageNetWiFi configuration.

@callback complete([map()], state :: any()) :: {:ok, state :: any()}

Perform final completion steps for the network configurations

Link to this callback

configuration_status(state)

View Source
@callback configuration_status(state :: any()) :: configuration_status()

Return the configuration status of a configuration that has been applied

@callback handle_info(any(), state :: any()) ::
  {:reply, any(), state :: any()} | {:noreply, state :: any()}

Handle any message the is received by another process

If you want the socket to send data to the client return {:reply, message, state}, otherwise return {:noreply, state}

@callback init(VintageNet.ifname(), VintageNet.ifname()) :: state :: any()

Do any initialization work like subscribing to messages

Will be passed the interface names that the backend should use to scan and to set AP mode. By default both will be "wlan0". If you want to use different interface names you can pass them in as options to VintageNetWizard.run_wizard/1.

@callback reset(state :: any()) :: state :: any()

Apply any actions required to set the backend back to an initial default state

@callback start_scan(state :: any()) :: state :: any()

Start scanning for WiFi access points

@callback stop_scan(state :: any()) :: state :: any()

Stop the scan for WiFi access points