t1_Thdl = xTimerCreate("Timer1", 200, pdTRUE, (void *)1, (TimerCallbackFunction_t)OS_TimerCallBack);
xTimerStart(t1_Thdl, 1);
/*
************************************************************
* 函数名称: OS_TimerCallBack
*
* 函数功能: 定时检查网络状态标志位
*
* 入口参数: 软件定时器句柄
*
* 返回参数: 无
*
* 说明: 定时器任务。定时检查网络状态,若持续超过设定时间无网络连接,则进行平台重连
************************************************************
*/
void OS_TimerCallBack(TimerHandle_t xTimer)
{
if(onenet_info.net_work == 0) //如果在规定时间内网络还未接入成功
{
if(++timer_count >= NET_TIME) //如果网络断开超时
{
UsartPrintf(USART_DEBUG, "Tips: Timer Check Err\r\n");
timer_count = 0;
net_fault_info.net_fault_level = NET_FAULT_LEVEL_3; //错误等级3
}
}
else
{
timer_count = 0; //清除计数
if(net_device_info.send_count >= NET_COUNT) //如果发送错误计数达到NET_COUNT次
{
UsartPrintf(USART_DEBUG, "Tips: Timer Check Err-Send\r\n");
net_device_info.send_count = 0;
net_fault_info.net_fault_level = NET_FAULT_LEVEL_1; //错误等级1
}
}
}
void DATA_Task(void *pdata)
{
while(1)
{
switch(onenet_info.send_data)
{
case SEND_TYPE_DATA:
onenet_info.send_data = OneNet_SendData(FORMAT_TYPE3, NULL, NULL, data_stream, data_stream_cnt);//上传数据到平台
break;
case SEND_TYPE_SUBSCRIBE:
onenet_info.send_data = OneNet_Subscribe(topics, 2); //订阅主题
break;
case SEND_TYPE_UNSUBSCRIBE:
onenet_info.send_data = OneNet_UnSubscribe(topics, 2); //取消订阅的主题
break;
case SEND_TYPE_PUBLISH:
onenet_info.send_data = OneNet_Publish("pc_topic", "Publish Test"); //发布主题
break;
case SEND_TYPE_HEART:
onenet_info.send_data = OneNet_SendData_Heart();
break;
}
OneNet_Check_Heart();
RTOS_TimeDly(10); //挂起任务50ms
}
}
2018-07-25
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...