Skip to content

Only first say block ist working #66

Open

Description

@peacepro

If I use more than one say block, only the first say block is working.
The second block is not working.

Package: openrobertalab
Version: 1.7.4+1.0.0
Architecture: all
Maintainer: Stefan Sauer <ensonic@google.com>
Installed-Size: 222
Depends: init-system-helpers (>= 1.18~), python3, python3:any (>= 3.3.2-2~), systemd, python3-bluez, python3-dbus, python3-ev3dev, python3-gi
Enhances: brickman
Homepage: http://lab.open-roberta.org/
Priority: optional
Section: python
Filename: pool/main/o/openrobertalab/openrobertalab_1.7.4+1.0.0_all.deb
#!/usr/bin/python

from __future__ import absolute_import
from roberta.ev3 import Hal
from roberta.BlocklyMethods import BlocklyMethods
from ev3dev import ev3 as ev3dev
import math

class BreakOutOfALoop(Exception): pass
class ContinueLoop(Exception): pass

_brickConfiguration = {
    'wheel-diameter': 5.6,
    'track-width': 18.0,
    'actors': {
    },
    'sensors': {
    },
}
hal = Hal(_brickConfiguration)
hal.setLanguage("de")

def run():
    hal.sayText("Hallo ich bin EV3")
    hal.sayText("Wie war die Schule heute")

def main():
    try:
        run()
    except Exception as e:
        hal.drawText('Fehler im EV3', 0, 0)
        hal.drawText(e.__class__.__name__, 0, 1)
        hal.drawText(str(e), 0, 2)
        hal.drawText('Press any key', 0, 4)
        while not hal.isKeyPressed('any'): hal.waitFor(500)
        raise

if __name__ == "__main__":
    main()
#!/usr/bin/python

from __future__ import absolute_import
from roberta.ev3 import Hal
from roberta.BlocklyMethods import BlocklyMethods
from ev3dev import ev3 as ev3dev
import math

class BreakOutOfALoop(Exception): pass
class ContinueLoop(Exception): pass

_brickConfiguration = {
    'wheel-diameter': 5.6,
    'track-width': 18.0,
    'actors': {
    },
    'sensors': {
    },
}
hal = Hal(_brickConfiguration)
hal.setLanguage("de")

def run():
    hal.sayText("Hallo ich bin EV3")
    hal.drawText("Hallo", 0, 0)
    hal.sayText("Wie war die Schule heute")

def main():
    try:
        run()
    except Exception as e:
        hal.drawText('Fehler im EV3', 0, 0)
        hal.drawText(e.__class__.__name__, 0, 1)
        hal.drawText(str(e), 0, 2)
        hal.drawText('Press any key', 0, 4)
        while not hal.isKeyPressed('any'): hal.waitFor(500)
        raise

if __name__ == "__main__":
    main()

Activity

  1. ensonic commented on Mar 16, 2019

    @ensonic
    Contributor

    I have a repro:

    _brickConfiguration = {
    ...     'wheel-diameter': 5.6,
    ...     'track-width': 18.0,
    ...     'actors': {},
    ...     'sensors': {},
    ... }
    hal = Hal(_brickConfiguration)
    hal.setVolume(100)
    hal.sayText("Hello"); hal.sayText("and"); hal.sayText("good evening");
    aplay: main:722: audio open error: Device or resource busy
    # more lowlevel, still broken
    hal.sound.speak("Hello").wait(); hal.sound.speak("World").wait();
    aplay: main:722: audio open error: Device or resource busy
    # but this works:
    hal.sayText("Hello"); hal.waitFor(200);hal.sayText("and"); hal.waitFor(200); hal.sayText("good evening");
    # this is what we essentiall do from python via Popen, but in a shell it works
    espeak --stdout "Hello" | aplay -q; espeak --stdout "World" | aplay -q

    Somehow closing the device takes longer than the subcommand runs ??

  2. ensonic commented on Mar 20, 2019

    @ensonic
    Contributor

    Ahhh, ev3dev/ev3dev-lang-python#461 - too bad that there is no new release :/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions