mirror of
https://github.com/tinygo-org/drivers.git
synced 2026-07-26 10:38:41 +00:00
36dfdf568e
Signed-off-by: deadprogram <ron@hybridgroup.com>
116 lines
1.7 KiB
Go
116 lines
1.7 KiB
Go
package main
|
|
|
|
import (
|
|
"errors"
|
|
"strings"
|
|
)
|
|
|
|
var (
|
|
errInvalidCommand = errors.New("Invalid command")
|
|
)
|
|
|
|
func parse(data []byte) error {
|
|
switch {
|
|
case len(data) < 2, string(data[0:2]) != "AT":
|
|
return errInvalidCommand
|
|
case len(data) == 2:
|
|
// just the AT command by itself
|
|
quicktest()
|
|
case len(data) < 6 || data[2] != '+':
|
|
return errInvalidCommand
|
|
default:
|
|
// parse the rest of the command
|
|
cmd, args, _ := strings.Cut(string(data[3:]), "=")
|
|
return parseCommand(cmd, args)
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func parseCommand(cmd, args string) error {
|
|
switch cmd {
|
|
case "VER":
|
|
version()
|
|
case "ID":
|
|
id(args)
|
|
case "RESET":
|
|
reset()
|
|
case "MSG":
|
|
msg(args)
|
|
case "CMSG":
|
|
cmsg(args)
|
|
case "MSGHEX":
|
|
msghex(args)
|
|
case "CMSGHEX":
|
|
cmsghex(args)
|
|
case "PMSG":
|
|
pmsg(args)
|
|
case "PMSGHEX":
|
|
pmsg(args)
|
|
case "PORT":
|
|
port(args)
|
|
case "ADR":
|
|
adr(args)
|
|
case "DR":
|
|
dr(args)
|
|
case "CH":
|
|
ch(args)
|
|
case "POWER":
|
|
power(args)
|
|
case "REPT":
|
|
rept(args)
|
|
case "RETRY":
|
|
retry(args)
|
|
case "RXWIN2":
|
|
rxwin2(args)
|
|
case "RXWIN1":
|
|
rxwin1(args)
|
|
case "KEY":
|
|
key(args)
|
|
case "FDEFAULT":
|
|
fdefault(args)
|
|
case "MODE":
|
|
mode(args)
|
|
case "JOIN":
|
|
join(args)
|
|
case "BEACON":
|
|
join(args)
|
|
case "CLASS":
|
|
class(args)
|
|
case "DELAY":
|
|
delay(args)
|
|
case "LW":
|
|
lw(args)
|
|
case "WDT":
|
|
wdt(args)
|
|
case "LOWPOWER":
|
|
lowpower(args)
|
|
case "VDD":
|
|
vdd(args)
|
|
case "TEMP":
|
|
temp(args)
|
|
case "RTC":
|
|
rtc(args)
|
|
case "EEPROM":
|
|
eeprom(args)
|
|
case "UART":
|
|
uartcmd(args)
|
|
case "TEST":
|
|
test(args)
|
|
case "LOG":
|
|
log(args)
|
|
case "RECV":
|
|
recv(args)
|
|
case "RECVHEX":
|
|
recvhex(args)
|
|
case "SEND":
|
|
send(args)
|
|
case "SENDHEX":
|
|
sendhex(args)
|
|
default:
|
|
return errInvalidCommand
|
|
}
|
|
|
|
return nil
|
|
}
|