myearth

myearth

0个粉丝

3

问答

0

专栏

3

资料

myearth  发布于  2016-06-03 14:18:02
采纳率 0%
3个问答
6957

tslib移植无法显示界面(已解决)

 
本帖最后由 myearth 于 2016-6-16 08:43 编辑

Hi3520D平台,运行QT没问题,触摸屏驱动也没问题;移植tslib没有显示;
过程如下:
1类似QT启动,打开hifb后初始化
2.运行tslib,没报错,没显示。
3.触摸屏驱动中断打印没问题。

hifb使用是

static int enable_vo(int voDev)
{
        HI_S32 s32Ret;

    VO_PUB_ATTR_S stPubAttr;
        memset(&stPubAttr, 0, sizeof(stPubAttr));
        stPubAttr.u32BgColor = 0xff000000;

    stPubAttr.enIntfType = VO_INTF_VGA;

    stPubAttr.enIntfSync = VO_OUTPUT_1280x800_60;

    stPubAttr.bDoubleFrame = HI_FALSE;
        s32Ret = HI_MPI_VO_SetPubAttr(voDev, &stPubAttr);

        if (s32Ret != HI_SUCCESS){
                printf("failed with %#x!\n", s32Ret);

        return -1;

    }

        s32Ret = HI_MPI_VO_Enable(voDev);

        if (s32Ret != HI_SUCCESS) {

           printf("failed with %#x!\n", s32Ret);

        return -1;

    }
        return 0;
}


int gui_init()

{

        if(enable_vo(0) !=0)

                return -1;
    HI_MPI_VO_GfxLayerUnBindDev(GRAPHICS_LAYER_HC0, 0);
    if (HI_SUCCESS != HI_MPI_VO_GfxLayerBindDev(GRAPHICS_LAYER_HC0, 0)) {

         printf("%s: Graphic Bind to VODev failed!,line:%d\n", __FUNCTION__,  __LINE__);

        return -1;

    }

    fdGUI = open("/dev/fb0", O_RDWR, 0);
        if(fdGUI <0) {
        perror("open");
           return -1;
    }

    for (;;) {

        HI_BOOL bShow = HI_FALSE;
        if (ioctl(fdGUI, FBIOPUT_SHOW_HIFB, &bShow) < 0) {
            printf("FBIOPUT_SHOW_HIFB failed!\n");
            break;
        }

        HIFB_ALPHA_S stAlpha;
                memset(&stAlpha, 9, sizeof(stAlpha));
        stAlpha.bAlphaEnable = HI_TRUE;
        stAlpha.bAlphaChannel = HI_TRUE;
        stAlpha.u8Alpha0 = 0xff;
        stAlpha.u8Alpha1 = 0xff;
        stAlpha.u8GlobalAlpha = 0xff;

        if (ioctl(fdGUI, FBIOPUT_ALPHA_HIFB,  &stAlpha) < 0) {
            printf("Set alpha failed!\n");
            break;

        }

        struct fb_var_screeninfo var;
        if (ioctl(fdGUI, FBIOGET_VSCREENINFO, &var) < 0){
            printf("Get variable screen info failed!\n");
            break;
         }

        var.xres_virtual = HI_WIDTH_SYNC;
        var.yres_virtual = HI_HEIGHT_SYNC;
        var.xres = HI_WIDTH_SYNC;
        var.yres = HI_HEIGHT_SYNC;
       var.transp= g_a32;
        var.red = g_r32;
        var.green = g_g32;
        var.blue = g_b32;
        var.bits_per_pixel = 32;    //32bit deep
        var.activate = FB_ACTIVATE_NOW;

        if (ioctl(fdGUI, FBIOPUT_VSCREENINFO, &var) < 0){
            printf("Put variable screen info failed!\n");
            break;
        }

        bShow = HI_TRUE;
        if(ioctl(fdGUI, FBIOPUT_SHOW_HIFB, &bShow) !=0) {

                printf("FBIOPUT_SHOW_HIFB failed\n");
                break;
        }
        return 0;
    }
    close(fdGUI);
        disable_vo(0);
    return -1;

}

请大家分析一下原因,谢谢!
我来回答
回答8个
时间排序
认可量排序

goodman

4个粉丝

30

问答

18

专栏

17

资料

goodman 2016-06-03 16:36:49
认可0
把初始化代码移到ts_calibrate.c里面,就可以校准了。背景色我记得要改为白色,不然看不出来

