Sentence.go 584 B

123456789101112131415161718192021222324252627282930313233
  1. package QuectelAT
  2. import (
  3. "strings"
  4. )
  5. type Sentence interface {
  6. DataType() string
  7. }
  8. func Parse(raw string) (Sentence Sentence) {
  9. // raw 去除 /r/n 去除空格
  10. raw = strings.TrimSpace(raw)
  11. if raw == "" || raw == "\r\n" || raw == "\r" || raw == "\n" || raw == " " {
  12. return NewNULL()
  13. }
  14. if raw == "OK" {
  15. return NewOK()
  16. }
  17. if raw == "ERROR" {
  18. return NewERROR()
  19. }
  20. if raw[0] == '+' {
  21. if strings.Contains(raw, "+CME ERROR:") {
  22. return NewERROR()
  23. }
  24. if strings.Contains(raw, "+CMS ERROR:") {
  25. return NewERROR()
  26. }
  27. return NewCMD(raw)
  28. }
  29. return NewText(raw)
  30. }