请选择 进入手机版 | 继续访问电脑版
论坛
登录 | 立即注册 设为首页收藏本站 切换到宽版
查看: 462|回复: 0

有大神使用过SDK给的ping.h的库吗

[复制链接]

1

主题

2

帖子

28

积分

新手上路

Rank: 1

积分
28
发表于 2018-12-22 15:28:27 | 显示全部楼层 |阅读模式
我这边使用这个库,串口一直输出显示超时,ping的ip我也转成32位的二进制,为啥就是ping不通
代码如下:
#include "osapi.h"
#include "user_interface.h"
#include "ping.h"
#include "smartconfig.h"
//#include "driver/i2c_SH1106_oled.h"
//#include "driver/i2c_OLED_BMP.h"
//struct SHT30_data SHT30;
uint32 priv_param_start_sec;

/******************************************************************************
* FunctionName : user_rf_cal_sector_set
* Description  : SDK just reversed 4 sectors, used for rf init data and paramters.
*                We add this function to force users to set rf cal sector, since
*                we don't know which sector is free in user's application.
*                sector map for last several sectors : ABCCC
*                A : rf cal
*                B : rf init data
*                C : sdk parameters
* Parameters   : none
* Returns      : rf cal sector
*******************************************************************************/
uint32 ICACHE_FLASH_ATTR
user_rf_cal_sector_set(void)
{
    enum flash_size_map size_map = system_get_flash_size_map();
    uint32 rf_cal_sec = 0;

    switch (size_map) {
        case FLASH_SIZE_4M_MAP_256_256:
            rf_cal_sec = 128 - 5;
            priv_param_start_sec = 0x3C;
            break;

        case FLASH_SIZE_8M_MAP_512_512:
            rf_cal_sec = 256 - 5;
            priv_param_start_sec = 0x7C;
            break;

        case FLASH_SIZE_16M_MAP_512_512:
            rf_cal_sec = 512 - 5;
            priv_param_start_sec = 0x7C;
            break;
        case FLASH_SIZE_16M_MAP_1024_1024:
            rf_cal_sec = 512 - 5;
            priv_param_start_sec = 0xFC;
            break;

        case FLASH_SIZE_32M_MAP_512_512:
            rf_cal_sec = 1024 - 5;
            priv_param_start_sec = 0x7C;
            break;
        case FLASH_SIZE_32M_MAP_1024_1024:
            rf_cal_sec = 1024 - 5;
            priv_param_start_sec = 0xFC;
            break;

        case FLASH_SIZE_64M_MAP_1024_1024:
            rf_cal_sec = 2048 - 5;
            priv_param_start_sec = 0xFC;
            break;
        case FLASH_SIZE_128M_MAP_1024_1024:
            rf_cal_sec = 4096 - 5;
            priv_param_start_sec = 0xFC;
            break;
        default:
            rf_cal_sec = 0;
            priv_param_start_sec = 0;
            break;
    }

    return rf_cal_sec;
}



void ICACHE_FLASH_ATTR
user_rf_pre_init(void)
{
}

/******************************************************************************
* FunctionName : user_init
* Description  : entry of user application, init user function here
* Parameters   : none
* Returns      : none
*******************************************************************************/
struct ping_option ip_option;

LOCAL os_timer_t timer;
void ICACHE_FLASH_ATTR
timer_cb(void){

        ping_start(&ip_option);
}

void ICACHE_FLASH_ATTR
smartconfig_done(sc_status status,        void *pdata)

{
        switch(status)        {
                case SC_STATUS_WAIT:
                        os_printf("SC_STATUS_WAIT\n");
                        break;

                case SC_STATUS_FIND_CHANNEL:
                        os_printf("SC_STATUS_FIND_CHANNEL\n");
                        break;

                case SC_STATUS_GETTING_SSID_PSWD:
                        os_printf("SC_STATUS_GETTING_SSID_PSWD\n");
                        sc_type        *type        =        pdata;
                        if        (*type        ==        SC_TYPE_ESPTOUCH)        {
                                os_printf("SC_TYPE:SC_TYPE_ESPTOUCH\n");
                        }
                        else {
                                os_printf("SC_TYPE:SC_TYPE_AIRKISS\n");
                        }
                        break;

                case SC_STATUS_LINK:
                        os_printf("SC_STATUS_LINK\n");
                        struct        station_config        *sta_conf        =        pdata;
                        wifi_station_set_config(sta_conf);
                        wifi_station_disconnect();
                        wifi_station_connect();
                        break;
                case SC_STATUS_LINK_OVER:
                        os_printf("SC_STATUS_LINK_OVER\n");
                        if        (pdata        !=        NULL){
                        uint8 phone_ip[4]={0};
                        memcpy(phone_ip,(uint8*)pdata,4);
                        os_printf("Phone ip:%d.%d.%d.%d\n",phone_ip[0],phone_ip[1],phone_ip[2],phone_ip[3]);
                        }
                        smartconfig_stop();//停止配置设备,并且释放调 用smartconfig_start 函数所申请的内存。
                        os_timer_arm(&timer,5000,1);//开启定时器
                        break;
        }
}

void ICACHE_FLASH_ATTR
user_init(void)
{
        wifi_set_opmode(0x01);//设置为station模式
        smartconfig_set_type(SC_TYPE_ESPTOUCH);//设置快连模式的协议类型为ESPTOUCH
        smartconfig_start(smartconfig_done,        1);//开启快连模式,打印连接状态
        ip_option.ip=0xCA6C1605;
        os_timer_disarm        (&timer);
        os_timer_setfn(&timer,(os_timer_func_t *)timer_cb,NULL);

}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|安信可论坛    

GMT+8, 2019-9-20 07:20 , Processed in 0.016752 second(s), 12 queries , Redis On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表