package main import ( "time" "github.com/sirupsen/logrus" "lc/common/onvif/discovery" "lc/common/util" ) // /usr/local/srs/objs srs的服务器路径 //球机 一键报警 var gopool *util.Pool var IDGen util.IdWorker var appname = "camera" var appversion = "1.0.1" func DiscoveryCamera(args ...interface{}) interface{} { for { devices, err := discovery.StartDiscovery(5 * time.Second) if err == nil && len(devices) > 0 { for _, d := range devices { err := GetLcDeviceMgr().Update(d.ID, d.XAddr) if err != nil { logrus.Warnf("DiscoveryCamera.Update:未配置该ID[%s],addr[%s]", d.ID, d.XAddr) } logrus.Infof("DiscoveryCamera.Update:ID[%s],addr[%s]", d.ID, d.XAddr) } } time.Sleep(10 * time.Minute) } return 0 } func GetNextUint64() uint64 { u64, err := IDGen.NextId() if err != nil { logrus.Errorf("IDGen.NextId发生错误:%s", err.Error()) u64 = util.MlNow().Unix() } return uint64(u64) } func main() { util.InitLogrus("release") if err := loadAppConfig(); err != nil { logrus.Errorf("加载app.json失败:%s", err.Error()) return } IDGen.InitIdWorker(1000, 1) GetMQTTMgr() if err := GetLcDeviceMgr().initAllLcDevice(); err != nil { logrus.Errorf("调用initAllLcDevice失败:%s", err.Error()) return } gopool = util.NewPool(5) gopool.Add(DiscoveryCamera, 1) //发现摄像头 gopool.Add(GetMQTTMgr().MQTTMessageHandle, 2) //发布进程 gopool.Add(GetMQTTMgr().MQTTConnectMgr, 3) //保持连接 gopool.Add(GetLcDeviceMgr().Handle, 4) //mqtt来消息执行 gopool.Run() gopool.Wait() }