quixio / quix-streams

Quix Streams - A library for data streaming and Python Stream Processing

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Add rolling window state helper

tomas-quix opened this issue · comments

Is your feature request related to a problem? Please describe.

def on_dataframe_received_handler(stream_consumer: qx.StreamConsumer, data: qx.TimeseriesData):

    stream_state = stream_consumer.get_rolling_window_state("average_rpm_10s_state", duration_ms = 10000)

    for row in data.timestamps:

        stream_state.add_and_purge(row)

        rpm_values = list(map(lambda x: x.parameters["EngineRPM"], stream_state.items))

        row.add_value("average_rpm_10s", sum(rpm_values) / len(rpm_values))