Tutorial 4 - A metrological datastream.

In this tutorial we introduce the new metrologically enabled agents. We initialize an agent, which generates an infinite sine signal. The signal is generated from the built-in class MetrologicalSineGenerator which delivers on each call one timestamp and one value each with associated uncertainties.

The MetrologicalSineGeneratorAgent is based on the new class agentMET4FOF.metrological_agents.MetrologicalAgent. We only adapt the methods init_parameters() and agent_loop(). This we need to hand over an instance of the signal generating class and to generate the actual samples. The rest of the buffering and plotting logic is encapsulated inside of the new base classes.

[1]:
# %load tutorial_4_metrological_streams.py
from agentMET4FOF.agents import AgentNetwork
from agentMET4FOF.metrological_agents import MetrologicalAgent, MetrologicalMonitorAgent
from agentMET4FOF.metrological_streams import (
    MetrologicalDataStreamMET4FOF,
    MetrologicalSineGenerator,
)


class MetrologicalSineGeneratorAgent(MetrologicalAgent):
    """An agent streaming a sine signal

    Takes samples from an instance of :py:class:`MetrologicalSineGenerator` pushes
    them sample by sample to connected agents via its output channel.
    """

    # The datatype of the stream will be MetrologicalSineGenerator.
    _stream: MetrologicalDataStreamMET4FOF

    def init_parameters(
        self,
        signal: MetrologicalDataStreamMET4FOF = MetrologicalSineGenerator(),
        **kwargs
    ):
        """Initialize the input data stream

        Parameters
        ----------
        signal : MetrologicalDataStreamMET4FOF
            the underlying signal for the generator
        """
        self._stream = signal
        super().init_parameters()
        self.set_output_data(channel="default", metadata=self._stream.metadata)

    def agent_loop(self):
        """Model the agent's behaviour

        On state *Running* the agent will extract sample by sample the input
        datastream's content and push it via invoking
        :py:method:`AgentMET4FOF.send_output`.
        """
        if self.current_state == "Running":
            self.set_output_data(channel="default", data=[self._stream.next_sample()])
            super().agent_loop()


def demonstrate_metrological_stream():

    # start agent network server
    agent_network = AgentNetwork(dashboard_modules=True)

    # Initialize signal generating class outside of agent framework.
    signal = MetrologicalSineGenerator()

    # Initialize metrologically enabled agent taking name from signal source metadata.
    source_name = signal.metadata.metadata["device_id"]
    source_agent = agent_network.add_agent(
        name=source_name, agentType=MetrologicalSineGeneratorAgent
    )
    source_agent.init_parameters(signal)

    # Initialize metrologically enabled plotting agent.
    monitor_agent = agent_network.add_agent(
        "MonitorAgent", agentType=MetrologicalMonitorAgent
    )

    # agent_network.bind_agents(source_agent, monitor_agent)
    # Bind agents.
    source_agent.bind_output(monitor_agent)

    # Set all agents states to "Running".
    agent_network.set_running_state()

    # Allow for shutting down the network after execution.
    return agent_network


if __name__ == "__main__":
    demonstrate_metrological_stream()
Starting NameServer...
Broadcast server running on 0.0.0.0:9091
NS running on 127.0.0.1:3333 (127.0.0.1)
URI = PYRO:Pyro.NameServer@127.0.0.1:3333
Dash is running on http://127.0.0.1:8050/

 * Serving Flask app "agentMET4FOF.dashboard.Dashboard" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:8050/ (Press CTRL+C to quit)
INFO [2020-12-08 16:35:51.844625] (SineGenerator): INITIALIZED
INFO [2020-12-08 16:35:51.924866] (MonitorAgent): INITIALIZED
[2020-12-08 16:35:51.950078] (SineGenerator): Connected output module: MonitorAgent
SET STATE:   Running
[2020-12-08 16:35:52.851161] (SineGenerator): Pack time: 0.000906
[2020-12-08 16:35:52.856124] (SineGenerator): Sending: [array([[0.        , 0.        , 0.38113488, 0.25      ]]), <time_series_metadata.scheme.MetaData object at 0x7f9c5be41280>]
[2020-12-08 16:35:52.858618] (MonitorAgent): Received: {'from': 'SineGenerator', 'data': array([[0.        , 0.        , 0.38113488, 0.25      ]]), 'metadata': <time_series_metadata.scheme.MetaData object at 0x7f9c5be42430>, 'senderType': 'MetrologicalSineGeneratorAgent', 'channel': 'default'}
[2020-12-08 16:35:52.862388] (MonitorAgent): Buffer: {'SineGenerator': {'data': array([[0.        , 0.        , 0.38113488, 0.25      ]]), 'metadata': [<time_series_metadata.scheme.MetaData object at 0x7f9c5be42430>]}}
[2020-12-08 16:35:52.863224] (MonitorAgent): Tproc: 0.003321
[2020-12-08 16:35:53.849489] (SineGenerator): Pack time: 0.000478
[2020-12-08 16:35:53.851348] (SineGenerator): Sending: [array([[0.002     , 0.        , 0.38406741, 0.25      ]]), <time_series_metadata.scheme.MetaData object at 0x7f9c5be41280>]
[2020-12-08 16:35:53.852346] (MonitorAgent): Received: {'from': 'SineGenerator', 'data': array([[0.002     , 0.        , 0.38406741, 0.25      ]]), 'metadata': <time_series_metadata.scheme.MetaData object at 0x7f9c5be424f0>, 'senderType': 'MetrologicalSineGeneratorAgent', 'channel': 'default'}
[2020-12-08 16:35:53.855781] (MonitorAgent): Buffer: {'SineGenerator': {'data': array([[0.        , 0.        , 0.38113488, 0.25      ],
       [0.002     , 0.        , 0.38406741, 0.25      ]]), 'metadata': [<time_series_metadata.scheme.MetaData object at 0x7f9c5be42430>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be424f0>]}}
