lib/Quancom.pm
changeset 18 a6bc8818d069
parent 17 ecc10b50b7a6
child 19 6acf8ea44e0a
equal deleted inserted replaced
17:ecc10b50b7a6 18:a6bc8818d069
    79     my $self = shift;
    79     my $self = shift;
    80     $self->reset->ok or return $self->{last_result};
    80     $self->reset->ok or return $self->{last_result};
    81     $self->cmd("WB 0007 00");
    81     $self->cmd("WB 0007 00");
    82 }
    82 }
    83 
    83 
       
    84 sub set_timeout {
       
    85     my $self = shift;
       
    86     my $to = shift;
       
    87 
       
    88     # timeout 3 (2.8s)
       
    89     # [__--.-___]
       
    90     #     1 1	    0x18
       
    91     #   1           0x58
       
    92     $to = sprintf "%02x", ($to << 3 | 0x42);
       
    93     $self->cmd("SL 0007 00.00.00.$to");
       
    94 }
       
    95 
       
    96 sub clear_timeout {
       
    97 }
       
    98 
    84 sub TIESCALAR {
    99 sub TIESCALAR {
    85     my $class = shift;
   100     my $class = shift;
    86     my ($ip)  = @_;
   101     my ($ip)  = @_;
    87     my $self  = bless {} => $class;
   102     my $self  = bless {} => $class;
    88     warn "tied to ip $ip\n";
   103     warn "tied to ip $ip\n";
   100 
   115 
   101 sub _tx {
   116 sub _tx {
   102     my $self = shift;
   117     my $self = shift;
   103     my $cmd  = shift;
   118     my $cmd  = shift;
   104 
   119 
   105     $cmd =~ s/[^A-Z\d]//g;
   120     $cmd =~ s/[^A-Z\d]//ig;
   106 
   121 
   107     $self->{job} = ++$self->{job} % 255;    # cap the job id on 255;
   122     $self->{job} = ++$self->{job} % 255;    # cap the job id on 255;
   108     $cmd = $STX . sprintf("%02x", $self->{job}) . $cmd;    # add STX and job id
   123     $cmd = $STX . sprintf("%02x", $self->{job}) . $cmd;    # add STX and job id
   109     $cmd .= sprintf("%02x", unpack("%8C*", $cmd));         # add checksum
   124     $cmd .= sprintf("%02x", unpack("%8C*", $cmd));         # add checksum
   110 
   125