예제 #1
0
 def __init__(self,module):
     self.module = module
     try:
         self.masters = config.get('Services','masters').split(",")
     except configparser.NoOptionError:
         self.masters = ['']
         logger.warning("The 'masters' directory was missing in config")
     
     try: 
         self.slaves = config.get('Services','slaves').split(",")
     except configparser.NoOptionError:
         self.slaves = ['']
         logger.warning("The 'slaves' directory was missing in config")
예제 #2
0
파일: uart.py 프로젝트: rasmusprentow/red
 def startFromConfig(self, config):
     uartnum = config.get('Intercom', 'uartnum')
     mockUart =  get_config(config, 'Intercom', 'use_mock_uart', default='false') == 'true'
     sysprefix = get_config(config, 'Intercom', 'sys_prefix', default='/dev/ttyO')
     baudrate = get_config(config, 'Intercom', 'baudrate', default=9600)
    
     self.start(uartnum=uartnum, mockUart=mockUart, sysprefix=sysprefix, baudrate=baudrate )
예제 #3
0
파일: lpc.py 프로젝트: rasmusprentow/red
    def __init__(self, name, context=None):
        super(Lpc, self).__init__(name=name, context=context)
        port = config.get('LPC', 'port')

        if get_config(config,'LPC', 'use_mock_reader', default='false') == 'true': 
            self.nfcReader = nfc.MockNfcReader(port=port,nfcListener=self.onNfcMessage)
        else:
            self.nfcReader = nfc.NfcReader(port=port,nfcListener=self.onNfcMessage)
        self.nfcReader.start()
예제 #4
0
    def createActiveServicesFromConfig(self):

        servicesToCreate = config.get('Services','Services').split(",")
        servicesToCreate += self.slaves
        servicesToCreate += self.masters 

        logger.info("Creating the following services: " + str(servicesToCreate)) 
  
        
        serviceList = dict()
      
        for service in servicesToCreate:
            
            if service == '' or service == None: 
                continue
            logger.info("Creating service: " + service)
            serviceList[service] = self.createService(service)

        return serviceList
예제 #5
0
 def testConfigNoRecursion(self):
     initConfig("red/tests/config/recursion_meta.conf",None,0)
     self.assertEqual(config.get('Test','rec'),'1')
예제 #6
0
 def testConfigRecursion(self):
     initConfig("red/tests/config/recursion_meta.conf")
     self.assertEqual(config.get('Test','rec'),'2')
예제 #7
0
    def createService(self, serviceName ):
        """ Returns a meta object """
        meta = ServiceMeta()
        
        meta.socketName = config.get('Sockets', serviceName)
        
        meta.serviceName = serviceName

        meta.socket = self.module.context.socket(zmq.PAIR)
        
        ServiceName = serviceName.capitalize()
        
        """ Determine if this is a slave service """
        meta.isSlaveService = meta.serviceName in self.slaves
        meta.isMasterService = meta.serviceName in self.masters
       
        """ It cannot be both slave and master """
        assert not (meta.isSlaveService and meta.isMasterService)

        if  meta.isMasterService:
            """ You must connect to the master """
            logger.info("Connecting on socket: " + meta.socketName)
            meta.socket.connect(meta.socketName)
        else:
            """ We bind to normal and slave services """
            logger.info("Binding on socket: " + (meta.socketName))
            meta.socket.bind(meta.socketName)
            logger.info("Bound on socket: " + meta.socketName)
          
        if not (meta.isSlaveService or meta.isMasterService):
            """ Slaves and masters should never be started by us """
            logger.info("Starting service: " + str(serviceName))


      
            module = None
            moduleName = "services." + serviceName
            logger.info("Importing " + moduleName)
            try: 
                module = importlib.import_module(moduleName) 
            except Exception as e: 
                try:
                    moduleName = "red.services." + serviceName
                    logger.info("Importing " + moduleName)
                    module = importlib.import_module(moduleName) 
                except Exception as e: 
                    logger.critical("The service '%s' did not exist as a service. Exception: %s" % (serviceName, str(e)))
            
            if module != None:
                serviceClass = getattr(module, ServiceName)
                meta.service = serviceClass(name=meta.socketName, context=self.module.context)
                meta.service.onCreate()
                meta.service.deamon = True
                meta.service.start();


        self.module.poller.register(meta.socket, zmq.POLLIN)
        
        if not (meta.isSlaveService):
            """ 
            We have really no idea whether the slave is active or not.
            The slave will tell os when it connects. 
            To connect the slave, someone must actually turn on a device
            Physically turn on a device. 
            """
           
            meta.socket.send_json({"head":"system_message", "data":"echo"})


        return meta
예제 #8
0
 def __init__(self, name, context=None):
     super(Synchronize, self).__init__(name=name, context=context)
     self.serverurl = config.get('Scorekeeper', 'server_url')
     self.location = config.get('Scorekeeper', 'location')
예제 #9
0
파일: model.py 프로젝트: grayape/GameLink
#models.py
# I have collected all models into this file/module because it is easier for SQLAlchemy 
# Feel free to split it up into more files if you can (dare)

from sqlalchemy import create_engine, Column, Integer, String, Sequence, Table, Text, ForeignKey, DateTime, func
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, relationship, backref
from datetime import datetime
from red.config import config
from red.utils.run_once import run_once
import traceback

Base = declarative_base()
engine = create_engine(config.get("Database","connectionstring"),echo=False)

#################################################################################################################
################################## Table used to connect players and to teams ###################################
#################################################################################################################
player_team = Table('player_team',Base.metadata,
    Column('player_id',Integer,ForeignKey('players.id')),
    Column('team_id',Integer,ForeignKey('teams.id'))
)

#################################################################################################################
class Player(Base):
    __tablename__ = 'players'

    id = Column(Integer,Sequence('player_id_seq'),primary_key=True)
    rfid = Column(String,unique=True)
    name = Column(String)
    created_at = Column(DateTime, default=func.now())