用 bun fmt 格式化全部代码和文档
- bunfig.toml 的 [fmt]:不写分号、单引号、一行最长 160,和原来的写法一致 - .prettierignore:docs/教材摘要/ 是书上的摘录,不格式化 - 模板里一行写两条语句的事件处理(@keydown.delete、@dblclick)改成调用方法:去掉分号后拆成两行,Vue 编译不过 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
d4b8bf9241
commit
de277d3e9d
102 files changed
+1971
-1059
No files matched your search
@@ -4,11 +4,11 @@
|
||||
steps:
|
||||
- click: btnAdd
|
||||
- text: { control: txtNewUser1, value: zhangsan }
|
||||
- text: { control: txtPass1, value: "123" }
|
||||
- text: { control: txtPass2, value: "123" }
|
||||
- text: { control: txtPass1, value: '123' }
|
||||
- text: { control: txtPass2, value: '123' }
|
||||
- click: btnOk
|
||||
- text: { control: txtUserName, value: zhangsan }
|
||||
- text: { control: txtPassword, value: "123" }
|
||||
- text: { control: txtPassword, value: '123' }
|
||||
- click: btnOk
|
||||
- expect: { messageBox: 登录成功 }
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
steps:
|
||||
- click: btnAdd
|
||||
- text: { control: txtNewUser1, value: lisi }
|
||||
- text: { control: txtPass1, value: "123" }
|
||||
- text: { control: txtPass2, value: "456" }
|
||||
- text: { control: txtPass1, value: '123' }
|
||||
- text: { control: txtPass2, value: '456' }
|
||||
- click: btnOk
|
||||
- expect: { messageBox: 用户名或密码错误 }
|
||||
+15
-15
@@ -10,14 +10,14 @@
|
||||
|
||||
登录窗体:
|
||||
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 窗体 | `Login` | 登录 |
|
||||
| 文本框 | `txtUserName` | 输入用户名(前面放标签 `LblUsername`) |
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
| ------ | ------------- | -------------------------------------------------------------------- |
|
||||
| 窗体 | `Login` | 登录 |
|
||||
| 文本框 | `txtUserName` | 输入用户名(前面放标签 `LblUsername`) |
|
||||
| 文本框 | `txtPassword` | 输入密码,PasswordChar 设为星号 *(前面放标签 `LblPwd`,文字"密码") |
|
||||
| 按钮 | `btnOk` | 登录 |
|
||||
| 按钮 | `btnCancel` | 取消 |
|
||||
| 按钮 | `btnAdd` | 增加用户 |
|
||||
| 按钮 | `btnOk` | 登录 |
|
||||
| 按钮 | `btnCancel` | 取消 |
|
||||
| 按钮 | `btnAdd` | 增加用户 |
|
||||
|
||||
用户名前面的标签 `LblUsername` 文字是"用户名称"。
|
||||
|
||||
@@ -25,14 +25,14 @@
|
||||
|
||||
增加用户窗体(点"+ 新建窗体",名字填 AddUser):
|
||||
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 窗体 | `AddUser` | 增加用户 |
|
||||
| 文本框 | `txtNewUser1` | 新用户名(前面放标签"用户名") |
|
||||
| 文本框 | `txtPass1` | 密码,PasswordChar 设为星号 * |
|
||||
| 文本框 | `txtPass2` | 确认密码,PasswordChar 设为星号 * |
|
||||
| 按钮 | `btnOk` | 确定 |
|
||||
| 按钮 | `btnCancel` | 取消 |
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
| ------ | ------------- | --------------------------------- |
|
||||
| 窗体 | `AddUser` | 增加用户 |
|
||||
| 文本框 | `txtNewUser1` | 新用户名(前面放标签"用户名") |
|
||||
| 文本框 | `txtPass1` | 密码,PasswordChar 设为星号 * |
|
||||
| 文本框 | `txtPass2` | 确认密码,PasswordChar 设为星号 * |
|
||||
| 按钮 | `btnOk` | 确定 |
|
||||
| 按钮 | `btnCancel` | 取消 |
|
||||
|
||||
> 书上的控件表和代码对不上:表里写 `txtPwd`、`BtnOk`,增加用户窗体写 `txtUserName`、`txtPwd`、`txtCheckPwd`,代码里用的是上面这些名字。请按上面的表起名,自动评分按这些名字操作。
|
||||
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
# 格式说明见 server/src/grading/checks.ts
|
||||
- title: 计算器能正确计算(装箱与拆箱)
|
||||
steps:
|
||||
- text: { control: txtNum1, value: "7" }
|
||||
- text: { control: txtNum2, value: "2" }
|
||||
- select: { control: cmboxType, item: "+" }
|
||||
- text: { control: txtNum1, value: '7' }
|
||||
- text: { control: txtNum2, value: '2' }
|
||||
- select: { control: cmboxType, item: '+' }
|
||||
- click: btnCalculate
|
||||
- expect: { control: txtResult, text: "9" }
|
||||
- select: { control: cmboxType, item: "/" }
|
||||
- expect: { control: txtResult, text: '9' }
|
||||
- select: { control: cmboxType, item: '/' }
|
||||
- click: btnCalculate
|
||||
- expect: { control: txtResult, text: "3.5" }
|
||||
- expect: { control: txtResult, text: '3.5' }
|
||||
|
||||
- title: 多态:不同国家的人说不同的语言
|
||||
steps:
|
||||
|
||||
@@ -6,18 +6,18 @@
|
||||
|
||||
## 界面和控件名
|
||||
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 窗体 | `Form1` | C#入门基础 |
|
||||
| 分组框 | `groupBox1` | 简易计算器 |
|
||||
| 文本框 | `txtNum1` | 第一个数 |
|
||||
| 下拉框 | `cmboxType` | 运算符,Items 填 `+`、`-`、`*`、`/` 四项 |
|
||||
| 文本框 | `txtNum2` | 第二个数 |
|
||||
| 按钮 | `btnCalculate` | = |
|
||||
| 文本框 | `txtResult` | 计算结果,ReadOnly 设为 True |
|
||||
| 分组框 | `groupBox2` | 类的多态性 |
|
||||
| 文本框 | `txtDispaly` | 输出说话内容,Multiline 设为 True |
|
||||
| 按钮 | `btnDisplay` | 显示 |
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
| ------ | -------------- | ---------------------------------------- |
|
||||
| 窗体 | `Form1` | C#入门基础 |
|
||||
| 分组框 | `groupBox1` | 简易计算器 |
|
||||
| 文本框 | `txtNum1` | 第一个数 |
|
||||
| 下拉框 | `cmboxType` | 运算符,Items 填 `+`、`-`、`*`、`/` 四项 |
|
||||
| 文本框 | `txtNum2` | 第二个数 |
|
||||
| 按钮 | `btnCalculate` | = |
|
||||
| 文本框 | `txtResult` | 计算结果,ReadOnly 设为 True |
|
||||
| 分组框 | `groupBox2` | 类的多态性 |
|
||||
| 文本框 | `txtDispaly` | 输出说话内容,Multiline 设为 True |
|
||||
| 按钮 | `btnDisplay` | 显示 |
|
||||
|
||||
> `txtDispaly` 是书上的拼法(不是 Display),代码和自动评分都用这个名字,照着写。书上的表格没写下拉框的 Items 和文本框的 Multiline,要自己在属性里设置。
|
||||
|
||||
|
||||
@@ -6,15 +6,15 @@
|
||||
|
||||
## 界面和控件名
|
||||
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 窗体 | `Form1` | LED显示屏 |
|
||||
| LED 显示屏 | `led` | 窗体上方的大块 LED 控件,在工具箱"物联网设备"里 |
|
||||
| 分组框 | `groupBox1` | LED控制 |
|
||||
| 下拉框 | `com_Port` | 串口(前面放标签"串口") |
|
||||
| 按钮 | `btn_Open` | 打开 |
|
||||
| 文本框 | `txt_SendText` | 要推送的文字(前面放标签"推送LED信息") |
|
||||
| 按钮 | `btn_Send` | 推送 |
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
| ---------- | -------------- | ----------------------------------------------- |
|
||||
| 窗体 | `Form1` | LED显示屏 |
|
||||
| LED 显示屏 | `led` | 窗体上方的大块 LED 控件,在工具箱"物联网设备"里 |
|
||||
| 分组框 | `groupBox1` | LED控制 |
|
||||
| 下拉框 | `com_Port` | 串口(前面放标签"串口") |
|
||||
| 按钮 | `btn_Open` | 打开 |
|
||||
| 文本框 | `txt_SendText` | 要推送的文字(前面放标签"推送LED信息") |
|
||||
| 按钮 | `btn_Send` | 推送 |
|
||||
|
||||
> 书上的表格把 LED 控件写成 `LED`,代码里用的是小写的 `led`,请按代码起名。
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
- click: btn_Open
|
||||
- expect: { control: btn_Open, text: 关闭, desc: 按钮文字变成"关闭" }
|
||||
- click: btn_get
|
||||
- expect: { control: txt_temperature, text: "25" }
|
||||
- expect: { control: txt_humidity, text: "60" }
|
||||
- expect: { control: txt_light, text: "500" }
|
||||
- expect: { control: txt_temperature, text: '25' }
|
||||
- expect: { control: txt_humidity, text: '60' }
|
||||
- expect: { control: txt_light, text: '500' }
|
||||
|
||||
- title: 环境变化后能获取到新的数值
|
||||
steps:
|
||||
@@ -16,5 +16,5 @@
|
||||
- click: btn_Open
|
||||
- board: { temperature: 31, light: 300 }
|
||||
- click: btn_get
|
||||
- expect: { control: txt_temperature, text: "31" }
|
||||
- expect: { control: txt_light, text: "300" }
|
||||
- expect: { control: txt_temperature, text: '31' }
|
||||
- expect: { control: txt_light, text: '300' }
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
## 界面和控件名
|
||||
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 窗体 | `frm_analog` | 模拟量采集 |
|
||||
| 分组框 | `grp_show` | 数据显示 |
|
||||
| 标签 | `lbl_light`、`lbl_temperature`、`lbl_humidity` | 光照度、温度、湿度 |
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
| ------ | ---------------------------------------------- | -------------------------- |
|
||||
| 窗体 | `frm_analog` | 模拟量采集 |
|
||||
| 分组框 | `grp_show` | 数据显示 |
|
||||
| 标签 | `lbl_light`、`lbl_temperature`、`lbl_humidity` | 光照度、温度、湿度 |
|
||||
| 文本框 | `txt_light`、`txt_temperature`、`txt_humidity` | 显示光照度、温度、湿度的值 |
|
||||
| 按钮 | `btn_get` | 获取 |
|
||||
| 分组框 | `grp_config` | 配置 |
|
||||
| 下拉框 | `com_port` | 串口 |
|
||||
| 按钮 | `btn_Open` | 开启(打开后变成"关闭") |
|
||||
| 按钮 | `btn_get` | 获取 |
|
||||
| 分组框 | `grp_config` | 配置 |
|
||||
| 下拉框 | `com_port` | 串口 |
|
||||
| 按钮 | `btn_Open` | 开启(打开后变成"关闭") |
|
||||
|
||||
> 窗体名:在设计器里点窗体空白处,把属性窗口的**名称**从 `Form1` 改成 `frm_analog`,类名、文件名和 Program.cs 会跟着改。先改名再双击窗体,生成的 Load 事件才叫 `frm_analog_Load`。
|
||||
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
- select: { control: com_ledPort, item: COM5 }
|
||||
- click: btn_open
|
||||
- click: btn_get
|
||||
- expect: { control: txt_temperature, text: "25" }
|
||||
- expect: { led: "25", desc: 显示温度 25 }
|
||||
- expect: { led: "60", desc: 显示湿度 60 }
|
||||
- expect: { led: "500", desc: 显示光照度 500 }
|
||||
- expect: { control: txt_temperature, text: '25' }
|
||||
- expect: { led: '25', desc: 显示温度 25 }
|
||||
- expect: { led: '60', desc: 显示湿度 60 }
|
||||
- expect: { led: '500', desc: 显示光照度 500 }
|
||||
|
||||
- title: 能推送最新的环境信息
|
||||
steps:
|
||||
@@ -19,4 +19,4 @@
|
||||
- click: btn_get
|
||||
- board: { temperature: 31 }
|
||||
- click: btn_get
|
||||
- expect: { led: "31", desc: 显示最新的温度 31 }
|
||||
- expect: { led: '31', desc: 显示最新的温度 31 }
|
||||
@@ -6,17 +6,17 @@
|
||||
|
||||
## 界面和控件名
|
||||
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 窗体 | `frm_LED` | LED推送模拟量 |
|
||||
| LED 显示屏 | `led` | 窗体上方的 LED 控件 |
|
||||
| 分组框 | `grp_show` | 数据显示 |
|
||||
| 文本框 | `txt_light`、`txt_temperature`、`txt_humidity` | 显示光照度、温度、湿度的值(前面放标签) |
|
||||
| 按钮 | `btn_get` | 获取 |
|
||||
| 分组框 | `grp_config` | 配置 |
|
||||
| 下拉框 | `com_adamPort` | 模拟量串口(ADAM-4017+) |
|
||||
| 下拉框 | `com_ledPort` | LED串口 |
|
||||
| 按钮 | `btn_open` | 开启(打开后变成"关闭") |
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
| ---------- | ---------------------------------------------- | ---------------------------------------- |
|
||||
| 窗体 | `frm_LED` | LED推送模拟量 |
|
||||
| LED 显示屏 | `led` | 窗体上方的 LED 控件 |
|
||||
| 分组框 | `grp_show` | 数据显示 |
|
||||
| 文本框 | `txt_light`、`txt_temperature`、`txt_humidity` | 显示光照度、温度、湿度的值(前面放标签) |
|
||||
| 按钮 | `btn_get` | 获取 |
|
||||
| 分组框 | `grp_config` | 配置 |
|
||||
| 下拉框 | `com_adamPort` | 模拟量串口(ADAM-4017+) |
|
||||
| 下拉框 | `com_ledPort` | LED串口 |
|
||||
| 按钮 | `btn_open` | 开启(打开后变成"关闭") |
|
||||
|
||||
> 书上的表格写的是 `btn_Open`,代码里是 `btn_open`(小写 o);表格里也没有列 LED 控件,代码里叫 `led`。请按代码起名,自动评分按这些名字找控件。
|
||||
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
## 界面和控件名
|
||||
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 窗体 | `Form1` | ZigBee路灯 |
|
||||
| 灯泡 | `lamp1` | 窗体上显示路灯的亮灭(工具箱"物联网设备"里的**灯泡**) |
|
||||
| 单选按钮 | `rb_Open` | 开(开灯) |
|
||||
| 单选按钮 | `rb_Close` | 关(关灯) |
|
||||
| 分组框 | `groupBox1` | 配置 |
|
||||
| 标签 | `lbl_Lamp` | 路灯 |
|
||||
| 下拉框 | `com_port` | ZigBee 协调器的串口 |
|
||||
| 按钮 | `btn_open` | 打开(打开后变成"关闭") |
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
| -------- | ------------ | ------------------------------------------------------ |
|
||||
| 窗体 | `Form1` | ZigBee路灯 |
|
||||
| 灯泡 | `lamp1` | 窗体上显示路灯的亮灭(工具箱"物联网设备"里的**灯泡**) |
|
||||
| 单选按钮 | `rb_Open` | 开(开灯) |
|
||||
| 单选按钮 | `rb_Close` | 关(关灯) |
|
||||
| 分组框 | `groupBox1` | 配置 |
|
||||
| 标签 | `lbl_Lamp` | 路灯 |
|
||||
| 下拉框 | `com_port` | ZigBee 协调器的串口 |
|
||||
| 按钮 | `btn_open` | 打开(打开后变成"关闭") |
|
||||
|
||||
> 书上的表格写的是 `btn_Open`,代码里是 `btn_open`。名字区分大小写,请按代码写成 `btn_open`,否则自动评分找不到这个按钮。
|
||||
|
||||
|
||||
@@ -6,18 +6,18 @@
|
||||
|
||||
## 界面和控件名
|
||||
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 窗体 | `Form1` | 人体红外ZigBee联动 |
|
||||
| 灯泡 | `lamp1` | 窗体上显示路灯的亮灭 |
|
||||
| 按钮 | `btn_lampOpen` | 开(手动开灯) |
|
||||
| 按钮 | `btn_lampClose` | 关(手动关灯) |
|
||||
| 分组框 | `groupBox1` | 配置 |
|
||||
| 下拉框 | `com_lamp` | 路灯(ZigBee 协调器)的串口 |
|
||||
| 下拉框 | `com_environment` | 环境采集(ADAM-4150)的串口 |
|
||||
| 复选框 | `ch_bodyInfrared` | 人体开关 |
|
||||
| 按钮 | `btn_open` | 打开(打开后变成"关闭") |
|
||||
| 定时器 | `timer1` | Interval 设为 5000(5 秒),Enabled 保持 False |
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
| ------ | ----------------- | ---------------------------------------------- |
|
||||
| 窗体 | `Form1` | 人体红外ZigBee联动 |
|
||||
| 灯泡 | `lamp1` | 窗体上显示路灯的亮灭 |
|
||||
| 按钮 | `btn_lampOpen` | 开(手动开灯) |
|
||||
| 按钮 | `btn_lampClose` | 关(手动关灯) |
|
||||
| 分组框 | `groupBox1` | 配置 |
|
||||
| 下拉框 | `com_lamp` | 路灯(ZigBee 协调器)的串口 |
|
||||
| 下拉框 | `com_environment` | 环境采集(ADAM-4150)的串口 |
|
||||
| 复选框 | `ch_bodyInfrared` | 人体开关 |
|
||||
| 按钮 | `btn_open` | 打开(打开后变成"关闭") |
|
||||
| 定时器 | `timer1` | Interval 设为 5000(5 秒),Enabled 保持 False |
|
||||
|
||||
> 书上的表格写的是 `btn_Open`,代码里是 `btn_open`。名字区分大小写,请按代码写成 `btn_open`,否则自动评分找不到这个按钮。
|
||||
|
||||
|
||||
+12
-12
@@ -6,18 +6,18 @@
|
||||
|
||||
## 界面和控件名
|
||||
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 窗体 | `Form1` | 红外对射 |
|
||||
| 标签 | `lbl_port` | 环境串口 |
|
||||
| 下拉框 | `com_port` | ADAM-4150 的串口 |
|
||||
| 按钮 | `btn_open` | 开启(打开后变成"关闭") |
|
||||
| 分组框 | `groupBox1` | 数据显示 |
|
||||
| 标签 | `lbl_time` | 时间 |
|
||||
| 文本框 | `txt_time` | 显示当前时间 |
|
||||
| 标签 | `lbl_even` | 入侵 |
|
||||
| 文本框 | `txt_even` | 显示"发现入侵"或"正常" |
|
||||
| 定时器 | `timer1` | Interval 设为 2000(2 秒) |
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
| ------ | ------------ | -------------------------- |
|
||||
| 窗体 | `Form1` | 红外对射 |
|
||||
| 标签 | `lbl_port` | 环境串口 |
|
||||
| 下拉框 | `com_port` | ADAM-4150 的串口 |
|
||||
| 按钮 | `btn_open` | 开启(打开后变成"关闭") |
|
||||
| 分组框 | `groupBox1` | 数据显示 |
|
||||
| 标签 | `lbl_time` | 时间 |
|
||||
| 文本框 | `txt_time` | 显示当前时间 |
|
||||
| 标签 | `lbl_even` | 入侵 |
|
||||
| 文本框 | `txt_even` | 显示"发现入侵"或"正常" |
|
||||
| 定时器 | `timer1` | Interval 设为 2000(2 秒) |
|
||||
|
||||
> 书上的表格里没有分组框,看书上的界面图,"时间""入侵"两行放在"数据显示"分组框里。
|
||||
|
||||
|
||||
+11
-11
@@ -6,18 +6,18 @@
|
||||
|
||||
## 界面和控件名
|
||||
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 窗体 | `Form1` | 网络摄像机 |
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
| ------ | ------------- | -------------------------------------------------------------- |
|
||||
| 窗体 | `Form1` | 网络摄像机 |
|
||||
| 图片框 | `pictureBox1` | 显示画面;背景色设为黑色,显示方式选"拉伸填满"(StretchImage) |
|
||||
| 标签 | `label1` | 摄像机IP |
|
||||
| 文本框 | `txt_ip` | 输入摄像机的 IP |
|
||||
| 按钮 | `btn_open` | 开(打开后变成"关") |
|
||||
| 按钮 | `btn_up` | ↑(向上转) |
|
||||
| 按钮 | `btn_down` | ↓(向下转) |
|
||||
| 按钮 | `btn_left` | ←(向左转) |
|
||||
| 按钮 | `btn_right` | →(向右转) |
|
||||
| 按钮 | `btn_camera` | 拍照 |
|
||||
| 标签 | `label1` | 摄像机IP |
|
||||
| 文本框 | `txt_ip` | 输入摄像机的 IP |
|
||||
| 按钮 | `btn_open` | 开(打开后变成"关") |
|
||||
| 按钮 | `btn_up` | ↑(向上转) |
|
||||
| 按钮 | `btn_down` | ↓(向下转) |
|
||||
| 按钮 | `btn_left` | ←(向左转) |
|
||||
| 按钮 | `btn_right` | →(向右转) |
|
||||
| 按钮 | `btn_camera` | 拍照 |
|
||||
|
||||
## 实现步骤
|
||||
|
||||
|
||||
+10
-10
@@ -6,16 +6,16 @@
|
||||
|
||||
## 界面和控件名
|
||||
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 窗体 | `Form1` | 报警灯 |
|
||||
| 报警灯 | `alarm1` | 窗体上显示报警灯的亮灭(工具箱"物联网设备"里的**报警灯**) |
|
||||
| 按钮 | `btn_alarmOpen` | 开(打开报警灯) |
|
||||
| 按钮 | `btn_alarmClose` | 关(关闭报警灯) |
|
||||
| 分组框 | `groupBox1` | 配置 |
|
||||
| 标签 | `label1` | 报警灯 |
|
||||
| 下拉框 | `com_port` | ADAM-4150 的串口 |
|
||||
| 按钮 | `btn_open` | 开启(打开后变成"关闭") |
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
| ------ | ---------------- | ---------------------------------------------------------- |
|
||||
| 窗体 | `Form1` | 报警灯 |
|
||||
| 报警灯 | `alarm1` | 窗体上显示报警灯的亮灭(工具箱"物联网设备"里的**报警灯**) |
|
||||
| 按钮 | `btn_alarmOpen` | 开(打开报警灯) |
|
||||
| 按钮 | `btn_alarmClose` | 关(关闭报警灯) |
|
||||
| 分组框 | `groupBox1` | 配置 |
|
||||
| 标签 | `label1` | 报警灯 |
|
||||
| 下拉框 | `com_port` | ADAM-4150 的串口 |
|
||||
| 按钮 | `btn_open` | 开启(打开后变成"关闭") |
|
||||
|
||||
> 书上的表格把报警灯控件的名称写成 `Alarm`,那是控件的类型名;代码里用的名字是 `alarm1`,请按代码写,否则自动评分找不到它。
|
||||
|
||||
|
||||
+12
-12
@@ -6,18 +6,18 @@
|
||||
|
||||
## 界面和控件名
|
||||
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 窗体 | `Form1` | 火焰 |
|
||||
| 标签 | `lbl_port` | 串口 |
|
||||
| 下拉框 | `com_port` | ADAM-4150 的串口 |
|
||||
| 按钮 | `btn_open` | 开启(打开后变成"关闭") |
|
||||
| 分组框 | `groupBox1` | 数据显示 |
|
||||
| 标签 | `lbl_time` | 时间 |
|
||||
| 文本框 | `txt_time` | 显示当前时间 |
|
||||
| 标签 | `lbl_even` | 事件 |
|
||||
| 文本框 | `txt_even` | 显示有没有火情 |
|
||||
| 定时器 | `timer1` | Interval 设为 2000(2 秒),Enabled 保持 False |
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
| ------ | ------------ | ---------------------------------------------- |
|
||||
| 窗体 | `Form1` | 火焰 |
|
||||
| 标签 | `lbl_port` | 串口 |
|
||||
| 下拉框 | `com_port` | ADAM-4150 的串口 |
|
||||
| 按钮 | `btn_open` | 开启(打开后变成"关闭") |
|
||||
| 分组框 | `groupBox1` | 数据显示 |
|
||||
| 标签 | `lbl_time` | 时间 |
|
||||
| 文本框 | `txt_time` | 显示当前时间 |
|
||||
| 标签 | `lbl_even` | 事件 |
|
||||
| 文本框 | `txt_even` | 显示有没有火情 |
|
||||
| 定时器 | `timer1` | Interval 设为 2000(2 秒),Enabled 保持 False |
|
||||
|
||||
> 书上的表格里没有分组框,照图加一个 `groupBox1`(数据显示),把时间、事件两行放进去。
|
||||
|
||||
|
||||
+11
-11
@@ -6,17 +6,17 @@
|
||||
|
||||
## 界面和控件名
|
||||
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 窗体 | `Form1` | 烟雾 |
|
||||
| 标签 | `lbl_port` | 串口 |
|
||||
| 下拉框 | `com_port` | ADAM-4150 的串口 |
|
||||
| 按钮 | `btn_open` | 开启(打开后变成"关闭") |
|
||||
| 分组框 | `groupBox1` | 数据显示 |
|
||||
| 标签 | `lbl_time` | 时间 |
|
||||
| 文本框 | `txt_time` | 显示当前时间 |
|
||||
| 标签 | `lbl_even` | 事件 |
|
||||
| 文本框 | `txt_even` | 显示有没有烟情 |
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
| ------ | ------------ | ------------------------ |
|
||||
| 窗体 | `Form1` | 烟雾 |
|
||||
| 标签 | `lbl_port` | 串口 |
|
||||
| 下拉框 | `com_port` | ADAM-4150 的串口 |
|
||||
| 按钮 | `btn_open` | 开启(打开后变成"关闭") |
|
||||
| 分组框 | `groupBox1` | 数据显示 |
|
||||
| 标签 | `lbl_time` | 时间 |
|
||||
| 文本框 | `txt_time` | 显示当前时间 |
|
||||
| 标签 | `lbl_even` | 事件 |
|
||||
| 文本框 | `txt_even` | 显示有没有烟情 |
|
||||
|
||||
> 界面和任务 1 一样,但**没有定时器**。书上的表格里没有分组框,照图加一个 `groupBox1`(数据显示)。
|
||||
|
||||
|
||||
+19
-19
@@ -8,28 +8,28 @@
|
||||
|
||||
主窗体 Form1:
|
||||
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 窗体 | `Form1` | 火焰烟雾 |
|
||||
| LED 显示屏 | `led1` | 窗体顶部,显示推送的灾情 |
|
||||
| 分组框 | `groupBox2` | 数据采集 |
|
||||
| 标签 | `lbl_time`、`lbl_fire`、`lbl_smoke` | 时间、火焰、烟雾 |
|
||||
| 文本框 | `txt_time`、`txt_fire`、`txt_smoke` | 显示时间、火焰状态、烟雾状态 |
|
||||
| 按钮 | `btn_get` | 获取 |
|
||||
| 分组框 | `groupBox1` | 配置 |
|
||||
| 标签 | `lbl_Ledport` | LED |
|
||||
| 下拉框 | `com_ledPort` | LED 屏的串口 |
|
||||
| 标签 | `lbl_4150port` | 环境采集 |
|
||||
| 下拉框 | `com_environmentPort` | ADAM-4150 的串口 |
|
||||
| 按钮 | `btn_Open` | 开启(打开后变成"关闭") |
|
||||
| 按钮 | `OpenRecord` | 历史灾情信息 |
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
| ---------- | ----------------------------------- | ---------------------------- |
|
||||
| 窗体 | `Form1` | 火焰烟雾 |
|
||||
| LED 显示屏 | `led1` | 窗体顶部,显示推送的灾情 |
|
||||
| 分组框 | `groupBox2` | 数据采集 |
|
||||
| 标签 | `lbl_time`、`lbl_fire`、`lbl_smoke` | 时间、火焰、烟雾 |
|
||||
| 文本框 | `txt_time`、`txt_fire`、`txt_smoke` | 显示时间、火焰状态、烟雾状态 |
|
||||
| 按钮 | `btn_get` | 获取 |
|
||||
| 分组框 | `groupBox1` | 配置 |
|
||||
| 标签 | `lbl_Ledport` | LED |
|
||||
| 下拉框 | `com_ledPort` | LED 屏的串口 |
|
||||
| 标签 | `lbl_4150port` | 环境采集 |
|
||||
| 下拉框 | `com_environmentPort` | ADAM-4150 的串口 |
|
||||
| 按钮 | `btn_Open` | 开启(打开后变成"关闭") |
|
||||
| 按钮 | `OpenRecord` | 历史灾情信息 |
|
||||
|
||||
历史记录窗体 Form2:
|
||||
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 窗体 | `Form2` | 历史灾情记录 |
|
||||
| 列表框 | `lstbRecored` | 一行一条灾情记录 |
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
| ------ | ------------- | ------------------ |
|
||||
| 窗体 | `Form2` | 历史灾情记录 |
|
||||
| 列表框 | `lstbRecored` | 一行一条灾情记录 |
|
||||
|
||||
> 书上表 5-6 没列 `btn_get`、`OpenRecord`、`groupBox2`,照图加上。`lstbRecored` 的拼写就是这样(不是 Record),照着写。
|
||||
|
||||
|
||||
@@ -12,20 +12,20 @@
|
||||
|
||||
## 界面和控件名
|
||||
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 窗体 | `Form1` | 校园灾情数据存储 |
|
||||
| 分组框 | `groupBox2` | 配置 |
|
||||
| 下拉框 | `com_port` | ADAM-4017+ 的串口 |
|
||||
| 按钮 | `btn_Open` | 开启(打开后变成"关闭") |
|
||||
| 分组框 | `groupBox1` | 数据显示 |
|
||||
| 文本框 | `txt_light`、`txt_temperature`、`txt_humidity` | 光照度、温度、湿度 |
|
||||
| 按钮 | `btn_get` | 获取 |
|
||||
| 按钮 | `btn_save` | 保存 |
|
||||
| 按钮 | `btnUpdate` | 修改 |
|
||||
| 按钮 | `btnDelete` | 删除 |
|
||||
| 分组框 | `groupBox3` | 历史记录 |
|
||||
| 数据表格 | `dataGridView1` | 显示数据库里的记录 |
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
| -------- | ---------------------------------------------- | ------------------------ |
|
||||
| 窗体 | `Form1` | 校园灾情数据存储 |
|
||||
| 分组框 | `groupBox2` | 配置 |
|
||||
| 下拉框 | `com_port` | ADAM-4017+ 的串口 |
|
||||
| 按钮 | `btn_Open` | 开启(打开后变成"关闭") |
|
||||
| 分组框 | `groupBox1` | 数据显示 |
|
||||
| 文本框 | `txt_light`、`txt_temperature`、`txt_humidity` | 光照度、温度、湿度 |
|
||||
| 按钮 | `btn_get` | 获取 |
|
||||
| 按钮 | `btn_save` | 保存 |
|
||||
| 按钮 | `btnUpdate` | 修改 |
|
||||
| 按钮 | `btnDelete` | 删除 |
|
||||
| 分组框 | `groupBox3` | 历史记录 |
|
||||
| 数据表格 | `dataGridView1` | 显示数据库里的记录 |
|
||||
|
||||
> 注意按钮名字的写法不统一:`btn_Open`、`btn_get`、`btn_save` 带下划线,`btnUpdate`、`btnDelete` 不带,照书上的写,自动评分按这些名字找按钮。
|
||||
|
||||
|
||||
+10
-10
@@ -12,16 +12,16 @@
|
||||
|
||||
## 界面和控件名
|
||||
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 窗体 | `Form1` | 查询校园灾情数据 |
|
||||
| 标签 | `LblStartTime` | 开始日期 |
|
||||
| 日期时间控件 | `StartTime` | 选开始日期 |
|
||||
| 标签 | `LblEndTime` | 结束日期 |
|
||||
| 日期时间控件 | `EndTime` | 选结束日期 |
|
||||
| 按钮 | `btnCx` | 查询 |
|
||||
| 分组框 | `groupBox4` | 历史记录 |
|
||||
| 数据表格 | `dataGridView1` | 显示查到的记录 |
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
| ------------ | --------------- | ------------------ |
|
||||
| 窗体 | `Form1` | 查询校园灾情数据 |
|
||||
| 标签 | `LblStartTime` | 开始日期 |
|
||||
| 日期时间控件 | `StartTime` | 选开始日期 |
|
||||
| 标签 | `LblEndTime` | 结束日期 |
|
||||
| 日期时间控件 | `EndTime` | 选结束日期 |
|
||||
| 按钮 | `btnCx` | 查询 |
|
||||
| 分组框 | `groupBox4` | 历史记录 |
|
||||
| 数据表格 | `dataGridView1` | 显示查到的记录 |
|
||||
|
||||
## 实现步骤
|
||||
|
||||
|
||||
+15
-15
@@ -12,21 +12,21 @@
|
||||
|
||||
## 界面和控件名
|
||||
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 窗体 | `frm_control` | 智慧教室情景控制 |
|
||||
| 分组框 | `grp_mode` | 模式选择 |
|
||||
| 标签 | `lbl_mode` | 智慧教室将开启(启用后变成"智慧教室已开启") |
|
||||
| 按钮 | `btn_apply` | 启用(启用后变成"关闭") |
|
||||
| 分组框 | `grp_input` | 采集量 |
|
||||
| 下拉框 | `com_import` | 采集器的串口 |
|
||||
| 文本框 | `txt_light`、`txt_temperature`、`txt_humidity` | 光照度、温度、湿度 |
|
||||
| 分组框 | `grp_status` | 状态栏 |
|
||||
| 图片框 | `pic_airconditioneStatus` | 空调开关状态,图片选 switch_off |
|
||||
| 滑动条 | `trb_airconditione` | 模拟空调温度:最小值 18,最大值 32,值 18 |
|
||||
| 图片框 | `pic_lightsStatus` | 灯光开关状态,图片选 switch_off;点它手动开关灯 |
|
||||
| 灯泡 | `lamp` | 窗体上显示灯的亮灭 |
|
||||
| 定时器 | `timer` | 间隔 2000(2 秒) |
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
| ------ | ---------------------------------------------- | ----------------------------------------------- |
|
||||
| 窗体 | `frm_control` | 智慧教室情景控制 |
|
||||
| 分组框 | `grp_mode` | 模式选择 |
|
||||
| 标签 | `lbl_mode` | 智慧教室将开启(启用后变成"智慧教室已开启") |
|
||||
| 按钮 | `btn_apply` | 启用(启用后变成"关闭") |
|
||||
| 分组框 | `grp_input` | 采集量 |
|
||||
| 下拉框 | `com_import` | 采集器的串口 |
|
||||
| 文本框 | `txt_light`、`txt_temperature`、`txt_humidity` | 光照度、温度、湿度 |
|
||||
| 分组框 | `grp_status` | 状态栏 |
|
||||
| 图片框 | `pic_airconditioneStatus` | 空调开关状态,图片选 switch_off |
|
||||
| 滑动条 | `trb_airconditione` | 模拟空调温度:最小值 18,最大值 32,值 18 |
|
||||
| 图片框 | `pic_lightsStatus` | 灯光开关状态,图片选 switch_off;点它手动开关灯 |
|
||||
| 灯泡 | `lamp` | 窗体上显示灯的亮灭 |
|
||||
| 定时器 | `timer` | 间隔 2000(2 秒) |
|
||||
|
||||
其余标签(串口、光照度、温度、湿度、空调、灯光、18℃、32℃)照书上的图摆好,名字不影响评分。
|
||||
|
||||
|
||||
+22
-22
@@ -2,12 +2,12 @@
|
||||
|
||||
做一个"智慧寝室"控制窗体:点"开启情景模式"后,程序每秒显示当前时间和光照度、温度、湿度,并按时间段自动切换四种情景模式,控制灯光、窗帘和广播:
|
||||
|
||||
| 时间段 | 模式 | 灯光 | 窗帘(滑动条) | 广播 |
|
||||
|---|---|---|---|---|
|
||||
| 6:45–7:30 | 起床模式 | 开 | 5(半开) | 放铃声 |
|
||||
| 7:30–21:00 | 上课模式 | 关 | 0(全开) | 关 |
|
||||
| 21:00–22:00 | 回寝模式 | 开 | 10(全关) | 放铃声 |
|
||||
| 其他时间 | 熄灯模式 | 关 | 10(全关) | 关 |
|
||||
| 时间段 | 模式 | 灯光 | 窗帘(滑动条) | 广播 |
|
||||
| ----------- | -------- | ---- | -------------- | ------ |
|
||||
| 6:45–7:30 | 起床模式 | 开 | 5(半开) | 放铃声 |
|
||||
| 7:30–21:00 | 上课模式 | 关 | 0(全开) | 关 |
|
||||
| 21:00–22:00 | 回寝模式 | 开 | 10(全关) | 放铃声 |
|
||||
| 其他时间 | 熄灯模式 | 关 | 10(全关) | 关 |
|
||||
|
||||
练习重点:DateTime 的比较,自己写方法(CheckMode、PlayMp3),用线程(Thread)播放声音,媒体播放器控件。详细步骤见书 p141–145。
|
||||
|
||||
@@ -19,22 +19,22 @@
|
||||
|
||||
## 界面和控件名
|
||||
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 窗体 | `frm_control` | 智慧寝室情景控制 |
|
||||
| 分组框 | `grp_mode` | 模式选择 |
|
||||
| 文本框 | `txt_time` | 显示当前时间 |
|
||||
| 标签 | `lbl_mode` | 显示现在是哪种模式(文字先空着) |
|
||||
| 按钮 | `btn_apply` | 开启情景模式(开启后变成"停止情景模式") |
|
||||
| 分组框 | `grp_input` | 采集量 |
|
||||
| 下拉框 | `com_import` | 采集器的串口 |
|
||||
| 文本框 | `txt_light`、`txt_temperature`、`txt_humidity` | 光照度、温度、湿度 |
|
||||
| 分组框 | `grp_status` | 状态栏 |
|
||||
| 滑动条 | `trb_curtain` | 模拟窗帘:0 全开,10 全关(最小值 0、最大值 10 用默认的就行) |
|
||||
| 图片框 | `pic_boardcastStatus` | 广播状态,图片选 switch_off |
|
||||
| 灯泡 | `lamp` | 窗体上显示灯的亮灭 |
|
||||
| 定时器 | `timer` | 间隔 1000(1 秒) |
|
||||
| 媒体播放器 | `axWindowsMediaPlayer1` | 播放铃声;可见设为 False |
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
| ---------- | ---------------------------------------------- | ------------------------------------------------------------- |
|
||||
| 窗体 | `frm_control` | 智慧寝室情景控制 |
|
||||
| 分组框 | `grp_mode` | 模式选择 |
|
||||
| 文本框 | `txt_time` | 显示当前时间 |
|
||||
| 标签 | `lbl_mode` | 显示现在是哪种模式(文字先空着) |
|
||||
| 按钮 | `btn_apply` | 开启情景模式(开启后变成"停止情景模式") |
|
||||
| 分组框 | `grp_input` | 采集量 |
|
||||
| 下拉框 | `com_import` | 采集器的串口 |
|
||||
| 文本框 | `txt_light`、`txt_temperature`、`txt_humidity` | 光照度、温度、湿度 |
|
||||
| 分组框 | `grp_status` | 状态栏 |
|
||||
| 滑动条 | `trb_curtain` | 模拟窗帘:0 全开,10 全关(最小值 0、最大值 10 用默认的就行) |
|
||||
| 图片框 | `pic_boardcastStatus` | 广播状态,图片选 switch_off |
|
||||
| 灯泡 | `lamp` | 窗体上显示灯的亮灭 |
|
||||
| 定时器 | `timer` | 间隔 1000(1 秒) |
|
||||
| 媒体播放器 | `axWindowsMediaPlayer1` | 播放铃声;可见设为 False |
|
||||
|
||||
其余标签(当前时间、串口、光照度、温度、湿度、窗帘、全开、全关、广播、灯光)照书上的图摆好,名字不影响评分。
|
||||
|
||||
|
||||
+27
-27
@@ -3,10 +3,10 @@
|
||||
做一个"智慧会议室"预约窗体:程序一启动就每秒显示当前时间和光照度、温度、湿度、气压、空气质量。填好时、分、秒,选一种模式(会议、讨论、展示),点"预约";到了预约时间,程序自动开启这种模式,控制灯光、窗帘和主、客话筒:
|
||||
|
||||
| 模式 | 灯光 | 窗帘(滑动条) | 主话筒 | 客话筒 |
|
||||
|---|---|---|---|---|
|
||||
| 会议 | 开 | 0(全开) | 开 | 关 |
|
||||
| 讨论 | 开 | 0(全开) | 开 | 开 |
|
||||
| 展示 | 开 | 10(全关) | 开 | 关 |
|
||||
| ---- | ---- | -------------- | ------ | ------ |
|
||||
| 会议 | 开 | 0(全开) | 开 | 关 |
|
||||
| 讨论 | 开 | 0(全开) | 开 | 开 |
|
||||
| 展示 | 开 | 10(全关) | 开 | 关 |
|
||||
|
||||
勾选"拍照记录"时,预约时间到了还要打开网络摄像头,每 5 分钟存一张照片。点"退出"关掉所有设备。
|
||||
|
||||
@@ -18,29 +18,29 @@
|
||||
|
||||
## 界面和控件名
|
||||
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 窗体 | `frm_control` | 智慧会议室情景模式 |
|
||||
| 分组框 | `grp_mode` | 模式选择 |
|
||||
| 标签 | `lbl_time` | 当前时间:00:00:00(运行时显示当前时间) |
|
||||
| 标签 | `lbl_mode` | 智慧会议室未开启情景模式 |
|
||||
| 复选框 | `chk_record` | 拍照记录 |
|
||||
| 文本框 | `txt_hour`、`txt_minute`、`txt_second` | 预约的时、分、秒,默认 13、20、00 |
|
||||
| 标签 | `lbl_hour`、`lbl_minute`、`lbl_second` | 时、分、秒将会有场 |
|
||||
| 下拉框 | `com_mode` | 选择模式,默认文字"会议" |
|
||||
| 按钮 | `btn_reserve` | 预约 |
|
||||
| 按钮 | `btn_exit` | 退出 |
|
||||
| 分组框 | `grp_input` | 采集量 |
|
||||
| 下拉框 | `com_import` | 采集器的串口 |
|
||||
| 文本框 | `txt_light`、`txt_temperature`、`txt_humidity` | 光照度、温度、湿度 |
|
||||
| 文本框 | `txt_airPressure`、`txt_airQuality` | 气压、空气质量 |
|
||||
| 文本框 | `txt_camera` | 摄像头 IP 地址,默认 192.168.14.131 |
|
||||
| 分组框 | `grp_status` | 状态栏 |
|
||||
| 滑动条 | `trb_curtain` | 模拟窗帘:0 全开,10 全关 |
|
||||
| 图片框 | `pic_lightsStatus` | 灯光开关,点它手动开关灯 |
|
||||
| 灯泡 | `lamp` | 窗体上显示灯的亮灭 |
|
||||
| 图片框 | `pic_mainMicrophone`、`pic_subMicrophone` | 主、客话筒开关,点它手动开关 |
|
||||
| 定时器 | `timer` | 间隔 1000(1 秒) |
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
| ------ | ---------------------------------------------- | ---------------------------------------- |
|
||||
| 窗体 | `frm_control` | 智慧会议室情景模式 |
|
||||
| 分组框 | `grp_mode` | 模式选择 |
|
||||
| 标签 | `lbl_time` | 当前时间:00:00:00(运行时显示当前时间) |
|
||||
| 标签 | `lbl_mode` | 智慧会议室未开启情景模式 |
|
||||
| 复选框 | `chk_record` | 拍照记录 |
|
||||
| 文本框 | `txt_hour`、`txt_minute`、`txt_second` | 预约的时、分、秒,默认 13、20、00 |
|
||||
| 标签 | `lbl_hour`、`lbl_minute`、`lbl_second` | 时、分、秒将会有场 |
|
||||
| 下拉框 | `com_mode` | 选择模式,默认文字"会议" |
|
||||
| 按钮 | `btn_reserve` | 预约 |
|
||||
| 按钮 | `btn_exit` | 退出 |
|
||||
| 分组框 | `grp_input` | 采集量 |
|
||||
| 下拉框 | `com_import` | 采集器的串口 |
|
||||
| 文本框 | `txt_light`、`txt_temperature`、`txt_humidity` | 光照度、温度、湿度 |
|
||||
| 文本框 | `txt_airPressure`、`txt_airQuality` | 气压、空气质量 |
|
||||
| 文本框 | `txt_camera` | 摄像头 IP 地址,默认 192.168.14.131 |
|
||||
| 分组框 | `grp_status` | 状态栏 |
|
||||
| 滑动条 | `trb_curtain` | 模拟窗帘:0 全开,10 全关 |
|
||||
| 图片框 | `pic_lightsStatus` | 灯光开关,点它手动开关灯 |
|
||||
| 灯泡 | `lamp` | 窗体上显示灯的亮灭 |
|
||||
| 图片框 | `pic_mainMicrophone`、`pic_subMicrophone` | 主、客话筒开关,点它手动开关 |
|
||||
| 定时器 | `timer` | 间隔 1000(1 秒) |
|
||||
|
||||
其余标签(串口、光照度、温度、湿度、气压、空气质量、摄像头IP地址、窗帘、全开、全关、灯光、话筒、主、客)照书上的图摆好,名字不影响评分。书上表格里还有 CO₂ 浓度一行,但代码里没有用到,可以不做。
|
||||
|
||||
|
||||
@@ -6,15 +6,15 @@
|
||||
|
||||
## 界面和控件名
|
||||
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 窗体 | `Main` | 主界面;FormBorderStyle 设为 None,StartPosition 设为 CenterScreen |
|
||||
| 面板 | `panel1` | 顶部标题栏:停靠 Top,背景色 53, 147, 237 |
|
||||
| 图片框 | `pictureBox1` | 放在 panel1 上,图片 `ico_title`("智慧校园"标题),SizeMode 设为 StretchImage |
|
||||
| 面板 | `panel2` | 停靠 Fill,背景图片 `bg_home`(校园),背景排列 Stretch |
|
||||
| 图片框 | `pic_environment` | "校园环境"入口,图片 `icon_02` |
|
||||
| 图片框 | `pic_security` | "校园安防"入口,图片 `icon_03` |
|
||||
| 图片框 | `pic_exit` | "退出",图片 `icon_04` |
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
| ------ | ----------------- | ------------------------------------------------------------------------------ |
|
||||
| 窗体 | `Main` | 主界面;FormBorderStyle 设为 None,StartPosition 设为 CenterScreen |
|
||||
| 面板 | `panel1` | 顶部标题栏:停靠 Top,背景色 53, 147, 237 |
|
||||
| 图片框 | `pictureBox1` | 放在 panel1 上,图片 `ico_title`("智慧校园"标题),SizeMode 设为 StretchImage |
|
||||
| 面板 | `panel2` | 停靠 Fill,背景图片 `bg_home`(校园),背景排列 Stretch |
|
||||
| 图片框 | `pic_environment` | "校园环境"入口,图片 `icon_02` |
|
||||
| 图片框 | `pic_security` | "校园安防"入口,图片 `icon_03` |
|
||||
| 图片框 | `pic_exit` | "退出",图片 `icon_04` |
|
||||
|
||||
> 三个图标放在 panel2 的背景图上,背景色都设成 **Transparent**,否则图标四周会露出一块灰色。
|
||||
|
||||
|
||||
@@ -8,29 +8,29 @@
|
||||
|
||||
## 界面和控件名
|
||||
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 窗体 | `Environment` | 校园环境;FormBorderStyle 设为 None,StartPosition 设为 CenterScreen |
|
||||
| 面板 | `panel1` | 顶部标题栏:停靠 Top,背景色 100, 116, 133,放标题图 `ico_title` |
|
||||
| 面板 | `panel2` | 停靠 Fill,下面的面板都放在它里面 |
|
||||
| 面板 | `panel3` | panel2 里停靠 Top,背景色 229, 229, 229 |
|
||||
| 标签 | `lb_return` | < 返回主窗体(放在 panel3 上) |
|
||||
| 面板 | `panel_bg` | panel3 下面停靠 Fill,背景图片 `day_02`(路灯没亮的场景),背景排列 Stretch |
|
||||
| 面板 | `panel5` | panel_bg 里停靠 Bottom:环境数据栏 |
|
||||
| 文本框 | `txt_fire`、`txt_smoke`、`txt_light`、`txt_temperature`、`txt_humidity` | 火焰、烟雾、光照、温度、湿度(左边各配一个标签) |
|
||||
| 按钮 | `btn_dataAnalyse` | 数据分析 |
|
||||
| 按钮 | `btn_ledEnvironment1` | 推送天气信息(环境数据栏里的那个) |
|
||||
| 面板 | `panel_form` | panel_bg 里停靠 Right,背景色 Transparent,背景图片 `bg_from2` |
|
||||
| 分组框 | `groupBox2` | 路灯控制 |
|
||||
| 复选框 | `ch_autoLamp` | 自动控制 |
|
||||
| 文本框 | `txt_autoLight` | 设定开灯光照值(后面配标签"lx") |
|
||||
| 图片框 | `pic_lampOpen` | 灯光控制的开关:背景色 Transparent,背景图片 `switch_off` |
|
||||
| 分组框 | `groupBox3` | LED推送 |
|
||||
| 文本框 | `txt_ledMsg` | LED信息(Multiline 设为 True) |
|
||||
| 复选框 | `ch_autoLedFire` | 自动推送火情 |
|
||||
| 按钮 | `btn_ledSendMsg` | 推送LED信息 |
|
||||
| 按钮 | `btn_ledEnvironment2` | 推送天气信息(LED推送组里的那个) |
|
||||
| 图表 | `chart1` | 放在 panel_bg 左下方,显示最高温度和平均温度 |
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
| ------ | ----------------------------------------------------------------------- | --------------------------------------------------------------------------- |
|
||||
| 窗体 | `Environment` | 校园环境;FormBorderStyle 设为 None,StartPosition 设为 CenterScreen |
|
||||
| 面板 | `panel1` | 顶部标题栏:停靠 Top,背景色 100, 116, 133,放标题图 `ico_title` |
|
||||
| 面板 | `panel2` | 停靠 Fill,下面的面板都放在它里面 |
|
||||
| 面板 | `panel3` | panel2 里停靠 Top,背景色 229, 229, 229 |
|
||||
| 标签 | `lb_return` | < 返回主窗体(放在 panel3 上) |
|
||||
| 面板 | `panel_bg` | panel3 下面停靠 Fill,背景图片 `day_02`(路灯没亮的场景),背景排列 Stretch |
|
||||
| 面板 | `panel5` | panel_bg 里停靠 Bottom:环境数据栏 |
|
||||
| 文本框 | `txt_fire`、`txt_smoke`、`txt_light`、`txt_temperature`、`txt_humidity` | 火焰、烟雾、光照、温度、湿度(左边各配一个标签) |
|
||||
| 按钮 | `btn_dataAnalyse` | 数据分析 |
|
||||
| 按钮 | `btn_ledEnvironment1` | 推送天气信息(环境数据栏里的那个) |
|
||||
| 面板 | `panel_form` | panel_bg 里停靠 Right,背景色 Transparent,背景图片 `bg_from2` |
|
||||
| 分组框 | `groupBox2` | 路灯控制 |
|
||||
| 复选框 | `ch_autoLamp` | 自动控制 |
|
||||
| 文本框 | `txt_autoLight` | 设定开灯光照值(后面配标签"lx") |
|
||||
| 图片框 | `pic_lampOpen` | 灯光控制的开关:背景色 Transparent,背景图片 `switch_off` |
|
||||
| 分组框 | `groupBox3` | LED推送 |
|
||||
| 文本框 | `txt_ledMsg` | LED信息(Multiline 设为 True) |
|
||||
| 复选框 | `ch_autoLedFire` | 自动推送火情 |
|
||||
| 按钮 | `btn_ledSendMsg` | 推送LED信息 |
|
||||
| 按钮 | `btn_ledEnvironment2` | 推送天气信息(LED推送组里的那个) |
|
||||
| 图表 | `chart1` | 放在 panel_bg 左下方,显示最高温度和平均温度 |
|
||||
|
||||
> 书上表 8-6、表 8-7 把四个按钮的"名称"写成了"数据分析""推送天气信息""推送LED信息",那是按钮上的文字。名称按上表写,任务 3 的代码和自动评分都用这些名字。
|
||||
|
||||
@@ -53,4 +53,4 @@
|
||||
## 在平台上怎么试
|
||||
|
||||
1. 运行后在主界面点"校园环境",打开 Environment 窗体:背景是路灯场景,底部有五个文本框和"数据分析""推送天气信息",右边有"路灯控制""LED推送"两组,左下方有图表(现在还没有数据)。
|
||||
2. 点"< 返回主窗体",Environment 关闭,主界面还在。
|
||||
2. 点"< 返回主窗体",Environment 关闭,主界面还在。
|
||||
@@ -14,22 +14,22 @@
|
||||
|
||||
界面在任务 2 已经做好,这次要写代码的控件:
|
||||
|
||||
| 窗体 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 主界面 | `Main` | Load 里打开所有设备的串口 |
|
||||
| 主界面 | `pic_environment` | "校园环境":打开 Environment 窗体 |
|
||||
| 校园环境 | `Environment` | Load 里启动采集线程,FormClosed 里停止线程 |
|
||||
| 校园环境 | `txt_fire`、`txt_smoke` | 显示"发生火情"/"发生烟情"或"正常" |
|
||||
| 校园环境 | `txt_light`、`txt_temperature`、`txt_humidity` | 显示光照、温度、湿度 |
|
||||
| 校园环境 | `btn_dataAnalyse` | 数据分析 / 关闭图表 |
|
||||
| 校园环境 | `chart1` | 最近 7 天的最高温度、平均温度 |
|
||||
| 校园环境 | `btn_ledEnvironment1`、`btn_ledEnvironment2` | 推送天气信息(两个按钮做同一件事) |
|
||||
| 校园环境 | `pic_lampOpen` | 灯光控制开关:点一下开灯,再点关灯 |
|
||||
| 校园环境 | `ch_autoLamp` | 自动控制路灯 |
|
||||
| 校园环境 | `txt_autoLight` | 设定开灯光照值:光照低于它就开灯 |
|
||||
| 校园环境 | `txt_ledMsg` | 要推送的 LED 信息 |
|
||||
| 校园环境 | `btn_ledSendMsg` | 推送LED信息 |
|
||||
| 校园环境 | `ch_autoLedFire` | 自动推送火情 |
|
||||
| 窗体 | 名称(Name) | 文字(Text)和用途 |
|
||||
| -------- | ---------------------------------------------- | ------------------------------------------ |
|
||||
| 主界面 | `Main` | Load 里打开所有设备的串口 |
|
||||
| 主界面 | `pic_environment` | "校园环境":打开 Environment 窗体 |
|
||||
| 校园环境 | `Environment` | Load 里启动采集线程,FormClosed 里停止线程 |
|
||||
| 校园环境 | `txt_fire`、`txt_smoke` | 显示"发生火情"/"发生烟情"或"正常" |
|
||||
| 校园环境 | `txt_light`、`txt_temperature`、`txt_humidity` | 显示光照、温度、湿度 |
|
||||
| 校园环境 | `btn_dataAnalyse` | 数据分析 / 关闭图表 |
|
||||
| 校园环境 | `chart1` | 最近 7 天的最高温度、平均温度 |
|
||||
| 校园环境 | `btn_ledEnvironment1`、`btn_ledEnvironment2` | 推送天气信息(两个按钮做同一件事) |
|
||||
| 校园环境 | `pic_lampOpen` | 灯光控制开关:点一下开灯,再点关灯 |
|
||||
| 校园环境 | `ch_autoLamp` | 自动控制路灯 |
|
||||
| 校园环境 | `txt_autoLight` | 设定开灯光照值:光照低于它就开灯 |
|
||||
| 校园环境 | `txt_ledMsg` | 要推送的 LED 信息 |
|
||||
| 校园环境 | `btn_ledSendMsg` | 推送LED信息 |
|
||||
| 校园环境 | `ch_autoLedFire` | 自动推送火情 |
|
||||
|
||||
## 实现步骤
|
||||
|
||||
|
||||
+15
-15
@@ -10,22 +10,22 @@
|
||||
|
||||
## 界面和控件名
|
||||
|
||||
接着任务 3 的程序做。Security 窗体顶部和 Environment 一样:标题栏 + "< 返回主窗体"。
|
||||
接着任务 3 的程序做。Security 窗体顶部和 Environment 一样:标题栏 + "< 返回主窗体"。
|
||||
|
||||
| 窗体 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 主界面 | `pic_security` | "校园安防":打开 Security 窗体 |
|
||||
| 校园安防 | `Security` | 无边框、屏幕居中 |
|
||||
| 校园安防 | `panel1`、`panel3` | 标题栏(放标题图 `ico_title`)、返回栏,都停靠 Top |
|
||||
| 校园安防 | `lb_return` | < 返回主窗体 |
|
||||
| 校园安防 | `panel_bg_video` | 停靠 Fill,白色背景,下面的控件都放在它上面 |
|
||||
| 校园安防 | `panel2` | 灰色(DimGray)的视频区 |
|
||||
| 校园安防 | `pic_video` | 放在 panel2 上,显示摄像机画面;背景图片 `icon_monitor`,背景排列 Center |
|
||||
| 校园安防 | `lb_infrared` | 放在 panel2 上,标签"入侵:"的右边,开始是 N/A,之后显示"发现入侵"或"正常" |
|
||||
| 校园安防 | `panel_video_ctrl` | 方向盘:背景图片 `panel_video_ctrl`,背景排列 Stretch |
|
||||
| 窗体 | 名称(Name) | 文字(Text)和用途 |
|
||||
| -------- | --------------------------------------------- | ----------------------------------------------------------------------------- |
|
||||
| 主界面 | `pic_security` | "校园安防":打开 Security 窗体 |
|
||||
| 校园安防 | `Security` | 无边框、屏幕居中 |
|
||||
| 校园安防 | `panel1`、`panel3` | 标题栏(放标题图 `ico_title`)、返回栏,都停靠 Top |
|
||||
| 校园安防 | `lb_return` | < 返回主窗体 |
|
||||
| 校园安防 | `panel_bg_video` | 停靠 Fill,白色背景,下面的控件都放在它上面 |
|
||||
| 校园安防 | `panel2` | 灰色(DimGray)的视频区 |
|
||||
| 校园安防 | `pic_video` | 放在 panel2 上,显示摄像机画面;背景图片 `icon_monitor`,背景排列 Center |
|
||||
| 校园安防 | `lb_infrared` | 放在 panel2 上,标签"入侵:"的右边,开始是 N/A,之后显示"发现入侵"或"正常" |
|
||||
| 校园安防 | `panel_video_ctrl` | 方向盘:背景图片 `panel_video_ctrl`,背景排列 Stretch |
|
||||
| 校园安防 | `pic_up`、`pic_down`、`pic_left`、`pic_right` | 放在方向盘上的四个方向键,背景图片 `btn_arrow_up_normal` 等,背景排列 Stretch |
|
||||
| 校园安防 | `btn_camera` | 拍照 |
|
||||
| 校园安防 | `btn_history` | 查看历史图像(任务 5 再写代码) |
|
||||
| 校园安防 | `btn_camera` | 拍照 |
|
||||
| 校园安防 | `btn_history` | 查看历史图像(任务 5 再写代码) |
|
||||
|
||||
## 实现步骤
|
||||
|
||||
@@ -55,4 +55,4 @@
|
||||
2. 点实训台的**红外对射**遮挡光束,"入侵:"后面显示"发现入侵",画面里出现翻墙的人;再点一次恢复,显示"正常"。
|
||||
3. 点四个方向键,画面跟着转;松开后方向键换回原来的图片。把鼠标放在实训台的**网络摄像头**上能看到云台的位置。
|
||||
4. 点"拍照",运行区下面的"程序保存的图片"里多出一张 Camera 文件夹下的照片(文件名是拍照的日期和时间);到**数据库**页面查询 SecurityData 表,能看到拍照和入侵时存的记录。
|
||||
5. 点"< 返回主窗体",Security 关闭,摄像机也关闭。
|
||||
5. 点"< 返回主窗体",Security 关闭,摄像机也关闭。
|
||||
+13
-13
@@ -12,19 +12,19 @@
|
||||
|
||||
接着任务 4 的程序做。
|
||||
|
||||
| 窗体 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 校园安防 | `btn_history` | 查看历史图像:打开 SecurityCameraData 窗体 |
|
||||
| 历史报警记录 | `SecurityCameraData` | 无边框、屏幕居中 |
|
||||
| 历史报警记录 | `panel1` | 标题栏:背景色 100, 116, 133,左边标签 `label1`"历史报警记录"(白字) |
|
||||
| 历史报警记录 | `pic_close` | 标题栏右边的关闭按钮:背景图片 `windowstate_closed_hover`,背景排列 Center |
|
||||
| 历史报警记录 | `panel_toolBar` | 工具栏:背景色 229, 229, 229 |
|
||||
| 历史报警记录 | `dateTimePicker1`、`dateTimePicker2` | 开始时间、结束时间(左边各配一个标签) |
|
||||
| 历史报警记录 | `btn_get` | 查询 |
|
||||
| 历史报警记录 | `pic_camera` | 显示照片:背景色 64, 64, 64 |
|
||||
| 历史报警记录 | `lb_noData` | NO DATA(红字,背景色 64, 64, 64,字号 48),叠在 pic_camera 中间 |
|
||||
| 历史报警记录 | `lb_time` | TIME(红字,背景色 64, 64, 64),叠在 pic_camera 右下角,显示拍摄时间 |
|
||||
| 历史报警记录 | `pic_up`、`pic_down` | 左、右翻页箭头:图片 `arrow_left_normal`、`arrow_right_normal`,SizeMode 设为 CenterImage |
|
||||
| 窗体 | 名称(Name) | 文字(Text)和用途 |
|
||||
| ------------ | ------------------------------------ | ----------------------------------------------------------------------------------------- |
|
||||
| 校园安防 | `btn_history` | 查看历史图像:打开 SecurityCameraData 窗体 |
|
||||
| 历史报警记录 | `SecurityCameraData` | 无边框、屏幕居中 |
|
||||
| 历史报警记录 | `panel1` | 标题栏:背景色 100, 116, 133,左边标签 `label1`"历史报警记录"(白字) |
|
||||
| 历史报警记录 | `pic_close` | 标题栏右边的关闭按钮:背景图片 `windowstate_closed_hover`,背景排列 Center |
|
||||
| 历史报警记录 | `panel_toolBar` | 工具栏:背景色 229, 229, 229 |
|
||||
| 历史报警记录 | `dateTimePicker1`、`dateTimePicker2` | 开始时间、结束时间(左边各配一个标签) |
|
||||
| 历史报警记录 | `btn_get` | 查询 |
|
||||
| 历史报警记录 | `pic_camera` | 显示照片:背景色 64, 64, 64 |
|
||||
| 历史报警记录 | `lb_noData` | NO DATA(红字,背景色 64, 64, 64,字号 48),叠在 pic_camera 中间 |
|
||||
| 历史报警记录 | `lb_time` | TIME(红字,背景色 64, 64, 64),叠在 pic_camera 右下角,显示拍摄时间 |
|
||||
| 历史报警记录 | `pic_up`、`pic_down` | 左、右翻页箭头:图片 `arrow_left_normal`、`arrow_right_normal`,SizeMode 设为 CenterImage |
|
||||
|
||||
> 注意 `pic_up` 是**左**箭头(上一张)、`pic_down` 是**右**箭头(下一张),名字照书上写。
|
||||
|
||||
|
||||
Reference in new issue
Block a user