From b2500a8eb6665ce6efe0a7d954b6f101af83d7ec Mon Sep 17 00:00:00 2001
From: 554325746@qq.com <554325746@qq.com>
Date: 星期三, 25 三月 2020 11:31:41 +0800
Subject: [PATCH] debug

---
 common/helper.go |   95 +++++++++++++++++++++++++++++++++++++----------
 1 files changed, 74 insertions(+), 21 deletions(-)

diff --git a/common/helper.go b/common/helper.go
index dc6f7b0..9734eb9 100644
--- a/common/helper.go
+++ b/common/helper.go
@@ -1,43 +1,96 @@
 package common
 
 import (
-	"encoding/json"
-	"fmt"
-	"io/ioutil"
-	"strconv"
+    "context"
+    "encoding/json"
+    "fmt"
+    "io/ioutil"
+    "strconv"
+    "time"
+
+    "basic.com/pubsub/protomsg.git"
+    "github.com/gogo/protobuf/proto"
 )
+
+// GetIpcAddress get ipc
+func GetIpcAddress(shm bool, id string) string {
+    if shm {
+        return id
+    }
+    return `ipc:///tmp/` + id + `.ipc`
+}
 
 // SubConfig sub
 type SubConfig struct {
-	SoFile string            `json:"so_file_path"`
-	Env    string            `json:"runtime"`
-	Param  map[string]string `json:"param"`
+    SoFile string            `json:"so_file_path"`
+    Env    string            `json:"runtime"`
+    Param  map[string]string `json:"param"`
 }
 
 // SdkConfig sdk
 type SdkConfig struct {
-	SoFile string            `json:"so_file_path"`
-	Env    string            `json:"runtime"`
-	Param  map[string]string `json:"param"`
-	Sub    *SubConfig        `json:"sub"`
+    SoFile string            `json:"so_file_path"`
+    Env    string            `json:"runtime"`
+    Param  map[string]string `json:"param"`
+    Sub    *SubConfig        `json:"sub"`
 }
 
 // ReadConfig conf
 func ReadConfig(file string) (SdkConfig, error) {
-	data, err := ioutil.ReadFile(file)
-	if err != nil {
-		return SdkConfig{}, fmt.Errorf("READ SDK CONFIG FILE %s ERROR", file)
-	}
+    data, err := ioutil.ReadFile(file)
+    if err != nil {
+        return SdkConfig{}, fmt.Errorf("READ SDK CONFIG FILE %s ERROR", file)
+    }
 
-	//璇诲彇鐨勬暟鎹负json鏍煎紡锛岄渶瑕佽繘琛岃В鐮�
-	var v SdkConfig
-	err = json.Unmarshal(data, &v)
+    //璇诲彇鐨勬暟鎹负json鏍煎紡锛岄渶瑕佽繘琛岃В鐮�
+    var v SdkConfig
+    err = json.Unmarshal(data, &v)
 
-	return v, err
+    return v, err
 }
 
 // Atoi atoi
 func Atoi(s string) int {
-	i, _ := strconv.Atoi(s)
-	return i
+    i, _ := strconv.Atoi(s)
+    return i
+}
+
+// UnserilizeProto un
+func UnserilizeProto(ctx context.Context, data <-chan []byte, out chan<- protomsg.SdkMessage, fn func(...interface{})) {
+    for {
+        select {
+        case <-ctx.Done():
+            return
+        case d := <-data:
+            if len(d) < 100 {
+                continue
+            }
+            msg := protomsg.SdkMessage{}
+            if err := proto.Unmarshal(d, &msg); err != nil {
+                fn("UnserilizeProto Unmarshal msg 澶勭悊寮傚父 Error:", err)
+                continue
+            }
+
+            out <- msg
+
+        default:
+            time.Sleep(10 * time.Millisecond)
+        }
+    }
+}
+
+// UnpackImage unpack
+func UnpackImage(msg protomsg.SdkMessage, fnName string, fn func(...interface{})) *protomsg.Image {
+    // 鍙嶅簭鍒楀寲鏁版嵁寰楀埌sdk鍏ュ弬
+    i := &protomsg.Image{}
+    err := proto.Unmarshal(msg.Data, i)
+    if err != nil {
+        fn(fnName, " protobuf Unmarshal decode CameraImage error: ", err.Error())
+        return nil
+    }
+    if i.Data == nil {
+        fn(fnName, " protomsg.Image data null")
+        return nil
+    }
+    return i
 }

--
Gitblit v1.8.0