/// <summary> /// 加载 DebugDevice /// </summary> public static void LoadDebugDevice(this IVatDevice vd, bool force = false) { IDebugDevice m_DebugDevice = vd.GetDebugDevice(); if (!force) { if (vd.ControllerTarget == null || vd.GetDebugDevice() != null) { return; } } m_DebugDevice = vd.Service.DebugService.GetDevice(vd.ControllerTarget); vd.SetDebugDevice(m_DebugDevice); //DeviceResultHandler m_ConnectionStateChangedCallback = // Reflector.GetInstanceFieldByName(vd, "m_ConnectionStateChangedCallback") // as DeviceResultHandler; //m_DebugDevice.ConnectionStateChanged += m_ConnectionStateChangedCallback; if (ConnectionState.Online != m_DebugDevice.ConnectionState) { return; } //Reflector.RunInstanceMethodByName(vd, "StartReadingStatusInformation"); //Reflector.RunInstanceMethodByName(vd, "StartMarkJob"); Reflector.RunInstanceMethodByName(vd, "FireClientNotificationConnectionStateChange", new DeviceResultArgs() { ConnectionState = ConnectionState.Online }); }
public static bool Is300Plc(this IDebugDevice debugDevice) { return(debugDevice.TisCapabilities.iPduSize == 240); }
public static bool IsOnline(this IDebugDevice debugDevice) { return(debugDevice.ConnectionState == ConnectionState.Online); }
public static bool IsInHalt(this IDebugDevice debugDevice) { return(debugDevice.GetCondition() == Condition.Halt); }
public static void SetDebugDevice(this IVatDevice vd, IDebugDevice DebugDevice) { Reflector.SetInstanceFieldByName(vd, "m_DebugDevice", DebugDevice, ReflectionWays.SystemReflection); }