diff --git a/electron/idcard-worker.js b/electron/idcard-worker.js index e91ed9f..5638f3d 100644 --- a/electron/idcard-worker.js +++ b/electron/idcard-worker.js @@ -166,12 +166,21 @@ async function startListen() { // koffi 会自动处理结构体内存分配 while (running) { - // 寻卡 - api.Syn_StartFindIDCard(port, iin, 0); - // 选卡 - api.Syn_SelectIDCard(port, sn, 0); + // 1. 寻卡 + if (api.Syn_StartFindIDCard(port, iin, 0) !== 0) { + // 未找到卡,等待后重试 + await new Promise((r) => setTimeout(r, 150)); + continue; + } - // 读卡 + // 2. 选卡 + if (api.Syn_SelectIDCard(port, sn, 0) !== 0) { + // 选卡失败,等待后重试 + await new Promise((r) => setTimeout(r, 150)); + continue; + } + + // 3. 读卡 const data = {}; // koffi 输出对象 const ret = api.Syn_ReadMsg(port, 0, data);