|
@@ -76,7 +76,12 @@ enum Step{
|
|
|
STEP_FINISH, // 流程结束
|
|
STEP_FINISH, // 流程结束
|
|
|
STEP_VERIFY_REGIST,//验证注册
|
|
STEP_VERIFY_REGIST,//验证注册
|
|
|
STEP_VERIFY_INITIALIZE, // 验证初始化
|
|
STEP_VERIFY_INITIALIZE, // 验证初始化
|
|
|
- STEP_QUERY_SOCKET,
|
|
|
|
|
|
|
+ STEP_QUERY_SOCKET, // 查询连接
|
|
|
|
|
+ STEP_QUERY_DNS, // 查询DNS
|
|
|
|
|
+ STEP_SET_DNS, // 设置DNS
|
|
|
|
|
+
|
|
|
|
|
+ STEP_QUERY_CFUN_DNS, // 设置完dns后,查询功能模式
|
|
|
|
|
+ STEP_SET_CFUN_0_DNS, // 设置完dns后,设置最小功能模式
|
|
|
};
|
|
};
|
|
|
// 当前
|
|
// 当前
|
|
|
static enum Step step = STEP_NONE;
|
|
static enum Step step = STEP_NONE;
|
|
@@ -223,7 +228,7 @@ static void goto_failure(char * info)
|
|
|
// 成功
|
|
// 成功
|
|
|
static void goto_success(char * info)
|
|
static void goto_success(char * info)
|
|
|
{
|
|
{
|
|
|
- Log_Printf_Debug("STEP: 数据发送成功,%s\r\n", info);
|
|
|
|
|
|
|
+ Log_Printf_Debug("STEP: 数据发送成功,%s\r\n", info);
|
|
|
client.status = Client_Status_Success;
|
|
client.status = Client_Status_Success;
|
|
|
strcpy(client.info, info);
|
|
strcpy(client.info, info);
|
|
|
goto_step(STEP_SUCCESS);
|
|
goto_step(STEP_SUCCESS);
|
|
@@ -251,6 +256,9 @@ static uint16_t socket_err = 0;
|
|
|
static uint8_t auth_or_data = 0;
|
|
static uint8_t auth_or_data = 0;
|
|
|
static enum Initialize_Result InitializeResult;
|
|
static enum Initialize_Result InitializeResult;
|
|
|
|
|
|
|
|
|
|
+// dns
|
|
|
|
|
+static char pridnsaddr[20];
|
|
|
|
|
+
|
|
|
static uint8_t resend_counter = 0;//nb失败重发标志
|
|
static uint8_t resend_counter = 0;//nb失败重发标志
|
|
|
static uint8_t cfun_mode = 0;
|
|
static uint8_t cfun_mode = 0;
|
|
|
static uint8_t connectstate = 0;
|
|
static uint8_t connectstate = 0;
|
|
@@ -269,17 +277,17 @@ void UDP_Client_Handle(void)
|
|
|
case STEP_NONE: // 空闲
|
|
case STEP_NONE: // 空闲
|
|
|
break;
|
|
break;
|
|
|
case STEP_START: // 开始
|
|
case STEP_START: // 开始
|
|
|
- Log_Printf_Debug("开始\r\n");
|
|
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>发送流程开始\r\n");
|
|
|
auth_times = 0; // 认证次数
|
|
auth_times = 0; // 认证次数
|
|
|
-// goto_step(STEP_EXIT_SLEEP);
|
|
|
|
|
goto_step(STEP_EXIT_SLEEP);
|
|
goto_step(STEP_EXIT_SLEEP);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>退出休眠\r\n");
|
|
|
break;
|
|
break;
|
|
|
case STEP_EXIT_SLEEP: // 退出休眠
|
|
case STEP_EXIT_SLEEP: // 退出休眠
|
|
|
result = bc260y.exit_sleep_2();
|
|
result = bc260y.exit_sleep_2();
|
|
|
if(result == Result_Success)
|
|
if(result == Result_Success)
|
|
|
{
|
|
{
|
|
|
- Log_Printf_Debug("退出休眠成功\r\n");
|
|
|
|
|
goto_step(STEP_SET_QISDE_1);
|
|
goto_step(STEP_SET_QISDE_1);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>开启回显\r\n");
|
|
|
}
|
|
}
|
|
|
else if(result == Result_Failed)
|
|
else if(result == Result_Failed)
|
|
|
{
|
|
{
|
|
@@ -291,6 +299,7 @@ void UDP_Client_Handle(void)
|
|
|
if(result == Result_Success)
|
|
if(result == Result_Success)
|
|
|
{
|
|
{
|
|
|
goto_step(STEP_SET_SLEEP);
|
|
goto_step(STEP_SET_SLEEP);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>设置休眠模式\r\n");
|
|
|
}
|
|
}
|
|
|
else if(result == Result_Failed)
|
|
else if(result == Result_Failed)
|
|
|
{
|
|
{
|
|
@@ -302,23 +311,90 @@ void UDP_Client_Handle(void)
|
|
|
if(result == Result_Success)
|
|
if(result == Result_Success)
|
|
|
{
|
|
{
|
|
|
goto_step(STEP_DATAFORMAT);
|
|
goto_step(STEP_DATAFORMAT);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>配置发送格式\r\n");
|
|
|
}
|
|
}
|
|
|
else if(result == Result_Failed)
|
|
else if(result == Result_Failed)
|
|
|
{
|
|
{
|
|
|
goto_failure("设置休眠模式失败");
|
|
goto_failure("设置休眠模式失败");
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
- case STEP_DATAFORMAT:
|
|
|
|
|
|
|
+ case STEP_DATAFORMAT: // 配置发送格式
|
|
|
result = bc260y.dataformat(1);
|
|
result = bc260y.dataformat(1);
|
|
|
if(result == Result_Success)
|
|
if(result == Result_Success)
|
|
|
{
|
|
{
|
|
|
- goto_step(STEP_QUERY_CFUN);
|
|
|
|
|
|
|
+ goto_step(STEP_QUERY_DNS);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>查询DNS\r\n");
|
|
|
|
|
+ memset(pridnsaddr, 0, sizeof(pridnsaddr));
|
|
|
}
|
|
}
|
|
|
else if(result == Result_Failed)
|
|
else if(result == Result_Failed)
|
|
|
{
|
|
{
|
|
|
goto_failure("配置发送格式失败");
|
|
goto_failure("配置发送格式失败");
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
|
|
+ case STEP_QUERY_DNS: // 查询DNS
|
|
|
|
|
+ result = bc260y.query_dns(pridnsaddr);
|
|
|
|
|
+ if(result == Result_Success)
|
|
|
|
|
+ {
|
|
|
|
|
+ if(strlen(pridnsaddr) <= 1)
|
|
|
|
|
+ {
|
|
|
|
|
+ goto_step(STEP_SET_DNS);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>设置DNS\r\n");
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ goto_step(STEP_QUERY_CFUN);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>查询功能模式\r\n");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ else if(result == Result_Failed)
|
|
|
|
|
+ {
|
|
|
|
|
+ goto_failure("查询DNS失败");
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
|
|
+ case STEP_SET_DNS:
|
|
|
|
|
+ result = bc260y.set_dns("114.114.114.114", "8.8.8.8"); // 设置DNS
|
|
|
|
|
+ if(result == Result_Success)
|
|
|
|
|
+ {
|
|
|
|
|
+ goto_step(STEP_QUERY_CFUN_DNS);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>设置完dns,查询功能模式\r\n");
|
|
|
|
|
+ }
|
|
|
|
|
+ else if(result == Result_Failed)
|
|
|
|
|
+ {
|
|
|
|
|
+ goto_failure("查询功能模式失败");
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
|
|
+ case STEP_QUERY_CFUN_DNS: // 设置完dns,查询功能模式
|
|
|
|
|
+ result = bc260y.query_cfun(&cfun_mode);
|
|
|
|
|
+ if(result == Result_Success)
|
|
|
|
|
+ {
|
|
|
|
|
+ if(cfun_mode == 1)
|
|
|
|
|
+ {
|
|
|
|
|
+ goto_step(STEP_SET_CFUN_0_DNS);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>设置完dns,先设置最小功能模式\r\n");
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ goto_step(STEP_SET_CFUN_1);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>设置完dns,设置全功能模式\r\n");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ else if(result == Result_Failed)
|
|
|
|
|
+ {
|
|
|
|
|
+ goto_failure("查询功能模式失败");
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
|
|
+ case STEP_SET_CFUN_0_DNS: // 设置完dns,设置最小功能模式
|
|
|
|
|
+ result = bc260y.set_cfun(0);
|
|
|
|
|
+ if(result == Result_Success)
|
|
|
|
|
+ {
|
|
|
|
|
+ goto_step(STEP_SET_CFUN_1);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>设置完dns,设置全功能模式\r\n");
|
|
|
|
|
+ }
|
|
|
|
|
+ else if(result == Result_Failed)
|
|
|
|
|
+ {
|
|
|
|
|
+ goto_failure("设置完dns,设置最小模式失败");
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
case STEP_QUERY_CFUN: // 查询功能模式
|
|
case STEP_QUERY_CFUN: // 查询功能模式
|
|
|
result = bc260y.query_cfun(&cfun_mode);
|
|
result = bc260y.query_cfun(&cfun_mode);
|
|
|
if(result == Result_Success)
|
|
if(result == Result_Success)
|
|
@@ -326,10 +402,12 @@ void UDP_Client_Handle(void)
|
|
|
if(cfun_mode == 0)
|
|
if(cfun_mode == 0)
|
|
|
{
|
|
{
|
|
|
goto_step(STEP_SET_CFUN_1);
|
|
goto_step(STEP_SET_CFUN_1);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>设置全功能模式\r\n");
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
|
goto_step(STEP_SET_CGREG_2);
|
|
goto_step(STEP_SET_CGREG_2);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>设置ps域\r\n");
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
else if(result == Result_Failed)
|
|
else if(result == Result_Failed)
|
|
@@ -341,11 +419,13 @@ void UDP_Client_Handle(void)
|
|
|
result = bc260y.set_cfun(1);
|
|
result = bc260y.set_cfun(1);
|
|
|
if(result == Result_Success)
|
|
if(result == Result_Success)
|
|
|
{
|
|
{
|
|
|
- Log_Printf_Debug("设置全功能模式成功\r\n");
|
|
|
|
|
|
|
+ resend_counter++;
|
|
|
goto_step(STEP_SET_CGREG_2);
|
|
goto_step(STEP_SET_CGREG_2);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>设置ps域\r\n");
|
|
|
}
|
|
}
|
|
|
else if(result == Result_Failed)
|
|
else if(result == Result_Failed)
|
|
|
{
|
|
{
|
|
|
|
|
+ resend_counter++;
|
|
|
goto_failure("设置全功能模式失败");
|
|
goto_failure("设置全功能模式失败");
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
@@ -353,7 +433,9 @@ void UDP_Client_Handle(void)
|
|
|
result = bc260y.set_cereg(2);
|
|
result = bc260y.set_cereg(2);
|
|
|
if(result == Result_Success)
|
|
if(result == Result_Success)
|
|
|
{
|
|
{
|
|
|
- goto_step_wait(STEP_QUERY_CGREG, 400);
|
|
|
|
|
|
|
+// goto_step_wait(STEP_QUERY_CGREG, 400);
|
|
|
|
|
+ goto_step(STEP_QUERY_CGREG);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>查询ps域\r\n");
|
|
|
}
|
|
}
|
|
|
else if(result == Result_Failed)
|
|
else if(result == Result_Failed)
|
|
|
{
|
|
{
|
|
@@ -374,10 +456,12 @@ void UDP_Client_Handle(void)
|
|
|
if(test_flag == 0)
|
|
if(test_flag == 0)
|
|
|
{
|
|
{
|
|
|
goto_step(STEP_QUERY_SOCKET);
|
|
goto_step(STEP_QUERY_SOCKET);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>查询连接\r\n");
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
|
goto_step(STEP_QUERY_QENG_SERVINGCELL);
|
|
goto_step(STEP_QUERY_QENG_SERVINGCELL);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>查询信号质量\r\n");
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
@@ -395,6 +479,7 @@ void UDP_Client_Handle(void)
|
|
|
if(result == Result_Success)
|
|
if(result == Result_Success)
|
|
|
{
|
|
{
|
|
|
goto_step(STEP_QUERY_SOCKET);
|
|
goto_step(STEP_QUERY_SOCKET);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>查询连接\r\n");
|
|
|
}
|
|
}
|
|
|
else if(result == Result_Failed)
|
|
else if(result == Result_Failed)
|
|
|
{
|
|
{
|
|
@@ -402,17 +487,19 @@ void UDP_Client_Handle(void)
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
|
|
|
|
|
- case STEP_QUERY_SOCKET:
|
|
|
|
|
- result =bc260y.query_socket_state(connectID,&connectstate);
|
|
|
|
|
- if(result == Result_Success)
|
|
|
|
|
|
|
+ case STEP_QUERY_SOCKET: // 查询连接
|
|
|
|
|
+ result =bc260y.query_socket_state(connectID,&connectstate);
|
|
|
|
|
+ if(result == Result_Success)
|
|
|
{
|
|
{
|
|
|
if(connectstate==2)
|
|
if(connectstate==2)
|
|
|
{
|
|
{
|
|
|
- goto_step(STEP_JUDGE_AUTH_OR_DATA);
|
|
|
|
|
|
|
+ goto_step(STEP_JUDGE_AUTH_OR_DATA);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>判断认证还是发送\r\n");
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
|
- goto_step(STEP_CLOSE);
|
|
|
|
|
|
|
+ goto_step(STEP_CLOSE);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>关闭连接\r\n");
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
else if(result == Result_Failed)
|
|
else if(result == Result_Failed)
|
|
@@ -425,6 +512,7 @@ void UDP_Client_Handle(void)
|
|
|
if(result == Result_Success)
|
|
if(result == Result_Success)
|
|
|
{
|
|
{
|
|
|
goto_step(STEP_OPEN);
|
|
goto_step(STEP_OPEN);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>打开客户端\r\n");
|
|
|
}
|
|
}
|
|
|
else if(result == Result_Failed)
|
|
else if(result == Result_Failed)
|
|
|
{
|
|
{
|
|
@@ -438,6 +526,7 @@ void UDP_Client_Handle(void)
|
|
|
if(socket_err == 0)
|
|
if(socket_err == 0)
|
|
|
{
|
|
{
|
|
|
goto_step(STEP_JUDGE_AUTH_OR_DATA);
|
|
goto_step(STEP_JUDGE_AUTH_OR_DATA);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>判断认证还是发送\r\n");
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
@@ -454,14 +543,15 @@ void UDP_Client_Handle(void)
|
|
|
if(auth_or_data == 1) // 已认证
|
|
if(auth_or_data == 1) // 已认证
|
|
|
{
|
|
{
|
|
|
goto_step(STEP_JOIN_DATA_MESSAGE);
|
|
goto_step(STEP_JOIN_DATA_MESSAGE);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>拼接数据报文\r\n");
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
|
goto_step(STEP_JOIN_AUTH_MESSAGE);
|
|
goto_step(STEP_JOIN_AUTH_MESSAGE);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>拼接认证报文\r\n");
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
case STEP_JOIN_AUTH_MESSAGE: // 拼接认证报文
|
|
case STEP_JOIN_AUTH_MESSAGE: // 拼接认证报文
|
|
|
- Log_Printf_Debug("拼接认证报文\r\n");
|
|
|
|
|
if(auth_times > 0) // 最多重新认证一次
|
|
if(auth_times > 0) // 最多重新认证一次
|
|
|
{
|
|
{
|
|
|
goto_failure("认证次数过多");
|
|
goto_failure("认证次数过多");
|
|
@@ -470,12 +560,15 @@ void UDP_Client_Handle(void)
|
|
|
{
|
|
{
|
|
|
memset(coap_message, 0, sizeof(coap_message));
|
|
memset(coap_message, 0, sizeof(coap_message));
|
|
|
aliyuniot_get_auth_message(coap_message, &coap_message_length);
|
|
aliyuniot_get_auth_message(coap_message, &coap_message_length);
|
|
|
|
|
+// Log_Printf_Debug("认证报文:%d\r\n", coap_message_length);
|
|
|
|
|
+// Log_SendHex(coap_message, coap_message_length);
|
|
|
|
|
+// Log_Printf_Debug("\r\n");
|
|
|
goto_step(STEP_SEND);
|
|
goto_step(STEP_SEND);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>发送认证报文\r\n");
|
|
|
auth_times++;
|
|
auth_times++;
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
case STEP_JOIN_DATA_MESSAGE: // 拼接数据报文
|
|
case STEP_JOIN_DATA_MESSAGE: // 拼接数据报文
|
|
|
- Log_Printf_Debug("拼接数据报文\r\n");
|
|
|
|
|
pump_params.lac = cgreg_lac;
|
|
pump_params.lac = cgreg_lac;
|
|
|
pump_params.ci = cgreg_ci;
|
|
pump_params.ci = cgreg_ci;
|
|
|
Pump_Params_Refresh();
|
|
Pump_Params_Refresh();
|
|
@@ -484,14 +577,20 @@ void UDP_Client_Handle(void)
|
|
|
business_protocol_encode(pump_params, databuff, &data_length);
|
|
business_protocol_encode(pump_params, databuff, &data_length);
|
|
|
memset(coap_message, 0, sizeof(coap_message));
|
|
memset(coap_message, 0, sizeof(coap_message));
|
|
|
aliyuniot_get_data_message(databuff, data_length, coap_message, &coap_message_length);
|
|
aliyuniot_get_data_message(databuff, data_length, coap_message, &coap_message_length);
|
|
|
|
|
+// Log_Printf_Debug("数据报文:%d\r\n", coap_message_length);
|
|
|
|
|
+// Log_SendHex(coap_message, coap_message_length);
|
|
|
|
|
+// Log_Printf_Debug("\r\n");
|
|
|
goto_step(STEP_SEND);
|
|
goto_step(STEP_SEND);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>发送数据报文\r\n");
|
|
|
break;
|
|
break;
|
|
|
|
|
|
|
|
case STEP_SEND: // 发送send
|
|
case STEP_SEND: // 发送send
|
|
|
result = bc260y.send_rai(connectID, coap_message, coap_message_length, 2);
|
|
result = bc260y.send_rai(connectID, coap_message, coap_message_length, 2);
|
|
|
if(result == Result_Success)
|
|
if(result == Result_Success)
|
|
|
{
|
|
{
|
|
|
|
|
+ memset(coap_message, 0, sizeof(coap_message));
|
|
|
goto_step(STEP_RECV);
|
|
goto_step(STEP_RECV);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>等待接收数据\r\n");
|
|
|
}
|
|
}
|
|
|
else if(result == Result_Failed)
|
|
else if(result == Result_Failed)
|
|
|
{
|
|
{
|
|
@@ -499,17 +598,19 @@ void UDP_Client_Handle(void)
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
case STEP_RECV: // 等待结果
|
|
case STEP_RECV: // 等待结果
|
|
|
- result = bc260y.recv_with_time(connectID, coap_message, &coap_message_length, 10000);
|
|
|
|
|
|
|
+ result = bc260y.recv_with_time(connectID, coap_message, &coap_message_length, 4000);
|
|
|
if(result == Result_Success)
|
|
if(result == Result_Success)
|
|
|
{
|
|
{
|
|
|
uint8_t res = aliyuniot_recv_data_handle(coap_message, coap_message_length);
|
|
uint8_t res = aliyuniot_recv_data_handle(coap_message, coap_message_length);
|
|
|
if(res == 0) // 发送失败
|
|
if(res == 0) // 发送失败
|
|
|
{
|
|
{
|
|
|
goto_step(STEP_JUDGE_AUTH_OR_DATA); // 重新认证
|
|
goto_step(STEP_JUDGE_AUTH_OR_DATA); // 重新认证
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>重新认证\r\n");
|
|
|
}
|
|
}
|
|
|
else if(res == 1) // 认证成功
|
|
else if(res == 1) // 认证成功
|
|
|
{
|
|
{
|
|
|
goto_step(STEP_JOIN_DATA_MESSAGE);
|
|
goto_step(STEP_JOIN_DATA_MESSAGE);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>拼接数据报文\r\n");
|
|
|
}
|
|
}
|
|
|
else if(res == 2) // 发送成功
|
|
else if(res == 2) // 发送成功
|
|
|
{
|
|
{
|
|
@@ -526,33 +627,38 @@ void UDP_Client_Handle(void)
|
|
|
break;
|
|
break;
|
|
|
case STEP_SUCCESS: // 成功
|
|
case STEP_SUCCESS: // 成功
|
|
|
goto_step(STEP_ENTER_SLEEP);
|
|
goto_step(STEP_ENTER_SLEEP);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>成功,进入睡眠\r\n");
|
|
|
break;
|
|
break;
|
|
|
case STEP_FAILURE: // 失败
|
|
case STEP_FAILURE: // 失败
|
|
|
resend_counter++;
|
|
resend_counter++;
|
|
|
goto_step(STEP_SET_CFUN_0);
|
|
goto_step(STEP_SET_CFUN_0);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>失败,设置最小功能模式\r\n");
|
|
|
break;
|
|
break;
|
|
|
case STEP_SET_CFUN_0: // 设置最小功能模式
|
|
case STEP_SET_CFUN_0: // 设置最小功能模式
|
|
|
result = bc260y.set_cfun(0);
|
|
result = bc260y.set_cfun(0);
|
|
|
if(result == Result_Success)
|
|
if(result == Result_Success)
|
|
|
{
|
|
{
|
|
|
- Log_Printf_Debug("设置最小模式成功\r\n");
|
|
|
|
|
if(resend_counter > 1) // 重发次数
|
|
if(resend_counter > 1) // 重发次数
|
|
|
{
|
|
{
|
|
|
goto_step(STEP_ENTER_SLEEP);
|
|
goto_step(STEP_ENTER_SLEEP);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>重发次数%d > 1,结束发送,进入睡眠\r\n", resend_counter);
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
|
goto_step(STEP_START);
|
|
goto_step(STEP_START);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>重发次数%d < 1,重新发送\r\n", resend_counter);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
else if(result == Result_Failed)
|
|
else if(result == Result_Failed)
|
|
|
{
|
|
{
|
|
|
goto_step(STEP_ENTER_SLEEP);
|
|
goto_step(STEP_ENTER_SLEEP);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>设置最小功能模式失败,进入睡眠\r\n");
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
case STEP_ENTER_SLEEP: // 进入睡眠
|
|
case STEP_ENTER_SLEEP: // 进入睡眠
|
|
|
resend_counter=0;//失败重发置0
|
|
resend_counter=0;//失败重发置0
|
|
|
goto_step(STEP_FINISH);
|
|
goto_step(STEP_FINISH);
|
|
|
|
|
+ Log_Printf_Debug("\r\n>>发送流程结束\r\n");
|
|
|
break;
|
|
break;
|
|
|
case STEP_FINISH: // 结束流程
|
|
case STEP_FINISH: // 结束流程
|
|
|
break;
|
|
break;
|