Files
2026-02-10 09:51:18 +08:00

25 KiB

智能内镜储存柜系统 PRD

文档信息

  • 项目名称: 智能内镜储存柜系统
  • 版本: v1.0.1
  • 文档日期: 2026-01-20
  • 应用平台: Android (UniApp + Vue3)

1. 产品概述

1.1 产品定位

智能内镜储存柜是一款面向医疗场景的专业内镜存储管理设备,通过物联网技术实现内镜的智能存取、环境监控、自动消毒等功能,提升医院内镜管理效率和使用安全性。

1.2 核心价值

  • 智能管理: 通过RFID/IC卡技术实现内镜自动识别和存取记录
  • 环境监控: 实时监控储存柜内的温度、湿度、压差等关键指标
  • 安全存储: 自动消毒、真空保鲜、门禁管理等多重保障
  • 数据追溯: 完整的操作日志记录,便于追踪和管理

2. 系统架构

2.1 技术栈

  • 前端框架: UniApp + Vue3
  • UI组件: Ant Design Vue
  • 状态管理: Vuex
  • 本地存储: SQLite
  • 硬件通信: RS485 (传感器 + 门控制) + RS232 (卡片识别 + 设备控制)
  • 原生插件: android-serialport (串口通信)

2.2 硬件组成

  • RS485串口: 温湿度传感器、压差传感器、门锁控制器(左右门)
  • RS232串口: 16个内镜位置IC卡读写器,门口1个IC卡读写器(可读取人员卡和内镜卡)
  • 继电器控制: 风机、照明、真空泵、消毒设备
  • 门系统: 主门(概念门)、左门、右门(实体门)

3. 功能模块

3.1 启动模块

功能描述

应用启动页面,负责系统初始化和硬件自检。

核心功能

  • 串口初始化

    • RS485串口: /dev/ttyUSB2, 波特率 9600
    • RS232串口: /dev/ttyUSB1, 波特率 115200
    • 支持通过配置文件自定义串口参数
  • 本地存储初始化

    • 加载运行参数配置
    • 加载基础设置
    • 加载服务器配置
  • 数据库初始化

    • user表: 人员卡信息
    • endo表: 内镜卡片信息
    • scope表: 16个内镜位置状态
    • log表: 操作日志
  • 时间同步

    • 本地时间初始化
    • 网络时间同步(联网状态下)

入口控制

  • 点击"进入"按钮跳转主界面
  • 密码保护: 可设置屏幕解锁密码
  • 调试模式: 连续点击标题5次触发,提供Modbus调试、SQLite调试、清除缓存功能

3.2 主界面模块

功能描述

系统核心操作界面,实时显示设备状态和内镜存储情况。

核心功能

3.2.1 环境监控显示
  • 温度显示: 实时显示当前温度(°C),超出阈值自动启动风机
  • 湿度显示: 实时显示当前湿度(%RH),超出阈值自动启动风机
  • 压差显示: 实时显示当前压差(Pa),支持压差补偿值设置
  • 联网状态: 显示当前网络连接状态
  • 模式切换: 自动模式/清扫模式
3.2.2 内镜存储管理
  • 16个存储位置: 每个位置支持2个内镜存储位
  • 实时状态显示:
    • 空闲: 显示"已取出"
    • 占用: 显示内镜编号和存储时长(如: "已存入:32h 42m")
    • 临期提醒: 黄色高亮显示(超过临期阈值)
    • 超期提醒: 红色高亮显示(超过超期阈值)
  • 自动刷新: 每60秒自动刷新内镜列表数据
3.2.3 设备控制
控制项 功能说明 手动操作 自动逻辑
照明 控制柜内照明 开启/关闭按钮 开门自动开启,关门自动关闭
开门 控制左门/右门 手动选择门,通过RS485发送开门指令 人员刷卡验证通过后,弹窗选择开左门/右门
消毒 控制消毒设备 点击开启(运行指定时长后自动关闭) 根据时间段自动启动/停止
真空 控制真空泵 (预留) 开门关闭,关门开启,定时运行/停止
3.2.4 模式切换
  • 自动模式: 系统自动运行消毒、真空泵、风机等任务
  • 清扫模式: 停止自动任务,便于设备维护清洁

