/// <summary> /// 設置黃燈狀態 /// </summary> /// <param name="lightStatus">燈狀態值</param> /// <returns>是否設置成功</returns> public abstract bool SetYellowLightStatus(EnmLightStatus lightStatus);
/// <summary> /// 設置綠燈狀態 /// </summary> /// <param name="lightStatus">燈狀態值</param> /// <returns>是否設置成功</returns> public abstract bool SetGreenLightStatus(EnmLightStatus lightStatus);
/// <summary> /// 設置紅燈狀態 /// </summary> /// <param name="lightStatus">燈狀態值</param> /// <returns>是否設置成功</returns> public abstract bool SetRedLightStatus(EnmLightStatus lightStatus);
/// <summary> /// 獲取指示燈的狀態枚舉整型值 /// </summary> /// <param name="status">狀態值</param> /// <returns></returns> public abstract int GetLightStatusIntVal(EnmLightStatus status);
/// <summary> /// 設置指示燈狀態 /// </summary> /// <param name="lightType">指示燈類型</param> /// <param name="lightStatus">指示燈狀態</param> /// <returns></returns> private bool SetLightStatus(EnmZWorldLightType lightType, EnmLightStatus lightStatus) { Thread.Sleep(500); lock (m_objSyncRoot) { try { return this.m_ZWorldPLC.PLC_Set_Y((uint)GetLightStatusIntVal(lightStatus), (uint)lightType); } catch (Exception ex) { base.OnException(mc_strClassName, "SetLightStatus", ex); return false; } } }
public override bool SetYellowLightStatus(EnmLightStatus lightStatus) { if (!CheckPLCStatus()) { return false; } return SetLightStatus(EnmZWorldLightType.Yellow, lightStatus); }
public override bool SetGreenLightStatus(EnmLightStatus lightStatus) { if (!CheckPLCStatus()) { return false; } return SetLightStatus(EnmZWorldLightType.Green, lightStatus); }
public override int GetLightStatusIntVal(EnmLightStatus status) { switch (status) { case EnmLightStatus.OFF: return 0; case EnmLightStatus.ON: return 1; case EnmLightStatus.BlinkSlowly: return 10; case EnmLightStatus.BlinkQuickly: return 11; case EnmLightStatus.Error: return 255; default: return 255; } }