diff --git a/config/conf.go b/config/conf.go index d50dcf1..48ce1fd 100644 --- a/config/conf.go +++ b/config/conf.go @@ -1,104 +1,33 @@ package config import ( - "encoding/json" - "fmt" - "goAdapter/setting" + "gopkg.in/ini.v1" "log" "os" "path/filepath" ) -var exeCurDir string +var ( + AppMode string + HttpPort string +) + +func LoadServer(file *ini.File){ + AppMode = file.Section("server").Key("AppMode").MustString("debug") + HttpPort = file.Section("server").Key("HttpPort").MustString(":8080") +} /**************获取配置信息************************/ func GetConf() { - exeCurDir, _ = filepath.Abs(filepath.Dir(os.Args[0])) + exeCurDir, _ := filepath.Abs(filepath.Dir(os.Args[0])) log.Println(exeCurDir) - if NetworkParaRead() == true { - for _, v := range setting.NetworkParamList.NetworkParam { - log.Printf("networkParam %s,%+v\n", v.Name, v) - } + path := exeCurDir + "/config/config.ini" + iniFile, err := ini.Load(path) + if err != nil{ + log.Println("Load config.ini err,",err) } + LoadServer(iniFile) } -func FileExist(path string) bool { - _, err := os.Lstat(path) - return !os.IsNotExist(err) -} -func NetworkParaRead() bool { - - fileDir := exeCurDir + "/selfpara/networkpara.json" - - if FileExist(fileDir) == true { - fp, err := os.OpenFile(fileDir, os.O_RDONLY, 0777) - if err != nil { - fmt.Println("open networkpara.json err", err) - return false - } - defer fp.Close() - - data := make([]byte, 500) - dataCnt, err := fp.Read(data) - - //fmt.Println(string(data[:dataCnt])) - - err = json.Unmarshal(data[:dataCnt], &setting.NetworkParamList) - if err != nil { - fmt.Println("networkpara unmarshal err", err) - - return false - } - return true - } else { - fmt.Println("networkpara.json is not exist") - - os.MkdirAll(exeCurDir+"/selfpara", os.ModePerm) - fp, err := os.Create(fileDir) - if err != nil { - fmt.Println("create networkpara.json err", err) - return false - } - defer fp.Close() - - setting.NetworkParamList.NetworkParam = append(setting.NetworkParamList.NetworkParam, setting.NetworkParamTemplate{ - ID: "1", - Name: "eth0", - DHCP: "1", - IP: "192.168.4.156", - Netmask: "255.255.255.0", - Broadcast: "192.168.4.255"}) - setting.NetworkParamList.NetworkParam = append(setting.NetworkParamList.NetworkParam, setting.NetworkParamTemplate{ - ID: "2", - Name: "eth1", - DHCP: "1", - IP: "192.168.4.156", - Netmask: "255.255.255.0", - Broadcast: "192.168.4.255"}) - NetworkParaWrite() - - return true - } -} - -func NetworkParaWrite() { - - fileDir := exeCurDir + "/selfpara/networkpara.json" - - fp, err := os.OpenFile(fileDir, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0777) - if err != nil { - fmt.Println("open networkpara.json err", err) - } - defer fp.Close() - - sJson, _ := json.Marshal(setting.NetworkParamList) - fmt.Println(string(sJson)) - - _, err = fp.Write(sJson) - if err != nil { - fmt.Println("write networkpara.json err", err) - } - fp.Sync() -} diff --git a/config/config.ini b/config/config.ini new file mode 100644 index 0000000..760fff0 --- /dev/null +++ b/config/config.ini @@ -0,0 +1,5 @@ + +[server] +# debug开发模式 release生产模式 +AppMode = debug +HttpPort = :8080 diff --git a/device/deviceType.go b/device/deviceType.go index 455c3ff..f2d2e2d 100644 --- a/device/deviceType.go +++ b/device/deviceType.go @@ -62,7 +62,6 @@ func ReadDeviceNodeTypeMapFromJson() bool { }{} exeCurDir, _ := filepath.Abs(filepath.Dir(os.Args[0])) - //fileDir := exeCurDir + "/selfpara/deviceNodeType.json" //遍历json和so文件 pluginPath := exeCurDir + "/plugin" @@ -113,50 +112,6 @@ func ReadDeviceNodeTypeMapFromJson() bool { } return true - - //if fileExist(fileDir) == true { - // fp, err := os.OpenFile(fileDir, os.O_RDONLY, 0777) - // if err != nil { - // log.Println("open DeviceNodeType.json err", err) - // return false - // } - // defer fp.Close() - // - // data := make([]byte, 20480) - // dataCnt, err := fp.Read(data) - // - // DeviceNodeTypeMap.DeviceNodeType = make([]DeviceNodeTypeTemplate, 0) - // - // err = json.Unmarshal(data[:dataCnt], &DeviceNodeTypeMap) - // if err != nil { - // log.Println("DeviceNodeType unmarshal err", err) - // - // return false - // } - // //创建设备模版 - // DeviceTypePluginMap = make(map[int]*plugin.Plugin) - // //log.Printf("plugin %+v\n",DeviceNodeTypeMap) - // for k,v := range DeviceNodeTypeMap.DeviceNodeType{ - // - // str := "plugin/" + v.TemplateType + ".so" - // log.Printf("pluginStr %s\n",str) - // log.Printf("plugin %+v\n",DeviceNodeTypeMap) - // template,pluginerr := plugin.Open(str) - // if pluginerr!=nil{ - // log.Printf("openPlug %s err\n",pluginerr) - // } - // DeviceTypePluginMap[k] = template - // } - // //log.Printf("plugin %+v\n",DeviceTypePluginMap) - // - // return true - //} else { - // log.Println("DeviceNodeType.json is not exist") - // //创建设备模版 - // DeviceTypePluginMap = make(map[int]*plugin.Plugin) - // - // return false - //} } func updataDeviceType(path string,fileName []string) ([]string,error){ diff --git a/go.mod b/go.mod index 681ed9e..222c160 100644 --- a/go.mod +++ b/go.mod @@ -16,4 +16,5 @@ require ( github.com/thinkgos/gomodbus/v2 v2.1.7 // indirect golang.org/x/net v0.0.0-20200625001655-4c5254603344 // indirect golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 + gopkg.in/ini.v1 v1.57.0 ) diff --git a/go.sum b/go.sum index 7a14ff1..2a61ec6 100644 --- a/go.sum +++ b/go.sum @@ -79,6 +79,8 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/ini.v1 v1.57.0 h1:9unxIsFcTt4I55uWluz+UmL95q4kdJ0buvQ1ZIqVQww= +gopkg.in/ini.v1 v1.57.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/goAdapter b/goAdapter index 1366c0e..42cd41d 100755 Binary files a/goAdapter and b/goAdapter differ diff --git a/httpServer/routerNetwork.go b/httpServer/routerNetwork.go index 57799e1..1332a9c 100644 --- a/httpServer/routerNetwork.go +++ b/httpServer/routerNetwork.go @@ -52,9 +52,7 @@ func apiSetNetwork(context *gin.Context){ setting.NetworkParamList.NetworkParam[1] = *rNetworkParam setting.SetNetworkParam("2",*rNetworkParam) } - - //main.networkParaWrite(setting.NetworkParamList) - + setting.NetworkParaWrite() aParam := struct{ Code string `json:"Code"` diff --git a/main.go b/main.go index 9c55662..da2bf7e 100644 --- a/main.go +++ b/main.go @@ -33,6 +33,7 @@ func main() { config.GetConf() /**************网口初始化***********************/ + setting.NetworkParaRead() for _, v := range setting.NetworkParamList.NetworkParam { log.Println("set network ", v.Name) setting.SetNetworkParam(v.ID, v) @@ -77,9 +78,8 @@ func main() { /**************httpserver初始化****************/ // 默认启动方式,包含 Logger、Recovery 中间件 - serverWeb := &http.Server{ - Addr: ":8080", + Addr: config.HttpPort, Handler: httpServer.RouterWeb(), ReadTimeout: 5 * time.Second, WriteTimeout: 10 * time.Second, diff --git a/plugin/wdt200/wdt200.json b/plugin/wdt200/wdt200.json new file mode 100644 index 0000000..4db10ba --- /dev/null +++ b/plugin/wdt200/wdt200.json @@ -0,0 +1 @@ +{"templateName":"风机盘管控制器","templateType":"wdt200","templateMessage":""} diff --git a/plugin/wdt200/wdt200.so b/plugin/wdt200/wdt200.so new file mode 100644 index 0000000..a2d6055 Binary files /dev/null and b/plugin/wdt200/wdt200.so differ diff --git a/plugin/wdt300/.DS_Store b/plugin/wdt300/.DS_Store new file mode 100644 index 0000000..855d83e Binary files /dev/null and b/plugin/wdt300/.DS_Store differ diff --git a/plugin/wdt300/wdt300.json b/plugin/wdt300/wdt300.json new file mode 100644 index 0000000..78635c5 --- /dev/null +++ b/plugin/wdt300/wdt300.json @@ -0,0 +1 @@ +{"templateName":"风机盘管控制器","templateType":"wdt300","templateMessage":""} diff --git a/plugin/wdt300/wdt300.so b/plugin/wdt300/wdt300.so new file mode 100644 index 0000000..2264b92 Binary files /dev/null and b/plugin/wdt300/wdt300.so differ diff --git a/selfpara/networkpara.json b/selfpara/networkpara.json index d2421fa..a42b7ff 100644 --- a/selfpara/networkpara.json +++ b/selfpara/networkpara.json @@ -1 +1 @@ -{"NetworkParam":[{"ID":"1","Name":"en0","DHCP":"0","IP":"192.168.4.156","Netmask":"255.255.255.0","Broadcast":"192.168.4.255"}]} +{"NetworkParam":[{"ID":"1","Name":"eth0","DHCP":"1","IP":"","Netmask":"","Broadcast":"","MAC":""}]} \ No newline at end of file diff --git a/setting/network.go b/setting/network.go index 00b3b95..b515629 100644 --- a/setting/network.go +++ b/setting/network.go @@ -3,11 +3,14 @@ package setting import ( "bytes" "encoding/hex" + "encoding/json" "fmt" "github.com/safchain/ethtool" "log" "net" + "os" "os/exec" + "path/filepath" "runtime" "strings" ) @@ -95,11 +98,12 @@ func GetNetworkParam() NetworkParamListTemplate{ GetLinkState(v.ID) ethInfo,err := GetNetInformation(v.Name) + log.Printf("ethInfo %+v\n",ethInfo) if err == nil{ NetworkParamList.NetworkParam[k].IP = ethInfo.IP NetworkParamList.NetworkParam[k].Netmask = ethInfo.Mask NetworkParamList.NetworkParam[k].Broadcast = ethInfo.GatewayIP - NetworkParamList.NetworkParam[k].MAC = ethInfo.Mac + NetworkParamList.NetworkParam[k].MAC = strings.ToUpper(ethInfo.Mac) } } @@ -226,4 +230,88 @@ func GetNetInformation(netName string) (NetInformation, error) { } info.GatewayIP = strings.Trim(string(out), "\n") return info, nil +} + +func fileExist(path string) bool { + _, err := os.Lstat(path) + return !os.IsNotExist(err) +} + +func NetworkParaRead() bool { + + exeCurDir, _ := filepath.Abs(filepath.Dir(os.Args[0])) + + fileDir := exeCurDir + "/selfpara/networkpara.json" + + if fileExist(fileDir) == true { + fp, err := os.OpenFile(fileDir, os.O_RDONLY, 0777) + if err != nil { + fmt.Println("open networkpara.json err", err) + return false + } + defer fp.Close() + + data := make([]byte, 500) + dataCnt, err := fp.Read(data) + + //fmt.Println(string(data[:dataCnt])) + + err = json.Unmarshal(data[:dataCnt], &NetworkParamList) + if err != nil { + fmt.Println("networkpara unmarshal err", err) + + return false + } + return true + } else { + fmt.Println("networkpara.json is not exist") + + os.MkdirAll(exeCurDir+"/selfpara", os.ModePerm) + fp, err := os.Create(fileDir) + if err != nil { + fmt.Println("create networkpara.json err", err) + return false + } + defer fp.Close() + + NetworkParamList.NetworkParam = append(NetworkParamList.NetworkParam, NetworkParamTemplate{ + ID: "1", + Name: "eth0", + DHCP: "1", + IP: "192.168.4.156", + Netmask: "255.255.255.0", + Broadcast: "192.168.4.255"}) + NetworkParamList.NetworkParam = append(NetworkParamList.NetworkParam, NetworkParamTemplate{ + ID: "2", + Name: "eth1", + DHCP: "1", + IP: "192.168.4.156", + Netmask: "255.255.255.0", + Broadcast: "192.168.4.255"}) + NetworkParaWrite() + + return true + } +} + +func NetworkParaWrite() { + + exeCurDir, _ := filepath.Abs(filepath.Dir(os.Args[0])) + + fileDir := exeCurDir + "/selfpara/networkpara.json" + + fp, err := os.OpenFile(fileDir, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0777) + if err != nil { + fmt.Println("open networkpara.json err", err) + } + defer fp.Close() + + sJson, _ := json.Marshal(NetworkParamList) + fmt.Println(string(sJson)) + + _, err = fp.Write(sJson) + if err != nil { + fmt.Println("write networkpara.json err", err) + } + fp.Sync() } \ No newline at end of file