Skip to content

liaboveall/swimSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

游泳池安全监控系统

项目描述

本项目是一个基于 Java Swing 的桌面应用程序,用于模拟和监控游泳池中佩戴式设备的状态。系统能够实时显示多个设备的位置、电量,并在设备发生溺水或电量不足等异常情况时发出警报。

主要功能

  • 设备状态监控: 实时显示每个设备的 ID、电量百分比、在泳池中的坐标 (X,Y) 以及当前状态(正常、电量低、溺水)。
  • 图形用户界面 (GUI): 使用 Java Swing 构建,以表格形式清晰展示所有设备信息。
  • 声音警报: 当设备状态变为“溺水”时,系统会自动播放警报声音。
  • 登录验证: 应用程序启动时需要输入用户名和密码进行登录。
  • 客户端/服务器架构:
    • 服务器端 (Server.java): 管理设备状态,监听客户端连接,更新设备信息。
    • 设备模拟 (Device.java): 每个设备作为一个独立线程运行,模拟状态变化(如信号丢失导致溺水、电量变化)。
    • 客户端通信 (DeviceHandler.java): 处理来自模拟客户端(或其他外部设备)的数据更新。
  • 信号丢失检测: 如果设备在特定时间内(默认为30秒)没有向服务器发送信号,则其状态将自动更新为“溺水”。
  • 模拟信号阻塞: 提供一个按钮来手动模拟特定设备(Device0)的信号丢失,以测试溺水警报功能。

技术栈

  • 语言: Java
  • GUI: Java Swing, FlatLaf (用于界面美化)
  • 音频播放: jmp123.jar 库 (用于播放 MP3 格式的警报声)
  • 并发: Java Threads (用于处理多个设备和服务器监听)
  • 网络: Java Sockets (用于客户端-服务器通信)

项目结构

swimSystem/
├── docs/
│   └── report.md
│   └── images/
│       └── 1.png
│       └── 2.png
├── lib/                   # 依赖库目录
│   ├── jmp123.jar         # MP3播放库
│   └── flatla-3.6.jar     # FlatLaf UI主题库
├── src/                   # 源代码目录
│   ├── Main.java          # 主应用程序入口,包含UI设置和服务器启动
│   ├── sounds/            # 声音文件目录
│   │   └── alert.mp3      # 警报声音文件
└── README.md              # 本文件

先决条件

  • Java Development Kit (JDK) 8 或更高版本。
  • 确保 jmp123.jarflatla-3.6.jar 文件位于 lib 目录下,并且在编译和运行时已添加到项目的类路径中。

登录凭据

  • 用户名: admin
  • 密码: password

客户端模拟

当前项目主要包含服务器端和设备模拟逻辑。客户端(即发送设备数据的实体)需要单独实现。服务器在端口 8888 上监听以下格式的TCP消息:

DeviceID Battery X Y

例如: Device0 85 100 150

其中:

  • DeviceID: 设备的唯一标识符 (例如, Device0, Device1)
  • Battery: 设备的当前电量 (整数, 0-100)
  • X: 设备在泳池中的X坐标 (整数)
  • Y: 设备在泳池中的Y坐标 (整数)

您可以编写一个简单的脚本或程序来模拟客户端发送这些数据到 localhost:8888 以测试服务器的接收和处理功能。

注意事项

  • 警报声音文件 alert.mp3 必须位于 src/sounds/ 目录下,或者相应地更新 Main.java 中的 ALARM_SOUND_FILE_PATH 常量。
  • jmp123.jar 是播放MP3所必需的。如果遇到音频播放问题,请检查类路径配置和库文件是否存在。
  • 防火墙设置可能会阻止服务器监听端口或客户端连接。

未来可能的改进

  • 实现一个图形化的客户端模拟器
  • 更复杂的设备行为模拟。
  • 将设备数据持久化到数据库。
  • Web界面或移动应用界面。
  • 认证机制。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages