码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 05-SA8155 QNX Hypervisor MultiTouch多点触摸


    1. 前言

    Hypervisor多点触摸涉及多个系统多个显示子系统。

    多系统:QNX + Android + Linux

    多显示子系统:驾驶屏 + 副驾驶 + 控制屏 + 后座屏 + 其他.....

    可以用不同技术方案实现。

    2. 技术点

    2.1 Virtio(vdev)

    不做详细介绍

    2.1.1 Virtio-i2c

    参考文章:QNX Hypervisor Virtio-i2c

    不做详细介绍

    2.1.2 Virtio-input

    技术点与virtio-i2c类似

    不做详细介绍

    2.1.3 配置

    QVM虚拟机参考配置如下:

    GVM端内核DTS参考配置:

     

     
     
    2.1.4 Qnx mtouch

    QNX独有的多点触控设备管理

    配置文件:/etc/system/config/mtouch_xxxx.conf

    begin mtouch
        driver = hid //驱动类型
        options = vid=0x1391,did=0x2112,width=1280,height=720,max_touchpoints=5
        display = 1 //屏ID
    end mtouch

    启动:在/scripts/startup.sh中启动

    MTOUCH_CONF=/etc/system/config/mtouch.conf
    CALIB_CONF=/etc/system/config/calib.conf
    chmod a+w /etc/system/config
     

    $ON $MTOUCH_ON_ARGS  mtouch -c $MTOUCH_CONF &
    if [ $? -eq 0 ]
    then
            log_ready "mtouch"
    else
            echo "mtouch failed."
    fi
    $ON $CALIB_TOUCH_ON_ARGS  calib-touch -config-file=$CALIB_CONF &

     

    2.2 Pass-Through(直通)

    不做详细介绍

    参考文章:QNX Hypervisor passthrough

    3. 方案

    3.1 GVM实现所有触控 //一体化设备

    如果触控操作都是GVM渲染实现(主驾屏,副驾屏等),则可以采用直通模式,将屏触控I2C通过直通模式实现input touchscreen方案,直通模式同时也拥有较高的工作效率。

    3.2 分体设备(Ser/DeSer 与 触控IC共一个I2C)

    QNX Hypervisor 显示部分(BE)由QNX处理即PVM处理,GVM(Android)端是FE端,负责显示数据绘制,将绘制好的的数据发送给BE端进行渲染显示。

    详细可以参考文章:QNX Hypervisor显示

    这种情况多屏多点触摸屏该如何实现?

    3.2.1 virtio-i2c

     参考文章:QNX Hypervisor Virtio-i2c

    依据之前写的文章可以看出,虚拟I2C情况下,PVM(QNX)以及GVM(Android)其实均可以访问I2C设备的。因此可以采用虚拟I2C方案,将touchscreen驱动放置在GVM(Android)。

    3.2.1 virtio-input

    TODO

    这种方案就是将touchscreen驱动放在QNX实现,通过virtio-input在GVM(Android)实现多个触摸输入设备。经过mtouch配置给不同的显示屏/ 同时也可以通过virtio-input 在GVM绑定不同的显示屏。 

     

    4. 实操

    TODO 

  • 相关阅读:
    java毕业设计巢院小区疫情管控系统Mybatis+系统+数据库+调试部署
    关于灭弧式智慧用电在养老机构的应用案例分析-安科瑞 蒋静
    探索APP性能优化之稳定性优化(解决方案)
    代码随想录算法训练营19期第44天
    Spring在k8s中无限重启问题之Nacos服务中心
    【Redis学习笔记】第一章 Redis入门与安装
    Neo4j源码研究系列 - 源代码准备
    [AGC058C]Planar Tree
    IDEA的使用
    数据包远程传输的抓包系统scratch
  • 原文地址:https://blog.csdn.net/liaochaoyun/article/details/127627983
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号