[2020-12-08 16:35:53.856668] (MonitorAgent): Tproc: 0.003573
127.0.0.1 - - [08/Dec/2020 17:35:54] "POST /_dash-update-component HTTP/1.1" 204 -
[2020-12-08 16:35:54.849635] (SineGenerator): Pack time: 0.000496
[2020-12-08 16:35:54.851330] (SineGenerator): Sending: [array([[0.004     , 0.        , 1.08806646, 0.25      ]]), <time_series_metadata.scheme.MetaData object at 0x7f9c5be41280>]
[2020-12-08 16:35:54.852559] (MonitorAgent): Received: {'from': 'SineGenerator', 'data': array([[0.004     , 0.        , 1.08806646, 0.25      ]]), 'metadata': <time_series_metadata.scheme.MetaData object at 0x7f9c4259fa90>, 'senderType': 'MetrologicalSineGeneratorAgent', 'channel': 'default'}
[2020-12-08 16:35:54.856011] (MonitorAgent): Buffer: {'SineGenerator': {'data': array([[0.        , 0.        , 0.38113488, 0.25      ],
       [0.002     , 0.        , 0.38406741, 0.25      ],
       [0.004     , 0.        , 1.08806646, 0.25      ]]), 'metadata': [<time_series_metadata.scheme.MetaData object at 0x7f9c5be42430>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be424f0>, <time_series_metadata.scheme.MetaData object at 0x7f9c4259fa90>]}}
[2020-12-08 16:35:54.856435] (MonitorAgent): Tproc: 0.003406
NS shut down.
[2020-12-08 16:35:55.849988] (SineGenerator): Pack time: 0.000486
[2020-12-08 16:35:55.851918] (SineGenerator): Sending: [array([[0.006     , 0.        , 1.64464102, 0.25      ]]), <time_series_metadata.scheme.MetaData object at 0x7f9c5be41280>]
[2020-12-08 16:35:55.852713] (MonitorAgent): Received: {'from': 'SineGenerator', 'data': array([[0.006     , 0.        , 1.64464102, 0.25      ]]), 'metadata': <time_series_metadata.scheme.MetaData object at 0x7f9c5be30ca0>, 'senderType': 'MetrologicalSineGeneratorAgent', 'channel': 'default'}
[2020-12-08 16:35:55.855808] (MonitorAgent): Buffer: {'SineGenerator': {'data': array([[0.        , 0.        , 0.38113488, 0.25      ],
       [0.002     , 0.        , 0.38406741, 0.25      ],
       [0.004     , 0.        , 1.08806646, 0.25      ],
       [0.006     , 0.        , 1.64464102, 0.25      ]]), 'metadata': [<time_series_metadata.scheme.MetaData object at 0x7f9c5be42430>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be424f0>, <time_series_metadata.scheme.MetaData object at 0x7f9c4259fa90>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30ca0>]}}
[2020-12-08 16:35:55.856235] (MonitorAgent): Tproc: 0.003005
[2020-12-08 16:35:56.850081] (SineGenerator): Pack time: 0.000609
[2020-12-08 16:35:56.852009] (SineGenerator): Sending: [array([[0.008     , 0.        , 0.62548625, 0.25      ]]), <time_series_metadata.scheme.MetaData object at 0x7f9c5be41280>]
[2020-12-08 16:35:56.852667] (MonitorAgent): Received: {'from': 'SineGenerator', 'data': array([[0.008     , 0.        , 0.62548625, 0.25      ]]), 'metadata': <time_series_metadata.scheme.MetaData object at 0x7f9c5be30280>, 'senderType': 'MetrologicalSineGeneratorAgent', 'channel': 'default'}
[2020-12-08 16:35:56.858056] (MonitorAgent): Buffer: {'SineGenerator': {'data': array([[0.        , 0.        , 0.38113488, 0.25      ],
       [0.002     , 0.        , 0.38406741, 0.25      ],
       [0.004     , 0.        , 1.08806646, 0.25      ],
       [0.006     , 0.        , 1.64464102, 0.25      ],
       [0.008     , 0.        , 0.62548625, 0.25      ]]), 'metadata': [<time_series_metadata.scheme.MetaData object at 0x7f9c5be42430>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be424f0>, <time_series_metadata.scheme.MetaData object at 0x7f9c4259fa90>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30ca0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30280>]}}
