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/src/service/gpiokeyService.js | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 52 insertions(+), 0 deletions(-)
diff --git a/vf205_access/src/service/gpiokeyService.js b/vf205_access/src/service/gpiokeyService.js
new file mode 100644
index 0000000..bfbae2a
--- /dev/null
+++ b/vf205_access/src/service/gpiokeyService.js
@@ -0,0 +1,52 @@
+/**
+ * GPIO鎸夐敭鏈嶅姟妯″潡
+ * 澶勭悊GPIO鎸夐敭鐩稿叧鐨勪笟鍔¢�昏緫锛屼富瑕佸寘鎷槻鎷嗘姤璀﹀姛鑳�
+ */
+import logger from "../../dxmodules/dxLogger.js";
+import config from "../../dxmodules/dxConfig.js";
+import driver from "../driver.js";
+import bus from "../../dxmodules/dxEventBus.js";
+
+const gpiokeyService = {}
+
+/**
+ * 鎺ユ敹GPIO鎸夐敭娑堟伅骞跺鐞�
+ * @param {object} data - GPIO鎸夐敭鏁版嵁
+ * @param {number} data.code - GPIO鐨勬爣璇嗭紝琛ㄧず鏄摢涓狦PIO鏈夎緭鍏� 256-闃叉媶锛�257-闂ㄧ
+ * @param {number} data.type - 鎸夐敭绫诲瀷锛�1琛ㄧず闃叉媶/闂ㄧ鐘舵�佸彉鍖�
+ * @param {number} data.value - 鎸夐敭鍊硷紝1琛ㄧず瑙﹀彂/闂ㄥ紑锛�0琛ㄧず鏈Е鍙�/闂ㄥ叧
+ */
+gpiokeyService.receiveMsg = function (data) {
+ logger.info('[gpiokeyService] 鎺ユ敹鍒癎PIO娑堟伅:', JSON.stringify(data))
+
+ // 闃叉媶鎶ヨ澶勭悊
+ if (data.code === 256) {
+ if (config.get("access.tamperAlarm") && data.type == 1 && data.value == 1) {
+ logger.info('[gpiokeyService] 闃叉媶鎶ヨ瑙﹀彂')
+ driver.alsa.play("/app/code/resource/wav/alarm.wav")
+ }
+ }
+
+ // 闂ㄧ鐘舵�佸彉鍖栧鐞�
+ if (data.code === 257) {
+ const doorStatus = data.value == 1 ? "闂ㄥ紑" : "闂ㄥ叧"
+ logger.info(`[gpiokeyService] 闂ㄧ鐘舵�佸彉鍖�: ${doorStatus}`)
+
+ if (data.value === 1) {
+ // 闂ㄥ紑
+ driver.alsa.play("/app/code/resource/CN/wav/door_open.wav")
+ } else {
+ // 闂ㄥ叧
+ driver.alsa.play("/app/code/resource/CN/wav/door_close.wav")
+ }
+
+ // 鍙戦�侀棬纾佺姸鎬佸彉鍖栭�氱煡浜嬩欢
+ bus.fire('doorStatusChanged', {
+ status: data.value,
+ statusText: doorStatus,
+ time: Math.floor(Date.now() / 1000)
+ })
+ }
+}
+
+export default gpiokeyService
\ No newline at end of file
--
Gitblit v1.9.3