去除u8区的高区操作功能

This commit is contained in:
algotao
2025-09-09 11:03:25 +08:00
parent fff023b56d
commit fade72885f
8 changed files with 369 additions and 216 deletions

View File

@@ -0,0 +1,61 @@
package main
import (
"encoding/json"
"fmt"
"os"
"git.algo.com.cn/public/saasapi"
)
// MapConfig 配置
type MapConfig struct {
Targets map[string]*Target `json:"targets"`
}
// Target 配置
type Target struct {
WriteByte *byte `json:"write_byte"` // byte值
WriteBytePos uint32 `json:"write_byte_pos"` // byte写入位置
WriteUint32 *uint32 `json:"write_uint32"` // uint32值
WriteUint32Pos uint32 `json:"write_uint32_pos"` // uint32写入位置
WriteFlag *bool `json:"write_flag"` // 标志位
WriteExpire *uint32 `json:"write_expire"` // 过期时间
WriteFlagWithExpirePos uint32 `json:"write_flag_with_expire_pos"` // 标志与过期写入位置
}
// LoadConfigFile 加载配置文件
func LoadMapFile(filename string) (*MapConfig, error) {
// 打开文件
f, err := os.Open(filename)
if err != nil {
return nil, err
}
defer f.Close()
sc := &MapConfig{}
err = json.NewDecoder(f).Decode(sc)
if err != nil {
return nil, err
}
for targetName, targetInfo := range sc.Targets {
if targetInfo.WriteBytePos >= uint32(saasapi.MAX_U8) {
err = fmt.Errorf("%v WriteBytePos>MAX_U8 , current %v, MAX %v", targetName, targetInfo.WriteBytePos, uint32(saasapi.MAX_U8)-1)
break
}
if targetInfo.WriteUint32Pos >= uint32(saasapi.MAX_U32) {
err = fmt.Errorf("%v WriteUint32Pos>MAX_U32 , current %v, MAX %v", targetName, targetInfo.WriteUint32Pos, uint32(saasapi.MAX_U32)-1)
break
}
if targetInfo.WriteFlagWithExpirePos >= uint32(saasapi.MAX_FLAG) {
err = fmt.Errorf("%v WriteFlagWithExpirePos>MAX_FLAG , current %v, MAX %v", targetName, targetInfo.WriteFlagWithExpirePos, uint32(saasapi.MAX_FLAG)-1)
break
}
}
return sc, err
}