V1.4-Chinese:新增 PRODUCT_WITH_GPS 宏,=0 时完全关闭 GPS 获取与上报
This commit is contained in:
parent
75ca8c628d
commit
0c2d2cdd23
|
|
@ -60,8 +60,10 @@ volatile uint8_t g_air780e_first_publish_ok = 0;
|
||||||
|
|
||||||
static MqttConfig mqtt_cfg;
|
static MqttConfig mqtt_cfg;
|
||||||
|
|
||||||
|
#if PRODUCT_WITH_GPS
|
||||||
/* GNSS 能力标志:cat_connect_network 里 AT+CGNSPWR 成功才置 1(Air780EG 才有) */
|
/* GNSS 能力标志:cat_connect_network 里 AT+CGNSPWR 成功才置 1(Air780EG 才有) */
|
||||||
static uint8_t s_gnss_present = 0;
|
static uint8_t s_gnss_present = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
/*==== 外部 Flash 校验:读取固件头 8 字节判断合法性 ====
|
/*==== 外部 Flash 校验:读取固件头 8 字节判断合法性 ====
|
||||||
* 非 static:WiFi OTA(net_wifi_ota.c) 复用 */
|
* 非 static:WiFi OTA(net_wifi_ota.c) 复用 */
|
||||||
|
|
@ -303,6 +305,7 @@ static int cat_connect_network(void) {
|
||||||
if (catSendCmd("AT+SAPBR=3,1,\"APN\",\"\"", "OK", 1, 20) != 0) return -1;
|
if (catSendCmd("AT+SAPBR=3,1,\"APN\",\"\"", "OK", 1, 20) != 0) return -1;
|
||||||
if (catSendCmd("AT+SAPBR=1,1", "OK", 3, 150) != 0) return -1;
|
if (catSendCmd("AT+SAPBR=1,1", "OK", 3, 150) != 0) return -1;
|
||||||
|
|
||||||
|
#if PRODUCT_WITH_GPS
|
||||||
/* GNSS 上电 + 辅助定位(Air780EG 内置北斗/GPS,需 PDP 激活后才能开辅助定位)。
|
/* GNSS 上电 + 辅助定位(Air780EG 内置北斗/GPS,需 PDP 激活后才能开辅助定位)。
|
||||||
* 非 GNSS 版本模组(纯 Air780E)会回 ERROR:仅告警不阻断联网,
|
* 非 GNSS 版本模组(纯 Air780E)会回 ERROR:仅告警不阻断联网,
|
||||||
* 同时置 s_gnss_present=0 关闭后续定位轮询 */
|
* 同时置 s_gnss_present=0 关闭后续定位轮询 */
|
||||||
|
|
@ -315,6 +318,7 @@ static int cat_connect_network(void) {
|
||||||
s_gnss_present = 1;
|
s_gnss_present = 1;
|
||||||
log_info("> 4G: GNSS 已开启");
|
log_info("> 4G: GNSS 已开启");
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
log_info("> 4G: 网络 OK"); return 0;
|
log_info("> 4G: 网络 OK"); return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -766,6 +770,7 @@ void air780e_init(void) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if PRODUCT_WITH_GPS
|
||||||
/*==== GNSS (北斗/GPS) 定位周期上报:仅 4G 通道(Air780EG 内置GNSS) ====
|
/*==== GNSS (北斗/GPS) 定位周期上报:仅 4G 通道(Air780EG 内置GNSS) ====
|
||||||
* 参考工程《air780EG-V1.1加入北斗GPS数据》的实现:
|
* 参考工程《air780EG-V1.1加入北斗GPS数据》的实现:
|
||||||
* AT+CGNSINF → +CGNSINF: run,fix,UTC,lat,lon,...(经纬度为十进制度字符串)
|
* AT+CGNSINF → +CGNSINF: run,fix,UTC,lat,lon,...(经纬度为十进制度字符串)
|
||||||
|
|
@ -886,6 +891,7 @@ static void air780e_gps_poll(void)
|
||||||
CAT1_printf("AT+MPUB=\"/iot/data/up/%s\",0,0,\"{\\22header\\22:\\22iot.prop.post\\22,\\22body\\22:{\\22GPS\\22:\\22%s,%s\\22}}\"",
|
CAT1_printf("AT+MPUB=\"/iot/data/up/%s\",0,0,\"{\\22header\\22:\\22iot.prop.post\\22,\\22body\\22:{\\22GPS\\22:\\22%s,%s\\22}}\"",
|
||||||
MqttInfoStr.ClientID, lon, lat);
|
MqttInfoStr.ClientID, lon, lat);
|
||||||
}
|
}
|
||||||
|
#endif /* PRODUCT_WITH_GPS */
|
||||||
|
|
||||||
/*==== Process ====*/
|
/*==== Process ====*/
|
||||||
void air780e_process(void){
|
void air780e_process(void){
|
||||||
|
|
@ -894,6 +900,8 @@ void air780e_process(void){
|
||||||
U2_CopyFlag = 0;
|
U2_CopyFlag = 0;
|
||||||
dispatch_one_mqtt_msg();
|
dispatch_one_mqtt_msg();
|
||||||
}
|
}
|
||||||
|
#if PRODUCT_WITH_GPS
|
||||||
air780e_gps_poll();
|
air780e_gps_poll();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@ void app_init(void)
|
||||||
log_info("> 服务器: %s:%d", MqttInfoStr.ServerIP, MqttInfoStr.ServerPort);
|
log_info("> 服务器: %s:%d", MqttInfoStr.ServerIP, MqttInfoStr.ServerPort);
|
||||||
log_info("> 客户端ID: %s", MqttInfoStr.ClientID);
|
log_info("> 客户端ID: %s", MqttInfoStr.ClientID);
|
||||||
log_info("> 用户名: %s", MqttInfoStr.Username);
|
log_info("> 用户名: %s", MqttInfoStr.Username);
|
||||||
log_info("> 固件版本: %u", MqttInfoStr.Ver);
|
log_info("> 版本序号: %u", MqttInfoStr.Ver);
|
||||||
|
|
||||||
/* W25Q64 外部 Flash,用于 OTA 固件暂存 */
|
/* W25Q64 外部 Flash,用于 OTA 固件暂存 */
|
||||||
W25Q64_Init();
|
W25Q64_Init();
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,13 @@ extern UART_HandleTypeDef huart3;
|
||||||
*/
|
*/
|
||||||
#define PRODUCT_WITH_FEED_SCALE 0
|
#define PRODUCT_WITH_FEED_SCALE 0
|
||||||
|
|
||||||
|
/*===== GPS 定位配置 =====
|
||||||
|
* 同一套固件适配是否带 GNSS 的模组,编译前在这里二选一:
|
||||||
|
* 1 = 启用北斗/GPS 定位周期上报(仅 4G 通道,需 Air780EG 模组)
|
||||||
|
* 0 = 不获取不上传(纯 Air780E 无 GNSS 时用,不产生任何 GPS 相关 AT 交互)
|
||||||
|
*/
|
||||||
|
#define PRODUCT_WITH_GPS 1
|
||||||
|
|
||||||
/*===== MQTT 默认配置 =====*/
|
/*===== MQTT 默认配置 =====*/
|
||||||
////锦鲤塘增氧投料机-02
|
////锦鲤塘增氧投料机-02
|
||||||
//#define MQTT_CLIENT_ID "3eb3d1e51846f296"
|
//#define MQTT_CLIENT_ID "3eb3d1e51846f296"
|
||||||
|
|
|
||||||
|
|
@ -136,6 +136,8 @@ WiFi 运行:15s MQTT PINGREQ 心跳;TCP 断开(CLOSED)/心跳超时 → 打
|
||||||
|
|
||||||
## GPS 定位上报(仅 4G 通道,Air780EG)
|
## GPS 定位上报(仅 4G 通道,Air780EG)
|
||||||
|
|
||||||
|
**开关**:`Inc/main.h` 的 `#define PRODUCT_WITH_GPS`——`1` 启用定位上报(需 Air780EG 模组);`0` 完全不获取不上报(纯 Air780E 用,不产生任何 GPS 相关 AT 交互,GNSS 初始化/轮询/坐标转换全部编译期剔除)。
|
||||||
|
|
||||||
参考工程《air780EG-V1.1加入北斗GPS数据》移植实现(`air780e.c` 的 `air780e_gps_poll()`)。
|
参考工程《air780EG-V1.1加入北斗GPS数据》移植实现(`air780e.c` 的 `air780e_gps_poll()`)。
|
||||||
|
|
||||||
### 工作流程
|
### 工作流程
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue