diff --git a/bacnet-stack/demo/handler/h_rpm_a.c b/bacnet-stack/demo/handler/h_rpm_a.c index f565d7d6..b92daaa9 100644 --- a/bacnet-stack/demo/handler/h_rpm_a.c +++ b/bacnet-stack/demo/handler/h_rpm_a.c @@ -50,7 +50,7 @@ static int rpm_ack_decode_service_request( BACNET_READ_ACCESS_DATA * read_access_data) { int decoded_len = 0; /* return value */ - int error_value = 0; /* decoded error value */ + uint32_t error_value = 0; /* decoded error value */ int len = 0; /* number of bytes returned from decoding */ uint8_t tag_number = 0; /* decoded tag number */ uint32_t len_value = 0; /* decoded length value */ diff --git a/bacnet-stack/include/bacapp.h b/bacnet-stack/include/bacapp.h index 4f9ccc32..008ff0ac 100644 --- a/bacnet-stack/include/bacapp.h +++ b/bacnet-stack/include/bacapp.h @@ -73,7 +73,7 @@ typedef struct BACnet_Application_Data_Value { BACNET_BIT_STRING Bit_String; #endif #if defined (BACAPP_ENUMERATED) - int Enumerated; + uint32_t Enumerated; #endif #if defined (BACAPP_DATE) BACNET_DATE Date; diff --git a/bacnet-stack/include/bacdcode.h b/bacnet-stack/include/bacdcode.h index 2b88e01f..a9aff89f 100644 --- a/bacnet-stack/include/bacdcode.h +++ b/bacnet-stack/include/bacdcode.h @@ -288,21 +288,21 @@ extern "C" { int decode_enumerated( uint8_t * apdu, uint32_t len_value, - int *value); + uint32_t *value); int decode_context_enumerated( uint8_t * apdu, uint8_t tag_value, - int *value); + uint32_t *value); int encode_bacnet_enumerated( uint8_t * apdu, - int value); + uint32_t value); int encode_application_enumerated( uint8_t * apdu, - int value); + uint32_t value); int encode_context_enumerated( uint8_t * apdu, int tag_number, - int value); + uint32_t value); /* from clause 20.2.13 Encoding of a Time Value */ /* and 20.2.1 General Rules for Encoding BACnet Tags */ diff --git a/bacnet-stack/src/apdu.c b/bacnet-stack/src/apdu.c index 9263b50b..2f8b3a5f 100644 --- a/bacnet-stack/src/apdu.c +++ b/bacnet-stack/src/apdu.c @@ -323,8 +323,8 @@ void apdu_handler( uint16_t len = 0; /* counts where we are in PDU */ uint8_t tag_number = 0; uint32_t len_value = 0; - int error_code = 0; - int error_class = 0; + uint32_t error_code = 0; + uint32_t error_class = 0; uint8_t reason = 0; bool server = false; diff --git a/bacnet-stack/src/bacdcode.c b/bacnet-stack/src/bacdcode.c index f32b23b4..84417537 100644 --- a/bacnet-stack/src/bacdcode.c +++ b/bacnet-stack/src/bacdcode.c @@ -1149,7 +1149,7 @@ int encode_application_unsigned( int decode_enumerated( uint8_t * apdu, uint32_t len_value, - int *value) + uint32_t *value) { uint32_t unsigned_value = 0; int len; @@ -1165,7 +1165,7 @@ int decode_enumerated( int decode_context_enumerated( uint8_t * apdu, uint8_t tag_value, - int *value) + uint32_t *value) { int len = 0; uint8_t tag_number; @@ -1186,7 +1186,7 @@ int decode_context_enumerated( /* returns the number of apdu bytes consumed */ int encode_bacnet_enumerated( uint8_t * apdu, - int value) + uint32_t value) { return encode_bacnet_unsigned(apdu, value); } @@ -1196,7 +1196,7 @@ int encode_bacnet_enumerated( /* returns the number of apdu bytes consumed */ int encode_application_enumerated( uint8_t * apdu, - int value) + uint32_t value) { int len = 0; /* return value */ @@ -1213,7 +1213,7 @@ int encode_application_enumerated( int encode_context_enumerated( uint8_t * apdu, int tag_number, - int value) + uint32_t value) { int len = 0; /* return value */ @@ -1782,8 +1782,8 @@ void testBACDCodeEnumerated( { uint8_t array[5] = { 0 }; uint8_t encoded_array[5] = { 0 }; - int value = 1; - int decoded_value = 0; + uint32_t value = 1; + uint32_t decoded_value = 0; int i = 0, apdu_len = 0; int len = 0; uint8_t apdu[MAX_APDU] = { 0 }; @@ -2380,8 +2380,8 @@ void testEnumeratedContextDecodes( int outLen2; /* 32 bit number */ - int32_t in = 0xdeadbeef; - int32_t out; + uint32_t in = 0xdeadbeef; + uint32_t out; outLen2 = decode_context_enumerated(apdu, 9, &out); diff --git a/bacnet-stack/src/bacerror.c b/bacnet-stack/src/bacerror.c index b4c43ac3..0323df66 100644 --- a/bacnet-stack/src/bacerror.c +++ b/bacnet-stack/src/bacerror.c @@ -70,7 +70,7 @@ int bacerror_decode_error_class_and_code( int len = 0; uint8_t tag_number = 0; uint32_t len_value_type = 0; - int decoded_value = 0; + uint32_t decoded_value = 0; if (apdu_len) { /* error class */ diff --git a/bacnet-stack/src/cov.c b/bacnet-stack/src/cov.c index 9591d89f..4f6dbaac 100644 --- a/bacnet-stack/src/cov.c +++ b/bacnet-stack/src/cov.c @@ -175,7 +175,7 @@ int cov_notify_decode_service_request( uint32_t len_value = 0; uint32_t decoded_value = 0; /* for decoding */ uint16_t decoded_type = 0; /* for decoding */ - int property = 0; /* for decoding */ + uint32_t property = 0; /* for decoding */ BACNET_PROPERTY_VALUE *value = NULL; /* value in list */ if (apdu_len && data) { @@ -520,7 +520,7 @@ int cov_subscribe_property_decode_service_request( uint32_t len_value = 0; uint32_t decoded_value = 0; /* for decoding */ uint16_t decoded_type = 0; /* for decoding */ - int property = 0; /* for decoding */ + uint32_t property = 0; /* for decoding */ if (apdu_len && data) { /* tag 0 - subscriberProcessIdentifier */ diff --git a/bacnet-stack/src/dcc.c b/bacnet-stack/src/dcc.c index 249f50ef..4034c5d4 100644 --- a/bacnet-stack/src/dcc.c +++ b/bacnet-stack/src/dcc.c @@ -171,7 +171,6 @@ int dcc_decode_service_request( unsigned len = 0; uint8_t tag_number = 0; uint32_t len_value_type = 0; - int value = 0; uint32_t value32 = 0; /* check for value pointers */ @@ -192,9 +191,9 @@ int dcc_decode_service_request( len += decode_tag_number_and_value(&apdu[len], &tag_number, &len_value_type); - len += decode_enumerated(&apdu[len], len_value_type, &value); + len += decode_enumerated(&apdu[len], len_value_type, &value32); if (enable_disable) - *enable_disable = (BACNET_COMMUNICATION_ENABLE_DISABLE) value; + *enable_disable = (BACNET_COMMUNICATION_ENABLE_DISABLE) value32; /* Tag 2: password --optional-- */ if (len < apdu_len) { if (!decode_is_context_tag(&apdu[len], 2)) diff --git a/bacnet-stack/src/iam.c b/bacnet-stack/src/iam.c index 20fe4ddb..e758a30e 100755 --- a/bacnet-stack/src/iam.c +++ b/bacnet-stack/src/iam.c @@ -85,7 +85,6 @@ int iam_decode_service_request( uint8_t tag_number = 0; uint32_t len_value = 0; uint32_t decoded_value = 0; - int decoded_integer = 0; /* OBJECT ID - object id */ len = @@ -115,12 +114,12 @@ int iam_decode_service_request( apdu_len += len; if (tag_number != BACNET_APPLICATION_TAG_ENUMERATED) return -1; - len = decode_enumerated(&apdu[apdu_len], len_value, &decoded_integer); + len = decode_enumerated(&apdu[apdu_len], len_value, &decoded_value); apdu_len += len; - if (decoded_integer >= MAX_BACNET_SEGMENTATION) + if (decoded_value >= MAX_BACNET_SEGMENTATION) return -1; if (pSegmentation) - *pSegmentation = decoded_integer; + *pSegmentation = decoded_value; /* Vendor ID - unsigned16 */ len = decode_tag_number_and_value(&apdu[apdu_len], &tag_number, &len_value); diff --git a/bacnet-stack/src/rd.c b/bacnet-stack/src/rd.c index 73c28315..84397862 100644 --- a/bacnet-stack/src/rd.c +++ b/bacnet-stack/src/rd.c @@ -77,7 +77,7 @@ int rd_decode_service_request( unsigned len = 0; uint8_t tag_number = 0; uint32_t len_value_type = 0; - int value = 0; + uint32_t value = 0; /* check for value pointers */ if (apdu_len) { diff --git a/bacnet-stack/src/rp.c b/bacnet-stack/src/rp.c index 53937866..4e2d0cdb 100644 --- a/bacnet-stack/src/rp.c +++ b/bacnet-stack/src/rp.c @@ -82,7 +82,7 @@ int rp_decode_service_request( uint8_t tag_number = 0; uint32_t len_value_type = 0; uint16_t type = 0; /* for decoding */ - int property = 0; /* for decoding */ + uint32_t property = 0; /* for decoding */ uint32_t array_value = 0; /* for decoding */ /* check for value pointers */ @@ -215,7 +215,7 @@ int rp_ack_decode_service_request( int tag_len = 0; /* length of tag decode */ int len = 0; /* total length of decodes */ uint16_t object = 0; /* object type */ - int property = 0; /* for decoding */ + uint32_t property = 0; /* for decoding */ uint32_t array_value = 0; /* for decoding */ /* FIXME: check apdu_len against the len during decode */ @@ -247,9 +247,12 @@ int rp_ack_decode_service_request( len++; /* don't decode the application tag number or its data here */ rpdata->application_data = &apdu[len]; - rpdata->application_data_len = apdu_len - len - 1 /*closing tag */ ; - } else + rpdata->application_data_len = apdu_len - len - 1 /*closing tag */; + /* len includes the data and the closing tag */ + len = apdu_len; + } else { return -1; + } return len; } @@ -328,7 +331,7 @@ void testReadPropertyAck( BACNET_READ_PROPERTY_DATA test_data; BACNET_OBJECT_TYPE object_type = OBJECT_DEVICE; uint32_t object_instance = 0; - int object = 0; + uint32_t object = 0; rpdata.object_type = OBJECT_DEVICE; rpdata.object_instance = 1; diff --git a/bacnet-stack/src/rpm.c b/bacnet-stack/src/rpm.c index e249f15c..9d0f4b09 100644 --- a/bacnet-stack/src/rpm.c +++ b/bacnet-stack/src/rpm.c @@ -237,7 +237,7 @@ int rpm_decode_object_property( unsigned option_len = 0; uint8_t tag_number = 0; uint32_t len_value_type = 0; - int property = 0; /* for decoding */ + uint32_t property = 0; /* for decoding */ uint32_t array_value = 0; /* for decoding */ /* check for valid pointers */ @@ -430,7 +430,7 @@ int rpm_ack_decode_object_property( unsigned tag_len = 0; uint8_t tag_number = 0; uint32_t len_value_type = 0; - int property = 0; /* for decoding */ + uint32_t property = 0; /* for decoding */ uint32_t array_value = 0; /* for decoding */ /* check for valid pointers */ diff --git a/bacnet-stack/src/wp.c b/bacnet-stack/src/wp.c index a61781b3..8a5ab7ff 100644 --- a/bacnet-stack/src/wp.c +++ b/bacnet-stack/src/wp.c @@ -100,7 +100,7 @@ int wp_decode_service_request( uint8_t tag_number = 0; uint32_t len_value_type = 0; uint16_t type = 0; /* for decoding */ - int property = 0; /* for decoding */ + uint32_t property = 0; /* for decoding */ uint32_t unsigned_value = 0; int i = 0; /* loop counter */