Exemplo n.º 1
0
    def __init__(self):
        SmartObject.__init__(self)
        import __builtin__
        __builtin__.SmartObjectServiceBaseDict = self.resources  # make this a global reference

        self.defaultClass = 'SmartObject'
        # Use a smart object instance as a container for SmartObjects
        # and create a Description resource for the RDF registry
        self.description = self.create('Description')

        # TEST
        # create a SmeartObjectbject the top level for a rough test
        # add some example triples describing the object and it's properties
        self.description.set(
            (URIRef('testObject'), RDFS.Class, Literal('SmartObject')))
        self.description.set((URIRef('testObject/propertyOne'), RDFS.Resource,
                              Literal('logEntry')))
        self.description.set(
            (URIRef('testObject/propertyOne'), RDF.type, Literal('message')))
        self.description.set((URIRef('testObject/propertyTwo'), RDFS.Resource,
                              Literal('temperature')))
        self.description.set(
            (URIRef('testObject/propertyTwo'), RDF.type, Literal('sensor')))
        # create the object and it's properties using create

        self.testObject = self.create('testObject')
        self.testObject.description = self.testObject.create('Description')
        self.testObject.propertyOne = self.testObject.create('propertyOne')
        self.testObject.testObject = self.testObject.create('SmartObject')
        self.testObject.testObject.Description = self.testObject.testObject.create(
            'Description')
        self.testObject.propertyOne.testProperty = self.testObject.propertyOne.create(
            'PropertyOfInterest')
        self.testObject.propertyOne.testProperty.set(1234)
        '''
Exemplo n.º 2
0
    def __init__(self):
        SmartObject.__init__(self)
        import __builtin__

        __builtin__.SmartObjectServiceBaseDict = self.resources  # make this a global reference

        self.defaultClass = "SmartObject"
        # Use a smart object instance as a container for SmartObjects
        # and create a Description resource for the RDF registry
        self.description = self.create("Description")

        # TEST
        # create a SmeartObjectbject the top level for a rough test
        # add some example triples describing the object and it's properties
        self.description.set((URIRef("testObject"), RDFS.Class, Literal("SmartObject")))
        self.description.set((URIRef("testObject/propertyOne"), RDFS.Resource, Literal("logEntry")))
        self.description.set((URIRef("testObject/propertyOne"), RDF.type, Literal("message")))
        self.description.set((URIRef("testObject/propertyTwo"), RDFS.Resource, Literal("temperature")))
        self.description.set((URIRef("testObject/propertyTwo"), RDF.type, Literal("sensor")))
        # create the object and it's properties using create

        self.testObject = self.create("testObject")
        self.testObject.description = self.testObject.create("Description")
        self.testObject.propertyOne = self.testObject.create("propertyOne")
        self.testObject.testObject = self.testObject.create("SmartObject")
        self.testObject.testObject.Description = self.testObject.testObject.create("Description")
        self.testObject.propertyOne.testProperty = self.testObject.propertyOne.create("PropertyOfInterest")
        self.testObject.propertyOne.testProperty.set(1234)
        """
Exemplo n.º 3
0
    def __init__(
        self,
        baseObject=None,
        port=None
    ):  # FIXME if no baseObject given, create a default base object

        if port == None:
            self._port = 5683  # IETF default port for coap://
        else:
            self._port = port

        if baseObject == None:
            from SmartObject.SmartObject import SmartObject
            self._baseObject = SmartObject()
        else:
            self._baseObject = baseObject

        self.resources = self._baseObject.resources

        self._host = gethostname()
        self._baseObject.Properties.update(
            {'coapService': 'coap://' + self._host + ':' + repr(self._port)})

        self._coapHandler = CoapRequestHandler(self._baseObject)
        self._coapServer = COAPServer(self._host, self._port,
                                      self._coapHandler)
        print 'CoAP Service started at', baseObject.Properties.get(
            'coapService')
Exemplo n.º 4
0
    def __init__(self, baseObject=None, port=None):

        if port == None:
            self._port = 8000
        else:
            self._port = port  # default port 8000

        if baseObject == None:
            from SmartObject.SmartObject import SmartObject
            self._baseObject = SmartObject()
        else:
            self._baseObject = baseObject

        self.resources = self._baseObject.resources

        if port != None or baseObject == None:
            self.start()
Exemplo n.º 5
0
'''
from SmartObject.SmartObject import SmartObject
from SmartObject.Description import Description
from SmartObject.ObservableProperty import ObservableProperty
from SmartObject.Observers import Observers
from SmartObject.PropertyOfInterest import PropertyOfInterest
from rdflib.term import Literal, URIRef
from rdflib.namespace import RDF, RDFS, XSD, OWL
from SmartObjectService import SmartObjectService
from time import sleep
import sys


