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