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 

  • 10
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

村里小码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值