if __name__ == '__main__' :
    # print 'path = ', sys.path
    baseObject = SmartObject() # create a Smart Object to serve as the base container for other Smart Objects and resources
    server = SmartObjectService(baseObject) # make an instance of the service, baseObject is the object root
    server.start(8000) # forks a server thread to listen on port 8000
    print 'httpd started at', baseObject.Properties.get('httpService')

    # create the weather station resource template
    # first the description 
    baseObject.Description.set((URIRef('sensors/rhvWeather-01'), RDFS.Class, Literal('SmartObject')))
    baseObject.Description.set((URIRef('sensors/rhvWeather-01'), RDFS.Resource, Literal('SensorSystem')))
    baseObject.Description.set((URIRef('sensors/rhvWeather-01'), RDF.type, Literal('WeatherSensor')))
    
    # sensors resource under the baseObject for all sensors    
    sensors = baseObject.create({'resourceName': 'sensors',\
                                 'resourceClass': 'SmartObject'}) # top level object container for sensors, default class is SmartObject
    #weather resource under sensors for the weather sensor    
    weather = sensors.create({'resourceName': 'rhvWeather-01', \
Exemplo n.º 6
0
    def __init__(self):
        SmartObject.__init__(self)  # initialize the service as a Smart Object
        import __builtin__
        __builtin__.SmartObjectServiceBaseDict = self.resources  # make this a global reference
        print 'making default objects'
        self.defaultClass = 'SmartObject'
        # Use a smart object instance as a container for SmartObjects
        # and create a Description resource for the RDF registry
        self.description = self.create('Description')

        # create the weather station resource template
        # first the description

        self.description.set((URIRef('sensors/rhvWeather-01'), RDFS.Class,
                              Literal('SensorSystem')))
        self.description.set((URIRef('sensors/rhvWeather-01'), RDF.type,
                              Literal('WeatherSensor')))
        self.description.set((URIRef('sensors/rhvWeather-01'), RDFS.Resource,
                              Literal('SmartObject')))

        self.sensors = self.create('sensors')  # top level object
        self.sensors.description = self.sensors.create('Description')

        self.sensors.weather = self.sensors.create('rhvWeather-01',
                                                   'SmartObject')
        self.sensors.weather.description = self.sensors.weather.create(
            'Description')

        self.sensors.weather.description.set(
            (URIRef('sensors/rhvWeather-01/outdoor_temperature'),
             RDFS.Resource, Literal('sensor')))
        self.sensors.weather.description.set(
            (URIRef('sensors/rhvWeather-01/outdoor_temperature'), RDF.type,
             Literal('temperature')))
        self.sensors.weather.description.set(
            (URIRef('sensors/rhvWeather-01/outdoor_humidity'), RDFS.Resource,
             Literal('sensor')))
        self.sensors.weather.description.set(
            (URIRef('sensors/rhvWeather-01/outdoor_humidity'), RDF.type,
             Literal('humidity')))
        self.sensors.weather.description.set(
            (URIRef('sensors/rhvWeather-01/sealevel_pressure'), RDFS.Resource,
             Literal('sensor')))
        self.sensors.weather.description.set(
            (URIRef('sensors/rhvWeather-01/sealevel_pressure'), RDF.type,
             Literal('pressure')))
        self.sensors.weather.description.set(
            (URIRef('sensors/rhvWeather-01/indoor_temperature'), RDFS.Resource,
             Literal('sensor')))
        self.sensors.weather.description.set(
            (URIRef('sensors/rhvWeather-01/indoor_temperature'), RDF.type,
             Literal('temperature')))
        self.sensors.weather.description.set(
            (URIRef('sensors/rhvWeather-01/indoor_humidity'), RDFS.Resource,
             Literal('sensor')))
        self.sensors.weather.description.set(
            (URIRef('sensors/rhvWeather-01/indoor_humidity'), RDF.type,
             Literal('humidity')))
        self.sensors.weather.description.set(
            (URIRef('sensors/rhvWeather-01/wind_gust'), RDFS.Resource,
             Literal('sensor')))
        self.sensors.weather.description.set(
            (URIRef('sensors/rhvWeather-01/wind_gust'), RDF.type,
             Literal('speed')))
        self.sensors.weather.description.set(
            (URIRef('sensors/rhvWeather-01/wind_speed'), RDFS.Resource,
             Literal('sensor')))
        self.sensors.weather.description.set(
            (URIRef('sensors/rhvWeather-01/wind_speed'), RDF.type,
             Literal('speed')))
        self.sensors.weather.description.set(
            (URIRef('sensors/rhvWeather-01/wind_direction'), RDFS.Resource,
             Literal('sensor')))
        self.sensors.weather.description.set(
            (URIRef('sensors/rhvWeather-01/wind_direction'), RDF.type,
             Literal('direction')))
        self.sensors.weather.description.set(
            (URIRef('sensors/rhvWeather-01/current_rain'), RDFS.Resource,
             Literal('sensor')))
        self.sensors.weather.description.set(
            (URIRef('sensors/rhvWeather-01/current_rain'), RDF.type,
             Literal('depth')))
        self.sensors.weather.description.set(
            (URIRef('sensors/rhvWeather-01/hourly_rain'), RDFS.Resource,
             Literal('sensor')))
        self.sensors.weather.description.set(
            (URIRef('sensors/rhvWeather-01/hourly_rain'), RDF.type,
             Literal('depth')))
        self.sensors.weather.description.set(
            (URIRef('sensors/rhvWeather-01/daily_rain'), RDFS.Resource,
             Literal('sensor')))
        self.sensors.weather.description.set(
            (URIRef('sensors/rhvWeather-01/daily_rain'), RDF.type,
             Literal('depth')))

        self.sensors.weather.outdoor_temperature = self.sensors.weather.create(
            'outdoor_temperature', 'ObservableProperty')
        self.sensors.weather.outdoor_temperature.create('PropertyOfInterest')

        self.sensors.weather.outdoor_humidity = self.sensors.weather.create(
            'outdoor_humidity', 'ObservableProperty')
        self.sensors.weather.outdoor_humidity.create('PropertyOfInterest')

        self.sensors.weather.pressure = self.sensors.weather.create(
            'sealevel_pressure', 'ObservableProperty')
        self.sensors.weather.pressure.create('PropertyOfInterest')

        self.sensors.weather.indoor_temperature = self.sensors.weather.create(
            'indoor_temperature', 'ObservableProperty')
        self.sensors.weather.indoor_temperature.create('PropertyOfInterest')

        self.sensors.weather.indoor_humidity = self.sensors.weather.create(
            'indoor_humidity', 'ObservableProperty')
        self.sensors.weather.indoor_humidity.create('PropertyOfInterest')

        self.sensors.weather.wind_gust = self.sensors.weather.create(
            'wind_gust', 'ObservableProperty')
        self.sensors.weather.wind_gust.create('PropertyOfInterest')

        self.sensors.weather.wind_speed = self.sensors.weather.create(
            'wind_speed', 'ObservableProperty')
        self.sensors.weather.wind_speed.create('PropertyOfInterest')

        self.sensors.weather.wind_direction = self.sensors.weather.create(
            'wind_direction', 'ObservableProperty')
        self.sensors.weather.wind_direction.create('PropertyOfInterest')

        self.sensors.weather.current_rain = self.sensors.weather.create(
            'current_rain', 'ObservableProperty')
        self.sensors.weather.current_rain.create('PropertyOfInterest')

        self.sensors.weather.hourly_rain = self.sensors.weather.create(
            'hourly_rain', 'ObservableProperty')
        self.sensors.weather.hourly_rain.create('PropertyOfInterest')

        self.sensors.weather.daily_rain = self.sensors.weather.create(
            'daily_rain', 'ObservableProperty')
        self.sensors.weather.daily_rain.create('PropertyOfInterest')
Exemplo n.º 7
0
    def __init__(self):
        SmartObject.__init__(self) # initialize the service as a Smart Object
        import __builtin__
        __builtin__.SmartObjectServiceBaseDict = self.resources # make this a global reference
        print 'making default objects'
        self.defaultClass = 'SmartObject'
        # Use a smart object instance as a container for SmartObjects 
        # and create a Description resource for the RDF registry
        self.description = self.create('Description')
        
        # create the weather station resource template
        # first the description 
        
        self.description.set((URIRef('sensors/rhvWeather-01'), RDFS.Class, Literal('SensorSystem')))
        self.description.set((URIRef('sensors/rhvWeather-01'), RDF.type, Literal('WeatherSensor')))
        self.description.set((URIRef('sensors/rhvWeather-01'), RDFS.Resource, Literal('SmartObject')))
        
        self.sensors = self.create('sensors') # top level object
        self.sensors.description = self.sensors.create('Description')
        
        self.sensors.weather = self.sensors.create('rhvWeather-01', 'SmartObject')
        self.sensors.weather.description = self.sensors.weather.create('Description')

        self.sensors.weather.description.set((URIRef('sensors/rhvWeather-01/outdoor_temperature'), RDFS.Resource, Literal('sensor')))
        self.sensors.weather.description.set((URIRef('sensors/rhvWeather-01/outdoor_temperature'), RDF.type, Literal('temperature')))
        self.sensors.weather.description.set((URIRef('sensors/rhvWeather-01/outdoor_humidity'), RDFS.Resource, Literal('sensor')))
        self.sensors.weather.description.set((URIRef('sensors/rhvWeather-01/outdoor_humidity'), RDF.type, Literal('humidity')))
        self.sensors.weather.description.set((URIRef('sensors/rhvWeather-01/sealevel_pressure'), RDFS.Resource, Literal('sensor')))
        self.sensors.weather.description.set((URIRef('sensors/rhvWeather-01/sealevel_pressure'), RDF.type, Literal('pressure')))
        self.sensors.weather.description.set((URIRef('sensors/rhvWeather-01/indoor_temperature'), RDFS.Resource, Literal('sensor')))
        self.sensors.weather.description.set((URIRef('sensors/rhvWeather-01/indoor_temperature'), RDF.type, Literal('temperature')))
        self.sensors.weather.description.set((URIRef('sensors/rhvWeather-01/indoor_humidity'), RDFS.Resource, Literal('sensor')))
        self.sensors.weather.description.set((URIRef('sensors/rhvWeather-01/indoor_humidity'), RDF.type, Literal('humidity')))
        self.sensors.weather.description.set((URIRef('sensors/rhvWeather-01/wind_gust'), RDFS.Resource, Literal('sensor')))
        self.sensors.weather.description.set((URIRef('sensors/rhvWeather-01/wind_gust'), RDF.type, Literal('speed')))
        self.sensors.weather.description.set((URIRef('sensors/rhvWeather-01/wind_speed'), RDFS.Resource, Literal('sensor')))
        self.sensors.weather.description.set((URIRef('sensors/rhvWeather-01/wind_speed'), RDF.type, Literal('speed')))
        self.sensors.weather.description.set((URIRef('sensors/rhvWeather-01/wind_direction'), RDFS.Resource, Literal('sensor')))
        self.sensors.weather.description.set((URIRef('sensors/rhvWeather-01/wind_direction'), RDF.type, Literal('direction')))
        self.sensors.weather.description.set((URIRef('sensors/rhvWeather-01/current_rain'), RDFS.Resource, Literal('sensor')))
        self.sensors.weather.description.set((URIRef('sensors/rhvWeather-01/current_rain'), RDF.type, Literal('depth')))
        self.sensors.weather.description.set((URIRef('sensors/rhvWeather-01/hourly_rain'), RDFS.Resource, Literal('sensor')))
        self.sensors.weather.description.set((URIRef('sensors/rhvWeather-01/hourly_rain'), RDF.type, Literal('depth')))
        self.sensors.weather.description.set((URIRef('sensors/rhvWeather-01/daily_rain'), RDFS.Resource, Literal('sensor')))
        self.sensors.weather.description.set((URIRef('sensors/rhvWeather-01/daily_rain'), RDF.type, Literal('depth')))

        self.sensors.weather.outdoor_temperature = self.sensors.weather.create('outdoor_temperature', 'ObservableProperty')
        self.sensors.weather.outdoor_temperature.create('PropertyOfInterest')
        
        self.sensors.weather.outdoor_humidity = self.sensors.weather.create('outdoor_humidity', 'ObservableProperty')
        self.sensors.weather.outdoor_humidity.create('PropertyOfInterest')
        
        self.sensors.weather.pressure = self.sensors.weather.create('sealevel_pressure', 'ObservableProperty')
        self.sensors.weather.pressure.create('PropertyOfInterest')
        
        self.sensors.weather.indoor_temperature = self.sensors.weather.create('indoor_temperature', 'ObservableProperty')
        self.sensors.weather.indoor_temperature.create('PropertyOfInterest')
        
        self.sensors.weather.indoor_humidity = self.sensors.weather.create('indoor_humidity', 'ObservableProperty')
        self.sensors.weather.indoor_humidity.create('PropertyOfInterest')
        
        self.sensors.weather.wind_gust = self.sensors.weather.create('wind_gust', 'ObservableProperty')
        self.sensors.weather.wind_gust.create('PropertyOfInterest')
        
        self.sensors.weather.wind_speed = self.sensors.weather.create('wind_speed', 'ObservableProperty')
        self.sensors.weather.wind_speed.create('PropertyOfInterest')
        
        self.sensors.weather.wind_direction = self.sensors.weather.create('wind_direction', 'ObservableProperty')
        self.sensors.weather.wind_direction.create('PropertyOfInterest')
        
        self.sensors.weather.current_rain = self.sensors.weather.create('current_rain', 'ObservableProperty')
        self.sensors.weather.current_rain.create('PropertyOfInterest')
 
        self.sensors.weather.hourly_rain = self.sensors.weather.create('hourly_rain', 'ObservableProperty')
        self.sensors.weather.hourly_rain.create('PropertyOfInterest')
 
        self.sensors.weather.daily_rain = self.sensors.weather.create('daily_rain', 'ObservableProperty')
        self.sensors.weather.daily_rain.create('PropertyOfInterest')