精华内容
下载资源
问答
  • <... <head> <title>LED显示屏文字滚动</title> <style type="text/css"> #pmp { font-family: "微软雅黑"; font-size: 40px; color: #FF0000; t...

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>LED显示屏文字滚动</title>
    <style type="text/css">
    #pmp {
    	font-family: "微软雅黑";
    	font-size: 40px;
    	color: #FF0000;
    	text-decoration: none;
    	height: 50px;
    	width: 930px;
    	border: 5px ridge #999;
    	background-color: #222;
    	padding-top: 8px;
    	padding-right: 5px;
    	padding-left: 5px;
    }
    </style>
    </head>
    <body>
    <div id="pmp"><marquee scrollamount="3" scrolldelay="30" direction= "left" onmouseover="this.stop()" onmouseout="this.start()">热烈欢迎市领导来我公司指导工作
    </marquee>
    </div>
    </body>
    </html>

     

    展开全文
  • LCD/LED 点阵取模软件功能如: 1、支持对所有可见字符取模[包括西文字符以及UNICODE字符,例如日文、朝鲜文、俄文、土耳其文、希腊语、梵文、阿拉伯文等等]; 2、支持使用从12x12到256x256任意点阵大小进行文字取模...
  • 对于在LED屏上显示的字体能快捷,有效的生成对应的代码,非常方便于用户开发任意的字体显示屏
  • Led Control System是一款中航官方出品的LED控制软件,用户可通过该软件控制中航旗下所有的LED显示产品,只需将LED和软件的IP相连接,即可远程控制LED的显示效果,软件还可以自动生成字体动画和动态背景,支持2520...

    Led Control System是一款中航官方出品的LED控制软件,用户可通过该软件控制中航旗下所有的LED显示产品,只需将LED屏和软件的IP相连接,即可远程控制LED的显示效果,软件还可以自动生成字体动画和动态背景,支持2520种特技组合,并且提供了多种连接和通信方式,为用户提供详细的节目设计方案,同时还支持USB固件升级,为用户的日常工作提供诸多便利,有需要的小伙伴千万不要错过哦。

    85914218b53c4437d9610a29fbd9a25a.png

    【功能介绍】

    1、屏参设置

    点击菜单栏里的设置→屏幕设置

    输入密码168,按下确定按钮后弹出参数设置窗口

    此界面可以根据供应商所提供的模组的扫描方来选择。(软件默认常规p10)

    2、显示屏测试

    按下硬件的测试键后控制卡进入测试状态依次按键分别会显示“全红-全暗-竖线左移-横线下移-网格-斜线”最后按下复位退出显示屏测试功能。

    3、创建与编辑节目

    节目是播放文件的基本元素,一个节目文件可以创建最多65536个节目。点击工具栏“节目”或右键单击显示屏,出现快速工具栏。

    4、字幕编辑

    工具栏中点击“字幕”按钮。模拟显示区域中会自动创建一个字幕显示区域。或者选中节目单击右键“添加字幕”

    模拟显示区域中,区域的左上角定义为起点坐标。起点x、起点y分别表示当前显示区域偏移起点的横向、纵向长度。单位象素点。高度、宽度表示显示区域的有效高度、宽度。单位象素点;用鼠标选中模拟显示区域中的字幕区域然后拉大;或者在字幕属性中键入起点坐标,高度和宽度。在字幕内容区域的输入框内输入所需要显示的内容。

    5、动画编辑

    工具栏中点击“动画”按钮。模拟显示区域中会自动创建一个动画显示区域。或者选中节目单击右键“添加动画”动画分区可添加背景动画、字体动画、魔幻跑边。

    6、图文编辑

    工具栏中点击“图文”按钮。模拟显示区域中会自动创建一个图文显示区域。或者选中节目单击右键“添加图文”,图文属性可添加多种文件或导入其它格式文件;多个内容为顺序播放。

    7、表盘编辑

    工具栏中点击“表盘”按钮。模拟显示区域中会自动创建一个模拟表盘显示区域。或者选中节目单击右键“添加表盘”,表盘属性,可选择指针样式、时差显示、四角字、对联字等,表盘分区可添加多种背景动画或跑边。

    31e1817a67452b9d6162284acb8b9088.png

    【软件特色】

    1、中航led控制软件提供丰富的led节目编辑功能

    2、可以直接在软件上编辑您需要的全部节目

    3、提供详细的动画内容添加,可以从本地添加动画

    4、支持文本特效设置,显示led类型的文字

    5、可以设置切换led节目的效果,添加新的转场

    6、软件界面功能很多,新建分组就可以开始添加节目信息

    7、具有属性设置,在编辑节目的时候快速添加新的属性

    8、提供设备连接,在软件直接连接到需要使用的led设备

    9、支持WiFi连接,通过无线网络的方式直接连接到设备

    10、提供远程发送,连接到设备就可以直接将项目添加到你的设备使用

    10b55be2e7b4a53a1fb931ba5f3b7cc4.png

    【怎么换背景】

    1、打开中航LED控制卡软件,找到节目背景设置,勾选“使用背景”,然后点击“自定义背景”。

    5b85c5d78234687e05da9c0446e1f41f.png

    2、选择要使用的背景图片即可。

    3a5d997251d74a45c2b390b29a471a7f.png

    【怎么添加字幕】

    1、运行中航LED软件,右击“节目”选项,点击“添加字幕”。

    277a015fd1e91d9e43b02fc13ebbbfbe.png

    2、接着编辑字幕的具体内容。

    d0f50964d30da719033813717ed135ab.png

    3、发送后即可得到字幕显示效果。

    b89debc345ac0491760d55252132dbe7.png

    【怎么设置静态显示】

    1、打开中航LED软件,左键点击“字幕”板块。

    8d0baf1b50a1abf6d941bbe59c27ce5f.png

    2、然后将“特技显示”一栏选择为“静态显示”即可。

    8b4e3716a08dc040dddadb15f40c679c.png

    【产品支持】

    本软件主要新增支持新版本网口卡ZH-E1L、ZH-E3L、ZH-E5L、ZH-E8L。兼容U盘系列、WIFI系列。不支持老版本网口卡ZH-E1、ZH-E3、ZH-E5、ZH-E6、ZH-E7、ZH-E8

    展开全文
  • 介绍了一种基于LabVIEW与FPGA的LED汉字显示屏,其利用LabVIEW软件灵活、简便地从计算机的汉字库中提取汉字字模并转换为供FPGA直接调用的十六进制字模数据。通过在LabVIEW中进行图像信息扫描的方式得到任意汉字的字模...
  • 我在给一个对话框上的控件查找翻看合适的图标时,无形中看到了一个LED显示屏的图标,这里所说的LED显示屏是指由很多LED灯密集排列组成的点阵式LED屏,比如在股市交易所,公交车上,银行门口,我们经常能看到这样的...

    源:在 WindowMobile 上的模拟LED 显示屏插件

          我在给一个对话框上的控件查找翻看合适的图标时,无形中看到了一个LED显示屏的图标,这里所说的LED显示屏是指由很多LED灯密集排列组成的点阵式LED屏,比如在股市交易所,公交车上,银行门口,我们经常能看到这样的滚动式显示屏。我不禁忽然想到,如果把它放在手机上显示,那效果是不是很别致呢?而且我在很久以前用 C# 模拟了这种LED显示屏的效果,因此技术上没有什么问题。不过现在,我想把它在手机上实现,而且我的想法是做成今日插件,因为相比普通的应用程序,插件更方便用户启用,禁用,可以在桌面上展示。然后,现在我要考虑使用 C++ 实现,在技术上的实现会和上一次在C#实现上略有不同,但本质原理是一致的,并且这一次实现的效果将更符合现实中我们看到的 LED 屏。这里我将会讲述一点 LED 屏在滚动时的原理和细节技巧。

          首先来看,这是插件在手机上滚动显示的效果:

          

          关于windows mobile 上的今日插件开发,这里就不认真讲解,可以参考我前几天发的文章。这里再额外提的一些内容是关于 LED 屏的滚动原理和细节,这些我们要针对的平台,开发的应用程序类型是无关的。

          (1)在本范例中 Led 点阵屏幕的实现原理;

          a)首先在根据要显示的内容,测量出字符串在指定DC上绘制的宽度和高度。( GetTextExtentPoint32 )
          b)在内存中创建相应大小的一个设备无关的临时位图(DIB),并得到该它的位图数据地址。(CreateDIBSection)
          c)在该临时位图上绘制字符串,这时临时位图成为一个白底黑字的实际大小的位图。它也是我们生成 LED 图像的基础。
          d)根据每个LED灯占据的尺寸(LEDSIZE),生成一个相应大小的 LED 位图。同时得到它的位图数据地址。这个位图相比临时位图在高度和宽度上都扩大了 LEDSIZE 倍数,这张图是用于最终显示到屏幕上的位图,它将长期维持在内存中,直到用户改变显示内容。
          这里,LEDSIZE 是实际LED灯的尺寸(3*3像素)加上 LED灯的间距(1像素)。因此,本例中 LEDSIZE = 4 像素;
          e)根据我们得到的位图数据地址,遍历临时位图的所有像素,并根据临时位图的像素,设置LED位图的LED灯;这里实际上是一种映射,也就是把临时位图中的黑或者白像素映射到 LED位图上的 (LEDSIZE * LEDSIZE)的矩形上。
          这里,注意的细节是,像素定位必须注意下面几个因素:
                (i) 位图的扫描行是逆序的。也就是说,假设该图像有10行像素,那么在起始地址出现的行序是:10,9,8,7,...
                (ii) 单个像素在内存中的地址从低到高依次是:Blue,Green,Red,Alpha;(假如存在Alpha通道)
                (iii) 单个像素占据的字节数是 bpp/8;通常普通RGB位图也就是占据3个字节/像素。
                (iv) 在行间导航的关键信息是扫描行宽度(stride);因为存在位图数据的扫描行必须以 DWORD 对齐。

          f)我们设置好LED位图以后,临时位图就不需要了,这时可以清除临时位图。在绘制时,把LED位图的相应区域复制到 指定DC 的相关位置即可。可以用全局变量记录LED屏的位置,用定时器更新此位置,即实现了滚动效果。

          (2)滚屏时的细节;

          考虑实际的LED屏,在滚动起来时,是同样的一段字符串首尾相接的方式,在屏上连续从右向左滚动。因此为了实现的方便,我们实际上建立的逻辑模型是如下图所示:两个相同LED字符串,以一定的像素间距(MEMODISTANCE)首尾连接,我们分别用两个变量记录两个LED字符串的位置:
          g_LedPos1: 第一个字符串的起始位置(LED屏幕客户区中的坐标);
          g_LedPos2: 第二个字符串的起始位置(LED屏幕客户区中的坐标);
          g_LedWidth: 字符串的像素宽度;(LED屏幕坐标)
          MEMODISTANCE:两个字符串之间的像素距离;(LED屏幕坐标);
          MEMOCOUNT:逻辑模型中首尾相接的字符串数量;(在本例中 = 2);
          SCREENWIDTH:LED屏的像素宽度(LED屏幕坐标),在本例中= 60;
          LED 屏幕坐标:在LED屏幕中,每个像素都是在实际位图中占据的是(4*4)尺寸;例如显示屏在该坐标体系下,是60像素宽度,但是实际位图是240像素宽度。

          

          


          (a)连续滚动原理;

          ======================================================================================
          ●. 连续滚动需要满足下列条件: MEMODISTANCE  >=  SCREENWIDTH / MEMOCOUNT;
          =======================================================================

          上面的不等式用语言来描述就是:“相邻字符串 的 “首尾间距” 大于等于 LED屏幕像素宽度 /  屏幕上可同时显示的字符串最大个数”;假如我们把“字符串”看做汽车,LED屏看作“单行道”,那么这里提到的也就是对“车距”的要求。

          屏幕上可同时显示的字符串个数(MEMOCOUNT)实际上就是我们的代码中在维护的逻辑模型的字符串个数,也就是说我们的代码中一共有多少个 g_LedPos 变量,每一个 g_LedPos 变量可以维护一个字符串;在本例中,我们维护了两个 g_LedPos; 这两个字符串首尾相接后成为无限长序列的一个基本单位(basic unit of the memo queue);无限长队列是从这个基本单位扩展而成。因此,MEMOCOUNT 是 这个基本单位的容量(容纳字符串的数量);

          为什么我们会对“车距”有需求呢,想象下如果汽车的宽度(字符串长度)非常小,如果不控制车距,就会导致单行道上可同时容纳的汽车数量增加,而如果这个数量超过了我们代码中的模型(组成无限长字符串队列的基本单位的容量)的字符串个数,那么我们的代码就无法同时控制这么多汽车的出现位置;这将会导致帧突变,体现在视觉上就是,滚动过程中,屏幕中间本来是黑色背景,但是在下一帧忽然在中间冒出“文本内容”;

          在本例中,我们的逻辑模型是两个字符串相接,因此因此我将 MEMODISTANCE 定义为 30 像素;假如不满足这个条件并且输入字符串极短(例如“1”),那么在连续滚动的过程中就可能造成帧突变,在某些时刻的帧和上一帧无法衔接,即在屏幕中的黑暗部分凭空闪现字符串内容。

          (b)定时器中的处理:
          由于是从右向左滚动,所以我们在定时器中只需要把 g_LedPos1, g_LedPos2 递减即可,当发现第一个字符串离开屏幕时,我们立即两个坐标的指向向后移动到它后面的那个字符串,即把 g_LedPos2 赋值给 g_LedPos1; g_LedPos2 根据 g_LedPos1 重新赋值;这样就以两个字符串为一个基本单位,向后逐一进行无穷扩展,形成无数字符串首尾相连的虚拟场景;
          定时器中的代码如下所示:

    case WM_TIMER:
        g_LedPos1--;
        g_LedPos2--;
        //第一条已经完全离开屏幕左侧了吗?如果是,则向后更替!
        if(g_LedPos1 + g_LedWidth < 0)
        {
            g_LedPos1 = g_LedPos2;
            g_LedPos2 = g_LedPos1 + g_LedWidth + MEMODISTANCE;
        }
        InvalidateRect(hwnd, &rcLed, FALSE);
        break;

          (c)在绘制时的处理:
          在绘制时,主要使用 BitBlt 函数来完成。但是需要注意的是,字符串的起始坐标(g_LedPos)是否在 LED 屏内部,将决定了 BitBlt 中的参数有所区别(这里我不详细分析原因)。
          我使用一个辅助函数:GetBltInfo 来帮助我判断 BitBlt 函数中应该使用的参数;它可以计算出 BitBlt 中应该把 LedBitmap 中的何处 拷贝到 DC 的何处,拷贝多少宽度;相关代码如下:

    //根据当前位置,决定贴图的相对位置
    void GetBltInfo(int pos, int ledWidth, RECT* lpRcLed, int* lpDestX, int* lpSrcX, int* lpWidth)
    {
        //头部在显示区
        if(pos>=0)
        {
            *lpDestX = pos * LEDSIZE;
            *lpSrcX = 0;
            *lpWidth = min(lpRcLed->right, (pos + ledWidth)*LEDSIZE) - *lpDestX;
        }
        else
        {
            *lpDestX = 0;
            *lpSrcX = -pos*LEDSIZE;
            *lpWidth = min(lpRcLed->right, (pos + ledWidth)*LEDSIZE);
        }
    }
    
    
    //========================================
    //这里是窗口函数中对 WM_PAINT 的处理:
    //========================================
        case WM_PAINT: 
            {
                PAINTSTRUCT ps;
                RECT rc;
                //===============================================
                //        NOW WE START TO GET DC !
                //===============================================
                hDC = BeginPaint(hwnd, &ps);
                HDC    hMemDC = CreateCompatibleDC(hDC);
                HBITMAP hOldBm = (HBITMAP)SelectObject(hMemDC, g_BitmapLed);
    
                //贴第一个字符串
                int destX, srcX, width;
                GetBltInfo(g_LedPos1, g_LedWidth, &rcLed, &destX, &srcX, &width);
    
                BitBlt(hDC,destX,rcLed.top, width, (rcLed.bottom - rcLed.top),
                    hMemDC,srcX, 0,
                    SRCCOPY);
    
                //贴第二个字符串
                if(g_LedPos2 * LEDSIZE <= rcLed.right)
                {
                    GetBltInfo(g_LedPos2, g_LedWidth, &rcLed, &destX, &srcX, &width);
                    BitBlt(hDC,destX,rcLed.top, width, (rcLed.bottom - rcLed.top),
                        hMemDC,srcX, 0,
                        SRCCOPY);
                }
    
                SelectObject(hMemDC, hOldBm);
                DeleteDC(hMemDC);
                EndPaint(hwnd, &ps);
            }
            break;

         (3)最重要的函数:生成LED位图(CreateLedBitmap);

          这个函数的作用是:根据指定的字符串,生成 LedBitmap;并返回 LedWidth (该图片的LED屏幕坐标的像素宽度);在这个函数里,临时位图实际上在使用完毕后清除,但我为了在PC上的范例的对话框上展示它,所以没有立即清除。
          如下图所示,为 4 个 LED 的放大图形,上面两个为熄灭,下面两个为点亮状态;      

          

          【注意】我们绘制的原始图像特点是“白底黑字”,因此黑色映射到LED图像的“点亮”状态,白色映射到“熄灭”状态;在下面代码中可看到这一点;

          下面是 CreateLedBitmap 的代码,在这段代码中,包含了前面所讲的对“像素定位”的非常重要的方法和信息,涉及了扫描行宽度,位图中的逆序扫描,在图像数据中的像素定位,在像素中的RGB通道定位,这些都是通过指针来完成的,需要务必小心以确保指针的指向合法和正确。

    //根据指定的字符串创建实际的用于滚动的位图(比实际图像会增大4倍)
    //返回创建的位图的未LED化像素长度(也就是实际字符串的绘制长度)
    int CreateLedBitmap(HWND hWnd, TCHAR* text)
    {
        //创建字体
        LOGFONT lf;
        HFONT hFont = NULL, hOldFont = NULL;
        SIZE size = {0,0};
        BITMAPINFO bminfo;
        HBITMAP hOldBitmap; //临时位图(为非LED化的实际像素大小)
        HBRUSH hBrush =NULL;
        RECT rc;
        int i, j, stride, strideTemp;
    
        //两个位图的像素数据地址
        BYTE *lpBytes, *lpBytesTemp, *lpLed;
    
        //设置位图信息
        memset(&bminfo.bmiHeader, 0, sizeof(BITMAPINFOHEADER));
        bminfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); //40
        bminfo.bmiHeader.biPlanes = 1;
        bminfo.bmiHeader.biBitCount = 24;
    
        //测量字符串的大小,其决定作用的还有当前HDC中的字体
        HDC hWndDC = GetDC(hWnd);
        HDC hDC = CreateCompatibleDC(hWndDC);
        ReleaseDC(hWnd, hWndDC);
    
        HFONT hSysFont = (HFONT)GetStockObject(DEVICE_DEFAULT_FONT);
        GetObject(hSysFont, sizeof(LOGFONT), &lf);
        lf.lfWeight = FW_NORMAL;
        lf.lfHeight = (long) -((11.0 * (double)GetDeviceCaps(hDC, LOGPIXELSY) / 72.0) + .5);
        //lf.lfHeight = 11;
        wcscpy(lf.lfFaceName, _T("宋体"));
    
        // create the font
        hFont = CreateFontIndirect(&lf);
        //创建背景刷
        hBrush = CreateSolidBrush(BKCOLOR_LED);
    
        hOldFont = (HFONT)SelectObject(hDC, hFont);
    
        //测量字符串,得到的高度应该是14,宽度取决于字符串
        GetTextExtentPoint32(hDC, text, wcslen(text), &size);
    
        //计算扫描行宽度
        stride = (24 * size.cx * LEDSIZE + 31)/32 * 4;
        strideTemp = (24* size.cx + 31)/32 * 4;
    
        bminfo.bmiHeader.biWidth = size.cx * LEDSIZE;
        //去掉上下的2行像素
        bminfo.bmiHeader.biHeight = size.cy * LEDSIZE; //(14-2)*4=48pixels,
        bminfo.bmiHeader.biSizeImage = bminfo.bmiHeader.biHeight * stride;
    
        //创建位图
        if(g_BitmapLed != NULL)
            DeleteObject(g_BitmapLed);
        if(g_BitmapTemp != NULL)
            DeleteObject(g_BitmapTemp);
    
        //注意WinCe平台上不支持内存映射,所以无法提供我们自己的位图数据,而是由系统负责分配
        g_BitmapLed = CreateDIBSection(hDC, &bminfo, DIB_RGB_COLORS, (VOID**)&lpBytes, NULL, 0);
        //是否创建成功?
        if(g_BitmapLed == NULL)
        {
            goto CLEARNUP_EXIT;
        }
    
        //创建实际大小的位图
        bminfo.bmiHeader.biWidth = size.cx;
        bminfo.bmiHeader.biHeight = size.cy;
        g_BitmapTemp = CreateDIBSection(hDC, &bminfo, DIB_RGB_COLORS, (VOID**)&lpBytesTemp, NULL, 0);
        if(g_BitmapTemp == NULL)
        {
            goto CLEARNUP_EXIT;
        }
    
        //在实际绘图上进行绘制
        hOldBitmap = (HBITMAP)SelectObject(hDC, g_BitmapTemp);
        rc.left = rc.top = 0;
        rc.right = size.cx;
        rc.bottom = size.cy;
        //填充白色背景
        FillRect(hDC, &rc, (HBRUSH)GetStockObject(WHITE_BRUSH));
        SetTextColor(hDC, RGB(0,0,0)); //黑色字体
        SetBkMode(hDC, TRANSPARENT);
        //绘制字符串
        DrawText(hDC, text, wcslen(text), &rc, DT_LEFT | DT_VCENTER| DT_NOCLIP | DT_SINGLELINE);
    
        //现在再把LED图选入DC中去刷一次背景
        SelectObject(hDC, g_BitmapLed);
        //rc设置为LED图的大小
        rc.right = size.cx * LEDSIZE;
        rc.bottom = size.cy * LEDSIZE;
        FillRect(hDC, &rc,hBrush);
    
        //复原DC
        SelectObject(hDC, hOldBitmap);
        SelectObject(hDC, hOldFont);
    
    
        //现在根据它进行拷贝到新的位图中,去掉了上下两行像素,i,j是在 bitmaptemp中的坐标
        //每个LED灯实际上是 4 * 4像素的小矩形块!设置6个像素即可
        for(j = 0; j< size.cy; j++)
        {
            for(i = 0; i < size.cx; i++)
            {
                //把指针定位到LED灯的左上角!
                //注意这里行是倒序的!(所以距离内存起始点的最远的哪一行才是LED第一行,逐行向内存起始处返回)
                lpLed = lpBytes + stride*(j*LEDSIZE+3) + i*3*LEDSIZE;
    
                if(lpBytesTemp[strideTemp * j + i*3] == 0) //即,该通道为黑色,表示这里是字迹(应该点亮这个灯)
                {
                    //点亮 9 * 9
                    //第一行 0-Blue, 1-Green, 2-Red
                    lpLed[0]= 76, lpLed[1]=154, lpLed[2]=186;
                    lpLed[3]=130, lpLed[4]=207, lpLed[5]=236;
                    lpLed[6]= 56, lpLed[7]=145, lpLed[8]=204;
    
                    //第二行
                    lpLed -= stride;
                    lpLed[0]=127, lpLed[1]=214, lpLed[2]=245;
                    lpLed[3]=193, lpLed[4]=232, lpLed[5]=247;
                    lpLed[6]= 43, lpLed[7]=167, lpLed[8]=241;
    
                    //第三行
                    lpLed -= stride;
                    lpLed[0]= 56, lpLed[1]=144, lpLed[2]=204;
                    lpLed[3]= 43, lpLed[4]=160, lpLed[5]=231;
                    lpLed[6]= 43, lpLed[7]=125, lpLed[8]=207;
    
                }
                else
                {
                    //熄灭 9 * 9
                    //第一行 0-Blue, 1-Green, 2-Red
                    lpLed[0]= 65, lpLed[1]= 65, lpLed[2]= 65;
                    lpLed[3]= 84, lpLed[4]= 84, lpLed[5]= 84;
                    lpLed[6]= 65, lpLed[7]= 65, lpLed[8]= 65;
    
                    //第二行
                    lpLed -= stride;
                    lpLed[0]= 84, lpLed[1]= 84, lpLed[2]= 84;
                    lpLed[3]= 66, lpLed[4]= 66, lpLed[5]= 66;
                    //lpLed[6]= 65, lpLed[7]= 65, lpLed[8]= 65;
    
                    //第三行
                    lpLed -= stride;
                    lpLed[0]= 65, lpLed[1]= 65, lpLed[2]= 65;
                    //lpLed[3]=130, lpLed[4]=207, lpLed[5]=236;
                    //lpLed[6]= 56, lpLed[7]=145, lpLed[8]=204;
                }
            }
        }
    
    CLEARNUP_EXIT:
        //清理
        if(hBrush !=NULL)
            DeleteObject(hBrush);
        if(hFont != NULL)
            DeleteObject(hFont);
        if(hDC != NULL)
            DeleteDC(hDC);
        return size.cx;
    }

          (4)PC上的演示程序;

          最后,本范例的代码是运行在 PDA (WINDOWS MOBILE)上的今日插件,但这里提到的LED滚屏技术是不局限平台的,因此我也做了一个在PC可以运行的对话框程序,来演示上面的代码和技术:对话框的截图如下:

          

          (5)下载连接;
          
          代码下载连接(包含PC端演示程序,和 WindowMobile 插件源代码):
          http://files.cnblogs.com/hoodlum1980/JRL_LedScreen.rar
          
          同时,我开发的插件也发布到 pdafans 论坛供网友测试和使用,因此也可以在 pdafans 论坛的以下帖子下载到本文提到的今日插件的最新 CAB 包,在我的博客上仅保留插件的较早版本。
          
          一个模拟LED显示屏的桌面今日插件       

                            by hoodlum1980 @ 2009

     

    转载于:https://www.cnblogs.com/LittleTiger/p/4611041.html

    展开全文
  • GPRS无线LED显示屏信息发布系统应用方案   一、APPServer远程信息发布系统概述: 深圳市金博通科技有限公司开发的APPServer信息发布系统是一套基于GPRS网络的广域信息发布系统。实现无需布线...

    GPRS无线LED显示屏信息发布系统应用方案

     

    一、APPServer远程信息发布系统概述

    深圳市金博通科技有限公司开发的APPServer信息发布系统是一套基于GPRS网络的广域信息发布系统。实现无需布线,无需网络建设不限区域、不限时间、多点集中统一管理、自动远程信息发布。可以有效解决LED显示屏远程组网的问题。该系统基于GPRS DTU KB3010无线网络技术,提供通用LED通信控制接口,实现对LED显示屏大规模组网。无论是普通文字条屏,还是大屏幕图文屏,只要接上LED无线传输终端,就能马上打破传统LED显示屏线路输入的限制。无论LED显示屏放在何处,LED显示屏的数量多少,系统主控中心都能将信息准确、即时的发布到指定的某个或多个或全部的LED显示屏上。
        APPServer
    系统是一套新型的无线远程信息发布系统, 系统应用于所有需要信息发布的显示屏如:户外广告、高速公路信息指示、小区信息发布、的士出租车广告屏,车站码头信息发布等。信息可以实时更新,可以在任何一台电脑上对设置在各个场所的LED显示屏进行远程管理,信息发布。无需到现场单独更新,提高更新速度,减小更新成本。 
       
    远程信息的显示有闪烁、滚动、静止、循环、交叉等多种方式,通过中心计算机对所有显示屏进行自动发布信息,信息可以是文字和图片及全彩动漫。

    APPServer系统设置各个远程显示屏的位置,每个显示屏均配置一个GPRS信息发布终端,数据中心计算机通过GPRSLED控制卡进行通讯发布信息。采用GPRS方式时,终端通过GPRS方式连接到INTERNET互联网,同时用于发布信息的计算机也通过专线、ISDNADSL、拨号等多种方式连接到INTERNET网络,通过互联网的沟通连接,中心计算机就可以以TCP/IP的方式与各个显示屏进行集中的数据传输和发布,无论显示屏是否放置在同一个城市、同一个区域,都可以在管理中心集中进行廉价的信息发布,实现信息发布的统一管理和维护。 

    二、金博通APPServer远程信息发布系统具有下列功能和特点: 
    1)组网规模大:传统LED显示屏的内容由电脑通过串口数据线发送,显示屏数量在规模上受到限制。无线LED显示屏信息发布系统通过GPRS无线网络来发送信息,采用TCP/IP网络传输协议,终端联网数量一般不受限制,只要用户服务器的负载能承受均可以。

    2)即插即用:用户使用金博通产品时,无需更改用户软件,无需根据GPRS DTU的协议来修改显示屏的控制软件,只要配好产品的参数,接上去就可以用。用户采用我公司产品时对于用户来讲是完全透明传输。

    3)兼容性强:产品兼容多家的控制系统,只要是异步通讯的控制系统,基本串口通讯模式(RS232/RS485),其数据格式为常规的格式,均可以采用我公司的产品。用户仍采用原来控制卡厂家的控制软件,无需了解我公司GPRS DTU的通讯协议而去修改自己的控制系统软件。

    4)实时发布信息:传统LED显示屏只能固定地显示所控制器内存储的信息,如需发布新的信息只能通过电脑联机来更新信息。无线LED显示屏可以随时接收信息中心下发的信息。
    5)不受距离限制:传统电子显示屏只能在短距离内使用,一般只有数十米,无线LED显示屏在全国范围内,只要无线GPRS网络覆盖的地方都可以使用,不受距离和位置的限制。
    6)安装维护方便:由于不需要铺设光缆或通讯电缆,所以无线LED显示屏的安装位置易于选择。产品采用模块化设计,便于维护和检修。

    7)金博通公司生产的无线GPRS网络可实现强大的群发功能。用户既可以实现自定义任意群发,也可根据自己的需求将某个信息发布到自己任意组合选择的目标显示屏;也可以实现分组固定群发,如用户现场有500个显示屏,用户将可将现场500个显示屏分成5组,每组不同信息,来分别进行发送。

    8)金博通科技有限公司生产的KB2000 TCP/IP网络转换器可实现互联网与互联网通讯,该发布系统简便易用,无需任何开发工作,同时不受距离限制(如可在亚洲将信息发布到欧洲),是最具先进性,成本低且性价比特高的一种LED信息发布方案。

    9APPServer远程信息发布系统集成无线拍照系统,在成功发送LED显示屏信息后通过安装的高清摄像头向控制中心发送源自于现场LED显示屏当前显示的内容,自动生成图片方便客户能更真实的看到现场显示屏的内容,解除客户的端优。

    三、无线LED显示屏信息发布组网方案

    1)自定义任意群发组网方案(主控室有互联网,现场无互联网)

             此方案尤其适用于车载条屏广告信息的发布,此方案不管用户电脑有无串口,均可实现。用户主控室电脑装上我公司软件APPSERVER,同时运行显示屏厂家控制软件,无需作任何软件的开发与更改。用户需要群发时,只需要将终端显示屏所连接的GPRS ID号选中,即可实现对相应的显示屏群发。群发可设置只一次应答或不限应答。

    2)互联网转换器与GPRS DTU组网并群发(主控室有互联网,现场无互联网)

    此方案根据用户需求可实现一对一,一对多(群发)通讯。用户主控室的电脑接上一台KB2000-A,现场的LED显示屏接上一台KB3010 GPRS DTU,用户通过电脑上显示屏厂家的控制软件来进行发送信息。当KB2000-AKB3010区号相同并接入多台KB3010时,可以实现一对多群发,此种方案为固定式群发,或用户现场KB3010分成不同的组,不同的组采用不同的区号,此时需要群发只能按组进行群发,当设置KB2000不同为相应的KB3010区号时,即可实现针对不同的组进行群发。

            

    3)互联网转换器之间组网并群发(主控室与现场均有互联网)

             此方案专门适用于用户显示屏现场有互联网网线接入时的情况,根据用户需求可实现一对一,一对多(群发)通讯。用户主控室的电脑接上一台KB2000-A,现场的LED显示屏接上一台KB2000-B,用户通过电脑上显示屏厂家的控制软件来进行发送信息。当KB2000-AKB2000-B区号相同并接入多台KB2000-B时,可以实现一对多群发,此种方案为固定式群发,或用户现场KB2000-B分成不同的组,不同的组采用不同的区号,此时需要群发只能按组进行群发,当设置KB2000-A不同为相应的KB2000-B区号时,即可实现针对不同的组进行群发。

    4GPRS DTUGPRS DTU通讯组网并群发(主控室无互联网情况)
            
    此方案专门适用于用户的主控室与显示屏现场都没有互联网接入的情况,根据用户需求可实现一对一,一对多(群发)通讯。用户主控室的电脑接上一台KB3010,现场的LED显示屏接上一台KB3010,用户通过电脑上显示屏厂家的控制软件来进行发送信息。应用时需要将主控室的KB3010设置为主站,将现场与显示屏连接的KB3010设置为其从站,它们即可组成一个小型的通讯网络,可实现一对多通讯。



    四、APPServer远程信息发布系统可以广泛应用于下列领域: 

    APPServer远程信息发布系统作为一种新的信息发布载体,具有广阔的市场和用途,可广泛用于政府、商业、交通、餐饮、建筑、旅游、体育、运输等行业和部门。
       小区楼院:将无线LED显示屏安装在小区、楼宇、院子入口处,作为小区信息公告牌,方便物业和居民发布物业通知、公益资讯、小区公告、气象信息、安全知识、交通提示、社区信息等,有助于社区信息的整合与传播,净化社区环境,提升社区形象;
       政府部门:将无线LED显示屏安装在政府部门的办事大厅,作为政务公示栏,用来发布政府政策、公告公示、民意调查、应急通知、预警提示、气象信息、法规宣传等;无线LED显示屏可以成为气象、安全、交通、水利、消防、民政、公安、城管等行业部门信息发布与预警系统的标准终端。
       门店超市:将无线LED显示屏安装在商店门头、超市入口、大厅、货架处,用于发布导购提示、供求信息、价格行情、促销打折、新品推介、商家推荐、客户问候等,是商家引导顾客的媒体和信息传播的窗口,有助于吸引消费者,促进商家信息的传播。
       交通车站:将无线LED显示屏安装在车站候车室、收费站、站台中作为电子公告屏,用于发布公交信息、天气预报、各类广告、即时新闻、交通路况、票务情况、临时通知等;
       交通车辆:将无线LED显示屏安装在公交车辆、城市出租车、地铁车辆和铁路列车上,用于发布城市新闻、天气预报、交通路况、商业信息等;
       广告传媒:将无线LED显示屏可嵌入到广告灯箱、户外广告、招牌门牌、路牌中用于发布即时广告和信息,可以有效提升整体广告效果,扩大广告受众率。
    农业农村:将无线LED显示屏安装到各村、镇重要场所,作为农村供求信息栏,用于发布农业科技、农业政策、应急广播、市场信息、供求信息、气候信息、病害防治等;
     
       宾馆酒店:选用带有牌价栏的无线LED显示屏安装在前台、大厅等处,用于发布房价信息、公告通知、气象预告、消费指南、欢迎语等;
       学校医院:将无线信箱作为电子公告栏,用于发布服务指南、收费公示、预防提醒、会议通知、学术活动、供求信息等。
        无线LED显示屏还可用于旅游景点、集团企业、单位内部独立无线联网,从而实现多级、跨级、平级共享的无线信息发布系统。
     

     

    五、无线LED显示屏信息发布系统设计原则
    1.先进性:充分利用计算机互联网络、移动无线通信系统、LED显示控制等先进技术,设计具有国内先进的无线LED显示屏信息发布系统。采用目前先进的系统软件平台及终端设备,不但能够支持无线LED显示屏信息联网发布需要,而且能够支持相关各个行业内部具体业务需要。
    2.可靠性:由于无线LED显示屏信息发布系统使用环境的特殊性,必须保证系统工作相对稳定可靠。本系统的可靠性主要体现在三个方面:一是中心系统的可靠性,包括硬件系统的可靠性,操作系统、数据库、中心服务系统等软件平台的可靠性;二是无线LED显示终端的可靠性,主要是指无线LED显示终端能够稳定可靠地工作,硬件故障率低。三是通信机制可靠,因为无线网络通信的使用环境有其复杂性的特点,系统通信机制一定要保障数据传输高效可靠。
    3.扩展性:系统要有良好的扩展性,当终端数量增加、使用用户范围扩大、系统功能增加时,能够平稳升级,保护投资。目前无线LED显示屏信息发布系统能够支持现有的各类无线通信接入, GSM通信系统,GPRS通信系统,CDMA通信系统,并实现了这些系统的并网运行,今后通过开发和安装相应的通信接口协议即可实现其他未来通信系统的接入。
    4.实用性:整个系统的操作以方便、简洁、高效为目标,既充分体现快速反应的特点,又能便于操作人员进行信息处理和发布,便于管理层及时了解各项统计信息。
    5.保密性:对于系统的管理实行严格的权限管理,只有持有一定权限的密钥才能访问、监控、实施相应的管理、控制操作,确保系统安全可靠。

    六、无线LED显示屏信息发布系统主要功能
    1.系统支持无线LED显示屏数量可大于10000 个;
     
    2.通信体制支持:GPRS通信方式,短信息通信方式,internet互联网方式;
    3.系统软件采用B/S结构;
    4.支持LED显示屏设备信息管理功能;
    5.支持文本信息实时发送、定时发送 ;
    6.发布信息的增加、删除和编辑修改功能;

    7.定义不同的操作用户有不同的操作权限,实现用户分级管理;

    展开全文
  • LED显示屏二次开发接口的设计方案

    千次阅读 2012-09-29 00:21:04
     在LED 显示屏工程应用中,有单块显示屏项目,但更多的是多块显示屏项目。对于单块显示屏,直接使用厂商配置的控制软件就满足要求了;但对于多块显示屏,尤其是系统集成项目,厂商配置的控制软件就很难满足要求。这...
  • 移植QTE动态时钟到UP-MobNet-II实验箱LED显示屏 文章目录实验箱信息实验目的实验内容实验环境实验原理1、Qt/Embedded 简介2、QtE 的特征3、Qt/E 与 Qt/X11 的比较实验步骤 实验箱信息 名称 移动互联网教学科研...
  • 我在给一个对话框上的控件查找翻看合适的图标时,无形中看到了一个LED显示屏的图标,这里所说的LED显示屏是指由很多LED灯密集排列组成的点阵式LED屏,比如在股市交易所,公交车上,银行门口,我们经常能看到这样的...
  • 1. 在WinXp下用代码生成黄颜色的文字bmp图片发送到LED显示屏没问题,如下图: [img=https://img-bbs.csdn.net/upload/201510/31/1446260485_86229.png][/img] 2. 但在Win7下用同样的代码生成黄颜色的文字bmp图片...
  • 基于32×32点阵LED模块的书写显示屏

    千次阅读 2020-10-27 16:40:49
    LED点阵显示屏被用到很多领域,随着电子技术的发展,LED点阵书写显示屏的广泛应用是一种趋势。传统的LED点阵显示是由微处理器实现的,但是以FPGA做控制器将成为发展趋势。FPGA的结构灵活,其逻辑单元、可编程内部...
  • 发光二极管(LED)在各种终端设备中已经被广泛使用,从汽车前照灯、交通信号灯、文字显示器、广告牌及大屏幕视频显示器,到普通及建筑照明和LCD背光等最新应用,LED的迅速采用使得最普通的设备也需要重新设计。随着LED...
  • 发光二极管(LED)在各种终端设备中已经被广泛使用,从汽车前照灯、交通信号灯、文字显示器、广告牌及大屏幕视频显示器,到普通及建筑照明和LCD背光等最新应用,LED的迅速采用使得最普通的设备也需要重新设计。随着LED...
  • LED汉字点阵生成软件

    2018-10-03 21:32:43
    16*16点阵生成,可模拟文字的点阵列,也可以自定义生成文字点阵
  • 摘 要:该智能型点阵电子显示屏基于串并转换动态扫描技术,以微控制器为,辅以必要外围电路设计而成。系统主要由单片机控制、电子屏驱动显示、亮度调节、时钟定时、... LED电子显示屏是一种显示文字、图像等视频信号
  • 摘 要:该智能型点阵电子显示屏基于串并转换动态扫描技术,以微控制器为核心,辅以必要外围电路设计而成。系统主要由单片机控制、电子屏驱动显示、亮度调节、时钟定时、... LED电子显示屏是一种显示文字、图像等视频
  • 允许您为矩阵 LED 显示屏使用不同的字体 只有一种字体。 该脚本采用 TTF“位图字体”并将其光栅化为适用于的 C++ 数组格式,以便在 MAX7219 点阵 LED 模块上使用和测试。 有关字体格式以及glcdfont.c如何工作和构建...
  • 异常现象:开发的服务程序,根据动态文本信息生成PNG图片,并通过4G网络传输给LED大屏进行显示,但是会出现杂色的异常情况,屏幕显示文字便于杂色严重(纯色的图片没有问题)。 问题追踪: 图片生成的相关代码...
  • 业务场景 我们的应用从A平台通过Rest接口获取车速数据,然后将数据推送到Led屏幕显示 显示效果如下: 主要难点是将数据推送到led屏,led屏厂商给了对应的通信...根据显示屏协议组装协议包,先发送**(0x02)发送图形信
  • OLED显示屏

    千次阅读 2020-08-26 15:23:17
    目前单片机、机器人或者嵌入式常用的就是LCD或者OLED屏,在前面的一篇文章里已经...普遍来说,OLED显示屏的使用会比LCD显示屏麻烦一些,所以我在介绍LCD1602的时候使用用51单片机,而在这篇介绍OLED显示屏里会用STM32。
  • 显示屏显示优化基础

    2019-01-16 20:14:00
    1.显示屏显示优化基础 根据以往的显示屏显示观察、分析,发现显示屏显示效果存在如,背光非线性差、白画面不够白、黑画面不够黑等问题。 为了指导后续显示屏显示效果优化,这里将显示屏常用的基础参数、及其...
  • 最近在做要把文字(英文、汉字)显示到OLED显示屏上这方面内容,英文还好说,无非几十个字符,网上一搜也都有现成的方法。但汉字可就比较棘手了,首先要实现汉字的显示需要知道这个汉字的字模,这个我们可以很轻松地...
  • 做些记录,特别是led显示左移效果的代码,二进制位的特效函数 unsigned char LedArray1[1][32]= { 0xff,0xd7,0x83,0xd6,0xc6,0xd4,0xc6,0x82,0xd6,0xba,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x97,0x57,0x...
  • 使用css+js模拟的显示界面进行数据收集。 1. 没有找到代码 来自 https://www.jindianweb.com/texiao/item-177.html 网站,之前找到过可以演示的网站,但是下载还是比较费劲 2. 有代码,需要修改 ...
  • 词法分析之LED文件批量生成

    千次阅读 2009-07-24 20:31:00
    LEDPlayer显示屏文件自动生成C语言实现----根据破解文件格式 /******************** ** **LED文件生成工具 ** *********************/ #include #include <stdlib.h> #include #define DIV (('1')-('0...
  • LED点阵显示屏制作简单,安装方便,被广泛应用于各种公共场合,如汽车报站器、广告屏以及公告牌等。 显示原理 以简单的8X8点阵为例,它共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,022
精华内容 808
关键字:

led显示屏文字生成