winIDEA SDK
Loading...
Searching...
No Matches
advanced_winidea_launching.py
1# This script is licensed under BSD License, see file LICENSE.txt, or search for `License` in the SDK online help.
2#
3# (c) TASKING Germany GmbH, 2023
4
5import isystem.connect as ic
6
7def main():
8 # It is not required to connect to winIDEA for enumeration, so
9 # ConnectionMgr() object is all we need.
10 connectionMgr = ic.ConnectionMgr()
11
12 # Let's connect to winIDEA with known ID
13 connectionConfig = ic.CConnectionConfig()
14 connectionConfig.instanceId('myID')
15
16
17 try:
18 connectionConfig.start_existing()
19 connectionMgr.connect(connectionConfig)
20 port = connectionConfig.getUdpDiscoveryPort()
21 connectionMgr.disconnect_close(bSaveAll=False)
22 print('winIDEA found at port: ', port)
23 except IOError:
24 print('No winIDEA with the specified ID found: ', connectionConfig.toString())
25
26 # Now we'll start new instance with the given workspace and ID:
27 connectionConfig.instanceId('myID').workspace('../../../targetProjects/SampleSTM32.xjrf')
28 connectionMgr.connect(connectionConfig.start_always())
29 port = connectionConfig.getUdpDiscoveryPort()
30 print('New instance of winIDEA started. Port: ', port)
31 connectionMgr.disconnect_close(bSaveAll=False)
32
33 # Most often we want to start a new instance of winIDEA only
34 # if the workspace is not already opened:
35 connectionMgr.connect(connectionConfig.start_if_required())
36 port = connectionConfig.getUdpDiscoveryPort()
37 print('winIDEA available at port: ', port)
38 connectionMgr.disconnect_keep()
39 connectionMgr.connect(ic.CConnectionConfig().host('').udpDiscoveryPort(port))
40 port = connectionConfig.getUdpDiscoveryPort()
41 print('winIDEA closed: ', port)
42 connectionMgr.disconnect_close(bSaveAll=False)
43
44
45 # Let's start invisible winIDEA - you can control it only via isystem.connect
46 invisibleConnectionConfig = ic.CConnectionConfig()
47 invisibleConnectionConfig.visibility(ic.IConnect.lfShowHidden).workspace('../../../targetProjects/SampleSTM32.xjrf')
48 connectionMgr.connect(invisibleConnectionConfig.start_always())
49 port = invisibleConnectionConfig.getUdpDiscoveryPort()
50 print('New instance of winIDEA started. Port: ', port)
51 connectionMgr.disconnect_keep()
52
53 # connect to new instance of winIDEA
54 connectionMgr.connect(ic.CConnectionConfig().host('').udpDiscoveryPort(port).start_always())
55
56 debugCtrl = ic.CDebugFacade(connectionMgr)
57 print('downloading to invisible winIDEA')
58 debugCtrl.download()
59 print('Downloading finished')
60 print('main_loop_counter = ', debugCtrl.evaluate(ic.IConnectDebug.fMonitor, 'main_loop_counter').getResult())
61
62 # shut down the invisible winIDEA
63 connectionMgr.disconnect_close(bSaveAll=False)
64 print('Invisible winIDEA has been shut down')
65
66
67if __name__ == "__main__":
68 main()