package QuectelAT import ( "strings" ) type Sentence interface { DataType() string } func Parse(raw string) (Sentence Sentence) { // raw 去除 /r/n 去除空格 raw = strings.TrimSpace(raw) if raw == "" || raw == "\r\n" || raw == "\r" || raw == "\n" || raw == " " { return NewNULL() } if raw == "OK" { return NewOK() } if raw == "ERROR" { return NewERROR() } if raw[0] == '+' { if strings.Contains(raw, "+CME ERROR:") { return NewERROR() } if strings.Contains(raw, "+CMS ERROR:") { return NewERROR() } return NewCMD(raw) } return NewText(raw) }