qcdm: fix up CDMA Status command fields and values
Found in two sources: a) Руководство пользования тестером CDMA-450 b) RTManager
This commit is contained in:
@@ -288,6 +288,9 @@ qcdm_cmd_cdma_status_result (const char *buf, gsize len, GError **error)
|
|||||||
qcdm_result_add_string (result, QCDM_CMD_CDMA_STATUS_ITEM_ESN, tmp);
|
qcdm_result_add_string (result, QCDM_CMD_CDMA_STATUS_ITEM_ESN, tmp);
|
||||||
g_free (tmp);
|
g_free (tmp);
|
||||||
|
|
||||||
|
tmp_num = (guint32) GUINT16_FROM_LE (rsp->rf_mode);
|
||||||
|
qcdm_result_add_uint32 (result, QCDM_CMD_CDMA_STATUS_ITEM_RF_MODE, tmp_num);
|
||||||
|
|
||||||
tmp_num = (guint32) GUINT16_FROM_LE (rsp->cdma_rx_state);
|
tmp_num = (guint32) GUINT16_FROM_LE (rsp->cdma_rx_state);
|
||||||
qcdm_result_add_uint32 (result, QCDM_CMD_CDMA_STATUS_ITEM_RX_STATE, tmp_num);
|
qcdm_result_add_uint32 (result, QCDM_CMD_CDMA_STATUS_ITEM_RX_STATE, tmp_num);
|
||||||
|
|
||||||
|
@@ -52,16 +52,28 @@ QCDMResult *qcdm_cmd_esn_result (const char *buf,
|
|||||||
|
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
|
|
||||||
|
/* Values for QCDM_CMD_CDMA_STATUS_ITEM_RF_MODE */
|
||||||
|
enum {
|
||||||
|
QCDM_CMD_CDMA_STATUS_RF_MODE_ANALOG = 0,
|
||||||
|
QCDM_CMD_CDMA_STATUS_RF_MODE_CDMA_CELLULAR = 1,
|
||||||
|
QCDM_CMD_CDMA_STATUS_RF_MODE_CDMA_PCS = 2,
|
||||||
|
QCDM_CMD_CDMA_STATUS_RF_MODE_SLEEP = 3,
|
||||||
|
QCDM_CMD_CDMA_STATUS_RF_MODE_GPS = 4,
|
||||||
|
QCDM_CMD_CDMA_STATUS_RF_MODE_HDR = 5,
|
||||||
|
};
|
||||||
|
|
||||||
/* Values for QCDM_CMD_CDMA_STATUS_ITEM_RX_STATE */
|
/* Values for QCDM_CMD_CDMA_STATUS_ITEM_RX_STATE */
|
||||||
enum {
|
enum {
|
||||||
QCDM_CMD_CDMA_STATUS_RX_STATE_NO_SERVICE = 0,
|
QCDM_CMD_CDMA_STATUS_RX_STATE_ENTERING_CDMA = 0,
|
||||||
QCDM_CMD_CDMA_STATUS_RX_STATE_IDLE = 1,
|
QCDM_CMD_CDMA_STATUS_RX_STATE_SYNC_CHANNEL = 1,
|
||||||
QCDM_CMD_CDMA_STATUS_RX_STATE_ACCESS = 2,
|
QCDM_CMD_CDMA_STATUS_RX_STATE_PAGING_CHANNEL = 2,
|
||||||
QCDM_CMD_CDMA_STATUS_RX_STATE_PAGING = 3,
|
QCDM_CMD_CDMA_STATUS_RX_STATE_TRAFFIC_CHANNEL_INIT = 3,
|
||||||
QCDM_CMD_CDMA_STATUS_RX_STATE_TRAFFIC = 4,
|
QCDM_CMD_CDMA_STATUS_RX_STATE_TRAFFIC_CHANNEL = 4,
|
||||||
|
QCDM_CMD_CDMA_STATUS_RX_STATE_EXITING_CDMA = 5,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define QCDM_CMD_CDMA_STATUS_ITEM_ESN "esn"
|
#define QCDM_CMD_CDMA_STATUS_ITEM_ESN "esn"
|
||||||
|
#define QCDM_CMD_CDMA_STATUS_ITEM_RF_MODE "rf-mode"
|
||||||
#define QCDM_CMD_CDMA_STATUS_ITEM_RX_STATE "rx-state"
|
#define QCDM_CMD_CDMA_STATUS_ITEM_RX_STATE "rx-state"
|
||||||
#define QCDM_CMD_CDMA_STATUS_ITEM_ENTRY_REASON "entry-reason"
|
#define QCDM_CMD_CDMA_STATUS_ITEM_ENTRY_REASON "entry-reason"
|
||||||
#define QCDM_CMD_CDMA_STATUS_ITEM_CURRENT_CHANNEL "current-channel"
|
#define QCDM_CMD_CDMA_STATUS_ITEM_CURRENT_CHANNEL "current-channel"
|
||||||
|
@@ -200,18 +200,26 @@ struct DMCmdStatusRsp {
|
|||||||
guint8 code;
|
guint8 code;
|
||||||
guint8 _unknown[3];
|
guint8 _unknown[3];
|
||||||
guint8 esn[4];
|
guint8 esn[4];
|
||||||
guint8 _unknown2[2];
|
guint16 rf_mode;
|
||||||
guint8 _unknown3[8];
|
guint8 min1_analog[4];
|
||||||
guint8 _unknown4[4];
|
guint8 min1_cdma[4];
|
||||||
|
guint8 min2_analog[2];
|
||||||
|
guint8 min2_cdma[2];
|
||||||
|
guint8 _unknown1;
|
||||||
guint16 cdma_rx_state;
|
guint16 cdma_rx_state;
|
||||||
|
guint8 good_frames;
|
||||||
|
guint16 analog_corrected_frames;
|
||||||
|
guint16 analog_bad_frames;
|
||||||
|
guint16 analog_word_syncs;
|
||||||
guint16 entry_reason;
|
guint16 entry_reason;
|
||||||
guint8 _unknown5[8];
|
|
||||||
guint16 curr_chan;
|
guint16 curr_chan;
|
||||||
guint8 cdma_code_chan;
|
guint8 cdma_code_chan;
|
||||||
guint16 pilot_base;
|
guint16 pilot_base;
|
||||||
guint16 sid;
|
guint16 sid;
|
||||||
guint16 nid;
|
guint16 nid;
|
||||||
guint8 _unknown6[5];
|
guint16 analog_locaid;
|
||||||
|
guint16 analog_rssi;
|
||||||
|
guint8 analog_power;
|
||||||
} __attribute__ ((packed));
|
} __attribute__ ((packed));
|
||||||
typedef struct DMCmdStatusRsp DMCmdStatusRsp;
|
typedef struct DMCmdStatusRsp DMCmdStatusRsp;
|
||||||
|
|
||||||
|
@@ -443,7 +443,7 @@ test_com_status (void *f, void *data)
|
|||||||
gboolean success;
|
gboolean success;
|
||||||
GError *error = NULL;
|
GError *error = NULL;
|
||||||
char buf[100];
|
char buf[100];
|
||||||
const char *str;
|
const char *str, *detail;
|
||||||
gint len;
|
gint len;
|
||||||
QCDMResult *result;
|
QCDMResult *result;
|
||||||
gsize reply_len;
|
gsize reply_len;
|
||||||
@@ -471,8 +471,60 @@ test_com_status (void *f, void *data)
|
|||||||
g_message ("%s: ESN: %s", __func__, str);
|
g_message ("%s: ESN: %s", __func__, str);
|
||||||
|
|
||||||
n32 = 0;
|
n32 = 0;
|
||||||
|
detail = NULL;
|
||||||
|
qcdm_result_get_uint32 (result, QCDM_CMD_CDMA_STATUS_ITEM_RF_MODE, &n32);
|
||||||
|
switch (n32) {
|
||||||
|
case QCDM_CMD_CDMA_STATUS_RF_MODE_ANALOG:
|
||||||
|
detail = "analog";
|
||||||
|
break;
|
||||||
|
case QCDM_CMD_CDMA_STATUS_RF_MODE_CDMA_CELLULAR:
|
||||||
|
detail = "CDMA cellular";
|
||||||
|
break;
|
||||||
|
case QCDM_CMD_CDMA_STATUS_RF_MODE_CDMA_PCS:
|
||||||
|
detail = "CDMA PCS";
|
||||||
|
break;
|
||||||
|
case QCDM_CMD_CDMA_STATUS_RF_MODE_SLEEP:
|
||||||
|
detail = "sleep";
|
||||||
|
break;
|
||||||
|
case QCDM_CMD_CDMA_STATUS_RF_MODE_GPS:
|
||||||
|
detail = "GPS";
|
||||||
|
break;
|
||||||
|
case QCDM_CMD_CDMA_STATUS_RF_MODE_HDR:
|
||||||
|
detail = "HDR";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
detail = "unknown";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
g_message ("%s: CDMA RF Mode: %u (%s)", __func__, n32, detail);
|
||||||
|
|
||||||
|
n32 = 0;
|
||||||
|
detail = NULL;
|
||||||
qcdm_result_get_uint32 (result, QCDM_CMD_CDMA_STATUS_ITEM_RX_STATE, &n32);
|
qcdm_result_get_uint32 (result, QCDM_CMD_CDMA_STATUS_ITEM_RX_STATE, &n32);
|
||||||
g_message ("%s: CDMA RX State: %u", __func__, n32);
|
switch (n32) {
|
||||||
|
case QCDM_CMD_CDMA_STATUS_RX_STATE_ENTERING_CDMA:
|
||||||
|
detail = "entering CDMA";
|
||||||
|
break;
|
||||||
|
case QCDM_CMD_CDMA_STATUS_RX_STATE_SYNC_CHANNEL:
|
||||||
|
detail = "sync channel";
|
||||||
|
break;
|
||||||
|
case QCDM_CMD_CDMA_STATUS_RX_STATE_PAGING_CHANNEL:
|
||||||
|
detail = "paging channel";
|
||||||
|
break;
|
||||||
|
case QCDM_CMD_CDMA_STATUS_RX_STATE_TRAFFIC_CHANNEL_INIT:
|
||||||
|
detail = "traffic channel init";
|
||||||
|
break;
|
||||||
|
case QCDM_CMD_CDMA_STATUS_RX_STATE_TRAFFIC_CHANNEL:
|
||||||
|
detail = "traffic channel";
|
||||||
|
break;
|
||||||
|
case QCDM_CMD_CDMA_STATUS_RX_STATE_EXITING_CDMA:
|
||||||
|
detail = "exiting CDMA";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
detail = "unknown";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
g_message ("%s: CDMA RX State: %u (%s)", __func__, n32, detail);
|
||||||
|
|
||||||
n32 = 0;
|
n32 = 0;
|
||||||
qcdm_result_get_uint32 (result, QCDM_CMD_CDMA_STATUS_ITEM_ENTRY_REASON, &n32);
|
qcdm_result_get_uint32 (result, QCDM_CMD_CDMA_STATUS_ITEM_ENTRY_REASON, &n32);
|
||||||
|
Reference in New Issue
Block a user