> This page is for version 3.0 (Latest) (default).
> For other versions, use one of these documentation indexes:
> - 3.0 (Latest) (default): https://docs.nvidia.com/holoscan/sensor-bridge/3-0/llms.txt
> - 2.7: https://docs.nvidia.com/holoscan/sensor-bridge/2-7/llms.txt
> - Archives: https://docs.nvidia.com/holoscan/sensor-bridge/archives/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/holoscan/sensor-bridge/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/holoscan/sensor-bridge/_mcp/server.

# hololink::module::CoeDataChannelInterfaceV1

> Configures a data channel for use with COE encapsulation.

Configures a data channel for use with COE encapsulation.

Use the [`configure_coe`](#configurecoe) method to configure this data channel (as described in the enumeration metadata) for P1722B encapsulation.

```cpp showLineNumbers={false}
#include <hololink/module/coe_data_channel.hpp>
```

**Inherits from:** `hololink::module::ConfigurableService< CoeDataChannelInterfaceV1 >` (public)

---

## Methods

### set_packetizer_for_pixel_format \[#setpacketizerforpixelformat]

```cpp showLineNumbers={false}
virtual hololink_module_status_t hololink::module::CoeDataChannelInterfaceV1::set_packetizer_for_pixel_format(
    uint32_t pixel_format
)
```

Configure the on-device packetizer program based on a CSI data format.

This service exists to configure HSB IP to swizzle image data for interpretation by hardware ISP.

**Returns:** HOLOLINK_MODULE_OK or an error status

**Parameters**

**`pixel_format`** `uint32_t`

See [hololink::module::csi::PixelFormat](../namespaces/csi/enums/pixelformat)

---

### configure_coe \[#configurecoe]

```cpp showLineNumbers={false}
virtual hololink_module_status_t hololink::module::CoeDataChannelInterfaceV1::configure_coe(
    uint8_t channel,
    size_t frame_size,
    uint32_t pixel_width,
    bool vlan_enabled = false
)
```

Configure the data channel for COE (P1722B) framing.

**Returns:** HOLOLINK_MODULE_OK or an error status.

**Parameters**

**`channel`** `uint8_t`

CoE channel to include in egress packets.

---

**`frame_size`** `size_t`

Size of a complete frame, in bytes.

---

**`pixel_width`** `uint32_t`

Bytes per line of the transmitted image.

---

**`vlan_enabled`** `bool` — default: false

Tag the transmitted packets for 802.1Q VLAN.

---

### unconfigure \[#unconfigure]

```cpp showLineNumbers={false}
virtual hololink_module_status_t hololink::module::CoeDataChannelInterfaceV1::unconfigure()
```

Stop transmitting, clearing the state configure_coe() set up.

**Returns:** HOLOLINK_MODULE_OK or an error status.

### configure \[#configure]

```cpp showLineNumbers={false}
virtual void hololink::module::ConfigurableService<CoeDataChannelInterfaceV1>::configure(
    const EnumerationMetadata &
)
```

Use `metadata` contents to initialize this instance.

This routine is guaranteed to be called the first time a call to get_service(metadata) is called on a specific service instance.

### module \[#module]

```cpp showLineNumbers={false}
std::shared_ptr<Module> hololink::module::ServiceBase::module() const
```

The [Module](module) that this service was published from.

The service holds no strong reference to its [Module](module), so this does not extend the [Module](module)'s lifetime.

**Returns:** The owning [Module](module), or an empty pointer if the service has not been published or its [Module](module) no longer exists.

---

## Static methods

### get_service \[#getservice]

#### Fetch a service

```cpp showLineNumbers={false}
static std::shared_ptr<CoeDataChannelInterfaceV1> hololink::module::ConfigurableService<CoeDataChannelInterfaceV1>::get_service(
    const EnumerationMetadata &metadata,
    bool allow_null = false
)
```

Fetch a service, configured by [EnumerationMetadata](enumerationmetadata).

[Module](module) usually caches service objects; so when a specific service instance isn't found, it will be constructed with the current values in [EnumerationMetadata](enumerationmetadata). Later calls to get_service are likely to return that cached instance, ignoring changes to any enumeration metadata that aren't specifically related to service addressing.

**Returns:** A shared pointer to the requested service (\<Derived>).

**Throws:** `std::runtime_error` when allow_null==false and the service lookup (or construction) fails.

**Parameters**

**`metadata`** `const EnumerationMetadata &`

Addressing and configuration for the service.

---

**`allow_null`** `bool` — default: false

Use `true` to return nullptr when the service cannot be resolved; the default `false` value raises a std::runtime_error.

---

#### Overload 2

inline

```cpp showLineNumbers={false}
static std::shared_ptr<CoeDataChannelInterfaceV1> hololink::module::Service<CoeDataChannelInterfaceV1>::get_service(
    std::shared_ptr<Module> module,
    const char *instance_id,
    bool allow_null = false
)
```

Type-safe way to fetch a std::shared_ptr to an instance of \<Derived> from a [Module](module).

Note that [Module](module) usually caches instances, it's likely that calls to get_service with the same locator_id will return pointers to the same implementation object.

**Returns:** A shared pointer to the service instance.

**Parameters**

**`module`** `std::shared_ptr<Module>`

Is the shared object that owns the instance we wish to fetch

---

**`instance_id`** `const char *`

Names the specific object, usually expressed as a set of "name=value;..." pairs, as defined by the implementations themselves. This name is normally fetched by calling `Derived::locator_id(enumeration_metadata)`.

---

**`allow_null`** `bool` — default: false

The default value of `false` causes this routine to throw a std::runtime_error if the service cannot be found within the module; this would be expected to terminate the calling program. If the application wants to handle the error, pass in `true` here and get_service will return `nullptr` when this module doesn't provide the requested service.

---

### for_each_type_id \[#foreachtypeid]

```cpp showLineNumbers={false}
static bool hololink::module::Service<CoeDataChannelInterfaceV1>::for_each_type_id(
    Callback &&cb
)
```

Iterate over every type_id supported by this instance.

The callback signature is `bool(const char*)` — returning false halts the walk; true continues. Iteration is depth-first, so you'll see the most specific implementation types first.