ExtensionContext
The activate function's first argument is an
ExtensionContext — this context allows you to extend Foxglove for your custom workflows.
export function activate(extensionContext: ExtensionContext) {
// ... call methods on the extensionContext to extend Foxglove
}
Methods
registerPanel()
registerPanel(params): void;
registerPanel adds a new panel to the Foxglove interface. To register a panel you provide a
name and an initPanel function.
The initPanel function accepts a PanelExtensionContext argument, which contains
properties and methods for accessing panel data and rendering UI updates. It also returns an
optional cleanup function to run when the extension panelElement unmounts.
See the Creating a custom panel guide for more details.
Parameters
| Parameter | Type |
|---|---|
params | ExtensionPanelRegistration |
Returns
void
registerMessageConverter()
Call Signature
registerMessageConverter(args): void;
registerMessageConverter registers converters to transform message data within Foxglove.
You can register two kinds of converters: schema and topic.
schema converters transform messages of one schema into another. Most often this is used to
turn messages using a custom or proprietary schema into a well-known Foxglove schema for
visualization in one of the built-in panels. schema converters allow a built-in panel which
requires well-known messages to natively support visualizing any topic for which there is a
schema converter registered. An example is converting an acme.Gps message to
foxglove.LocationFix to visualize any topics which publish acme.Gps messages in the
built-in map panel.
See: RegisterMessageConverterArgsSchema.
topic converters transform messages from one-or-more input topics to a new in-app topic.
Topic converters are more flexible than schema converters but require more logic and
decisions to implement. They can transform existing data into new topics for plotting,
inspecting, and visualizing. Topic converters can combine data from several input topics,
maintain state, and create messages from these multiple topics. They can also do the opposite
and take a single topic and turn it into multiple output topics by registering multiple topic
converters for the same input topic but different output topics.
See: RegisterMessageConverterArgsTopic.
Parameters
| Parameter | Type |
|---|---|
args | RegisterMessageConverterArgs |
Returns
void
Call Signature
registerMessageConverter<Src>(args): void;
Type Parameters
| Type Parameter |
|---|
Src |
Parameters
| Parameter | Type |
|---|---|
args | LegacyRegisterMessageConverterArgs<Src> |
Returns
void
Deprecated
Use registerMessageConverter with type: "schema" or type: "topic" instead.
Call Signature
registerMessageConverter<Src>(args): void;
Register a schema message converter.
See: RegisterMessageConverterArgsSchema.
Type Parameters
| Type Parameter |
|---|
Src |
Parameters
| Parameter | Type |
|---|---|
args | RegisterMessageConverterArgsSchema<Src> |
Returns
void
Call Signature
registerMessageConverter(args): void;
Register a topic message converter.
See: RegisterMessageConverterArgsTopic.
Parameters
| Parameter | Type |
|---|---|
args | RegisterMessageConverterArgsTopic |
Returns
void
registerTopicAliases()
registerTopicAliases(aliasFunction): void;
registerTopicAliases registers a function to compute topic aliases. The provided alias
function should accept an argument with two fields – topics with the data source's original
topics and globalVariables with the current layout's variables – and return a list of aliased
topics.
Your alias function runs whenever there are changes to the data source topics or variables. Any aliases it returns are added to the data source topics (replacing any previously returned aliases) and available for subscribing or use within message paths as if they were real topics.
Parameters
| Parameter | Type |
|---|---|
aliasFunction | TopicAliasFunction |
Returns
void