main.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package main
  2. import (
  3. "time"
  4. "lc/common/onvif/discovery"
  5. "lc/common/util"
  6. )
  7. // /usr/local/srs/objs srs的服务器路径
  8. // 球机 一键报警
  9. var pool *util.Pool
  10. var IDGen util.IdWorker
  11. var appName = "camera"
  12. var appVersion = "1.0.1"
  13. func DiscoveryCamera(args ...interface{}) interface{} {
  14. for {
  15. devices, err := discovery.StartDiscovery(5 * time.Second)
  16. if err == nil && len(devices) > 0 {
  17. for _, d := range devices {
  18. GetLcDeviceMgr().Update(d.ID, d.XAddr)
  19. }
  20. }
  21. time.Sleep(10 * time.Minute)
  22. }
  23. }
  24. func GetNextUint64() uint64 {
  25. u64, err := IDGen.NextId()
  26. if err != nil {
  27. u64 = util.MlNow().Unix()
  28. }
  29. return uint64(u64)
  30. }
  31. func main() {
  32. util.InitLogrus("release")
  33. if err := loadAppConfig(); err != nil {
  34. return
  35. }
  36. IDGen.InitIdWorker(1000, 1)
  37. GetMQTTMgr()
  38. if err := GetLcDeviceMgr().initAllLcDevice(); err != nil {
  39. return
  40. }
  41. pool = util.NewPool(5)
  42. pool.Add(DiscoveryCamera, 1) //发现摄像头
  43. pool.Add(GetMQTTMgr().MQTTMessageHandle, 2) //发布进程
  44. pool.Add(GetMQTTMgr().MQTTConnectMgr, 3) //保持连接
  45. pool.Add(GetLcDeviceMgr().Handle, 4) //mqtt来消息执行
  46. pool.Run()
  47. pool.Wait()
  48. }