LineDisplay 服务对象至少支持在输出设备上显示字符的功能。 此外,设备还可能支持其他功能,服务对象通过设置功能属性并实现它们相应的方法和属性,向应用程序公开这些功能。
对于每个附加的功能,LineDisplayBase 类中定义了一个功能属性。 在应用程序在服务对象上调用 Open 之前,可能无法查询功能属性。 此后,功能属性将指示可以在服务对象上设置和调用哪些属性和方法。
本部分列出了 LineDisplay 服务对象可能支持的功能。 对于每个功能,服务对象都必须设置一个功能属性,以及一组属性或方法,应用程序将使用这些属性或方法来访问这些功能。 在某些情况下,LineDisplayBase 完全支持该功能,不需要在服务对象类中添加额外的代码。
功能属性实现为只读,以防止应用程序更改它们的值。 这也意味着,服务对象无法直接设置它们。 相反,LineDisplayBase 具有受保护的属性 Properties,该属性返回 LineDisplayProperties 对象。 此类为所有功能属性提供了公共等效项。 例如,为了播发它支持闪烁,服务对象会写入:
Properties.CapBlink = true;
而不是:
CapBlink = true;
窗口的字幕式滚动
服务对象可能支持水平或垂直字幕。 如果支持水平滚动,服务对象会将 Properties.CapHMarquee 设置为 true。 同样地,如果支持垂直滚动,则会将 Properties.CapVMarquee 设置为 true。
此后,应用程序和服务对象可以使用以下方法来设置或获取字幕类型:
DisplayMarqueeType MarqueeType {get, set; }
字符间等待
行显示设备可能在显示每个字符之前等待指定的一段时间,以产生电传打字效果。 如果此功能受支持,则 Properties.CapICharWait 属性设置为 true。
此后,应用程序和服务对象可以使用以下方法来设置或获取字符间等待时间:
int InterCharacterWait { get; set; }
闪烁文本
行显示设备可能支持字符级或设备级闪烁,闪烁速率可调。 如果此功能受支持,服务对象应将 Properties.CapBlink 属性设置为以下 Properties.DisplayBlink 枚举值之一。
DisplayBlink 值 | 相应的 UnifiedPOS 值 | 说明 |
---|---|---|
无 | DISP_CR_NOBLINK | 设备不支持闪烁。 |
All | DISP_CR_BLINKALL | 设备支持整个显示器闪烁。 |
每个 | DISP_CR_BLINKEACH | 设备支持每个单独的字符闪烁。 |
此后,应用程序和服务对象可以使用以下方法来设置或获取闪烁速率:
int BlinkRate {get; set; }
反向视频
行显示可能支持字符级或设备级反向视频。 如果此功能受支持,服务对象应将 Properties.CapReverse 设置为 DisplayReverse 枚举中的值。
DisplayReverse 值 | 相应的 UnifiedPOS 值 | 说明 |
---|---|---|
无 | DISP-CR_NONE | 不支持反向视频。 |
All | DISP_CR_REVERSEALL | 显示的全部内容要么在反向视频中显示,要么正常显示。 |
每个 | DIS_CR_REVERSEEACH | 每个字符可以单独设置为反向视频或正常显示。 |
CapReverse 属性由 DisplayText 方法使用。
设备描述符
描述符是具有固定标签的小型指示器,通常用于指示事务状态,例如项、总计和更改。 如果支持描述符,服务对象应将 Properties.CapDescriptors 设置为 true。
此后,应用程序和服务对象可以使用以下方法来设置、获取或清除描述符:
int DeviceDescriptors {get; set; }
void ClearDescriptors();
void SetDescriptor(int descriptor, DisplaySetDescriptor attribute);
亮度控件
所有 LineDisplay 服务对象都支持两个亮度级别,即正常和空白,即使物理设备不支持也是如此。 如果设备支持其他亮度级别,则应将 Properties.CapBrightness 设置为 true。
此后,应用程序和服务对象可以使用以下方法来设置或获取设备亮度:
int DeviceBrightness {get; set; }
光标属性
行显示设备可能支持各种不同的光标类型。 Properties.CapCursorType 属性定义了支持哪些类型。 CapCursorType 属性是使用 DisplayCursors 枚举设置的,保留了受支持的游标类型的按位指示,可以是表中所示的以下任何类型。
CapCursorType 枚举 | UnifiedPOS 值 | 说明 |
---|---|---|
Blink | DISP_CCT_BLINK | 支持闪烁光标。 |
阻止 | DISP_CCT_BLOCK | 光标可显示为块。 |
固定 | DISP_CCT_FIXED | 始终显示光标。 |
HalfBlock | DISP_CCT_HALFBLOCK | 光标可显示为半个块。 |
无 | DISP_CCT_NONE | 光标无法显示。 |
其他 | DISP_CCT_OTHER | 光标可显示,但窗体未知。 |
Reverse | DISP_CCT_REVERSE | 光标可在反向视频中显示。 |
下划线 | DISP_CCT_UNDERLINE | 光标可显示为下划线。 |
此后,应用程序和服务对象可以使用以下方法来设置或获取光标类型:
DisplayCursorsCursorType { get; set; }
标志符号
字形是字符单元格的像素级用户定义。 如果设备支持字形,则 Properties.CapCustomGlyph 应设置为 true。
此后,应用程序和服务对象可以使用以下方法来设置或获取字形列表和设置:
- RangeOfCharacters
[] CustomGlyphList { get; set; }
int GlyphHeight { get; }
int GlyphWidth { get; }
void DefineGlyph(int glyphCode, byte[] glyph);
屏幕模式
设备可能支持更改屏幕模式;即显示的行数和列数。 如果设备支持此功能,服务对象应将 Properties.CapScreenMode 设置为 true。
此后,应用程序和服务对象可以使用以下方法来设置或获取屏幕模式:
int ScreenMode { get; set; }
- DisplayScreenMode
[] ScreenModeList { get; }
位图
如果设备支持显示位图,服务对象应将 Properties.CapBitmap 属性设置为 true。
如果此功能受支持,服务对象可能需要重写以下方法:
void DisplayBitmap(string fileName, int alignmentX, int alignmentY);
void DisplayBitmap(string fileName, int width, int alignmentX, int alignmentY);
字符集
服务对象应使用行显示设备的默认字符集功能设置 Properties.CapCharacterSet 属性。 此属性可以设置为 CharacterSetCapability 枚举的成员,如下表所示。
CharacterSetCapability 值 | UnifiedPOS 值 | 说明 |
---|---|---|
Alpha | PTR_CCS_ALPHA | 默认字符集支持大写字母加数字、空格、减号和句点。 |
ANSI | 不适用 | 此值不用于 LineDisplay 设备。 |
ASCII | PTR_CCS_ASCII | 默认字符集支持 0x20 到 0x75。 |
假名 | PTR_CCS_KANA | 默认字符集支持部分代码页 932,包括 0x20 到 0x7F 的 ASCII 字符以及 0xA1 到 0xDF 的日文假名字符,但不包括日文汉字字符。 |
日文汉字 | DISP_CCS_KANJI | 默认字符集支持代码页 932,包括 Shift-JIS 日文汉字字符,级别 1 和 2。 |
Numeric | 不适用 | 此值不用于 LineDisplay 设备。 |
Unicode | DISP_CCS_UNICODE | 默认字符集支持 UNICODE。 |
Windows | 不适用 | 此值不用于 LineDisplay 设备。 |
此后,应用程序和服务对象可以使用以下方法来设置或获取字符集:
int CharacterSet { get; set; }