3.3 串口通信模块

3.3.1 RS485通信(传感器数据)

支持的传感器:

  • 温湿度传感器: 站号02

    • 读取指令: 020300000002C438
    • 返回数据格式: 01 03 04 XX XX XX XX XX XX ...
  • 压差传感器: 站号01

    • 读取指令: 01030001000295CB
    • 返回数据格式: 01 03 02 XX XX XX XX ...
  • 门状态监测与控制: 站号03

    • 协议说明: 采用中盛4路数字IO模块,通过Modbus RTU协议通信
    • 左门控制(通道1,地址0000H):
      • 左门开门指令(磁吸通电): 030600000001480A (发送后,leftDoor状态更新为true)
      • 左门关门指令(磁吸断电): 03060000000089CA (发送后,leftDoor状态更新为false)
    • 右门控制(通道2,地址0001H):
      • 右门开门指令(磁吸通电): 03060001000109CA (发送后,rightDoor状态更新为true)
      • 右门关门指令(磁吸断电): 03060001000048E8 (发送后,rightDoor状态更新为false)
    • 门状态上报(功能码04,读输入寄存器):
      • 左门触点开关状态变化时主动上报
      • 右门触点开关状态变化时主动上报
      • 收到上报数据后需更新对应门状态
    • 状态定义: true=开门(磁吸通电), false=关门(磁吸断电,触点触发)

门状态计算规则:

  • 门状态(door) = 左门状态(leftDoor) OR 右门状态(rightDoor)
  • 任一门打开时,door状态为开
  • 两门都关闭时,door状态为关

数据读取策略:

  • 定时轮询: 每5秒读取一次温湿度数据,间隔1秒读取压差数据
  • 数据校验: 温湿度数据过滤异常值(0-100范围内有效)

3.3.2 RS232通信(控制与卡片识别)

指令协议:

功能 指令码 格式 说明
风机控制 02 5AA5EE02 + 01(开)/00(关) 控制风机
照明控制 03 5AA5EE03 + 01(开)/00(关) 控制照明
真空泵控制 04 5AA5EE04 + 01(开)/00(关) 控制真空泵
消毒控制 05 5AA5EE05 + 01(开)/00(关) 控制消毒设备

门状态逻辑说明:

  • 门开关状态(door)是逻辑状态,由左右门物理状态共同决定
  • 规则: door = leftDoor OR rightDoor
    • 左门开 或 右门开 → door = true (开)
    • 左门关 且 右门关 → door = false (关)

门控制流程:

  1. 发送开门指令到RS485站号03
    • 左门开门: cmd.LeftDoor(true) → 发送 030600000001480A (磁吸通电)
    • 右门开门: cmd.RightDoor(true) → 发送 03060001000109CA (磁吸通电)
  2. 指令发送后,立即更新对应门的物理状态
    • 左门打开 → leftDoor = true
    • 右门打开 → rightDoor = true
  3. 根据左右门状态自动计算门状态
    • door = leftDoor OR rightDoor
  4. 发送关门指令到RS485站号03
    • 左门关门: cmd.LeftDoor(false) → 发送 03060000000089CA (磁吸断电)
    • 右门关门: cmd.RightDoor(false) → 发送 03060001000048E8 (磁吸断电)
  5. 指令发送后,更新对应门的物理状态
    • 左门关闭 → leftDoor = false
    • 右门关闭 → rightDoor = false
  6. 重新计算门状态 door = leftDoor OR rightDoor

卡片识别协议:

  • 门口IC卡读写器: 1个,位于门口,可读取人员卡和内镜卡

    • 卡存入: 20 01 00 08 04 00 00 00 [卡号4字节] [校验] 03 (14字节)
    • 卡离开: 20 01 00 01 02 [校验] 03 (7字节)
    • 卡号位置: 倒数4-8字节为卡号数据
  • 16个内镜位置IC卡读写器: 每个内镜位置1个,仅读取内镜卡

    • 卡存入: 20 01 00 08 04 00 00 00 [卡号4字节] [校验] 03 (14字节)
    • 卡离开: 20 01 00 01 02 [校验] 03 (7字节)
    • 卡号位置: 倒数4-8字节为卡号数据

