# `VintageNetWiFi.AccessPoint`
[🔗](https://github.com/nerves-networking/vintage_net_wifi/blob/v0.12.9/lib/vintage_net_wifi/access_point.ex#L7)

Information about a WiFi access point

* `:bssid` - a unique address for the access point
* `:flags` - a list of flags describing properties on the access point
* `:frequency` - the access point's frequency in MHz
* `:signal_dbm` - the signal strength in dBm
* `:ssid` - the access point's name

# `band`

```elixir
@type band() :: :wifi_2_4_ghz | :wifi_5_ghz | :unknown
```

# `flag`

```elixir
@type flag() ::
  :ccmp
  | :eap
  | :ess
  | :ibss
  | :mesh
  | :p2p
  | :psk
  | :rsn_ccmp
  | :sae
  | :tkip
  | :wep
  | :wpa
  | :wpa2
  | :wps
  | old_flag()
```

Access point flags

These flags generally describe the security supported by an access point, but do contain some other details. They're
directly passed on from `wpa_supplicant` reports.

# `old_flag`

```elixir
@type old_flag() ::
  :wpa2_psk_ccmp
  | :wpa2_eap_ccmp
  | :wpa2_eap_ccmp_tkip
  | :wpa2_psk_ccmp_tkip
  | :wpa2_psk_sae_ccmp
  | :wpa2_sae_ccmp
  | :wpa2_ccmp
  | :wpa_psk_ccmp
  | :wpa_psk_ccmp_tkip
  | :wpa_eap_ccmp
  | :wpa_eap_ccmp_tkip
```

Old-style access point flags

Early on with `vintage_net_wifi`, flags were not broken up and returned in a list. The WPA3 support made this approach unmaintainable, but these are
kept to avoid breaking code. New code should avoid using these.

# `t`

```elixir
@type t() :: %VintageNetWiFi.AccessPoint{
  band: band(),
  bssid: String.t(),
  channel: non_neg_integer(),
  flags: [flag()],
  frequency: non_neg_integer(),
  signal_dbm: integer(),
  signal_percent: 0..100,
  ssid: String.t()
}
```

# `new`

```elixir
@spec new(any()) :: t()
```

Create an AccessPoint when only the BSSID is known

# `new`

```elixir
@spec new(String.t(), String.t(), non_neg_integer(), integer(), [flag()]) :: t()
```

Create a new AccessPoint with all of the information

---

*Consult [api-reference.md](api-reference.md) for complete listing*
