+ uint32_t bit_size = sig->get_bit_size();
+ uint32_t bit_position = sig->get_bit_position();
+ int new_start_byte = 0;
+ int new_end_byte = 0;
+ uint8_t new_start_bit = 0;
+ uint8_t new_end_bit = 0;
+
+ converter_t::signal_to_bits_bytes(bit_position, bit_size, new_start_byte, new_end_byte, new_start_bit, new_end_bit);
+
+ int len_signal_bytes_tmp = new_end_byte - new_start_byte + 1;
+
+ uint8_t len_signal_bytes = 0;
+ if(len_signal_bytes_tmp > 255)
+ {
+ AFB_ERROR("Error signal %s too long", sig->get_name().c_str());
+ }
+ else
+ {
+ len_signal_bytes = (uint8_t) len_signal_bytes_tmp;
+ }
+/*
+ if(new_start_bit > 255)
+ {
+ AFB_ERROR("Error signal %s too long", sig->get_name().c_str());
+ }
+*/
+ uint8_t new_bit_size = 0;
+ if(bit_size > 255)
+ {
+ AFB_ERROR("Error signal %s to long bit size", sig->get_name().c_str());
+ }
+ else
+ {
+ new_bit_size = (uint8_t) bit_size;
+ }
+
+ uint8_t data_signal[len_signal_bytes] = {0};
+ float factor_v = 1;
+ if(factor)
+ {
+ factor_v = sig->get_factor();
+ }
+
+ float offset_v = 0;
+ if(factor)
+ {
+ offset_v = sig->get_offset();
+ }
+
+ if(filter)
+ {
+ uint8_t tmp = 0;
+ int j=0;
+ for(int i=0;i<new_bit_size;i++)
+ {
+ int mask = 0x80 >> ((i%8)+new_start_bit);