From 35de181f8254fa5a255da0c3eea236ec649d5538 Mon Sep 17 00:00:00 2001 From: 王国壮 <2427498492@qq.com> Date: 星期六, 21 六月 2025 15:14:56 +0800 Subject: [PATCH] doc --- Client/王国壮/document/实时环境信息展示警报管理.md | 310 +++++++++++++++++++++++++++++++++++++++++++++++++++ Client/王国壮/document/实时环境信息展示.xlsx | 0 2 files changed, 310 insertions(+), 0 deletions(-) diff --git "a/Client/\347\216\213\345\233\275\345\243\256/document/\345\256\236\346\227\266\347\216\257\345\242\203\344\277\241\346\201\257\345\261\225\347\244\272.xlsx" "b/Client/\347\216\213\345\233\275\345\243\256/document/\345\256\236\346\227\266\347\216\257\345\242\203\344\277\241\346\201\257\345\261\225\347\244\272.xlsx" new file mode 100644 index 0000000..573784f --- /dev/null +++ "b/Client/\347\216\213\345\233\275\345\243\256/document/\345\256\236\346\227\266\347\216\257\345\242\203\344\277\241\346\201\257\345\261\225\347\244\272.xlsx" Binary files differ diff --git "a/Client/\347\216\213\345\233\275\345\243\256/document/\345\256\236\346\227\266\347\216\257\345\242\203\344\277\241\346\201\257\345\261\225\347\244\272\350\255\246\346\212\245\347\256\241\347\220\206.md" "b/Client/\347\216\213\345\233\275\345\243\256/document/\345\256\236\346\227\266\347\216\257\345\242\203\344\277\241\346\201\257\345\261\225\347\244\272\350\255\246\346\212\245\347\256\241\347\220\206.md" new file mode 100644 index 0000000..a9111c2 --- /dev/null +++ "b/Client/\347\216\213\345\233\275\345\243\256/document/\345\256\236\346\227\266\347\216\257\345\242\203\344\277\241\346\201\257\345\261\225\347\244\272\350\255\246\346\212\245\347\256\241\347\220\206.md" @@ -0,0 +1,310 @@ +# 馃専 妯″潡璁捐鏂囨。锛�12. 瀹炴椂鐜淇℃伅灞曠ず锛堚槄鈽呪槄鈽呪槄锛� + +## 涓�銆佹ā鍧楃洰鐨� + +鏈ā鍧楃敤浜庡湪瀹㈡埛绔ぇ灞忓疄鏃跺睍绀烘櫤鎱у伐鍦板悇鍖哄煙鐨勭幆澧冧俊鎭紝鍖呮嫭娓╁害銆佹箍搴︺�佺矇灏樻祿搴︺�佹柦宸ヨ繘搴︺�佺洃鎺ц疆鎾瓑銆傚悓鏃舵敮鎸佸姩鎬佸唴瀹规墿灞曪紙灏忓湴鍥俱�佽�冨嫟绠�鍐碉級銆� + +--- + +## 浜屻�佷富瑕佸姛鑳� + +| 鍔熻兘鍚嶇О | 鎻忚堪 | +| ------ | ---------------- | +| 鐜淇℃伅灞曠ず | 鎸夊伐鍦板尯鍩熷睍绀烘俯搴︺�佹箍搴︺�佺矇灏樼瓑 | +| 鏂藉伐杩涘害灞曠ず | 灞曠ず鏂藉伐鍚勯樁娈电殑璁″垝涓庡畬鎴愰噺 | +| 鐩戞帶杞挱 | 杞祦鏄剧ず鍚勬憚鍍忓ご瑙嗛 | +| 灏忓湴鍥鹃瑙� | 灏忓尯鍩熸爣娉ㄥ悇浼犳劅璁惧涓庣姸鎬� | +| 鑰冨嫟鎯呭喌蹇 | 褰撳墠浜哄憳鍦ㄥ満鏁般�佺鍒扮巼绛� | + +--- + +## 涓夈�佹暟鎹潵婧愯鏄� + +| 鏁版嵁椤� | 鏉ユ簮 | 鏂瑰紡 | +| -------- | ------------- | ------------ | +| 娓╁害/婀垮害/绮夊皹 | 浼犳劅鍣ㄤ笂浼� 鈫� 鏈嶅姟绔浆鍙� | 鐪熷疄鏃讹紙鏈嶅姟绔富鍔ㄦ帹閫侊級 | +| 鏂藉伐杩涘害 | 鏁版嵁搴撹褰� | 瀹㈡埛绔畾鏃惰姹傦紙杞锛� | +| 鎽勫儚澶寸敾闈� | 鎽勫儚澶�/鏈嶅姟绔棰戣浆鐮佹帴鍙� | RTSP/HTTP 鎾斁 | +| 鑰冨嫟鎯呭喌 | 鏈嶅姟绔帴鍙� | 杞/鏇存柊鎺ㄩ�� | + +--- + +## 鍥涖�佸鎴风璁捐 + +### Qt缁撴瀯寤鸿锛堝熀浜庡ぇ灞忔樉绀猴級 + +```bash +EnvDisplayModule/ +鈹溾攢鈹� EnvMainWindow.ui # 澶у睆鐣岄潰甯冨眬 +鈹溾攢鈹� EnvRealtimeWidget.h/.cpp # 鐜鏁版嵁灞曠ず鍖� +鈹溾攢鈹� VideoCarouselWidget.h/.cpp # 瑙嗛杞挱鍖� +鈹溾攢鈹� MapMiniWidget.h/.cpp # 灏忓湴鍥炬樉绀哄尯鍩� +鈹溾攢鈹� ProgressWidget.h/.cpp # 鏂藉伐杩涘害鍖� +鈹溾攢鈹� AttendanceSummaryWidget.h/.cpp # 鑰冨嫟蹇 +鈹溾攢鈹� EnvSocketHandler.h/.cpp # 鎺ユ敹鎺ㄩ�佹暟鎹� +``` + +--- + +## 浜斻�佹湇鍔$鎺ュ彛璁捐 + +### WebSocket 鎺ㄩ�佹帴鍙o紙鎺ㄨ崘锛� + +* 鍦板潃锛歚ws://server:port/ws/env` +* 鎺ㄩ�佹牸寮忥紙JSON锛夛細 + +```json +{ + "area": "鍖楀尯1鍙峰鍚�", + "device_id": "D-1002", + "temperature": 31.2, + "humidity": 48.3, + "dust": 0.76, + "timestamp": "2025-06-17T14:00:00" +} +``` + +### 鏂藉伐杩涘害鏌ヨ鎺ュ彛 + +* URL锛歚GET /api/progress/list` +* 杩斿洖鍊硷細 + +```json +[ + { + "type": "鍩哄潙寮�鎸�", + "plan": 100, + "done": 60, + "unit": "m鲁", + "timestamp": "2025-06-17" + } +] +``` + +--- + +## 鍏�佹暟鎹簱缁撴瀯璁捐 + +### 鐜淇℃伅琛� `env_data` + +| 瀛楁鍚� | 绫诲瀷 | 鎻忚堪 | +| ----------- | -------- | ---- | +| id | int | 涓婚敭 | +| device\_id | varchar | 璁惧缂栧彿 | +| area | varchar | 鍖哄煙鍚嶇О | +| temperature | float | 娓╁害 | +| humidity | float | 婀垮害 | +| dust | float | 绮夊皹娴撳害 | +| timestamp | datetime | 鏁版嵁鏃堕棿 | + +### 鏂藉伐杩涘害琛� `progress_info` + +| 瀛楁鍚� | 绫诲瀷 | 鎻忚堪 | +| --------- | -------- | ----- | +| id | int | 涓婚敭 | +| type | varchar | 鏂藉伐绫诲瀷 | +| plan | float | 棰勮宸ヤ綔閲� | +| done | float | 褰撳墠瀹屾垚 | +| unit | varchar | 鍗曚綅 | +| timestamp | datetime | 鏇存柊鏃堕棿 | + +--- + +# 馃毃 妯″潡璁捐鏂囨。锛�13. 璀︽姤绠$悊锛堚槄鈽呪槄鈽咃級 + +## 涓�銆佹ā鍧楃洰鐨� + +瀵瑰伐鍦颁腑鐨勭幆澧冩寚鏍囪繘琛屽疄鏃剁洃娴嬪拰鎶ヨ鍒ゆ柇锛屽綋鏁板�艰秴杩囪瀹氶槇鍊兼椂瑙﹀彂鎶ヨ锛岄�氳繃澹板厜棰勮銆佸鎴风鎻愮ず銆佹淳鍗曠瓑鏂瑰紡杩涜闂幆绠$悊銆� + +--- + +## 浜屻�佸姛鑳芥杩� + +| 鍔熻兘 | 鎻忚堪 | +| ----- | ------------------- | +| 闃堝�肩鐞� | 姣忛」鎸囨爣鍙缃渶灏忓��/鏈�澶у�硷紝鍔ㄦ�佽皟鏁� | +| 鎶ヨ瑙﹀彂 | 鏈嶅姟绔垽鏂秴杩囬槇鍊兼椂瑙﹀彂璀︽姤浜嬩欢 | +| 瀹㈡埛绔樉绀� | 鎵�鏈夊鎴风瀹炴椂寮瑰嚭鎴栨爣璁拌鎶ヤ俊鎭� | +| 鎶ヨ璁板綍 | 鎵�鏈夊巻鍙叉姤璀﹀叆搴擄紝渚涙煡璇㈢粺璁� | +| 鎶ヨ澶勭悊 | 鍙褰曞鐞嗘柟寮忥紙鑷姩/娲惧崟/鎵嬪姩锛� | + +--- + +## 涓夈�佹姤璀﹁Е鍙戦�昏緫 + +### 鏈嶅姟绔鐞嗘祦绋嬶細 + +``` +鏁版嵁鎺ユ敹 鈫� 鍒ゆ柇鏄惁瓒呭嚭闃堝�� 鈫� 鏄� 鈫� +1. 鍐欏叆璀︽姤琛� +2. 杞彂鎶ヨ缁欐墍鏈夊鎴风锛圵ebSocket锛� +``` + +--- + +## 鍥涖�佹暟鎹簱琛ㄧ粨鏋勮璁� + +### 璀︽姤淇℃伅琛� `alarm_info` + +| 瀛楁鍚� | 绫诲瀷 | 鎻忚堪 | +| -------------- | -------- | -------------- | +| id | int | 涓婚敭 | +| device\_id | varchar | 鏉ユ簮璁惧缂栧彿 | +| metric | varchar | 鎸囨爣鍚嶇О锛堟俯搴︾瓑锛� | +| value | float | 瑙﹀彂鍊� | +| threshold\_min | float | 鏈�灏忛槇鍊� | +| threshold\_max | float | 鏈�澶ч槇鍊� | +| status | varchar | 鐘舵�侊紙棰勮/澶勭悊涓�/宸茶В鍐筹級 | +| handler | varchar | 澶勭悊浜� | +| timestamp | datetime | 瑙﹀彂鏃堕棿 | + +### 闃堝�艰缃〃 `alarm_threshold` + +| 瀛楁鍚� | 绫诲瀷 | 鎻忚堪 | +| ------------ | -------- | ---------- | +| id | int | 涓婚敭 | +| metric | varchar | 鎸囨爣锛堟俯搴︺�佹箍搴︾瓑锛� | +| min\_value | float | 鏈�灏忓�� | +| max\_value | float | 鏈�澶у�� | +| update\_time | datetime | 鏇存柊鏃堕棿 | + +--- + +## 浜斻�佸鎴风鐣岄潰璁捐 + +### 闃堝�肩鐞嗙晫闈� + +* 鏀寔鏌ヨ銆佷慨鏀癸紙鏉冮檺鏍¢獙锛� +* 鐢ㄨ〃鏍兼柟寮忓睍绀哄悇鎸囨爣褰撳墠闃堝�� + +### 璀︽姤灞曠ず鐣岄潰 + +* 鍙綔涓洪《閮ㄧ孩鑹叉í骞呭疄鏃舵粴鍔� +* 鏀寔寮圭獥閫氱煡銆佹姤璀﹀垪琛ㄥ睍绀� + +--- + +## 鍏�佹暟鎹帹閫佹牸寮忥紙WebSocket锛� + +```json +{ + "type": "alarm", + "device_id": "D-1002", + "metric": "绮夊皹娴撳害", + "value": 1.35, + "min": 0.0, + "max": 1.2, + "status": "棰勮", + "timestamp": "2025-06-17T14:01:00" +} +``` + +--- + +## 涓冦�佸鎴风妯″潡璁捐寤鸿 + +```bash +AlarmModule/ +鈹溾攢鈹� AlarmManager.h/.cpp # 閫昏緫澶勭悊銆侀槇鍊煎垽鏂皝瑁� +鈹溾攢鈹� AlarmThresholdWidget.ui # 闃堝�艰缃晫闈� +鈹溾攢鈹� AlarmDisplayWidget.ui # 瀹炴椂璀︽姤鏄剧ず鍖� +鈹溾攢鈹� AlarmWebSocketHandler.cpp # 鎺ㄩ�佸鐞嗗櫒 +``` + +------ + +# 鉁� 鎺ㄨ崘鏋舵瀯锛�**鏁版嵁缁熶竴绠$悊锛學idget 鍙礋璐f樉绀�** + +> 馃憠 **鏍稿績鎬濇兂锛氭暟鎹幏鍙栫粺涓�澶勭悊锛孶I 鏄剧ず鍒嗗埆鏇存柊** + +------ + +## 馃敡 鏋舵瀯鍒嗗眰寤鸿 + +### 1. 鉁� 鏁版嵁涓績锛堢粺涓�绠$悊锛� + +璐熻矗鎺ユ敹銆佽В鏋愩�佺紦瀛樻墍鏈夋暟鎹紙鍖呮嫭鎺ㄩ�佸拰杞锛� + **鎺ㄨ崘鍗曚緥绫�**锛歚DataCenter` 鎴� `DataDispatcher` + +瀹冭礋璐o細 + +- 缁熶竴 WebSocket/TCP 鎺ユ敹浼犳劅鍣ㄦ暟鎹紙鎺ㄩ�侊級 +- 瀹氭椂杞鎺ュ彛鎷夊彇鏁版嵁搴撴暟鎹� +- 缁存姢鏈湴缂撳瓨锛堝褰撳墠娓╁害銆佽繘搴︺�佽�冨嫟锛� +- 鍙戝皠 Qt 淇″彿锛歚dataUpdated()`锛岄�氱煡鎵�鏈夐渶瑕佸埛鏂版樉绀虹殑鎺т欢 + +```cpp +class DataCenter : public QObject { + Q_OBJECT +public: + static DataCenter* instance(); // 鍗曚緥 + + void init(); // 鍒濆鍖栨暟鎹簮杩炴帴銆佸畾鏃跺櫒绛� + QVariantMap getEnvData(); // 鑾峰彇褰撳墠缂撳瓨 + QVariantMap getProgressData(); + +signals: + void envDataUpdated(); + void progressDataUpdated(); + void attendDataUpdated(); +}; +``` + +------ + +### 2. 鉁� 姣忎釜鍒嗗尯 widget 鈥斺�� 鍙洃鍚�佹樉绀� + +鍚勪釜 widget 涓撴敞鍋�**涓�浠朵簨锛氭樉绀� UI + 鎺ユ敹鏁版嵁鏇存柊淇″彿** + +- `EnvWidget` 鐩戝惉 `envDataUpdated()`锛岃嚜鍔ㄦ洿鏂版俯搴�/婀垮害鏍囩 +- `ProgressWidget` 鐩戝惉 `progressDataUpdated()`锛屽埛鏂板浘琛� +- `AttendWidget` 鐩戝惉 `attendDataUpdated()`锛屽睍绀哄嚭鍕や汉鏁� +- `AlarmWidget` 鐩戝惉缁熶竴鍛婅淇″彿 `alarmTriggered(...)`锛屽脊鍑烘彁绀� + +```cpp +connect(DataCenter::instance(), &DataCenter::envDataUpdated, this, &EnvWidget::updateDisplay); +``` + +------ + +### 3. 鉁� 瑙嗛鎾斁閮ㄥ垎锛堜緥澶栵級 + +- RTSP 瑙嗛鎺ㄨ崘鐢辨瘡涓� `CameraWidget` 鑷缁存姢娴佸湴鍧�涓庢挱鏀惧櫒锛堝 VLC/FFmpeg 灏佽锛� +- 鍥犱负姣忎釜鐩戞帶鐢婚潰鎾斁璐熻浇楂樸�佸苟涓� UI 鎺у埗杈冨己锛堣疆鎾�佸垏鎹級 +- 鍙粺涓�閰嶇疆瑙嗛婧愶紝浣嗘挱鏀鹃�昏緫鍒嗗竷鍦ㄦ帶浠朵腑 + +------ + +## 鉁筹笍 鎬荤粨瀵规瘮 + +| 鏂规 | 鐗圭偣 | 寤鸿 | +| ------------------------ | --------------------------------------- | ---------------------------------------------- | +| **缁熶竴绠$悊锛堟帹鑽愶級** | 鎵�鏈夋暟鎹粺涓�鎺ュ叆銆佺紦瀛樸�佽浆鍙戠粰鍚� widget | 鏇存竻鏅般�佹洿鏄撶淮鎶ゃ�佹洿濂借В鑰� | +| 鍒嗗埆鍦ㄥ悇 widget 鑾峰彇鏁版嵁 | 鎺т欢鑷繁鍘昏疆璇€�佺淮鎶ゅ畾鏃跺櫒銆佽В鏋愭帴鍙� | 鍒濇湡绠�鍗曪紝鍚庢湡瀹规槗娣蜂贡銆侀噸澶嶄唬鐮併�佷笉濂界粺涓�鏇存柊 | + +------ + +## 鉁� 缁熶竴绠$悊鐨勪紭鐐� + +- 馃専 **瑙h��**锛歎I 鍜屾暟鎹鐞嗗垎寮�锛屾竻鏅拌亴璐� +- 馃摝 **缂撳瓨闆嗕腑**锛氬涓� widget 鍏变韩鏁版嵁锛屼笉閲嶅璁块棶鎺ュ彛 +- 馃攣 **缁熶竴杞/鎺ㄩ�佸鐞�**锛氭柟渚挎墿灞曞崗璁�佹帴鍙c�佽皟璇� +- 馃毃 **缁熶竴鍛婅澶勭悊**锛氬憡璀﹀垽鏂�昏緫涓嶉渶瑕佸啓鍦ㄦ瘡涓� widget 涓� + +------ + +## 馃П 鎺ㄨ崘浣犲疄鐜扮殑妯″潡绫诲垝鍒� + +| 妯″潡 | 绫诲悕 | 浣滅敤 | +| --------------- | -------------------------------- | ------------------------------------------- | +| 鏁版嵁涓績 | `DataCenter` | 绠$悊鎵�鏈夋暟鎹�氫俊銆佺紦瀛樸�佷俊鍙� | +| 缃戠粶閫氫俊 | `WebSocketClient` / `HttpClient` | 瀹炵幇鎺ㄩ��/杞 | +| UI - 鐜淇℃伅鍖� | `EnvDisplayWidget` | 鐩戝惉 `envDataUpdated()` | +| UI - 瑙嗛杞挱 | `CameraCarouselWidget` | 缁存姢鎾斁鍣� | +| UI - 鍦板浘 | `MapWidget` | 鏍规嵁 `deviceDataUpdated()` 娣诲姞璁惧鐘舵�佸浘鏍� | +| UI - 杩涘害鍥� | `ProgressChartWidget` | 灞曠ず鏁版嵁搴撹繘搴︽暟鎹� | +| UI - 鑰冨嫟 | `AttendWidget` | 灞曠ず鏈嶅姟绔�冨嫟缁撴灉 | +| UI - 鍛婅 | `AlarmBannerWidget` | 缁熶竴鎺ユ敹棰勮鏄剧ず | + +------ + -- Gitblit v1.8.0