| | |
| | | Mode string `mapstructure:"mode"` |
| | | Host string `mapstructure:"host"` |
| | | Port string `mapstructure:"port"` |
| | | Realm string `mapstructure:"realm"` |
| | | Username string `mapstructure:"username"` |
| | | Password string `mapstructure:"password"` |
| | | Role string `mapstructure:"role"` // agent 设备端, proxy 1400中转 不处理deivce, server 全功能 |
| | | } |
| | | |
| | | type client struct { |
| | | ServerId string `mapstructure:"server-id"` |
| | | DeviceID string `mapstructure:"device-id"` |
| | | Username string `mapstructure:"username"` |
| | | Password string `mapstructure:"password"` |
| | | ServerAddr string `mapstructure:"server-addr"` |
| | | ServerPort string `mapstructure:"server-port"` |
| | | Proto string `mapstructure:"proto" ` // http, https |
| | | UploadType string `mapstructure:"upload-type"` // binary, url |
| | | ChannelNo string `mapstructure:"channel-number"` // 通道号, 同id |
| | | HeartbeatInterval int `mapstructure:"heartbeat-interval"` // 心跳周期 |
| | | HeartbeatFailCount int `mapstructure:"heartbeat-count"` // 心跳超时次数 |
| | | Enable bool `mapstructure:"enable"` |
| | | } |
| | | |
| | | type logConfig struct { |
| | |
| | | SyncServer string `mapstructure:"sync-server"` |
| | | ReportServer string `mapstructure:"report-server"` |
| | | ReportInterval int `mapstructure:"report-interval"` |
| | | RetryInterval int `mapstructure:"retry-interval"` |
| | | CutFaceImage bool `mapstructure:"cut-face-image"` |
| | | Enable bool `mapstructure:"enable"` |
| | | } |
| | | |
| | | // 梯控设备 |
| | | type nvcs struct { |
| | | Model string `mapstructure:"model"` // 型号 |
| | | Port string `mapstructure:"port"` // 端口 |
| | | OSD string `mapstructure:"osd"` |
| | | } |
| | | |
| | | type rateLimitConfig struct { |
| | |
| | | var LogConf = &logConfig{} |
| | | var ForwardConf = &forward{} |
| | | var RateLimitConf = &rateLimitConfig{} |
| | | var ClientConf = &client{} |
| | | var NVCSConf = &nvcs{} |
| | | |
| | | // Init is an exported method that takes the environment starts the viper |
| | | // (external lib) and returns the configuration struct. |
| | |
| | | v.SetConfigType("yaml") |
| | | v.SetConfigName("gat1400") |
| | | v.AddConfigPath("./config/") |
| | | v.AddConfigPath("../config/") |
| | | err = v.ReadInConfig() |
| | | if err != nil { |
| | | fmt.Println("error on parsing configuration file", err) |
| | |
| | | v.UnmarshalKey("log", LogConf) |
| | | v.UnmarshalKey("forward", ForwardConf) |
| | | v.UnmarshalKey("rate-limit", RateLimitConf) |
| | | v.UnmarshalKey("client", ClientConf) |
| | | v.UnmarshalKey("nvcs", NVCSConf) |
| | | |
| | | if LogConf.Level == "" { |
| | | LogConf.Level = "info" |
| | | } |
| | | |
| | | if ForwardConf.ReportInterval == 0 { |
| | | ForwardConf.ReportInterval = 10 |
| | | } |
| | | |
| | | if ForwardConf.RetryInterval == 0 { |
| | | ForwardConf.RetryInterval = 5 |
| | | } |
| | | |
| | | if ClientConf.HeartbeatInterval == 0 { |
| | | ClientConf.HeartbeatInterval = 30 |
| | | } |
| | | |
| | | if ClientConf.Proto == "" { |
| | | ClientConf.Proto = "http" |
| | | } |
| | | |
| | | logger.SetLogLevel(LogConf.Level) |
| | | } |