summaryrefslogtreecommitdiff
path: root/libqcdm
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2010-08-16 12:12:41 -0500
committerDan Williams <dcbw@redhat.com>2010-08-16 12:20:49 -0500
commit48b8826cbd31ae5103b6ccfa194061650de368b8 (patch)
tree987962eda02fde2dc5b818e163a3036ca13a24b4 /libqcdm
parent5388cf396e768e7c7d1b57f2c4fe67dc448d536f (diff)
downloadModemManager-48b8826cbd31ae5103b6ccfa194061650de368b8.tar.gz
qcdm: add Status Snapshot enum
Diffstat (limited to 'libqcdm')
-rw-r--r--libqcdm/src/commands.c8
-rw-r--r--libqcdm/src/commands.h26
-rw-r--r--libqcdm/src/dm-commands.h22
-rw-r--r--libqcdm/tests/test-qcdm-com.c52
4 files changed, 108 insertions, 0 deletions
diff --git a/libqcdm/src/commands.c b/libqcdm/src/commands.c
index b701f1474..d6504e616 100644
--- a/libqcdm/src/commands.c
+++ b/libqcdm/src/commands.c
@@ -452,6 +452,13 @@ qcdm_cmd_status_snapshot_new (char *buf, gsize len, GError **error)
return dm_encapsulate_buffer (cmdbuf, sizeof (*cmd), sizeof (cmdbuf), buf, len);
}
+static guint8
+snapshot_state_to_qcdm (guint8 cdma_state)
+{
+ /* CDMA_STATUS_SNAPSHOT_STATE_* -> QCDM_STATUS_SNAPSHOT_STATE_* */
+ return cdma_state + 1;
+}
+
QCDMResult *
qcdm_cmd_status_snapshot_result (const char *buf, gsize len, GError **error)
{
@@ -469,6 +476,7 @@ qcdm_cmd_status_snapshot_result (const char *buf, gsize len, GError **error)
qcdm_result_add_uint8 (result, QCDM_CMD_STATUS_SNAPSHOT_ITEM_BASE_STATION_PREV, cdma_prev_to_qcdm (rsp->prev));
qcdm_result_add_uint8 (result, QCDM_CMD_STATUS_SNAPSHOT_ITEM_MOBILE_PREV, cdma_prev_to_qcdm (rsp->mob_prev));
qcdm_result_add_uint8 (result, QCDM_CMD_STATUS_SNAPSHOT_ITEM_PREV_IN_USE, cdma_prev_to_qcdm (rsp->prev_in_use));
+ qcdm_result_add_uint8 (result, QCDM_CMD_STATUS_SNAPSHOT_ITEM_STATE, snapshot_state_to_qcdm (rsp->state & 0xF));
return result;
}
diff --git a/libqcdm/src/commands.h b/libqcdm/src/commands.h
index 2577a797d..32402909c 100644
--- a/libqcdm/src/commands.h
+++ b/libqcdm/src/commands.h
@@ -160,6 +160,32 @@ QCDMResult *qcdm_cmd_sw_version_result (const char *buf,
/* The protocol revision currently in-use. One of QCDM_CDMA_PREV_* */
#define QCDM_CMD_STATUS_SNAPSHOT_ITEM_PREV_IN_USE "prev-in-use"
+enum {
+ QCDM_CMD_STATUS_SNAPSHOT_STATE_UNKNOWN = 0x00,
+ QCDM_CMD_STATUS_SNAPSHOT_STATE_NO_SERVICE = 0x01,
+ QCDM_CMD_STATUS_SNAPSHOT_STATE_INITIALIZATION = 0x02,
+ QCDM_CMD_STATUS_SNAPSHOT_STATE_IDLE = 0x03,
+ QCDM_CMD_STATUS_SNAPSHOT_STATE_VOICE_CHANNEL_INIT = 0x04,
+ QCDM_CMD_STATUS_SNAPSHOT_STATE_WAITING_FOR_ORDER = 0x05,
+ QCDM_CMD_STATUS_SNAPSHOT_STATE_WAITING_FOR_ANSWER = 0x06,
+ QCDM_CMD_STATUS_SNAPSHOT_STATE_CONVERSATION = 0x07,
+ QCDM_CMD_STATUS_SNAPSHOT_STATE_RELEASE = 0x08,
+ QCDM_CMD_STATUS_SNAPSHOT_STATE_SYSTEM_ACCESS = 0x09,
+ QCDM_CMD_STATUS_SNAPSHOT_STATE_OFFLINE_CDMA = 0x11,
+ QCDM_CMD_STATUS_SNAPSHOT_STATE_OFFLINE_HDR = 0x12,
+ QCDM_CMD_STATUS_SNAPSHOT_STATE_OFFLINE_ANALOG = 0x13,
+ QCDM_CMD_STATUS_SNAPSHOT_STATE_RESET = 0x14,
+ QCDM_CMD_STATUS_SNAPSHOT_STATE_POWER_DOWN = 0x15,
+ QCDM_CMD_STATUS_SNAPSHOT_STATE_POWER_SAVE = 0x16,
+ QCDM_CMD_STATUS_SNAPSHOT_STATE_POWER_UP = 0x17,
+ QCDM_CMD_STATUS_SNAPSHOT_STATE_LOW_POWER_MODE = 0x18,
+ QCDM_CMD_STATUS_SNAPSHOT_STATE_SEARCHER_DSMM = 0x19, /* Dedicated System Measurement Mode */
+ QCDM_CMD_STATUS_SNAPSHOT_STATE_HDR = 0x41,
+};
+
+/* The protocol revision currently in-use. One of QCDM_STATUS_SNAPSHOT_STATE_* */
+#define QCDM_CMD_STATUS_SNAPSHOT_ITEM_STATE "state"
+
gsize qcdm_cmd_status_snapshot_new (char *buf,
gsize len,
GError **error);
diff --git a/libqcdm/src/dm-commands.h b/libqcdm/src/dm-commands.h
index 01e2ad23b..30cf33db7 100644
--- a/libqcdm/src/dm-commands.h
+++ b/libqcdm/src/dm-commands.h
@@ -180,6 +180,28 @@ enum {
CDMA_BAND_CLASS_12_PAMR_800 = 12
};
+enum {
+ CDMA_STATUS_SNAPSHOT_STATE_NO_SERVICE = 0x00,
+ CDMA_STATUS_SNAPSHOT_STATE_INITIALIZATION = 0x01,
+ CDMA_STATUS_SNAPSHOT_STATE_IDLE = 0x02,
+ CDMA_STATUS_SNAPSHOT_STATE_VOICE_CHANNEL_INIT = 0x03,
+ CDMA_STATUS_SNAPSHOT_STATE_WAITING_FOR_ORDER = 0x04,
+ CDMA_STATUS_SNAPSHOT_STATE_WAITING_FOR_ANSWER = 0x05,
+ CDMA_STATUS_SNAPSHOT_STATE_CONVERSATION = 0x06,
+ CDMA_STATUS_SNAPSHOT_STATE_RELEASE = 0x07,
+ CDMA_STATUS_SNAPSHOT_STATE_SYSTEM_ACCESS = 0x08,
+ CDMA_STATUS_SNAPSHOT_STATE_OFFLINE_CDMA = 0x10,
+ CDMA_STATUS_SNAPSHOT_STATE_OFFLINE_HDR = 0x11,
+ CDMA_STATUS_SNAPSHOT_STATE_OFFLINE_ANALOG = 0x12,
+ CDMA_STATUS_SNAPSHOT_STATE_RESET = 0x13,
+ CDMA_STATUS_SNAPSHOT_STATE_POWER_DOWN = 0x14,
+ CDMA_STATUS_SNAPSHOT_STATE_POWER_SAVE = 0x15,
+ CDMA_STATUS_SNAPSHOT_STATE_POWER_UP = 0x16,
+ CDMA_STATUS_SNAPSHOT_STATE_LOW_POWER_MODE = 0x17,
+ CDMA_STATUS_SNAPSHOT_STATE_SEARCHER_DSMM = 0x18, /* Dedicated System Measurement Mode */
+ CDMA_STATUS_SNAPSHOT_STATE_HDR = 0x40,
+};
+
/* Generic DM command header */
struct DMCmdHeader {
guint8 code;
diff --git a/libqcdm/tests/test-qcdm-com.c b/libqcdm/tests/test-qcdm-com.c
index bba32ac47..c3b402966 100644
--- a/libqcdm/tests/test-qcdm-com.c
+++ b/libqcdm/tests/test-qcdm-com.c
@@ -107,6 +107,54 @@ hdr_rev_to_string (guint8 hdr_rev)
return "unknown";
}
+static const char *
+status_snapshot_state_to_string (guint8 state)
+{
+ switch (state) {
+ case QCDM_CMD_STATUS_SNAPSHOT_STATE_NO_SERVICE:
+ return "no service";
+ case QCDM_CMD_STATUS_SNAPSHOT_STATE_INITIALIZATION:
+ return "initialization";
+ case QCDM_CMD_STATUS_SNAPSHOT_STATE_IDLE:
+ return "idle";
+ case QCDM_CMD_STATUS_SNAPSHOT_STATE_VOICE_CHANNEL_INIT:
+ return "voice channel init";
+ case QCDM_CMD_STATUS_SNAPSHOT_STATE_WAITING_FOR_ORDER:
+ return "waiting for order";
+ case QCDM_CMD_STATUS_SNAPSHOT_STATE_WAITING_FOR_ANSWER:
+ return "waiting for answer";
+ case QCDM_CMD_STATUS_SNAPSHOT_STATE_CONVERSATION:
+ return "conversation";
+ case QCDM_CMD_STATUS_SNAPSHOT_STATE_RELEASE:
+ return "release";
+ case QCDM_CMD_STATUS_SNAPSHOT_STATE_SYSTEM_ACCESS:
+ return "system access";
+ case QCDM_CMD_STATUS_SNAPSHOT_STATE_OFFLINE_CDMA:
+ return "offline CDMA";
+ case QCDM_CMD_STATUS_SNAPSHOT_STATE_OFFLINE_HDR:
+ return "offline HDR";
+ case QCDM_CMD_STATUS_SNAPSHOT_STATE_OFFLINE_ANALOG:
+ return "offline analog";
+ case QCDM_CMD_STATUS_SNAPSHOT_STATE_RESET:
+ return "reset";
+ case QCDM_CMD_STATUS_SNAPSHOT_STATE_POWER_DOWN:
+ return "power down";
+ case QCDM_CMD_STATUS_SNAPSHOT_STATE_POWER_SAVE:
+ return "power save";
+ case QCDM_CMD_STATUS_SNAPSHOT_STATE_POWER_UP:
+ return "power up";
+ case QCDM_CMD_STATUS_SNAPSHOT_STATE_LOW_POWER_MODE:
+ return "low power mode";
+ case QCDM_CMD_STATUS_SNAPSHOT_STATE_SEARCHER_DSMM:
+ return "searcher DSMM";
+ case QCDM_CMD_STATUS_SNAPSHOT_STATE_HDR:
+ return "HDR";
+ default:
+ break;
+ }
+ return "unknown";
+}
+
/************************************************************/
typedef struct {
@@ -732,6 +780,10 @@ test_com_status_snapshot (void *f, void *data)
qcdm_result_get_uint8 (result, QCDM_CMD_STATUS_SNAPSHOT_ITEM_PREV_IN_USE, &n8);
g_message ("%s: P_REV in-use: %s", __func__, prev_to_string (n8));
+ n8 = 0;
+ qcdm_result_get_uint8 (result, QCDM_CMD_STATUS_SNAPSHOT_ITEM_STATE, &n8);
+ g_message ("%s: State: %d (%s)", __func__, n8, status_snapshot_state_to_string (n8));
+
qcdm_result_unref (result);
}