main.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package main
  2. import (
  3. "time"
  4. "github.com/sirupsen/logrus"
  5. "lc/common/onvif/discovery"
  6. "lc/common/util"
  7. )
  8. // /usr/local/srs/objs srs的服务器路径
  9. //球机 一键报警
  10. var gopool *util.Pool
  11. var IDGen util.IdWorker
  12. var appname = "camera"
  13. var appversion = "1.0.1"
  14. func DiscoveryCamera(args ...interface{}) interface{} {
  15. for {
  16. devices, err := discovery.StartDiscovery(5 * time.Second)
  17. if err == nil && len(devices) > 0 {
  18. for _, d := range devices {
  19. err := GetLcDeviceMgr().Update(d.ID, d.XAddr)
  20. if err != nil {
  21. logrus.Warnf("DiscoveryCamera.Update:未配置该ID[%s],addr[%s]", d.ID, d.XAddr)
  22. }
  23. logrus.Infof("DiscoveryCamera.Update:ID[%s],addr[%s]", d.ID, d.XAddr)
  24. }
  25. }
  26. time.Sleep(10 * time.Minute)
  27. }
  28. return 0
  29. }
  30. func GetNextUint64() uint64 {
  31. u64, err := IDGen.NextId()
  32. if err != nil {
  33. logrus.Errorf("IDGen.NextId发生错误:%s", err.Error())
  34. u64 = util.MlNow().Unix()
  35. }
  36. return uint64(u64)
  37. }
  38. func main() {
  39. util.InitLogrus("release")
  40. if err := loadAppConfig(); err != nil {
  41. logrus.Errorf("加载app.json失败:%s", err.Error())
  42. return
  43. }
  44. IDGen.InitIdWorker(1000, 1)
  45. GetMQTTMgr()
  46. if err := GetLcDeviceMgr().initAllLcDevice(); err != nil {
  47. logrus.Errorf("调用initAllLcDevice失败:%s", err.Error())
  48. return
  49. }
  50. gopool = util.NewPool(5)
  51. gopool.Add(DiscoveryCamera, 1) //发现摄像头
  52. gopool.Add(GetMQTTMgr().MQTTMessageHandle, 2) //发布进程
  53. gopool.Add(GetMQTTMgr().MQTTConnectMgr, 3) //保持连接
  54. gopool.Add(GetLcDeviceMgr().Handle, 4) //mqtt来消息执行
  55. gopool.Run()
  56. gopool.Wait()
  57. }