gauge / cycle-gauge

#!/usr/bin/perl
use Time::HiRes 'usleep';
use warnings;
use strict;

my $val = 0;

while (1)
{
	$val = ($val + 1) & 0x3FF;
	warn "$val\n";
	my $x = sprintf "%03x\r\n", $val;
	syswrite STDOUT, $x;
	usleep 40000;

	my $r = 0;
	my $g = 0;
	my $b = 0;
	if ($val < 0x100)
	{
		# Nothing
	}
	elsif ($val < 0x200)
	{
		$g = ($val & 0xFF) * 4;
	}
	elsif ($val < 0x300)
	{
		$b = ($val & 0xFF) * 4;
	}
	elsif ($val < 0x400)
	{
		$r = ($val & 0xFF) * 4;
	}

	$x = sprintf "%03xR%03xG%03xB", $r, $g, $b;
	syswrite STDOUT, $x;

	warn "wrap\n" if $val == 0;
}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.