tests/linux/test_svgui/methods.py
author lbessard
Tue, 09 Jun 2009 10:10:34 +0200
changeset 356 e9698d0ee5f3
parent 261 5299c6746fa8
permissions -rw-r--r--
Adding support for printing lines where matiec failed in Log console (thanks to Brendan)
Bug that prevent to see errors in editor with double click fixed.
256
1da137b99948 add buildpath parameter for beremiz
greg
parents: 167
diff changeset
     1
self.logger.write_error("Welcome to the Beremiz Demo\n\n")            
1da137b99948 add buildpath parameter for beremiz
greg
parents: 167
diff changeset
     2
self.logger.write("This demo provides a PLC working with the CANopen plugin\n")
1da137b99948 add buildpath parameter for beremiz
greg
parents: 167
diff changeset
     3
self.logger.write("""Some external programs are also provided:\n
167
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
     4
- a CAN TCP server to simulate the CANopen network
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
     5
- a virtual slave node to simulate input block
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
     6
- a virtual slave node to simulate output block
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
     7
""")
256
1da137b99948 add buildpath parameter for beremiz
greg
parents: 167
diff changeset
     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"))
167
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
     9
#open_pdf(os.path.join(os.path.split(__file__)[0], "doc", "manual_beremiz.pdf"), pagenum=21)
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    10
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    11
if wx.Platform == '__WXMSW__':
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    12
    self.listLaunchProg = [
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    13
        {'name' : 'Can Tcp Server',
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    14
         'command' : 'can_tcp_win32_server.exe',
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    15
         'keyword' : 'Accepts',
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    16
         'pid' : None,
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    17
         'no_gui' : True},
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    18
        {'name' : 'DS401 Slave Gui NodeId 32',
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    19
         'command' : 'DS401_Slave_Gui.exe -sI -l can_tcp_win32.dll -b 127.0.0.1 -i 20 -B 125K',
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    20
         'keyword' : '[OK]',
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    21
         'pid' : None,
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    22
         'no_gui' : False},
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    23
        {'name' : 'DS401 Slave Gui NodeId 16',
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    24
         'command' : 'DS401_Slave_Gui.exe -sO -l can_tcp_win32.dll -b 127.0.0.1 -i 10 -B 125K',
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    25
         'keyword' : '[OK]',
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    26
         'pid' : None,
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    27
         'no_gui' : False}
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    28
    ]
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    29
else:
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    30
    self.listLaunchProg = [
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    31
        {'name' : 'DS401 Slave Gui NodeId 32',
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    32
         'command' : '../CanFestival-3/examples/DS401_Slave_Gui/DS401_Slave_Gui -sI -l ../CanFestival-3/drivers/can_socket/libcanfestival_can_socket.so -b vcan0 -i 20 -B 125K',
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    33
         'keyword' : '[OK]',
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    34
         'pid' : None,
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    35
         'no_gui' : False},
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    36
        {'name' : 'DS401 Slave Gui NodeId 16',
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    37
         'command' : '../CanFestival-3/examples/DS401_Slave_Gui/DS401_Slave_Gui -sO -l ../CanFestival-3/drivers/can_socket/libcanfestival_can_socket.so -b vcan0 -i 10 -B 125K',
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    38
         'keyword' : '[OK]',
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    39
         'pid' : None,
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    40
         'no_gui' : False}
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    41
    ]
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    42
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    43
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    44
def my_methods(self): 
256
1da137b99948 add buildpath parameter for beremiz
greg
parents: 167
diff changeset
    45
    def _Run():        
167
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    46
        # External programs list 
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    47
        # Launch them and get their pid
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    48
        for prog in self.listLaunchProg:
261
5299c6746fa8 fix bug in methods.py
greg
parents: 256
diff changeset
    49
            self.logger.write("Starting %s\n" % prog['name'])
256
1da137b99948 add buildpath parameter for beremiz
greg
parents: 167
diff changeset
    50
            prog['pid'] = ProcessLogger(self.logger, prog['command'], no_gui=prog['no_gui'])
167
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    51
            prog['pid'].spin(
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    52
            		 timeout=200,
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    53
                     keyword = prog['keyword'],
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    54
                     kill_it = False)
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    55
        
256
1da137b99948 add buildpath parameter for beremiz
greg
parents: 167
diff changeset
    56
        PluginsRoot._Run(self)
167
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    57
256
1da137b99948 add buildpath parameter for beremiz
greg
parents: 167
diff changeset
    58
    def _Stop():
1da137b99948 add buildpath parameter for beremiz
greg
parents: 167
diff changeset
    59
        PluginsRoot._Stop(self)
167
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    60
        for prog in self.listLaunchProg:
256
1da137b99948 add buildpath parameter for beremiz
greg
parents: 167
diff changeset
    61
            self.logger.write("Stopping %s\n" % prog['name'])
167
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    62
            prog['pid'].kill()
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    63
    
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    64
    return _Run, _Stop
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    65
   
648449a9d778 Re-organized tests
etisserant
parents:
diff changeset
    66
self._Run, self._Stop = my_methods(self)