Device-Firmata

 view release on metacpan or  search on metacpan

examples/example-i2c.pl  view on Meta::CPAN

0);             #control

$device->i2c_read($DS1307,0,7);

while(1) {
	$device->poll();
	select(undef,undef,undef,0.1);
}

sub onI2CMessage {
	my $i2cdata = shift;
		
	my $address = $i2cdata->{address};
	my $register = $i2cdata->{register};
	my $data = $i2cdata->{data};
	
	my @days = ('Sun','Mon','Tue','Wed','Thi','Fri','Sat');

	my $second = shift @$data;
	my $minute = shift @$data;
	my $hour   = shift @$data;
	my $day    = shift @$data;
	my $date   = shift @$data;
	my $month  = shift @$data;
	my $year   = shift @$data;

lib/Device/Firmata/Protocol.pm  view on Meta::CPAN

#      {2-0: slave address MSB in 10-bit mode, not used in 7-bit mode}
# * 4  data 0 (LSB)
# * 5  data 0 (MSB)
# * 6  data 1 (LSB)
# * 7  data 1 (MSB)
# * ...
# * n  END_SYSEX (0xF7)
# */

sub packet_i2c_request {
  my ( $self, $address, $command, @i2cdata ) = @_;
  if (($address & 0x380) > 0) {
    $command |= (0x20 | (($address >> 7) & 0x7));
  }

  if (scalar @i2cdata) {
    my @data;
    push_array_as_two_7bit(\@i2cdata,\@data);
    return $self->packet_sysex_command( I2C_REQUEST,
      $address & 0x7f,
      $command,
      @data,
    );
  } else {
    return $self->packet_sysex_command( I2C_REQUEST,
      $address & 0x7f,
      $command,
    );



( run in 0.474 second using v1.01-cache-2.11-cpan-454fe037f31 )