mirror of
https://github.com/Dominocs/Project_Cymple.git
synced 2025-09-26 23:49:11 +08:00
update
This commit is contained in:
parent
2cae153413
commit
629af5d0dc
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
c4fff1c05db4174745ad45bc9c522f506c91eed9
|
||||
b5e5a8929eba441379b5f1a349324ee6e743c64d
|
@ -467,7 +467,7 @@
|
||||
]
|
||||
},
|
||||
"defines": [
|
||||
"PLATFORMIO=60113",
|
||||
"PLATFORMIO=60115",
|
||||
"ARDUINO_ESP32_DEV",
|
||||
"BOARD_HAS_PSRAM",
|
||||
"HAVE_CONFIG_H",
|
||||
|
@ -11,7 +11,7 @@ IPAddress peerAddr;
|
||||
bool bHeartbeatTimeout = true;
|
||||
unsigned long heartBeatTimer = 0;
|
||||
uint8_t ucFlag2;
|
||||
|
||||
#define AP_NAME "Cymple_Face"
|
||||
static void onPacketCallBack(AsyncUDPPacket packet){
|
||||
if(!packet.available()){
|
||||
return;
|
||||
@ -46,6 +46,20 @@ static void onPacketCallBack(AsyncUDPPacket packet){
|
||||
Serial.printf("Switch fresh rate: flag2:%d\n", ucFlag2);
|
||||
break;
|
||||
}
|
||||
case MSG_CONFIG_WIFI_E:{
|
||||
if(msgLen != sizeof(MSG_WLAN_WIFI_CONFIG_S)){
|
||||
Serial.printf("Sizeof MSG_WLAN_WIFI_CONFIG_S dismatch: rcv: %u, local %u", msgLen, sizeof(MSG_WLAN_WIFI_CONFIG_S));
|
||||
}else{
|
||||
MSG_WLAN_WIFI_CONFIG_S *tmp = (MSG_WLAN_WIFI_CONFIG_S *)pstMsgHdr;
|
||||
tmp->SSID[SSID_LENGTH - 1] = '\0';
|
||||
tmp->password[WIFI_PASSWORD_LENGTH - 1] = '\0';
|
||||
WiFi.mode(WIFI_STA);
|
||||
WiFi.persistent(false);
|
||||
pwlanMsgObj->tryConCount = 0;
|
||||
pwlanMsgObj->connect(tmp->SSID, tmp->password);
|
||||
}
|
||||
}
|
||||
|
||||
default:
|
||||
Serial.printf("Invalid msg type%u, msg len:%d\n", pstMsgHdr->uiType, msgLen);
|
||||
break;
|
||||
@ -94,11 +108,19 @@ void wlanMsgClass::connect(const char *SSID, const char *password){
|
||||
networkApi::connect(acSSID, acPassword);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void wlanMsgClass::connect(){
|
||||
Serial.printf("Connecting to %s\n", acSSID);
|
||||
networkApi::connect(acSSID, acPassword);
|
||||
}
|
||||
|
||||
void wlanMsgClass::APMode(){
|
||||
WiFi.mode(WIFI_AP);
|
||||
WiFi.persistent(false);
|
||||
WiFi.softAP(AP_NAME);
|
||||
}
|
||||
|
||||
void wlanMsgClass::send(uint8_t *data, size_t len, IPAddress ip, uint16_t port){
|
||||
if(len > CONFIG_TCP_MSS){
|
||||
Serial.printf("wlanMsgClass::send: data too large:%u\n", len);
|
||||
@ -112,6 +134,14 @@ void wlanMsgClass::send(uint8_t *data, size_t len){
|
||||
}
|
||||
|
||||
int wlanMsgClass::runFrame(unsigned long currentT){
|
||||
if(tryConCount > 2){
|
||||
if(3 == tryConCount){
|
||||
Serial.println("Wating to config WIFI");
|
||||
APMode();
|
||||
tryConCount++;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
long long deltaT = (long long)currentT - heartBeatTimer;
|
||||
deltaT = abs(deltaT);
|
||||
if((!bHeartbeatTimeout) && (deltaT > WLAN_HEARTBEAT_TIMEOUT)){
|
||||
@ -120,6 +150,7 @@ int wlanMsgClass::runFrame(unsigned long currentT){
|
||||
if(bHeartbeatTimeout){
|
||||
if(!WiFi.isConnected()){
|
||||
Serial.println("Wlan disconnected");
|
||||
tryConCount++;
|
||||
connect();
|
||||
delay(3000);
|
||||
return 1;
|
||||
|
@ -7,6 +7,8 @@ enum{
|
||||
MSG_IMAGE_E,
|
||||
MSG_POSITION_CFG_E,
|
||||
MSG_REFRESH_RATE_CFT_E,
|
||||
MSG_CONFIG_WIFI_E,
|
||||
MSG_MAX_E,
|
||||
};
|
||||
|
||||
/* 标定参数结构体,发送给tracker */
|
||||
@ -27,20 +29,29 @@ typedef struct{
|
||||
uint8_t ucPosition;
|
||||
}MSG_WLAN_POSIOTN_CONFIG_S;
|
||||
|
||||
typedef struct{
|
||||
TLV_S tlv;
|
||||
char SSID[SSID_LENGTH];
|
||||
char password[WIFI_PASSWORD_LENGTH];
|
||||
}MSG_WLAN_WIFI_CONFIG_S;
|
||||
|
||||
class wlanMsgClass{
|
||||
private:
|
||||
char acSSID[SSID_LENGTH];
|
||||
char acPassword[WIFI_PASSWORD_LENGTH];
|
||||
uint32_t uiTxBufferSize = 0;
|
||||
AsyncUDP udpClient;
|
||||
AsyncUDP udpClient;
|
||||
bool isConnected = false;
|
||||
|
||||
public:
|
||||
uint8_t tryConCount = 0;
|
||||
wlanMsgClass();
|
||||
void connect(const char *SSID, const char *password);
|
||||
void connect();
|
||||
void send(uint8_t *data, size_t len, IPAddress ip, uint16_t port);
|
||||
void send(uint8_t *data, size_t len);
|
||||
int runFrame(unsigned long currentT);
|
||||
void APMode();
|
||||
};
|
||||
|
||||
extern wlanMsgClass *pwlanMsgObj;
|
||||
|
Loading…
Reference in New Issue
Block a user