Lu Xianghui vor 3 Tagen
Ursprung
Commit
becda22b05
1 geänderte Dateien mit 12 neuen und 9 gelöschten Zeilen
  1. 12 9
      wiki/modbus_server_design_and_implementation.md

+ 12 - 9
wiki/modbus_server_design_and_implementation.md

@@ -79,11 +79,12 @@ db:
 modbus:
   host: 0.0.0.0
   port: 502
-  interval: 5
 
 http_provider:
   url: http://192.168.1.109:18503/data/get_points_real_value
   timeout_seconds: 5
+  interval: 5
+  batch_size: 200
 
 logging:
   dir: logs
@@ -456,12 +457,13 @@ logger = logging.getLogger(__name__)
 
 
 class ValueRefreshWorker(threading.Thread):
-    def __init__(self, points, provider, store, interval_seconds: int):
+    def __init__(self, points, provider, store, interval_seconds: int, batch_size: int):
         super().__init__(name="value-refresh-worker", daemon=True)
         self.points = points
         self.provider = provider
         self.store = store
         self.interval_seconds = interval_seconds
+        self.batch_size = batch_size
 
     def run(self) -> None:
         logger.info("实时值刷新线程已启动,刷新周期=%s秒", self.interval_seconds)
@@ -475,8 +477,8 @@ class ValueRefreshWorker(threading.Thread):
     def refresh_once(self, initial: bool) -> None:
         point_by_id = {point.point_id: point for point in self.points}
         point_ids = list(point_by_id)
-        for start in range(0, len(point_ids), DEFAULT_BATCH_SIZE):
-            batch = point_ids[start:start + DEFAULT_BATCH_SIZE]
+        for start in range(0, len(point_ids), self.batch_size):
+            batch = point_ids[start:start + self.batch_size]
             values = self.provider.fetch_values(batch)
             for point_id in batch:
                 point = point_by_id[point_id]
@@ -558,7 +560,7 @@ def setup_logging(log_dir: str, retention_days: int, level: str) -> None:
 正在启动Modbus Server
 日志系统初始化完成
 配置文件加载完成
-运行配置: 数据库=host:port/database, Modbus监听=host:port, 刷新周期=5秒, 批量大小=200
+运行配置: 数据库=host:port/database, Modbus监听=host:port, HTTP刷新周期=5秒, HTTP批量大小=200
 数据库连接成功
 开始从modbus_server_point加载全部点位
 点位加载完成,数量=...
@@ -592,14 +594,14 @@ def main() -> int:
     logger.info("日志系统初始化完成")
     logger.info("配置文件加载完成")
     logger.info(
-        "运行配置: 数据库=%s:%s/%s, Modbus监听=%s:%s, 刷新周期=%s秒, 批量大小=%s",
+        "运行配置: 数据库=%s:%s/%s, Modbus监听=%s:%s, HTTP刷新周期=%s秒, HTTP批量大小=%s",
         config.db.host,
         config.db.port,
         config.db.database,
         config.modbus.host,
         config.modbus.port,
-        config.modbus.interval,
-        DEFAULT_BATCH_SIZE,
+        config.http_provider.interval,
+        config.http_provider.batch_size,
     )
 
     conn = create_connection(config.db)
@@ -642,7 +644,8 @@ def main() -> int:
         points,
         provider,
         store,
-        config.modbus.interval,
+        config.http_provider.interval,
+        config.http_provider.batch_size,
     )
     logger.info("开始请求初始化实时值")
     worker.refresh_once(initial=True)