1 logger.write_error("Welcome to the Beremiz Demo\n\n") |
1 self.logger.write_error("Welcome to the Beremiz Demo\n\n") |
2 logger.write("This demo provides a PLC working with the CANopen plugin\n") |
2 self.logger.write("This demo provides a PLC working with the CANopen plugin\n") |
3 logger.write("""Some external programs are also provided:\n |
3 self.logger.write("""Some external programs are also provided:\n |
4 - a CAN TCP server to simulate the CANopen network |
4 - a CAN TCP server to simulate the CANopen network |
5 - a virtual slave node to simulate input block |
5 - a virtual slave node to simulate input block |
6 - a virtual slave node to simulate output block |
6 - a virtual slave node to simulate output block |
7 """) |
7 """) |
8 logger.write("\nInfo: For this demo, %s plugin has some special methods to run external programs.\nThese methods are defined in methods.py\n" % (PlugName or "Root")) |
8 self.logger.write("\nInfo: For this demo, %s plugin has some special methods to run external programs.\nThese methods are defined in methods.py\n" % (PlugName or "Root")) |
9 #open_pdf(os.path.join(os.path.split(__file__)[0], "doc", "manual_beremiz.pdf"), pagenum=21) |
9 #open_pdf(os.path.join(os.path.split(__file__)[0], "doc", "manual_beremiz.pdf"), pagenum=21) |
10 |
10 |
11 if wx.Platform == '__WXMSW__': |
11 if wx.Platform == '__WXMSW__': |
12 self.listLaunchProg = [ |
12 self.listLaunchProg = [ |
13 {'name' : 'Can Tcp Server', |
13 {'name' : 'Can Tcp Server', |
40 'no_gui' : False} |
40 'no_gui' : False} |
41 ] |
41 ] |
42 |
42 |
43 |
43 |
44 def my_methods(self): |
44 def my_methods(self): |
45 def _Run(logger): |
45 def _Run(): |
46 # External programs list |
46 # External programs list |
47 # Launch them and get their pid |
47 # Launch them and get their pid |
48 for prog in self.listLaunchProg: |
48 for prog in self.listLaunchProg: |
49 logger.write("Starting %s\n" % prog['name']) |
49 logger.write("Starting %s\n" % prog['name']) |
50 prog['pid'] = ProcessLogger(logger, prog['command'], no_gui=prog['no_gui']) |
50 prog['pid'] = ProcessLogger(self.logger, prog['command'], no_gui=prog['no_gui']) |
51 prog['pid'].spin( |
51 prog['pid'].spin( |
52 timeout=200, |
52 timeout=200, |
53 keyword = prog['keyword'], |
53 keyword = prog['keyword'], |
54 kill_it = False) |
54 kill_it = False) |
55 |
55 |
56 PluginsRoot._Run(self,logger) |
56 PluginsRoot._Run(self) |
57 |
57 |
58 def _Stop(logger): |
58 def _Stop(): |
59 PluginsRoot._Stop(self,logger) |
59 PluginsRoot._Stop(self) |
60 for prog in self.listLaunchProg: |
60 for prog in self.listLaunchProg: |
61 logger.write("Stopping %s\n" % prog['name']) |
61 self.logger.write("Stopping %s\n" % prog['name']) |
62 prog['pid'].kill() |
62 prog['pid'].kill() |
63 |
63 |
64 return _Run, _Stop |
64 return _Run, _Stop |
65 |
65 |
66 self._Run, self._Stop = my_methods(self) |
66 self._Run, self._Stop = my_methods(self) |