feat: use /configuration/device and replice reachview system to define

antenna height

See Pyxis/fieldnotes#63 (comment)
This commit is contained in:
2024-09-20 10:12:05 +02:00
parent b2cdf23fb7
commit bea49c78a9
8 changed files with 149 additions and 16 deletions

View File

@ -297,6 +297,52 @@ func (o *Operations) SetBase(ctx context.Context, funcs ...protocol.SetBaseOptio
return nil
}
// GetBaseInfo implements protocol.Operations.
func (o *Operations) GetBaseInfo(ctx context.Context) (*protocol.BaseInfo, error) {
rawConfig, err := o.Configuration(ctx)
if err != nil {
return nil, errors.WithStack(err)
}
config := rawConfig.(*model.Configuration)
baseMode := config.BaseMode
var baseCoordinates *model.BaseCoordinates
if baseMode != nil && baseMode.BaseCoordinates != nil {
baseCoordinates = baseMode.BaseCoordinates
}
antennaOffset, err := strconv.ParseFloat(*baseCoordinates.AntennaOffset.Up, 64)
if err != nil {
return nil, errors.WithStack(err)
}
latitude, err := strconv.ParseFloat(*baseCoordinates.Coordinates[0], 64)
if err != nil {
return nil, errors.WithStack(err)
}
longitude, err := strconv.ParseFloat(*baseCoordinates.Coordinates[1], 64)
if err != nil {
return nil, errors.WithStack(err)
}
height, err := strconv.ParseFloat(*baseCoordinates.Coordinates[2], 64)
if err != nil {
return nil, errors.WithStack(err)
}
baseInfo := &protocol.BaseInfo{
Mode: *config.BaseMode.BaseCoordinates.Mode,
AntennaOffset: antennaOffset,
Height: height,
Latitude: latitude,
Longitude: longitude,
}
return baseInfo, nil
}
const (
eventGetReachViewVersion = "get reachview version"
eventReachViewVersionResults = "current reachview version"