You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
1.7 KiB
Go

package config
// def.go serves as a central place to view/edit config structs and device manager map
/*
Notes:
- I think that this is scuffed as all hell and I can probably vastly improve this.
- First order of buisness is to rework these definitons to even make sense
- What does the server ACTUALLY need to know and vice versa for a reactor
*/
import (
"sync"
)
// Server Config
type ServerConf struct {
// Structure to demarshall into
Server ServerConfig `mapstructure:"server"`
// I think this is unnessecary, who the hell cares?
//Reactors map[string]ReactorConfig `mapstructure:"reactors"`
sync.RWMutex
}
type ServerConfig struct {
// Server config settings
URL string `mapstructure:"db-url"`
Token string `mapstructure:"db-token"`
Orginization string `mapstructure:"db-org"`
Ports map[string]int `mapstructure:"ports"` // changed from map[string]string to map[string]int
Name string `mapstructure:"name"`
}
// Reactor Config
type ReactorConf struct {
// Structure to demarshall to
Reactor ReactorConfig `mapstructure:"reactor"`
// I think this is also unnessecary, again what does it matter?
// Devices map[int]DeviceConfig `mapstructure:"devices"`
sync.RWMutex
}
type ReactorConfig struct {
// Reactor config settings
Token string `mapstructure:"db-token"`
Bucket string `mapstructure:"db-bucket"`
URL string `mapstructure:"db-url",omitempty` // only needed by reactor
Name string `mapstructure:"name",omitempty` // not always set
Id uint32 `mapstructure:"id"`
}
// Device Config
type DeviceConfig struct {
// Device config settings
Address uint32 `mapstructure:"address"`
Interval uint32 `mapstructure:"interval"`
Name string `mapstructure:"name"`
}