wip SetBaseMode
This commit is contained in:
@ -410,4 +410,49 @@ func (o *Operations) GetModemConfiguration(ctx context.Context) (any, error) {
|
||||
|
||||
}
|
||||
|
||||
func (o *Operations) SetBaseMode(ctx context.Context, funcs ...protocol.SetBaseOptionFunc) error {
|
||||
config, err := o.GetConfiguration(ctx)
|
||||
if err != nil {
|
||||
return errors.WithStack(err)
|
||||
}
|
||||
|
||||
opts := protocol.NewSetBaseOptions(funcs...)
|
||||
|
||||
base := &model.Base{
|
||||
Accumulation: config.BaseMode.BaseCoordinates.Accumulation,
|
||||
AntennaOffset: config.BaseMode.BaseCoordinates.AntennaOffset,
|
||||
Coordinates: model.BaseCoordinates{
|
||||
Height: config.BaseMode.BaseCoordinates.Coordinates.Height,
|
||||
Latitude: config.BaseMode.BaseCoordinates.Coordinates.Latitude,
|
||||
Longitude: config.BaseMode.BaseCoordinates.Coordinates.Longitude,
|
||||
},
|
||||
Mode: config.BaseMode.BaseCoordinates.Mode,
|
||||
}
|
||||
|
||||
if opts.Mode != nil {
|
||||
base.Mode = *opts.Mode
|
||||
}
|
||||
|
||||
if opts.Accumulation != nil {
|
||||
base.Accumulation = *opts.Accumulation
|
||||
}
|
||||
|
||||
if opts.Height != nil {
|
||||
base.Coordinates.Height = *opts.Height
|
||||
}
|
||||
|
||||
if opts.Latitude != nil {
|
||||
base.Coordinates.Latitude = *opts.Latitude
|
||||
}
|
||||
|
||||
if opts.Longitude != nil {
|
||||
base.Coordinates.Longitude = *opts.Longitude
|
||||
}
|
||||
|
||||
if _, err := o.PostBaseMode(ctx, base); err != nil {
|
||||
return errors.WithStack(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
var _ protocol.Operations = &Operations{}
|
||||
|
Reference in New Issue
Block a user