卡片处理逻辑:

  • 卡片读取: 接收卡片数据 → 提取卡号 → 在数据库中比对判断卡片类型

    • 在user表中找到 → 人员卡
    • 在endo表中找到 → 内镜卡
    • 都未找到 → 无效卡片
  • 人员卡存入: 验证人员卡号是否在user数据库中 → 弹窗选择开左门/开右门 → 用户确认后通过RS485发送开门指令 → 更新门状态 → 记录日志

  • 内镜卡存入: 验证内镜卡号是否在endo数据库中 → 弹窗选择存入/取出 → 用户选择后更新scope表对应位置 → 记录日志

  • 内镜卡取出: 弹窗确认取出 → 更新scope表对应位置为空闲 → 记录日志


3.4 自动任务模块

3.4.1 自动消毒任务

  • 配置: 支持多时间段配置(如: 08:00-10:00, 14:00-16:00)
  • 执行逻辑:
    • 到达开始时间 → 启动消毒和风机
    • 到达结束时间 → 停止消毒
    • 仅在自动模式下生效
  • 运行时长: 手动启动时运行指定时长后自动关闭

3.4.2 真空泵任务

  • 运行时长控制: 连续运行超过指定时长后自动停止
  • 间隔运行控制: 停止后间隔指定时长自动启动
  • 执行逻辑:
    • 开门时 → 关闭真空泵
    • 关门时 → 启动真空泵和风机
    • 到达运行时长 → 关闭真空泵
    • 到达间隔时长 → 启动真空泵和风机

3.4.3 风机自动控制

  • 启动条件:
    • 温度超过阈值
    • 湿度超过阈值
    • 消毒设备启动
    • 真空泵启动
  • 停止条件:
    • 温度和湿度均低于阈值
    • 照明、真空泵、消毒、门均处于关闭状态
    • 清扫模式下不自动控制

3.4.4 门状态监控

  • 开门超时报警: 开门超过3分钟且非清扫模式 → 触发蜂鸣器报警 → 弹窗提示
  • 门状态记录: 记录开门/关门时间
  • 门状态同步: 概念门(door)状态 = 左门(leftDoor) OR 右门(rightDoor)
  • 门状态监测: 通过RS485站号03接收触点开关状态上报(功能码04)
    • 收到DI状态变化上报时解析并更新对应门状态
    • 左门触点触发(关门): 更新 leftDoor = false
    • 右门触点触发(关门): 更新 rightDoor = false

3.5 设置模块

功能描述

系统参数配置界面,需密码验证后访问。

3.5.1 设置菜单

设备信息管理

  • 查看设备基本信息
  • 设备SN码管理

基础设置

  • 屏幕解锁密码
  • 设置密码(访问设置界面)

服务器设置

  • 服务器IP地址
  • 服务器端口
  • API接口配置

运行参数设置

  • 温度阈值(自动启动风机)
  • 湿度阈值(自动启动风机)
  • 压差补偿值
  • 内镜临期提醒时长
  • 内镜超期提醒时长
  • 消毒时长(手动启动时的运行时间)
  • 真空泵运行时长
  • 真空泵间隔时长
  • 自动消毒时间段配置(支持多时段)

内镜信息管理

  • 添加/编辑/删除内镜卡片
  • 内镜RFID编号
  • 内镜型号、品牌、类型

人员信息管理

  • 添加/编辑/删除人员卡片
  • 人员IC卡编号
  • 人员姓名

3.5.2 数据同步功能

  • 时间同步: 同步网络时间
  • 内镜信息同步: 从服务器同步内镜列表
  • 人员信息同步: 从服务器同步人员列表
  • 运行参数同步: 从服务器同步运行参数

3.6 日志模块

功能描述

显示系统操作日志,支持分页查询。

