示例#1
0
    def run(self, registry):
        import copy
        from liota.dccs.graphite import Graphite
        from liota.dcc_comms.socket_comms import SocketDccComms

        # Acquire resources from registry
        # Creating a copy of system object to keep original object "clean"
        edge_system = copy.copy(registry.get("edge_system"))

        # Get values from configuration file
        config_path = registry.get("package_conf")
        config = read_user_config(config_path + '/sampleProp.conf')

        # Initialize DCC object with transport
        self.graphite = Graphite(
            SocketDccComms(ip=config['GraphiteIP'],
                           port=config['GraphitePort']))

        # Register gateway system
        graphite_edge_system = self.graphite.register(edge_system)

        registry.register("graphite", self.graphite)
        registry.register("graphite_edge_system", graphite_edge_system)
示例#2
0
# In this example, we demonstrate how data from a simulated device generating
# random physical variables can be directed to graphite data center component
# using Liota.

if __name__ == '__main__':

    edge_system = Dell5KEdgeSystem(config['EdgeSystemName'])

    # initialize and run the physical model (simulated device)
    bike_model = BikeSimulated(name=config['DeviceName'], ureg=ureg)

    # Sending data to Graphite data center component
    # Socket is the underlying transport used to connect to the Graphite
    # instance
    graphite = Graphite(
        SocketDccComms(ip=config['GraphiteIP'], port=config['GraphitePort']))
    graphite_reg_dev = graphite.register(bike_model)

    metric_name = "model.bike.speed"
    bike_speed = Metric(name=metric_name,
                        unit=(ureg.m / ureg.sec),
                        interval=5,
                        sampling_function=get_bike_speed)
    reg_bike_speed = graphite.register(bike_speed)
    graphite.create_relationship(graphite_reg_dev, reg_bike_speed)
    reg_bike_speed.start_collecting()

    metric_name = "model.bike.power"
    bike_power = Metric(name=metric_name,
                        unit=ureg.watt,
                        interval=5,
示例#3
0
    return random.randint(10, 25)


def get_vibration():
    return round(random.uniform(0.480, 0.7), 3)


# ---------------------------------------------------------------------------------------
# In this example, we demonstrate how metrics collected from a SensorTag device over BLE
# can be directed to graphite data center component using Liota.
# The program illustrates the ease of use Liota brings to IoT application developers.

if __name__ == '__main__':

    # create a data center object, graphite in this case, using websocket as a transport layer
    graphite = Graphite(SocketDccComms(ip=config['GraphiteIP'], port=8080))

    try:
        # create a System object encapsulating the particulars of a IoT System
        # argument is the name of this IoT System
        edge_system = Dell5KEdgeSystem(config['EdgeSystemName'])

        # resister the IoT System with the graphite instance
        # this call creates a representation (a Resource) in graphite for this IoT System with the name given
        reg_edge_system = graphite.register(edge_system)

        tf_rpm_metric = Metric(name="windmill.RPM",
                               unit=None,
                               interval=1,
                               aggregation_size=1,
                               sampling_function=get_rpm)
示例#4
0
import unittest
from liota.core.offlineQueue import offlineQueue
from liota.dcc_comms.socket_comms import SocketDccComms

comms = SocketDccComms(ip="92.246.246.188", port=8080)
size = 1


class TestofflineQueue(unittest.TestCase):
    def test_offlineQueue_fail_without_valid_size(self):
        #Fails if no argument passed
        with self.assertRaises(Exception):
            offlineQ = offlineQueue()
            assertNotIsInstance(offlineQ, offlineQueue)

        #Fails if not valid size and comms passed
        with self.assertRaises(Exception):
            offlineQ = offlineQueue(size="asd", comms=None)
            assertNotIsInstance(offlineQ, offlineQueue)

    def test_offlineQueue_takes_valid_size(self):

        offlineQ = offlineQueue(size=size, comms=comms)
        assert isinstance(offlineQ, offlineQueue)

    def test_offlineQueue_fail_with_invalidArg_drop_oldest(self):
        #Fails if bool not passed as drop_oldest
        with self.assertRaises(Exception):
            offlineQ = offlineQueue(size=size, comms=comms, drop_oldest=1)
            assertNotIsInstance(offlineQ, offlineQueue)
# random numbers can be directed to graphite data center component using Liota.
# The program illustrates the ease of use Liota brings to IoT application
# developers.


def xmpp_subscribe():
    xmpp_conn = XmppDeviceComms("[email protected]", "m1ndst1x", "127.0.0.1",
                                "5222")
    xmpp_conn.subscribe("pubsub.127.0.0.1", "/vmware11",
                        callback_openfire_data)


if __name__ == '__main__':
    xmpp_subscribe()
    edge_system = SimulatedEdgeSystem('EdgeSystemName')

    # Sending data to Graphite data center component
    # Socket is the underlying transport used to connect to the Graphite
    # instance
    graphite = Graphite(SocketDccComms(ip='127.0.0.1', port=80))
    graphite_reg_edge_system = graphite.register(edge_system)

    metric_name = 'OpenfireData'
    openfire_metric = Metric(
        name=metric_name,
        interval=0,
        sampling_function=lambda: get_value(openfire_data))
    reg_openfire_metric = graphite.register(openfire_metric)
    graphite.create_relationship(graphite_reg_edge_system, reg_openfire_metric)
    reg_openfire_metric.start_collecting()