【mt8735】LCD屏幕显示180°旋转

我司“自动称重扫描分拣系统”使用我司自己的工业平板,取代了原来的PC机,大大降低了成本。    
【mt8735】LCD屏幕显示180°旋转     

视频链接

由于“自动称重分拣系统”产品的特殊要求,工业平板的扫码头是需要朝下,这样 一来,我们所看到的画面就是倒的,根本不可使用,因此,需要将LCD显示180°旋转。
【mt8735】LCD屏幕显示180°旋转 
将LCD显示180°旋转,需要做系统底层的修改,具体实现方法如下(以实际项目为例):
1. 更改MTK_LCM_PHYSICAL_ROTATION的值
    MTK_LCM_PHYSICAL_ROTATION = 180
    所涉及到的文件有:
    bootable/bootloader/lk/project/xxxxxx.mk
    device/raindi/xxxxxx/ProjectConfig.mk
    kernel-3.10/arch/arm64/configs/xxxxx_defconfig
    kernel-3.10/arch/arm64/configs/xxxxxx_debug_defconfig
2. 开机动画的旋转
   涉及到的文件:
   frameworks/native/services/surfaceflinger/DisplayDevice.cpp
   将setProjection(DisplayState::eOrientationDefault, mViewport, mFrame);修改为:setProjection(DisplayState::eOrientation180, mViewport, mFrame);
   修改的参数是:eOrientationDefault 改为 eOrientation180
3. 触摸屏坐标的修改
    显示屏旋转了180°,那么触摸屏也要旋转180°,这样才能方便使用。
    涉及到的文件:
    kernel-3.10/drivers/input/touchscreen/mediatek/GT9XX/gt9xx_driver.c
    涉及的函数:tpd_down、tpd_up
    修改方法:x = LCM_WIDTH - x 、 y = LCM_HEIGHT - y 

  1. // 修改实例,LCM_WIDTH = 1024, LCM_HEIGHT = 600
  2. static void tpd_down(s32 x, s32 y, s32 size, s32 id)
  3. {
  4. x = 1024-x;
  5. y = 600-y;
  6. ......
  7. }
  8. static void tpd_up(s32 x, s32 y, s32 id)
  9. {
  10. x = 1024-x;
  11. y = 600-y;
  12. ......
  13. }
4. 编译
    因为我们已经更改了LCD原来的显示方式,因此将上述修改做好之后,需要clean之后,全部重新编译

    结合“自动称重分拣系统”产品来看,我们的工业平板可以适应多种需求,甚至在某些方面取代笨重的PC机。