diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 7b43a4b..0000000 Binary files a/.DS_Store and /dev/null differ diff --git a/.gitignore b/.gitignore index 2b34384..22b8816 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,6 @@ goAdapter .idea plugin/ config/ -selfpara/ \ No newline at end of file +selfpara/ +log/ +.DS_Store \ No newline at end of file diff --git a/device/commManage.go b/device/commManage.go index 110bf14..ea29403 100644 --- a/device/commManage.go +++ b/device/commManage.go @@ -83,6 +83,7 @@ func (c *CommunicationManageTemplate) AnalysisRx() { //清除本次接收数据 rxBufCnt = 0 } + time.Sleep(10 * time.Millisecond) } } diff --git a/device/deviceType.go b/device/deviceType.go index 3f9f62e..3a86933 100644 --- a/device/deviceType.go +++ b/device/deviceType.go @@ -23,17 +23,17 @@ type DeviceNodeTypeTemplate struct { //配置参数 type DeviceNodeTypeMapStruct struct { - DeviceNodeType []DeviceNodeTypeTemplate + DeviceNodeType []DeviceNodeTypeTemplate } -type DeviceNodeTypeLuaState struct{ +type DeviceNodeTypeLuaState struct { LuaState *lua.LState TypeName string CollName string } var DeviceNodeTypeMap = DeviceNodeTypeMapStruct{ - DeviceNodeType : make([]DeviceNodeTypeTemplate,0), + DeviceNodeType: make([]DeviceNodeTypeTemplate, 0), } //var DeviceTypePluginMap = make(map[int]*plugin.Plugin) @@ -41,8 +41,7 @@ var DeviceTypePluginMap = make(map[int]*lua.LState) //var DeviceTypePluginMap = make([]DeviceNodeTypeLuaState,0) - -func init(){ +func init() { } @@ -68,31 +67,31 @@ func WriteDeviceNodeTypeMapToJson() { log.Println("write DeviceNodeType.json sucess") } -func updataDeviceType(path string,fileName []string) ([]string,error){ +func updataDeviceType(path string, fileName []string) ([]string, error) { - rd,err := ioutil.ReadDir(path) - if err != nil{ - log.Println("readDir err,",err) - return fileName,err + rd, err := ioutil.ReadDir(path) + if err != nil { + log.Println("readDir err,", err) + return fileName, err } - for _,fi := range rd{ - if fi.IsDir(){ + for _, fi := range rd { + if fi.IsDir() { fullDir := path + "/" + fi.Name() - fileName,_ = updataDeviceType(fullDir,fileName) - }else{ + fileName, _ = updataDeviceType(fullDir, fileName) + } else { fullName := path + "/" + fi.Name() - if strings.Contains(fi.Name(),".json"){ + if strings.Contains(fi.Name(), ".json") { //log.Println("fullName ",fullName) - fileName = append(fileName,fullName) - }else if strings.Contains(fi.Name(),".lua"){ + fileName = append(fileName, fullName) + } else if strings.Contains(fi.Name(), ".lua") { //log.Println("fullName ",fullName) - fileName = append(fileName,fullName) + fileName = append(fileName, fullName) } } } - return fileName,nil + return fileName, nil } func ReadDeviceNodeTypeMap() bool { @@ -107,10 +106,10 @@ func ReadDeviceNodeTypeMap() bool { //遍历json和so文件 pluginPath := exeCurDir + "/plugin" - fileNameMap := make([]string,0) - fileNameMap,_ = updataDeviceType(pluginPath,fileNameMap) - for _,v := range fileNameMap{ - if strings.Contains(v,".json"){ + fileNameMap := make([]string, 0) + fileNameMap, _ = updataDeviceType(pluginPath, fileNameMap) + for _, v := range fileNameMap { + if strings.Contains(v, ".json") { fp, err := os.OpenFile(v, os.O_RDONLY, 0777) if err != nil { log.Printf("open %s err", v) @@ -133,7 +132,7 @@ func ReadDeviceNodeTypeMap() bool { nodeType.TemplateName = deviceTypeTemplate.TemplateName nodeType.TemplateMessage = deviceTypeTemplate.TemplateMessage - DeviceNodeTypeMap.DeviceNodeType = append(DeviceNodeTypeMap.DeviceNodeType,nodeType) + DeviceNodeTypeMap.DeviceNodeType = append(DeviceNodeTypeMap.DeviceNodeType, nodeType) } } @@ -149,6 +148,8 @@ func ReadDeviceNodeTypeMap() bool { log.Printf("openPlug %s ok\n", fileName) } DeviceTypePluginMap[k] = template + DeviceTypePluginMap[k].SetGlobal("GetCRCModbus", DeviceTypePluginMap[k].NewFunction(setting.GetCRCModbus)) + DeviceTypePluginMap[k].SetGlobal("CheckCRCModbus", DeviceTypePluginMap[k].NewFunction(setting.CheckCRCModbus)) } } } @@ -189,6 +190,3 @@ func ReadDeviceNodeTypeMap() bool { // } // } //} - - - diff --git a/go.mod b/go.mod index f6d281a..a187458 100644 --- a/go.mod +++ b/go.mod @@ -32,7 +32,6 @@ require ( github.com/yuin/gluamapper v0.0.0-20150323120927-d836955830e7 github.com/yuin/gopher-lua v0.0.0-20200816102855-ee81675732da golang.org/x/net v0.0.0-20200625001655-4c5254603344 // indirect - golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 golang.org/x/sys v0.0.0-20200420163511-1957bb5e6d1f // indirect gopkg.in/ini.v1 v1.57.0 layeh.com/gopher-luar v1.0.8 diff --git a/go.sum b/go.sum index 6977282..1b98569 100644 --- a/go.sum +++ b/go.sum @@ -114,8 +114,6 @@ golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20200625001655-4c5254603344 h1:vGXIOMxbNfDTk/aXCmfdLgkrSV+Z2tcbze+pEc3v5W4= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 h1:qwRHBd0NqMbJxfbotnDhm2ByMI1Shq4Y6oRJo21SGJA= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190204203706-41f3e6584952/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/setting/mlua.go b/setting/mlua.go index 24eaeab..1fc36b5 100644 --- a/setting/mlua.go +++ b/setting/mlua.go @@ -205,8 +205,5 @@ func LuaOpenFile(filePath string) (*lua.LState, error) { //加载Lua err := lState.DoFile(filePath) - lState.SetGlobal("GetCRCModbus", lState.NewFunction(GetCRCModbus)) - lState.SetGlobal("CheckCRCModbus", lState.NewFunction(CheckCRCModbus)) - return lState, err } diff --git a/setting/network.go b/setting/network.go index 80b4101..e5772ab 100644 --- a/setting/network.go +++ b/setting/network.go @@ -19,17 +19,17 @@ type NetworkNameListTemplate struct { Name []string `json:"Name"` } -type NetworkParamTemplate struct{ - Name string `json:"Name"` - DHCP string `json:"DHCP"` - IP string `json:"IP"` - Netmask string `json:"Netmask"` - Broadcast string `json:"Broadcast"` - MAC string `json:"MAC"` - LinkStatus uint32 `json:"-"` +type NetworkParamTemplate struct { + Name string `json:"Name"` + DHCP string `json:"DHCP"` + IP string `json:"IP"` + Netmask string `json:"Netmask"` + Broadcast string `json:"Broadcast"` + MAC string `json:"MAC"` + LinkStatus uint32 `json:"-"` } -type NetworkParamListTemplate struct{ +type NetworkParamListTemplate struct { NetworkParam []*NetworkParamTemplate } @@ -43,34 +43,33 @@ type NetInformation struct { GatewayIP string } -var NetworkNameList = NetworkNameListTemplate{} +var NetworkNameList = NetworkNameListTemplate{} var NetworkParamList = &NetworkParamListTemplate{ - NetworkParam: make([]*NetworkParamTemplate,0), + NetworkParam: make([]*NetworkParamTemplate, 0), } -func init(){ - +func init() { } -func (n *NetworkParamListTemplate)CreatNetworkPara(name string){ +func (n *NetworkParamListTemplate) CreatNetworkPara(name string) { networkParam := &NetworkParamTemplate{ - Name:name, - DHCP:"1", + Name: name, + DHCP: "1", } - n.NetworkParam = append(n.NetworkParam,networkParam) + n.NetworkParam = append(n.NetworkParam, networkParam) } //获取当前网络参数 -func (n *NetworkParamListTemplate)GetNetworkParam(){ +func (n *NetworkParamListTemplate) GetNetworkParam() { - for _,v := range n.NetworkParam{ + for _, v := range n.NetworkParam { - ethInfo,err := GetNetInformation(v.Name) + ethInfo, err := GetNetInformation(v.Name) - if err == nil{ + if err == nil { v.IP = ethInfo.IP v.Netmask = ethInfo.Mask v.Broadcast = ethInfo.GatewayIP @@ -81,10 +80,10 @@ func (n *NetworkParamListTemplate)GetNetworkParam(){ } //设置网络参数 -func (n *NetworkParamListTemplate)SetNetworkParam(param NetworkParamTemplate) { +func (n *NetworkParamListTemplate) SetNetworkParam(param NetworkParamTemplate) { - for _,v := range n.NetworkParam{ - if v.Name == param.Name{ + for _, v := range n.NetworkParam { + if v.Name == param.Name { v.DHCP = param.DHCP v.IP = param.IP v.Netmask = param.Netmask @@ -95,7 +94,7 @@ func (n *NetworkParamListTemplate)SetNetworkParam(param NetworkParamTemplate) { NetworkParaWrite() } -func (n *NetworkParamTemplate)GetNetworkStatus(){ +func (n *NetworkParamTemplate) GetNetworkStatus() { ethHandle, _ := ethtool.NewEthtool() defer ethHandle.Close() @@ -103,23 +102,23 @@ func (n *NetworkParamTemplate)GetNetworkStatus(){ n.LinkStatus, _ = ethHandle.LinkState(n.Name) } -func (n *NetworkParamTemplate)CmdSetDHCP(){ +func (n *NetworkParamTemplate) CmdSetDHCP() { //cmd := exec.Command("udhcpc","-i",n.Name,"5") - cmd := exec.Command("udhcpc","-i",n.Name) + cmd := exec.Command("udhcpc", "-i", n.Name) var out bytes.Buffer cmd.Stdout = &out - cmd.Run() //执行到此会阻塞5s + cmd.Run() //执行到此会阻塞5s str := out.String() log.Println(str) } -func (n *NetworkParamTemplate)CmdSetStaticIP(){ +func (n *NetworkParamTemplate) CmdSetStaticIP() { - strNetMask := "netmask " + n.Netmask + strNetMask := "netmask " + n.Netmask cmd := exec.Command("ifconfig", n.Name, n.IP, @@ -127,11 +126,11 @@ func (n *NetworkParamTemplate)CmdSetStaticIP(){ var out bytes.Buffer cmd.Stdout = &out - cmd.Start() //执行到此,直接往后执行 + cmd.Start() //执行到此,直接往后执行 - cmd2 := exec.Command("/sbin/route","add","default","gw",n.Broadcast) + cmd2 := exec.Command("/sbin/route", "add", "default", "gw", n.Broadcast) cmd2.Stdout = &out - cmd2.Start() //执行到此,直接往后执行 + cmd2.Start() //执行到此,直接往后执行 } func findNetCard(name string) (string, error) { @@ -234,10 +233,10 @@ func NetworkParaRead() bool { return false } - for _,v := range NetworkParamList.NetworkParam{ - if v.DHCP == "1"{ + for _, v := range NetworkParamList.NetworkParam { + if v.DHCP == "1" { v.CmdSetDHCP() - }else if v.DHCP == "0"{ + } else if v.DHCP == "0" { v.CmdSetStaticIP() } } @@ -246,19 +245,19 @@ func NetworkParaRead() bool { } 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() - - log.Printf("networkName %v\n",NetworkNameList) - for _,v := range NetworkNameList.Name{ - NetworkParamList.CreatNetworkPara(v) - NetworkParaWrite() - } + //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() + // + //log.Printf("networkName %v\n",NetworkNameList) + //for _,v := range NetworkNameList.Name{ + // NetworkParamList.CreatNetworkPara(v) + // NetworkParaWrite() + //} return true } @@ -285,4 +284,4 @@ func NetworkParaWrite() { } fmt.Println("write networkpara.json ok") fp.Sync() -} \ No newline at end of file +}