# SystemInformationRVC4

SystemInformationRVC4 extends
[SystemInformation](https://docs.luxonis.com/software-v3/depthai/depthai-components/messages/system_information.md) with telemetry
that is specific to OAK devices based on the RVC4 platform. The
[SystemLogger](https://docs.luxonis.com/software-v3/depthai/depthai-components/nodes/system_logger.md) node publishes it when an
application runs on RVC4 hardware, exposing CPU averages, process-level CPU and memory usage, and expanded temperature sensors for
the RVC4 subsystems.

Use the message exactly like SystemInformation: subscribe to SystemLogger.out, or forward the data through a
[MessageGroup](https://docs.luxonis.com/software-v3/depthai/depthai-components/messages/message_group.md) to the host. At runtime
you can inspect fields such as chipTemperature, ddrMemoryUsage, cpuAvgUsage, and the process-level usage fields to monitor device
health.

## Example

```python
import depthai as dai

def printSystemInformationRVC4(info: dai.SystemInformationRVC4):
    m = 1024 * 1024  # MiB
    print(f"Ddr used / total - {info.ddrMemoryUsage.used / m:.2f} / {info.ddrMemoryUsage.total / m:.2f} MiB")
    print(f"Average Cpu usage: {info.cpuAvgUsage.average * 100:.2f}%")
    print(f"Device process usage - Memory: {info.processMemoryUsage / 1024:.2f} MiB, Cpu: {info.processCpuAvgUsage.average * 100:.2f}%")

    t = info.chipTemperature
    print(f"Chip temperature - average: {t.average:.2f}, cpuss: {t.cpuss:.2f}, gpuss: {t.gpuss:.2f}, mdmss: {t.mdmss:.2f}, video: {t.video:.2f}, ddr: {t.ddr:.2f}, camera: {t.camera:.2f}")
    print("----------------------------------------")

pipeline = dai.Pipeline()
sysLog = pipeline.create(dai.node.SystemLogger)
sysLog.setRate(1)
sysLogQueue = sysLog.out.createOutputQueue(maxSize=4, blocking=False)

pipeline.start()
while pipeline.isRunning():
    sysInfo = sysLogQueue.get()
    printSystemInformationRVC4(sysInfo)
```

## Reference

### dai::SystemInformationRVC4

Kind: class

SystemInformation message Carries memory usage, cpu usage and chip temperatures.

#### MemoryInfo ddrMemoryUsage

Kind: variable

#### int64_t processMemoryUsage

Kind: variable

#### CpuUsage cpuAvgUsage

Kind: variable

#### CpuUsage processCpuAvgUsage

Kind: variable

#### std::vector< CpuUsage > cpuUsages

Kind: variable

#### ChipTemperatureRVC4 chipTemperature

Kind: variable

#### SystemInformationRVC4()

Kind: function

Construct SystemInformation message.

#### ~SystemInformationRVC4()

Kind: function

#### void serialize(std::vector< std::uint8_t > & metadata, DatatypeEnum & datatype)

Kind: function

#### DatatypeEnum getDatatype()

Kind: function

Get the datatype of this specific message.

return: DatatypeEnum

#### DEPTHAI_SERIALIZE(SystemInformationRVC4, ddrMemoryUsage, processMemoryUsage, cpuAvgUsage, processCpuAvgUsage, cpuUsages,
chipTemperature)

Kind: function

### Need assistance?

Head over to [Discussion Forum](https://discuss.luxonis.com/) for technical support or any other questions you might have.
