65.9K
CodeProject 正在变化。 阅读更多。
Home

C# LED 矩阵显示

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.91/5 (87投票s)

2010年3月3日

CPOL

2分钟阅读

viewsIcon

206918

downloadIcon

16127

一个 C# 用户控件,以 LED 矩阵屏幕的方式显示文本或符号。

描述

本文介绍了一个 C# 用户控件,以 LED 矩阵屏幕的方式显示文本或符号。该控件管理多个项目,每个项目由其文本、方向和速度定义。本文的目标是描述控件的关键点,而不是严格的技术解释。没有技术难题。该控件在一个应用程序中呈现,允许用户管理两个文本项目。

要点

多显示项目

该控件管理项目列表的显示。一个项目与一个数组相关联,该数组定义了显示器上的 LED “开启” 和位置 (X, Y)。在“PaintEvent”上,分析显示器上的每个 LED,以了解是否有与 LED 对应的项目中的“LedOn”点。

Shema.JPG

自定义字体文件

为了从文本字符串构建项目的“LedOn”数组,该控件引入了一个转换函数,该函数通过符号代码作为输入来提供 LED On 数组。该函数使用 XML 文件作为从代码到符号的翻译文件。实际上,该控件在项目的资源中引入了一个示例文件。使用的代码是 ASCII 代码。文件中的每个符号都由其行上的 LED “开启” 定义(LED “开启” 由 # 表示)。

<LedMatrixSymbol SymbolCode="71" Description="G">
    <LedLine LineNumber="0" LineLedOn="_______"/>
    <LedLine LineNumber="1" LineLedOn="__###__"/>
    <LedLine LineNumber="2" LineLedOn="_#___#_"/>
    <LedLine LineNumber="3" LineLedOn="_#_____"/>
    <LedLine LineNumber="4" LineLedOn="_#_____"/>
    <LedLine LineNumber="5" LineLedOn="_#__##_"/>
    <LedLine LineNumber="6" LineLedOn="_#___#_"/>
    <LedLine LineNumber="7" LineLedOn="__###__"/>
</LedMatrixSymbol>

流程修改

每个项目(LED “开启”数组、速度和方向)的属性可以随时更改。显示器的属性(LED 颜色和矩阵大小)也可以修改。

LED 尺寸管理

在代码的第一个版本中,LED 尺寸是通过简单的方式推导出来的。每个 LED 单元格被分成六个相等的部分:1 用于左侧(顶部)边框,4 用于 LED,1 用于右侧(底部)边框。这样,LED 单元格的最小尺寸为 6 像素。

PrevLedSz.JPG

在新版本中,LED 单元格不再分成几个部分。LED 单元格中 LED 直径的部分不再由代码定义(先前版本中为 2/3),而是由一个作为控件新参数的系数定义。因此,边框与 LED 之间的比例可以从 0 到 1 进行设置。

NewLedSz.JPG

© . All rights reserved.