Hello,
Here is a configuration file that I tried to run:
<?xml version='1.0' encoding='utf-8' ?>
<config version='1.0'
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="config.xsd" >
<description>
Servo control.
Input values are servo_A.
Values 0..100.
</description>
<adapter class='adapter.gpio.GpioOutputPWMServo' name='servo_pwm'>
<description>Sample GPIO PWM</description>
<gpio port='GPIO23'> <!-- use names precisely from GPIO00 to GPIO31 -->
<default dir='OUT' pull='PUD_OFF' default='low' />
<active dir='RESERVED' />
</gpio>
<input_value name='rate'> <!-- leave this name as is -->
<variable name='servo_A'/> <!-- modify this name according to your needs; this is the name used in scratch -->
</input_value>
<parameter name='frequency' value='50' />
<parameter name='rate' value='50' />
</adapter>
</config>
And the result of the launch:
root@raspberrypi:/home/pi/scratchClient# python3 src/scratchClient.py -c config/config_gpio_servo1.xml -v
2017-06-15 08:25:39,216 - gpio.RPi_GPIO_GPIOManager - INFO - GPIOManager setActive, True
2017-06-15 08:25:39,217 - gpio.RPi_GPIO_GPIOManager - INFO - 0.6.3
2017-06-15 08:25:39,219 - __main__ - INFO - event_connect
2017-06-15 08:25:39,220 - __main__ - INFO - Trying to connect to scratch.
2017-06-15 08:25:39,221 - __main__ - INFO - Connected to Scratch !
2017-06-15 08:25:39,222 - adapter.gpio - INFO - Adapter, setActive servo_pwm True
2017-06-15 08:25:39,222 - gpio.RPi_GPIO_GPIOManager - INFO - activeSetting
Exception in thread scratchClient:
Traceback (most recent call last):
File "/usr/lib/python3.4/threading.py", line 920, in _bootstrap_inner
self.run()
File "src/scratchClient.py", line 918, in run
self._connect()
File "src/scratchClient.py", line 970, in _connect
module.setActive(True)
File "/home/pi/scratchClient/src/adapter/gpio.py", line 454, in setActive
adapter.adapters.GPIOAdapter.setActive(self, state);
File "/home/pi/scratchClient/src/adapter/adapters.py", line 410, in setActive
self.gpioManager.setGPIOActive(gpio, active)
File "/home/pi/scratchClient/src/configuration.py", line 168, in setGPIOActive
self.delegateGPIOManager.setGPIOActive(gpioConfiguration, state)
File "/home/pi/scratchClient/src/gpio/RPi_GPIO_GPIOManager.py", line 138, in setGPIOActive
self.setGpioState(gpioConfiguration, gpioConfiguration.active_setting)
File "/home/pi/scratchClient/src/gpio/RPi_GPIO_GPIOManager.py", line 144, in setGpioState
logger.debug("setGpioState %s", str(setting))
File "/home/pi/scratchClient/src/configuration.py", line 118, in __str__
return "GpioSetting[dir={dir:s}, pull={pull:s}, default={default:s}]".format(dir=self.dir, pull=self.pull, default=self.default)
TypeError: non-empty format string passed to object.__format__