您尚未登录。

楼主 #1 2018-01-18 13:08:51

zhuacai
会员
注册时间: 2017-12-16
已发帖子: 234
积分: 233.5

各位大哥,buildroot编译出来的根文件系统,怎么判断触屏已校正,如果没校正就运行./ts_calibrate进行校正?

各位大哥,buildroot编译出来的根文件系统,怎么判断触屏已校正,如果没校正就运行./ts_calibrate进行校正?

离线

#2 2018-01-18 13:49:41

晕哥
管理员
所在地: 微信 whycan_cn
注册时间: 2017-09-06
已发帖子: 9,224
积分: 9197

Re: 各位大哥,buildroot编译出来的根文件系统,怎么判断触屏已校正,如果没校正就运行./ts_calibrate进行校正?

你看下这个ts_calibrate.c源码, 里面有读校正数据文件, 你可以用同样的方法。
1. 判断文件是否存在.
2. 判断文件几个数据是否全为零.
3. 判断校正值是否是正常值.





离线

楼主 #3 2018-01-19 14:01:50

zhuacai
会员
注册时间: 2017-12-16
已发帖子: 234
积分: 233.5

Re: 各位大哥,buildroot编译出来的根文件系统,怎么判断触屏已校正,如果没校正就运行./ts_calibrate进行校正?

晕哥 说:

你看下这个ts_calibrate.c源码, 里面有读校正数据文件, 你可以用同样的方法。
1. 判断文件是否存在.
2. 判断文件几个数据是否全为零.
3. 判断校正值是否是正常值.




晕哥,我看了别人的资料,他是判断/etc/pointercal文件是否存在和大小,如果不存在或大小小于1,就运行/usr/bin/ts_calibrate校准程

但是校准重启出现下面的错误是什么问题呢?
sh: 1: unknown operand
/etc/pointercal is empty
xres = 800, yres = 480




#!/bin/sh

export TSLIB_TSDEVICE=/dev/input/event1
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/lib/ts
export TSLIB_FBDEVICE=/dev/fb0
export LD_LIBRARY_PATH=/lib:/usr/lib/
export QT_PLUGIN_PATH=/usr/lib/qt/plugins/
export QT_QPA_FONTDIR=/usr/share/fonts/liberation/


export QWS_MOUSE_PROTO='Tslib:/dev/input/event1 MouseMan:/dev/input/mice'

if [ -e /etc/pointercal ] ; then
        fsize=$(/bin/ls -al /etc/pointercal | cut -d' ' -f 23)
        echo $fsize
        if [ $fsize -ge "1" ]; then
                echo "/etc/pointercal is exit"
        else
                echo "/etc/pointercal is empty"
                rm /etc/pointercal
                /usr/bin/ts_calibrate
        fi
else
        echo "/etc/pointercal not found"
        /usr/bin/ts_calibrate
fi

离线

#4 2018-01-19 14:47:20

晕哥
管理员
所在地: 微信 whycan_cn
注册时间: 2017-09-06
已发帖子: 9,224
积分: 9197

Re: 各位大哥,buildroot编译出来的根文件系统,怎么判断触屏已校正,如果没校正就运行./ts_calibrate进行校正?

没看到出现什么错误,是不是说 "unknown operand" ?
这个可以多加一些调试输出 echo 命令用来定位错误。





离线

楼主 #5 2018-01-19 15:44:54

zhuacai
会员
注册时间: 2017-12-16
已发帖子: 234
积分: 233.5

Re: 各位大哥,buildroot编译出来的根文件系统,怎么判断触屏已校正,如果没校正就运行./ts_calibrate进行校正?

晕哥 说:

没看到出现什么错误,是不是说 "unknown operand" ?
这个可以多加一些调试输出 echo 命令用来定位错误。


晕哥可能是下面那行出错,
fsize=$(/bin/ls -al /etc/pointercal | cut -d' ' -f 23)

有时无法/bin/ls -al /etc/pointercal | cut -d' ' -f 23就出错

正常启动是下面那里样
wlan0: WPA: Key negotiation completed with e0:05:c5:c5:5c:c2 [PT[    5.584552] RTL8723BS: set group key camid:5, addr:e0:05:c5:c5:5c:c2, kid:2, type:AES
K=CCMP GTK=CCMP]
wlan0: CTRL-EVENT-CONNECTED - Connection to e0:05:c5:c5:5c:c2 completed [id=0 id_str=]
udhcpc: sending discover
udhcpc: sending select for 192.168.1.103
udhcpc: lease of 192.168.1.103 obtained, lease time 7200
49
/etc/pointercal is exit

# ls -la /etc/pointercal
-rw-r--r--    1 root     root            49 Jan  1 02:20 /etc/pointercal

离线

#6 2018-01-19 15:53:51

晕哥
管理员
所在地: 微信 whycan_cn
注册时间: 2017-09-06
已发帖子: 9,224
积分: 9197

Re: 各位大哥,buildroot编译出来的根文件系统,怎么判断触屏已校正,如果没校正就运行./ts_calibrate进行校正?

# /bin/ls -al /etc/pointercal | cut -d' ' -f 23
51


我试了一下正常。
出错的时候提示什么错误?文件不存在?





离线

楼主 #7 2018-01-20 09:41:36

zhuacai
会员
注册时间: 2017-12-16
已发帖子: 234
积分: 233.5

Re: 各位大哥,buildroot编译出来的根文件系统,怎么判断触屏已校正,如果没校正就运行./ts_calibrate进行校正?

晕哥 说:

# /bin/ls -al /etc/pointercal | cut -d' ' -f 23
51


我试了一下正常。
出错的时候提示什么错误?文件不存在?

晕哥,提示下面的信息


sh: 1: unknown operand
/etc/pointercal is empty
xres = 800, yres = 480


校准过一次,正常的话,是不会运行校准程序了,错出了
sh: 1: unknown operand,还运行板准程序

离线

#8 2018-01-20 10:37:59

晕哥
管理员
所在地: 微信 whycan_cn
注册时间: 2017-09-06
已发帖子: 9,224
积分: 9197

Re: 各位大哥,buildroot编译出来的根文件系统,怎么判断触屏已校正,如果没校正就运行./ts_calibrate进行校正?

我看了一下, 应该是这里出错了: if [ $fsize -ge "1" ]; then

你的本意是整数比较吧?估计shell解释器就是字符串比较了,
你比如直接判断是否等于 "51" 好了, 这样更简单一点。





离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn