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.