From 7c6a958f00e327a8991f48093456de7cb84cf918 Mon Sep 17 00:00:00 2001
From: 554325746@qq.com <554325746@qq.com>
Date: 星期三, 05 二月 2020 20:20:24 +0800
Subject: [PATCH] change log for proto marshal

---
 common/helper.go |   96 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 96 insertions(+), 0 deletions(-)

diff --git a/common/helper.go b/common/helper.go
new file mode 100644
index 0000000..2e4db0d
--- /dev/null
+++ b/common/helper.go
@@ -0,0 +1,96 @@
+package common
+
+import (
+	"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"`
+}
+
+// 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"`
+}
+
+// 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)
+	}
+
+	//璇诲彇鐨勬暟鎹负json鏍煎紡锛岄渶瑕佽繘琛岃В鐮�
+	var v SdkConfig
+	err = json.Unmarshal(data, &v)
+
+	return v, err
+}
+
+// Atoi atoi
+func Atoi(s string) int {
+	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 澶勭悊寮傚父:", 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