HAL_Project/Project -APP-V1.0/Hardware/CAT/cat.c.orig

369 lines
13 KiB
C
Raw Normal View History

2025-05-09 15:43:42 +08:00
#include "cat.h"
uint32_t current_tick = 0; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><><EFBFBD><EFBFBD>LED<45><44>˸ Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD>
_Bool NetworkingFlag = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ 1<><31><EFBFBD><EFBFBD> 0<><30><EFBFBD><EFBFBD>
char databuff[256]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8_t online_counter = 1; //<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><E8B1B8><EFBFBD>ߵļ<DFB5><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8_t data_counter = 1; //<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><E8B1B8><EFBFBD>ݵļ<DDB5><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void catGpioInit(void) {
GPIO_InitTypeDef GPIO_Initure = {0};
// GPIOA_RCC_ENABLE;
GPIOC_RCC_ENABLE;
GPIO_Initure.Pin= CAT_POW_Pin; //<2F><><EFBFBD>õ<EFBFBD>Դ<EFBFBD><D4B4>
GPIO_Initure.Mode = GPIO_MODE_OUTPUT_PP; //<2F><>©<EFBFBD><C2A9><EFBFBD><EFBFBD>
GPIO_Initure.Pull = GPIO_NOPULL; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GPIO_Initure.Speed = GPIO_SPEED_FREQ_LOW; //<2F><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>)
HAL_GPIO_Init(CAT_POW_GPIO_Port,&GPIO_Initure); //<2F><><EFBFBD><EFBFBD>
// GPIO_Initure.Pin= CAT_RST_Pin; //<2F><><EFBFBD>ø<EFBFBD>λ<EFBFBD><CEBB><><D4A4>)
// GPIO_Initure.Pull = GPIO_NOPULL; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// GPIO_Initure.Mode = GPIO_MODE_OUTPUT_OD; //<2F><>©<EFBFBD><C2A9><EFBFBD><EFBFBD>
// GPIO_Initure.Speed = GPIO_SPEED_FREQ_LOW; //<2F><><EFBFBD><EFBFBD>
// HAL_GPIO_Init(CAT_RST_GPIO_Port,&GPIO_Initure); //<2F><><EFBFBD><EFBFBD>
GPIO_Initure.Pin = CAT_RUN_Pin ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ȡ<EFBFBD><C8A1>
GPIO_Initure.Mode = GPIO_MODE_INPUT; //<2F><><EFBFBD><EFBFBD>ģʽ
GPIO_Initure.Pull = GPIO_PULLUP; //ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GPIO_Initure.Speed = GPIO_SPEED_FREQ_LOW; //<2F><><EFBFBD><EFBFBD>
HAL_GPIO_Init(CAT_RUN_GPIO_Port,&GPIO_Initure); //<2F><><EFBFBD><EFBFBD>
// GPIO_Initure.Pin = CAT_NET_Pin ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>
// GPIO_Initure.Mode = GPIO_MODE_INPUT; //<2F><><EFBFBD><EFBFBD>ģʽ
// GPIO_Initure.Pull = GPIO_PULLUP; //ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// GPIO_Initure.Speed = GPIO_SPEED_FREQ_LOW; //<2F><><EFBFBD><EFBFBD>
// HAL_GPIO_Init(CAT_NET_GPIO_Port,&GPIO_Initure); //<2F><><EFBFBD><EFBFBD>
}
//ģ<><EFBFBD><E9BFAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD> +NITZ: 24/04/13,12:11:59+32,0 ʵ<><CAB5>ʱ<EFBFBD><CAB1> 2024/4/13 20:11:59<35><39>
void catReset(void) {
uint8_t Multiple = 200; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ Ĭ<><C4AC>100ms
uint8_t netstep = 0;
char serverbuff[100] = {0}; //<2F><><EFBFBD>ӣ<EFBFBD>AT+MCONFIG="8c91c2a533b3c573","965669176415378622","ad592e4c3e7117c6",0,0,0,0
char portbuff[50] = {0}; //<2F><><EFBFBD>ӣ<EFBFBD>AT+MIPSTART="58.17.14.95",1880
char topicbuff[50]= {0}; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD>ƽ̨<C6BD>·<EFBFBD><C2B7>Ŀ<EFBFBD><C4BF><EFBFBD>ָ<EFBFBD><D6B8>
sprintf(serverbuff,"AT+MCONFIG=\"%s\",\"%s\",\"%s\",0,0,0,0",MqttInfo_Struct.ClientID,MqttInfo_Struct.Username,MqttInfo_Struct.Passward);
sprintf(portbuff, "AT+MIPSTART=\"%s\",%d",MqttInfo_Struct.ServerIP,MqttInfo_Struct.ServerPort);
sprintf(topicbuff, "AT+MSUB=\"%s%s\",0",MqttInfo_Struct.Topic,MqttInfo_Struct.ClientID);
#if 0
if(POWER_STA==1) { //<2F><><EFBFBD><EFBFBD>PB1<42>Ǹߵ<C7B8>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>ʾĿǰ<C4BF><C7B0><EFBFBD>ڹػ<DAB9>״̬
log_info("Ŀǰ4Gģ<EFBFBD><EFBFBD>ڹػ<EFBFBD>״̬<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
POWER_KEY(1); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
HAL_Delay(1500); //<2F><>ʱ
POWER_KEY(0); //<2F><><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD>
} else { //<2F><>֮PA0<41>ǵ͵<C7B5>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>ʾĿǰ<C4BF><C7B0><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD>״̬
log_info("Ŀǰ4Gģ<EFBFBD><EFBFBD>ڿ<EFBFBD><EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
POWER_KEY(1); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
HAL_Delay(1500); //<2F><>ʱ
POWER_KEY(0); //<2F><><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3>ػ<EFBFBD>
HAL_Delay(3000); //<2F><><EFBFBD><EFBFBD>
POWER_KEY(1); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
HAL_Delay(1500); //<2F><>ʱ
POWER_KEY(0); //<2F><><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
#endif
log_info("׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ");
POWER_KEY(1); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ
HAL_Delay(1000); //<2F><>ʱ
POWER_KEY(0); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
HAL_Delay(3000); //<2F><><EFBFBD><EFBFBD>
HAL_Delay(3000);
HAL_Delay(Multiple);
if(catSendCmd("AT","OK", 8,30)) {
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
NVIC_SystemReset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} else {
netstep += 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
}
HAL_Delay(Multiple);
log_info("<EFBFBD>رջ<EFBFBD><EFBFBD><EFBFBD>"); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
if(catSendCmd("ATE0","OK", 5, 30)) {
log_info("<EFBFBD>رջ<EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
NVIC_SystemReset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} else {
netstep += 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
log_info("<EFBFBD>رջ<EFBFBD><EFBFBD>Գɹ<EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
}
HAL_Delay(Multiple);
log_info("׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD>״̬"); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
if(catSendCmd("AT+CPIN?","READY", 5, 30)) {
log_info("<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD>״̬ʧ<EFBFBD>ܣ<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
NVIC_SystemReset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} else {
netstep += 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
log_info("<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD>״̬<EFBFBD>ɹ<EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
}
HAL_Delay(Multiple);
log_info("׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\r\n"); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
if(catSendCmd("AT+CIPMUX=0","OK", 5, 30)) {
log_info("<EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
NVIC_SystemReset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} else {
netstep += 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
log_info("<EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳɹ<EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
}
HAL_Delay(Multiple);
log_info("׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
if(catSendCmd("AT+CSTT","OK", 5, 30)) {
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
NVIC_SystemReset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} else {
netstep += 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
}
HAL_Delay(Multiple);
log_info("׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
if(catSendCmd("AT+CIICR","OK", 5, 30)) {
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
NVIC_SystemReset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} else {
netstep += 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
}
HAL_Delay(Multiple);
log_info("׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
if(catSendCmd(serverbuff,"OK", 5, 30)) {
log_info("<EFBFBD><EFBFBD><EFBFBD>ӷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
NVIC_SystemReset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} else {
netstep += 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
log_info("<EFBFBD><EFBFBD><EFBFBD>ӷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
}
HAL_Delay(Multiple);
log_info("׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TCP<EFBFBD>˿<EFBFBD>");
if(catSendCmd(portbuff,"OK", 5, 30)) {
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>TCP<EFBFBD>˿<EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
NVIC_SystemReset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} else {
netstep += 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>TCP<EFBFBD>˿ڳɹ<EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
}
HAL_Delay(Multiple);
log_info("׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>");
if(catSendCmd("AT+MCONNECT=1,60","OK", 5, 30)) {
log_info("<EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
NVIC_SystemReset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} else {
netstep += 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
log_info("<EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
}
HAL_Delay(Multiple);
log_info("׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
if(catSendCmd(topicbuff,"SUBACK", 5, 30)) {
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
NVIC_SystemReset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} else {
netstep += 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
}
HAL_Delay(Multiple);
log_info("<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d",netstep);
if(netstep >= 10) {
NetworkingFlag = 1;
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>OK!");
} else {
NetworkingFlag = 0;
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
HAL_Delay(Multiple);
NVIC_SystemReset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
//CAT1_printf("AT+MPUB=\"/iot/sub/live/post/8c91c2a533b3c573\",0,0,\"{\\22header\\22:\\22iot.sub.live.post\\22,\\22version\\22:\\221.0\\22,\\22body\\22:{\\22online\\22:[{\\22uid\\22:\\2239dde8bcbf424b1b\\22,\\22secret\\22:\\22129460d7f87bd872\\22}]}}\"\r\n");
}
//<2F><><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD> <20><>׼ָ<D7BC><D6B8> Lora<72><61><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>-02
// CAT1_printf("AT+MPUB=\"/iot/sub/live/post/8c91c2a533b3c573\",0,0,\"{\\22header\\22:\\22iot.sub.live.post\\22,\\22version\\22:\\221.0\\22,\\22body\\22:{\\22online\\22:[{\\22uid\\22:\\2239dde8bcbf424b1b\\22,\\22secret\\22:\\22129460d7f87bd872\\22}]}}\"\r\n");
//<2F><><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD> Lora<72><61><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>-02
// CAT1_printf("AT+MPUB=\"/iot/data/up/8c91c2a533b3c573\",0,0,\"{\\22header\\22:\\22iot.sub.live.post\\22,\\22version\\22:\\221.0\\22,\\22body\\22:{\\22online\\22:[{\\22uid\\22:\\2239dde8bcbf424b1b\\22,\\22secret\\22:\\22129460d7f87bd872\\22}]}}\"\r\n");
//ʵ<>ʴ<EFBFBD><CAB4>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>
//AT+MPUB="/iot/sub/live/post/8c91c2a533b3c573",0,0,"{\22header\22:\22iot.sub.live.post\22,\22version\22:\221.0\22,\22body\22:{\22online\22:[{\22uid\22:\2239dde8bcbf424b1b\22,\22secret\22:\22129460d7f87bd872\22}]}}"
//ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// "/iot/sub/live/post/8c91c2a533b3c573",0,0,
//"{
//"header":"iot.sub.live.post",
//"version":"1.0",
//"body":{
// "online":[
// {
// "uid":"39dde8bcbf424b1b",
// "secret":"129460d7f87bd872"
// }
// ]
// }
//}"
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2> <20><>ƽ̨<C6BD>ظ<EFBFBD><D8B8><EFBFBD>
//<2F><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD>ݣ<EFBFBD>+MSUB: "/iot/data/down/8c91c2a533b3c573",47 byte,{"code":200,"message":"success","success":true}
//<2F><>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><E8B1B8><EFBFBD>ߺ<EFBFBD> <20><><EFBFBD>Ϳ<EFBFBD><CDBF><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD>
//+MSUB: "/iot/data/down/8c91c2a533b3c573",158 byte,{"extend":{"uid":"39dde8bcbf424b1b"},"id":"976660012242325829","header":"iot.sub.prop.set","version":"1.0","body":{"sw1":{"time":1713020358015,"value":true}}}
//<2F><><EFBFBD><EFBFBD>uid<69><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD>豸id
/*-------------------------------------------------*/
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><E9B7A2>ָ<EFBFBD><D6B8> */
/*<2A><> <20><><EFBFBD><EFBFBD>cmd<6D><64>ָ<EFBFBD><D6B8> */
/*<2A><> <20><><EFBFBD><EFBFBD>ret<65><74><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD> */
/*<2A><> <20><><EFBFBD><EFBFBD>cnt<6E><74><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD> */
/*<2A><> <20><><EFBFBD><EFBFBD>timeout<75><74><EFBFBD><EFBFBD>ʱʱ<CAB1>䣨50ms<6D>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD> */
/*<2A><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0<EFBFBD><30><EFBFBD><EFBFBD>ȷ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/*-------------------------------------------------*/
uint8_t catSendCmd(char *cmd, char *ret, uint8_t cnt, uint8_t timeout) {
uint8_t result = 1; // Ĭ<>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>󣨷<EFBFBD><30><D6B5>
while(cnt > 0 && result != 0) {
CAT1_printf("%s\r\n", cmd); // <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8> <20><>β<EFBFBD><CEB2><EFBFBD>ϻ<EFBFBD><CFBB>лس<D0BB>
uint8_t current_timeout = timeout;
while(--current_timeout) {
HAL_Delay(50);
u2flushReceiveBuffer(); //ˢ<>½<EFBFBD><C2BD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
if (strstr((char *)U2_CopyBuff, ret)) {//<2F><><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
result = 0; // <20>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļظ<C4BB><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ȷ<EFBFBD><C8B7><30><D6B5>
break;
}
}
if (current_timeout == 0) // <20><><EFBFBD><EFBFBD>timeout<=0<><30>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱδ<CAB1>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>
log_info("<EFBFBD><EFBFBD>%d<>γ<EFBFBD>ʱ",cnt);
cnt--; // <20><><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD>1
}
return result;
}
/*-------------------------------------------------*/
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD> */
/*<2A><> <20><><EFBFBD><EFBFBD>data <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/*<2A><> <20><><EFBFBD><EFBFBD>datalen <20><><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> CLOSED */
/*<2A><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD> */
/*-------------------------------------------------*/
void u2PassiveEvent(uint8_t *data, uint16_t datalen) {
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ׼<><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(strstr((char *)data,"CLOSED")) {
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
NVIC_SystemReset();//<2F><><EFBFBD><EFBFBD>
}
//<2F>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>+MSUB: "/iot/data/down/cfd6dba662690a5e",118 byte,{"id":"977013940154814794","header":"iot.prop.set","version":"1.0","body":{"sw1":{"time":1713104741005,"value":true}}}
if(strstr((char *)data,"iot.prop.set")) {
log_info("<EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>");
Relay_Action(data); // <20>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
}
// <20>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>ָ<EFBFBD>+MSUB: "/iot/data/down/a284c67982b089f9",119 byte,{"id":"111750363407137710","header":"iot.prop.set","version":"1.0","body":{"sw1":{"time":1746600094207,"value":false}}}
void Relay_Action(uint8_t *data) {
uint8_t i = 0;
char *TempPointer; // <20><>ʱָ<CAB1><D6B8>
char CmdId[18] = {0}; // <20><><EFBFBD><EFBFBD>id<69><64><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(strstr((char *)data,MqttInfo_Struct.Topic)) { //<2F><><EFBFBD><EFBFBD> /iot/data/down/ <20><><EFBFBD>ֵ<EFBFBD>λ<EFBFBD><CEBB>
TempPointer = strstr((char *)data, ",\"id\":\"");
if (TempPointer) {
TempPointer += 7; // <20><><EFBFBD><EFBFBD> ,"id":"
for (i = 0; i < 18; i++) {
if ((TempPointer[i] >= '0' && TempPointer[i] <= '9') ||
((TempPointer[i] >= 'a') && (TempPointer[i] <= 'z')) ||
((TempPointer[i] >= 'A') && (TempPointer[i] <= 'Z'))) {
CmdId[i] = TempPointer[i];
} else {
log_info("<EFBFBD>Ƿ<EFBFBD><EFBFBD>ַ<EFBFBD>: %c (ASCII %d)", TempPointer[i], TempPointer[i]);
break;
}
}
if(i == 18 && TempPointer[18] == '"') { // <20><>֤18λ<38><CEBB><EFBFBD>ֺ<EFBFBD><D6BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
log_info("IDУ<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>: %s", CmdId);
}
}
if(strstr((char *)data,"\"sw")) { //<2F><><EFBFBD>ж<EFBFBD><D0B6>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD><C7B2>ǿ<EFBFBD><C7BF><EFBFBD><EFBFBD><EFBFBD>
TempPointer = strstr((char *)data,"\"sw"); // <20><>¼swλ<77><CEBB>
switch(TempPointer[3]) { // <20>жϲ<D0B6><CFB2><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
case '1':
if (strstr((char *)data, "true")) {
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
;;//
}
if (strstr((char *)data, "false")) {
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD>ر<EFBFBD>");
;;//
}
break;
case '2':
if (strstr((char *)data, "true")) {
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
;;//
}
if (strstr((char *)data, "false")) {
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD>ر<EFBFBD>");
;;//
}
break;
case '3':
if (strstr((char *)data, "true")) {
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
;;//
}
if (strstr((char *)data, "false")) {
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD>ر<EFBFBD>");
;;//
}
break;
case '4':
if (strstr((char *)data, "true")) {
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
;;//
}
if (strstr((char *)data, "false")) {
log_info("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD>ر<EFBFBD>");
;;//
}
break;
}
}
//<2F><><EFBFBD>ͻظ<CDBB><D8B8><EFBFBD>Ϣ OK
CAT1_printf("AT+MPUB=\"/iot/data/up/%s\",0,0,\"{\\22id\\22:\\22%s\\22,\\22code\\22:0,\\22message\\22:\\22OK\\22}\"\r\n",MqttInfo_Struct.ClientID, CmdId);
}
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD> LED<45><44>˸
void activeEvents(void) {
//LED<45><44>˸<EFBFBD><CBB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ϩ<><CFA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (HAL_GetTick() - current_tick >= 200) {
if(NetworkingFlag)//<2F><><EFBFBD>ӳɹ<D3B3>
LED1_TOGGLE;
else
LED1_OFF;//Ϩ<><CFA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָʾ<D6B8><CABE>
current_tick = HAL_GetTick(); //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
}
}