This commit is contained in:
2025-05-27 16:22:36 +02:00
parent 38a1d5a2c6
commit ecf5fb46a0
11 changed files with 246 additions and 57 deletions

View File

@ -1,6 +1,6 @@
package model
type Action struct {
Name string `json:"name"`
Paylaod map[string]interface{} `json:"payload"`
Name string `json:"name"`
Paylaod map[string]any `json:"payload"`
}

View File

@ -2,6 +2,7 @@ package v2
import (
"context"
"encoding/json"
"net/http"
"sync"
@ -264,7 +265,7 @@ func (o *Operations) On(ctx context.Context, event string) (chan any, error) {
return out, nil
}
func (o *Operations) AveragePosition(ctx context.Context) error {
func (o *Operations) AveragePosition(ctx context.Context) (*protocol.TaskMessage, error) {
var err error
go func() {
@ -273,10 +274,26 @@ func (o *Operations) AveragePosition(ctx context.Context) error {
}()
if err = o.client.Emit("task", &model.Action{Name: "average_base_coordinates"}); err != nil {
return err
return nil, err
}
ch, err := o.On(ctx, "task_status")
for message := range ch {
// Convertir vers notre struct
jsonData, err := json.Marshal(message)
if err != nil {
continue
}
return err
var taskMsg protocol.TaskMessage
if err := json.Unmarshal(jsonData, &taskMsg); err != nil {
continue
}
if taskMsg.State == "completed" {
return &taskMsg, nil
}
}
return nil, err
}
// GetNTRIPMountPoint implements protocol.Operations.