# 仪表盘

> 圆形仪表盘组件的参考：表盘的几何形状、预设、指示方式、刻度区段，以及编辑器里的每一项属性。

**仪表盘**把一个数值点位画在一面圆形表盘上。关于它的每一项设置，都是在说明这面表盘*是什么*：它的扫过范围、由什么指向读数、刻度的哪些部分画出来、读数说什么、用什么颜色画。点位没有读数时（质量不可用、地址解析不到），指针、填充和数值一起消失，表盘用缺口标记（`—`）代替数字；带区段的轨道留着，因为区段是一份声明，不是一次测量。`NaN` 是一个读数，不是缺口：表盘把它写成这个词，旁边带着单位，而且什么也不指，因为 `NaN` 在刻度上没有位置。

## 内容与数据 {#content-and-data}

| 属性 | 作用 | 取值 | 默认 |
|---|---|---|---|
| 标签 | 写在读数下面的可选说明文字。 | 文本 | 空 |
| 地址 | 所显示数值点位的带根 Logic 地址。字段从实时点位清单里给建议，过滤为数值点位，指名之后显示该点位当前的读数。 | 地址 | 空 |

## 格式 {#format}

| 属性 | 作用 | 取值 | 默认 |
|---|---|---|---|
| 最小 | 刻度从哪里开始，按点位的工程单位。 | 数值 | 0 |
| 最大 | 刻度到哪里结束。 | 数值 | 100 |
| 单位 | 写在数值旁边的可选单位后缀。 | 文本 | 空 |
| 小数位 | 读数固定的小数位数。留空时，类型为整数的点位写出来不带小数，其他数字按工作站的小数位数写。读数的小数位数也是圆弧周围一个数字最多带的位数：这里填的位数，或者留空时点位自己的位数（整数不带小数，其他按工作站的小数位数，点位第一次答复之前也按工作站的小数位数）。圆弧上的每个数字只带它用得着的位数，所以刻度都是整数的表盘读作 30 和 60，而不是 30.0 和 60.0。 | 0 到 15 | 留空则用工作站的偏好 |
| 位数 | 中央那个读数在小数分隔符之前预留多少位。它同时也决定一个值什么时候被标记为宽过自己的字段（`####`，完整读数在提示里）。以文字答复的点位（一份工单、一个批次、一个标志位）绝不戴这个标记，哪怕它的文字全是数字也一样：表盘中央容不下的部分以省略号（…）结尾，完整读数在提示里。 | 1 到 20 | 留空则由最小值和最大值中较宽的那个推出来 |
| 字号 | 由单元格决定字号，还是由操作员指定。指定的字号照字面来：不管在哪个单元格里都按那个字号绘制，绝不为了塞下而缩小。由单元格决定时，读数按圆弧与它的数字之间的空间所容许的大小来写，最小不低于 11 像素。读数比表盘留给它的空间还宽的地方，不论是在指定的字号下，还是由单元格决定时哪怕只有 11 像素，表盘都在数字的位置写 `####`，完整读数在提示里。以文字答复的读数不戴这个标记，仍以省略号结尾。 | 单元格容得下的最大尺寸 · 我指定的大小 | 单元格容得下的最大尺寸 |
| 磅 | 指定的那个字号。只在指定模式下显示。 | 9 到 144 | 12 |
| 读数形式 | 读数用什么方式写出来。 | 数字 · 百分比 · 时长 | 数字 |
| 数值按什么计 | 格式为时长时，一个单位的值表示多少。 | 秒 · 毫秒 · 分钟 | 秒 |
| 写出读数 | 读数是否写在表盘里面。 | 开 / 关 | 开 |
| 写出标注 | 标注是否骑在读数下面。 | 开 / 关 | 开 |

## 表盘 {#dial}

角度从三点钟方向起逆时针计算，因此 225° 到 −45° 会把刻度的中间放在正上方。**预设**是一条捷径，不是一种身份：应用一个预设，等于把下面那些几何和指示字段写一遍，写完就忘掉了，所以此后每个字段仍旧可以一个一个改。预设不涉及的东西，也就是地址、刻度两端、格式、区段、参考值、强调色，以及读数和标注写不写，都原样保留。