核心功能

  • 日志类型:

    • 内镜存入记录
    • 内镜取出记录
    • 刷卡开门记录
    • 设备操作记录
  • 日志字段:

    • 时间
    • 操作对象(人员/内镜编号)
    • 操作类型(存入/取出/开门等)
  • 分页显示: 每页15条,支持上一页/下一页翻页


4. 数据库设计

4.1 user表(人员信息)

字段名 类型 说明
ic TEXT 人员卡号
name TEXT 人员姓名
create_time TEXT 创建时间
_openid VARCHAR(64) 用户标识

4.2 endo表(内镜信息)

字段名 类型 说明
rfid TEXT 内镜RFID编号
ic TEXT 内镜IC卡号
model TEXT 内镜型号
brand TEXT 品牌
type TEXT 类型
create_time TEXT 创建时间
_openid VARCHAR(64) 用户标识

4.3 scope表(内镜位置状态)

字段名 类型 说明
key INTEGER 位置编号(0-15)
name TEXT 状态名称(enter/leave)
ic TEXT 存储的内镜卡号
time TEXT 存入时间
_openid VARCHAR(64) 用户标识

4.4 log表(操作日志)

字段名 类型 说明
name TEXT 操作对象
action TEXT 操作类型
create_time TEXT 操作时间
_openid VARCHAR(64) 用户标识

5. 状态管理(Vuex)

5.1 relay(继电器状态)

{
  door: false,        // 主门状态(概念门)
  leftDoor: false,    // 左门状态
  rightDoor: false,   // 右门状态
  wind: false,        // 风机状态
  light: false,       // 照明状态
  vacuum: false,      // 真空泵状态
  disinfect: false    // 消毒状态
}

5.2 sensor(传感器数据)

{
  temp: 0,      // 温度(°C)
  humi: 0,      // 湿度(%RH)
  pressure: 0   // 压差
}

5.3 run(运行参数)

{
  temp: 30,              // 温度阈值
  humi: 60,              // 湿度阈值
  pressureCom: 0,        // 压差补偿值
  endoNear: 24,          // 临期提醒时长(小时)
  endoOver: 48,          // 超期提醒时长(小时)
  disinfectTime: 30,     // 消毒时长(分钟)
  vacuumRunTime: 5,      // 真空泵运行时长(分钟)
  vacuumPerHour: 2,      // 真空泵间隔时长(小时)
  group: [               // 自动消毒时间段
    { start: {h:8, m:0}, end: {h:10, m:0}, status: true },
    { start: {h:14, m:0}, end: {h:16, m:0}, status: true }
  ]
}

5.4 timer(计时器状态)

{
  door: '',           // 开门时间
  doorAlert: false,   // 门报警状态
  disinfect: '',      // 消毒开始时间
  wind: '',           // 风机开始时间
  vacuumStart: '',     // 真空泵开始时间
  vacuumEnd: ''        // 真空泵停止时间
}

5.5 其他状态

  • clean: 清扫模式标志
  • autoDisinfect: 自动消毒标志
  • connect: 网络连接状态
  • apiUrl: API服务器地址
  • time: 当前系统时间

6. 接口设计(API)

6.1 获取网络时间

  • 接口: GET /api/time
  • 返回: 时间字符串(如: "2026-01-20 10:30:00")

6.2 内镜列表同步

  • 接口: GET /api/endoscopelist
  • 返回:
{
  "endoscope_list": [
    {
      "endoscope_rfid": "RFID001",
      "endoscope_model": "型号1",
      "endoscope_brand": "品牌1",
      "endoscope_type": "胃镜"
    }
  ]
}

6.3 人员列表同步

  • 接口: GET /api/userlist
  • 返回: 人员列表数据

6.4 运行参数同步

  • 接口: GET /api/parameterlist
  • 返回: 运行参数配置数据

6.5 日志上传

  • 接口: POST /api/logsync
  • 参数: 日志数据数组

7. 交互流程

7.1 完整操作流程

1. 刷人员卡
   - 系统读取卡号,验证是否在user数据库中
   - 验证通过: 弹窗提示"选择要打开的门",显示"开左门"和"开右门"按钮
   - 验证失败: 提示"无权限"

