古天乐代言太阳集团·主页欢迎您

常见问题FAQ

EW-DTU蓝牙4G网关V1.4版本为什么无法显示4G信号?

       针对部分用户反馈EW-DTU固件版本V1.4版本无法显示4G信号的问题,原因是上个版本更新的时候,去掉了"return 0"返回,导致返回错误的结果,从而导致4G的进程走向错误的分支,已经修复。

               if(dtu_find_rsp(rsp + sizeof(int), "OK") != -1) {  //如果已经连接

                    printf("[%s]:[%d] recieve:%s\r\n", __FUNCTION__, __LINE__,rsp + sizeof(int));

                    p_instance->tag = rsp + sizeof(int);

                    p_instance->tag_len = *(int *)rsp;

                } 

改为:

              if(dtu_find_rsp(rsp + sizeof(int), "OK") != -1) {  //如果已经连接

                    printf("[%s]:[%d] recieve:%s\r\n", __FUNCTION__, __LINE__,rsp + sizeof(int));

                    p_instance->tag = rsp + sizeof(int);

                    p_instance->tag_len = *(int *)rsp;

                    return 0;

                } 


【2】去掉rc.local里面的内容,然后MT7628.dts增加“ble_moudle_reset”gpio的定义,用来 

         复位蓝牙模块,ble.c里面增加对“BLE_MOUDLE_EVENT_RESET_MODULE”的处理,在

         程序每次重新来过的时候,复位一次蓝牙模块。

        修改内容如下:

        ble_moudle_Open函数:

 if(   p_instance == NULL \

       || p_instance->rx_buf == NULL \

       || p_instance->rx_size == 0) {

        printf("[%s]:[%d]: param erro & reset port open failure!!\r\n", __FUNCTION__, __LINE__); 

        return -1;

    }


修改为:

 if(   p_instance == NULL \

       || p_instance->rx_buf == NULL \

       || p_instance->rx_size == 0 \

       || (ble_moudle_reset_port_open(p_instance) == -1)) {

        printf("[%s]:[%d]: param erro & reset port open failure!!\r\n", __FUNCTION__, __LINE__); 

        return -1;

    }



增加:

int ble_moudle_reset_port_open(ble_moudle_t *p_instance) {

p_instance->reset_gpio_fd = -1;

if(dtu_file_exist("/sys/devices/gpio-leds/leds/mediatek:green:ble_moudle_reset/brightness") != -1) {

p_instance->reset_gpio_fd = open("/sys/devices/gpio-leds/leds/mediatek:green:ble_moudle_reset/brightness", O_WRONLY);

}


    if(-1 == p_instance->reset_gpio_fd) {

return -1;

}

return 0;

}


ble_module_cmd_write函数增加:

case BLE_MOUDLE_EVENT_RESET_MODULE://复位模块

    printf("[%s]:[%d]: reset moudle\r\n", __FUNCTION__, __LINE__);

write(p_instance->reset_gpio_fd, "1", 1);

sleep(1); 

write(p_instance->reset_gpio_fd, "0", 1);

break;


ble_module_cmd_cmp函数增加:

case BLE_MOUDLE_EVENT_RESET_MODULE://复位模块

    if(dtu_find_rsp(rsp + sizeof(int), "www.easywphy.com") != -1) {  

        printf("[%s]:[%d] recieve:%s\r\n", \

__FUNCTION__, __LINE__,rsp + sizeof(int));

               p_instance->tag = rsp + sizeof(int);

                p_instance->tag_len = *(int *)rsp;

                return 0;

                } else {

        printf("[%s]:[%d] dtu_find_rsp failure\r\n", __FUNCTION__, __LINE__);

     } 

   break;



关于产品的使用疑问或想了解更多请