nRF Connect SDK API 2.8.99
|
uint8_t string_conversion_ascii_to_gsm7bit | ( | const uint8_t * | data, |
uint8_t | data_len, | ||
uint8_t * | out_data, | ||
uint8_t * | out_bytes, | ||
uint8_t * | out_chars, | ||
bool | packing ) |
Convert ASCII characters into GSM 7 bit Default Alphabet character set.
ascii_to_7bit_table conversion table is used. Optionally perform also packing for the resulting 7 bit string. Note that the 7 bit string may be longer than the original due to possible extension table usage. Each extended character needs an escape code in addition to the character code in extension table.
References: 3GPP TS 23.038 chapter 6.2.1: GSM 7 bit Default Alphabet
Input parameters:
[in] | data | Pointer to array of characters to be converted. No null termination. |
[in] | data_len | Number of characters to be converted, max 160. |
[out] | out_data | Pointer to buffer for the converted string. Shall have allocation of 160 bytes, or in case of less than 80 input characters, at least 2*data_len to make sure that buffer overflow will not happen. |
[out] | out_bytes | Pointer to a byte to return number of valid bytes in out_data. May be NULL if not needed. |
[out] | out_chars | Pointer to a byte to return number of 7 bit characters, i.e. septets (including possible escape characters) in out_data. May be NULL if not needed. Same as out_bytes, when packing=false. |
[in] | packing | True if the converted 7bit string has to be packed. |