2. 选择门并打开
   - 用户点击"开左门"或"开右门"
   - 通过RS485发送对应开门指令
   - 系统自动开启照明和风机
   - 提示"左门已打开"或"右门已打开"

3. 刷内镜卡
   - 系统读取卡号,验证是否在endo数据库中
   - 验证通过: 弹窗提示"选择操作",显示"存入"和"取出"按钮
   - 验证失败: 提示"无效内镜卡"

4. 选择操作
   - 用户点击"存入": 根据插入位置更新scope表 → 记录日志 → 提示"内镜已存入"
   - 用户点击"取出": 更新scope表对应位置为空闲 → 记录日志 → 提示"内镜已取出"

5. 关门
   - 用户手动关门
   - 触点开关触发,IO控制器上报DI状态变化
   - 系统收到上报数据,更新对应门状态为关闭
   - 自动关闭照明,开启真空泵和风机

7.2 内镜存取详细流程

1. 用户将内镜卡插入对应位置
2. IC卡读写器检测到卡片
3. 系统解析卡片数据,提取卡号
4. 在数据库中查询卡号,判断卡片类型
   - 在endo表中找到 → 内镜卡
   - 在user表中找到 → 人员卡
   - 都未找到 → 无效卡片
5. 验证内镜卡号是否在endo数据库中
   - 验证通过: 弹窗选择"存入"或"取出"
     - 用户选择存入: 根据插入位置更新scope表对应位置 → 记录日志 → 弹窗提示"内镜已存入"
     - 用户选择取出: 更新scope表对应位置为空闲 → 记录日志 → 弹窗提示"内镜已取出"
   - 验证失败: 提示"无效内镜卡"

7.2 内镜取出流程

1. 用户点击"取镜"按钮
2. 弹窗显示"取镜",提示"请刷人员卡"
3. 用户刷人员卡
   - 系统读取卡号,验证是否在user数据库中
   - 验证通过: 弹窗显示人员姓名
   - 验证失败: 提示"无权限"
4. 系统提示"请刷内镜卡"
5. 用户刷内镜卡
   - 系统读取卡号,验证是否在endo数据库中
   - 验证通过: 弹窗显示内镜名称、钢印号、类型等信息
   - 验证失败: 提示"无效内镜卡"
6. 弹窗显示"确定"按钮
7. 用户点击"确定"按钮
   - 系统更新scope表对应位置为空闲
   - 记录操作日志(包括操作人员、内镜信息)
   - 弹出Toast提示"取镜成功"
   - 关闭弹窗

7.3 人员刷卡开门流程

1. 人员在主门处刷人员卡
2. IC卡读写器检测到卡片
3. 系统解析卡片数据,提取卡号
4. 在数据库中查询卡号,判断卡片类型
   - 在user表中找到 → 人员卡
   - 在endo表中找到 → 内镜卡
   - 都未找到 → 无效卡片
5. 验证人员卡号是否在user数据库中
   - 验证通过: 弹窗选择"开左门"或"开右门"
     - 用户选择左门: 通过RS485发送左门开门指令 `030600000001480A` → 更新leftDoor状态 → 记录日志 → 提示"左门已打开"
     - 用户选择右门: 通过RS485发送右门开门指令 `03060001000109CA` → 更新rightDoor状态 → 记录日志 → 提示"右门已打开"
   - 验证失败: 提示"无权限"

7.4 手动开门流程

1. 点击主界面"开门"按钮
2. 弹出门选择对话框(开左门/开右门)
3. 用户选择要打开的门
4. 通过RS485发送对应开门指令
   - 左门: 发送 `030600000001480A` → 更新leftDoor=true → 记录日志 → 提示"左门已打开"
   - 右门: 发送 `03060001000109CA` → 更新rightDoor=true → 记录日志 → 提示"右门已打开"

7.5 开门事件自动处理流程

1. 检测到门打开(通过RS485站号03监测,发送开门指令后立即更新状态)
   - 左门打开: leftDoor = true
   - 右门打开: rightDoor = true
   - door = leftDoor OR rightDoor
