Esempio n. 1
0
 def load_json(self):
     try:
         with open(PINS_JSON) as file_data:
             self.configs = json.load(file_data)
         logger.info('Initialization: JSON loaded')
         logger.debug(self.configs)
     except ValueError as e:
         logger.error("JSON error: %s", e)
Esempio n. 2
0
def dutycycles_write(datas):
    logger.debug('Recieved PWM data:', datas)
    for data in datas:
        result = PIN_MANAGER.update_dutycycles(data['num'], data['dutycycle'])
    if not result:
        logger.error('UPD DC - FAIL')
        emit('pin:dutycycle', {'message': 'Pin not found'})
    else:
        logger.info('UPD DC - OK')
Esempio n. 3
0
 def update_value(self, num, value):
     try:
         logger.info('Trying to set value', num, value)
         # Updating value in object
         self.pins[num]['value'] = value
         pin_num = int(num)
         self.gpio.set_mode(pin_num, pigpio.OUTPUT)
         self.gpio.write(pin_num, value)
         logger.info ('Updated value', pin_num, self.gpio.read(pin_num))
         return True
     except KeyError as e:
         logger.error('Fuckup at update value:', e)
         return None
Esempio n. 4
0
File: read.py Progetto: synergia/SCS
 def read_config(self):
     res = []
     pins = {'pins': []}
     arch = {'architecture': self.architecture}
     logger.info('Read: assembling response: config')
     for pin_num, pin_values in self.pins.items():
         data = self.pin_response(pin_num, pin_values)
         pins['pins'].append(data)
     res.append(pins)
     res.append(arch)
     logger.info('Read: assembled response: config')
     logger.debug(res)
     return res
Esempio n. 5
0
    def update_dutycycles(self, num, dutycycle):
        try:
            logger.info('Trying to set PWM dutycycle at pin %s: %s', num, dutycycle)

            self.gpio.set_mode(int(num), pigpio.OUTPUT)
            self.gpio.set_PWM_dutycycle(int(num), dutycycle)

            logger.debug('Update dc: %s', num)
            # Updating value in object
            self.pins[num]['dutycycle'] = int(dutycycle)
            return True
        except KeyError:
            return None

        def update_servo(self, num, pulsewidth):
            pass
Esempio n. 6
0
    def setup_pin(self, pin_num, name, role, mode, owner, value):
        num = int(pin_num)
        mode = pigpio.__getattribute__(mode)
        roles = {
            'servo': self.gpio.set_servo_pulsewidth,
            'propulsion': self.gpio.set_PWM_dutycycle
        }
        self.gpio.set_mode(num, mode)

        for r in roles:
            if role in roles:
                roles[role](num, value)
            else:
                self.gpio.write(num, value)
        logger.info('Initialization: %s %s %s value: %s mode: %s', num, name,
                    role, value, mode)
Esempio n. 7
0
 def initialize_pins(self):
     logger.info('Initialization: started')
     self.load_json()
     try:
         for config_name, config_data in self.configs.items():
             if (config_name == 'architecture'):
                 self.architecture = config_data
                 logger.info('Initialization: architecture: %s',
                             config_data)
             if (config_name == 'pins'):
                 self.pins = config_data
                 for pin_num, pin_config in config_data.items():
                     name = pin_config.get('name', None)
                     role = pin_config.get('role', None)
                     mode = pin_config.get('mode', 'OUTPUT')
                     owner = pin_config.get('owner', None)
                     value = pin_config.get('value', 'LOW')
                     self.setup_pin(pin_num, name, role, mode, owner, value)
         logger.info('Initialization: done')
     except ValueError as e:
         logger.error('Initialization: error: %s', e)