//串口2接收线程
static void * Serial_2_RecvThread(void * arg)
{
    int ret;
    unsigned int depth,len;
    unsigned char buf[64];
    int i;
    while(1)
    {
       // printf("5467\n");
        ret = select(FD_SETSIZE, &serial_2_fd_set, (fd_set *)0, (fd_set *)0,(struct timeval *) 0);
     //   printf("123\n");
        if (ret < 1)
        {
            printf("%s,%d,ERROR\n", __func__, __LINE__);
            FD_ZERO(&serial_2_fd_set);
            FD_SET(serial_2_fd, &serial_2_fd_set);
            continue;
        }

        ioctl(serial_2_fd, FIONREAD, &depth);
        if(depth > 0)
        {
            //TODO...Call protocol decode function
            len = depth > sizeof(buf) ? sizeof(buf) : depth;
            ret = read(serial_2_fd,buf,len);
            for(i = 0; i < ret; i ++)
            {
                sdk_serial_byte_handle(buf[i]);
            }
            buf[i]='\0';
            printf("buf2=%s\n",buf);
        }
    }
    return NULL;
}
void DJI_Pro_Hw::run()
{
    int depth;
    int limit_len,read_len;
    while(1)
    {
        if(port->isOpen())
        {

            depth = port->bytesAvailable();
            if(depth > 0)
            {
                limit_len = depth > DJI_PRO_HW_BUFFER_SIZE ? DJI_PRO_HW_BUFFER_SIZE \
                    : depth;

                read_len = port->read((char *)pbuffer,limit_len);


                for(int i = 0; i < read_len; i ++)
                {
                    sdk_serial_byte_handle(pbuffer[i]);
                }

                load_con += read_len;
                //printf("\rReceived :%d",load_con);
            }
            else
            {
                msleep(2);
            }

        }
        else
        {
            msleep(2);
        }

    }
}