| .gitignore | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| camera/camera.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| go.mod | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| go.sum | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| util/sqlite.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| util/util.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
.gitignore
@@ -24,3 +24,5 @@ taskpubsub *.log* .idea .vscode camera/camera.go
@@ -1,6 +1,7 @@ package camera import ( "strings" "taskpubsub/sdk" "taskpubsub/util" @@ -43,10 +44,20 @@ createCameraRecvServerAndListen(cam.Id) } //文件初始化 for _,f := range util.FileArr { logger.Info(f) } for _,f :=range util.FileArr { createCameraRecvServerAndListen(f.Id) } // 手动输入的主题 initInnerTopic() go autoUpdateCamera(util.Cameraflag) go autoUpdateFiles(util.Fileflag) } // camera 接受数据 @@ -89,7 +100,9 @@ var oldcameras []string for key := range SocketManage { oldcameras = append(oldcameras, key) if !strings.HasPrefix(key,util.File_Video_Id_Pre) && !strings.HasPrefix(key,util.File_Audio_Id_Pre) && !strings.HasPrefix(key,util.File_Img_Id_Pre){ oldcameras = append(oldcameras, key) } } var newcameras []string @@ -115,6 +128,37 @@ } } //动态处理文件 func autoUpdateFiles(fileflag chan bool) { for _ = range fileflag { logger.Info("do auto del fileflag") var oldIds []string for key := range SocketManage { if strings.HasPrefix(key,util.File_Video_Id_Pre) || strings.HasPrefix(key,util.File_Audio_Id_Pre) || strings.HasPrefix(key,util.File_Img_Id_Pre){ oldIds = append(oldIds, key) } } var newIds []string for _, f := range util.FileArr { newIds = append(newIds, f.Id) } fileListUpdate := util.Difference(oldIds, newIds) logger.Info(fileListUpdate) for key, op := range fileListUpdate { if op == "add" { createCameraRecvServerAndListen(key) } else { deleteCameraRecvServer(key) } } } } func Recv(socket util.SocketContext) { tryCount := 0 go.mod
@@ -3,12 +3,13 @@ go 1.12 require ( basic.com/dbapi.git v0.0.0-20190831100542-bc0c5d2266dd basic.com/pubsub/protomsg.git v0.0.0-20190905061607-7b96dafe8f99 basic.com/valib/deliver.git v0.0.0-20190927081905-2d390df9ede3 basic.com/dbapi.git v0.0.0-20191204094909-66f2832e579e // indirect basic.com/pubsub/protomsg.git v0.0.0-20191204083653-a32445f65a09 // indirect basic.com/valib/deliver.git v0.0.0-20190927081905-2d390df9ede3 // indirect basic.com/valib/gopherdiscovery.git v0.0.0-20190605034340-15d89d8b4e28 basic.com/valib/logger.git v0.0.0-20190904090733-b737ad2f8f18 basic.com/valib/logger.git v0.0.0-20190928113028-4907b08c4159 // indirect basic.com/valib/shm.git v0.0.0-20191029034255-156e610f9bca // indirect github.com/Microsoft/go-winio v0.4.14 // indirect github.com/ajg/form v1.5.1 // indirect github.com/gogo/protobuf v1.2.1 github.com/golang/protobuf v1.3.1 @@ -16,7 +17,7 @@ github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a github.com/spf13/viper v1.4.0 golang.org/x/net v0.0.0-20190522155817-f3200d17e092 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b google.golang.org/grpc v1.23.0 // indirect nanomsg.org/go-mangos v1.4.0 ) go.sum
@@ -1,17 +1,19 @@ basic.com/dbapi.git v0.0.0-20190831100542-bc0c5d2266dd h1:8Q5PUZqdRvyXZ6aTOaHP6ge8Ir2Qs/eD0r8Sv8P/8p4= basic.com/dbapi.git v0.0.0-20190831100542-bc0c5d2266dd/go.mod h1:eDXPnxaz6jZPDvBSk7ya7oSASWPCuUEgRTJCjsfKt/Q= basic.com/pubsub/protomsg.git v0.0.0-20190905061607-7b96dafe8f99 h1:YSmWZPp/mHoq+/L5d0iTsqjiCcVwZqEQRQAXxQFSbvY= basic.com/pubsub/protomsg.git v0.0.0-20190905061607-7b96dafe8f99/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU= basic.com/dbapi.git v0.0.0-20191204094909-66f2832e579e h1:z4Q3H6oQVfme7w4IEuhaYeO3R5CcY9UR4bQiJmCqJqY= basic.com/dbapi.git v0.0.0-20191204094909-66f2832e579e/go.mod h1:eDXPnxaz6jZPDvBSk7ya7oSASWPCuUEgRTJCjsfKt/Q= basic.com/pubsub/protomsg.git v0.0.0-20191204083653-a32445f65a09 h1:3Aiyv/In6oJvjUI6jb5N+vt7S4jUqUf+bVEbOKxK6k0= basic.com/pubsub/protomsg.git v0.0.0-20191204083653-a32445f65a09/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU= basic.com/valib/deliver.git v0.0.0-20190927081905-2d390df9ede3 h1:VY23IpugB/FsU2hSnVeLjZKX5cSgNmhcSEiw6vxX+bg= basic.com/valib/deliver.git v0.0.0-20190927081905-2d390df9ede3/go.mod h1:bkYiTUGzckyNOjAgn9rB/DOjFzwoSHJlruuWQ6hu6IY= basic.com/valib/gopherdiscovery.git v0.0.0-20190605034340-15d89d8b4e28 h1:3hejanzPEBvZSSvjIqayB83/6/6SLLrX9oNZAdiYELg= basic.com/valib/gopherdiscovery.git v0.0.0-20190605034340-15d89d8b4e28/go.mod h1:CQ+UJyZV8MRzwwckncdUDu6/RDTKAzSIPCxc9tFcwPs= basic.com/valib/logger.git v0.0.0-20190904090733-b737ad2f8f18 h1:lfBv29ApfEvecKkUIpKHHsS1qu74ZZGNmzZkazK9PJ8= basic.com/valib/logger.git v0.0.0-20190904090733-b737ad2f8f18/go.mod h1:SPlOGUUlxCscwF1dkqmLb0oJXVqg1uJ8hsPXLFxrw1M= basic.com/valib/logger.git v0.0.0-20190928113028-4907b08c4159 h1:e5KopUEW/E9qmE3gUS6m7uO+/ti/N2m8rMMHB/HVqPk= basic.com/valib/logger.git v0.0.0-20190928113028-4907b08c4159/go.mod h1:SPlOGUUlxCscwF1dkqmLb0oJXVqg1uJ8hsPXLFxrw1M= basic.com/valib/shm.git v0.0.0-20191029034255-156e610f9bca h1:Y2Lgpxx5Tq0nKSAaB00F4piJhljMgPpfsBGQ2qpEloE= basic.com/valib/shm.git v0.0.0-20191029034255-156e610f9bca/go.mod h1:yYRM7bM9y0KKd4IfNt3myjsvkFVFIIWNjsvK14tNbq4= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/Microsoft/go-winio v0.4.14 h1:+hMXMk01us9KgxGb7ftKQt2Xpf5hH/yky+TDA+qxleU= github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/ajg/form v1.5.1 h1:t9c7v8JUKu/XxOGBU0yjNpaMloxGEJhUkqFRq0ibGeU= github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= @@ -78,6 +80,7 @@ github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= @@ -90,6 +93,7 @@ github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= @@ -135,6 +139,8 @@ golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b h1:ag/x1USPSsqHud38I9BAC88qdNLDHHtQ4mlgQIZPPNA= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= util/sqlite.go
@@ -18,9 +18,11 @@ var camval dbapi.CameraApi var taskapi dbapi.TaskApi var sdkapi dbapi.SdkApi var fileApi dbapi.FileAnalysisApi var IsInit bool var CameraIds []protomsg.Camera var FileArr []protomsg.FileAnalysis var CameraTasks []protomsg.CameraAndTaskInfo //var TaskSdks []protomsg.TaskSdkInfo @@ -38,11 +40,14 @@ var Sdkflag = make(chan bool) var TaskSdkflag = make(chan bool) var Cameraflag = make(chan bool) var Fileflag = make(chan bool) var newsdkmsg = &protomsg.DbChangeMessage{} func initDbData(initchan chan bool) { CameraIds = camval.FindAll() FileArr,_ = fileApi.GetAnalysisFiles() logger.Info("==============camera camera with task ================") CameraTasks = camval.FindAllCameraAndTask() @@ -57,7 +62,7 @@ func updateDbData(opt []byte) { if err := proto.Unmarshal(opt, newsdkmsg); err != nil { logger.Error("publichshMessage ", err) logger.Error("publish Message ", err) return } @@ -68,6 +73,12 @@ Cameraflag <- true logger.Info(CameraIds) logger.Info("update camera finish.") case protomsg.TableChanged_T_File: logger.Info("update analysis files") FileArr,_ = fileApi.GetAnalysisFiles() Fileflag <- true logger.Info("analysis files:",FileArr) logger.Info("update files finish.") case protomsg.TableChanged_T_CameraTask: logger.Info("update cameratask") @@ -92,7 +103,7 @@ logger.Info("update Sdkinfos finished!") default: logger.Info("unknow type operation") logger.Info("other type operation") } //logger.Info(newsdkmsg) util/util.go
@@ -15,6 +15,10 @@ // 不论共享内存/mangos发送/接收失败最大次数,认为当前通道不再使用, 关闭 // 有问题,摄像机长时间断网后重连,但是通道关闭 tooLongFailed = 300 File_Img_Id_Pre = "img_" File_Video_Id_Pre = "video_" File_Audio_Id_Pre = "audio_" ) type SocketContext struct {