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) '''
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) """
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')
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()
''' 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', \
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')
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')