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/dxAlsa.js |  105 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 105 insertions(+), 0 deletions(-)

diff --git a/vf205_access/dxmodules/dxAlsa.js b/vf205_access/dxmodules/dxAlsa.js
new file mode 100644
index 0000000..640a86a
--- /dev/null
+++ b/vf205_access/dxmodules/dxAlsa.js
@@ -0,0 +1,105 @@
+//build: 20240525
+//渚濊禆缁勪欢:dxDriver锛宒xCommon
+import { alsaClass } from './libvbar-m-dxalsa.so'
+import dxCommon from './dxCommon.js'
+const alsaObj = new alsaClass();
+const alsa = {}
+
+/**
+ * alsa 鍒濆鍖�
+ * @param {string} id 鍙ユ焺id锛岄潪蹇呭~锛堣嫢鍒濆鍖栧涓疄渚嬮渶瑕佷紶鍏ュ敮涓�id锛�
+ * @param {number} volume 闊抽噺锛岄潪蹇呭~
+ * @param {number} periodSize 鍛ㄦ湡澶у皬锛岄潪蹇呭~
+ * @param {number} bufferSize 缂撳瓨澶у皬锛岄潪蹇呭~
+ * @returns 鍙ユ焺id
+ */
+alsa.init = function (id, volume, periodSize, bufferSize) {
+	if (volume === undefined || volume === null) {
+		volume = 35
+	}
+	if (periodSize === undefined || periodSize === null) {
+		periodSize = 512
+	}
+	if (bufferSize === undefined || bufferSize === null) {
+		bufferSize = 2048
+	}
+	let pointer = alsaObj.alsaInit(volume, periodSize, bufferSize)
+	if (!pointer) {
+		throw new Error("alsa.init: init failed")
+	}
+	return dxCommon.handleId("alsa", id, pointer)
+}
+
+/**
+ * alsa 鍙栨秷鍒濆鍖�
+ * @param {string} id 鍙ユ焺id锛岄潪蹇呭~锛堥渶淇濇寔鍜宨nit涓殑id涓�鑷达級
+ * @returns true/false
+ */
+alsa.deinit = function (id) {
+	let pointer = dxCommon.handleId("alsa", id)
+	return alsaObj.alsaDeinit(pointer)
+}
+
+/**
+ * 鎾斁闊充箰鏂囦欢
+ * @param {string} path wav鏂囦欢缁濆璺緞锛岃矾寰勬槸浠�'/app/code/' 寮�澶达紝閫氬父鏀惧湪椤圭洰鐨剅esource鐩綍涓嬶紙鍜宻rc鍚岀骇)锛屽繀濉�
+ * @param {string} id 鍙ユ焺id锛岄潪蹇呭~锛堥渶淇濇寔鍜宨nit涓殑id涓�鑷达級
+ * @returns true/false
+ */
+alsa.play = function (path, id) {
+	if (!path) {
+		throw new Error("alsa.play: 'path' parameter should not be null")
+	}
+	let pointer = dxCommon.handleId("alsa", id)
+	return alsaObj.alsaWav(pointer, path)
+}
+
+/**
+ * TTS鏂囧瓧杞闊�
+ * @param {string} 瑕佹挱鏀剧殑闊抽鏂囧瓧锛屽繀濉�
+ * @param {string} id 鍙ユ焺id锛岄潪蹇呭~锛堥渶淇濇寔鍜宨nit涓殑id涓�鑷达級
+ * @returns true/false
+ */
+alsa.ttsPlay = function (str, id) {
+	if (!str) {
+		throw new Error("alsa.ttsPlay: 'str' parameter should not be null")
+	}
+	let pointer = dxCommon.handleId("alsa", id)
+	return alsaObj.alsaAudioPlayString(pointer, str)
+}
+
+/**
+ * 鑾峰彇闊抽噺
+ * @param {string} id 鍙ユ焺id锛岄潪蹇呭~锛堥渶淇濇寔鍜宨nit涓殑id涓�鑷达級
+ * @returns 杩斿洖鏁板瓧绫诲瀷鐨勯煶閲忥紝涓嶄細瓒呭嚭闊抽噺鑼冨洿
+ */
+alsa.getVolume = function (id) {
+	let pointer = dxCommon.handleId("alsa", id)
+	return alsaObj.alsaGetVolume(pointer)
+}
+
+/**
+ * 璁剧疆闊抽噺 璁剧疆杩囧ぇ鎴栬繃灏忎細缂虹渷绛変簬闊抽噺鑼冨洿鐨勬渶澶ф垨鏈�灏忓��
+ * @param {number} volume 闊抽噺锛屽繀濉�
+ * @param {string} id 鍙ユ焺id锛岄潪蹇呭~锛堥渶淇濇寔鍜宨nit涓殑id涓�鑷达級
+ * @returns true/false
+ */
+alsa.setVolume = function (volume, id) {
+	let pointer = dxCommon.handleId("alsa", id)
+	return alsaObj.alsaSetVolume(pointer, volume)
+}
+/**
+ * 鎾斁娴佸紡闊抽
+ * @param {ArrayBuffer} 闊抽娴� 锛屽繀濉�
+ * @param {string} id 鍙ユ焺id锛岄潪蹇呭~锛堥渶淇濇寔鍜宨nit涓殑id涓�鑷达級
+ * @returns true/false
+ */
+alsa.alsaWavData = function (buffer, id) {
+	if (!buffer) {
+		throw new Error("alsa.alsaWavData: 'buffer' parameter should not be null")
+	}
+	let pointer = dxCommon.handleId("alsa", id)
+	return alsaObj.alsaWavData(pointer, buffer)
+}
+
+export default alsa;

--
Gitblit v1.9.3