Update .gitignore and README.md for CODESYS MCP project. Added entries to .gitignore for VSIX files and VS Code settings. Expanded README to include architecture, components, deployment instructions, and details about the Cursor extension.

This commit is contained in:
2026-05-24 15:47:21 +03:00
parent acdd740d01
commit bedc5d0628
55 changed files with 11120 additions and 3 deletions

View File

@@ -0,0 +1,59 @@
#!/usr/bin/env python
"""Login/download/start the active application using ScriptEngine online API."""
from __future__ import print_function
import os
from _common import emit, load_payload
def main():
payload = load_payload()
project_path = payload.get("project_path")
target_name = payload.get("target_name", "")
start_application = bool(payload.get("start_application", False))
force_download = bool(payload.get("force_download", True))
if not project_path:
raise ValueError("project_path is required.")
pp = os.path.abspath(os.path.expanduser(project_path))
if not os.path.exists(pp):
raise RuntimeError("Project path does not exist: {0}".format(pp))
if "projects" not in globals() or "online" not in globals():
raise RuntimeError("Run through CODESYS ScriptEngine (--runscript).")
if projects.primary:
projects.primary.close()
proj = projects.open(pp, primary=True, allow_readonly=False)
app = proj.active_application
if app is None:
raise RuntimeError("No active application found in project.")
online_app = online.create_online_application(app)
# Try online change first; CODESYS handles download when needed.
login_mode = OnlineChangeOption.Try if force_download else OnlineChangeOption.Never
online_app.login(login_mode, True)
started = False
if start_application and online_app.application_state != ApplicationState.run:
online_app.start()
started = True
online_app.logout()
proj.close()
emit(
{
"ok": True,
"action": "download_to_device",
"project_path": pp,
"target_name": target_name,
"start_application": start_application,
"started": started,
}
)
if __name__ == "__main__":
main()