Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Hacksaar
Sphinx
Commits
77625890
Commit
77625890
authored
Dec 04, 2013
by
Constantin
Browse files
abs2rel works and more sounds
parent
e5699318
Changes
1
Hide whitespace changes
Inline
Side-by-side
statemachine.py
View file @
77625890
...
...
@@ -20,8 +20,11 @@ def nervlist_abs2rel(nervlist_abs):
for
(
t
,
f
)
in
nervlist_abs
:
assert
t
>=
last_t
nervlist_rel
.
append
((
t
-
last_t
,
f
))
last_t
=
t
return
nervlist_rel
# StateAuf constants
HELLO_PROBABILITY
=
0.2
# StateUnlocking constants
OPEN_REPEAT_TIMEOUT
=
7
...
...
@@ -35,10 +38,11 @@ CLOSE_REPEAT_NUMBER = 3
FALLBACK_LEAVE_DELAY_LOCK
=
5
# seconds
# StateAboutToOpen constants
SWITCH_PRAISE_PROBABILITY
=
0.5
ABOUTOPEN_NERVLIST
=
nervlist_abs2rel
([(
5
,
lambda
:
play_sound
(
"flipswitch"
)),
(
10
,
lambda
:
play_sound
(
"flipswitch"
)),
\
(
20
,
lambda
:
play_sound
(
"flipswitch"
)),
(
30
,
lambda
:
play_sound
(
"flipswitch"
)),
(
30
,
lambda
:
logger
.
error
(
"Space open but switch not flipped for 30 seconds"
)),
\
(
40
,
lambda
:
play_sound
(
"flipswitch"
)),
(
50
,
lambda
:
play_sound
(
"flipswitch"
)),
(
60
,
lambda
:
play_sound
(
"
flipswitch
"
)),
(
60
,
lambda
:
logger
.
critical
(
"Space open but switch not flipped for 60 seconds"
)),
(
120
,
lambda
:
play_sound
(
"
flipswitch
"
)),
(
40
,
lambda
:
play_sound
(
"flipswitch"
)),
(
50
,
lambda
:
play_sound
(
"flipswitch"
)),
(
60
,
lambda
:
play_sound
(
"
mail_sent
"
)),
(
60
,
lambda
:
logger
.
critical
(
"Space open but switch not flipped for 60 seconds"
)),
(
120
,
lambda
:
play_sound
(
"
mail_sent
"
)),
(
10
*
60
,
lambda
:
logger
.
critical
(
"Space open but switch not flipped for 10 minutes"
)),
(
60
*
60
,
lambda
:
logger
.
critical
(
"Space open but switch not flipped for one hour"
))])
...
...
@@ -247,6 +251,8 @@ class StateMachine():
pins
=
self
.
pins
()
if
pins
.
space_active
:
logger
.
info
(
"Space activated, opening procedure completed"
)
if
not
self
.
old_pins
().
space_active
and
random
.
random
()
<=
SWITCH_PRAISE_PROBABILITY
:
play_sound
(
"success"
)
return
StateMachine
.
StateAuf
(
self
.
state_machine
)
return
super
().
handle_pins_event
()
...
...
@@ -265,6 +271,8 @@ class StateMachine():
if
not
pins
.
space_active
:
logger
.
info
(
"StateMachine: space switch turned off - starting leaving procedure"
)
return
StateMachine
.
StateAboutToLeave
(
self
.
state_machine
)
if
not
pins
.
door_closed
and
self
.
old_pins
().
door_closed
and
random
.
random
()
<=
HELLO_PROBABILITY
:
play_sound
(
"hello"
)
return
super
().
handle_pins_event
()
def
on_leave
(
self
):
self
.
api
().
set_state
(
False
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment