Files
cell/prosperon/tests/camera_info.ce

75 lines
2.5 KiB
Plaintext

// Test the new camera functionality
var camera = use('camera');
// Get camera drivers
var drivers = camera.drivers();
log.console("Available camera drivers:", drivers);
// Get list of cameras
var cameras = camera.list();
log.console("Found", cameras.length, "cameras");
// Get info about each camera
for (var i = 0; i < cameras.length; i++) {
var cam_id = cameras[i];
log.console("\nCamera", i + 1, "ID:", cam_id);
log.console(" Name:", camera.name(cam_id));
log.console(" Position:", camera.position(cam_id));
// Get supported formats
var formats = camera.supported_formats(cam_id);
log.console(" Supported formats:", formats.length);
// Show first few formats
for (var j = 0; j < formats.length; j++) {
var fmt = formats[j];
log.console(" Format", j + 1 + ":");
log.console(" Pixel format:", fmt.format);
log.console(" Resolution:", fmt.width + "x" + fmt.height);
log.console(" FPS:", fmt.framerate_numerator + "/" + fmt.framerate_denominator,
"(" + (fmt.framerate_numerator / fmt.framerate_denominator) + ")");
log.console(" Colorspace:", fmt.colorspace);
}
}
// Open the first camera with a specific format if available
if (cameras.length > 0) {
log.console("\nOpening first camera...");
var cam_id = cameras[0];
var formats = camera.supported_formats(cam_id);
// Try to find a 640x480 format
var preferred_format = null;
for (var i = 0; i < formats.length; i++) {
if (formats[i].width == 640 && formats[i].height == 480) {
preferred_format = formats[i];
break;
}
}
var cam;
if (preferred_format) {
log.console("Opening with 640x480 format...");
cam = camera.open(cam_id, preferred_format);
} else {
log.console("Opening with default format...");
cam = camera.open(cam_id);
}
if (cam) {
log.console("Camera opened successfully!");
log.console("Driver being used:", cam.get_driver());
// Get the actual format being used
var actual_format = cam.get_format();
log.console("Actual format being used:");
log.console(" Pixel format:", actual_format.format);
log.console(" Resolution:", actual_format.width + "x" + actual_format.height);
log.console(" FPS:", actual_format.framerate_numerator + "/" + actual_format.framerate_denominator,
"(" + (actual_format.framerate_numerator / actual_format.framerate_denominator) + ")");
log.console(" Colorspace:", actual_format.colorspace);
// Clean up - camera will be closed when object is freed
cam = null;
}
}