From c14c59a2d04ee10f47c28fa9058a961cd07aacdd Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期四, 07 一月 2021 13:48:26 +0800
Subject: [PATCH] sbusClient doReq从[]Mesg中先解出MsgInfo

---
 sbusClient.go |   21 ++++++++++++++++++---
 1 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/sbusClient.go b/sbusClient.go
index 66f6ba5..679b6fc 100644
--- a/sbusClient.go
+++ b/sbusClient.go
@@ -12,9 +12,17 @@
 	nodes []bhomebus.NetNode
 }
 
+type ProcInfo struct {
+	Name 			string 				`json:"name"` // 杩涚▼鍚嶇О
+	ID   			string 				`json:"id"`   // 杩涚▼鍞竴鏍囪瘑
+	Info 			string 				`json:"info"` // 杩涚▼鐨勬弿杩颁俊鎭紝鐢ㄤ簬鍖哄垎鍚屼竴杩涚▼鍚嶇О涓嬪涓繘绋�
+}
+
 type MsgInfo struct {
+	SrcProc  		ProcInfo   			`json:"srcProc"`    	// 婧愯繘绋嬪熀鏈俊鎭�
+	MsgType   		string 				`json:"msgType"`        // 鏁版嵁绫诲瀷锛屽彲涓鸿姹傘�佸彂甯冦�佽闃呫�佸簲绛旂瓑
 	Topic 			string				`json:"topic"`			//璇锋眰涓婚
-	Body 			[]byte				`json:"body"`			//璇锋眰鍐呭
+	Body 			[]byte				`json:"body"`			//璇锋眰鍐呭鎴栬�呭弽棣堢粨鏋�
 }
 
 type request struct {
@@ -154,10 +162,17 @@
 	defer s.Close()
 	var ret []bhomebus.Mesg
 	if n := s.SendandrecvTimeout(nodes, data, &ret, 5000);n == 0 {  //n==0琛ㄧず娌℃湁璇锋眰鎴愬姛
-		return nil, fmt.Errorf("s.SendandrecvTimeout result n:%d", n)
+		return nil, fmt.Errorf("doReq s.SendandrecvTimeout result n:%d", n)
 	} else {
+		logPrint("doReq SendandrecvTimeout n:", n)
 		if len(ret) > 0 {
-			return ret[0].Data, nil
+			var retMsg MsgInfo
+			err = json.Unmarshal(ret[0].Data, &retMsg)
+			if err != nil {
+				logPrint("doReq unmarshal to MsgInfo err:", err)
+				return nil, err
+			}
+			return retMsg.Body, nil
 		}
 		return nil, fmt.Errorf("no any response")
 	}

--
Gitblit v1.8.0