1
2
3
4
5import sys
6import time
7import isystem.connect as ic
8
9def main():
10
11 connectionMgr = ic.ConnectionMgr()
12
13
14 def connectAndDisconnect(port, connectionConfig):
15
16 if port < 0:
17 print('No winIDEA with the specified configuration found, port = :', port,
18 '\n :', connectionConfig.toString(), '\n')
19 else:
20 print('Found winIDEA on port: ', port)
21 connectionMgr.connect(ic.CConnectionConfig().host('').udpDiscoveryPort(port))
22 ideCtrl = ic.CIDEController(connectionMgr)
23 ideCtrl.maximize()
24 time.sleep(2)
25 ideCtrl.restore()
26 connectionMgr.disconnect_close(bSaveAll=False)
27
28
29
30 connectionConfig = ic.CConnectionConfig()
31 connectionConfig.instanceId('myID')
32
33
34
35 print("Looking for winIDEA with ID 'myID' ... ")
36 try:
37 connectionMgr.connect(connectionConfig.start_if_required())
38 port = connectionConfig.getUdpDiscoveryPort()
39 connectionMgr.disconnect_keep()
40 connectAndDisconnect(port, connectionConfig)
41 except Exception as ex:
42 print(f' winIDEA not found: {ex}')
43
44
45 print('Start new instance of winIDEA')
46 connectionConfig.instanceId('myID').workspace('../../../targetProjects/SampleSTM32.xjrf')
47 connectionMgr.connect(connectionConfig.start_always())
48 port = connectionConfig.getUdpDiscoveryPort()
49 connectionMgr.disconnect_close(bSaveAll=False)
50 connectAndDisconnect(port, connectionConfig)
51
52
53
54 print('Start new instance of winIDEA started only if it is not running.')
55 connectionConfig.instanceId('myID').workspace('../../../targetProjects/SampleSTM32.xjrf')
56 connectionConfig.start_if_required()
57 connectionMgr.connect(connectionConfig)
58 port = connectionConfig.getUdpDiscoveryPort()
59 connectionMgr.disconnect_close(bSaveAll=False)
60 connectAndDisconnect(port, connectionConfig)
61
62
63
64 print('Start hidden winIDEA.')
65 invisibleConnectionConfig = ic.CConnectionConfig()
66 invisibleConnectionConfig.visibility(ic.IConnect.lfShowHidden).workspace(r'../../../targetProjects/SampleSTM32.xjrf')
67 invisibleConnectionConfig.start_always()
68 connectionMgr.connect(invisibleConnectionConfig)
69 print(f'Connected: {connectionMgr.isAttached()}')
70
71 debugCtrl = ic.CDebugFacade(connectionMgr)
72 print('downloading to invisible winIDEA')
73 debugCtrl.download()
74 print('Downloading finished')
75 debugCtrl.reset()
76 debugCtrl.run()
77 time.sleep(1)
78 debugCtrl.stop()
79 debugCtrl.waitUntilStopped(3000)
80 print('main_loop_counter = ', debugCtrl.evaluate(ic.IConnectDebug.fMonitor, 'main_loop_counter').getResult())
81
82
83 connectionMgr.disconnect_close(bSaveAll=False)
84 print('Invisible winIDEA has been shut down')
85
86if __name__ == "__main__":
87 main()