summaryrefslogtreecommitdiff
path: root/src/pdu_decode.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pdu_decode.c')
-rw-r--r--src/pdu_decode.c34
1 files changed, 16 insertions, 18 deletions
diff --git a/src/pdu_decode.c b/src/pdu_decode.c
index ae235e0..d7def28 100644
--- a/src/pdu_decode.c
+++ b/src/pdu_decode.c
@@ -194,19 +194,27 @@ int pdu_decode_user_data(const char *pdu_str, struct pdu_info *pdu, int *nr_octe
}
+ if (pdu->data_coding.general.alphabet == PDU_ALPHABET_DEFAULT) {
+ log_debug("data coding alphabet is default (7-bit)");
+ } else if (pdu->data_coding.general.alphabet == PDU_ALPHABET_DEFAULT_MULTI) {
+ log_debug("data coding alphabet is default (7-bit) multi-part");
+ } else if (pdu->data_coding.general.alphabet == PDU_ALPHABET_CDMA_DEFAULT) {
+ log_debug("data coding alphabet is CDMA default (7-bit)");
+ } else if (pdu->data_coding.general.alphabet == PDU_ALPHABET_EIGHT) {
+ log_debug("data coding alphabet is eight");
+ } else if (pdu->data_coding.general.alphabet == PDU_ALPHABET_CDMA_EIGHT) {
+ log_debug("data coding alphabet is CDMA eight");
+ } else {
+ log_debug("data coding alphabet 0x%02X not implemented",
+ pdu->data_coding.general.alphabet);
+ return -1;
+ }
+
// -----------------------------------------------------------------------------
// VERIFY DATA LENGTH AND GET NUMBER OF OCTETS (ACTUAL DATA BYTES IN PDU STRING)
// -----------------------------------------------------------------------------
if ((pdu->data_coding.general.alphabet == PDU_ALPHABET_DEFAULT) ||
(pdu->data_coding.general.alphabet == PDU_ALPHABET_DEFAULT_MULTI)) {
- if (pdu->data_coding.general.alphabet == PDU_ALPHABET_DEFAULT_MULTI) {
- //GSM style 7-bit encoding but with UDH multi-part header (LE910-SVG)
- log_debug("data coding alphabet is nine");
- } else {
- //GSM 7-bit encoding
- log_debug("data coding alphabet is default");
- }
-
if (pdu->user_data_len > PDU_UD_7BIT_MAX) {
log_warning("pdu contains invalid user-data-len: 0x%02X",
pdu->user_data_len);
@@ -219,8 +227,6 @@ int pdu_decode_user_data(const char *pdu_str, struct pdu_info *pdu, int *nr_octe
// CDMA 7-BIT ENCODING
} else if (pdu->data_coding.general.alphabet == PDU_ALPHABET_CDMA_DEFAULT) {
- log_debug("data coding alphabet is cdma default");
-
// LE910-SVG stores data length as # of septets
if (!strcmp(Global.core.model, "LE910-SVG")) {
*nr_octets = octets_from_septets(pdu->user_data_len);
@@ -239,8 +245,6 @@ int pdu_decode_user_data(const char *pdu_str, struct pdu_info *pdu, int *nr_octe
// GSM & CDMA 8-BIT ENCODING
} else if ((pdu->data_coding.general.alphabet == PDU_ALPHABET_EIGHT) ||
(pdu->data_coding.general.alphabet == PDU_ALPHABET_CDMA_EIGHT)) {
- log_debug("data coding alphabet is eight");
-
if (pdu->user_data_len > PDU_UD_8BIT_MAX) {
log_warning("pdu contains invalid user-data-len: 0x%02X",
pdu->user_data_len);
@@ -250,12 +254,6 @@ int pdu_decode_user_data(const char *pdu_str, struct pdu_info *pdu, int *nr_octe
//Original data is octets (all 8 bits could contain data)
//Therefore, octets = user_data_len
*nr_octets = pdu->user_data_len;
-
- // UNSUPPORTED
- } else {
- log_debug("data coding alphabet 0x%02X not implemented",
- pdu->data_coding.general.alphabet);
- return -1;
}
STRLEN_CHECK(pdu_str, *nr_octets * 2, -1);