| 预设 | 它写下什么 |
|---|---|
| 表盘 | 起始 225°，结束 −45°，顺时针，10 个刻度格，指针，进度填充，刻度线和刻度数字都打开。这是仪表盘出生时的形状，也是从另外两个预设回来的那条路。 |
| 半圆 | 起始 180°，结束 0°，顺时针，5 个刻度格（半圈圆弧只有一半的地方放数字），指针，填充，刻度线和数字都打开。 |
| 环形 | 起始 90°，结束 −270°（整整一圈），顺时针，不用指针，进度填充打开，刻度线和数字关闭：圆弧本身就是指示。 |

| 属性 | 作用 | 取值 | 默认 |
|---|---|---|---|
| 起始角度 | 扫过的范围从哪里开始，按从三点钟方向起逆时针的度数计。 | −360 到 360 | 225 |
| 结束角度 | 扫过的范围在哪里结束。它可以是负的，也可以从起点算起超过一整圈。 | −360 到 360 | −45 |
| 刻度格数 | 刻度分成多少格，也就是圆弧上有多少条刻度线；小表盘可能只给其中一部分标数字（见“给刻度标上数字”）。 | 1 到 50 | 10 |
| 数值顺时针增大 | 最小值坐在圆弧的哪一端：是坐在起始角度上、数值顺时针增大（表盘通常的读法），还是同一段圆弧反着走。 | 开 / 关 | 开 |
| 画出刻度线 | 圆弧上要不要画刻度线。 | 开 / 关 | 开 |
| 给刻度标上数字 | 要不要沿着圆弧给各格标上数字。这些数字用工作站的小数分隔符和分组记号写，每个只带它用得着的位数，最多到读数的小数位数：刻度都是整数的表盘，不管读数写几位小数，都读作 30 和 60；这些小数位数容不下的刻度会被四舍五入，所以一个整数点位从 0 到 100 分成三格，读作 0、33、67、100。单位、百分号和时钟属于中央的读数，从不属于圆弧。表盘小到数字挤在一起写不开的地方，就按固定的间隔少标几格（比如十格里每两格或每五格标一个），刻度的两端总在其中；连两端都放不下的地方就一格也不标。转满一整圈的表盘，刻度的终点落在起点上，只给起点标数字。 | 开 / 关 | 开 |

键入的角度超出它的区间时按最近的边界取，面板会说明这一点；不是数字的文字则让当前的角度继续生效。

## 指示 {#indication}

由什么指向数值，以及这份指示用什么颜色画。强调色说的是身份，不是含义：下面那些区段才说明一个读数意味着什么，并且在读数的颜色上有最终决定权。

| 属性 | 作用 | 取值 | 默认 |
|---|---|---|---|
| 指针 | 在圆弧上由什么指向读数。不管画的是哪一种，数值、它的质量和它落在哪个区段都一样。 | 指针式 · 弧上的标记 · 不用指针 | 指针式 |
| 把圆弧填充到读数处 | 圆弧要不要从刻度起点一直填充到读数处。 | 开 / 关 | 开 |
| 强调色 | 指示的颜色从哪里来。 | 普通颜色 · 一种颜色 · 一个颜色点位 | 普通颜色 |
| 浅色 / 深色 | 强调色作为浅色主题和深色主题的一对，两个都要写，因为由当前运行的主题决定屏幕上出现哪一半。只在强调色是一种颜色时显示。 | 各写 `#RRGGBB` | 两者都是 `#5470C6` |
| 颜色点位 | 强调色所跟随的那个 Color 点位的带根 Logic 地址。只在强调色是颜色点位时显示。 | 地址 | 空 |

## 刻度 {#scale}

共用的**刻度**分区声明刻度上的一段一段各表示什么，以及表盘所标出的参考值。

- 每个**区段**从列表中它上面那个区段结束的地方开始，一直覆盖到自己的上限，所以上限同时也是这个区段的位置；超过最后一个上限的读数不属于任何区段，取普通墨色。色调，也就是中性、信息、正常、注意、严重，是界面自己的一套词汇，具体上什么色由主题决定。给区段配上说法就是给这个状态命名，仪表盘可以把这个词写在读数旁边。
- **参考值**在刻度上标出一个设定值或者标称值：可以不标、标一个固定值，或者标一个随配方移动的点位。只有刻度够得着它时才画出来。
