鼎鼎知识库
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

办公楼版后端处理.md 2.4KB

3 роки тому
3 роки тому
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. # 在电箱内新增开关后,显示的默认开关名称有问题
  2. 默认把模块+线路名称作为名称,比如`187ED5311111,1`。
  3. # 凡是涉及到调用外部接口的,做成可配置
  4. 比如经常会用到调用开放平台接口的情况,可以把开放平台的地址放在`appsettings.json`中。
  5. 比如,需要在`appsettings.json`中加一个`APP`的节点。
  6. ```
  7. {
  8. ......
  9. "App": {
  10. "rate": "5", // 模块上传频率,大于5秒
  11. "shixugo": "0", // 是否开通时序
  12. "istest": "0", // 是否测试,会记录测试日志,比较细
  13. "testmac": "", // 当前测试模块号,当istest=1时使用,多个模块逗号分隔
  14. "isvalidmac": "0", // 是否验证模块内容
  15. "isdealdl": "0", //是否处理电量
  16. "isudptest": "1" //是否启用查看来自模块的UDP指令
  17. },
  18. ......
  19. }
  20. ```
  21. 需要一个类来描述配置节点。
  22. ```
  23. public class App
  24. {
  25. /// <summary>
  26. /// 模块上传频率,大于5秒
  27. /// </summary>
  28. public string rate { get; set; }
  29. /// <summary>
  30. /// 是否开通时序
  31. /// 1开通0没有开通
  32. /// </summary>
  33. public string shixugo { get; set; }
  34. /// <summary>
  35. /// 是否测试,会记录测试日志,比较细
  36. /// 1测试0不测试
  37. /// </summary>
  38. public string istest { get; set; }
  39. /// <summary>
  40. /// 当前测试模块号,当istest=1时使用,多个模块以逗号分隔
  41. /// </summary>
  42. public string testmac { get; set; }
  43. /// <summary>
  44. /// 是否验证模块内容
  45. /// 1为验证0不验证
  46. /// </summary>
  47. public string isvalidmac { get; set; }
  48. /// <summary>
  49. /// 是否处理电量
  50. /// 1测试0不测试
  51. /// </summary>
  52. public string isdealdl { get; set; }
  53. /// <summary>
  54. /// 是否打印从设备来的指令,1是,0不是
  55. /// </summary>
  56. public string isudptest { get; set; }
  57. }
  58. ```
  59. 以上,`App`类中的属性与`appsettings.json`中的`key`保存一致。
  60. 最后在`Startup.cs`中配置:
  61. ```
  62. var app1 = new App();//应用程序帮助类
  63. configuration.GetSection("App").Bind(app1);
  64. services.AddSingleton(app1);
  65. ChangeToken.OnChange(() => configuration.GetReloadToken(), () =>
  66. {
  67. configuration.GetSection("App").Bind(app1);
  68. });
  69. ```