2. 关闭真空泵
3. 延迟300ms开启照明
4. 延迟300ms开启风机
5. 记录开门时间
6. 启动开门超时监控(3分钟)

7.7 关门事件自动处理流程

1. 检测到门关闭(通过RS485站号03监测,收到功能码04的DI状态上报)
2. 解析上报数据,识别是左门还是右门的触点触发
   - 左门触点触发: 更新 leftDoor = false
   - 右门触点触发: 更新 rightDoor = false
3. 重新计算door状态: door = leftDoor OR rightDoor
4. 关闭照明
5. 延迟300ms开启真空泵和风机
6. 清除开门超时监控
7. 停止报警

8. 异常处理

8.1 串口通信异常

  • 串口初始化失败 → 提示"初始化串口失败"
  • 串口打开失败 → 提示错误信息
  • 指令发送失败 → 记录错误日志,不影响系统运行

8.2 数据验证异常

  • 无效内镜卡 → 弹窗提示"无效内镜卡"
  • 无效人员卡 → 弹窗提示"无权限"
  • 超期内镜 → 黄色高亮提醒
  • 超期内镜 → 红色高亮提醒

8.3 网络异常

  • 网络未连接 → 显示"未连接"状态
  • 网络同步失败 → 提示"同步失败,请检查网络"
  • 自动重试机制(暂未实现)

8.4 设备操作异常

  • 开门超时(>3分钟) → 蜂鸣器报警 + 弹窗提示"未关门,请及时关闭"
  • 温湿度异常 → 自动启动风机
  • 压差数据异常 → 过滤无效数据

9. 安全设计

9.1 访问控制

  • 屏幕解锁密码: 保护主界面访问
  • 设置密码: 保护设置界面访问

9.2 操作审计

  • 所有关键操作记录到日志表
  • 日志包含时间、操作人、操作内容

9.3 卡片验证

  • 所有内镜卡和人员卡必须在数据库中注册
  • 未经注册的卡片无法操作

9.4 调试模式保护

  • 调试入口隐藏(连续点击标题5次触发)
  • 调试模式提供数据清除功能(需谨慎操作)

10. 性能要求

10.1 响应时间

  • 界面切换: < 300ms
  • 串口指令响应: < 100ms
  • 数据刷新间隔: 60秒

10.2 数据处理

  • 串口数据解析: 实时处理
  • 数据库查询: < 200ms
  • 日志记录: 异步存储

10.3 资源占用

  • 内存占用: < 200MB
  • CPU占用: < 20%(正常运行时)

11. 非功能性需求

11.1 可靠性

  • 7x24小时不间断运行
  • 异常情况下自动恢复
  • 断网情况下本地功能正常运行

11.2 可维护性

  • 模块化设计,便于功能扩展
  • 完善的日志记录
  • 调试模式支持问题排查

11.3 可扩展性

  • 支持增加内镜位置(需修改硬件)
  • 支持新增传感器类型
  • 支持新增控制设备

12. 版本规划

v1.0.1 (当前版本)

  • 基础功能完整
  • 左右门独立控制
  • RS485门状态监测集成
  • 自动任务执行
  • 日志记录
  • 环境监控
  • 卡片识别

v1.1.0 (当前开发中)

  • 🔄 取镜流程优化(人员卡+内镜卡双卡片验证)
  • 🔄 串口通信错误处理优化
  • 🔄 状态同步逻辑完善

v2.0.0 (未来规划)

  • 📋 网络日志上传
  • 📋 远程控制接口
  • 📋 数据统计分析
  • 📋 多设备管理

13. 附录

13.1 术语表

术语 说明
主门(概念门) 逻辑门状态,由左门和右门状态共同决定(door = leftDoor OR rightDoor)
实体门 物理门锁(左门/右门)
IC卡 接触式智能卡
RFID卡 射频识别卡
RS485 串行通信标准,用于传感器通信和门控制
RS232 串行通信标准,用于卡片识别和设备控制

13.2 硬件清单

