Дата: 2010-04-16 11:02:47
Комментариев: 1
Давно уже лежал без дела и пылился коммуникатор qtek s200, решил вдохнуть в него новую жизнь, так сказать. Будем делать из него что-то вроде второго дополнительного экрана. Первоначально сделал из него цифровую фоторамку:
$cat index.php
<html>
<head>
<title>Фоторамка</title>
<script language="JavaScript">

</script>
</head>
<body onload="timer=setTimeout('move()',60000)">
<IMG WIDTH=310 HEIGHT=225 SRC="foto.php">
</body>
</html>



 
	$folder = '/путь/до/папки/img';
        $extList = array();
	$extList['gif'] = 'image/gif';
	$extList['jpg'] = 'image/jpeg';
	$extList['jpeg'] = 'image/jpeg';
	$extList['JPG'] = 'image/jpeg';
	$extList['png'] = 'image/png';
 
$img = null;
 
if (substr($folder,-1) != '/') {
	$folder = $folder.'/';
}
 
if (isset($_GET['img'])) {
	$imageInfo = pathinfo($_GET['img']);
	if (
	    isset( $extList[ strtolower( $imageInfo['extension'] ) ] ) &&
        file_exists( $folder.$imageInfo['basename'] )
    ) {
		$img = $folder.$imageInfo['basename'];
	}
} else {
	$fileList = array();
	$handle = opendir($folder);
	while ( false !== ( $file = readdir($handle) ) ) {
		$file_info = pathinfo($file);
		if (
		    isset( $extList[ strtolower( $file_info['extension'] ) ] )
		) {
			$fileList[] = $file;
		}
	}
	closedir($handle);
 
	if (count($fileList) > 0) {
		$imageNumber = time() % count($fileList);
		$img = $folder.$fileList[$imageNumber];
	}
}
 
if ($img!=null) {
	$imageInfo = pathinfo($img);
	$contentType = 'Content-type: '.$extList[ $imageInfo['extension'] ];
	header ($contentType);
	readfile($img);
} else {
	if ( function_exists('imagecreate') ) {
		header ("Content-type: image/png");
		$im = @imagecreate (100, 100)
		    or die ("Cannot initialize new GD image stream");
		$background_color = imagecolorallocate ($im, 255, 255, 255);
		$text_color = imagecolorallocate ($im, 0,0,0);
		imagestring ($im, 2, 5, 5,  "IMAGE ERROR", $text_color);
		imagepng ($im);
		imagedestroy($im);
	}
}
 
?>
 


Фото из папки img беруться с сайта www.photosight.ru. Как это сделать написано в предыдущей статье.
Затем сделал информационную панель, в которой отображается uptime, cpu usage, RAM usage,system load,etc:

#!/bin/bash
Q_HOST="127.0.0.1"
LOAD_WARN=5.0
MYNETINFO="My Network Info"
GREEN='<font color="#00ff00">'
RED='<font color="#ff0000">'
NOC='</font>'
LSTART='
<ul>
<li>'
LEND='</li>
</ul>
 
'
PING="/bin/ping"
NOW="$(date)"
 
writeHead(){
 echo '<HTML><HEAD><TITLE>Network Status</TITLE></HEAD><META HTTP-EQUIV="refresh" CONTENT="10"><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <BODY alink="#0066ff" bgcolor="#000000" link="#0000ff" text="#ccddee" vlink="#0033ff">'
 echo '<CENTER>'
 echo "Generated on $NOW"
 echo '</CENTER>'
 
}
 
writeFoot(){
  echo "</BODY></HTML>"
}
 
writeHead
echo '<TABLE WIDTH=100% BORDER=1 BORDERCOLOR="#000080" CELLPADDING=2 CELLSPACING=2 FRAME=HSIDES RULES=NONE" >'
echo '<TR VALIGN=TOP>'
for host in $Q_HOST
do
  echo '<TD BGCOLOR="#000000">'
  rhostname="$(hostname)"
 
  ruptime="$(uptime)"
  if $(echo $ruptime | grep -E "min|days" >/dev/null); then
    x=$(echo $ruptime | awk '{ print $3 $4}')
  else
    x=$(echo $ruptime | sed s/,//g| awk '{ print $3 }')
  fi
  ruptime="$x"
 
  rload="$(uptime |awk -F'average:' '{ print $2}')"
  x="$(echo $rload | sed s/,//g | awk '{ print $2}')"
  y="$(echo "$x >= $LOAD_WARN" | bc)"
  [ "$y" == "1" ] && rload="$RED $rload (High) $NOC" || rload="$GREEN $rload (Ok) $NOC"
 
  rclock="$(date | awk '{print $4}')"
  rtotalprocess="$(ps axue | grep -vE "^USER|grep|ps" | wc -l)"
  rusedram="$(free | grep buffers/cache |head -n1| awk '{ print $3 " MB" }')"
  rfreeram="$(free | grep buffers/cache |head -n1| awk '{ print $4 " MB" }')"
  rtotalram="$(free -mto | grep Mem: | awk '{ print $2 " MB" }')"
 
  $PING -c1  $host>/dev/null
  if [ "$?" != "0" ] ; then
    rping="$RED Failed $NOC"
  else
    rping="$GREEN Ok $NOC"
    echo "<b><u>$rhostname</u></b><BR>"
    echo "Time: $rclock<BR>"
    echo "Uptime: $ruptime <BR>"
    echo "Load average: $LSTART $rload $LEND"
    echo "Total running process: $LSTART $rtotalprocess $LEND"
    echo "Disk status:"
    #echo "$rfs"
    echo "Ram/swap status:
<ul>"
    echo "
<li>Used RAM: $rusedram</li>
 
"
    echo "
<li>Free RAM: $rfreeram</li>
 
"
    echo "
<li>Total RAM: $rtotalram </li>"
  fi   
 
  echo "</td>
 
"
done
  echo "</tr>
</table>
 
"
writeFoot


$cat start-info.sh
#!/bin/bash
while true; do sleep 3; /путь/до/файла/info.sh > /var/www/infostat.html; done

Теперь каждые 3 сек. будет генерироваться иформация в infostat.html. Добавляем последний скрипт в автозагрузку. Система→Параметры→Запускаемые приложения→Добавить
Осталось теперь подключить кпк к wifi (в моём случае) и в браузере набрать:
http://192.168.2.2/infostat.html


Информация будет автоматически обновляться.

Файлы:
ppc.tar.gz

теги: ppc, qtek, s200