The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Nabaztag - A module to interface your nabaztag!

VERSION

Version 0.04

ABOUT

Nabaztag.pm complies with nabaztag API V1 from violet company.

The API tied to this module can be downloaded here http://www.nabaztag.com/vl/FR/gfx/1/APIV2.pdf

See api mailing list at http://fr.groups.yahoo.com/group/nabaztag_api/

See help at http://www.nabaztag.com/

DESCRIPTION

This module is designed to allow you to control a nabaztag with perl programming language. See ABOUT section to know which api it fits.

It has been tested with my own nabaztag and seems to work perfectly.

It also provide a simple command line tool to try your nabaztag: nabaztry (see SYNOPSIS). This tool is install in /usr/bin/

It makes great use of LWP::Simple to interact with the rabbit.

PROXY issues:

 If you're behind a proxy, see LWP::Simple proxy issues to know how to deal with that.
 Basically, set env variable HTTP_PROXY to your proxi url in order to make it work.
 For instance : export HTTP_PROXY=http://my.proxy.company:8080/

SYNOPSIS

Commandline:

    $ nabaztry.pl MAC TOKEN POSLEFT POSRIGHT

Perl code:

    use Nabaztag ; # OR
    # use Nabaztag { 'debug' => 1 } ;


    my $nab = Nabaztag->new();

    # MANDATORY
    $nab->mac($mac);
    $nab->token($tok);

    # See new function to have details about how to get these properties.

    $nab->leftEarPos($left);
    $nab->rightEarPos($right);

    $nab->syncState();

    $nab->sayThis("Demain, il pleuvra des grillons jusqu'a extinction totale de la race humaine.");
    .....

See detailled methods for full possibilities.

Gory details :

You can access or modify BASE_URL by accessing: $Nabaztag::BASE_URL ;

For application id : $Nabaztag::ID_APP ;

FUNCTIONS

new

Returns a new software nabaztag with ears position fetched from the hardware one if the mac and token is given.

It has following properties:

  key : The key given here http://www.nabaztag.com/vl/FR/nabaztaland_api_inscription.jsp to register your service
  mac : MAC Adress of nabaztag - equivalent to Serial Number ( SN ). Written at the back
        of your nabaztag !!
  token :  TOKEN Given by nabaztag.com to allow interaction with you nabaztag. See
           http://www.nabaztag.com/vl/FR/api_prefs.jsp to obtain yours !!
  leftEarPos : position of left ear.
  rightEarPos : position of right ear.
  ttl : how long, in seconds, the message is going to stay on the server, if undefined it will stay until archived.
  speed : choose the speed of speaking in percent - normal is 100, 200 is double speed, 50 is half speed
  pitch : modulate speech frequency in percent - normal is 100

usage: my $nab = Nabaztag->new($mac, $token, $key); print $nab->leftEarPos(); print $nab->rightEarPos();

OR:

    my $nab = Nabaztag->new();
    $nab->mac($mac);
    $nab->token($token);
    $nab->fetchEars();

    print $nab->leftEarPos();
    print $nab->rightEarPos();

language

Get/Sets the language the nabaztag is currently speaking.

Usage: $nab->language('en');

The language has to be in the list ('fr', 'en'). Default is 'fr' ;-)

voice

Get/Sets the voice the nabaztag is using to make the Text To Speech conversion by setting the index of the voices list (zero based)

Usage: $nab->voice(0);

The voice index has to be in the range of the list of voices associated to the currently defined language (French and English have a different set) To retrieve the list of voices is currently able to speak: @voices = $nab->voices();

leftEarPos

Get/Sets the left ear position of the nabaztag.

Usage: $nab->leftEarPos($newPos);

The new position has to be between 0 (vertical ear) and 16 included

rightEarPos

 See leftEarPos. Same but for right.

sendMessageNumber

Given a message number, sends this message to this nabaztag.

To obtain message numbers, go to http://www.nabaztag.com/vl/FR/messages-disco.jsp and choose a message !!

Usage: $nab->sendMessageNumber($num);

syncState

Synchronise the current state of the soft nabaztag with the hardware one. Actually sends the state to the hardware nabaztag.

Usage:

    $nab->syncState();

fetchEars

Fetches the real position of ear from the device and fill the leftEarPos and the rightEarPos properties.

sayThis

Makes the rabbit tell the sentence you give as parameter

Usage:

    $nab->sayThis("Demain, il pleuvra des grillons jusqu'a extinction totale de la race humaine."); # (example)

danceThis

Sends a choregraphy to the rabbit, with the optionnaly given title

Please refer to the APIV1 documentation to know how to compose your choregraphy

Usage: my $chor = '10,0,motor,1,20,0,0,0,led,2,0,238,0,2,led,1,250,0,0,3,led,2,0,0,0' ; my $title = 'example' ; $nab->danceThis($chor, $title);

nabcastMessage

Sends the given message id to the given nabcast id with given title

Please refer to nabaztag website to get these identifiers.

usage: $nab->nabcastMessage($nabcastId, $title, $idMessage);

nabcastText

Sends the given texttosay to the given nabcast id with given title

Please refer to nabaztag website to get these identifiers.

usage: $nab->nabcastText($nabcastId, $title, $texttosay);

_cookUrl

Returns a cooked url ready for sending something usefull

Usage:

    my $url = $this->_cookUrl();

AUTHOR

Jerome Eteve, <jerome@eteve.net> Christophe Gevrey << <gevrey+cpan@pobox.com> >>

BUGS

Please report any bugs or feature requests to bug-nabaztag@rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Nabaztag. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

ACKNOWLEDGEMENTS

COPYRIGHT & LICENSE

Copyright 2005 Jerome Eteve, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.