using RobotNet10.Script.IO;
namespace RobotNet10.ScriptEngine.Shared;
public interface IScriptGlobals
{
RobotNet10.Script.ILogger Logger { get; }
Guid CreateMission(string name, params object[] args);
bool CancelMission(Guid id, string reason);
void DisableTask(string name);
void EnableTask(string name);
// IO Connection Factory Methods
///
/// Creates an HTTP connection.
///
/// The base URL (e.g., "http://localhost:8080").
/// Optional timeout in seconds (default: 30).
/// An HTTP connection instance.
IHttpConnection CreateHttpConnection(string baseUrl, int timeoutSeconds = 30);
///
/// Creates a ModbusTCP connection.
///
/// The IP address of the ModbusTCP server.
/// The port number (default: 502).
/// The slave ID/unit identifier (default: 1).
/// A ModbusTCP connection instance.
IModbusTcpConnection CreateModbusTcpConnection(string ipAddress, int port = 502, byte slaveId = 1);
///
/// Creates a ProfiNet connection.
///
/// The IP address of the ProfiNet device.
/// The slot number (default: 1).
/// The subslot number (default: 1).
/// A ProfiNet connection instance.
IProfiNetConnection CreateProfiNetConnection(string ipAddress, int slot = 1, int subslot = 1);
///
/// Creates a CC-Link IE connection.
///
/// The IP address of the CC-Link IE device.
/// The station number (default: 1).
/// A CC-Link IE connection instance.
ICcLinkIeConnection CreateCcLinkIeConnection(string ipAddress, int stationNumber = 1);
///
/// Creates an OPC UA connection.
///
/// The OPC UA server endpoint URL (e.g., "opc.tcp://localhost:4840").
/// An OPC UA connection instance.
IOpcUaConnection CreateOpcUaConnection(string endpointUrl);
}