Files
cell/tests/camera_info.js
John Alanbrook bc929988b2
Some checks failed
Build and Deploy / build-macos (push) Failing after 7s
Build and Deploy / build-windows (CLANG64) (push) Has been cancelled
Build and Deploy / package-dist (push) Has been cancelled
Build and Deploy / deploy-itch (push) Has been cancelled
Build and Deploy / deploy-gitea (push) Has been cancelled
Build and Deploy / build-linux (push) Has been cancelled
extend camera
2025-05-26 20:55:57 -05:00

75 lines
2.5 KiB
JavaScript

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