V1.4-Chinese:新增 PRODUCT_WITH_GPS 宏,=0 时完全关闭 GPS 获取与上报

This commit is contained in:
helei 2026-08-09 10:33:28 +08:00
parent 75ca8c628d
commit 0c2d2cdd23
4 changed files with 18 additions and 1 deletions

View File

@ -60,8 +60,10 @@ volatile uint8_t g_air780e_first_publish_ok = 0;
static MqttConfig mqtt_cfg;
#if PRODUCT_WITH_GPS
/* GNSS 能力标志cat_connect_network 里 AT+CGNSPWR 成功才置 1Air780EG 才有) */
static uint8_t s_gnss_present = 0;
#endif
/*==== 外部 Flash 校验:读取固件头 8 字节判断合法性 ====
* staticWiFi 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=1,1", "OK", 3, 150) != 0) return -1;
#if PRODUCT_WITH_GPS
/* GNSS 上电 + 辅助定位Air780EG 内置北斗/GPS需 PDP 激活后才能开辅助定位)。
* GNSS Air780E ERROR
* s_gnss_present=0 */
@ -315,6 +318,7 @@ static int cat_connect_network(void) {
s_gnss_present = 1;
log_info("> 4G: GNSS 已开启");
}
#endif
log_info("> 4G: 网络 OK"); return 0;
}
@ -766,6 +770,7 @@ void air780e_init(void) {
}
}
#if PRODUCT_WITH_GPS
/*==== GNSS (北斗/GPS) 定位周期上报:仅 4G 通道(Air780EG 内置GNSS) ====
* air780EG-V1.1GPS数据
* 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}}\"",
MqttInfoStr.ClientID, lon, lat);
}
#endif /* PRODUCT_WITH_GPS */
/*==== Process ====*/
void air780e_process(void){
@ -894,6 +900,8 @@ void air780e_process(void){
U2_CopyFlag = 0;
dispatch_one_mqtt_msg();
}
#if PRODUCT_WITH_GPS
air780e_gps_poll();
#endif
}

View File

@ -68,7 +68,7 @@ void app_init(void)
log_info("> 服务器: %s:%d", MqttInfoStr.ServerIP, MqttInfoStr.ServerPort);
log_info("> 客户端ID: %s", MqttInfoStr.ClientID);
log_info("> 用户名: %s", MqttInfoStr.Username);
log_info("> 固件版本: %u", MqttInfoStr.Ver);
log_info("> 版本序号: %u", MqttInfoStr.Ver);
/* W25Q64 外部 Flash用于 OTA 固件暂存 */
W25Q64_Init();

View File

@ -32,6 +32,13 @@ extern UART_HandleTypeDef huart3;
*/
#define PRODUCT_WITH_FEED_SCALE 0
/*===== GPS 定位配置 =====
* GNSS
* 1 = /GPS 4G Air780EG
* 0 = Air780E GNSS GPS AT
*/
#define PRODUCT_WITH_GPS 1
/*===== MQTT 默认配置 =====*/
////锦鲤塘增氧投料机-02
//#define MQTT_CLIENT_ID "3eb3d1e51846f296"

View File

@ -136,6 +136,8 @@ WiFi 运行15s MQTT PINGREQ 心跳TCP 断开(CLOSED)/心跳超时 → 打
## 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()`)。
### 工作流程