winIDEA SDK
Loading...
Searching...
No Matches
advanced_winidea_launching.py
# This script is licensed under BSD License, see file LICENSE.txt, or search for `License` in the SDK online help.
#
# (c) TASKING Germany GmbH, 2023
import isystem.connect as ic
def main():
# It is not required to connect to winIDEA for enumeration, so
# ConnectionMgr() object is all we need.
connectionMgr = ic.ConnectionMgr()
# Let's connect to winIDEA with known ID
connectionConfig = ic.CConnectionConfig()
connectionConfig.instanceId('myID')
try:
connectionConfig.start_existing()
connectionMgr.connect(connectionConfig)
port = connectionConfig.getUdpDiscoveryPort()
connectionMgr.disconnect_close(bSaveAll=False)
print('winIDEA found at port: ', port)
except IOError:
print('No winIDEA with the specified ID found: ', connectionConfig.toString())
# Now we'll start new instance with the given workspace and ID:
connectionConfig.instanceId('myID').workspace('../../../targetProjects/SampleSTM32.xjrf')
connectionMgr.connect(connectionConfig.start_always())
port = connectionConfig.getUdpDiscoveryPort()
print('New instance of winIDEA started. Port: ', port)
connectionMgr.disconnect_close(bSaveAll=False)
# Most often we want to start a new instance of winIDEA only
# if the workspace is not already opened:
connectionMgr.connect(connectionConfig.start_if_required())
port = connectionConfig.getUdpDiscoveryPort()
print('winIDEA available at port: ', port)
connectionMgr.disconnect_keep()
connectionMgr.connect(ic.CConnectionConfig().host('').udpDiscoveryPort(port))
port = connectionConfig.getUdpDiscoveryPort()
print('winIDEA closed: ', port)
connectionMgr.disconnect_close(bSaveAll=False)
# Let's start invisible winIDEA - you can control it only via isystem.connect
invisibleConnectionConfig = ic.CConnectionConfig()
invisibleConnectionConfig.visibility(ic.IConnect.lfShowHidden).workspace('../../../targetProjects/SampleSTM32.xjrf')
connectionMgr.connect(invisibleConnectionConfig.start_always())
port = invisibleConnectionConfig.getUdpDiscoveryPort()
print('New instance of winIDEA started. Port: ', port)
connectionMgr.disconnect_keep()
# connect to new instance of winIDEA
connectionMgr.connect(ic.CConnectionConfig().host('').udpDiscoveryPort(port).start_always())
debugCtrl = ic.CDebugFacade(connectionMgr)
print('downloading to invisible winIDEA')
debugCtrl.download()
print('Downloading finished')
print('main_loop_counter = ', debugCtrl.evaluate(ic.IConnectDebug.fMonitor, 'main_loop_counter').getResult())
# shut down the invisible winIDEA
connectionMgr.disconnect_close(bSaveAll=False)
print('Invisible winIDEA has been shut down')
if __name__ == "__main__":
main()