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