搜索
bottom↓
回复: 23

一款机器显示方案(用于工业上的)大家帮忙用什么方案?这个能用RT_THREAD系统实现吗?

[复制链接]

出0入0汤圆

发表于 2011-3-15 18:18:08 | 显示全部楼层 |阅读模式
要求:
液晶屏:5~7寸 TFT 65536色
sd卡:存储机器运行数据
usb:usb client
Ethernet:通过远程监控
rs485:2个(用modbus协议,一个主机,一个从机)

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

 楼主| 发表于 2011-3-16 09:37:57 | 显示全部楼层
有没有提个建议的

出0入0汤圆

发表于 2011-3-17 16:43:35 | 显示全部楼层
建议用

出0入0汤圆

发表于 2011-3-18 08:11:48 | 显示全部楼层
你没说硬件平台,或者说你也希望让别人推荐个硬件平台?

GUI上,RT-Thread/GUI的开发人员之一,禾兰豆,已经把RT-Thread/GUI用于大屏显示的产品。

出0入0汤圆

 楼主| 发表于 2011-3-18 11:39:52 | 显示全部楼层
我现在只提出功能要求,硬件平台没定

出0入12汤圆

发表于 2011-3-18 11:45:03 | 显示全部楼层
回复【3楼】ffxz  
你没说硬件平台,或者说你也希望让别人推荐个硬件平台?
gui上,rt-thread/gui的开发人员之一,禾兰豆,已经把rt-thread/gui用于大屏显示的产品。
-----------------------------------------------------------------------

能给我们展示一下吗?看看效果就成啊。

出0入0汤圆

发表于 2011-3-18 13:52:20 | 显示全部楼层
看看效果!~

出0入0汤圆

发表于 2011-3-18 20:28:36 | 显示全部楼层
很久没上ID了。
目前的RTGUI在小屏幕上更有优势,主要是设置之初没有考虑大屏幕的场合。
以后RTGUI会考虑出个大屏幕的版本吧,这个版本尽量使用PC上编程的特性,
这样会大大提高开发效率。下面我贴出在800*600的屏幕上使用RTGUI的效果。
首先要写一个抓屏函数,来抓屏。


#ifdef RT_USING_FINSH
#include <finsh.h>

void print_screen(char *name)
{/* 抓取屏幕,保存为HDC格式 */       
    #include <dfs_def.h>
    #include <dfs_file.h>

    const struct rtgui_graphic_driver *gd = rtgui_graphic_driver_get_default();
    struct rtgui_filerw* file;
    rt_uint8_t *buf;

    struct hdcSt
    {/* HDC图片格式的文件头 */
        char magic[4];
        rt_uint32_t width;
        rt_uint32_t height;
        rt_uint32_t res1;
        rt_uint32_t res2;
    };
    struct hdcSt hdcHeader;

    hdcHeader.magic[0] = 'H';
    hdcHeader.magic[0] = 'D';
    hdcHeader.magic[0] = 'C';
    hdcHeader.magic[0] = 0x00;
    hdcHeader.width = gd->width;
    hdcHeader.height= gd->height;
    hdcHeader.res1 = 0;
    hdcHeader.res2 = 0;

    buf = (rt_uint8_t*)&hdcHeader;
    file = rtgui_filerw_create_file(name, "w");
    if(file == RT_NULL) return;

    rtgui_filerw_write(file, buf, sizeof(hdcHeader), 1);
    buf = (rt_uint8_t*)gd->get_framebuffer;
    rtgui_filerw_write(file, buf, 600*800*2, 1);
    rtgui_filerw_close(file);

    rt_kprintf("Print Screen Succ!\n");
}
FINSH_FUNCTION_EXPORT(print_screen, print screen);;
#endif

这个函数在大部分使用FrameBuffer的平台上一般都能跑起来,用非内视shell调用即可.
如果你的系统中有SD卡,那么很方便编辑这些图片了,就像我这样:

使用hdc-conversion工具查看HDC格式的图片(RT-Thread系统) (原文件名:bmp1.JPG)
嗯,这些节目的效果怎么看都像PC上的GUI,其实这些都是RTGUI的效果

RTGUI的一个文件管理窗口 (原文件名:bmp2.JPG)
RTGUI的控件一直在持续完善之中。

RTGUI中的组合框控件效果 (原文件名:bmp3.JPG)
非内视下看看
finsh />list_win()
window'name      thread'name      modal            window'id
---------------- ---------------- ---------------- ----------
New File         NewDlg           MODAL_OK         0x307210a8
test             Panel            MODAL_CANCEL     0x30720de8
test             Panel            MODAL_CANCEL     0x30720b28
test             Panel            MODAL_CANCEL     0x30720a78
test             Panel            MODAL_CANCEL     0x30720918
test             Panel            MODAL_CANCEL     0x30720bd8
test             Panel            MODAL_CANCEL     0x30720c88
test             Panel            MODAL_CANCEL     0x30720f48
test             Panel            MODAL_CANCEL     0x30720e98
test             Panel            MODAL_CANCEL     0x30720d38
test             Panel            MODAL_CANCEL     0x307209c8
test             Panel            MODAL_CANCEL     0x30720868
test             Panel            MODAL_CANCEL     0x307207b8
        0, 0x00000000

