added fields to sensordata
This commit is contained in:
parent
5a3a9feca8
commit
100787f047
@ -56,14 +56,16 @@ type SensorData struct {
|
||||
latency int
|
||||
Servertime time.Time
|
||||
Timestamp time.Time
|
||||
Position [3]float64 `json:",omitempty"`
|
||||
PosAcc [2]float64 `json:",omitempty"`//[H,V]
|
||||
Orientation [3]float64 `json:",omitempty"`
|
||||
Speed float64 `json:",omitempty"`
|
||||
PosHeading float64 `json:",omitempty"` // Course / Heading of Motion
|
||||
HeadingAcc float64 `json:",omitempty"`
|
||||
Gyroscope [3]float64 `json:",omitempty"`
|
||||
LinearAcc [3]float64 `json:",omitempty"`
|
||||
Position [3]float64 //`json:",omitempty"`
|
||||
HAcc float64 //`json:",omitempty"`//[H,V]
|
||||
VAcc float64 //`json:",omitempty"`//[H,V]
|
||||
Orientation [3]float64 //`json:",omitempty"`
|
||||
Speed float64 //`json:",omitempty"`
|
||||
HeadDevice float64 //`json:",omitempty"` // Course / Heading of Motion
|
||||
HeadMotion float64 //`json:",omitempty"` // Course / Heading of Motion
|
||||
HeadingAcc float64 //`json:",omitempty"`
|
||||
Gyroscope [3]float64 //`json:",omitempty"`
|
||||
LinearAcc [3]float64 //`json:",omitempty"`
|
||||
|
||||
}
|
||||
|
||||
@ -141,6 +143,12 @@ func ConvertUbxSensorData(msg interface{}) (*SensorData, error) {
|
||||
sd.Position[0] = float64(v.Lat_dege7) / 1e+7
|
||||
sd.Position[1] = float64(v.Lon_dege7) / 1e+7
|
||||
sd.Position[2] = float64(v.HMSL_mm) / 1e+3 // mm in m
|
||||
sd.HAcc = float64(v.HAcc_mm) / 1000
|
||||
sd.VAcc = float64(v.VAcc_mm) / 1000
|
||||
sd.HeadMotion = float64(v.HeadMot_dege5) / 1e+5
|
||||
sd.HeadDevice = float64(v.HeadVeh_dege5) / 1e+5
|
||||
sd.HeadingAcc = float64(v.HeadAcc_dege5) / 1e+5
|
||||
sd.Speed = float64(v.GSpeed_mm_s) / 3600
|
||||
case *ublox.HnrPvt:
|
||||
//logrus.Println("HNR-PVT")
|
||||
sd.itow = v.ITOW_ms
|
||||
@ -148,6 +156,12 @@ func ConvertUbxSensorData(msg interface{}) (*SensorData, error) {
|
||||
sd.Position[0] = float64(v.Lat_dege7) / 1e+7
|
||||
sd.Position[1] = float64(v.Lon_dege7) / 1e+7
|
||||
sd.Position[2] = float64(v.HMSL_mm) / 1e+3 // mm in m
|
||||
sd.HAcc = float64(v.HAcc) / 1000
|
||||
sd.VAcc = float64(v.VAcc) / 1000
|
||||
sd.HeadMotion = float64(v.HeadMot_dege5) / 1e+5
|
||||
sd.HeadDevice = float64(v.HeadVeh_dege5) / 1e+5
|
||||
sd.HeadingAcc = float64(v.HeadAcc_dege5) / 1e+5
|
||||
sd.Speed = float64(v.GSpeed_mm_s) / 3600
|
||||
case *ublox.NavAtt:
|
||||
//logrus.Println("NAV-ATT")
|
||||
sd.itow = v.ITOW_ms
|
||||
@ -180,6 +194,13 @@ func convertIPhoneSensorLog(jsonData []byte) (*SensorData, error) {
|
||||
pitch := gjson.Get(string(jsonData), "motionPitch").Float() * 180 / math.Pi
|
||||
roll := gjson.Get(string(jsonData), "motionRoll").Float() * 180 / math.Pi
|
||||
yaw := gjson.Get(string(jsonData), "motionYaw").Float() * 180 / math.Pi
|
||||
hAcc := gjson.Get(string(jsonData), "locationHorizontalAccuracy").Float()
|
||||
vAcc := gjson.Get(string(jsonData), "locationVerticalAccuracy").Float()
|
||||
headingAcc := gjson.Get(string(jsonData), "locationHeadingAccuracy").Float()
|
||||
headMotion := gjson.Get(string(jsonData), "locationCourse").Float()
|
||||
headDevice := gjson.Get(string(jsonData), "locationTrueHeading").Float()
|
||||
speed := gjson.Get(string(jsonData), "locationSpeed").Float()
|
||||
|
||||
var ts time.Time
|
||||
if timestamp != 0 {
|
||||
ts = time.Unix(0, int64(timestamp*float64(time.Second))).UTC()
|
||||
@ -194,6 +215,13 @@ func convertIPhoneSensorLog(jsonData []byte) (*SensorData, error) {
|
||||
Timestamp: ts,
|
||||
Position: [3]float64{lat, lon, alt},
|
||||
Orientation: [3]float64{pitch, roll, yaw},
|
||||
HAcc: hAcc,
|
||||
VAcc: vAcc,
|
||||
HeadingAcc: headingAcc,
|
||||
HeadMotion: headMotion,
|
||||
HeadDevice: headDevice,
|
||||
Speed: speed,
|
||||
|
||||
}
|
||||
if (*sd == SensorData{}) {
|
||||
return nil, errors.New("iphone sensorlog: convert empty")
|
||||
@ -209,6 +237,13 @@ func convertAndroidHyperImu(jsonData []byte) (*SensorData, error) {
|
||||
pitch := gjson.Get(string(jsonData), "orientation.0").Float()
|
||||
roll := gjson.Get(string(jsonData), "orientation.1").Float()
|
||||
yaw := gjson.Get(string(jsonData), "orientation.2").Float()
|
||||
//hAcc := gjson.Get(string(jsonData), "locationHorizontalAccuracy").Float()
|
||||
//vAcc := gjson.Get(string(jsonData), "locationVerticalAccuracy").Float()
|
||||
//headingAcc := gjson.Get(string(jsonData), "locationHeadingAccuracy").Float()
|
||||
//headMotion := gjson.Get(string(jsonData), "locationCourse").Float()
|
||||
//headDevice := gjson.Get(string(jsonData), "locationTrueHeading").Float()
|
||||
//speed := gjson.Get(string(jsonData), "locationSpeed").Float()
|
||||
|
||||
|
||||
sd := &SensorData{
|
||||
//Servertime: time.Now().UTC(),
|
||||
|
||||
@ -5,6 +5,7 @@ import (
|
||||
ext "github.com/reugn/go-streams/extension"
|
||||
"github.com/reugn/go-streams/flow"
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/tidwall/pretty"
|
||||
"time"
|
||||
)
|
||||
|
||||
@ -63,7 +64,7 @@ func storeFunc(s Tracker) flow.MapFunc {
|
||||
}
|
||||
|
||||
jdata, err := json.Marshal(data)
|
||||
//logrus.Println(string(pretty.Pretty(jdata)))
|
||||
logrus.Traceln(string(pretty.Pretty(jdata)))
|
||||
if err != nil {
|
||||
logrus.Fatalln(err)
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user