public static int Encode_Application_Character_String(ref Byte[] apdu, ref BACNET_CHARACTER_STRING character_string, int pos) { int len = 0; int string_len = 0; string_len = (int)character_string.size + 1 /* for encoding */; len += Encode_Tag(ref apdu, (Byte)BACNET_APPLICATION_TAG.BACNET_APPLICATION_TAG_CHARACTER_STRING, false, (UInt32)string_len, pos + len); len += Encode_Character_String(ref apdu, ref character_string, pos + len); return(len); }
public static int Encode_Character_String(ref Byte[] apdu, ref BACNET_CHARACTER_STRING char_string, int pos) { UInt32 apdu_len = 1 /*encoding */; UInt32 i; apdu_len += char_string.size; apdu[pos + 0] = char_string.encoding; for (i = 0; i < char_string.size; i++) { apdu[pos + 1 + i] = (Byte)char_string.value[i]; } return((int)apdu_len); }
public static int Decode_Context_Character_String(ref Byte[] apdu, Byte tag_number, ref BACNET_CHARACTER_STRING char_string, int pos) { int len = 0; /* return value */ bool status = false; UInt32 len_value = 0; len += Decode_Tag_number_and_Value(ref apdu, ref tag_number, ref len_value, pos + len); char_string.init(ref apdu, apdu[pos + len], len_value, len + pos + 1); return(len); }
public static int Encode_Context_Character_String(ref Byte[] apdu, Byte tag_number, ref BACNET_CHARACTER_STRING char_string, int pos) { int len = 0; int string_len = 0; string_len = (int)char_string.size + 1; len += Encode_Tag(ref apdu, tag_number, true, (uint)string_len, pos + len); len += Encode_Character_String(ref apdu, ref char_string, pos + len); return(len); }