1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package QuectelAT
- import (
- "fmt"
- "strconv"
- )
- // SetEcho 设置是否开启回显
- func (q *Quectel) SetEcho(Echo bool) (err error) {
- if Echo {
- err = q.SendCmd("ATE1")
- } else {
- err = q.SendCmd("ATE0")
- }
- for q.ioScanner.Scan() {
- var parse Sentence
- parse = Parse(q.ioScanner.Text())
- if parse.DataType() == OK {
- return
- } else if parse.DataType() == ERROR {
- return parse.(SentenceERROR).err
- }
- }
- return
- }
- type CSQ struct {
- RSSI int `json:"RSSI"`
- BER int `json:"BER"`
- }
- func (q *Quectel) GetCSQ() (data CSQ, err error) {
- err = q.SendCmd("AT+CSQ")
- for q.ioScanner.Scan() {
- var parse Sentence
- parse = Parse(q.ioScanner.Text())
- println(parse.DataType())
- if parse.DataType() == CMD {
- println(parse.(SentenceCMD).CMD)
- }
- if (parse.DataType() == CMD) && (parse.(SentenceCMD).CMD == "CSQ") {
- RSSI, err := strconv.Atoi(parse.(SentenceCMD).Message[0])
- if err != nil {
- return CSQ{}, err
- }
- BER, err := strconv.Atoi(parse.(SentenceCMD).Message[1])
- if err != nil {
- return CSQ{}, err
- }
- return CSQ{
- RSSI: RSSI,
- BER: BER,
- }, nil
- } else if parse.DataType() == ERROR {
- return CSQ{}, parse.(SentenceERROR).err
- }
- }
- return CSQ{}, fmt.Errorf("未知错误")
- }
|