Esempio n. 1
0
void ListCameras()
{
    tPvCameraInfo   cameraList[MAX_CAMERA_LIST];
    unsigned long   cameraNum = 0;
    unsigned long   cameraRle;

    // first, get list of reachable cameras.
    cameraNum = PvCameraList(cameraList,MAX_CAMERA_LIST,NULL);

   // keep how many cameras listed are reachable
    cameraRle = cameraNum;    

    // then we append the list of unreachable cameras.
    if (cameraNum < MAX_CAMERA_LIST)
    {
        cameraNum += PvCameraListUnreachable(&cameraList[cameraNum],
                                             MAX_CAMERA_LIST-cameraNum,
                                             NULL);
    }

    if(cameraNum)
    {
        // and display them
        for(unsigned int i=0;i<cameraNum;i++)
        {
            if(i < cameraRle)
                printf("%s - %7s - Unique ID = %lu\n",cameraList[i].SerialString,
                                                      cameraList[i].DisplayName,
                                                      cameraList[i].UniqueId);
            else
                printf("%s - %7s - Unique ID = %lu (*)\n",cameraList[i].SerialString,
                                                          cameraList[i].DisplayName,
                                                          cameraList[i].UniqueId);      
        }

        if(cameraNum != cameraRle)
            printf("(*) camera is not reachable\n");
    }
    else
        printf("sorry, no camera was detected. Is there any plugged?\n");
}
void ListCameras()
{
    tPvCameraInfo   cameraList[MAX_CAMERA_LIST];
    unsigned long   cameraNum = 0;
    unsigned long   cameraRle;

    while(gStop == false)
    {
        printf("***********************************\n");

        // first, get list of reachable cameras.
        cameraNum = PvCameraList(cameraList,MAX_CAMERA_LIST,NULL);

       // keep how many cameras listed are reachable
        cameraRle = cameraNum;    

        // then we append the list of unreachable cameras.
        if (cameraNum < MAX_CAMERA_LIST)
        {
            cameraNum += PvCameraListUnreachable(&cameraList[cameraNum],
                                                 MAX_CAMERA_LIST-cameraNum,
                                                 NULL);
        }

        if(cameraNum)
        {
            struct in_addr addr;
            tPvIpSettings Conf;
            tPvErr lErr;
            
            // display info
            for(unsigned long i=0;i<cameraNum;i++)
            {
                if(i < cameraRle)
                {
                    // get the camera's IP configuration
                    if((lErr = PvCameraIpSettingsGet(cameraList[i].UniqueId,&Conf)) == ePvErrSuccess)
                    {
                        addr.s_addr = Conf.CurrentIpAddress;
                        printf("%s - %8s - Unique ID = % 8lu IP@ = %15s [%s]\n",cameraList[i].SerialString,
                                                                    cameraList[i].DisplayName,
                                                                    cameraList[i].UniqueId,
                                                                    inet_ntoa(addr),
                                                                    cameraList[i].PermittedAccess & ePvAccessMaster ? "available" : "in use");
                    }
                    else
                        printf("%s - %8s - Unique ID = % 8lu (unavailable, %u)\n",cameraList[i].SerialString,
                               cameraList[i].DisplayName,
                               cameraList[i].UniqueId,lErr);      
                }
                else
                    printf("%s - %8s - Unique ID = % 8lu (*)\n",cameraList[i].SerialString,
                                                              cameraList[i].DisplayName,
                                                              cameraList[i].UniqueId);      
            }

            if(cameraNum != cameraRle)
                printf("(*) camera is not reachable\n");
        }
        else
            printf("No camera detected ...\n");
        
        fflush(stdout);

        Sleep(1500);
    }
    
    printf("**************************************\n");
}