no replay if not needed and no multiple replays at same time
This commit is contained in:
parent
7805e89f5f
commit
f07d27b325
@ -26,7 +26,7 @@ type Service interface {
|
||||
StopRecord() (*TrackingMetadata, error)
|
||||
StopAll() (*TrackingMetadata, error)
|
||||
|
||||
LoadTracking(trackingId uuid.UUID) (*Tracking, error)
|
||||
LoadTracking(trackingId uuid.UUID, replay bool) (*Tracking, error)
|
||||
DeleteTracking(trackingId uuid.UUID)
|
||||
|
||||
StartReplay()
|
||||
@ -216,7 +216,7 @@ func (t *trackingService) StopAll() (*TrackingMetadata, error) {
|
||||
return tm, err
|
||||
}
|
||||
|
||||
func (t *trackingService) LoadTracking(trackingId uuid.UUID) (*Tracking, error) {
|
||||
func (t *trackingService) LoadTracking(trackingId uuid.UUID, replay bool) (*Tracking, error) {
|
||||
if !(t.opMode == REPLAY || t.opMode == STOPPED || t.opMode == LIVE || t.opMode == RECORDING) {
|
||||
t.StopAll()
|
||||
}
|
||||
@ -225,7 +225,14 @@ func (t *trackingService) LoadTracking(trackingId uuid.UUID) (*Tracking, error)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if replay == false {
|
||||
return tracking, nil
|
||||
}
|
||||
t.safelyReplaceTracking(*tracking)
|
||||
if t.replaypipe != nil {
|
||||
t.replaypipe.Stop()
|
||||
t.replaypipe = nil
|
||||
}
|
||||
t.replaypipe = NewReplayPipeline(t.publisher, t.tracking)
|
||||
t.publisher.SetStreaming(true)
|
||||
t.opMode = REPLAY
|
||||
|
||||
@ -214,7 +214,7 @@ window.addEventListener("load", function(evt) {
|
||||
document.getElementById("replaystarten").onclick = function(evt) {
|
||||
let sel = document.getElementById("meas")
|
||||
console.log(trackings[sel.selectedIndex].UUID)
|
||||
fetch(`http://localhost:3011/trackings/${trackings[sel.selectedIndex].UUID}`, { method: 'GET'}).then(results => {
|
||||
fetch(`http://localhost:3011/trackings/${trackings[sel.selectedIndex].UUID}?replay=true`, { method: 'GET'}).then(results => {
|
||||
return results.json()
|
||||
}).then(r => {
|
||||
console.log(r.data.Data)
|
||||
|
||||
11
web/http.go
11
web/http.go
@ -23,9 +23,6 @@ func CreateServer(s core.Service, sub core.Subscriber, c *core.Configuration) {
|
||||
// Websocket
|
||||
app.Get("/ws", websocket.New(createFiberWebsocketHandler(sub)))
|
||||
|
||||
// TODO: Get all SerialPorts
|
||||
// app.Get("/serialports")
|
||||
|
||||
// Tracking persistence controls HTTP JSON RPC API
|
||||
trackings := app.Group("/trackings")
|
||||
trackings.Get("/", allTrackingsHandler(s, c)) // Get all trackings Metadata
|
||||
@ -59,7 +56,13 @@ func LoadTrackingHandler(s core.Service, c *core.Configuration) fiber.Handler {
|
||||
ctx.Status(404).JSON(err)
|
||||
return err
|
||||
}
|
||||
tracking, err := s.LoadTracking(uid)
|
||||
var replay bool
|
||||
if ctx.Query("replay", "false") == "true" {
|
||||
replay = true
|
||||
} else {
|
||||
replay = false
|
||||
}
|
||||
tracking, err := s.LoadTracking(uid, replay)
|
||||
if err != nil {
|
||||
logrus.Error(err)
|
||||
ctx.Status(404).JSON(err)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user