2026-08-10 21:18:36 +08:00
# ifndef NETWORK_H
# define NETWORK_H
# include "main.h"
# include <stdint.h>
/*===== <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ˣ<EFBFBD> ͨ<EFBFBD> <CDA8> <EFBFBD> <EFBFBD> =====*/
/* 4G <20> <> WiFi <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> У <EFBFBD> <D0A3> <EFBFBD> һ ʱ<D2BB> <CAB1> ֻ<EFBFBD> <D6BB> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> ˼<EFBFBD> <CBBC>
* <EFBFBD> <EFBFBD> <EFBFBD> ߹ <EFBFBD> <EFBFBD> <EFBFBD> Rx_Buf / U2_CopyBuff <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> stm32f1xx_it . c <EFBFBD> <EFBFBD> IDLE <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> */
typedef enum {
NET_BACKEND_4G = 0 , /* Air780E, USART3, ģ<> <C4A3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> MQTT(AT+MPUB) */
NET_BACKEND_WIFI /* ESP-01S, UART4, TCP<50> <CDB8> +<2B> <> <EFBFBD> <EFBFBD> MQTT */
} net_backend_t ;
/*===== <20> <> <EFBFBD> <EFBFBD> ״̬ =====*/
extern volatile uint8_t g_net_mqtt_ready ;
extern volatile uint8_t g_net_first_publish_ok ;
extern volatile uint8_t g_no_sim_detected ;
extern volatile uint8_t g_no_signal_detected ; /* 4G <20> <> <EFBFBD> źű<C5BA> ־<EFBFBD> <D6BE> air780e.c <20> <> AT+CSQ <20> <> <EFBFBD> <EFBFBD> ʧ<EFBFBD> <CAA7> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> */
/*===== <20> ϴγ ɹ<CEB3> <C9B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʽ <EFBFBD> <CABD> EEPROM <20> ־û<D6BE> <C3BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʽ <EFBFBD> 仯ʱдһ <D0B4> Σ<EFBFBD> =====*/
# define NET_MODE_4G 0 /* 4G */
# define NET_MODE_WIFI_FIXED 1 /* WiFi - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ̶<EFBFBD> <CCB6> <EFBFBD> <EFBFBD> ȵ<EFBFBD> */
# define NET_MODE_WIFI_SMART 2 /* WiFi - SmartConfig <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ȵ<EFBFBD> */
uint8_t NET_GetLastMode ( void ) ; /* <20> <> <EFBFBD> <EFBFBD> ǰ<EFBFBD> <C7B0> <EFBFBD> <EFBFBD> <EFBFBD> ķ<EFBFBD> ʽ */
void NET_SaveMode ( uint8_t mode ) ; /* <20> <> ʽ <EFBFBD> 仯ʱд EEPROM<4F> <4D> δ<EFBFBD> 仯<EFBFBD> <E4BBAF> <EFBFBD> ղ<EFBFBD> <D5B2> <EFBFBD> */
/* <20> <> <EFBFBD> 緢<EFBFBD> ͻ<EFBFBD> <CDBB> ⣺<EFBFBD> <E2A3BA> λ<EFBFBD> ڼ<EFBFBD> NET_publish_* ֱ<> Ӷ<EFBFBD> <D3B6> <EFBFBD> <EFBFBD> <EFBFBD> OTA <20> <> <EFBFBD> ص<EFBFBD> AT <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ڼ<EFBFBD> ʹ <EFBFBD> ã<EFBFBD>
* <EFBFBD> <EFBFBD> ֹ ҵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> е <EFBFBD> AT ָ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> USART3 <EFBFBD> Ͻ <EFBFBD> ֯ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ӧ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> У <EFBFBD> */
extern volatile uint8_t g_net_tx_busy ;
2026-08-15 06:40:38 +08:00
/*===== OLED <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʾ <EFBFBD> <CABE> net <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> θ<D7B6> <CEB8> £<EFBFBD> sys_task <20> <> Ļ<EFBFBD> <C4BB> ȡ<EFBFBD> <C8A1> =====*/
typedef enum {
NET_UI_NONE = 0 , /* <20> <EFBFBD> <DEBD> <EFBFBD> /<2F> <> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD> */
NET_UI_4G_RESET , /* 4G ģ<> 鸴λ */
NET_UI_4G_AT , /* AT ָ<> <D6B8> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͨ<EFBFBD> <CDA8> */
NET_UI_4G_SIM , /* SIM <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> */
NET_UI_4G_ATTACH , /* <20> <> <EFBFBD> <EFBFBD> /<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ɹ<EFBFBD> */
NET_UI_4G_MQTT , /* MQTT <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> */
NET_UI_4G_NOSIM , /* <20> <> SIM <20> <> */
NET_UI_WIFI_FIXED , /* WiFi <20> ̶<EFBFBD> <CCB6> ȵ<EFBFBD> <C8B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> У <EFBFBD> countdown <20> <> Ч<EFBFBD> <D0A7> */
NET_UI_WIFI_SMART , /* SmartConfig <20> <> <EFBFBD> <EFBFBD> <EFBFBD> У <EFBFBD> countdown <20> <> Ч<EFBFBD> <D0A7> */
} net_ui_phase_t ;
extern volatile net_ui_phase_t g_net_ui_phase ;
extern volatile int g_net_ui_countdown ; /* WiFi <20> <> <EFBFBD> <EFBFBD> /<2F> <> <EFBFBD> <EFBFBD> ʣ<EFBFBD> <CAA3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> */
2026-08-10 21:18:36 +08:00
/*===== API =====*/
void NET_init ( void ) ;
void NET_process ( void ) ;
void NET_LockInit ( void ) ; /* <20> <> <EFBFBD> <EFBFBD> AT <20> Ự<EFBFBD> <E1BBB0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ǰ<EFBFBD> <C7B0> <EFBFBD> <EFBFBD> һ <EFBFBD> Σ<EFBFBD> */
net_backend_t NET_GetActiveBackend ( void ) ;
2026-08-20 09:20:43 +08:00
int NET_publish_status ( int sw1 , int feeding , int sw2 , int sw3 , int sw4 ,
float weight_kg , float once_wt_kg , float zero_kg ) ; /* <20> <> <EFBFBD> <EFBFBD> 0=<3D> ѷ<EFBFBD> <D1B7> <EFBFBD> */
2026-08-10 21:18:36 +08:00
void NET_publish_response ( const char * cmd_id , int ok , const char * msg ) ;
2026-08-18 16:33:49 +08:00
int NET_publish_power ( int on ) ;
void NET_publish_version ( const char * ver ) ; /* <20> ϱ <EFBFBD> <CFB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 汾<EFBFBD> ַ<EFBFBD> <D6B7> <EFBFBD> (FIRMWARE_VERSION_STR) */ /* <20> <> <EFBFBD> <EFBFBD> 0=<3D> ѷ<EFBFBD> <D1B7> <EFBFBD> <EFBFBD> <EFBFBD> -1=ͨ<> <CDA8> æ<EFBFBD> <C3A6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> */
2026-08-12 14:32:03 +08:00
void NET_publish_energy ( float kwh ) ; /* <20> ϱ <EFBFBD> <CFB1> ۼƵ<DBBC> <C6B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ<EFBFBD> <CAB6> energy<67> <79> <EFBFBD> <EFBFBD> λ kWh */
2026-08-16 19:14:20 +08:00
int NET_mqtt_report ( const char * header , const char * ota_id , int val ) ; /* <20> <> <EFBFBD> <EFBFBD> 0=<3D> ʹ <EFBFBD> */
int NET_ota_confirm ( void ) ; /* 0=ȷ<> <C8B7> ֪ͨ<CDA8> <D6AA> <EFBFBD> ʹ <EFBFBD> 1=<3D> <EFBFBD> <DEB9> <EFBFBD> -1=δ<> ʹ <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ) */
2026-08-10 21:18:36 +08:00
/* <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϣͳһ <CDB3> ַ<EFBFBD> <D6B7> <EFBFBD> <EFBFBD> <EFBFBD> ģ<EFBFBD> <C4A3> <EFBFBD> أ<DEB9> <D8A3> <EFBFBD> idȥ<64> <C8A5> <20> <> iot.prop.set<65> ̵<EFBFBD> <CCB5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> iot.ota<74> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* 4 G <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> г <EFBFBD> + MSUB Ƭ <EFBFBD> κ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ã <EFBFBD> WiFi <EFBFBD> <EFBFBD> <EFBFBD> ˽ <EFBFBD> <EFBFBD> <EFBFBD> MQTT PUBLISH payload <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> á <EFBFBD>
* msg <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> + MSUB URC <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> JSON <EFBFBD> <EFBFBD> <EFBFBD> ڲ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ӵ <EFBFBD> ƥ <EFBFBD> 䡣 */
void net_dispatch_message ( const char * msg ) ;
# endif /* NETWORK_H */