Fixed update.
This commit is contained in:
parent
b0a5fa81d5
commit
1bb5492d81
@ -249,9 +249,10 @@ func (m *modem) CalculateSpeed(newLatitude, newLongitude float64) {
|
|||||||
m.gpsInfo.Speed = earthRad * c / (math.Abs(float64(time.Since(m.lastUpdateTime))))
|
m.gpsInfo.Speed = earthRad * c / (math.Abs(float64(time.Since(m.lastUpdateTime))))
|
||||||
}
|
}
|
||||||
|
|
||||||
func decodeGpsInfo(strs [9]string) (GpsInfo, error) {
|
func decodeGpsInfo(str string) (GpsInfo, error) {
|
||||||
var err error
|
var err error
|
||||||
newGpsInfo := GpsInfo{}
|
newGpsInfo := GpsInfo{}
|
||||||
|
strs := strings.Split(strings.Split(strings.Replace(str, " ", "", -1), "\n")[0], ",")
|
||||||
|
|
||||||
newGpsInfo.Latitude, err = strconv.ParseFloat(strs[0], 64)
|
newGpsInfo.Latitude, err = strconv.ParseFloat(strs[0], 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -273,9 +274,12 @@ func decodeGpsInfo(strs [9]string) (GpsInfo, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return GpsInfoNil, fmt.Errorf("parse speed: %w", err)
|
return GpsInfoNil, fmt.Errorf("parse speed: %w", err)
|
||||||
}
|
}
|
||||||
newGpsInfo.Course, err = strconv.ParseFloat(strs[8], 64)
|
// Course sometimes may be null
|
||||||
if err != nil {
|
if len(strs[8]) > 0 {
|
||||||
return GpsInfoNil, fmt.Errorf("parse course: %w", err)
|
newGpsInfo.Course, err = strconv.ParseFloat(strs[8], 64)
|
||||||
|
if err != nil {
|
||||||
|
return GpsInfoNil, fmt.Errorf("parse course: %w", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return newGpsInfo, nil
|
return newGpsInfo, nil
|
||||||
}
|
}
|
||||||
@ -311,9 +315,8 @@ func (m *modem) Update() error {
|
|||||||
return fmt.Errorf("error response")
|
return fmt.Errorf("error response")
|
||||||
}
|
}
|
||||||
m.logger.Println("Decoding data...")
|
m.logger.Println("Decoding data...")
|
||||||
coordinates := strings.Split(strings.Split(resp.RmFront("+CGPSINFO:").String(), "\n")[0], ",")
|
|
||||||
|
|
||||||
newGpsInfo, err := decodeGpsInfo([9]string(coordinates))
|
newGpsInfo, err := decodeGpsInfo(strings.Split(strings.Replace(resp.RmFront("+CGPSINFO:").String(), "\r", "", -1), "\n")[0])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
m.logger.Println("Gps info decode error:", err.Error())
|
m.logger.Println("Gps info decode error:", err.Error())
|
||||||
return nil
|
return nil
|
||||||
|
Loading…
Reference in New Issue
Block a user