边缘机上的功能描述

边缘机上的功能描述

根据提供的代码,边缘机实现了基于 Quartz 调度框架的定时任务管理,利用 JavaCV 和 FFmpeg 进行视频流处理,并通过 MQTT 发布消息。这些功能通过多个实用工具类、任务类和配置类进行管理。以下是这些功能的详细描述及其对应的类。

功能表格

功能编号 功能描述 主要类和方法
1 创建定时任务 JobUtils.createJob
2 暂停定时任务 JobUtils.pauseJob
3 恢复定时任务 JobUtils.resumeJob
4 删除定时任务 JobUtils.deleteJob
5 立即执行一次定时任务 JobUtils.runJobOnce
6 修改定时任务 JobUtils.modifyJob
7 生成 Cron 表达式 CornUtils.corn
8 生成 DailyTimeIntervalScheduleBuilder DailyTimeUtils.getDailyTimeIntervalScheduleBuilder
9 从 RTSP 视频流中抓取一帧图像并转换为 Base64 编码字符串 VideoUtil.getBase64ByRtspUrl
10 根据视频旋转角度调整图片 VideoUtil.rotate
11 计算图片旋转后的大小 VideoUtil.calcRotatedSize
12 从视频地址抓取截图(GB28181)并转换为 Base64(待实现) VideoUtil.getBase64ByGb28181Url
13 发布消息到 MQTT 服务器 MyMQTTClient.publish
14 根据视频截图进行报警识别并发布到 MQTT MonitorJobBean.executeInternal
15 将定时任务数据传递给任务 Bean MonitorJobBean.executeInternal
16 向远程报警服务发送请求并获取识别结果 requestAlarm.requestIdentify

主要类和功能描述

  1. 定时任务管理功能

    • JobUtils 类:提供创建、暂停、恢复、删除、立即执行和修改定时任务的方法。
      • createJob: 创建定时任务并配置调度器、任务详细信息和触发器。
      • pauseJob: 暂停定时任务。
      • resumeJob: 恢复定时任务。
      • deleteJob: 删除定时任务。
      • runJobOnce: 立即执行一次定时任务。
      • modifyJob: 修改现有的定时任务。
  2. 定时任务调度功能

    • CornUtils 类:提供生成 Cron 表达式的方法。
      • corn: 生成定时任务的 Cron 表达式。
    • DailyTimeUtils 类:提供生成 DailyTimeIntervalScheduleBuilder 的方法。
      • getDailyTimeIntervalScheduleBuilder: 根据任务配置生成 DailyTimeIntervalScheduleBuilder。
  3. 视频处理功能

    • VideoUtil 类:提供从视频流中抓取图像并转换为 Base64 编码的方法。
      • getBase64ByRtspUrl: 从 RTSP 视频流中抓取一帧图像并转换为 Base64 编码字符串。
      • rotate: 根据视频旋转角度调整图片。
      • calcRotatedSize: 计算图片旋转后的大小。
      • getBase64ByGb28181Url: 从视频地址抓取截图(GB28181)并转换为 Base64(待实现)。
  4. MQTT 客户端功能

    • MyMQTTClient 类:提供发布消息到 MQTT 服务器的方法。
      • publish: 发布消息到 MQTT 服务器。
  5. 报警任务功能

    • MonitorJobBean 类:实现 QuartzJobBean 接口,负责定时任务的具体执行逻辑。
      • executeInternal: 从视频流抓取图像,进行报警识别,并通过 MQTT 发布识别结果。
  6. 报警请求功能

    • requestAlarm 类:向远程报警服务发送请求并获取识别结果。
      • requestIdentify: 发送报警识别请求并获取结果。

这些代码和配置文件共同构成了边缘机的功能,实现了视频处理、定时任务调度和报警识别与发布等核心功能。