增加:1、增加了ini文件读取,用来配置系统信息
This commit is contained in:
parent
1e3ecd1786
commit
66b04cf546
103
config/conf.go
103
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()
|
||||
}
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
|
||||
[server]
|
||||
# debug开发模式 release生产模式
|
||||
AppMode = debug
|
||||
HttpPort = :8080
|
|
@ -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){
|
||||
|
|
1
go.mod
1
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
|
||||
)
|
||||
|
|
2
go.sum
2
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=
|
||||
|
|
|
@ -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"`
|
||||
|
|
4
main.go
4
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,
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
{"templateName":"风机盘管控制器","templateType":"wdt200","templateMessage":""}
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1 @@
|
|||
{"templateName":"风机盘管控制器","templateType":"wdt300","templateMessage":""}
|
Binary file not shown.
|
@ -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":""}]}
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -227,3 +231,87 @@ 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()
|
||||
}
|
Loading…
Reference in New Issue