[2020-12-08 16:35:56.858860] (MonitorAgent): Tproc: 0.005392
[2020-12-08 16:35:57.849846] (SineGenerator): Pack time: 0.000699
[2020-12-08 16:35:57.851822] (SineGenerator): Sending: [array([[0.01     , 0.       , 0.2340912, 0.25     ]]), <time_series_metadata.scheme.MetaData object at 0x7f9c5be41280>]
[2020-12-08 16:35:57.853285] (MonitorAgent): Received: {'from': 'SineGenerator', 'data': array([[0.01     , 0.       , 0.2340912, 0.25     ]]), 'metadata': <time_series_metadata.scheme.MetaData object at 0x7f9c5be30c40>, 'senderType': 'MetrologicalSineGeneratorAgent', 'channel': 'default'}
[2020-12-08 16:35:57.858147] (MonitorAgent): Buffer: {'SineGenerator': {'data': array([[0.        , 0.        , 0.38113488, 0.25      ],
       [0.002     , 0.        , 0.38406741, 0.25      ],
       [0.004     , 0.        , 1.08806646, 0.25      ],
       [0.006     , 0.        , 1.64464102, 0.25      ],
       [0.008     , 0.        , 0.62548625, 0.25      ],
       [0.01      , 0.        , 0.2340912 , 0.25      ]]), 'metadata': [<time_series_metadata.scheme.MetaData object at 0x7f9c5be42430>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be424f0>, <time_series_metadata.scheme.MetaData object at 0x7f9c4259fa90>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30ca0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30280>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30c40>]}}
[2020-12-08 16:35:57.858777] (MonitorAgent): Tproc: 0.00489
[2020-12-08 16:35:58.849640] (SineGenerator): Pack time: 0.000475
[2020-12-08 16:35:58.851474] (SineGenerator): Sending: [array([[ 0.012     ,  0.        , -0.75106323,  0.25      ]]), <time_series_metadata.scheme.MetaData object at 0x7f9c5be41280>]
[2020-12-08 16:35:58.852211] (MonitorAgent): Received: {'from': 'SineGenerator', 'data': array([[ 0.012     ,  0.        , -0.75106323,  0.25      ]]), 'metadata': <time_series_metadata.scheme.MetaData object at 0x7f9c5be30b50>, 'senderType': 'MetrologicalSineGeneratorAgent', 'channel': 'default'}
[2020-12-08 16:35:58.855954] (MonitorAgent): Buffer: {'SineGenerator': {'data': array([[ 0.        ,  0.        ,  0.38113488,  0.25      ],
       [ 0.002     ,  0.        ,  0.38406741,  0.25      ],
       [ 0.004     ,  0.        ,  1.08806646,  0.25      ],
       [ 0.006     ,  0.        ,  1.64464102,  0.25      ],
       [ 0.008     ,  0.        ,  0.62548625,  0.25      ],
       [ 0.01      ,  0.        ,  0.2340912 ,  0.25      ],
       [ 0.012     ,  0.        , -0.75106323,  0.25      ]]), 'metadata': [<time_series_metadata.scheme.MetaData object at 0x7f9c5be42430>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be424f0>, <time_series_metadata.scheme.MetaData object at 0x7f9c4259fa90>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30ca0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30280>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30c40>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30b50>]}}
[2020-12-08 16:35:58.856424] (MonitorAgent): Tproc: 0.003445
[2020-12-08 16:35:59.849609] (SineGenerator): Pack time: 0.000575
[2020-12-08 16:35:59.851136] (SineGenerator): Sending: [array([[ 0.014     ,  0.        , -0.78487603,  0.25      ]]), <time_series_metadata.scheme.MetaData object at 0x7f9c5be41280>]
[2020-12-08 16:35:59.852431] (MonitorAgent): Received: {'from': 'SineGenerator', 'data': array([[ 0.014     ,  0.        , -0.78487603,  0.25      ]]), 'metadata': <time_series_metadata.scheme.MetaData object at 0x7f9c5be30dc0>, 'senderType': 'MetrologicalSineGeneratorAgent', 'channel': 'default'}
[2020-12-08 16:35:59.856202] (MonitorAgent): Buffer: {'SineGenerator': {'data': array([[ 0.        ,  0.        ,  0.38113488,  0.25      ],
       [ 0.002     ,  0.        ,  0.38406741,  0.25      ],
       [ 0.004     ,  0.        ,  1.08806646,  0.25      ],
       [ 0.006     ,  0.        ,  1.64464102,  0.25      ],
       [ 0.008     ,  0.        ,  0.62548625,  0.25      ],
       [ 0.01      ,  0.        ,  0.2340912 ,  0.25      ],
       [ 0.012     ,  0.        , -0.75106323,  0.25      ],
       [ 0.014     ,  0.        , -0.78487603,  0.25      ]]), 'metadata': [<time_series_metadata.scheme.MetaData object at 0x7f9c5be42430>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be424f0>, <time_series_metadata.scheme.MetaData object at 0x7f9c4259fa90>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30ca0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30280>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30c40>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30b50>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30dc0>]}}
[2020-12-08 16:35:59.856536] (MonitorAgent): Tproc: 0.003695
[2020-12-08 16:36:00.849874] (SineGenerator): Pack time: 0.000584
[2020-12-08 16:36:00.851708] (SineGenerator): Sending: [array([[ 0.016     ,  0.        , -0.32752173,  0.25      ]]), <time_series_metadata.scheme.MetaData object at 0x7f9c5be41280>]
[2020-12-08 16:36:00.852620] (MonitorAgent): Received: {'from': 'SineGenerator', 'data': array([[ 0.016     ,  0.        , -0.32752173,  0.25      ]]), 'metadata': <time_series_metadata.scheme.MetaData object at 0x7f9c5be302e0>, 'senderType': 'MetrologicalSineGeneratorAgent', 'channel': 'default'}
[2020-12-08 16:36:00.857987] (MonitorAgent): Buffer: {'SineGenerator': {'data': array([[ 0.        ,  0.        ,  0.38113488,  0.25      ],
       [ 0.002     ,  0.        ,  0.38406741,  0.25      ],
       [ 0.004     ,  0.        ,  1.08806646,  0.25      ],
       [ 0.006     ,  0.        ,  1.64464102,  0.25      ],
       [ 0.008     ,  0.        ,  0.62548625,  0.25      ],
       [ 0.01      ,  0.        ,  0.2340912 ,  0.25      ],
       [ 0.012     ,  0.        , -0.75106323,  0.25      ],
       [ 0.014     ,  0.        , -0.78487603,  0.25      ],
       [ 0.016     ,  0.        , -0.32752173,  0.25      ]]), 'metadata': [<time_series_metadata.scheme.MetaData object at 0x7f9c5be42430>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be424f0>, <time_series_metadata.scheme.MetaData object at 0x7f9c4259fa90>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30ca0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30280>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30c40>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30b50>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30dc0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be302e0>]}}
[2020-12-08 16:36:00.858987] (MonitorAgent): Tproc: 0.005973
[2020-12-08 16:36:01.849498] (SineGenerator): Pack time: 0.000485
[2020-12-08 16:36:01.851298] (SineGenerator): Sending: [array([[ 0.018    ,  0.       , -0.4308233,  0.25     ]]), <time_series_metadata.scheme.MetaData object at 0x7f9c5be41280>]
[2020-12-08 16:36:01.852216] (MonitorAgent): Received: {'from': 'SineGenerator', 'data': array([[ 0.018    ,  0.       , -0.4308233,  0.25     ]]), 'metadata': <time_series_metadata.scheme.MetaData object at 0x7f9c5be30a60>, 'senderType': 'MetrologicalSineGeneratorAgent', 'channel': 'default'}
[2020-12-08 16:36:01.859510] (MonitorAgent): Buffer: {'SineGenerator': {'data': array([[ 0.        ,  0.        ,  0.38113488,  0.25      ],
       [ 0.002     ,  0.        ,  0.38406741,  0.25      ],
       [ 0.004     ,  0.        ,  1.08806646,  0.25      ],
       [ 0.006     ,  0.        ,  1.64464102,  0.25      ],
       [ 0.008     ,  0.        ,  0.62548625,  0.25      ],
       [ 0.01      ,  0.        ,  0.2340912 ,  0.25      ],
       [ 0.012     ,  0.        , -0.75106323,  0.25      ],
       [ 0.014     ,  0.        , -0.78487603,  0.25      ],
       [ 0.016     ,  0.        , -0.32752173,  0.25      ],
       [ 0.018     ,  0.        , -0.4308233 ,  0.25      ]]), 'metadata': [<time_series_metadata.scheme.MetaData object at 0x7f9c5be42430>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be424f0>, <time_series_metadata.scheme.MetaData object at 0x7f9c4259fa90>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30ca0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30280>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30c40>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30b50>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30dc0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be302e0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30a60>]}}
