Files
be.ems/lib/core/mml_client/send.go
2023-09-08 19:01:23 +08:00

75 lines
1.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package mmlclient
import (
"fmt"
"strings"
)
// 发送MML
// ip 网元IP地址
// msg 指令
func MMLSendMsgToString(ip, msg string) (string, error) {
// 创建MMLClient实例
client, err := NewMMLClient(ip)
if err != nil {
return "", fmt.Errorf("创建MMLClient实例失败%v", err)
}
defer client.Close()
// 发送数据
err = client.Send(msg)
if err != nil {
return "", fmt.Errorf("发送数据失败:%v", err)
}
// 接收数据
data, err := client.Receive()
if err != nil {
return "", fmt.Errorf("接收数据失败:%v", err)
}
return data, nil
}
// 发送MML
// ip 网元IP地址
// msg 指令
func MMLSendMsgToMap(ip, msg string) (map[string]string, error) {
// 发送获取数据
str, err := MMLSendMsgToString(ip, msg)
// 初始化一个map用于存储拆分后的键值对
m := make(map[string]string)
var items []string
// 按照分隔符"\r\n"进行拆分
if strings.Contains(str, "\r\n") {
items = strings.Split(str, "\r\n")
}
// 按照分隔符"\n"进行拆分
if strings.Contains(str, "\n") {
items = strings.Split(str, "\n")
}
// 遍历拆分后的结果
for _, item := range items {
var pair []string
// 按照分隔符"="进行拆分键值对
if strings.Contains(item, "=") {
pair = strings.Split(item, "=")
}
// 按照分隔符":"进行拆分键值对
if strings.Contains(item, ":") {
pair = strings.Split(item, ":")
}
if len(pair) == 2 {
// 将键值对存入map中
m[pair[0]] = pair[1]
}
}
return m, err
}