shuichan_old/V1.5/STM32F103_App1/HardWare/NETWORK/network.h

67 lines
3.0 KiB
C
Raw Normal View History

#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;
/*===== 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> */
/*===== 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);
void NET_publish_status(int sw1, int feeding, int sw2, int sw3, int sw4,
float weight_kg, float once_wt_kg, float zero_kg);
void NET_publish_response(const char *cmd_id, int ok, const char *msg);
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> */
void NET_publish_energy(float kwh); /* <20>ϱ<EFBFBD><CFB1>ۼƵ<DBBC><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6> energy<67><79><EFBFBD><EFBFBD>λ kWh */
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>) */
/* <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>
* 4G <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 */