✨ 功能特性(v3.2)
本文档对应 AgoraIn v3.2(AgoraInPro)。历史版本:v2.8 已归档(v2.8 功能特性),v2.7 已归档(v2.7 功能特性。
AgoraIn v3.2 在一个窗口内提供大屏模式与控制模式两种工作模式,配套集控服务器与移动端 App。
大屏模式(打卡)
任务管理
- 左侧任务树:文件夹 / 任务两级结构,支持打开、属性、重命名、删除(右键菜单),选中项浅蓝高亮
- 右侧多标签栏:每个任务一个标签页,支持新建(+)、切换、关闭;双击标签可重命名
- 工作区状态持久化:标签页列表与活动标签自动保存到
workspace.json,下次启动自动恢复
打卡面板
- 学生按钮网格:行列数可配置(默认 6×6),每个学生一个圆角按钮,点击打卡
- 已打卡学生按钮变蓝(
#4285f4),未打卡为浅灰;鼠标悬停半透明反馈 - 右键取消打卡(已打卡学生),支持批量操作(任务树右键"清空打卡记录")
- 网格自动按
ButtonRows × ButtonCols布局,超出滚动
打卡排名
- 左侧 320px 排名卡实时展示最早打卡的学生,按打卡时间排序
- 第 1/2/3 名分别金 / 银 / 铜高亮,展示打卡时间
在线模式与同步
- 连接集控服务器后实时同步打卡数据,顶栏状态行显示服务器在线/离线指示灯(绿
#34a853/ 红#ea4335) - 服务端可推送配置变更(配置版本追踪,自动应用);集控平台发现新版本时自动弹窗提示管理员
- 支持从服务器加载数据、检查服务器状态
签到任务(二维码签到)
- 一键创建签到:生成带短码的签到链接与二维码,支持设置签到密码、教室、科目
- 学生扫码后自动打卡,结果回写服务器,短码唯一索引防冲突
窗口体验
- 无边框圆角窗口(DWM API),支持拖拽、最小化 / 最大化 / 关闭
- 白色半透明模式下拉框、现代化圆角右键菜单、SVG 圆形应用图标
控制模式(控制中心)
统计条
顶栏统计条:总设备数量 / 总任务数量 / 在线设备数量(蓝色大数值)
左侧导航
划课 / 设备列表 / 任务中心 / 集控平台列表,选中项浅蓝高亮
划课(课时划消与排课)
- 学生列表管理:添加 / 删除学生,支持设置初始课时数;剩余课时以蓝色徽章展示
- 课时划消:输入课时数,划消课时(扣减)或增加课时(赠送),可填备注
- 课时记录流水:红扣(-X)绿增(+X),按学生筛选查看
- 月历排课:42 格月历(6 周 × 7 天),今日格带 "今" 徽章,选中日期蓝框高亮
- 排课规则:上课 / 下课时间必填(HH:mm,下课不得等于上课,支持跨天如 23:00–01:00),重复排课自动拦截
- 不排课日:周末默认提示,可将任意日期设为不排课日 / 恢复(自动清空当日排课,粉底"休"标记)
- 复制排课:把某日排课复制到多个日期,可跳过不排课日
- 自动扣减课时:开启后每 30 秒检查一次,课程结束后按
实际时长 × 每小时课时消耗自动扣减学生课时(SlotKey 幂等去重,多实例安全) - 设置项:每小时课时消耗(支持小数,如 0.5 / 1 / 1.5,范围 0–24)、自动划消开关
集控平台列表
- 打开远程打卡服务器控制台(
ServerControlWindow):登录、仪表盘、设备、任务、考勤、用户管理 - 查看服务器状态、版本信息,管理员密码通过 SHA256 哈希校验
集控服务器(Server)
- ASP.NET + EF Core + SQLite 存储,默认监听端口 5250(
config.json可改) - 设备注册与管理、打卡数据同步(
/api/sync_data、/api/load_data)、考勤记录 - Web 管理面板:多用户登录、加盐 SHA256 密码哈希、权限管理(用户增删改、改密码、设备分配)
- 签到任务:创建签到、短码生成、签到结果回写、按设备关联
- 移动端 API:JWT 令牌认证、二维码签到、管理员仪表盘
- 呼叫通知:
/api/mobile/calls发送呼叫,设备端/api/calls_pull拉取、/api/calls_ack确认;三种类型(待下课/应急/传唤),自动过期标记 - 安全特性:未配置
ServerPassword时自动生成随机密码并回写config.json;DebugMode调试开关;旧版明文密钥自动迁移为加密存储
移动端(Client.Mobile,MAUI)
学生端
登录、任务列表 / 详情、扫码签到、二维码生成、历史记录、考勤详情
管理员端
登录、仪表盘、任务管理、用户管理、设置、学生网格、创建签到
ClassIsland 联动插件(AgoraIn.ClassIslandPlugin)
- 运行于 ClassIsland 2.x 主程序进程内(
ClassIsland.Plugin.cipx安装包,2.1.1.0) - 定时轮询集控平台(默认 10 秒,可配置),拉取本机待处理呼叫
- 待下课时段通知:缓存并结合 ClassIsland 课表,在"距下课 ≤ 提前分钟数"窗口自动提醒
- 上课应急通知 / 下课传唤:立即弹出置顶窗口(红 / 橙主题色),并中文语音朗读(System.Speech,自动选择中文语音,同一呼叫不重复朗读)
- 自动探测本机 AgoraIn 大屏客户端配置(
Program Files/ 本地程序目录 /AGORAIN_HOME) - 配置持久化到 ClassIsland 插件目录
settings.json(平台地址 / 密码 / 设备 UUID 必须与教师端发送目标一致)
技术栈
| 组件 | 技术 |
|---|---|
| 桌面客户端 | .NET 10 / WPF(net10.0-windows),AssemblyName AgoraIn |
| 服务器 | ASP.NET Core + Entity Framework Core + SQLite |
| 移动端 | .NET MAUI(Android / iOS / Windows) |
| 二维码 | QRCoder(签到链接 / 二维码生成) |
| 图标 / 界面 | SVG 生成应用图标与界面示意图 |
| 窗口效果 | DWM API 窗口圆角、半透明阴影、DropShadowEffect |
| 数据文件 | System.Text.Json 序列化(config.json / workspace.json / classhours.json) |
版本历史
v3.2(当前)
新增
- 控制模式(控制中心):统计条、左侧导航、划课页、设备列表(呼叫面板)、任务中心、集控平台列表
- 呼叫通知:教师端批量/单台发送呼叫(待下课 / 应急 / 传唤),设备弹窗 + 语音朗读
- ClassIsland 联动插件 2.1.1.0:轮询修复、中文语音朗读
- 平台配置持久化(platforms.json,密码 DPAPI 加密),重启自动重连
v2.8.34
新增
- 控制模式(控制中心):统计条、左侧导航、划课页、集控平台列表
- 课时划消系统:学生管理、课时划消/增加 + 备注、课时记录流水(红扣绿增)
- 月历排课:上课/下课时间必填、今日"今"徽章、选中蓝框、跨天课程、重复排课拦截
- 不排课日(自动清空排课、周末默认提示)、复制排课(可跳过不排课日)
- 自动扣减课时:按实际时长 × 每小时课时消耗,SlotKey 幂等去重
- 大屏模式:任务树、多标签页、签到任务(二维码 + 短码 + 密码)、在线同步、右键取消打卡
UI/体验
- 模式切换下拉框(白色半透明样式)
- 现代化圆角:输入框、选项卡、右键菜单、DWM 窗口圆角
- SVG 圆形应用图标
修复
- 日历选中蓝框跟随日期
- 大屏模式取消打卡失效
- 控制模式显示错误模式名
- 白字继承链问题(下拉框/菜单文字颜色)