builat has asked for the wisdom of the Perl Monks concerning the following question:
use strict; use utf8; use warnings; use Mojo::JSON qw|from_json|; use bytes; use MBclient; sub new{ .... }; sub _device_read{ # $d as data # $mbc as ModBusControl # $r as response my ( $d, $mbc, $r )=( shift, MBclient->new(), undef ); # parse device config $d->{regs}=from_json( $d->{regs} ); # setup device attributes $mbc->host ( $d->{ip} ); $mbc->port ( $d->{port} ); $mbc->unit_id ( 0 ); # by default. # for all specified registers foreach my $reg ( keys %{$d->{regs}->{r}} ){ $r->{$reg}=_prittyfy_byte( # read data from device registers $mbc->read_input_registers( # converting text register address to hex hex( $reg ), # specify number of registers to read $d->{regs}->{r}->{$reg} ) ); } return( $r ); }; # converts from hex data to deximal # recieve output from modbus sensors sub _prettify_byte{ # okay state of deal return( sprintf( '%.2f', unpack('f',pack( 's2', @{ $_[0] }[1,0] ) ) ) ) if( $_[0] ); #return error message return( $c{_err_} ); };
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Way to make this code better.
by shmem (Chancellor) on Aug 15, 2015 at 12:52 UTC | |
by builat (Monk) on Aug 15, 2015 at 13:03 UTC | |
Re: Way to make this code better.
by stevieb (Canon) on Aug 15, 2015 at 13:29 UTC | |
by builat (Monk) on Aug 15, 2015 at 13:46 UTC | |
by QM (Parson) on Aug 17, 2015 at 09:23 UTC | |
Re: Way to make this code better.
by Monk::Thomas (Friar) on Aug 17, 2015 at 11:26 UTC |