Skip to main content

Single variable callback

This example is very similar to the previous example. However, in this example the xApp selects the periodicity of the E2 Indication messages i.e., xapp.PERIODICITY_10_MS and it manually unsubscribes xapp.stop_mntr(token) after 3 seconds i.e., time.sleep(3). The value from the E2 Indication message arrives into def cb(self,v): from where it can be processed.

import sys
import time
import xapp_usr_sdk as xapp

class Monitor(xapp.mntr_cb_fn):
# Inherit C++ mntr_cb_fn class
def __init__(self):
xapp.mntr_cb_fn.__init__(self)

# Override C++ method
def cb(self,v):
print("Value " + str(v))

xapp.init(sys.argv)
nodes = xapp.e2_nodes(xapp.MONITOR_USE_CASE_e)
assert(len(nodes) > 0 and "Needed at least one E2 node to monitor")

call_back = Monitor().__disown__()

token = xapp.mntr_cb(nodes[0].node, xapp.PDCP_SDU_VOLUME_DL, xapp.PERIODICITY_10_MS, call_back)

time.sleep(3)

xapp.stop_mntr(token)

print("Test xApp run SUCCESSFULLY")