ngswfx

2个粉丝

55

问答

1

专栏

40

资料

ngswfx 2016-06-03 20:10:10
认可0
本帖最后由 ngswfx 于 2016-6-3 20:35 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=31119&ptid=11507]goodman 发表于 2016-6-3 16:36[/url]
把初始化代码移到ts_calibrate.c里面,就可以校准了。背景色我记得要改为白色,不然看不出来[/quote]


对,根据我做FB的情况来看,颜色设置,是关键点

///////////////////////////////////////////////////111111111111
stPubAttr.u32BgColor = 0xff000000;

///////////////////////////////////222222222222222
var.transp= g_a32;
        var.red = g_r32;
        var.green = g_g32;
        var.blue = g_b32;
////////////////////////////////////////33333333333333

   stAlpha.bAlphaEnable = HI_TRUE;
        stAlpha.bAlphaChannel = HI_TRUE;
    //注意1555和RGB8888问题
        stAlpha.u8Alpha0 = 0xff;
        stAlpha.u8Alpha1 = 0xff;
        stAlpha.u8GlobalAlpha = 0xff;

/////////////////////////44444444444444444
还有就是叠加的实际图像的RGB8888数据的背景色,以及叠加的文字,以及图片的颜色
/////////////////////////////////////

看不到叠加的东西,一定要注意这几个地方,几个颜色叠加来叠加去的,搞不懂,但可以多试试不同值

/////////////我做文字信息叠加,没有用Alpha通道设置FBIOPUT_ALPHA_HIFB(修改不同的GlobalAlpha,可以得到不同透明度效果,不是我想要得),但我希望得到原始图像,直接加文字,尝试半天后,最后用的是
                stColorKey.bKeyEnable = HI_TRUE;
                stColorKey.u32Key = BK_SCR_TRANS_COLOR_KEY;
                if (ioctl(fdOSD, FBIOPUT_COLORKEY_HIFB, &stColorKey) < 0)
                {
                        printf("Set COLORKEY failed!\n");
                        close(fdOSD);fdOSD=0;
                        return 0;
                }

///而且BK_SCR_TRANS_COLOR_KEY,我用的是0x0,另外,我用的是1555。

说白了,这些颜色值之间有关联的,只有匹配了,最终才能看到希望的效果。

myearth

0个粉丝

3

问答

0

专栏

3

资料

myearth 2016-06-14 19:59:39
认可0
感谢2位相助,其实这里有个误区,不用把hifb设成32位,设成16位就好了。
#if 0
        var.transp= g_a32;
        var.red = g_r32;
        var.green = g_g32;
        var.blue = g_b32;
        var.bits_per_pixel = 32;
#else
        var.transp= g_a16;

        var.red = g_r16;

        var.green = g_g16;

        var.blue = g_b16;

        var.bits_per_pixel = 16;
#endif

另外:
stPubAttr.u32BgColor = 0xff000000;
就可以了。

goodman

4个粉丝

30

问答

18

专栏

17

资料

goodman 2016-06-14 20:47:58
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=31645&ptid=11507]myearth 发表于 2016-6-14 19:59[/url]
感谢2位相助,其实这里有个误区,不用把hifb设成32位,设成16位就好了。
#if 0
        var.transp= g_a3 ...[/quote]

解决问题请结贴,谢谢配合

myearth

0个粉丝

3

问答

0

专栏

3

资料

myearth 2016-06-15 09:14:10
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=31650&ptid=11507]goodman 发表于 2016-6-14 20:47[/url]
解决问题请结贴,谢谢配合[/quote]

怎样结贴?

goodman

4个粉丝

30

问答

18

专栏

17

资料

goodman 2016-06-15 22:47:24
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=31673&ptid=11507]myearth 发表于 2016-6-15 09:14[/url]
怎样结贴?[/quote]

[url]http://www.ebaina.com/bbs/forum.php?mod=viewthread&tid=10229&extra=page%3D1[/url]

xzxzhao2013

0个粉丝

0

问答

0

专栏

0

资料

xzxzhao2013 2016-07-27 13:01:09
认可0
很好,很好

LOKS135

0个粉丝

1

问答

0

专栏

0

资料

LOKS135 2021-01-05 17:06:30
认可0

楼主,你最后怎么解决的啊,我也遇到同样的问题了,有偿求助大佬解决

或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区