Ejemplo n.º 1
0
class Uncooperative(Tree):
    with F('sender failure') as sender:
        sender << (software_bug() | hw.Bluetooth.sender())

    with F('receiver failure') as receiver:
        receiver << (software_bug() | hw.Bluetooth.receiver())

    design = P('protocol design failure (T2T)', failure_rate=0)

    failure = T('uncooperative behavior\n(explores cells twice, ...)')
    failure << (sender | receiver | hw.Bluetooth.medium() | design)
Ejemplo n.º 2
0
class EscortNoLED(Tree):
    led = P('primary indicator LED failure', failure_rate=1e-5)

    with F('not aware of escorting') as not_aware:
        not_aware << (hw.EPuck.memory_fault() | Escort.unintentional)

    failure = T('escorting, but\nno LED indication')
    failure << (led | not_aware | software_bug())
Ejemplo n.º 3
0
class SeeNoLed(Tree):
    primary = P('primary failure\nof the display-LED', failure_rate=1e-5)
    software = software_bug()

    not_turned_on = hw.EPuck.not_turned_on()

    failure = T('clear line of sight,\nbut no LED indication')
    failure << (VictimSilent.failure | proto.SOS.receiver | primary | software
                | not_turned_on)
Ejemplo n.º 4
0
class SpuriousMovements(Tree):
    turn = F('does not\nstop turning\nwhile sensing\nangle to victim')
    turn << (VictimSilent.failure.as_leaf() | hw.ExtBoard.failure)

    badcolor = S("Tin Bot's physical color\nis not hardcoded color")

    failure = T('spurious movements\n(e.g., spin around, drive circles, ...)')
    failure << (proto.LPS.failure.as_leaf() | software_bug() | badcolor
                | Proximity.failure() | Uncooperative.failure.as_leaf() | turn)
Ejemplo n.º 5
0
class StandingStill(Tree):
    with F('no initial position from LPS') as no_initial_lps:
        user = S('user did not\nenable LPS')
        no_initial_lps << (proto.LPS.failure | user)

    with F('wheels do not turn') as wheel_fault:
        blocked = S('wheels blocked')
        wheel_fault << (hw.Motor.failure | blocked)

    bad_setup = S('bad setup')
    software = software_bug()

    failure = T('standing still')
    failure << (no_initial_lps | bad_setup | software | wheel_fault
                | hw.EPuck.failure | RunIntoWall.failure | Escort.hang)
Ejemplo n.º 6
0
class IgnoreVictim(Tree):
    conflict = F('conflicting data\nabout victim')
    conflict << (hw.EPuck.memory_fault() | S('user moved\nvictim')
                 | Uncooperative.failure.as_leaf())

    late = P('too high min-distance\nfor sensing again', failure_rate=1e-4)

    no_triang = F('triangulation fails')
    no_triang << (late | software_bug())

    overwrite = F('information gets overwritten\nbefore E-Puck picks it up')
    overwrite << Uncooperative.design()

    failure = T('not using information\nabout victim')
    failure << (hw.ExtBoard.failure.as_leaf() | conflict | no_triang
                | overwrite)
Ejemplo n.º 7
0
class VictimSilent(Tree):
    software = software_bug()

    failure = T('victim\'s LED does not\nsend valid signal')
    failure << (software | hw.Victim.failure)