Python Live Data API

This API allows you to create Python applications that utilise ARDI live data.

Usage Example

from ardi.api import core, subscription

server = "myardisiteurl"

ardi = core.ARDICore(server)
ardi.Connect()

sub = subscription.ARDISubscription(ardi)
sub.AddCode('20:22:measurement')

def ProcessNewValues(code,value):
    echo '  ' + code + ' = ' + str(value)

sub.SetCallback(ProcessNewValues,False)
sub.Connect()

How It Works

This is a quick breakdown of how the above example operates.

1) Create an ARDICore object and connect it to the ARDI server.

ardi = core.ARDICore(server)
ardi.Connect()

This loads all of the settings of your ARDI server, including the location of the consolidator.

2) Create an ARDISubscription for live data, passing the ARDICore we just created.

sub = subscription.ARDISubscription(ardi)

This prepares the subscription by telling it the consolidator details. It does not connect to the server yet.

3) Add all of the data points that you need to monitor

sub.AddCode('20:22:measurement')

You can add as many data points as you need.

4) Define and Set the Callback Function

def ProcessNewValues(code,value):
    echo '  ' + code + ' = ' + str(value)

sub.SetCallback(ProcessNewValues,False)

The callback function is invoked every time a value changes. Create the function (it can be a class member if you're implementing this in a class) and call SetCallback on the ARDISubscription.

5) Start the Subscription

sub.Connect()

Note that the Connect function is a blocking function - it will stop the code from proceeding.

If you'd like to continue with other tasks, we suggest running this function in a separate thread.

If you'd like to be able to stop the function in a timely manner, we suggest installing a signal handler. In the handler, you can call Disconnect on the subscription - this will stop the subscription after a short delay and allow you to terminate the program gracefully.