mirror of https://bitbucket.org/ausocean/av.git
revid: add Burst method to revid
This commit is contained in:
parent
6a580ce594
commit
054f0a5e77
|
@ -54,7 +54,6 @@ USAGE
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"io"
|
"io"
|
||||||
"os"
|
"os"
|
||||||
"runtime/pprof"
|
"runtime/pprof"
|
||||||
|
@ -199,7 +198,8 @@ func run(rv *revid.Revid, ns *netsender.Sender, l *logger.Logger, nl *netlogger.
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
case modeBurst:
|
case modeBurst:
|
||||||
err = burst(l, rv, ns)
|
dur := time.Duration(rv.Config().BurstPeriod) * time.Second
|
||||||
|
err = rv.Burst(dur)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
l.Log(logger.Warning, pkg+"could not start burst", "error", err.Error())
|
l.Log(logger.Warning, pkg+"could not start burst", "error", err.Error())
|
||||||
ns.SetMode(modePaused, &vs)
|
ns.SetMode(modePaused, &vs)
|
||||||
|
@ -254,21 +254,3 @@ func readPin(rv *revid.Revid) func(pin *netsender.Pin) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// burst starts revid, waits for time specified in the Config.BurstPeriod
|
|
||||||
// field, and then stops revid.
|
|
||||||
//
|
|
||||||
// TODO: move this functionality to the revid API into a Revid.Burst(time) method.
|
|
||||||
func burst(l *logger.Logger, r *revid.Revid, s *netsender.Sender) error {
|
|
||||||
l.Log(logger.Info, pkg+"starting burst")
|
|
||||||
|
|
||||||
err := r.Start()
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("could not start revid: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
time.Sleep(time.Duration(r.Config().BurstPeriod) * time.Second)
|
|
||||||
l.Log(logger.Info, pkg+"stopping burst")
|
|
||||||
r.Stop()
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
|
@ -492,6 +492,21 @@ func (r *Revid) Stop() {
|
||||||
r.running = false
|
r.running = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Burst starts revid, waits for time specified, and then stops revid.
|
||||||
|
func (r *Revid) Burst(duration time.Duration) error {
|
||||||
|
r.cfg.Logger.Log(logger.Info, pkg+"starting burst")
|
||||||
|
|
||||||
|
err := r.Start()
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("could not start revid: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
time.Sleep(duration)
|
||||||
|
r.cfg.Logger.Log(logger.Info, pkg+"stopping burst")
|
||||||
|
r.Stop()
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (r *Revid) IsRunning() bool {
|
func (r *Revid) IsRunning() bool {
|
||||||
r.mu.Lock()
|
r.mu.Lock()
|
||||||
defer r.mu.Unlock()
|
defer r.mu.Unlock()
|
||||||
|
|
Loading…
Reference in New Issue