mirror of https://bitbucket.org/ausocean/av.git
cmd/revid-cli: using closure for readPin func so that we don't have to have global revid
This commit is contained in:
parent
b9c53791d8
commit
69029889fe
|
@ -75,8 +75,6 @@ var canProfile = true
|
|||
// The logger that will be used throughout
|
||||
var log *logger.Logger
|
||||
|
||||
var rv *revid.Revid
|
||||
|
||||
const (
|
||||
metaPreambleKey = "copyright"
|
||||
metaPreambleData = "ausocean.org/license/content2019"
|
||||
|
@ -89,9 +87,8 @@ func main() {
|
|||
runDurationPtr := flag.Duration("runDuration", defaultRunDuration, "How long do you want revid to run for?")
|
||||
|
||||
cfg := handleFlags()
|
||||
var err error
|
||||
if !*useNetsender {
|
||||
rv, err = revid.New(cfg, nil)
|
||||
rv, err := revid.New(cfg, nil)
|
||||
if err != nil {
|
||||
cfg.Logger.Log(logger.Fatal, pkg+"failed to initialiase revid", "error", err.Error())
|
||||
}
|
||||
|
@ -268,21 +265,34 @@ func run(cfg revid.Config) error {
|
|||
log.Log(logger.Info, pkg+"running in NetSender mode")
|
||||
|
||||
var vars map[string]string
|
||||
var rv *revid.Revid
|
||||
|
||||
// initialize NetSender and use NetSender's logger
|
||||
readPin := func(pin *netsender.Pin) error {
|
||||
switch {
|
||||
case pin.Name == "X23":
|
||||
pin.Value = rv.Bitrate()
|
||||
case pin.Name[0] == 'X':
|
||||
return sds.ReadSystem(pin)
|
||||
default:
|
||||
pin.Value = -1
|
||||
}
|
||||
return nil // Return error only if we want NetSender to generate an error
|
||||
}
|
||||
|
||||
ns, err := netsender.New(log, nil, readPin, nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
vars, _ = ns.Vars()
|
||||
vs := ns.VarSum()
|
||||
|
||||
rv, err = revid.New(cfg, ns)
|
||||
if err != nil {
|
||||
log.Log(logger.Fatal, pkg+"could not initialise revid", "error", err.Error())
|
||||
}
|
||||
|
||||
vars, _ = ns.Vars()
|
||||
vs := ns.VarSum()
|
||||
|
||||
// Update revid to get latest config settings from netreceiver.
|
||||
err = rv.Update(vars)
|
||||
if err != nil {
|
||||
|
@ -357,20 +367,6 @@ func run(cfg revid.Config) error {
|
|||
}
|
||||
}
|
||||
|
||||
// readPin is callback func for netsender so that pins can be appropriately set
|
||||
// for this circumstance.
|
||||
func readPin(pin *netsender.Pin) error {
|
||||
switch {
|
||||
case pin.Name == "X23":
|
||||
pin.Value = rv.Bitrate()
|
||||
case pin.Name[0] == 'X':
|
||||
return sds.ReadSystem(pin)
|
||||
default:
|
||||
pin.Value = -1
|
||||
}
|
||||
return nil // Return error only if we want NetSender to generate an error
|
||||
}
|
||||
|
||||
// flagStrings implements an appending string set flag.
|
||||
type flagStrings []string
|
||||
|
||||
|
|
Loading…
Reference in New Issue