mirror of
https://github.com/tinygo-org/drivers.git
synced 2026-08-04 15:07:46 +00:00
54ddb895cc
Signed-off-by: deadprogram <ron@hybridgroup.com>
70 lines
1.1 KiB
Go
70 lines
1.1 KiB
Go
package rtl8720dn
|
|
|
|
import (
|
|
"machine"
|
|
|
|
"io"
|
|
"time"
|
|
)
|
|
|
|
const maxUartRecvSize = 128
|
|
|
|
type RTL8720DN struct {
|
|
port io.ReadWriter
|
|
seq uint64
|
|
sema chan bool
|
|
debug bool
|
|
|
|
connectionType ConnectionType
|
|
socket int32
|
|
client uint32
|
|
length int
|
|
root_ca *string
|
|
udpInfo [6]byte // Port: [2]byte + IP: [4]byte
|
|
}
|
|
|
|
type ConnectionType int
|
|
|
|
const (
|
|
ConnectionTypeNone ConnectionType = iota
|
|
ConnectionTypeTCP
|
|
ConnectionTypeUDP
|
|
ConnectionTypeTLS
|
|
)
|
|
|
|
func (d *Driver) SetSeq(s uint64) {
|
|
d.seq = s
|
|
}
|
|
|
|
func (d *Driver) Debug(b bool) {
|
|
d.debug = b
|
|
}
|
|
|
|
func (d *Driver) SetRootCA(s *string) {
|
|
d.root_ca = s
|
|
}
|
|
|
|
func (d *Driver) Version() (string, error) {
|
|
return d.Rpc_system_version()
|
|
}
|
|
|
|
func enable(en machine.Pin) {
|
|
en.Configure(machine.PinConfig{Mode: machine.PinOutput})
|
|
en.Low()
|
|
time.Sleep(100 * time.Millisecond)
|
|
en.High()
|
|
time.Sleep(1000 * time.Millisecond)
|
|
}
|
|
|
|
type UARTx struct {
|
|
*machine.UART
|
|
}
|
|
|
|
func (u *UARTx) Read(p []byte) (n int, err error) {
|
|
if u.Buffered() == 0 {
|
|
time.Sleep(1 * time.Millisecond)
|
|
return 0, nil
|
|
}
|
|
return u.UART.Read(p)
|
|
}
|