[2020-12-08 16:36:01.859950] (MonitorAgent): Tproc: 0.007002
[2020-12-08 16:36:02.850083] (SineGenerator): Pack time: 0.000636
[2020-12-08 16:36:02.852163] (SineGenerator): Sending: [array([[0.02      , 0.        , 0.17061022, 0.25      ]]), <time_series_metadata.scheme.MetaData object at 0x7f9c5be41280>]
[2020-12-08 16:36:02.853465] (MonitorAgent): Received: {'from': 'SineGenerator', 'data': array([[0.02      , 0.        , 0.17061022, 0.25      ]]), 'metadata': <time_series_metadata.scheme.MetaData object at 0x7f9c5be30b80>, 'senderType': 'MetrologicalSineGeneratorAgent', 'channel': 'default'}
[2020-12-08 16:36:02.860400] (MonitorAgent): Buffer: {'SineGenerator': {'data': array([[ 0.        ,  0.        ,  0.38113488,  0.25      ],
       [ 0.002     ,  0.        ,  0.38406741,  0.25      ],
       [ 0.004     ,  0.        ,  1.08806646,  0.25      ],
       [ 0.006     ,  0.        ,  1.64464102,  0.25      ],
       [ 0.008     ,  0.        ,  0.62548625,  0.25      ],
       [ 0.01      ,  0.        ,  0.2340912 ,  0.25      ],
       [ 0.012     ,  0.        , -0.75106323,  0.25      ],
       [ 0.014     ,  0.        , -0.78487603,  0.25      ],
       [ 0.016     ,  0.        , -0.32752173,  0.25      ],
       [ 0.018     ,  0.        , -0.4308233 ,  0.25      ],
       [ 0.02      ,  0.        ,  0.17061022,  0.25      ]]), 'metadata': [<time_series_metadata.scheme.MetaData object at 0x7f9c5be42430>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be424f0>, <time_series_metadata.scheme.MetaData object at 0x7f9c4259fa90>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30ca0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30280>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30c40>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30b50>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30dc0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be302e0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30a60>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30b80>]}}
[2020-12-08 16:36:02.861199] (MonitorAgent): Tproc: 0.007118
[2020-12-08 16:36:03.850169] (SineGenerator): Pack time: 0.000671
[2020-12-08 16:36:03.852236] (SineGenerator): Sending: [array([[0.022     , 0.        , 0.61248461, 0.25      ]]), <time_series_metadata.scheme.MetaData object at 0x7f9c5be41280>]
[2020-12-08 16:36:03.853339] (MonitorAgent): Received: {'from': 'SineGenerator', 'data': array([[0.022     , 0.        , 0.61248461, 0.25      ]]), 'metadata': <time_series_metadata.scheme.MetaData object at 0x7f9c5be42970>, 'senderType': 'MetrologicalSineGeneratorAgent', 'channel': 'default'}
[2020-12-08 16:36:03.859922] (MonitorAgent): Buffer: {'SineGenerator': {'data': array([[ 0.        ,  0.        ,  0.38113488,  0.25      ],
       [ 0.002     ,  0.        ,  0.38406741,  0.25      ],
       [ 0.004     ,  0.        ,  1.08806646,  0.25      ],
       [ 0.006     ,  0.        ,  1.64464102,  0.25      ],
       [ 0.008     ,  0.        ,  0.62548625,  0.25      ],
       [ 0.01      ,  0.        ,  0.2340912 ,  0.25      ],
       [ 0.012     ,  0.        , -0.75106323,  0.25      ],
       [ 0.014     ,  0.        , -0.78487603,  0.25      ],
       [ 0.016     ,  0.        , -0.32752173,  0.25      ],
       [ 0.018     ,  0.        , -0.4308233 ,  0.25      ],
       [ 0.02      ,  0.        ,  0.17061022,  0.25      ],
       [ 0.022     ,  0.        ,  0.61248461,  0.25      ]]), 'metadata': [<time_series_metadata.scheme.MetaData object at 0x7f9c5be42430>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be424f0>, <time_series_metadata.scheme.MetaData object at 0x7f9c4259fa90>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30ca0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30280>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30c40>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30b50>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30dc0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be302e0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30a60>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30b80>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be42970>]}}
