|
|
@@ -1 +1,65 @@
|
|
|
package mcu_ctrl_board
|
|
|
+
|
|
|
+import (
|
|
|
+ "encoding/json"
|
|
|
+ "fmt"
|
|
|
+ "os"
|
|
|
+ "path/filepath"
|
|
|
+ "sync"
|
|
|
+
|
|
|
+ "hnyfkj.com.cn/rtu/linux/baseapp"
|
|
|
+)
|
|
|
+
|
|
|
+type Config struct {
|
|
|
+ SensorDataInterval string `json:"sensor_data_interval"`
|
|
|
+ PhotoTimes []string `json:"photo_times"`
|
|
|
+}
|
|
|
+
|
|
|
+var (
|
|
|
+ CfgParams = &Config{
|
|
|
+ SensorDataInterval: "30", // 默认30分钟采集并上传一次传感器数据
|
|
|
+ PhotoTimes: []string{"10:00", "11:00", "12:00"}, // 默认每天10点、11点和12点拍照并上传
|
|
|
+ }
|
|
|
+ mu sync.Mutex
|
|
|
+)
|
|
|
+
|
|
|
+func LoadCfgParams() error {
|
|
|
+ mu.Lock()
|
|
|
+ defer mu.Unlock()
|
|
|
+
|
|
|
+ cfgFile := filepath.Join(baseapp.CFG_DIR, "mcuparams.json")
|
|
|
+
|
|
|
+ data, err := os.ReadFile(cfgFile)
|
|
|
+ if err != nil {
|
|
|
+ return fmt.Errorf("无法读取配置文件\"%s\": %w", cfgFile, err)
|
|
|
+ }
|
|
|
+
|
|
|
+ var tmpCfgParams Config
|
|
|
+ if err := json.Unmarshal(data, &tmpCfgParams); err != nil {
|
|
|
+ return fmt.Errorf("解析配置文件\"%s\"出错: %w", cfgFile, err)
|
|
|
+ }
|
|
|
+
|
|
|
+ *CfgParams = tmpCfgParams
|
|
|
+
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
+func SaveCfgParams(setParams *Config) error {
|
|
|
+ mu.Lock()
|
|
|
+ defer mu.Unlock()
|
|
|
+
|
|
|
+ cfgFile := filepath.Join(baseapp.CFG_DIR, "mcuparams.json")
|
|
|
+
|
|
|
+ data, err := json.MarshalIndent(setParams, "", " ")
|
|
|
+ if err != nil {
|
|
|
+ return fmt.Errorf("生成JSON配置项内容失败: %w", err)
|
|
|
+ }
|
|
|
+
|
|
|
+ if err := os.WriteFile(cfgFile, data, 0644); err != nil {
|
|
|
+ return fmt.Errorf("保存配置文件\"%s\"失败: %w", cfgFile, err)
|
|
|
+ }
|
|
|
+
|
|
|
+ *CfgParams = *setParams
|
|
|
+
|
|
|
+ return nil
|
|
|
+}
|