项目 7 情景控制:虚拟时钟、项目资源、Windows Media Player、TrackBar

- 虚拟时钟:实训台时钟面板可拨时间、1×/10×/60× 倍速、恢复真实时间;编译时把
  DateTime.Now / Today / UtcNow 改写成 SimClock;评分规则加 clock 步骤
- 项目资源(Properties.Resources):平台素材库(自绘开关图片、合成门铃声),"项目资源"对话框勾选,
  平台生成 Properties/Resources.Designer.cs;设计器图片框的"图片"属性可选资源;程序目录下的 Resources
  指向素材库;未添加资源时给中文提示
- Windows Media Player(AxWMPLib):设置 URL 自动播放、Ctlcontrols.play/stop,浏览器里播放声音,
  实训台加广播喇叭;编译时给窗体嵌空资源,OcxState 取到 null 不报错;图片和声音统一按内容缓存(blob)
- TrackBar:拖动、点轨道、方向键,先 ValueChanged 再 Scroll;设计器加"滑动条""媒体播放器"
- 评分规则加 value、media 检查;示例项目 7 任务 1–3(修正书上开关灯判断写反、漏填串口列表)
- 修正:Properties/ 下的资源类不当作窗体;带命名空间的 System.AppDomain.CurrentDomain.BaseDirectory 放行
- 测试:虚拟时钟、TrackBar、项目 7 示例评分、作业起点带资源类

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
xuyueandClaude Opus 5.5 committed 2026-10-23 14:11:05 +08:00
1 parent a9af26c2d6
commit eedf1aa2fb
66 files changed
+3538 -43

No files matched your search

+31
View File
@@ -0,0 +1,31 @@
# 评分规则:书上评价表的功能项。每项单独启动一次程序,按步骤操作,核对结果。
# 情景模式按时刻切换:用 clock 拨实训台的虚拟时钟(今天的某个时刻)。格式说明见 server/src/grading/checks.ts
- title: 能实时显示环境数据
steps:
- select: { control: com_import, item: COM2 }
- click: btn_apply
- expect: { control: btn_apply, text: 停止情景模式, desc: 按钮文字变成"停止情景模式" }
- board: { light: 650, temperature: 23, humidity: 51 }
- expect: { control: txt_light, text: '650', within: 5s }
- expect: { control: txt_temperature, text: '23', within: 5s }
- expect: { control: txt_time, matches: '^\d{2}:\d{2}:\d{2}$', desc: 显示当前时间 }
- title: 能根据时间段的变化判断寝室情景实时控制智能设备
steps:
- clock: '06:50:00'
- select: { control: com_import, item: COM2 }
- click: btn_apply
- expect: { control: lbl_mode, contains: 起床模式, within: 5s, desc: 6:50 是起床模式 }
- expect: { relay: 1, on: true, desc: 起床模式打开灯光 }
- expect: { control: trb_curtain, value: 5, desc: 起床模式窗帘半开 }
- expect: { media: ring.mp3, desc: 起床模式广播播放铃声 }
- clock: '08:00:00'
- expect: { control: lbl_mode, contains: 上课模式, within: 5s, desc: 8:00 是上课模式 }
- expect: { relay: 1, on: false, desc: 上课模式关闭灯光 }
- expect: { control: trb_curtain, value: 0, desc: 上课模式窗帘全开 }
- clock: '21:30:00'
- expect: { control: lbl_mode, contains: 回寝模式, within: 5s, desc: 21:30 是回寝模式 }
- expect: { control: trb_curtain, value: 10, desc: 回寝模式关窗帘 }
- clock: '23:00:00'
- expect: { control: lbl_mode, contains: 熄灯模式, within: 5s, desc: 23:00 是熄灯模式 }
- expect: { relay: 1, on: false, desc: 熄灯模式关闭灯光 }