机舱采集器——不在使用
This commit is contained in:
365
1.Software/UI/gateway-ui/service/handler.go
Normal file
365
1.Software/UI/gateway-ui/service/handler.go
Normal file
@@ -0,0 +1,365 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"crypto/md5"
|
||||
"encoding/hex"
|
||||
"fmt"
|
||||
"gateway-ui/model"
|
||||
"net/http"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
|
||||
l "gateway-ui/log"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
type Handler struct {
|
||||
logger l.Logger
|
||||
}
|
||||
|
||||
func InitHandler(logger l.Logger) *Handler {
|
||||
handler := Handler{
|
||||
logger: logger,
|
||||
}
|
||||
return &handler
|
||||
}
|
||||
|
||||
func (h *Handler) Ping(c *gin.Context) {
|
||||
h.logger.Info("ping")
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"message": "pong",
|
||||
})
|
||||
}
|
||||
|
||||
func (h *Handler) GetConf(c *gin.Context) {
|
||||
conf := model.Config{}
|
||||
if err := conf.Read(); err != nil {
|
||||
c.String(http.StatusInternalServerError, fmt.Sprintf("读取config.toml文件失败: %s", err.Error()))
|
||||
h.logger.Error(fmt.Sprintf("读取config.toml文件失败: %s", err.Error()))
|
||||
return
|
||||
}
|
||||
netconf := model.NetConfig{}
|
||||
if err := netconf.Read(); err != nil {
|
||||
c.String(http.StatusInternalServerError, fmt.Sprintf("读取netcfg.yaml文件失败: %s", err.Error()))
|
||||
h.logger.Error(fmt.Sprintf("读取netcfg.yaml文件失败: %s", err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
res := ConfReq{}
|
||||
res.Addresses = netconf.Network.Ethernets.Eth1.Addresses[0]
|
||||
res.Via = netconf.Network.Ethernets.Eth1.Routes[0].Via
|
||||
|
||||
res.Broker = conf.MQTT.Broker
|
||||
h.logger.Info(conf.MQTT.Broker)
|
||||
res.Client_id = conf.MQTT.Client_id
|
||||
res.Device_id = conf.MQTT.Device_id
|
||||
res.Fansnum = conf.MQTT.Fansnum
|
||||
res.Windfarm = conf.MQTT.Windfarm
|
||||
|
||||
res.Ntp = conf.Sys.Ntp
|
||||
|
||||
res.Ch0_measurpoint = conf.MQTT.Ch0_measurpoint
|
||||
res.Ch0_measurpointdirection = conf.MQTT.Ch0_measurpointdirection
|
||||
res.Ch0_samplingfrequency = conf.MQTT.Ch0_samplingfrequency
|
||||
res.Ch0_samplingtime = conf.MQTT.Ch0_samplingtime
|
||||
res.Ch0_sensorparameters = conf.MQTT.Ch0_sensorparameters
|
||||
|
||||
res.Ch1_measurpoint = conf.MQTT.Ch1_measurpoint
|
||||
res.Ch1_measurpointdirection = conf.MQTT.Ch1_measurpointdirection
|
||||
res.Ch1_samplingfrequency = conf.MQTT.Ch1_samplingfrequency
|
||||
res.Ch1_samplingtime = conf.MQTT.Ch1_samplingtime
|
||||
res.Ch1_sensorparameters = conf.MQTT.Ch1_sensorparameters
|
||||
|
||||
res.Ch2_measurpoint = conf.MQTT.Ch2_measurpoint
|
||||
res.Ch2_measurpointdirection = conf.MQTT.Ch2_measurpointdirection
|
||||
res.Ch2_samplingfrequency = conf.MQTT.Ch2_samplingfrequency
|
||||
res.Ch2_samplingtime = conf.MQTT.Ch2_samplingtime
|
||||
res.Ch2_sensorparameters = conf.MQTT.Ch2_sensorparameters
|
||||
|
||||
res.Ch3_measurpoint = conf.MQTT.Ch3_measurpoint
|
||||
res.Ch3_measurpointdirection = conf.MQTT.Ch3_measurpointdirection
|
||||
res.Ch3_samplingfrequency = conf.MQTT.Ch3_samplingfrequency
|
||||
res.Ch3_samplingtime = conf.MQTT.Ch3_samplingtime
|
||||
res.Ch3_sensorparameters = conf.MQTT.Ch3_sensorparameters
|
||||
|
||||
res.Ch4_measurpoint = conf.MQTT.Ch4_measurpoint
|
||||
res.Ch4_measurpointdirection = conf.MQTT.Ch4_measurpointdirection
|
||||
res.Ch4_samplingfrequency = conf.MQTT.Ch4_samplingfrequency
|
||||
res.Ch4_samplingtime = conf.MQTT.Ch4_samplingtime
|
||||
res.Ch4_sensorparameters = conf.MQTT.Ch4_sensorparameters
|
||||
|
||||
res.Ch5_measurpoint = conf.MQTT.Ch5_measurpoint
|
||||
res.Ch5_measurpointdirection = conf.MQTT.Ch5_measurpointdirection
|
||||
res.Ch5_samplingfrequency = conf.MQTT.Ch5_samplingfrequency
|
||||
res.Ch5_samplingtime = conf.MQTT.Ch5_samplingtime
|
||||
res.Ch5_sensorparameters = conf.MQTT.Ch5_sensorparameters
|
||||
|
||||
res.Ch6_measurpoint = conf.MQTT.Ch6_measurpoint
|
||||
res.Ch6_measurpointdirection = conf.MQTT.Ch6_measurpointdirection
|
||||
res.Ch6_samplingfrequency = conf.MQTT.Ch6_samplingfrequency
|
||||
res.Ch6_samplingtime = conf.MQTT.Ch6_samplingtime
|
||||
res.Ch6_sensorparameters = conf.MQTT.Ch6_sensorparameters
|
||||
|
||||
res.Ch7_measurpoint = conf.MQTT.Ch7_measurpoint
|
||||
res.Ch7_measurpointdirection = conf.MQTT.Ch7_measurpointdirection
|
||||
res.Ch7_samplingfrequency = conf.MQTT.Ch7_samplingfrequency
|
||||
res.Ch7_samplingtime = conf.MQTT.Ch7_samplingtime
|
||||
res.Ch7_sensorparameters = conf.MQTT.Ch7_sensorparameters
|
||||
|
||||
c.JSON(http.StatusOK, res)
|
||||
}
|
||||
|
||||
func (h *Handler) SetConf(c *gin.Context) {
|
||||
|
||||
req := ConfReq{}
|
||||
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
c.JSON(http.StatusBadRequest, fmt.Sprintf("请求转换JSON失败: %s", err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
conf := model.Config{}
|
||||
if err := conf.Read(); err != nil {
|
||||
c.JSON(http.StatusInternalServerError, fmt.Sprintf("读取config.toml文件失败: %s", err.Error()))
|
||||
return
|
||||
}
|
||||
netconf := model.NetConfig{}
|
||||
if err := netconf.Read(); err != nil {
|
||||
c.JSON(http.StatusInternalServerError, fmt.Sprintf("读取netconf.yaml文件失败: %s", err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
if req.Addresses != "" {
|
||||
netconf.Network.Ethernets.Eth1.Addresses[0] = req.Addresses
|
||||
}
|
||||
if req.Via != "" {
|
||||
netconf.Network.Ethernets.Eth1.Routes[0].Via = req.Via
|
||||
}
|
||||
|
||||
if req.Broker != "" {
|
||||
conf.MQTT.Broker = req.Broker
|
||||
}
|
||||
if req.Client_id != "" {
|
||||
conf.MQTT.Client_id = req.Client_id
|
||||
}
|
||||
if req.Device_id != "" {
|
||||
conf.MQTT.Device_id = req.Device_id
|
||||
}
|
||||
if req.Fansnum != "" {
|
||||
conf.MQTT.Fansnum = req.Fansnum
|
||||
}
|
||||
if req.Windfarm != "" {
|
||||
conf.MQTT.Windfarm = req.Windfarm
|
||||
}
|
||||
if req.Ntp != "" {
|
||||
conf.Sys.Ntp = req.Ntp
|
||||
}
|
||||
if req.Ch0_measurpoint != "" {
|
||||
conf.MQTT.Ch0_measurpoint = req.Ch0_measurpoint
|
||||
}
|
||||
if req.Ch0_measurpointdirection != "" {
|
||||
conf.MQTT.Ch0_measurpointdirection = req.Ch0_measurpointdirection
|
||||
}
|
||||
if req.Ch0_samplingfrequency != 0 {
|
||||
conf.MQTT.Ch0_samplingfrequency = req.Ch0_samplingfrequency
|
||||
}
|
||||
if req.Ch0_samplingtime != 0 {
|
||||
conf.MQTT.Ch0_samplingtime = req.Ch0_samplingtime
|
||||
}
|
||||
if req.Ch0_sensorparameters != 0 {
|
||||
conf.MQTT.Ch0_sensorparameters = req.Ch0_sensorparameters
|
||||
}
|
||||
if req.Ch1_measurpoint != "" {
|
||||
conf.MQTT.Ch1_measurpoint = req.Ch1_measurpoint
|
||||
}
|
||||
if req.Ch1_measurpointdirection != "" {
|
||||
conf.MQTT.Ch1_measurpointdirection = req.Ch1_measurpointdirection
|
||||
}
|
||||
if req.Ch1_samplingfrequency != 0 {
|
||||
conf.MQTT.Ch1_samplingfrequency = req.Ch1_samplingfrequency
|
||||
}
|
||||
if req.Ch1_samplingtime != 0 {
|
||||
conf.MQTT.Ch1_samplingtime = req.Ch1_samplingtime
|
||||
}
|
||||
if req.Ch1_sensorparameters != 0 {
|
||||
conf.MQTT.Ch1_sensorparameters = req.Ch1_sensorparameters
|
||||
}
|
||||
if req.Ch2_measurpoint != "" {
|
||||
conf.MQTT.Ch2_measurpoint = req.Ch2_measurpoint
|
||||
}
|
||||
if req.Ch2_measurpointdirection != "" {
|
||||
conf.MQTT.Ch2_measurpointdirection = req.Ch2_measurpointdirection
|
||||
}
|
||||
if req.Ch2_samplingfrequency != 0 {
|
||||
conf.MQTT.Ch2_samplingfrequency = req.Ch2_samplingfrequency
|
||||
}
|
||||
if req.Ch2_samplingtime != 0 {
|
||||
conf.MQTT.Ch2_samplingtime = req.Ch2_samplingtime
|
||||
}
|
||||
if req.Ch2_sensorparameters != 0 {
|
||||
conf.MQTT.Ch2_sensorparameters = req.Ch2_sensorparameters
|
||||
}
|
||||
if req.Ch3_measurpoint != "" {
|
||||
conf.MQTT.Ch3_measurpoint = req.Ch3_measurpoint
|
||||
}
|
||||
if req.Ch3_measurpointdirection != "" {
|
||||
conf.MQTT.Ch3_measurpointdirection = req.Ch3_measurpointdirection
|
||||
}
|
||||
if req.Ch3_samplingfrequency != 0 {
|
||||
conf.MQTT.Ch3_samplingfrequency = req.Ch3_samplingfrequency
|
||||
}
|
||||
if req.Ch3_samplingtime != 0 {
|
||||
conf.MQTT.Ch3_samplingtime = req.Ch3_samplingtime
|
||||
}
|
||||
if req.Ch3_sensorparameters != 0 {
|
||||
conf.MQTT.Ch3_sensorparameters = req.Ch3_sensorparameters
|
||||
}
|
||||
if req.Ch4_measurpoint != "" {
|
||||
conf.MQTT.Ch4_measurpoint = req.Ch4_measurpoint
|
||||
}
|
||||
if req.Ch4_measurpointdirection != "" {
|
||||
conf.MQTT.Ch4_measurpointdirection = req.Ch4_measurpointdirection
|
||||
}
|
||||
if req.Ch4_samplingfrequency != 0 {
|
||||
conf.MQTT.Ch4_samplingfrequency = req.Ch4_samplingfrequency
|
||||
}
|
||||
if req.Ch4_samplingtime != 0 {
|
||||
conf.MQTT.Ch4_samplingtime = req.Ch4_samplingtime
|
||||
}
|
||||
if req.Ch4_sensorparameters != 0 {
|
||||
conf.MQTT.Ch4_sensorparameters = req.Ch4_sensorparameters
|
||||
}
|
||||
if req.Ch5_measurpoint != "" {
|
||||
conf.MQTT.Ch5_measurpoint = req.Ch5_measurpoint
|
||||
}
|
||||
if req.Ch5_measurpointdirection != "" {
|
||||
conf.MQTT.Ch5_measurpointdirection = req.Ch5_measurpointdirection
|
||||
}
|
||||
if req.Ch5_samplingfrequency != 0 {
|
||||
conf.MQTT.Ch5_samplingfrequency = req.Ch5_samplingfrequency
|
||||
}
|
||||
if req.Ch5_samplingtime != 0 {
|
||||
conf.MQTT.Ch5_samplingtime = req.Ch5_samplingtime
|
||||
}
|
||||
if req.Ch5_sensorparameters != 0 {
|
||||
conf.MQTT.Ch5_sensorparameters = req.Ch5_sensorparameters
|
||||
}
|
||||
if req.Ch6_measurpoint != "" {
|
||||
conf.MQTT.Ch6_measurpoint = req.Ch6_measurpoint
|
||||
}
|
||||
if req.Ch6_measurpointdirection != "" {
|
||||
conf.MQTT.Ch6_measurpointdirection = req.Ch6_measurpointdirection
|
||||
}
|
||||
if req.Ch6_samplingfrequency != 0 {
|
||||
conf.MQTT.Ch6_samplingfrequency = req.Ch6_samplingfrequency
|
||||
}
|
||||
if req.Ch6_samplingtime != 0 {
|
||||
conf.MQTT.Ch6_samplingtime = req.Ch6_samplingtime
|
||||
}
|
||||
if req.Ch6_sensorparameters != 0 {
|
||||
conf.MQTT.Ch6_sensorparameters = req.Ch6_sensorparameters
|
||||
}
|
||||
if req.Ch7_measurpoint != "" {
|
||||
conf.MQTT.Ch7_measurpoint = req.Ch7_measurpoint
|
||||
}
|
||||
if req.Ch7_measurpointdirection != "" {
|
||||
conf.MQTT.Ch7_measurpointdirection = req.Ch7_measurpointdirection
|
||||
}
|
||||
if req.Ch7_samplingfrequency != 0 {
|
||||
conf.MQTT.Ch7_samplingfrequency = req.Ch7_samplingfrequency
|
||||
}
|
||||
if req.Ch7_samplingtime != 0 {
|
||||
conf.MQTT.Ch7_samplingtime = req.Ch7_samplingtime
|
||||
}
|
||||
if req.Ch7_sensorparameters != 0 {
|
||||
conf.MQTT.Ch7_sensorparameters = req.Ch7_sensorparameters
|
||||
}
|
||||
|
||||
if err := conf.Write(); err != nil {
|
||||
c.JSON(http.StatusInternalServerError, fmt.Sprintf("修改netcfg.yaml文件失败: %s", err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
if req.Addresses != "" || req.Via != "" {
|
||||
if err := netconf.Write(); err != nil {
|
||||
c.JSON(http.StatusInternalServerError, fmt.Sprintf("修改config.toml文件失败: %s", err.Error()))
|
||||
return
|
||||
}
|
||||
command := "sleep 1 && netplan apply && sleep 60 && systemctl restart gateway.service"
|
||||
cmd := exec.Command("/bin/bash", "-c", command)
|
||||
go cmd.Run()
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, "OK")
|
||||
|
||||
}
|
||||
|
||||
func (h *Handler) GetToken(c *gin.Context) {
|
||||
user := User{}
|
||||
err := c.BindJSON(&user)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, fmt.Sprintf("参数错误: %s", err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
hash := md5.New()
|
||||
origin := []byte(user.Name)
|
||||
salt := []byte(user.Password)
|
||||
_, err = hash.Write(origin)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, fmt.Sprintf("写hash origin错误: %s", err.Error()))
|
||||
return
|
||||
}
|
||||
_, err = hash.Write(salt)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, fmt.Sprintf("写hash salt错误: %s", err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
// secret := string(hash.Sum(nil))
|
||||
secret := hex.EncodeToString(hash.Sum(nil))
|
||||
conf := model.Config{}
|
||||
if err := conf.Read(); err != nil {
|
||||
c.String(http.StatusInternalServerError, fmt.Sprintf("读取secret失败: %s", err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
if secret != conf.Sys.Secret {
|
||||
c.String(http.StatusInternalServerError, "用户名或密码错误")
|
||||
return
|
||||
}
|
||||
c.JSON(http.StatusOK, "OK")
|
||||
}
|
||||
|
||||
func (h *Handler) Upgrade(c *gin.Context) {
|
||||
// 最大10M
|
||||
c.Request.Body = http.MaxBytesReader(c.Writer, c.Request.Body, int64(10<<20))
|
||||
header, err := c.FormFile("upload")
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, fmt.Sprintf("上传文件失败: %s", err.Error()))
|
||||
return
|
||||
}
|
||||
c.SaveUploadedFile(header, header.Filename)
|
||||
|
||||
path, err := filepath.Abs(header.Filename)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, fmt.Sprintf("获取绝对路径失败: %s", err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
command := "/usr/local/gateway-ui/upgrade.sh " + path
|
||||
// h.logger.Info(command)
|
||||
cmd := exec.Command("/bin/bash", "-c", command)
|
||||
var stderr bytes.Buffer
|
||||
cmd.Stderr = &stderr
|
||||
|
||||
err = cmd.Run()
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, fmt.Sprintf("执行升级脚本失败: %s", stderr.String()))
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, "OK")
|
||||
}
|
||||
53
1.Software/UI/gateway-ui/service/middleware.go
Normal file
53
1.Software/UI/gateway-ui/service/middleware.go
Normal file
@@ -0,0 +1,53 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
type ResponseData struct {
|
||||
Code int `json:"code"`
|
||||
Message string `json:"message"`
|
||||
Data interface{} `json:"data"`
|
||||
}
|
||||
|
||||
func ErrorResponse(c *gin.Context, code int, message string) {
|
||||
c.JSON(code, ResponseData{
|
||||
Code: code,
|
||||
Message: message,
|
||||
Data: nil,
|
||||
})
|
||||
}
|
||||
|
||||
func SuccessResponse(c *gin.Context, code int, data interface{}) {
|
||||
c.JSON(code, ResponseData{
|
||||
Code: code,
|
||||
Message: "success",
|
||||
Data: data,
|
||||
})
|
||||
}
|
||||
|
||||
func UnifiedResponseMiddleware() gin.HandlerFunc {
|
||||
return func(ctx *gin.Context) {
|
||||
ctx.Next()
|
||||
|
||||
if len(ctx.Errors) > 0 {
|
||||
err := ctx.Errors.Last()
|
||||
ErrorResponse(ctx, http.StatusInternalServerError, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if ctx.Writer.Status() == 0 {
|
||||
ctx.Writer.WriteHeader(http.StatusOK)
|
||||
}
|
||||
|
||||
if ctx.Writer.Status() >= http.StatusOK && ctx.Writer.Status() < http.StatusMultipleChoices {
|
||||
data, exists := ctx.Get("response_data")
|
||||
if exists {
|
||||
SuccessResponse(ctx, ctx.Writer.Status(), data)
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
74
1.Software/UI/gateway-ui/service/request.go
Normal file
74
1.Software/UI/gateway-ui/service/request.go
Normal file
@@ -0,0 +1,74 @@
|
||||
package service
|
||||
|
||||
type User struct {
|
||||
Name string `json:"name" binding:"required"`
|
||||
Password string `json:"password" binding:"required"`
|
||||
}
|
||||
|
||||
type ConfReq struct {
|
||||
Broker string `json:"broker" binding:"required"`
|
||||
|
||||
Client_id string `json:"client_id" binding:"required"`
|
||||
|
||||
Device_id string `json:"device_id" binding:"required"`
|
||||
|
||||
Windfarm string `json:"windfarm" binding:"required"`
|
||||
Fansnum string `json:"fansnum" binding:"required"`
|
||||
|
||||
Addresses string `json:"addresses" binding:"required"`
|
||||
Via string `json:"via" binding:"required"`
|
||||
|
||||
Ntp string `json:"ntp" binding:"required"`
|
||||
|
||||
Ch0_measurpoint string `json:"ch0_measurpoint" binding:"required"`
|
||||
Ch0_measurpointdirection string `json:"ch0_measurpointdirection" binding:"required"`
|
||||
Ch0_sensorparameters float32 `json:"ch0_sensorparameters" binding:"required"`
|
||||
Ch0_samplingtime int `json:"ch0_samplingtime" binding:"required"`
|
||||
Ch0_samplingfrequency int `json:"ch0_samplingfrequency" binding:"required"`
|
||||
|
||||
Ch1_measurpoint string `json:"ch1_measurpoint" binding:"required"`
|
||||
Ch1_measurpointdirection string `json:"ch1_measurpointdirection" binding:"required"`
|
||||
Ch1_sensorparameters float32 `json:"ch1_sensorparameters" binding:"required"`
|
||||
Ch1_samplingtime int `json:"ch1_samplingtime" binding:"required"`
|
||||
Ch1_samplingfrequency int `json:"ch1_samplingfrequency" binding:"required"`
|
||||
|
||||
Ch2_measurpoint string `json:"ch2_measurpoint" binding:"required"`
|
||||
Ch2_measurpointdirection string `json:"ch2_measurpointdirection" binding:"required"`
|
||||
Ch2_sensorparameters float32 `json:"ch2_sensorparameters" binding:"required"`
|
||||
Ch2_samplingtime int `json:"ch2_samplingtime" binding:"required"`
|
||||
Ch2_samplingfrequency int `json:"ch2_samplingfrequency" binding:"required"`
|
||||
|
||||
Ch3_measurpoint string `json:"ch3_measurpoint" binding:"required"`
|
||||
Ch3_measurpointdirection string `json:"ch3_measurpointdirection" binding:"required"`
|
||||
Ch3_sensorparameters float32 `json:"ch3_sensorparameters" binding:"required"`
|
||||
Ch3_samplingtime int `json:"ch3_samplingtime" binding:"required"`
|
||||
Ch3_samplingfrequency int `json:"ch3_samplingfrequency" binding:"required"`
|
||||
|
||||
Ch4_measurpoint string `json:"ch4_measurpoint" binding:"required"`
|
||||
Ch4_measurpointdirection string `json:"ch4_measurpointdirection" binding:"required"`
|
||||
Ch4_sensorparameters float32 `json:"ch4_sensorparameters" binding:"required"`
|
||||
Ch4_samplingtime int `json:"ch4_samplingtime" binding:"required"`
|
||||
Ch4_samplingfrequency int `json:"ch4_samplingfrequency" binding:"required"`
|
||||
|
||||
Ch5_measurpoint string `json:"ch5_measurpoint" binding:"required"`
|
||||
Ch5_measurpointdirection string `json:"ch5_measurpointdirection" binding:"required"`
|
||||
Ch5_sensorparameters float32 `json:"ch5_sensorparameters" binding:"required"`
|
||||
Ch5_samplingtime int `json:"ch5_samplingtime" binding:"required"`
|
||||
Ch5_samplingfrequency int `json:"ch5_samplingfrequency" binding:"required"`
|
||||
|
||||
Ch6_measurpoint string `json:"ch6_measurpoint" binding:"required"`
|
||||
Ch6_measurpointdirection string `json:"ch6_measurpointdirection" binding:"required"`
|
||||
Ch6_sensorparameters float32 `json:"ch6_sensorparameters" binding:"required"`
|
||||
Ch6_samplingtime int `json:"ch6_samplingtime" binding:"required"`
|
||||
Ch6_samplingfrequency int `json:"ch6_samplingfrequency" binding:"required"`
|
||||
|
||||
Ch7_measurpoint string `json:"ch7_measurpoint" binding:"required"`
|
||||
Ch7_measurpointdirection string `json:"ch7_measurpointdirection" binding:"required"`
|
||||
Ch7_sensorparameters float32 `json:"ch7_sensorparameters" binding:"required"`
|
||||
Ch7_samplingtime int `json:"ch7_samplingtime" binding:"required"`
|
||||
Ch7_samplingfrequency int `json:"ch7_samplingfrequency" binding:"required"`
|
||||
}
|
||||
|
||||
type SecretReq struct {
|
||||
Secret string `json:"secret"`
|
||||
}
|
||||
Reference in New Issue
Block a user