设备 数量 说明
温湿度传感器 1 站号02,RS485通信
压差传感器 1 站号01,RS485通信
门状态监测与门锁控制 1 站号03,RS485通信,中盛4路数字IO模块,控制左右门磁吸和触点开关
IC卡读写器(门口) 1 位于门口,可读取人员卡和内镜卡,RS232通信

| 继电器模块 | 1 | 控制风机、照明、真空泵、消毒设备 |

13.3 通信协议

RS485传感器数据格式

温湿度数据(站号02)

帧格式: 01 03 04 [湿度高字节] [湿度低字节] [温度高字节] [温度低字节] [CRC低] [CRC高]
示例: 01 03 04 02 98 00 BC 7B D5

压差数据(站号01)

帧格式: 01 03 02 [压差高字节] [压差低字节] [CRC低] [CRC高]
示例: 01 03 02 12 34 B5 33

门控制数据(站号03,中盛4路数字IO模块)

硬件配置:
- 站号: 03
- 通道1(地址0000H): 左门磁吸控制(DO) + 左门触点开关(DI)
- 通道2(地址0001H): 右门磁吸控制(DO) + 右门触点开关(DI)
- 控制指令: 功能码06(写单个保持寄存器)
- 状态上报: 功能码04(读输入寄存器),DI状态变化主动上报

控制指令:
左门开门(磁吸通电): 03 06 00 00 00 01 48 0A (发送后,leftDoor=true)
左门关门(磁吸断电): 03 06 00 00 00 00 89 CA (发送后,leftDoor=false)
右门开门(磁吸通电): 03 06 00 01 00 01 09 CA (发送后,rightDoor=true)
右门关门(磁吸断电): 03 06 00 01 00 00 49 E8 (发送后,rightDoor=false)

状态上报:
收到功能码04的上报数据,解析DI状态
- 左门触点触发: 更新 leftDoor=false
- 右门触点触发: 更新 rightDoor=false

RS232控制指令格式

帧格式: 5AA5EE [指令码] [操作码] [校验和]
指令码: 02=风机, 03=照明, 04=真空泵, 05=消毒
操作码: 01=开启, 00=关闭

示例:
风机开启: 5AA5EE0201
照明开启: 5AA5EE0301
真空泵开启: 5AA5EE0401
消毒开启: 5AA5EE0501

门控制说明

  • 开门操作: 通过RS485站号03发送开门指令(磁吸通电)

    • 左门开启: cmd.LeftDoor(true) → 发送 030600000001480A (发送后,leftDoor状态更新为true)
    • 右门开启: cmd.RightDoor(true) → 发送 03060001000109CA (发送后,rightDoor状态更新为true)
  • 关门操作: 通过RS485站号03发送关门指令(磁吸断电)

    • 左门关闭: cmd.LeftDoor(false) → 发送 03060000000089CA (发送后,leftDoor状态更新为false)
    • 右门关闭: cmd.RightDoor(false) → 发送 03060001000048E8 (发送后,rightDoor状态更新为false)
  • 门状态计算:

    • 门状态(door)根据左右门物理状态实时计算
    • 规则: door = leftDoor OR rightDoor
    • 任一门打开 → door状态为开
    • 两门全关 → door状态为关
  • 门状态上报:

    • 接收到功能码04的DI状态上报数据
    • 解析上报数据识别触点开关状态
    • 左门触点触发(关门) → 更新 leftDoor = false
    • 右门触点触发(关门) → 更新 rightDoor = false

RS232卡片数据格式

卡片数据通过同一通道读取

卡存入(14字节):
格式: 20 01 00 08 04 00 00 00 [卡号4字节] [校验] 03
卡号位置: 倒数4-8字节(字节位置6-9)

卡离开(7字节):
格式: 20 01 00 01 02 [校验] 03

卡片类型判断:
- 从数据库查询卡号
- 在user表找到 → 人员卡
- 在endo表找到 → 内镜卡
- 都未找到 → 无效卡片

13.4 开发环境

  • IDE: HBuilderX / VSCode
  • Node.js: >= 14.0
  • Android SDK: API Level 21+
  • UniApp: 3.x

文档结束