examples: Update using new Generator
[apps/agl-service-can-low-level.git] / examples / tests / application-generated.cpp
index 6abb485..584514d 100644 (file)
@@ -7,7 +7,196 @@ application_t::application_t()
        , message_set_{
                {std::make_shared<message_set_t>(message_set_t{0,"AGL Virtual Car",
                        { // beginning message_definition_ vector
-                               {std::make_shared<message_definition_t>(message_definition_t{"ls",0x30,"",0,false,message_format_t::EXTENDED,frequency_clock_t(5.00000f),true,                                  { // beginning signals vector
+                               {std::make_shared<message_definition_t>(message_definition_t{"ls",0x111,"",16,16,true,frequency_clock_t(5.00000f),true,
+                                       { // beginning signals vector
+                                               {std::make_shared<signal_t> (signal_t{
+                                                       "sig1.1",// generic_name
+                                                       0,// bit_position
+                                                       16,// bit_size
+                                                       1.00000f,// factor
+                                                       0.00000f,// offset
+                                                       0,// min_value
+                                                       0,// max_value
+                                                       frequency_clock_t(0.00000f),// frequency
+                                                       true,// send_same
+                                                       false,// force_send_changed
+                                                       {
+                                                       },// states
+                                                       true,// writable
+                                                       nullptr,// decoder
+                                                       nullptr,// encoder
+                                                       false,// received
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
+                                               })},
+                                               {std::make_shared<signal_t> (signal_t{
+                                                       "sig1.2",// generic_name
+                                                       16,// bit_position
+                                                       16,// bit_size
+                                                       1.00000f,// factor
+                                                       0.00000f,// offset
+                                                       0,// min_value
+                                                       0,// max_value
+                                                       frequency_clock_t(0.00000f),// frequency
+                                                       true,// send_same
+                                                       false,// force_send_changed
+                                                       {
+                                                       },// states
+                                                       true,// writable
+                                                       nullptr,// decoder
+                                                       nullptr,// encoder
+                                                       false,// received
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
+                                               })},
+                                               {std::make_shared<signal_t> (signal_t{
+                                                       "sig2.1",// generic_name
+                                                       32,// bit_position
+                                                       16,// bit_size
+                                                       1.00000f,// factor
+                                                       0.00000f,// offset
+                                                       0,// min_value
+                                                       0,// max_value
+                                                       frequency_clock_t(0.00000f),// frequency
+                                                       true,// send_same
+                                                       false,// force_send_changed
+                                                       {
+                                                       },// states
+                                                       true,// writable
+                                                       nullptr,// decoder
+                                                       nullptr,// encoder
+                                                       false,// received
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
+                                               })},
+                                               {std::make_shared<signal_t> (signal_t{
+                                                       "sig2.2",// generic_name
+                                                       48,// bit_position
+                                                       16,// bit_size
+                                                       1.00000f,// factor
+                                                       0.00000f,// offset
+                                                       0,// min_value
+                                                       0,// max_value
+                                                       frequency_clock_t(0.00000f),// frequency
+                                                       true,// send_same
+                                                       false,// force_send_changed
+                                                       {
+                                                       },// states
+                                                       true,// writable
+                                                       nullptr,// decoder
+                                                       nullptr,// encoder
+                                                       false,// received
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
+                                               })},
+                                               {std::make_shared<signal_t> (signal_t{
+                                                       "sig3.1",// generic_name
+                                                       64,// bit_position
+                                                       16,// bit_size
+                                                       1.00000f,// factor
+                                                       0.00000f,// offset
+                                                       0,// min_value
+                                                       0,// max_value
+                                                       frequency_clock_t(0.00000f),// frequency
+                                                       true,// send_same
+                                                       false,// force_send_changed
+                                                       {
+                                                       },// states
+                                                       true,// writable
+                                                       nullptr,// decoder
+                                                       nullptr,// encoder
+                                                       false,// received
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
+                                               })},
+                                               {std::make_shared<signal_t> (signal_t{
+                                                       "sig3.2",// generic_name
+                                                       80,// bit_position
+                                                       16,// bit_size
+                                                       1.00000f,// factor
+                                                       0.00000f,// offset
+                                                       0,// min_value
+                                                       0,// max_value
+                                                       frequency_clock_t(0.00000f),// frequency
+                                                       true,// send_same
+                                                       false,// force_send_changed
+                                                       {
+                                                       },// states
+                                                       true,// writable
+                                                       nullptr,// decoder
+                                                       nullptr,// encoder
+                                                       false,// received
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
+                                               })},
+                                               {std::make_shared<signal_t> (signal_t{
+                                                       "sig4.1",// generic_name
+                                                       96,// bit_position
+                                                       16,// bit_size
+                                                       1.00000f,// factor
+                                                       0.00000f,// offset
+                                                       0,// min_value
+                                                       0,// max_value
+                                                       frequency_clock_t(0.00000f),// frequency
+                                                       true,// send_same
+                                                       false,// force_send_changed
+                                                       {
+                                                       },// states
+                                                       true,// writable
+                                                       nullptr,// decoder
+                                                       nullptr,// encoder
+                                                       false,// received
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
+                                               })},
+                                               {std::make_shared<signal_t> (signal_t{
+                                                       "sig4.2",// generic_name
+                                                       112,// bit_position
+                                                       16,// bit_size
+                                                       1.00000f,// factor
+                                                       0.00000f,// offset
+                                                       0,// min_value
+                                                       0,// max_value
+                                                       frequency_clock_t(0.00000f),// frequency
+                                                       true,// send_same
+                                                       false,// force_send_changed
+                                                       {
+                                                       },// states
+                                                       true,// writable
+                                                       nullptr,// decoder
+                                                       nullptr,// encoder
+                                                       false,// received
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
+                                               })}
+                                       } // end signals vector
+                               })} // end message_definition entry
+,                              {std::make_shared<message_definition_t>(message_definition_t{"ls",0x30,"",8,0,true,frequency_clock_t(5.00000f),true,
+                                       { // beginning signals vector
                                                {std::make_shared<signal_t> (signal_t{
                                                        "hvac.fan.speed",// generic_name
                                                        32,// bit_position
@@ -21,14 +210,15 @@ application_t::application_t()
                                                        false,// force_send_changed
                                                        {
                                                        },// states
-                                                       false,// writable
+                                                       true,// writable
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "hvac.temperature.left",// generic_name
@@ -47,10 +237,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "hvac.temperature.right",// generic_name
@@ -69,10 +260,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "hvac.temperature.average",// generic_name
@@ -91,14 +283,16 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })}
                                        } // end signals vector
                                })} // end message_definition entry
-,                              {std::make_shared<message_definition_t>(message_definition_t{"hs",0x3D9,"",0,true,message_format_t::STANDARD,frequency_clock_t(5.00000f),true,                                  { // beginning signals vector
+,                              {std::make_shared<message_definition_t>(message_definition_t{"hs",0x3D9,"",8,128,true,frequency_clock_t(5.00000f),true,
+                                       { // beginning signals vector
                                                {std::make_shared<signal_t> (signal_t{
                                                        "engine.speed",// generic_name
                                                        16,// bit_position
@@ -112,14 +306,15 @@ application_t::application_t()
                                                        false,// force_send_changed
                                                        {
                                                        },// states
-                                                       false,// writable
+                                                       true,// writable
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "fuel.level.low",// generic_name
@@ -134,14 +329,15 @@ application_t::application_t()
                                                        false,// force_send_changed
                                                        {
                                                        },// states
-                                                       false,// writable
+                                                       true,// writable
                                                        decoder_t::decode_boolean,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "fuel.level",// generic_name
@@ -156,18 +352,20 @@ application_t::application_t()
                                                        false,// force_send_changed
                                                        {
                                                        },// states
-                                                       false,// writable
+                                                       true,// writable
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })}
                                        } // end signals vector
                                })} // end message_definition entry
-,                              {std::make_shared<message_definition_t>(message_definition_t{"hs",0x3E9,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true,                                 { // beginning signals vector
+,                              {std::make_shared<message_definition_t>(message_definition_t{"hs",0x3E9,"",8,0,true,frequency_clock_t(5.00000f),true,
+                                       { // beginning signals vector
                                                {std::make_shared<signal_t> (signal_t{
                                                        "vehicle.average.speed",// generic_name
                                                        0,// bit_position
@@ -185,14 +383,16 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })}
                                        } // end signals vector
                                })} // end message_definition entry
-,                              {std::make_shared<message_definition_t>(message_definition_t{"hs",0x4D1,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true,                                 { // beginning signals vector
+,                              {std::make_shared<message_definition_t>(message_definition_t{"hs",0x4D1,"",8,0,true,frequency_clock_t(5.00000f),true,
+                                       { // beginning signals vector
                                                {std::make_shared<signal_t> (signal_t{
                                                        "engine.oil.temp",// generic_name
                                                        16,// bit_position
@@ -206,14 +406,15 @@ application_t::application_t()
                                                        false,// force_send_changed
                                                        {
                                                        },// states
-                                                       false,// writable
+                                                       true,// writable
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "engine.oil.temp.high",// generic_name
@@ -228,18 +429,20 @@ application_t::application_t()
                                                        false,// force_send_changed
                                                        {
                                                        },// states
-                                                       false,// writable
+                                                       true,// writable
                                                        decoder_t::decode_boolean,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })}
                                        } // end signals vector
                                })} // end message_definition entry
-,                              {std::make_shared<message_definition_t>(message_definition_t{"hs",0x620,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true,                                 { // beginning signals vector
+,                              {std::make_shared<message_definition_t>(message_definition_t{"hs",0x620,"",8,0,true,frequency_clock_t(5.00000f),true,
+                                       { // beginning signals vector
                                                {std::make_shared<signal_t> (signal_t{
                                                        "doors.boot.open",// generic_name
                                                        47,// bit_position
@@ -253,14 +456,15 @@ application_t::application_t()
                                                        false,// force_send_changed
                                                        {
                                                        },// states
-                                                       false,// writable
+                                                       true,// writable
                                                        decoder_t::decode_boolean,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "doors.front_left.open",// generic_name
@@ -275,14 +479,15 @@ application_t::application_t()
                                                        false,// force_send_changed
                                                        {
                                                        },// states
-                                                       false,// writable
+                                                       true,// writable
                                                        decoder_t::decode_boolean,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "doors.front_right.open",// generic_name
@@ -297,14 +502,15 @@ application_t::application_t()
                                                        false,// force_send_changed
                                                        {
                                                        },// states
-                                                       false,// writable
+                                                       true,// writable
                                                        decoder_t::decode_boolean,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "doors.rear_left.open",// generic_name
@@ -319,14 +525,15 @@ application_t::application_t()
                                                        false,// force_send_changed
                                                        {
                                                        },// states
-                                                       false,// writable
+                                                       true,// writable
                                                        decoder_t::decode_boolean,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "doors.rear_right.open",// generic_name
@@ -341,18 +548,20 @@ application_t::application_t()
                                                        false,// force_send_changed
                                                        {
                                                        },// states
-                                                       false,// writable
+                                                       true,// writable
                                                        decoder_t::decode_boolean,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })}
                                        } // end signals vector
                                })} // end message_definition entry
-,                              {std::make_shared<message_definition_t>(message_definition_t{"hs",0x799,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true,                                 { // beginning signals vector
+,                              {std::make_shared<message_definition_t>(message_definition_t{"hs",0x799,"",8,0,true,frequency_clock_t(5.00000f),true,
+                                       { // beginning signals vector
                                                {std::make_shared<signal_t> (signal_t{
                                                        "windows.front_left.open",// generic_name
                                                        43,// bit_position
@@ -366,14 +575,15 @@ application_t::application_t()
                                                        false,// force_send_changed
                                                        {
                                                        },// states
-                                                       false,// writable
+                                                       true,// writable
                                                        decoder_t::decode_boolean,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "windows.front_right.open",// generic_name
@@ -388,14 +598,15 @@ application_t::application_t()
                                                        false,// force_send_changed
                                                        {
                                                        },// states
-                                                       false,// writable
+                                                       true,// writable
                                                        decoder_t::decode_boolean,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "windows.rear_left.open",// generic_name
@@ -410,14 +621,15 @@ application_t::application_t()
                                                        false,// force_send_changed
                                                        {
                                                        },// states
-                                                       false,// writable
+                                                       true,// writable
                                                        decoder_t::decode_boolean,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "windows.rear_right.open",// generic_name
@@ -432,18 +644,20 @@ application_t::application_t()
                                                        false,// force_send_changed
                                                        {
                                                        },// states
-                                                       false,// writable
+                                                       true,// writable
                                                        decoder_t::decode_boolean,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })}
                                        } // end signals vector
                                })} // end message_definition entry
-,                              {std::make_shared<message_definition_t>(message_definition_t{"j1939",61442,"ETC1",8,false,message_format_t::J1939,frequency_clock_t(5.00000f),true,                                     { // beginning signals vector
+,                              {std::make_shared<message_definition_t>(message_definition_t{"j1939",61442,"ETC1",8,4,true,frequency_clock_t(5.00000f),true,
+                                       { // beginning signals vector
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Eng.Momentary.Overspeed.Enable",// generic_name
                                                        32,// bit_position
@@ -462,13 +676,14 @@ application_t::application_t()
                                                                {3,"TakeNoAction"}
                                                        },// states
                                                        true,// writable
-                                                       nullptr,// decoder
+                                                       decoder_t::decode_state,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Momentary.Eng.Max.Power.Enable",// generic_name
@@ -488,13 +703,14 @@ application_t::application_t()
                                                                {0,"notRqingMaxPowerAvailable"}
                                                        },// states
                                                        true,// writable
-                                                       nullptr,// decoder
+                                                       decoder_t::decode_state,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Percent.Clutch.Slip",// generic_name
@@ -513,10 +729,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "%",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "%"// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Progressive.Shift.Disable",// generic_name
@@ -536,13 +753,14 @@ application_t::application_t()
                                                                {3,"TakeNoAction"}
                                                        },// states
                                                        true,// writable
-                                                       nullptr,// decoder
+                                                       decoder_t::decode_state,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Src.Addrss.Of.Ctrllng.Dvc.Fr.Trns.Cntrl",// generic_name
@@ -561,10 +779,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Trans.Driveline.Engaged",// generic_name
@@ -584,13 +803,14 @@ application_t::application_t()
                                                                {3,"NotAvailable"}
                                                        },// states
                                                        true,// writable
-                                                       nullptr,// decoder
+                                                       decoder_t::decode_state,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Trans.Input.Shaft.Speed",// generic_name
@@ -609,10 +829,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "rpm",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "rpm"// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Trans.Output.Shaft.Speed",// generic_name
@@ -631,10 +852,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "rpm",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "rpm"// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Trans.Shift.In.Process",// generic_name
@@ -654,13 +876,14 @@ application_t::application_t()
                                                                {0,"ShiftIsNotInProcess"}
                                                        },// states
                                                        true,// writable
-                                                       nullptr,// decoder
+                                                       decoder_t::decode_state,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Trns.Trq.Cnvrtr.Lckp.Trnstn.In.Prcess",// generic_name
@@ -680,13 +903,14 @@ application_t::application_t()
                                                                {0,"TransitionIsNotInProcess"}
                                                        },// states
                                                        true,// writable
-                                                       nullptr,// decoder
+                                                       decoder_t::decode_state,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Trns.Trque.Converter.Lockup.Engaged",// generic_name
@@ -706,17 +930,19 @@ application_t::application_t()
                                                                {1,"TorqueConverterLockupEngaged"}
                                                        },// states
                                                        true,// writable
-                                                       nullptr,// decoder
+                                                       decoder_t::decode_state,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })}
                                        } // end signals vector
                                })} // end message_definition entry
-,                              {std::make_shared<message_definition_t>(message_definition_t{"j1939",61444,"EEC1",8,false,message_format_t::J1939,frequency_clock_t(5.00000f),true,                                     { // beginning signals vector
+,                              {std::make_shared<message_definition_t>(message_definition_t{"j1939",61444,"EEC1",8,4,true,frequency_clock_t(5.00000f),true,
+                                       { // beginning signals vector
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Actl.Eng.Prcnt.Trque.High.Resolution",// generic_name
                                                        4,// bit_position
@@ -735,13 +961,14 @@ application_t::application_t()
                                                                {8,"1111NotAvailable"}
                                                        },// states
                                                        false,// writable
-                                                       nullptr,// decoder
+                                                       decoder_t::decode_state,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "%",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "%"// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Actual.Eng.Percent.Torque",// generic_name
@@ -760,10 +987,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "%",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "%"// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Drivers.Demand.Eng.Percent.Torque",// generic_name
@@ -782,10 +1010,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "%",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "%"// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Eng.Demand.Percent.Torque",// generic_name
@@ -804,10 +1033,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "%",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "%"// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Eng.Speed",// generic_name
@@ -826,10 +1056,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "rpm",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "rpm"// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Eng.Starter.Mode",// generic_name
@@ -858,13 +1089,14 @@ application_t::application_t()
                                                                {8,"strtrInhbtdDueToStarterOvertemp"}
                                                        },// states
                                                        false,// writable
-                                                       nullptr,// decoder
+                                                       decoder_t::decode_state,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Eng.Torque.Mode",// generic_name
@@ -893,13 +1125,14 @@ application_t::application_t()
                                                                {6,"Transmission control"}
                                                        },// states
                                                        false,// writable
-                                                       nullptr,// decoder
+                                                       decoder_t::decode_state,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Src.AddrssOf.Ctrllng.Dvc.Fr.Eng.Cntrl",// generic_name
@@ -918,14 +1151,16 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })}
                                        } // end signals vector
                                })} // end message_definition entry
-,                              {std::make_shared<message_definition_t>(message_definition_t{"j1939",61449,"VDC2",8,false,message_format_t::J1939,frequency_clock_t(5.00000f),true,                                     { // beginning signals vector
+,                              {std::make_shared<message_definition_t>(message_definition_t{"j1939",61449,"VDC2",8,4,true,frequency_clock_t(5.00000f),true,
+                                       { // beginning signals vector
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Lateral.Acceleration",// generic_name
                                                        40,// bit_position
@@ -943,10 +1178,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "m/s/s",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "m/s/s"// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Longitudinal.Acceleration",// generic_name
@@ -965,10 +1201,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "m/s/s",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "m/s/s"// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Steer.Wheel.Angle",// generic_name
@@ -987,10 +1224,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "rad",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "rad"// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Steer.Wheel.Angle.Sensor.Type",// generic_name
@@ -1010,13 +1248,14 @@ application_t::application_t()
                                                                {2,"Reserved"}
                                                        },// states
                                                        false,// writable
-                                                       nullptr,// decoder
+                                                       decoder_t::decode_state,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       ""// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Steer.Wheel.Turn.Counter",// generic_name
@@ -1035,10 +1274,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "turns",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "turns"// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Yaw.Rate",// generic_name
@@ -1057,14 +1297,16 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "rad/s",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "rad/s"// unit
                                                })}
                                        } // end signals vector
                                })} // end message_definition entry
-,                              {std::make_shared<message_definition_t>(message_definition_t{"j1939",65215,"EBC2",8,false,message_format_t::J1939,frequency_clock_t(5.00000f),true,                                     { // beginning signals vector
+,                              {std::make_shared<message_definition_t>(message_definition_t{"j1939",65215,"EBC2",8,4,true,frequency_clock_t(5.00000f),true,
+                                       { // beginning signals vector
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Front.Axle.Speed",// generic_name
                                                        0,// bit_position
@@ -1082,10 +1324,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "km/h",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "km/h"// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Relative.Speed.Front.Axle.Left.Wheel",// generic_name
@@ -1104,10 +1347,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "km/h",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "km/h"// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Relative.Speed.Rear.Axle1.Left.Wheel",// generic_name
@@ -1126,10 +1370,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "km/h",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "km/h"// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Relative.Speed.Rear.Axle2.Left.Wheel",// generic_name
@@ -1148,10 +1393,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "km/h",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "km/h"// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Rlative.Speed.Front.Axle.Right.Wheel",// generic_name
@@ -1170,10 +1416,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "km/h",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "km/h"// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Rlative.Speed.Rear.Axle1.Right.Wheel",// generic_name
@@ -1192,10 +1439,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "km/h",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "km/h"// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Rlative.Speed.Rear.Axle2.Right.Wheel",// generic_name
@@ -1214,14 +1462,16 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "km/h",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "km/h"// unit
                                                })}
                                        } // end signals vector
                                })} // end message_definition entry
-,                              {std::make_shared<message_definition_t>(message_definition_t{"j1939",65253,"HOURS",8,false,message_format_t::J1939,frequency_clock_t(5.00000f),true,                                    { // beginning signals vector
+,                              {std::make_shared<message_definition_t>(message_definition_t{"j1939",65253,"HOURS",8,4,true,frequency_clock_t(5.00000f),true,
+                                       { // beginning signals vector
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Eng.Total.Hours.Of.Operation",// generic_name
                                                        0,// bit_position
@@ -1239,10 +1489,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "hr",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "hr"// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Eng.Total.Revolutions",// generic_name
@@ -1261,14 +1512,16 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "r",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "r"// unit
                                                })}
                                        } // end signals vector
                                })} // end message_definition entry
-,                              {std::make_shared<message_definition_t>(message_definition_t{"j1939",65262,"ET1",8,false,message_format_t::J1939,frequency_clock_t(5.00000f),true,                                      { // beginning signals vector
+,                              {std::make_shared<message_definition_t>(message_definition_t{"j1939",65262,"ET1",8,4,true,frequency_clock_t(5.00000f),true,
+                                       { // beginning signals vector
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Eng.Coolant.Temp",// generic_name
                                                        0,// bit_position
@@ -1286,10 +1539,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "deg C",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "deg C"// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Eng.Fuel.Temp1",// generic_name
@@ -1308,10 +1562,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "deg C",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "deg C"// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Eng.Intercooler.Temp",// generic_name
@@ -1330,10 +1585,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "deg C",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "deg C"// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Eng.Intercooler.Thermostat.Opening",// generic_name
@@ -1352,10 +1608,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "%",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "%"// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Eng.Oil.Temp1",// generic_name
@@ -1374,10 +1631,11 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "deg C",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "deg C"// unit
                                                })},
                                                {std::make_shared<signal_t> (signal_t{
                                                        "Eng.Turbo.Oil.Temp",// generic_name
@@ -1396,13 +1654,15 @@ application_t::application_t()
                                                        nullptr,// decoder
                                                        nullptr,// encoder
                                                        false,// received
-                                                       std::make_pair<bool, int>(false,0),// multiplex
-                                                       0,// is_big_endian
-                                                       0,// is_signed
-                                                       "deg C",// unit
+                                                       std::make_pair<bool, int>(false, 0),// multiplex
+                                                       false,// is_big_endian
+                                                       static_cast<sign_t>(0),// signed
+                                                       -1,// bit_sign_position
+                                                       "deg C"// unit
                                                })}
                                        } // end signals vector
                                })} // end message_definition entry
+
                }, // end message_definition vector
                        { // beginning diagnostic_messages_ vector
                                {std::make_shared<diagnostic_message_t>(diagnostic_message_t{