133 lines
3.3 KiB
Go
133 lines
3.3 KiB
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
"time"
|
|
|
|
"gitea.unprism.ru/KRBL/sim-modem/api/modem"
|
|
"gitea.unprism.ru/KRBL/sim-modem/api/modem/at"
|
|
)
|
|
|
|
func main() {
|
|
log.Println("CGSG forever!!!")
|
|
if err := mainE(); err != nil {
|
|
log.Println("MAIN finished with error:", err.Error())
|
|
}
|
|
log.Println("END")
|
|
}
|
|
|
|
func mainE() error {
|
|
logger := log.New(os.Stdout, "main : ", log.LstdFlags)
|
|
m := modem.New(log.New(logger.Writer(), "modem : ", log.LstdFlags))
|
|
|
|
logger.Println("||||||||||||||||| INIT |||||||||||||||")
|
|
if err := m.Init(); err != nil {
|
|
logger.Println("Init ended with error:", err.Error())
|
|
logger.Println("Try to turn on")
|
|
if err := m.PowerOn(); err != nil {
|
|
return err
|
|
}
|
|
logger.Println("Reinit")
|
|
if err := m.Init(); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if !m.IsConnected() {
|
|
logger.Println("AAAAAAAAAAAAAAA Modem is not connected")
|
|
return nil
|
|
}
|
|
|
|
// logger.Println("||||||||||||||||| GET INFO |||||||||||||||||")
|
|
// logger.Println(m.Update())
|
|
// logger.Printf("DATA: %+v\n", m.GetData())
|
|
|
|
logger.Println("||||||||||||||||| SMS |||||||||||||||||")
|
|
Cmd := func(cmd string) {
|
|
resp, err := m.At().SendWithTimeout(cmd, 50*time.Millisecond)
|
|
logger.Println(cmd, "===>", resp, err)
|
|
}
|
|
_ = Cmd
|
|
|
|
var resp at.Resp
|
|
var err error
|
|
buf := make([]byte, 256)
|
|
_ = resp
|
|
_ = err
|
|
_ = buf
|
|
|
|
// Select ME PMS
|
|
// logger.Println("SEND SMS")
|
|
// logger.Println(m.Sms().Send("+79218937173", "CGSG forever!!!"))
|
|
// m.At().RawSend("\r\n\x1A\r\n")
|
|
|
|
Cmd("AT+CREG?")
|
|
Cmd("AT+CNMI?")
|
|
Cmd("AT+CSQ")
|
|
Cmd("AT+CSCA?")
|
|
Cmd("AT+CPOL?")
|
|
Cmd("AT+COPS?")
|
|
// Cmd("AT+COPS=?")
|
|
Cmd("AT+CPSI?")
|
|
resp, err = m.At().Send("AT+CNMI=2,2")
|
|
for {
|
|
|
|
// if err := m.CheckSignal(); err != nil {
|
|
// logger.Println(err)
|
|
// } else {
|
|
// logger.Println("AAAAAAAAAAA THERE IS SIGNAL")
|
|
// }
|
|
// time.Sleep(250 * time.Millisecond)
|
|
readLen, err := m.At().SerialPort().Read(buf)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if readLen > 0 {
|
|
logger.Println(string(buf[:readLen]))
|
|
}
|
|
}
|
|
|
|
// resp, err = m.At().Send("AT+CPMS?")
|
|
// logger.Println("Prefered mem storage:", resp, err)
|
|
|
|
// resp, err = m.At().Send("AT+CREG?")
|
|
// logger.Println("Network registration:", resp, err)
|
|
// resp, err = m.At().Send("AT+CPMS?")
|
|
// logger.Println("Prefered mem storage:", resp, err)
|
|
// resp, err = m.At().Send("AT+CPMS=?")
|
|
// logger.Println("Possible mem storage:", resp, err)
|
|
// resp, err = m.At().Send("AT+CNMI?")
|
|
// logger.Println("New message indications:", resp, err)
|
|
// resp, err = m.At().Send("AT+CMGL=\"REC UNREAD\"")
|
|
// logger.Println("New messages:", resp, err)
|
|
// resp, err = m.At().Send("AT+CNMI=2,1")
|
|
// logger.Println("AT+CNMI=2,1:", resp, err)
|
|
// resp, err = m.At().Send("AT+CNMI?")
|
|
// logger.Println("New message indications:", resp, err)
|
|
// logger.Println("Reading port...")
|
|
// for {
|
|
// readLen, err := m.At().SerialPort().Read(buf)
|
|
// if err != nil {
|
|
// return err
|
|
// }
|
|
// if readLen > 0 {
|
|
// logger.Println(string(buf[:readLen]))
|
|
// }
|
|
// }
|
|
// for {
|
|
// resp, err = m.At().Send("AT+CSQ")
|
|
// logger.Println("AT+CSQ:", resp, err)
|
|
// time.Sleep(500 * time.Millisecond)
|
|
// }
|
|
// logger.Println("||||||||||||||||| Checking gps status |||||||||||||||||")
|
|
// st, err := m.Gps().GetStatus()
|
|
// if err != nil {
|
|
// return err
|
|
// }
|
|
// logger.Printf("GPS Status:%+v\n", st)
|
|
|
|
// logger.Println("Turn off", m.PowerOff())
|
|
|
|
return nil
|
|
}
|