Esempio n. 1
0
        /// <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
            });
        }
Esempio n. 2
0
 public static bool Is300Plc(this IDebugDevice debugDevice)
 {
     return(debugDevice.TisCapabilities.iPduSize == 240);
 }
Esempio n. 3
0
 public static bool IsOnline(this IDebugDevice debugDevice)
 {
     return(debugDevice.ConnectionState == ConnectionState.Online);
 }
Esempio n. 4
0
 public static bool IsInHalt(this IDebugDevice debugDevice)
 {
     return(debugDevice.GetCondition() == Condition.Halt);
 }
Esempio n. 5
0
 public static void SetDebugDevice(this IVatDevice vd, IDebugDevice DebugDevice)
 {
     Reflector.SetInstanceFieldByName(vd, "m_DebugDevice",
                                      DebugDevice,
                                      ReflectionWays.SystemReflection);
 }