slotUI/SlotCli.py

Thu, 08 Dec 2011 17:46:21 +0100

author
Malte Bayer <mbayer@neo-soft.org>
date
Thu, 08 Dec 2011 17:46:21 +0100
changeset 52
6b26d7e3ecd0
parent 50
84b8ab4cd79e
child 54
68eca8057d68
permissions
-rwxr-xr-x

simplified do_controller function

25
646ee4dc3a6b started communication class and CLI
Malte Bayer <mbayer@neo-soft.org>
parents:
diff changeset
1 #!/usr/bin/env python
646ee4dc3a6b started communication class and CLI
Malte Bayer <mbayer@neo-soft.org>
parents:
diff changeset
2 """
646ee4dc3a6b started communication class and CLI
Malte Bayer <mbayer@neo-soft.org>
parents:
diff changeset
3 Freeslot project
646ee4dc3a6b started communication class and CLI
Malte Bayer <mbayer@neo-soft.org>
parents:
diff changeset
4 Command line interface
646ee4dc3a6b started communication class and CLI
Malte Bayer <mbayer@neo-soft.org>
parents:
diff changeset
5 """
27
3e617fcf999a added exception, started SlotCli class
Malte Bayer <mbayer@neo-soft.org>
parents: 25
diff changeset
6
3e617fcf999a added exception, started SlotCli class
Malte Bayer <mbayer@neo-soft.org>
parents: 25
diff changeset
7 from freeslot import Blackbox
35
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
8 from optparse import OptionParser
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
9 import time, sys
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
10
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
11 VERSION = "1.0"
27
3e617fcf999a added exception, started SlotCli class
Malte Bayer <mbayer@neo-soft.org>
parents: 25
diff changeset
12
3e617fcf999a added exception, started SlotCli class
Malte Bayer <mbayer@neo-soft.org>
parents: 25
diff changeset
13 class SlotCli():
3e617fcf999a added exception, started SlotCli class
Malte Bayer <mbayer@neo-soft.org>
parents: 25
diff changeset
14 def __init__(self):
3e617fcf999a added exception, started SlotCli class
Malte Bayer <mbayer@neo-soft.org>
parents: 25
diff changeset
15 self.box = Blackbox()
3e617fcf999a added exception, started SlotCli class
Malte Bayer <mbayer@neo-soft.org>
parents: 25
diff changeset
16 self.box.connect()
3e617fcf999a added exception, started SlotCli class
Malte Bayer <mbayer@neo-soft.org>
parents: 25
diff changeset
17
3e617fcf999a added exception, started SlotCli class
Malte Bayer <mbayer@neo-soft.org>
parents: 25
diff changeset
18 def run(self):
3e617fcf999a added exception, started SlotCli class
Malte Bayer <mbayer@neo-soft.org>
parents: 25
diff changeset
19 """
3e617fcf999a added exception, started SlotCli class
Malte Bayer <mbayer@neo-soft.org>
parents: 25
diff changeset
20 Keyboard loop to control it???
3e617fcf999a added exception, started SlotCli class
Malte Bayer <mbayer@neo-soft.org>
parents: 25
diff changeset
21 """
3e617fcf999a added exception, started SlotCli class
Malte Bayer <mbayer@neo-soft.org>
parents: 25
diff changeset
22 return None
3e617fcf999a added exception, started SlotCli class
Malte Bayer <mbayer@neo-soft.org>
parents: 25
diff changeset
23
3e617fcf999a added exception, started SlotCli class
Malte Bayer <mbayer@neo-soft.org>
parents: 25
diff changeset
24 if __name__ == "__main__":
35
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
25 parser = OptionParser(version="%prog " + VERSION)
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
26 parser.add_option("--carid", dest="carid",
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
27 help="Required for programming a car directly", metavar="[0-5]")
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
28 parser.add_option("--fuel", dest="fuel",
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
29 help="Set maximum CAR fuel level", metavar="[0-15]")
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
30 parser.add_option("--brake", dest="brake",
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
31 help="Set CAR brake strength", metavar="[0-15]")
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
32 parser.add_option("--speed", dest="speed",
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
33 help="Set maximum CAR speed", metavar="[0-15]")
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
34 parser.add_option("--blink", dest="blink",
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
35 help="Set car lights blinking state", metavar="[on|off]")
36
aea84f4f5a12 feature: program a specific controller speed limit without changing the car's acceleration
Malte Bayer <mbayer@neo-soft.org>
parents: 35
diff changeset
36 parser.add_option("--limit", dest="limit",
aea84f4f5a12 feature: program a specific controller speed limit without changing the car's acceleration
Malte Bayer <mbayer@neo-soft.org>
parents: 35
diff changeset
37 help="Controlled SPEED LIMIT (15 = no limit)", metavar="[0-15]")
50
84b8ab4cd79e implemented new --drive command to CLI
Malte Bayer <mbayer@neo-soft.org>
parents: 36
diff changeset
38 parser.add_option("--drive", dest="drive",
84b8ab4cd79e implemented new --drive command to CLI
Malte Bayer <mbayer@neo-soft.org>
parents: 36
diff changeset
39 help="Controlled SPEED MINIMUM (0 = disabled)", metavar="[0-15]")
35
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
40
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
41 (options, args) = parser.parse_args()
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
42 cli = SlotCli()
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
43 # should a CLI function be started?
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
44
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
45
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
46 # check commandline if we have to program something
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
47 if options.carid == None:
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
48 print "Option --carid is required for all car programming commands!\nUse --help to get a list of available commands"
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
49 sys.exit(1)
36
aea84f4f5a12 feature: program a specific controller speed limit without changing the car's acceleration
Malte Bayer <mbayer@neo-soft.org>
parents: 35
diff changeset
50
35
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
51 if options.fuel != None:
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
52 print "setFuel: " + cli.box.progcar(int(options.carid), "fuel", int(options.fuel))
36
aea84f4f5a12 feature: program a specific controller speed limit without changing the car's acceleration
Malte Bayer <mbayer@neo-soft.org>
parents: 35
diff changeset
53
35
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
54 if options.speed != None:
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
55 print "setSpeed: " + cli.box.progcar(int(options.carid), "speed", int(options.speed))
36
aea84f4f5a12 feature: program a specific controller speed limit without changing the car's acceleration
Malte Bayer <mbayer@neo-soft.org>
parents: 35
diff changeset
56
35
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
57 if options.brake != None:
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
58 print "setBrake: " + cli.box.progcar(int(options.carid), "brake", int(options.brake))
36
aea84f4f5a12 feature: program a specific controller speed limit without changing the car's acceleration
Malte Bayer <mbayer@neo-soft.org>
parents: 35
diff changeset
59
35
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
60 if options.blink != None:
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
61 state = False
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
62 if options.blink == "on":
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
63 state = True
00166228a419 cli: implemented setting of fuel, brake, speed, blinkstate for any car
Malte Bayer <mbayer@neo-soft.org>
parents: 27
diff changeset
64 print "setBlink: " + cli.box.blinkcar(int(options.carid), state)
36
aea84f4f5a12 feature: program a specific controller speed limit without changing the car's acceleration
Malte Bayer <mbayer@neo-soft.org>
parents: 35
diff changeset
65
aea84f4f5a12 feature: program a specific controller speed limit without changing the car's acceleration
Malte Bayer <mbayer@neo-soft.org>
parents: 35
diff changeset
66 if options.limit != None:
aea84f4f5a12 feature: program a specific controller speed limit without changing the car's acceleration
Malte Bayer <mbayer@neo-soft.org>
parents: 35
diff changeset
67 print "Change Speed Limit: " + cli.box.speedlimit(int(options.carid), int(options.limit))
aea84f4f5a12 feature: program a specific controller speed limit without changing the car's acceleration
Malte Bayer <mbayer@neo-soft.org>
parents: 35
diff changeset
68
50
84b8ab4cd79e implemented new --drive command to CLI
Malte Bayer <mbayer@neo-soft.org>
parents: 36
diff changeset
69 if options.drive != None:
84b8ab4cd79e implemented new --drive command to CLI
Malte Bayer <mbayer@neo-soft.org>
parents: 36
diff changeset
70 print "Change minimum Speed drive: " + cli.box.speedminimum(int(options.carid), int(options.drive))
84b8ab4cd79e implemented new --drive command to CLI
Malte Bayer <mbayer@neo-soft.org>
parents: 36
diff changeset
71

mercurial