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
e489f494
Commit
e489f494
authored
Oct 27, 2013
by
Ralf
Browse files
Merge branch 'master' of ralfj.de:saartuer
parents
c557bfbd
b4ca24f8
Changes
3
Hide whitespace changes
Inline
Side-by-side
statemachine.py
View file @
e489f494
...
...
@@ -138,7 +138,7 @@ class StateMachine():
class
StateStart
(
State
):
def
__init__
(
self
,
sm
,
nervlist
=
None
,
fallback
=
False
):
super
().
__init__
(
self
,
sm
,
nervlist
)
super
().
__init__
(
sm
,
nervlist
)
self
.
fallback
=
fallback
def
handle_pins_event
(
self
):
pins
=
self
.
pins
()
...
...
@@ -156,7 +156,7 @@ class StateMachine():
class
StateFallback
(
State
):
def
__init__
(
self
,
sm
,
nervlist
=
None
):
super
().
__init__
(
self
,
sm
,
nervlist
)
super
().
__init__
(
sm
,
nervlist
)
self
.
_last_blink_time
=
time
.
time
()
self
.
_red_state
=
False
def
handle_pins_event
(
self
):
...
...
@@ -307,7 +307,7 @@ class StateMachine():
def
__init__
(
self
,
actor
,
waker
,
fallback
=
False
):
self
.
actor
=
actor
self
.
callback
=
ThreadFunction
(
self
.
_callback
,
name
=
"StateMachine"
)
self
.
current_state
=
StateMachine
.
StateStart
(
self
,
fallback
)
self
.
current_state
=
StateMachine
.
StateStart
(
self
,
None
,
fallback
)
self
.
pins
=
None
self
.
old_pins
=
None
waker
.
register
(
lambda
:
self
.
callback
(
StateMachine
.
CMD_WAKEUP
),
1.0
)
# wake up every second
...
...
tuerd
View file @
e489f494
...
...
@@ -30,7 +30,7 @@ GPIO.setmode(GPIO.BOARD)
# bring 'em all up
the_actor
=
actor
.
Actor
()
the_waker
=
waker
.
Waker
(
the_machine
)
the_waker
=
waker
.
Waker
()
the_machine
=
statemachine
.
StateMachine
(
the_actor
,
the_waker
,
args
.
fallback
)
the_socket
=
tysock
.
TySocket
(
the_machine
)
the_pins
=
pins
.
PinsWatcher
(
the_machine
)
...
...
waker.py
View file @
e489f494
...
...
@@ -12,13 +12,12 @@ class ToBeWoken:
self
.
one_shot
=
one_shot
class
Waker
():
def
__init__
(
self
,
sm
):
self
.
_sm
=
sm
self
.
_t
=
ThreadRepeater
(
self
.
_wake
,
SLEEP_TIME
,
name
=
"Waker"
)
def
__init__
(
self
):
self
.
_tobewokens
=
[]
self
.
_tobewokens_lock
=
Lock
()
self
.
_t
=
ThreadRepeater
(
self
.
_wake
,
SLEEP_TIME
,
name
=
"Waker"
)
def
register
(
f
,
time
,
one_shot
=
False
):
def
register
(
self
,
f
,
time
,
one_shot
=
False
):
'''Register a function which is called approximately every <time> seconds (or just once, if one_shot is True). f should return quickly, or it will delay the waker!'''
time
=
max
(
time
//
SLEEP_TIME
,
1
)
with
self
.
_tobewokens_lock
:
...
...
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