SRF-08 in Perl

Use the following code to read out the SRF-08 Ultrasonic Range Sensor in Perl:

#!/usr/bin/perl -w

use strict;
use Device::SerialPort;
use bytes;
use Data::Dumper;
use Time::HiRes qw(usleep);
use Term::ANSIColor qw(:constants);
$Term::ANSIColor::AUTORESET = 1;

my $ret;	# result byte (0x00 for NOK, otherwise OK)
my $count = 0;	# byte count for read / write
my $data;	# packed string of bytes

# -----------------------------------------------------------------------------
# Setup serial communications
# -----------------------------------------------------------------------------
#my $port = '/dev/ttyUSB0';
my $port = '/dev/sensor'; # edit serial info in /etc/udev/rules.d/10-local
my $ob;
setCom();
setGain();

# -----------------------------------------------------------------------------
# Main loop
# -----------------------------------------------------------------------------
while(1) {

	ping();

	my $buffer = readI2C();
	my ($hex) = unpack('H*', $buffer);
	#print "raw: $hex\n";

	my ($b0, $b1, $b2, $b3) = unpack('H2' x length($buffer), $buffer);
	#print "result:\nb0: $b0\nb1: $b1\nb2: $b2\nb3: $b3\n";
	my $cm = 0;
	$cm = $b2 << 8;
	$cm = (hex $cm | hex $b3);

	print "dist: $cm\n";

	usleep(100_000);

}

# clean up
undef $ob;

# -----------------------------------------------------------------------------
# Sends a ping (range in cm). Returns 0x01 if success
# -----------------------------------------------------------------------------
sub ping {

	#print "sending ping...";
	$data = "\x55\xE0\x00\x01\x51";
	$count = $ob->write($data);
	#print "$count bytes written\n";
	usleep(100_000);
	($count, $ret) = $ob->read(1); # $ret should be 0x01, ignore for now
	return $ret;

}

# -----------------------------------------------------------------------------
# Reads a raw buffer from port
# -----------------------------------------------------------------------------
sub readI2C {

	#print "reading data...";
	$data = "\x55\xE1\x00\x04";
	$count = $ob->write($data);
	#print "$count bytes written\n";
	usleep(100_000);
	my ($this_count, $buffer) = $ob->read(255);
	return $buffer;

}

# -----------------------------------------------------------------------------
# Set serial parameters
# -----------------------------------------------------------------------------
sub setCom {

	$ob = Device::SerialPort->new($port);
		die "error opening port $port\n" unless ($ob);
	$ob->baudrate(19200)	|| die "fail setting baudrate";
	$ob->parity('none')	|| die "fail setting parity";
	$ob->databits(8)	|| die "fail setting databits";
	$ob->stopbits(2)	|| die "fail setting stopbits";
	$ob->handshake('none')	|| die "fail setting handshake";

}

sub setGain {

	print "set gain...";
	# gain (last byte) can be 00 to 0F. Experiment!
	$data = "\x55\xE0\x01\x01\x00";
	$count = $ob->write($data);
	print "$count bytes written\n";
	usleep(80_000);
	($count, $ret) = $ob->read(1); # $ret should be 0x01, ignore for now
	return $ret;

}

Hotbrick VoIP

doc voor Hotbrick VoIP config, inc ToS/QoS
docje

BB Connect SE P990i

Blackberry Connect voor de sony ericsson P990i. Erg buggy, en werkt alleen met firmware versie R7A001.

Usersguide

BBConnectSEP990i

BBConnectConfigTool

Hard reset Speedtouch modems

Zorg dat je ini bestand met instellingen hebt, van de modem/install CD, of speedtouch site.

factory reset:

- zet modem aan, power lampje brandt oranje, groen, gaat groen knipperen.

- druk op dat moment 1 maal op de knop (voorkant).

- groen lampje gaat weer constant branden, na 6sec ongeveer gaat weer groen knipperen,

- druk op dat moment weer 1 maal op de knop (voorkant)

- alle lampjes lichten nu 1 a 2 sec groen op, en daarna start de modem als vanouds opnieuw op.

Vergeet niet dat je na een factory reset de instellingen weer goed moet zetten voor jouw ISP !!!!!

Hotbrick Poorten blokkeren – MSN

Firewall instellingen voor het blokkeren van poorten voor bijvoorbeeld MSN.

Deze PDF beschrijft hoe je aan de hand van groepen applicaties als MSN en Yahoo messenger kunt blokkeren. Specifiek voor Hotbrick Firewalls.

PDF bestand