Mpolltest

Od HLDS.pl
Skocz do: nawigacji, wyszukiwania

Opis

Mpolltest - Skrypt bash'a wyświetlający częstotliwość z jaką aktualnie pracuje myszka (USB, PS/2). Dzięki niemu można zweryfikować działanie parametru mousepoll w sterowniku usbhid (dla myszek usb).

Skrypt do działania wykorzystuje narzędzie xev, będące częścią pakietu x11-utils (debian/ubuntu) lub xorg-x11-utils (red hat, fedora).

Uruchamianie

W terminalu wystarczy wpisać komendę, skrypt musicie sobie stworzyć w jakimś edytorze - oczywiście skrypt niżej.

./mpolltest

W oknie utworzonym przez xev ruszamy myszką, a w terminalu obserwujemy częstotliwość.

Skrypt

#!/bin/bash
 
# This simple script shows current usb mouse polling rate, which can be 
# achieved by your mouse. 
# Real value can differ from this set in /sys/module/usbhid/parameters/mousepoll
# because some mice can't report faster than 'mousepoll' parameter says.
# For example A4Tech X-750BF mouse's max mousepoll setting can't be tweaked,
# even if we set it to 4 or 2, mouse still works on ~125Hz which stands for 8ms
# 
# To run this script you need following tools:
# xev (part of x11-utils)
# bash, grep, sed, bc ;)
#
# 25.09.2008
# by apok
 
WAIT_COUNT=50;
 
if [ -z $FIRSTTIME ]
	then
	export FIRSTTIME="no"
	xev -name "Mouse polling rate tester" -bw 1 -geometry "400x300" | grep time | $0
	exit
fi
echo
 
 
wait="false"
while true;
do
	read in
	if out=`echo $in | grep time`
		then
		count=$(($count + 1))
		if [ "$wait" == "false" ]
			then
			start=`echo $in | grep time | sed 's/^.*time\ //' | sed 's/,.*//'`
			wait="true"
		fi
		if [ $count -ge $WAIT_COUNT ]
			then
			end=`echo $in | grep time | sed 's/^.*time\ //' | sed 's/,.*//'`
			time=$(($end - $start)) #time in ms
			f=`echo "scale=2; (1000.0 * $WAIT_COUNT) / $time" | bc`
			p=`echo "scale=1; (1000 / $f)" | bc`
			echo "$p ms freq=$f Hz" #freq
			count=0
			wait="false"
		fi
	fi
done;
Osobiste
Przestrzenie nazw
Warianty
Działania
HLDS.pl - Menu:
Inne
IRC
Inne sekcje:
Znajomi:
Narzędzia