1. 与底层设备建立通信连接, 实时收集所有设备的状态。
2. 提供与上层应用程序的数据库交互接口,接收并处理应用层的控制指令。
3. 定时任务的调度。
4. 流媒体文件的播放。
mysql中的数据库名称为nccs, 应用层所有操作均通过数据库的表和存储过程对底层硬件设备进行监控,以及各种定时控制任务和广播任务的管理。
mysql_udf为数据库中自定义函数实现。
iDsteSrv为独立的后台进程,负责与底层设备进行socket通信,流媒体文件的播放,定时调用数据库中的定时任务调度函数。
VLC_Libs为iDsteSrv播放视频文件的依赖库。
本项目将重新定义服务器与客户端的通信接口,更改后服务器的结构如下:
增加AppServer模块,主要功能如下:
1. 提供与Web客户端与系统交互的api接口;
2. 提供与移动版客户端与系统交互的api接口;
3. 提供与云服务器进行数据交换的api接口;
云服务为移动设备进入系统的统一入口。
云服务器保存部署在不同用户的校内服务器进行通信,获取每个学校的用户信息和身份验证信息。
移动版客户端启动后,首先登陆云服务器,然后根据身份信息获取校内服务器的地址。后续的业务功能将直接由客户端与校内服务器直接交互。
注:用户注册信息和权限信息保存在校内服务器中,注册信息和权限的设定等操作此项目不做实施,仍暂时由原控制台软件实现。 (移动设备在云服务器上的身份识别信息需在此项目中考虑实施)。
web客户端由4个功能模块构成:
设备控制
任务管理
媒体库
注:文件上传,在此项目中暂不实现;
系统管理
分组显示
状态列表
•基本信息包含:
• 扩展信息包含:
设备状态实时更新
设备状态可由本地(中控设备的本地键盘控制),远程来改变,一旦设备状态改变,所有的客户端上相应该设备的状态将实时更新;
远程控制
可对选定的一个或者多个设备进行如下操作:
•系统开关机 \\ •系统启用和禁用\\ •投影机开关机\\ •扩展物联设备的控制 \\ •日志查询\\ •能耗统计\\
任务管理主要负责对系统中各种定时,或者手动任务的管理。由4个主要功能模块构成。
1. 定时任务
2. 模式
3. 手动任务
4. 实时采播
任务又分为广播任务和控制任务两类:
广播任务
实现音视频的播放,基本属性为:
1. 任务名称
2. 任务优先级
3. 播放方式(顺序播放,定时长播放等)
4. 播放内容(从媒体库中选取文件)
5. 接收成员
6. 任务执行时间
控制任务
实现设备的启用,禁用控制,以及扩展物联设备的控制。
同一个任务可实现多项控制的组合,如同时启用设备,和打开空调;
基本属性为:
1. 任务名称
2. 任务优先级
3. 控制命令组合
4. 接收成员
5. 任务执行时间
定时任务可由管理员和普通用户创建;
管理员创建的任务又称为系统任务,管理员可同时定义多套定时任务模板,系统在任何时刻只能设置为一个模板为当前的主用模板;
普通用户任务可创建用户的自有任务;
模式是为了满足客户在特定场景下,能够快速改变部分设备的广播和控制人物的设置;
比如:某个年级进行考试,需要将进行考试的班级原有设置的定时的广播铃声停止(而其他未进行考试的班级需要铃声继续),而重新设置一套新的考试铃声进行播放,考试结束后还原原先的设置;
模式功能的基本说明:
•模式的基本属性为:
•管理员可手动启动或者停止模式的运行;
•模式也可按照设定的时间定时运行和停止;
•模式一旦启动,所有的成员设备将进入高优先权的模式状态,此时,将屏蔽低优先级的定时任务对他进行执行;
•模式内任务只有在模式开始运行后,才会在设定的时间运行;
•模式又可分为主用和备用两类:
web客户端模式管理的功能如下:
管理员和普通用户均可建立手动播出的广播任务。
手动任务的基本属性和定时任务基本相同(无播出时间设置)。
用户可手动播出,手动停止,手动暂停任务。
web页面将实时显示任务的状态,播放进度。
普通用户只能显示自己创建的任务,并进行控制。管理员可对所有的任务进行手动控制。
实时采播是指由PC呼叫台和音频广播站这两类的硬件设备所创建的任务,该模块只对管理员可见。
•PC呼叫台:
在控制台上课注册一个PC呼叫台(本项目暂不考虑实现注册功能)。允许用户在PC上运行特定的软件对授权的用户进行播放;
PC呼叫台的广播任务在系统注册该设备时自动创建,web客户端只需将PC呼叫他的状态实时显示出来即可。
•音频广播站
移动客户端的初始版本只实现web客户端的设备管理和任务管理中的定时控制任务的功能;