params_cfg.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. // Author: NiuJiuRu
  2. // Email: niujiuru@qq.com
  3. // Date: 2025-11-20
  4. package mcu_ctrl_board
  5. import (
  6. "encoding/json"
  7. "fmt"
  8. "sync"
  9. "hnyfkj.com.cn/rtu/linux/utils/jsonrpc2"
  10. )
  11. type Config struct {
  12. SensorDataInterval string `json:"sensor_data_interval"`
  13. PhotoTimes []string `json:"photo_times"`
  14. }
  15. var (
  16. CfgParams = &Config{
  17. SensorDataInterval: "", // 默认空
  18. PhotoTimes: []string{}, // 默认空
  19. }
  20. mu sync.Mutex
  21. )
  22. const reqTimeout = 1000 // 请求超时, 单位: ms
  23. func loadCfgParams() error {
  24. mu.Lock()
  25. defer mu.Unlock()
  26. req, err := jsonrpc2.BuildRequest("get_mcu_params", nil, 1)
  27. if err != nil {
  28. return err
  29. }
  30. resp, err := Board.sendRequest(req, reqTimeout)
  31. if err != nil {
  32. return err
  33. }
  34. if resp.Error != nil {
  35. return fmt.Errorf("MCU返回错误: %d, %s", resp.Error.Code, resp.Error.Message)
  36. }
  37. var params Config
  38. if err := json.Unmarshal(resp.Result, &params); err != nil {
  39. return err
  40. }
  41. CfgParams = &params
  42. return nil
  43. }
  44. func SaveCfgParams(setParams *Config) error {
  45. mu.Lock()
  46. defer mu.Unlock()
  47. req, err := jsonrpc2.BuildRequest("set_mcu_params", setParams, 2)
  48. if err != nil {
  49. return err
  50. }
  51. resp, err := Board.sendRequest(req, reqTimeout)
  52. if err != nil {
  53. return err
  54. }
  55. if resp.Error != nil {
  56. return fmt.Errorf("MCU返回错误: %d, %s", resp.Error.Code, resp.Error.Message)
  57. }
  58. CfgParams = setParams
  59. return nil
  60. }