Add encode_bcd_number utility function

This commit is contained in:
Andrzej Zaborowski 2009-08-05 09:08:40 +02:00 committed by Denis Kenzior
parent 965fc09e6a
commit 4c3ae72b36
2 changed files with 12 additions and 0 deletions

View File

@ -110,6 +110,17 @@ static inline int to_semi_oct(char in)
return digit;
}
void encode_bcd_number(const char *number, unsigned char *out)
{
while (number[0] != '\0' && number[1] != '\0') {
*out = to_semi_oct(*number++);
*out++ |= to_semi_oct(*number++) << 4;
}
if (*number)
*out = to_semi_oct(*number) | 0xf0;
}
/* Returns whether the DCS could be parsed successfully, e.g. no reserved
* values were used
*/

View File

@ -401,6 +401,7 @@ static inline unsigned char bit_field(unsigned char oct, int start, int num)
}
void extract_bcd_number(const unsigned char *buf, int len, char *out);
void encode_bcd_number(const char *number, unsigned char *out);
gboolean sms_decode(const unsigned char *pdu, int len, gboolean outgoing,
int tpdu_len, struct sms *out);