+ enhance modbus protocol

This commit is contained in:
garnier-quentin 2017-05-16 13:49:42 +02:00
parent dab3bed602
commit f667f8f7de

View File

@ -41,11 +41,11 @@ sub custom_metric_output {
$msg = sprintf("$config_data->{selection}->{$self->{result_values}->{instance}}->{formatting}->{printf_msg}", $msg = sprintf("$config_data->{selection}->{$self->{result_values}->{instance}}->{formatting}->{printf_msg}",
eval "$config_data->{selection}->{$self->{result_values}->{instance}}->{formatting}->{printf_var}"); eval "$config_data->{selection}->{$self->{result_values}->{instance}}->{formatting}->{printf_var}");
}; };
} elsif (defined($config_data->{filters}->{formatting}->{printf_var}) && defined($config_data->{filters}->{formatting}->{printf_msg})) { } elsif (defined($config_data->{formatting}->{printf_var}) && defined($config_data->{formatting}->{printf_msg})) {
eval { eval {
local $SIG{__WARN__} = sub { $message = $_[0]; }; local $SIG{__WARN__} = sub { $message = $_[0]; };
local $SIG{__DIE__} = sub { $message = $_[0]; }; local $SIG{__DIE__} = sub { $message = $_[0]; };
$msg = sprintf("$config_data->{filters}->{formatting}->{printf_msg}", eval "$config_data->{filters}->{formatting}->{printf_var}"); $msg = sprintf("$config_data->{formatting}->{printf_msg}", eval "$config_data->{formatting}->{printf_var}");
}; };
} else { } else {
$msg = sprintf("Metric '%s' value is '%s'", $self->{result_values}->{instance}, $self->{result_values}->{value}); $msg = sprintf("Metric '%s' value is '%s'", $self->{result_values}->{instance}, $self->{result_values}->{value});
@ -135,8 +135,7 @@ sub custom_metric_threshold {
sub set_counters { sub set_counters {
my ($self, %options) = @_; my ($self, %options) = @_;
$self->{maps_counters_type} = [ $self->{maps_counters_type} = [];
];
$self->{maps_counters}->{global} = [ $self->{maps_counters}->{global} = [
{ label => 'global', set => { { label => 'global', set => {
@ -241,9 +240,7 @@ sub manage_selection {
} }
if (defined($config_data->{selection})) { if (defined($config_data->{selection})) {
push @{$self->{maps_counters_type}}, { my $pushed = 0;
name => 'metric', type => 1, message_separator => $config_data->{formatting}->{message_separator}, message_multiple => $config_data->{formatting}->{custom_message_metric},
};
foreach my $id (keys %{$config_data->{selection}}) { foreach my $id (keys %{$config_data->{selection}}) {
next if (!defined($config_data->{selection}->{$id}->{address})); next if (!defined($config_data->{selection}->{$id}->{address}));
my $results = $options{custom}->read_objects(address => $config_data->{selection}->{$id}->{address}, my $results = $options{custom}->read_objects(address => $config_data->{selection}->{$id}->{address},
@ -266,13 +263,20 @@ sub manage_selection {
$self->{metrics}->{$metric_key}->{display} = (defined($config_data->{selection}->{$id}->{display}) && $config_data->{selection}->{$id}->{display}) ? 1 : 0; $self->{metrics}->{$metric_key}->{display} = (defined($config_data->{selection}->{$id}->{display}) && $config_data->{selection}->{$id}->{display}) ? 1 : 0;
$i++; $i++;
$self->{metric}->{$metric_key} = {
display => $self->{metrics}->{$metric_key}->{display_name}, if ($self->{metrics}->{$metric_key}->{display} == 1) {
type => 'unique', $self->{metric}->{$metric_key} = {
unit => $self->{metrics}->{$metric_key}->{unit}, display => $self->{metrics}->{$metric_key}->{display_name},
value => $self->{metrics}->{$metric_key}->{current}, type => 'unique',
min => $self->{metrics}->{$metric_key}->{min}, unit => $self->{metrics}->{$metric_key}->{unit},
max => $self->{metrics}->{$metric_key}->{max} } if ($self->{metrics}->{$metric_key}->{display} == 1); value => $self->{metrics}->{$metric_key}->{current},
min => $self->{metrics}->{$metric_key}->{min},
max => $self->{metrics}->{$metric_key}->{max} };
push @{$self->{maps_counters_type}}, {
name => 'metric', type => 1, message_separator => $config_data->{formatting}->{message_separator}, message_multiple => $config_data->{formatting}->{custom_message_metric},
} if ($pushed == 0);
$pushed = 1;
}
} }
} }
} }