From e491cdb48129752324c4e3764f99bd9203c56dec Mon Sep 17 00:00:00 2001
From: lgq <1015864684@qq.com>
Date: 星期二, 31 三月 2026 09:48:44 +0800
Subject: [PATCH] 1.新增VF205门禁机代码
---
vf205_access/dxmodules/dxConfig.js | 140 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 140 insertions(+), 0 deletions(-)
diff --git a/vf205_access/dxmodules/dxConfig.js b/vf205_access/dxmodules/dxConfig.js
new file mode 100644
index 0000000..0f4844e
--- /dev/null
+++ b/vf205_access/dxmodules/dxConfig.js
@@ -0,0 +1,140 @@
+/**
+ * 瀹炵幇瀵瑰簲鐢ㄦ墍鏈夐厤缃」锛坘ey/value)鐨勭鐞嗭細
+ * 1. 鐢ㄦ埛闇�瑕佹妸鍒濆鐨勯厤缃」淇濆瓨鍦ㄩ」鐩殑 src/config.json 锛岄厤缃枃浠剁殑鏍煎紡璇蜂繚鐣檏ey/value鏍煎紡锛堟敮鎸佹敞閲�)锛寁alue鍙兘鏄瓧绗︿覆鍜屾暟瀛楃被鍨�,渚嬪锛�
+ * {
+ * //mqtt鐩稿叧閰嶇疆
+ * "mqtt.ip":"192.168.2.3",
+ * "mqtt.port":6199,
+ * }
+ * 2. 涔熸敮鎸佽嚜瀹氫箟閰嶇疆鏂囦欢锛屽垵濮嬪寲鍙互浼犻�掕嚜瀹氫箟閰嶇疆鏂囦欢鐨勮矾寰勫拰鏍囪瘑锛屽悗缁鍐欐暟鎹兘闇�瑕佷紶閫掕繖涓爣璇�
+ * 3. 鐢ㄦ埛鍦ㄥ簲鐢ㄤ腑绗竴娆′娇鐢ㄨ繖涓粍浠讹紝闇�瑕佸厛鍒濆鍖� init锛屽垵濮嬪寲浼氭妸 config.json 鐨勬暟鎹繚瀛樺埌鍐呭瓨閲岋紝浠ュ悗姣忔鑾峰彇閮芥槸浠庡唴瀛樿幏鍙�
+ * 4. 鐢ㄦ埛鍙互鍦ㄤ换浣曞湴鏂归兘鍙互閫氳繃 get 鍜� set 鏉ヨ鍐欓厤缃�
+ * 5. 濡傛灉淇敼閰嶇疆椤圭殑 value 鍚屾椂闇�瑕佷繚瀛樺埌閰嶇疆鏂囦欢锛堜繚璇侀噸鍚悗鏂伴厤缃敓鏁堬級锛屼娇鐢� setAndSave
+ * 6. 濡傛灉闇�瑕佹仮澶嶆墍鏈夐粯璁ら厤缃紝浣跨敤 reset
+ */
+import * as os from 'os';
+import dxMap from './dxMap.js'
+import common from './dxCommon.js'
+import logger from './dxLogger.js'
+import std from './dxStd.js'
+
+const map = dxMap.get("default")
+
+const config = {}
+const DEFALUT_OPTIONS = { path: '/app/code/src/config.json', savePath: '/app/data/config/config.json', flag: '___config.' }
+
+/**
+ * 鍒濆鍖栦細鎶� config.json 鎴栬嚜瀹氫箟鐨勯厤缃枃浠剁殑鏁版嵁淇濆瓨鍒板唴瀛橀噷锛屼互鍚庢瘡娆¤幏鍙栭兘鏄粠鍐呭瓨鑾峰彇
+ * @param {object} custom 闈炲繀濉紝鑷畾涔夌殑閰嶇疆鏂囦欢
+ * @param {string} custom.path 鑷畾涔夌殑閰嶇疆鏂囦欢瀹屾暣璺緞
+ * @param {string} custom.flag 鑷畾涔夐厤缃枃浠剁殑鏍囪瘑锛屾敞鎰忓鏋滄湁澶氫釜鑷畾涔夐厤缃枃浠讹紝杩欎釜鏍囪瘑涓嶈閲嶅
+ */
+config.init = function (custom) {
+ if (custom) {
+ if (!custom.path || !custom.flag) {
+ throw new Error('The path and flag for the custom configuration file cannot be empty.')
+ }
+ }
+ let flag = custom ? DEFALUT_OPTIONS.flag + custom.flag + '.' : DEFALUT_OPTIONS.flag;
+ const isInited = map.get('___inited' + flag)
+ if (isInited) {//鍙垵濮嬪寲涓�娆�
+ return
+ }
+ let path = custom ? custom.path : DEFALUT_OPTIONS.path
+ let savePath = custom ? '/app/data/config/config' + custom.flag + '.json' : DEFALUT_OPTIONS.savePath
+ if (!std.exist(path)) {
+ throw new Error('The config file not existed:' + path)
+ }
+ let existed = std.exist(savePath)
+ let content = existed ? std.parseExtJSON(std.loadFile(savePath)) : std.parseExtJSON(std.loadFile(path))
+ if (!existed) {
+ std.saveFile(savePath, JSON.stringify(content))
+ }
+ for (let [key, value] of Object.entries(content)) {
+ map.put(flag + key, value)
+ }
+ map.put('___inited' + flag, 'ok')
+}
+/**
+ * 鑾峰彇鎵�鏈夐厤缃」
+ * @param {string} flag 鑷畾涔夌殑閰嶇疆鏂囦欢鏍囪瘑锛屽彲浠ヤ负绌猴紝涓虹┖鍒欒繑鍥炵己鐪乧onfig.json閲屾墍鏈夊唴瀹�
+ * @returns json瀵硅薄
+ */
+config.getAll = function (flag) {
+ let _flag = _getFlag(flag)
+ let configInfo = {}
+ let keys = map.keys().filter(k => k.startsWith(_flag))
+ keys.forEach(k => {
+ let key = k.substring(_flag.length)
+ let val = map.get(k)
+ configInfo[key] = val
+ })
+ return configInfo
+}
+/**
+ * 鑾峰彇閰嶇疆锛屽彧浠巑ap鑾峰彇
+ * 濡傛灉閰嶇疆椤逛负绌猴紝杩斿洖鎵�鏈夋墍鏈夋暟鎹紱
+ * @param {string} key 閰嶇疆椤�
+ * @param {string} flag 鑷畾涔夌殑閰嶇疆鏂囦欢鏍囪瘑锛屽彲浠ヤ负绌猴紝涓虹┖鍒欒繑鍥炵己鐪乧onfig.json閲岀殑閰嶇疆鍊�
+ * @returns
+ */
+config.get = function (key, flag) {
+ if (!key) {
+ return this.getAll(flag);
+ }
+ let _flag = _getFlag(flag)
+ return map.get(_flag + key)
+}
+
+/**
+ * 鏇存柊閰嶇疆锛屽彧淇敼map
+ * @param {string} key 閰嶇疆椤�
+ * @param {string} value 閰嶇疆鍊�
+ * @param {string} flag 鑷畾涔夌殑閰嶇疆鏂囦欢鏍囪瘑锛屽彲浠ヤ负绌猴紝涓虹┖鍒欐寚鍚戠己鐪乧onfig.json閲岀殑閰嶇疆鍊�
+ */
+config.set = function (key, value, flag) {
+ if (!key || value == null || value == undefined) {
+ throw new Error("key or value should not be empty")
+ }
+ let _flag = _getFlag(flag)
+ map.put(_flag + key, value)
+}
+
+/**
+ * 灏唌ap涓殑鏁版嵁鎸佷箙鍖栧埌鏈湴
+ * @param {string} flag 鑷畾涔夌殑閰嶇疆鏂囦欢鏍囪瘑锛屽彲浠ヤ负绌猴紝涓虹┖鍒欐寚鍚戠己鐪乧onfig.json閲岀殑閰嶇疆鍊�
+ */
+config.save = function (flag) {
+ //淇濆瓨
+ std.saveFile(_getSavePath(flag), JSON.stringify(this.getAll(flag)))
+}
+
+/**
+ * 鏇存柊閰嶇疆锛屼慨鏀筸ap涓旀寔涔呭寲鏈湴
+ * @param {string} key 閰嶇疆椤�
+ * @param {string} value 閰嶇疆鍊�
+ * @param {string} flag 鑷畾涔夌殑閰嶇疆鏂囦欢鏍囪瘑锛屽彲浠ヤ负绌猴紝涓虹┖鍒欐寚鍚戠己鐪乧onfig.json閲岀殑閰嶇疆鍊�
+ */
+config.setAndSave = function (key, value, flag) {
+ this.set(key, value, flag)
+ //淇濆瓨
+ std.saveFile(_getSavePath(flag), JSON.stringify(this.getAll(flag)))
+}
+
+/**
+ * 閲嶇疆锛岄噸缃悗璇烽噸鍚姩璁惧
+ * @param {string} flag 鑷畾涔夌殑閰嶇疆鏂囦欢鏍囪瘑锛屽彲浠ヤ负绌猴紝涓虹┖鍒欐寚鍚戠己鐪乧onfig.json閲岀殑閰嶇疆鍊�
+ */
+config.reset = function (flag) {
+ common.systemBrief('rm -rf ' + _getSavePath(flag))
+}
+
+//-------------------private-------------------------------
+
+function _getFlag(flag) {
+ return flag ? DEFALUT_OPTIONS.flag + flag + '.' : DEFALUT_OPTIONS.flag
+}
+function _getSavePath(flag) {
+ return flag ? '/app/data/config/config' + flag + '.json' : DEFALUT_OPTIONS.savePath
+}
+export default config;
\ No newline at end of file
--
Gitblit v1.9.3