Documentation ¶
Index ¶
- Constants
- type Config
- type Device
- func (d *Device) Accept(sockfd int) (int, netip.AddrPort, error)
- func (d *Device) Addr() (netip.Addr, error)
- func (d *Device) Bind(sockfd int, ip netip.AddrPort) error
- func (d *Device) Close(sockfd int) error
- func (d *Device) Connect(sockfd int, host string, ip netip.AddrPort) error
- func (d *Device) ConnectSSLSocket(addr, port string) error
- func (d *Device) ConnectTCPSocket(addr, port string) error
- func (d *Device) ConnectToAP(ssid, pwd string, ws int) error
- func (d *Device) ConnectUDPSocket(addr, sendport, listenport string) error
- func (d *Device) Connected() bool
- func (d *Device) DisconnectFromAP() error
- func (d *Device) DisconnectSocket() error
- func (d Device) Echo(set bool)
- func (d *Device) EndSocketSend() error
- func (d Device) Execute(cmd string) error
- func (d *Device) GetAPClients() (string, error)
- func (d *Device) GetAPConfig() (string, error)
- func (d *Device) GetAPConfigFlash() (string, error)
- func (d *Device) GetAPIP() (string, error)
- func (d *Device) GetAPIPFlash() (string, error)
- func (d *Device) GetClientIP() (string, error)
- func (d *Device) GetConnectedAP() ([]byte, error)
- func (d *Device) GetDNS(domain string) (string, error)
- func (d *Device) GetHardwareAddr() (net.HardwareAddr, error)
- func (d *Device) GetHostByName(name string) (netip.Addr, error)
- func (d *Device) GetMux() ([]byte, error)
- func (d *Device) GetTCPTransferMode() ([]byte, error)
- func (d *Device) GetWifiMode() ([]byte, error)
- func (d *Device) IsSocketDataAvailable() bool
- func (d *Device) Listen(sockfd int, backlog int) error
- func (d *Device) NetConnect(params *netlink.ConnectParams) error
- func (d *Device) NetDisconnect()
- func (d *Device) NetNotify(cb func(netlink.Event))
- func (d Device) Query(cmd string) (string, error)
- func (d *Device) Read(b []byte) (n int, err error)
- func (d *Device) ReadSocket(b []byte) (n int, err error)
- func (d *Device) Recv(sockfd int, buf []byte, flags int, deadline time.Time) (int, error)
- func (d Device) Reset()
- func (d *Device) Response(timeout int) ([]byte, error)
- func (d *Device) Send(sockfd int, buf []byte, flags int, deadline time.Time) (int, error)
- func (d Device) Set(cmd, params string) error
- func (d *Device) SetAPConfig(ssid, pwd string, ch, security int) error
- func (d *Device) SetAPConfigFlash(ssid, pwd string, ch, security int) error
- func (d *Device) SetAPIP(ipaddr string) error
- func (d *Device) SetAPIPFlash(ipaddr string) error
- func (d *Device) SetClientIP(ipaddr string) error
- func (d *Device) SetMux(mode int) error
- func (d *Device) SetSockOpt(sockfd int, level int, opt int, value interface{}) error
- func (d *Device) SetTCPTransferMode(mode int) error
- func (d *Device) SetWifiMode(mode int) error
- func (d *Device) Socket(domain int, stype int, protocol int) (int, error)
- func (d *Device) StartSocketSend(size int) error
- func (d Device) Version() []byte
- func (d *Device) Write(b []byte) (n int, err error)
Constants ¶
const ( // Test that the device is working. Test = "" // Restart module Restart = "+RST" // Version show info about the current software version. Version = "+GMR" // Enter deep-sleep mode Sleep = "+GSLP" // Configure echo. EchoConfig = "E" // EchoConfigOn EchoConfigOn = EchoConfig + "1" // EchoConfigOff EchoConfigOff = EchoConfig + "0" // Configure UART UARTConfig = "+UART" )
Basic AT commands
const ( // WiFi mode (sta/AP/sta+AP) WifiMode = "+CWMODE" // Connect to an access point. ConnectAP = "+CWJAP" // List available AP's ListAP = "+CWLAP" // Disconnect from the current AP Disconnect = "+CWQAP" // Set softAP configuration. This also activates the ESP8266/ESP32 to act as an access point. // On the ESP8266 the settings will not be saved in flash memory, so they will be forgotten on next reset. // On the ESP32 the settings WILL be saved in flash memory, so they will be used on next reset. SoftAPConfigCurrent = "+CWSAP" // Set softAP configuration. This also activates the ESP8266/ESP32 to act as an access point. // On the ESP8266 the settings will not be saved in flash memory, so they will be forgotten on next reset. // On the ESP32 the settings WILL be saved in flash memory, so they will be used on next reset. SoftAPConfigFlash = "+CWSAP" // List station IP's connected to softAP ListConnectedIP = "+CWLIF" // Enable/disable DHCP DHCPConfig = "+CWDHCP" // Set MAC address of station SetStationMACAddress = "+CIPSTAMAC" // Set MAC address of softAP SetAPMACAddress = "+CIPAPMAC" // Set IP address of ESP8266/ESP32 station SetStationIP = "+CIPSTA" // Set IP address of ESP8266/ESP32 when acting as access point. // On the ESP8266 the IP address will not be saved in flash memory, so it will be forgotten on next reset. // On the ESP32 the IP address WILL be saved in flash memory, so it will be used on next reset. SetSoftAPIPCurrent = "+CIPAP" // Set IP address of ESP8266/ESP32 when acting as access point. // On the ESP8266 the IP address will not be saved in flash memory, so it will be forgotten on next reset. // On the ESP32 the IP address WILL be saved in flash memory, so it will be used on next reset. SetSoftAPIPFlash = "+CIPAP" )
WiFi commands.
const ( // Get connection status TCPStatus = "+CIPSTATUS" // Establish TCP connection or register UDP port TCPConnect = "+CIPSTART" // DNS Lookup TCPDNSLookup = "+CIPDOMAIN" // Send Data TCPSend = "+CIPSEND" // Close TCP/UDP connection TCPClose = "+CIPCLOSE" // Get local IP address GetLocalIP = "+CIFSR" // Set multiple connections mode TCPMultiple = "+CIPMUX" // Configure as server ServerConfig = "+CIPSERVER" // Set transmission mode TransmissionMode = "+CIPMODE" // Set timeout when ESP8266/ESP32 runs as TCP server SetServerTimeout = "+CIPSTO" )
TCP/IP commands
const ( TCPMuxSingle = 0 TCPMuxMultiple = 1 TCPTransferModeNormal = 0 TCPTransferModeUnvarnished = 1 )
const ( WifiModeClient = 1 WifiModeAP = 2 WifiModeDual = 3 WifiAPSecurityOpen = 1 WifiAPSecurityWPA_PSK = 2 WifiAPSecurityWPA2_PSK = 3 WifiAPSecurityWPA_WPA2_PSK = 4 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Device ¶
type Device struct {
// contains filtered or unexported fields
}
func (*Device) ConnectSSLSocket ¶ added in v0.3.0
ConnectSSLSocket creates a new SSL socket connection for the ESP8266/ESP32. Currently only supports single connection mode.
func (*Device) ConnectTCPSocket ¶
ConnectTCPSocket creates a new TCP socket connection for the ESP8266/ESP32. Currently only supports single connection mode.
func (*Device) ConnectToAP ¶
ConnectToAP connects the ESP8266/ESP32 to an access point. ws is the number of seconds to wait for connection.
func (*Device) ConnectUDPSocket ¶
ConnectUDPSocket creates a new UDP connection for the ESP8266/ESP32.
func (*Device) DisconnectFromAP ¶
DisconnectFromAP disconnects the ESP8266/ESP32 from the current access point.
func (*Device) DisconnectSocket ¶
DisconnectSocket disconnects the ESP8266/ESP32 from the current TCP/UDP connection.
func (*Device) EndSocketSend ¶
EndSocketSend tell the ESP8266/ESP32 the TCP/UDP socket data sending is complete, and to return to command mode. This is only used in "unvarnished" raw mode.
func (*Device) GetAPClients ¶
GetAPClients returns the ESP8266/ESP32 current clients when acting as an Access Point.
func (*Device) GetAPConfig ¶
GetAPConfig returns the ESP8266/ESP32 current configuration when acting as an Access Point.
func (*Device) GetAPConfigFlash ¶
GetAPConfigFlash returns the ESP8266/ESP32 current configuration acting as an Access Point from flash storage. These settings are those used after a reset.
func (*Device) GetAPIP ¶
GetAPIP returns the ESP8266/ESP32 current IP addess when configured as an Access Point.
func (*Device) GetAPIPFlash ¶
GetAPIPFlash returns the ESP8266/ESP32 IP address as saved to flash storage. This is the IP address that will be used after a reset.
func (*Device) GetClientIP ¶
GetClientIP returns the ESP8266/ESP32 current client IP addess when connected to an Access Point.
func (*Device) GetConnectedAP ¶
GetConnectedAP returns the ESP8266/ESP32 is currently connected to as a client.
func (*Device) GetHardwareAddr ¶ added in v0.27.0
func (d *Device) GetHardwareAddr() (net.HardwareAddr, error)
func (*Device) GetHostByName ¶ added in v0.27.0
func (*Device) GetMux ¶
GetMux returns the ESP8266/ESP32 current client TCP/UDP configuration for concurrent connections.
func (*Device) GetTCPTransferMode ¶
GetTCPTransferMode returns the ESP8266/ESP32 current client TCP/UDP transfer mode.
func (*Device) GetWifiMode ¶
GetWifiMode returns the ESP8266/ESP32 wifi mode.
func (*Device) IsSocketDataAvailable ¶ added in v0.8.0
IsSocketDataAvailable returns of there is socket data available
func (*Device) NetConnect ¶ added in v0.27.0
func (d *Device) NetConnect(params *netlink.ConnectParams) error
func (*Device) NetDisconnect ¶ added in v0.27.0
func (d *Device) NetDisconnect()
func (Device) Query ¶
Query sends an AT command to the ESP8266/ESP32 that returns the current value for some configuration parameter.
func (*Device) ReadSocket ¶
ReadSocket returns the data that has already been read in from the responses.
func (Device) Reset ¶
func (d Device) Reset()
Reset restarts the ESP8266/ESP32 firmware. Due to how the baud rate changes, this messes up communication with the ESP8266/ESP32 module. So make sure you know what you are doing when you call this.
func (*Device) Response ¶
Response gets the next response bytes from the ESP8266/ESP32. The call will retry for up to timeout milliseconds before returning nothing.
func (Device) Set ¶
Set sends an AT command with params to the ESP8266/ESP32 for a configuration value to be set.
func (*Device) SetAPConfig ¶
SetAPConfig sets the ESP8266/ESP32 current configuration when acting as an Access Point. ch indicates which radiochannel to use. security should be one of the const values such as WifiAPSecurityOpen etc.
func (*Device) SetAPConfigFlash ¶
SetAPConfigFlash sets the ESP8266/ESP32 current configuration acting as an Access Point, and saves them to flash storage. These settings will be used after a reset. ch indicates which radiochannel to use. security should be one of the const values such as WifiAPSecurityOpen etc.
func (*Device) SetAPIP ¶
SetAPIP sets the ESP8266/ESP32 current IP addess when configured as an Access Point.
func (*Device) SetAPIPFlash ¶
SetAPIPFlash sets the ESP8266/ESP32 current IP addess when configured as an Access Point. The IP will be saved to flash storage, and will be used after a reset.
func (*Device) SetClientIP ¶
SetClientIP sets the ESP8266/ESP32 current client IP addess when connected to an Access Point.
func (*Device) SetMux ¶
SetMux sets the ESP8266/ESP32 current client TCP/UDP configuration for concurrent connections either single TCPMuxSingle or multiple TCPMuxMultiple (up to 4).
func (*Device) SetSockOpt ¶ added in v0.27.0
func (*Device) SetTCPTransferMode ¶
SetTCPTransferMode sets the ESP8266/ESP32 current client TCP/UDP transfer mode. Either TCPTransferModeNormal or TCPTransferModeUnvarnished.
func (*Device) SetWifiMode ¶
SetWifiMode sets the ESP8266/ESP32 wifi mode.
func (*Device) StartSocketSend ¶
StartSocketSend gets the ESP8266/ESP32 ready to receive TCP/UDP socket data.