|
|
@@ -31,9 +31,6 @@
|
|
|
#endif
|
|
|
|
|
|
|
|
|
-#define USE_CELL
|
|
|
-//#define GNSS_ENABLE //EC200N-CN, 不支持gnss
|
|
|
-
|
|
|
#define RETRY_TIMES 3
|
|
|
#define BUF_LEN 2000
|
|
|
#define AT_PORT "/dev/ttyUSB1"
|
|
|
@@ -393,11 +390,11 @@ static int rssi_to_dbm(int rssi)
|
|
|
{
|
|
|
int dbm=0;
|
|
|
|
|
|
- if(rssi>=0 && rssi<=31) {
|
|
|
+ if(rssi>=0 && rssi<57) {
|
|
|
dbm = RSSI_DBM_MIN1+rssi*2;
|
|
|
}
|
|
|
- else if(rssi>=100 && rssi<=191) {
|
|
|
- dbm = RSSI_DBM_MIN2+rssi;
|
|
|
+ else if(rssi>=100 && rssi<199) {
|
|
|
+ dbm = RSSI_DBM_MIN2+rssi-100;
|
|
|
}
|
|
|
return dbm;
|
|
|
}
|
|
|
@@ -465,24 +462,24 @@ static void msleep(int ms)
|
|
|
{
|
|
|
usleep(ms*1000);
|
|
|
}
|
|
|
-static void reset_var(CellularManager *pcell)
|
|
|
+static void reset_var( cell_handle_t *h)
|
|
|
{
|
|
|
- //pcell->mode = 0;
|
|
|
- pcell->Link_status = false; // 4G网络连接状态
|
|
|
- pcell->Signal_strength = 0; // 4G信号强度
|
|
|
- sprintf(pcell->Cellular_name, "-");
|
|
|
- sprintf(pcell->Cellular_Num, "-");
|
|
|
- //pcell->Cellular_IMEI[64]="-"; // IMEI号
|
|
|
-
|
|
|
- // pcell->GPS_status = false; // GPS功能启用
|
|
|
- pcell->GPS_latitude = 0.0; // GPS��度
|
|
|
- pcell->GPS_longitude = 0.0; // GPS经度
|
|
|
- pcell->GPS_altitude = 0.0; // GPS海��高度
|
|
|
- pcell->GPS_speed = 0.0; // GPS速度,单位km/h
|
|
|
- pcell->GPS_nsat = 0; // GPS��星数量
|
|
|
- sprintf(pcell->GPS_utc, "-");
|
|
|
-
|
|
|
- //pcell->SMS_status = false; // 短信功能启用
|
|
|
+ h->stat=AT_STAT_UNINIT;
|
|
|
+
|
|
|
+ h->all.stat.dbm = 0;
|
|
|
+ h->all.stat.ber = 0;
|
|
|
+ h->all.stat.nsta = 0;
|
|
|
+ h->all.stat.altitude = 0;
|
|
|
+ sprintf(h->all.stat.latitude, "-");
|
|
|
+ sprintf(h->all.stat.longitude, "-");
|
|
|
+ h->all.stat.utctime = 0;
|
|
|
+ h->all.stat.linked = 0;
|
|
|
+
|
|
|
+ sprintf(h->all.info.apn, "-");
|
|
|
+ sprintf(h->all.info.cnum, "-");
|
|
|
+ sprintf(h->all.info.imsi, "-");
|
|
|
+ sprintf(h->all.info.imei, "-");
|
|
|
+ sprintf(h->all.info.isp, "-");
|
|
|
}
|
|
|
static int port_init(cell_handle_t *h)
|
|
|
{
|
|
|
@@ -856,7 +853,7 @@ static int cell_get_stat(cell_handle_t *h, cell_stat_t *stat)
|
|
|
cell_get_gnss(h, stat);
|
|
|
cell_get_ping(h, stat);
|
|
|
cell_get_time(h, stat);
|
|
|
-
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
static int cell_sock_conn(cell_handle_t *h, int sock, char *host, uint16_t port, sock_conn_t *conn)
|
|
|
@@ -1283,9 +1280,15 @@ static void* cellular_thread(void *arg)
|
|
|
}
|
|
|
|
|
|
if(cnt%5==0) {
|
|
|
+ //cell_get_info(h, &h->all.info);
|
|
|
cell_get_stat(h, &h->all.stat);
|
|
|
}
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ reset_var(h);
|
|
|
+ }
|
|
|
+ UpdateCellularManager(&h->all);
|
|
|
sleep(1);
|
|
|
}
|
|
|
cell_deinit(h);
|
|
|
@@ -1370,7 +1373,20 @@ int cellular_is_connected(void)
|
|
|
return r;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+int UpdateCellularManager( cell_all_t *all)
|
|
|
+{
|
|
|
+ int r = -1;
|
|
|
+ if (all)
|
|
|
+ {
|
|
|
+ __globalDeviceManage._globalDevInfo.cell.Link_status = all->stat.linked;
|
|
|
+ __globalDeviceManage._globalDevInfo.cell.Signal_strength = all->stat.dbm;
|
|
|
+ strcpy( __globalDeviceManage._globalDevInfo.cell.apn , all->info.apn);
|
|
|
+ strcpy( __globalDeviceManage._globalDevInfo.cell.Cellular_name , all->info.isp);
|
|
|
+ strcpy( __globalDeviceManage._globalDevInfo.cell.Cellular_Num , all->info.imei);
|
|
|
+ r=0;
|
|
|
+ }
|
|
|
+ return r;
|
|
|
+}
|
|
|
|
|
|
int cellular_test(void)
|
|
|
{
|