跳到主要内容

RenderState

type RenderState = object;

RenderState 是传递给面板 onRender 函数的信息。

要接收 RenderState 特定部分的更新,你必须先调用 watch 函数并指定字段名。例如,调用 watch("currentTime") 来接收 currentTime 的更新。

如果 RenderState 中缺少某个字段,可能是因为该值自上次调用 onRender 以来没有变化,或者你没有对该字段进行 watch

属性

currentFrame?

optional currentFrame: MessageEvent[];

当前渲染帧的最新消息。这些是自上一个渲染帧以来的新消息。


didSeek?

optional didSeek: boolean;

如果数据源执行了跳转操作,则为 true。这表示某些数据可能被跳过(从未出现在 currentFrame 中),因此面板应清除任何过时的状态,以避免显示错误的数据。


allFrames?

optional allFrames: MessageEvent[];

所有可用的消息。 尽可能列出所有可用消息。

已弃用

请使用 PanelExtensionContext.subscribeMessageRange 代替。


parameters?

optional parameters: Map<string, ParameterValue>;

当前参数值的映射。参数是与数据源关联的键/值对,可能并非所有数据源都支持参数。例如,ROS 1 实时连接通过参数服务器支持参数。


sharedPanelState?

optional sharedPanelState: Record<string, unknown>;

同一类型面板之间共享的临时面板状态。这可以是面板作者希望在面板之间共享的任何数据。


variables?

optional variables: Map<string, VariableValue>;

当前 Studio 变量的映射。变量是键/值对,在当前布局中可被面板和脚本全局访问。


topics?

optional topics: Topic[];

可用主题的列表。此列表包括已订阅和未订阅的主题。


currentTime?

optional currentTime: Time;

表示当前播放时间的时间戳值。


startTime?

optional startTime: Time;

当前数据源播放范围的开始时间戳。对于离线文件,预计会存在此值。对于实时连接,根据数据源的不同,开始时间可能存在也可能不存在。


endTime?

optional endTime: Time;

当前数据源播放范围的结束时间戳。对于离线文件,预计会存在此值。对于实时连接,根据数据源的不同,结束时间可能存在也可能不存在。


previewTime?

optional previewTime: number;

表示预览时间的秒数值。当用户悬停在搜索栏上或面板明确设置预览时间时,会设置预览时间。预览时间是播放范围内的秒数值。

例如,当用户悬停在图表上时,图表面板可能会设置预览时间,以向其他面板发出信号,表明用户当前悬停的位置,并允许它们相应地渲染。


colorScheme?

optional colorScheme: "dark" | "light";

当前在整个应用程序中使用的配色方案。


appSettings?

optional appSettings: Map<string, AppSettingValue>;

应用程序设置。这将只包含使用 @PanelExtensionContext.subscribeAppSettings 订阅的键/值。