[2020-12-08 16:36:03.860947] (MonitorAgent): Tproc: 0.007144
[2020-12-08 16:36:04.850068] (SineGenerator): Pack time: 0.000676
[2020-12-08 16:36:04.852543] (MonitorAgent): Received: {'from': 'SineGenerator', 'data': array([[0.024     , 0.        , 0.92631304, 0.25      ]]), 'metadata': <time_series_metadata.scheme.MetaData object at 0x7f9c5be42490>, 'senderType': 'MetrologicalSineGeneratorAgent', 'channel': 'default'}
[2020-12-08 16:36:04.853209] (SineGenerator): Sending: [array([[0.024     , 0.        , 0.92631304, 0.25      ]]), <time_series_metadata.scheme.MetaData object at 0x7f9c5be41280>]
[2020-12-08 16:36:04.860899] (MonitorAgent): Buffer: {'SineGenerator': {'data': array([[ 0.        ,  0.        ,  0.38113488,  0.25      ],
       [ 0.002     ,  0.        ,  0.38406741,  0.25      ],
       [ 0.004     ,  0.        ,  1.08806646,  0.25      ],
       [ 0.006     ,  0.        ,  1.64464102,  0.25      ],
       [ 0.008     ,  0.        ,  0.62548625,  0.25      ],
       [ 0.01      ,  0.        ,  0.2340912 ,  0.25      ],
       [ 0.012     ,  0.        , -0.75106323,  0.25      ],
       [ 0.014     ,  0.        , -0.78487603,  0.25      ],
       [ 0.016     ,  0.        , -0.32752173,  0.25      ],
       [ 0.018     ,  0.        , -0.4308233 ,  0.25      ],
       [ 0.02      ,  0.        ,  0.17061022,  0.25      ],
       [ 0.022     ,  0.        ,  0.61248461,  0.25      ],
       [ 0.024     ,  0.        ,  0.92631304,  0.25      ]]), 'metadata': [<time_series_metadata.scheme.MetaData object at 0x7f9c5be42430>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be424f0>, <time_series_metadata.scheme.MetaData object at 0x7f9c4259fa90>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30ca0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30280>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30c40>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30b50>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30dc0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be302e0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30a60>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30b80>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be42970>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be42490>]}}
[2020-12-08 16:36:04.861657] (MonitorAgent): Tproc: 0.008434
[2020-12-08 16:36:05.849677] (SineGenerator): Pack time: 0.00048
[2020-12-08 16:36:05.851593] (SineGenerator): Sending: [array([[0.026    , 0.       , 1.1406959, 0.25     ]]), <time_series_metadata.scheme.MetaData object at 0x7f9c5be41280>]
[2020-12-08 16:36:05.852250] (MonitorAgent): Received: {'from': 'SineGenerator', 'data': array([[0.026    , 0.       , 1.1406959, 0.25     ]]), 'metadata': <time_series_metadata.scheme.MetaData object at 0x7f9c5be42b50>, 'senderType': 'MetrologicalSineGeneratorAgent', 'channel': 'default'}
[2020-12-08 16:36:05.860686] (MonitorAgent): Buffer: {'SineGenerator': {'data': array([[ 0.        ,  0.        ,  0.38113488,  0.25      ],
       [ 0.002     ,  0.        ,  0.38406741,  0.25      ],
       [ 0.004     ,  0.        ,  1.08806646,  0.25      ],
       [ 0.006     ,  0.        ,  1.64464102,  0.25      ],
       [ 0.008     ,  0.        ,  0.62548625,  0.25      ],
       [ 0.01      ,  0.        ,  0.2340912 ,  0.25      ],
       [ 0.012     ,  0.        , -0.75106323,  0.25      ],
       [ 0.014     ,  0.        , -0.78487603,  0.25      ],
       [ 0.016     ,  0.        , -0.32752173,  0.25      ],
       [ 0.018     ,  0.        , -0.4308233 ,  0.25      ],
       [ 0.02      ,  0.        ,  0.17061022,  0.25      ],
       [ 0.022     ,  0.        ,  0.61248461,  0.25      ],
       [ 0.024     ,  0.        ,  0.92631304,  0.25      ],
       [ 0.026     ,  0.        ,  1.1406959 ,  0.25      ]]), 'metadata': [<time_series_metadata.scheme.MetaData object at 0x7f9c5be42430>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be424f0>, <time_series_metadata.scheme.MetaData object at 0x7f9c4259fa90>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30ca0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30280>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30c40>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30b50>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30dc0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be302e0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30a60>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30b80>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be42970>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be42490>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be42b50>]}}
