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) } }