1
2
3 """Main entry point. Starts the application."""
4
5 import sys
6
8
10 """Print usage information."""
11 print """
12 usage:
13 %(name)s - start gui
14 %(name)s doc nr - generate docs for controller nr (variables/adjectives)
15 %(name)s dot nr - generate docs for controller nr (rules)
16 %(name)s run nr1 nr2 [seconds] - run system with controller nr1 and process nr2
17 for certain time or forever
18 """ % {"name":sys.argv[0]}
19
20 - def getControllers(self):
21 """Get list with available controllers."""
22 return \
23 [
24 ]
25
26 - def getProcesses(self):
27 """Get list with available processes."""
28 return \
29 [
30 ]
31
32
33 - def make_doc(self,i):
34 self.controllers[i][1].createDoc("../doc/%s" % self.controllers[i][0].lower())
35
36 - def make_dot(self,i):
37 self.controllers[i][1].createDot("../doc/%s" % self.controllers[i][0].lower())
38
39 - def run_system(self,process,controller,t=None):
40 self.system.controller = controller
41 self.system.process = process
42 import time
43 self.system.start()
44 sys.stderr.write("Started (%s) ...\n" % time.asctime())
45 try:
46 if t is not None:
47 time.sleep(t)
48 else:
49 while 1:
50 time.sleep(1)
51 except KeyboardInterrupt:
52 pass
53 self.system.stop()
54 sys.stderr.write("Stopped (%s).\n" % time.asctime())
55 plotxxx(self.system.controller)
56
57 - def start_gui(self):
58 import MainWindow
59 MainWindow.MainWindow(self.system,self.controllers,self.processes)
60
62 import System,Logger
63 self.system = System.System()
64 self.system.logger = Logger.Logger()
65 self.controllers = self.getControllers()
66 self.processes = self.getProcesses()
67
69 if len(sys.argv) > 1:
70
71 if "doc" == sys.argv[1] and len(sys.argv) > 2:
72 self.make_doc(int(sys.argv[2]))
73 elif "dot" == sys.argv[1] and len(sys.argv) > 2:
74 self.make_dot(int(sys.argv[2]))
75 elif "run" == sys.argv[1] and len(sys.argv) > 3:
76 t = None
77 if len(sys.argv) > 4:
78 t = float(sys.argv[4])
79 self.run_system(self.processes[int(sys.argv[3])][1],self.controllers[int(sys.argv[2])][1],t)
80 else:
81 self.usage()
82 else:
83 self.start_gui()
84
86 from fuzzy.doc.plot.gnuplot import doc
87 directory = "../doc/fuzzy"
88 d = doc.Doc(directory)
89 d.createDocSets(controller.system.variables["power"].defuzzify.activated_sets,"activated_sets")
90 d.createDocSets({"accumulate":controller.system.variables["power"].defuzzify.accumulated_set},"accumulate")
91