视频分析2.0 多进程拆分仓库
zhangmeng
2019-04-30 2508d86158cf3fa3565ef808a5b92711c490af0f
add ipc run as server or not
5个文件已修改
23 ■■■■■ 已修改文件
analysis/demo/simpleIPC.go 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
analysis/main.go 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
analysis/proc.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
analysis/valib/ipc @ 8841f9 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
analysis/work/service/reciever.go 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
analysis/demo/simpleIPC.go
@@ -12,11 +12,11 @@
)
// RunYoloFromIPC recv data from ipc
func RunYoloFromIPC(ipcURL string) {
func RunYoloFromIPC(ipcURL string, asServer bool) {
    imageChan := make(chan srv.ImageInfo)
    d := srv.NewReciever(ipcURL, imageChan)
    go d.Run()
    go d.Run(asServer)
    cfg := "./data/yolo/cfg/yolov3.cfg"
    weights := "./data/yolo/yolov3.weights"
analysis/main.go
@@ -1,9 +1,9 @@
package main
import (
    "analysis/demo"
    "flag"
    "fmt"
    // "videoServer/demo"
)
var (
@@ -33,7 +33,7 @@
    // demo.Yolo(streamURL)
    // demo.CVDraw()
    // demo.RunYoloFromIPC(ipcURL)
    demo.RunYoloFromIPC(ipcURL, false)
    fakeStartProc()
}
analysis/proc.go
@@ -15,7 +15,7 @@
    imageChan := make(chan service.ImageInfo)
    d := service.NewReciever(ipcURL, imageChan)
    go d.Run()
    go d.Run(false)
    if proc == "" {
        d.Stop()
analysis/valib/ipc
@@ -1 +1 @@
Subproject commit 66d8e6695ada4090bdb81279d594f323be875bc7
Subproject commit 8841f9d2154a8e0653d30fdc04bde8a772665c8c
analysis/work/service/reciever.go
@@ -54,13 +54,18 @@
}
// Run run task from ipc data
func (r *Reciever) Run() {
    ipc := ipc.NewClient(r.ctxIPC.ctx, r.ipcURL)
func (r *Reciever) Run(asServer bool) {
    var i *ipc.IPC
    if asServer {
        i = ipc.NewServer(r.ctxIPC.ctx, r.ipcURL)
    } else {
        i = ipc.NewClient(r.ctxIPC.ctx, r.ipcURL)
    }
    dataChan := make(chan []byte)
    go unserilizeImageInfo(dataChan, r.chImage)
    ipc.RecvToChannel(dataChan)
    i.RecvToChannel(dataChan)
}
// Stop stop reciever, run in goroutine