- if ( $cpe_faulty->{$serial} ) {
- warn "## Inform trigger from $ip $serial -- IGNORED\n" if $debug;
- return;
+ foreach ( @params ) {
+ $queue->enqueue( 'GetParameterNames', [ $_, 1 ] );
+ delete $stored->{ParameterInfo}->{ $_ };
+ }
+ $store->set_state( $uid, $stored );
+
+ return ( 'GetParameterNames', [ $first, 1 ] );
+
+ } else {
+
+ my @params = sort
+ grep { ! exists $stored->{Parameter}->{$_} }
+ grep { ! m/\.$/ && ! m/NumberOfEntries/ }
+ keys %{ $stored->{ParameterInfo} }
+ ;
+ if ( @params ) {
+ warn "# GetParameterValues ", dump( @params );
+ my $first = shift @params;
+ while ( @params ) {
+ my @chunk = splice @params, 0, 16; # FIXME 16 seems to be max
+ $queue->enqueue( 'GetParameterValues', [ @chunk ] );
+ }
+
+ return ( 'GetParameterValues', [ $first ] );
+ }