[2020-12-08 16:36:05.861250] (MonitorAgent): Tproc: 0.008546
[2020-12-08 16:36:06.847952] (SineGenerator): Pack time: 8.6e-05
[2020-12-08 16:36:06.848184] (SineGenerator): Sending: [array([[0.028     , 0.        , 0.50636166, 0.25      ]]), <time_series_metadata.scheme.MetaData object at 0x7f9c5be41280>]
[2020-12-08 16:36:06.848427] (MonitorAgent): Received: {'from': 'SineGenerator', 'data': array([[0.028     , 0.        , 0.50636166, 0.25      ]]), 'metadata': <time_series_metadata.scheme.MetaData object at 0x7f9c5be429a0>, 'senderType': 'MetrologicalSineGeneratorAgent', 'channel': 'default'}
[2020-12-08 16:36:06.849281] (MonitorAgent): Buffer: {'SineGenerator': {'data': array([[ 0.        ,  0.        ,  0.38113488,  0.25      ],
       [ 0.002     ,  0.        ,  0.38406741,  0.25      ],
       [ 0.004     ,  0.        ,  1.08806646,  0.25      ],
       [ 0.006     ,  0.        ,  1.64464102,  0.25      ],
       [ 0.008     ,  0.        ,  0.62548625,  0.25      ],
       [ 0.01      ,  0.        ,  0.2340912 ,  0.25      ],
       [ 0.012     ,  0.        , -0.75106323,  0.25      ],
       [ 0.014     ,  0.        , -0.78487603,  0.25      ],
       [ 0.016     ,  0.        , -0.32752173,  0.25      ],
       [ 0.018     ,  0.        , -0.4308233 ,  0.25      ],
       [ 0.02      ,  0.        ,  0.17061022,  0.25      ],
       [ 0.022     ,  0.        ,  0.61248461,  0.25      ],
       [ 0.024     ,  0.        ,  0.92631304,  0.25      ],
       [ 0.026     ,  0.        ,  1.1406959 ,  0.25      ],
       [ 0.028     ,  0.        ,  0.50636166,  0.25      ]]), 'metadata': [<time_series_metadata.scheme.MetaData object at 0x7f9c5be42430>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be424f0>, <time_series_metadata.scheme.MetaData object at 0x7f9c4259fa90>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30ca0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30280>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30c40>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30b50>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30dc0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be302e0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30a60>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30b80>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be42970>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be42490>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be42b50>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be429a0>]}}
[2020-12-08 16:36:06.849380] (MonitorAgent): Tproc: 0.000878
[2020-12-08 16:36:07.849551] (SineGenerator): Pack time: 0.000487
[2020-12-08 16:36:07.851518] (SineGenerator): Sending: [array([[0.03      , 0.        , 0.16248346, 0.25      ]]), <time_series_metadata.scheme.MetaData object at 0x7f9c5be41280>]
[2020-12-08 16:36:07.852346] (MonitorAgent): Received: {'from': 'SineGenerator', 'data': array([[0.03      , 0.        , 0.16248346, 0.25      ]]), 'metadata': <time_series_metadata.scheme.MetaData object at 0x7f9c5be427f0>, 'senderType': 'MetrologicalSineGeneratorAgent', 'channel': 'default'}
[2020-12-08 16:36:07.866588] (MonitorAgent): Buffer: {'SineGenerator': {'data': array([[ 0.        ,  0.        ,  0.38113488,  0.25      ],
       [ 0.002     ,  0.        ,  0.38406741,  0.25      ],
       [ 0.004     ,  0.        ,  1.08806646,  0.25      ],
       [ 0.006     ,  0.        ,  1.64464102,  0.25      ],
       [ 0.008     ,  0.        ,  0.62548625,  0.25      ],
       [ 0.01      ,  0.        ,  0.2340912 ,  0.25      ],
       [ 0.012     ,  0.        , -0.75106323,  0.25      ],
       [ 0.014     ,  0.        , -0.78487603,  0.25      ],
       [ 0.016     ,  0.        , -0.32752173,  0.25      ],
       [ 0.018     ,  0.        , -0.4308233 ,  0.25      ],
       [ 0.02      ,  0.        ,  0.17061022,  0.25      ],
       [ 0.022     ,  0.        ,  0.61248461,  0.25      ],
       [ 0.024     ,  0.        ,  0.92631304,  0.25      ],
       [ 0.026     ,  0.        ,  1.1406959 ,  0.25      ],
       [ 0.028     ,  0.        ,  0.50636166,  0.25      ],
       [ 0.03      ,  0.        ,  0.16248346,  0.25      ]]), 'metadata': [<time_series_metadata.scheme.MetaData object at 0x7f9c5be42430>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be424f0>, <time_series_metadata.scheme.MetaData object at 0x7f9c4259fa90>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30ca0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30280>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30c40>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30b50>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30dc0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be302e0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30a60>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30b80>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be42970>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be42490>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be42b50>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be429a0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be427f0>]}}
