| 123456789101112131415161718192021222324252627282930313233343536373839404142 | package modbusimport (	"encoding/xml"	"os")// // LoadItems 从 path 中读取并解析 XML 配置// func LoadItems(path string) (ItemInfo, error) {// 	name, err := osi.ReadDir(path, DefaultConfigSuffix)// 	if err != nil {// 		return nil, err// 	}// 	items := make(map[string]ItemInfo)// 	for i := 0; i < len(name); i++ {// 		var itemInfo ItemInfo// 		itemInfo, err = ReadFile(name[i])// 		if err != nil {// 			return nil, err// 		}// 		items[itemInfo.Name.String()] = itemInfo// 	}// 	return items, nil// }// ReadFile 解析 name 至 ItemInfofunc ReadFile(name string) (ItemInfo, error) {	b, err := os.ReadFile(name)	if err != nil {		return ItemInfo{}, err	}	return ReadFrom(b)}func ReadFrom(b []byte) (ItemInfo, error) {	var itemInfo ItemInfo	if err := xml.Unmarshal(b, &itemInfo); err != nil {		return ItemInfo{}, err	}	itemInfo.Init()	return itemInfo, nil}
 |