监控相机温度
简介
Zivid 相机通过相机状态接口(Camera::state())输出多个内部组件的温度。
您不需要监控这些温度来保护相机。相机固件内置了热保护机制,能够自动将相机保持在安全的工作条件范围内。
何时需要监控温度
一个典型的应用场景是当相机被集成到定制外壳或保护罩中时,例如带空调的外壳可让相机在其规定温度范围之外的环境中(过热或过冷)运行。在这种设置下,可以利用相机的温度传感器作为反馈信号来调节空调,使相机保持在其工作温度范围内。
以下温度可供读取:
组件 |
描述 |
|---|---|
DMD |
DMD(投影仪芯片)的温度。 |
General |
相机的整体内部温度。 |
LED |
投影仪 LED 的温度。 |
Lens |
相机镜头附近的温度。 |
PCB |
主印刷电路板的温度。 |
备注
这些温度以摄氏度报告。
备注
这些温度都不是环境(室内)温度,而是相机内部组件的温度,因此它们的读数高于环境温度是正常且符合预期的。数据表中给出的工作温度范围(例如 0–40°C 或 0–45°C)指的是环境温度,不应与这些组件温度直接比较。
组件过热时会发生什么
相机固件会在每次捕获之前持续检查投影仪 LED 和 DMD 的温度。如果任一温度过高,固件会拒绝执行该捕获,SDK 会在捕获调用时抛出异常。这与 相机健康检查 针对这些组件报告的错误严重级别相匹配,即 LED 高于 70°C 且 DMD 高于 60°C。
固件在达到任一限值之前还会应用热节流功能。在高负载周期下,相机可能会在采集之间自动暂停以散热,从而防止过热。这是正常行为,不会引发异常。有关热节流的详细信息,请参阅 Projector Brightness(投影仪亮度)。
读取温度
这些温度是从相机状态中读取的,因此无需进行捕获。连接到相机后,即可从 camera.state().temperature() 读取每个温度:
const auto temperature = camera.state().temperature();
std::cout << "Temperatures:" << std::endl;
std::cout << " DMD: " << temperature.dmd().value() << " °C" << std::endl;
std::cout << " LED: " << temperature.led().value() << " °C" << std::endl;
std::cout << " Lens: " << temperature.lens().value() << " °C" << std::endl;
std::cout << " PCB: " << temperature.pcb().value() << " °C" << std::endl;
std::cout << " General: " << temperature.general().value() << " °C" << std::endl;
var temperature = camera.State.Temperature;
Console.WriteLine("Temperatures:");
Console.WriteLine(" DMD: {0} °C", temperature.DMD);
Console.WriteLine(" LED: {0} °C", temperature.LED);
Console.WriteLine(" Lens: {0} °C", temperature.Lens);
Console.WriteLine(" PCB: {0} °C", temperature.PCB);
Console.WriteLine(" General: {0} °C", temperature.General);
打印完整的相机状态(camera.state())时,也会包含这些温度,以及相机的连接和网络信息。
备注
如需以汇总、易于解读的报告形式(而非原始数值)获取相机温度(及其他健康指标)的状态,请参阅 相机健康检查。