[2020-12-08 16:36:07.867344] (MonitorAgent): Tproc: 0.014357
[2020-12-08 16:36:08.849701] (SineGenerator): Pack time: 0.000475
[2020-12-08 16:36:08.851602] (SineGenerator): Sending: [array([[ 0.032     ,  0.        , -0.66261441,  0.25      ]]), <time_series_metadata.scheme.MetaData object at 0x7f9c5be41280>]
[2020-12-08 16:36:08.852274] (MonitorAgent): Received: {'from': 'SineGenerator', 'data': array([[ 0.032     ,  0.        , -0.66261441,  0.25      ]]), 'metadata': <time_series_metadata.scheme.MetaData object at 0x7f9c425a8910>, 'senderType': 'MetrologicalSineGeneratorAgent', 'channel': 'default'}
[2020-12-08 16:36:08.860981] (MonitorAgent): Buffer: {'SineGenerator': {'data': array([[ 0.        ,  0.        ,  0.38113488,  0.25      ],
       [ 0.002     ,  0.        ,  0.38406741,  0.25      ],
       [ 0.004     ,  0.        ,  1.08806646,  0.25      ],
       [ 0.006     ,  0.        ,  1.64464102,  0.25      ],
       [ 0.008     ,  0.        ,  0.62548625,  0.25      ],
       [ 0.01      ,  0.        ,  0.2340912 ,  0.25      ],
       [ 0.012     ,  0.        , -0.75106323,  0.25      ],
       [ 0.014     ,  0.        , -0.78487603,  0.25      ],
       [ 0.016     ,  0.        , -0.32752173,  0.25      ],
       [ 0.018     ,  0.        , -0.4308233 ,  0.25      ],
       [ 0.02      ,  0.        ,  0.17061022,  0.25      ],
       [ 0.022     ,  0.        ,  0.61248461,  0.25      ],
       [ 0.024     ,  0.        ,  0.92631304,  0.25      ],
       [ 0.026     ,  0.        ,  1.1406959 ,  0.25      ],
       [ 0.028     ,  0.        ,  0.50636166,  0.25      ],
       [ 0.03      ,  0.        ,  0.16248346,  0.25      ],
       [ 0.032     ,  0.        , -0.66261441,  0.25      ]]), 'metadata': [<time_series_metadata.scheme.MetaData object at 0x7f9c5be42430>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be424f0>, <time_series_metadata.scheme.MetaData object at 0x7f9c4259fa90>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30ca0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30280>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30c40>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30b50>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30dc0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be302e0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30a60>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30b80>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be42970>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be42490>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be42b50>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be429a0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be427f0>, <time_series_metadata.scheme.MetaData object at 0x7f9c425a8910>]}}
[2020-12-08 16:36:08.861531] (MonitorAgent): Tproc: 0.008564
[2020-12-08 16:36:09.850808] (SineGenerator): Pack time: 0.000846
[2020-12-08 16:36:09.854304] (SineGenerator): Sending: [array([[ 0.034    ,  0.       , -1.0231325,  0.25     ]]), <time_series_metadata.scheme.MetaData object at 0x7f9c5be41280>]
[2020-12-08 16:36:09.855767] (MonitorAgent): Received: {'from': 'SineGenerator', 'data': array([[ 0.034    ,  0.       , -1.0231325,  0.25     ]]), 'metadata': <time_series_metadata.scheme.MetaData object at 0x7f9c88ab1310>, 'senderType': 'MetrologicalSineGeneratorAgent', 'channel': 'default'}
[2020-12-08 16:36:09.880904] (MonitorAgent): Buffer: {'SineGenerator': {'data': array([[ 0.        ,  0.        ,  0.38113488,  0.25      ],
       [ 0.002     ,  0.        ,  0.38406741,  0.25      ],
       [ 0.004     ,  0.        ,  1.08806646,  0.25      ],
       [ 0.006     ,  0.        ,  1.64464102,  0.25      ],
       [ 0.008     ,  0.        ,  0.62548625,  0.25      ],
       [ 0.01      ,  0.        ,  0.2340912 ,  0.25      ],
       [ 0.012     ,  0.        , -0.75106323,  0.25      ],
       [ 0.014     ,  0.        , -0.78487603,  0.25      ],
       [ 0.016     ,  0.        , -0.32752173,  0.25      ],
       [ 0.018     ,  0.        , -0.4308233 ,  0.25      ],
       [ 0.02      ,  0.        ,  0.17061022,  0.25      ],
       [ 0.022     ,  0.        ,  0.61248461,  0.25      ],
       [ 0.024     ,  0.        ,  0.92631304,  0.25      ],
       [ 0.026     ,  0.        ,  1.1406959 ,  0.25      ],
       [ 0.028     ,  0.        ,  0.50636166,  0.25      ],
       [ 0.03      ,  0.        ,  0.16248346,  0.25      ],
       [ 0.032     ,  0.        , -0.66261441,  0.25      ],
       [ 0.034     ,  0.        , -1.0231325 ,  0.25      ]]), 'metadata': [<time_series_metadata.scheme.MetaData object at 0x7f9c5be42430>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be424f0>, <time_series_metadata.scheme.MetaData object at 0x7f9c4259fa90>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30ca0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30280>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30c40>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30b50>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30dc0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be302e0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30a60>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be30b80>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be42970>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be42490>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be42b50>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be429a0>, <time_series_metadata.scheme.MetaData object at 0x7f9c5be427f0>, <time_series_metadata.scheme.MetaData object at 0x7f9c425a8910>, <time_series_metadata.scheme.MetaData object at 0x7f9c88ab1310>]}}
[2020-12-08 16:36:09.881966] (MonitorAgent): Tproc: 0.023787