evanlong / evan-public-development
- Source
- Commits
- Network (0)
- Issues (0)
- Downloads (0)
- Wiki (1)
- Graphs
-
Tree:
acfa9ee
longx223 (author)
Mon Apr 06 22:45:04 -0700 2009
evan-public-development / fokker / fokker.py
| 694125fa » | longx223 | 2009-04-06 | 1 | #Evan Long | |
| 2 | #Copyright 2009 | ||||
| 3 | |||||
| 183bc891 » | longx223 | 2009-04-06 | 4 | from __future__ import with_statement | |
| 5 | import threading | ||||
| 6 | import time | ||||
| 7 | |||||
| 8 | prop = { | ||||
| 9 | 'rpm':8 | ||||
| 10 | } | ||||
| 11 | |||||
| 12 | gun = { | ||||
| 13 | 'rounds':20, | ||||
| 14 | 'rate':1, | ||||
| 15 | 'tracer_rate':3 | ||||
| 16 | } | ||||
| 17 | |||||
| 18 | rounds_lock = threading.Lock() | ||||
| 19 | gun_can_fire = threading.Event() | ||||
| 20 | |||||
| 21 | def runprop(): | ||||
| 22 | while True: | ||||
| 23 | with rounds_lock: | ||||
| 24 | if gun['rounds'] <= 0: | ||||
| 25 | break | ||||
| 26 | |||||
| 27 | gun_can_fire.clear() | ||||
| 28 | |||||
| 29 | print 'Prop in gun zone' | ||||
| 30 | time.sleep(prop['rpm']/4); #time in zone | ||||
| 31 | print 'prop out of gun zone' | ||||
| 32 | |||||
| 33 | gun_can_fire.set() | ||||
| 34 | |||||
| 35 | time.sleep(prop['rpm']/2); #time to spin back to zone | ||||
| 36 | |||||
| 37 | print 'prop done' | ||||
| 38 | |||||
| 39 | def rungun(): | ||||
| 40 | while True: | ||||
| 41 | gun_can_fire.wait() | ||||
| 42 | with rounds_lock: | ||||
| 43 | gun['rounds'] -= 1 | ||||
| 44 | if gun['rounds'] % gun['tracer_rate'] == 0: | ||||
| 45 | print 'tracer fired' | ||||
| 46 | if gun['rounds'] <= 0: | ||||
| 47 | break | ||||
| 48 | print 'rounds %d' % gun['rounds'] | ||||
| 49 | time.sleep(gun['rate']) | ||||
| 50 | print 'gun done' | ||||
| 51 | |||||
| 52 | if __name__ == '__main__': | ||||
| 53 | prop_thread = threading.Thread(target=runprop) | ||||
| 54 | gun_thread = threading.Thread(target=rungun) | ||||
| 55 | |||||
| 56 | gun_can_fire.clear() | ||||
| 57 | |||||
| 58 | prop_thread.start() | ||||
| 59 | gun_thread.start() | ||||
| 60 | |||||
| 61 | prop_thread.join() | ||||
| 62 | gun_thread.join() | ||||
| 63 | |||||
