zhangzengfei
2023-09-04 e8e536d1cb52d2126c8c7ce2ba1c7a76f7208678
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package controllers
 
import (
    "basic.com/valib/bhomeclient.git"
    "basic.com/valib/logger.git"
    "encoding/json"
    "io/ioutil"
    "os"
    "os/exec"
    "strings"
    "vamicro/extend/util"
    "vamicro/system-service/vo"
)
 
type LoraController struct {
 
}
 
func (lc *LoraController) GetConfig(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply  {
    r := &bhomeclient.Reply{ Success:true }
    mqttf := util.GetVamicroPath()+"/lora.config"
    if util.FileExists(mqttf) {
        b, err := ioutil.ReadFile(mqttf)
        if err == nil {
            var set vo.LoraConf
            if err = json.Unmarshal(b, &set);err == nil {
                r.Data = set
            }
        }
    }
 
    return r
}
 
func (lc *LoraController) SaveConf (h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply  {
    var reqBody vo.LoraConf
    err := c.BindJSON(&reqBody)
    if err != nil {
        return &bhomeclient.Reply{Msg: err.Error()}
    }
    b, err := json.Marshal(reqBody)
    if err != nil {
        return &bhomeclient.Reply{Msg:err.Error()}
    }
 
    loraf := util.GetVamicroPath()+"/lora.config"
    err = ioutil.WriteFile(loraf, b, os.ModePerm)
    if err != nil {
        return &bhomeclient.Reply{Msg:err.Error()}
    }
    var cmdArr []string
    cmdArr = append(cmdArr, "/opt/lora1303/bin/lora_config.sh")
    err = reflectObjCmd(&cmdArr, reqBody)
    if err !=nil {
        return &bhomeclient.Reply{Msg:err.Error()}
    }
 
    cmd := strings.Join(cmdArr, " ")
    logger.Debug("LoraConf cmd: ", cmd)
 
    b, e := exec.Command(cmd).Output()
    if e == nil {
        return &bhomeclient.Reply{Success:true, Msg: "配置成功"}
    }
    return &bhomeclient.Reply{ Msg:string(b) }
}