<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://hlds.pl/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
		<id>http://hlds.pl/index.php?action=history&amp;feed=atom&amp;title=Evhz.c</id>
		<title>Evhz.c - Historia wersji</title>
		<link rel="self" type="application/atom+xml" href="http://hlds.pl/index.php?action=history&amp;feed=atom&amp;title=Evhz.c"/>
		<link rel="alternate" type="text/html" href="http://hlds.pl/index.php?title=Evhz.c&amp;action=history"/>
		<updated>2026-05-14T17:55:16Z</updated>
		<subtitle>Historia wersji tej strony wiki</subtitle>
		<generator>MediaWiki 1.18.1</generator>

	<entry>
		<id>http://hlds.pl/index.php?title=Evhz.c&amp;diff=7885&amp;oldid=prev</id>
		<title>PawelS: Skrypt sprawdzający ilość Hz pod Linuksem.</title>
		<link rel="alternate" type="text/html" href="http://hlds.pl/index.php?title=Evhz.c&amp;diff=7885&amp;oldid=prev"/>
				<updated>2008-02-16T22:20:25Z</updated>
		
		<summary type="html">&lt;p&gt;Skrypt sprawdzający ilość Hz pod Linuksem.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Opis ==&lt;br /&gt;
'''evhz.c''' - Skrypt mający na celu sprawdzanie częstotliwości portu USB, do którego jest podłączona myszka.&lt;br /&gt;
== Kompilacja ==&lt;br /&gt;
 gcc -o evhz evhz.c&lt;br /&gt;
== Uruchamianie ==&lt;br /&gt;
 ./evhz&lt;br /&gt;
No i teraz ruszamy myszką i w terminalu/konsoli obserwujemy ile mamy Hz - przednia zabawa na długie samotne wieczory ;).&lt;br /&gt;
== Skrypt ==&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
/**************************************************&lt;br /&gt;
 Ten program stworzył Alan 'Strider' Kivlin.&lt;br /&gt;
 This program was written by Alan 'Strider' Kivlin.&lt;br /&gt;
***************************************************/&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/input.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;signal.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define EVENTS 10&lt;br /&gt;
#define HZ_LIST 64&lt;br /&gt;
&lt;br /&gt;
typedef struct event_s {&lt;br /&gt;
	int fd;&lt;br /&gt;
	int hz[HZ_LIST];&lt;br /&gt;
	int count;&lt;br /&gt;
	double prvtime;&lt;br /&gt;
} event_t;&lt;br /&gt;
&lt;br /&gt;
int quit = 0;&lt;br /&gt;
&lt;br /&gt;
void sigint() {&lt;br /&gt;
	signal(SIGINT, sigint);&lt;br /&gt;
	quit = 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv) {&lt;br /&gt;
	int i;&lt;br /&gt;
	event_t events[EVENTS];&lt;br /&gt;
&lt;br /&gt;
	signal(SIGINT, sigint);&lt;br /&gt;
&lt;br /&gt;
	printf(&amp;quot;Press CTRL-C to exit.\n\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	memset(events, 0, sizeof(events));&lt;br /&gt;
&lt;br /&gt;
	for(i = 0; i &amp;lt; EVENTS; i++) {&lt;br /&gt;
		char device[18];&lt;br /&gt;
&lt;br /&gt;
		sprintf(device, &amp;quot;/dev/input/event%i&amp;quot;, i);&lt;br /&gt;
		events[i].fd = open(device, O_RDONLY);&lt;br /&gt;
		&lt;br /&gt;
		if(events[i].fd != -1) {&lt;br /&gt;
			char name[128];&lt;br /&gt;
			ioctl(events[i].fd, EVIOCGNAME(sizeof(name)), name);&lt;br /&gt;
			printf(&amp;quot;event%i: %s\n&amp;quot;, i, name);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	while(!quit) {&lt;br /&gt;
		fd_set set;&lt;br /&gt;
&lt;br /&gt;
		FD_ZERO(&amp;amp;set);&lt;br /&gt;
&lt;br /&gt;
		for(i = 0; i &amp;lt; EVENTS; i++) {&lt;br /&gt;
			if(events[i].fd != -1) {&lt;br /&gt;
				FD_SET(events[i].fd, &amp;amp;set);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if(select(FD_SETSIZE, &amp;amp;set, NULL, NULL, NULL) &amp;gt; 0) {&lt;br /&gt;
			int bytes;&lt;br /&gt;
			struct input_event event;&lt;br /&gt;
&lt;br /&gt;
			for(i = 0; i &amp;lt; EVENTS; i++) {&lt;br /&gt;
				if(events[i].fd == -1) {&lt;br /&gt;
					continue;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				if(!FD_ISSET(events[i].fd, &amp;amp;set)) {&lt;br /&gt;
					continue;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				bytes = read(events[i].fd, &amp;amp;event, sizeof(event));&lt;br /&gt;
&lt;br /&gt;
				if(bytes != sizeof(event)) {&lt;br /&gt;
					continue;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				if(event.type == EV_REL) {&lt;br /&gt;
					double time;&lt;br /&gt;
					int hz;&lt;br /&gt;
&lt;br /&gt;
					time = event.time.tv_sec * 1000 + event.time.tv_usec / 1000;&lt;br /&gt;
					hz = 1000 / (time - events[i].prvtime);&lt;br /&gt;
&lt;br /&gt;
					if(hz &amp;gt; 0) {&lt;br /&gt;
						int avghz;&lt;br /&gt;
						int j;&lt;br /&gt;
&lt;br /&gt;
						events[i].count++;&lt;br /&gt;
						events[i].hz[events[i].count &amp;amp; (HZ_LIST - 1)] = hz;&lt;br /&gt;
&lt;br /&gt;
						avghz = 0;&lt;br /&gt;
&lt;br /&gt;
						for(j = 0; j &amp;lt; HZ_LIST; j++) {&lt;br /&gt;
							avghz += events[i].hz[j];&lt;br /&gt;
						}&lt;br /&gt;
&lt;br /&gt;
						avghz /= (events[i].count &amp;gt; HZ_LIST) ? HZ_LIST : events[i].count;&lt;br /&gt;
&lt;br /&gt;
						printf(&amp;quot;event%i: latest hz = %i (average hz = %i)\n&amp;quot;, i, hz, avghz);&lt;br /&gt;
					}&lt;br /&gt;
&lt;br /&gt;
					events[i].prvtime = time;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	for(i = 0; i &amp;lt; EVENTS; i++) {&lt;br /&gt;
		if(events[i].fd != -1) {&lt;br /&gt;
			close(events[i].fd);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
And again PawelS saves the world ;)&lt;br /&gt;
[[Kategoria:Skrypty]]&lt;br /&gt;
[[Kategoria:Oprogramowanie]]&lt;/div&gt;</summary>
		<author><name>PawelS</name></author>	</entry>

	</feed>