各位大哥,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
离线
没看到出现什么错误,是不是说 "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
离线
# /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,还运行板准程序
离线