zhangzengfei
2024-10-22 4ca3791590a7bf50222aa5f80e53edf04739108a
config/config.go
@@ -9,14 +9,15 @@
)
type serve struct {
   ID       string `mapstructure:"id"`
   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 全功能
   ID        string `mapstructure:"id"`
   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 全功能
   Keepalive bool   `mapstructure:"keepalive"`
}
type client struct {
@@ -35,7 +36,7 @@
   Enable             bool   `mapstructure:"enable"`
}
type logConfig struct {
type log struct {
   LogWay string `mapstructure:"log-way"` // 日志输出
   Path   string `mapstructure:"path"`    // 日志存储路径
   Level  string `mapstructure:"level"`   // 日志等级
@@ -47,35 +48,53 @@
   ReportServer   string `mapstructure:"report-server"`
   ReportInterval int    `mapstructure:"report-interval"`
   RetryInterval  int    `mapstructure:"retry-interval"`
   Enable bool `mapstructure:"enable"`
   FTPServer      string `mapstructure:"ftp-server"`
   RecordServer   string `mapstructure:"record-server"`
}
type image struct {
   CutFaceImage bool    `mapstructure:"cut-face-image"`
   OriginWidth  float64 `mapstructure:"origin-width"`
   OriginHeight float64 `mapstructure:"origin-height"`
   CutFaceImage   bool   `mapstructure:"cut-face-image"`
   Enlarge        int    `mapstructure:"enlarge"`
   ImageUriPrefix string `mapstructure:"url-prefix"`
}
// 梯控设备
type nvcs struct {
   Model string `mapstructure:"model"` // 型号
   Port  string `mapstructure:"port"`  // 端口
   OSD   string `mapstructure:"osd"`
   Mac         string `mapstructure:"mac"`
   Model       string `mapstructure:"model"` // 型号
   Port        string `mapstructure:"port"`  // 端口
   OSD         string `mapstructure:"osd"`
   RunState    bool   `mapstructure:"run-state"`
   WaitRunTime int    `mapstructure:"wait-run-time"`
}
type rateLimitConfig struct {
type rfid struct {
   DevName   string `mapstructure:"dev"`
   Baud      int    `mapstructure:"baud"`
   ReadFloor bool   `mapstructure:"read-floor"`
   EPC       string `mapstructure:"epc"`
   Position  uint8  `mapstructure:"position"`
}
type rateLimit struct {
   FillInterval int64 `mapstructure:"fill-interval" json:"fillInterval"`
   Capacity     int64 `mapstructure:"capacity" json:"capacity"`
}
type sysTime struct {
   NTPServer    string `mapstructure:"ntp-server" json:"ntp-server"`
   SyncInterval int    `mapstructure:"sync-interval" json:"sync-interval"`
}
var ServeConf = &serve{}
var LogConf = &logConfig{}
var LogConf = &log{}
var ForwardConf = &forward{}
var RateLimitConf = &rateLimitConfig{}
var RateLimitConf = &rateLimit{}
var ClientConf = &client{}
var NVCSConf = &nvcs{}
var ImageConf = &image{}
var SysTimeConf = &sysTime{}
var RFIDConf = &rfid{}
// Init is an exported method that takes the environment starts the viper
// (external lib) and returns the configuration struct.
@@ -106,7 +125,9 @@
   v.UnmarshalKey("rate-limit", RateLimitConf)
   v.UnmarshalKey("client", ClientConf)
   v.UnmarshalKey("nvcs", NVCSConf)
   v.UnmarshalKey("rfid", RFIDConf)
   v.UnmarshalKey("image", ImageConf)
   v.UnmarshalKey("systime", SysTimeConf)
   if LogConf.Level == "" {
      LogConf.Level = "info"
@@ -128,5 +149,21 @@
      ClientConf.Proto = "http"
   }
   if ImageConf.Enlarge == 0 {
      ImageConf.Enlarge = 100
   }
   if NVCSConf.WaitRunTime == 0 {
      NVCSConf.WaitRunTime = 60
   }
   if SysTimeConf.SyncInterval == 0 {
      SysTimeConf.SyncInterval = 10
   }
   if SysTimeConf.NTPServer == "" {
      SysTimeConf.NTPServer = "ntp.aliyun.com"
   }
   logger.SetLogLevel(LogConf.Level)
}