RTGUI中打开多个窗口的效果,焦点窗口是模式窗口 (原文件名:bmp4.JPG)


RTGUI中的复选框效果 (原文件名:bmp5.JPG)
以后会支持更加复杂强大的控件,向PC上的GUI靠拢

RTGUI中的编辑框效果 (原文件名:bmp7.JPG)

出0入0汤圆

发表于 2011-3-18 20:44:04 | 显示全部楼层
在大尺寸液晶屏使用GUI,首先需要支持FrameBuffer,否则难以发挥GUI的性能,并且会影响整个系统的效率。
像手机液晶屏这样的应用场合,很多时候都是整屏的进行处理,所以使用窗口的机会很小。一般窗口都用来显示提示消息窗口。而在大液晶上编程,侧重的则是窗口系统,很多应用程序都会独占一个窗口,而且窗口还分MDI形式,SDI形式,有主窗口,子窗口,对话空,提示框等多种分类。所以实现起来会有点难度。RTGUI在将来支持大尺寸显示屏是必然的,目前还在内部测试阶段,还没有定好如何具体的发展方向。

出0入0汤圆

发表于 2011-3-18 22:00:37 | 显示全部楼层
这个效果很牛叉啊

出0入0汤圆

发表于 2011-3-18 22:34:04 | 显示全部楼层
回复【8楼】amsl  
在大尺寸液晶屏使用gui,首先需要支持framebuffer,否则难以发挥gui的性能,并且会影响整个系统的效率。
像手机液晶屏这样的应用场合,很多时候都是整屏的进行处理,所以使用窗口的机会很小。一般窗口都用来显示提示消息窗口。而在大液晶上编程,侧重的则是窗口系统,很多应用程序都会独占一个窗口,而且窗口还分mdi形式,sdi形式,有主窗口,子窗口,对话空,提示框等多种分类。所以实现起来会有点难度。rtgui在将来支持大尺寸显示屏是必然的,目前还在内部测试阶段,还没有定好如何具体的发展方向。
-----------------------------------------------------------------------

禾兰豆做的东西果真酷!下一步让我们把UI Builder做好吧,有了这个,那么写起代码来会得心应手很多

出0入0汤圆

发表于 2011-3-19 01:11:46 | 显示全部楼层
非飞,现在感觉有个问题,要更好的使用UI Builder,需要将API函数进行整合统一,例如:

rtgui_rect_t rect;
rtgui_view_t* view;
demo_view_get_rect(view, &rect);
rect.x1 += 5;
rect.x2 = rect.x1 + 100;
rect.y1 += 5 + 25;
rect.y2 = rect.y1 + 20;
button = rtgui_button_create("Blue");
RTGUI_WIDGET_FOREGROUND(RTGUI_WIDGET(button)) = blue;
rtgui_widget_set_rect(RTGUI_WIDGET(button), &rect);
rtgui_container_add_child(RTGUI_CONTAINER(view), RTGUI_WIDGET(button));

上面这段代码实现在view中创建一个button子控件,如果将它们封装在一起,例如下面这个声明:
rtgui_button_t* rtgui_button_create(struct rtgui_widget parent, char* text,int left, int top, int w, int h);
使用时下面的方法可以完成同样的功能,但是这样更符合对象编程的思想,这也是多数GUI的API的习惯用法。
button = rtgui_button_create(RTGUI_WIDGET(view),"Blue",5,100,100,20);
这种用法也符合rc格式,解析rc会更方便。睡觉去了

出0入0汤圆

发表于 2011-3-22 11:06:54 | 显示全部楼层
必须mark

出0入0汤圆

发表于 2011-3-22 22:11:19 | 显示全部楼层
希望汉字多字体支持早日实现

出0入0汤圆

发表于 2011-3-23 08:36:40 | 显示全部楼层
上例代码中buf = (rt_uint8_t*)gd->get_framebuffer;漏贴了一对括号应该是
buf = (rt_uint8_t*)gd->get_framebuffer();特此更正一下.

楼上 hejian, RTGUI已经支持TTF了,汉字多字体可以的

出0入12汤圆

发表于 2011-3-23 16:56:48 | 显示全部楼层
看起来真不错,能放点上面效果的代码学学吗?SETUP的效果。

出0入0汤圆

发表于 2011-3-25 18:27:39 | 显示全部楼层
最重要的是可视化编程环境,类似VB一样的

出0入0汤圆

发表于 2011-3-26 23:13:18 | 显示全部楼层
这是禾兰豆的id呀~mark一下吼吼

出0入0汤圆

发表于 2011-3-30 21:33:55 | 显示全部楼层
不错, 有了专门的UI设计环境, RTT离商用又近了一步

出0入0汤圆

发表于 2011-4-22 10:19:49 | 显示全部楼层
先留个记号。

出0入0汤圆

发表于 2011-4-22 10:33:02 | 显示全部楼层
越来越 强大了,顶

出0入4汤圆

发表于 2011-4-22 11:27:35 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-10 16:45:24 | 显示全部楼层
记号

出0入0汤圆

发表于 2011-5-11 20:31:02 | 显示全部楼层
这个真的是太牛叉了!赞一个。支持输入法吗?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-3 04:28

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表