added comments.
This commit is contained in:
@@ -81,6 +81,7 @@ struct BACnet_Device_Address {
|
|||||||
};
|
};
|
||||||
typedef struct BACnet_Device_Address BACNET_ADDRESS;
|
typedef struct BACnet_Device_Address BACNET_ADDRESS;
|
||||||
|
|
||||||
|
/* FIXME: move the string types into their own modules with unit testings */
|
||||||
/* bit strings
|
/* bit strings
|
||||||
They could be as large as 256/8=32 octets */
|
They could be as large as 256/8=32 octets */
|
||||||
#define MAX_BITSTRING_BYTES 15
|
#define MAX_BITSTRING_BYTES 15
|
||||||
@@ -90,16 +91,20 @@ typedef struct BACnet_Bit_String
|
|||||||
uint8_t value[MAX_BITSTRING_BYTES];
|
uint8_t value[MAX_BITSTRING_BYTES];
|
||||||
} BACNET_BIT_STRING;
|
} BACNET_BIT_STRING;
|
||||||
|
|
||||||
|
/* FIXME: create some init/add/remove helper functions in a library */
|
||||||
typedef struct BACnet_Character_String
|
typedef struct BACnet_Character_String
|
||||||
{
|
{
|
||||||
size_t length;
|
size_t length;
|
||||||
char value[MAX_APDU];
|
char value[MAX_APDU];
|
||||||
} BACNET_CHARACTER_STRING;
|
} BACNET_CHARACTER_STRING;
|
||||||
|
|
||||||
|
/* FIXME: convert the bacdcode library to use this for APDU buffer
|
||||||
|
to prevent buffer overflows */
|
||||||
|
/* FIXME: create some init/add/remove helper functions in a library */
|
||||||
typedef struct BACnet_Octet_String
|
typedef struct BACnet_Octet_String
|
||||||
{
|
{
|
||||||
size_t length;
|
size_t length;
|
||||||
char value[MAX_APDU];
|
uint8_t value[MAX_APDU];
|
||||||
} BACNET_OCTET_STRING;
|
} BACNET_OCTET_STRING;
|
||||||
|
|
||||||
/* date */
|
/* date */
|
||||||
@@ -120,6 +125,9 @@ typedef struct BACnet_Time
|
|||||||
uint8_t hundredths;
|
uint8_t hundredths;
|
||||||
} BACNET_TIME;
|
} BACNET_TIME;
|
||||||
|
|
||||||
|
/* note: with microprocessors having lots more code space than memory,
|
||||||
|
it might be better to have a packed encoding with a library to
|
||||||
|
easily access the data. */
|
||||||
typedef struct BACnet_Object_Id
|
typedef struct BACnet_Object_Id
|
||||||
{
|
{
|
||||||
uint16_t type;
|
uint16_t type;
|
||||||
|
|||||||
+5
-1
@@ -74,7 +74,9 @@ int wp_encode_apdu(
|
|||||||
return apdu_len;
|
return apdu_len;
|
||||||
}
|
}
|
||||||
|
|
||||||
// decode the service request only
|
/* decode the service request only */
|
||||||
|
/* FIXME: there could be various error messages returned
|
||||||
|
using unique values less than zero */
|
||||||
int wp_decode_service_request(
|
int wp_decode_service_request(
|
||||||
uint8_t *apdu,
|
uint8_t *apdu,
|
||||||
unsigned apdu_len,
|
unsigned apdu_len,
|
||||||
@@ -125,6 +127,8 @@ int wp_decode_service_request(
|
|||||||
&apdu[len],
|
&apdu[len],
|
||||||
apdu_len - len,
|
apdu_len - len,
|
||||||
&data->value);
|
&data->value);
|
||||||
|
/* FIXME: check the return value; abort if no valid data? */
|
||||||
|
/* FIXME: there might be more than one data element in here! */
|
||||||
if (!decode_is_closing_tag_number(&apdu[len], 3))
|
if (!decode_is_closing_tag_number(&apdu[len], 3))
|
||||||
return -1;
|
return -1;
|
||||||
// a tag number of 3 is not extended so only one octet
|
// a tag number of 3 is not extended so only one octet
|
||||||
|
|||||||
Reference in New Issue
Block a user