using System; using System.Drawing; using System.IO; using System.Reflection; using System.Windows.Forms; using Mesnac.Controls.Base; using System.Collections.Generic; namespace Mesnac.Controls.Feeding { /// /// 密炼机 /// [ToolboxBitmap( typeof( Mixer2 ) , "ICONS.mixer.bmp" )]//新添加的代码 public partial class Mixer2 : FeedingControl { #region 事件定义 /// /// 报警事件 /// public event EventHandler OnAlarm; #endregion #region 事件属性 private List _alarmActionList = new List(); public List AlarmActionList { get { return _alarmActionList; } set { _alarmActionList = value; } } #endregion #region 报警 private string _sdsAlarmValue; private string _sdsAlarmValue_; private string _jlmAlarmValue; private string _jlmAlarmValue_; private string _xlmAlarmValue; private string _xlmAlarmValue_; /// /// 上顶栓报警信息属性 /// public string SdsAlarmValue { get { return _sdsAlarmValue; } set { _sdsAlarmValue = value; } } /// /// 上顶栓报警信息 /// [Alarm] public string SdsAlarmValue_ { get { return _sdsAlarmValue_; } set { _sdsAlarmValue_ = value; } } /// /// 加料门报警信息属性 /// public string JlmAlarmValue { get { return _jlmAlarmValue; } set { _jlmAlarmValue = value; } } /// /// 加料门报警信息 /// [Alarm] public string JlmAlarmValue_ { get { return _jlmAlarmValue_; } set { _jlmAlarmValue_ = value; } } /// /// 卸料门报警信息属性 /// public string XlmAlarmValue { get { return _xlmAlarmValue; } set { _xlmAlarmValue = value; } } /// /// 卸料门报警信息 /// [Alarm] public string XlmAlarmValue_ { get { return _xlmAlarmValue_; } set { _xlmAlarmValue_ = value; } } #endregion #region 枚举 /// /// 上顶栓设备状态 /// public enum SdsDeviceStatuses { Off = 0, On = 1 } /// /// 上顶栓图画状态 /// public enum sdsStatuses { sdsUp = 0, sdsMid = 1, sdsDown = 2, sdsAlarm = 3 //sdsUp = 0, sdsMid = 1, sdsDown = 2 } public enum jlmStatuses { jlmClose = 0, jlmOpen = 1, jlmAlarm = 3 } public enum mixerStatuses { //mixerOn = 0, mixerOff = 1 mixerOff = 0, mixerOn = 1 } public enum xlmStatuses { //xlmAlarm = 0, xlmClose = 1, xlmNormal = 2, xlmOpen = 3 xlmClose = 0, xlmOpen = 1, xlmAlarm = 2 } #endregion #region 定义变量 Stream _sdsImageStream; Stream _jlmImageStream; Stream _mixerImageStream; Stream _xlmImageStream; sdsStatuses _sdsStatus; jlmStatuses _jlmStatus; mixerStatuses _mixerStatus; xlmStatuses _xlmStatus; string[] sdsImages, jlmImages, mixerImages, xlmImages; //bool bNewPic = false; bool bFirstCreatedsds = true; bool bFirstCreatedjlm = true; bool bFirstCreatedmixer = true; bool bFirstCreatedxlm = true; string _sdsStatusName; private string _sdsUpStatusName; private string _sdsMiddleStatusName; private string _sdsDownStatusName; private SdsDeviceStatuses _sdsUpStatus; private SdsDeviceStatuses _sdsMiddleStatus; private SdsDeviceStatuses _sdsDownStatus; string _jlmStatusName; string _mixerStatusName; string _xlmStatusName; #endregion #region 属性 /// /// 上顶栓高位动画属性 /// public string SdsUpStatusName { get { return this._sdsUpStatusName; } set { this._sdsUpStatusName = value; } } /// /// 上顶栓中位动画属性 /// public string SdsMiddleStatusName { get { return this._sdsMiddleStatusName; } set { this._sdsMiddleStatusName = value; } } /// /// 上顶栓低位动画属性 /// public string SdsDownStatusName { get { return this._sdsDownStatusName; } set { this._sdsDownStatusName = value; } } /// /// 上顶栓高位状态0,1 /// public SdsDeviceStatuses SdsUpStatus { get { return this._sdsUpStatus; } set { bool flag = false; if (this._sdsUpStatus != value) flag = true; if ((int)value > 1) { this._sdsUpStatus = SdsDeviceStatuses.On; } else if ((int)value < 0) { this._sdsUpStatus = SdsDeviceStatuses.Off; } else { this._sdsUpStatus = value; } if (flag) this.UpdateSdsStatus(); } } /// /// 上顶栓中位状态0,1 /// public SdsDeviceStatuses SdsMiddleStatus { get { return this._sdsMiddleStatus; } set { bool flag = false; if (this._sdsMiddleStatus != value) flag = true; if ((int)value > 1) { this._sdsMiddleStatus = SdsDeviceStatuses.On; } else if ((int)value < 0) { this._sdsMiddleStatus = SdsDeviceStatuses.Off; } else { this._sdsMiddleStatus = value; } if (flag) this.UpdateSdsStatus(); } } /// /// 上顶栓低位状态0,1 /// public SdsDeviceStatuses SdsDownStatus { get { return this._sdsDownStatus; } set { bool flag = false; if (this._sdsDownStatus != value) flag = true; if ((int)value > 1) { this._sdsDownStatus = SdsDeviceStatuses.On; } else if ((int)value < 0) { this._sdsDownStatus = SdsDeviceStatuses.Off; } else { this._sdsDownStatus = value; } if (flag) this.UpdateSdsStatus(); } } /// /// 更新上顶栓状态 /// private void UpdateSdsStatus() { if (this._sdsUpStatus == SdsDeviceStatuses.On) { this.sdsStatus = sdsStatuses.sdsUp; } else if (this._sdsDownStatus == SdsDeviceStatuses.On) { this.sdsStatus = sdsStatuses.sdsDown; } else { this.sdsStatus = sdsStatuses.sdsMid; } ReloadStream(1); this.Reload(1); } public string jlmStatusName { get { return _jlmStatusName; } set { _jlmStatusName = value; } } public string mixerStatusName { get { return _mixerStatusName; } set { _mixerStatusName = value; } } public string xlmStatusName { get { return _xlmStatusName; } set { _xlmStatusName = value; } } public sdsStatuses sdsStatus { get { return _sdsStatus; } set { if ( bFirstCreatedsds == true ) { bFirstCreatedsds = false; } bool flag = false; if (_sdsStatus != value) { flag = true; } if ( (int)value < 0 ) { _sdsStatus = (sdsStatuses)0; } else if ( (int)value > 3 ) { _sdsStatus = (sdsStatuses)3; } else { _sdsStatus = value; } if (flag) { ReloadStream(1); this.Reload(1); if (_sdsStatus == sdsStatuses.sdsAlarm) { this._sdsAlarmValue_ = this._sdsAlarmValue; //设置报警信息 } else { this._sdsAlarmValue_ = String.Empty; //清空报警信息 } //有事件订阅者,则触发报警事件 if (OnAlarm != null) { OnAlarm(this, System.EventArgs.Empty); } } } } public jlmStatuses jlmStatus { get { return _jlmStatus; } set { if ( bFirstCreatedjlm == true ) { bFirstCreatedjlm = false; } bool flag = false; if (_jlmStatus != value) { flag = true; } if ( (int)value < 0 ) { _jlmStatus = (jlmStatuses)0; } else if ( (int)value > 2 ) { _jlmStatus = (jlmStatuses)2; } else { _jlmStatus = value; } if (flag) { ReloadStream(2); this.Reload(2); if (_jlmStatus == jlmStatuses.jlmAlarm) { this._jlmAlarmValue_ = this._jlmAlarmValue; //设置报警信息 } else { this._jlmAlarmValue_ = String.Empty; //清空报警信息 } //有事件订阅者,则触发报警事件 if (OnAlarm != null) { OnAlarm(this, System.EventArgs.Empty); } } } } public mixerStatuses mixerStatus { get { return _mixerStatus; } set { if ( bFirstCreatedmixer == true ) { bFirstCreatedmixer = false; } bool flag = false; if (_mixerStatus != value) { flag = true; } if ( (int)value < 0 ) { _mixerStatus = (mixerStatuses)0; } else if ( (int)value > 1 ) { _mixerStatus = (mixerStatuses)1; } else { _mixerStatus = value; } if (flag) { ReloadStream(3); this.Reload(3); } } } public xlmStatuses xlmStatus { get { return _xlmStatus; } set { if ( bFirstCreatedxlm == true ) { bFirstCreatedxlm = false; } bool flag = false; if (_xlmStatus != value) { flag = true; } if ( (int)value < 0 ) { _xlmStatus = (xlmStatuses)0; } else if ( (int)value > 3 ) { _xlmStatus = (xlmStatuses)3; } else { _xlmStatus = value; } if (flag) { ReloadStream(4); this.Reload(4); if (_xlmStatus == xlmStatuses.xlmAlarm) { this._xlmAlarmValue_ = this._xlmAlarmValue; //设置报警信息 } else { this._xlmAlarmValue_ = String.Empty; //清空报警信息 } //有事件订阅者,则触发报警事件 if (OnAlarm != null) { OnAlarm(this, System.EventArgs.Empty); } } } } #endregion public Mixer2():base() { InitializeComponent(); Init(); ReloadStream(1); ReloadStream(2); ReloadStream(3); ReloadStream(4); this.Reload(1); this.Reload(2); this.Reload(3); this.Reload(4); } protected override void Init() { base.Init(); _sdsImageStream = null; _jlmImageStream = null; _mixerImageStream = null; _xlmImageStream = null; sdsImages = new string[ 4 ]; sdsImages[ 0 ] = "Mesnac.Controls.Feeding.Resources.mixer.sds0.png";//sdsUp sdsImages[ 1 ] = "Mesnac.Controls.Feeding.Resources.mixer.sds1.png";//sdsMid sdsImages[ 2 ] = "Mesnac.Controls.Feeding.Resources.mixer.sds2.png";//sdsDown sdsImages[ 3 ] = "Mesnac.Controls.Feeding.Resources.mixer.sds3.gif";//sdsAlarm jlmImages = new string[ 5 ]; jlmImages[ 0 ] = "Mesnac.Controls.Feeding.Resources.mixer.jlm0.png";//jlmClose jlmImages[ 1 ] = "Mesnac.Controls.Feeding.Resources.mixer.jlm3.png";//jlmOpen jlmImages[ 2 ] = "Mesnac.Controls.Feeding.Resources.mixer.jlm1.png";//jlmCloseAlarm jlmImages[ 3 ] = "Mesnac.Controls.Feeding.Resources.mixer.jlm2.gif";//jlmNormal jlmImages[ 4 ] = "Mesnac.Controls.Feeding.Resources.mixer.jlm4.png";//jlmOpenAlarm mixerImages = new string[ 2 ]; mixerImages[ 0 ] = "Mesnac.Controls.Feeding.Resources.mixer.mixer1.png";//mixerOff mixerImages[ 1 ] = "Mesnac.Controls.Feeding.Resources.mixer.mixer0.gif";//mixerOn xlmImages = new string[ 4 ]; xlmImages[ 0 ] = "Mesnac.Controls.Feeding.Resources.mixer.xlm1.png";//xlmClose xlmImages[ 1 ] = "Mesnac.Controls.Feeding.Resources.mixer.xlm3.png";//xlmOpen xlmImages[ 2 ] = "Mesnac.Controls.Feeding.Resources.mixer.xlm0.gif";//xlmAlarm xlmImages[ 3 ] = "Mesnac.Controls.Feeding.Resources.mixer.xlm2.gif";//xlmNormal _sdsStatus = sdsStatuses.sdsUp; _jlmStatus = jlmStatuses.jlmOpen; _mixerStatus = mixerStatuses.mixerOn; _xlmStatus = xlmStatuses.xlmClose; } /// /// 重新载入图片流 /// /// 1-上顶栓,2-加料门,3-密炼机,4-卸料门 private void ReloadStream(int part) { //closeAllStream(); int nIndex = 0; switch (part) { case 1: nIndex = (int)_sdsStatus; _sdsImageStream = _assembly.GetManifestResourceStream(sdsImages[nIndex]); break; case 2: nIndex = (int)_jlmStatus; _jlmImageStream = _assembly.GetManifestResourceStream(jlmImages[nIndex]); break; case 3: nIndex = (int)_mixerStatus; _mixerImageStream = _assembly.GetManifestResourceStream(mixerImages[nIndex]); break; case 4: nIndex = (int)_xlmStatus; _xlmImageStream = _assembly.GetManifestResourceStream(xlmImages[nIndex]); break; default: return; } } /// /// 刷新图片 /// /// 1-上顶栓,2-加料门,3-密炼机,4-卸料门 private void Reload(int part) { switch (part) { case 1: if (_sdsImageStream != null) { Image img = Image.FromStream(_sdsImageStream); //if ( bNewPic == true ) //{ //this.Size = img.Size; // bNewPic = false; //} pictureBox1.Image = img; pictureBox1.Refresh(); } break; case 2: if (_jlmImageStream != null) { Image img = Image.FromStream(_jlmImageStream); //if ( bNewPic == true ) //{ //this.Size = img.Size; // bNewPic = false; //} pictureBox2.Image = img; pictureBox2.Refresh(); } break; case 3: if (_mixerImageStream != null) { Image img = Image.FromStream(_mixerImageStream); //if ( bNewPic == true ) //{ //this.Size = img.Size; // bNewPic = false; //} pictureBox3.Image = img; pictureBox3.Refresh(); } break; case 4: if (_xlmImageStream != null) { Image img = Image.FromStream(_xlmImageStream); //if ( bNewPic == true ) //{ //this.Size = img.Size; // bNewPic = false; //} pictureBox4.Image = img; pictureBox4.Refresh(); } break; default: return; } } private void Mixer_Load(object sender, EventArgs e) { if ( this.DesignMode ) { if ( bFirstCreatedsds ) { //bNewPic = true; this.ReloadStream(1); this.ReloadStream(2); this.ReloadStream(3); this.ReloadStream(4); this.Reload(1); this.Reload(2); this.Reload(3); this.Reload(4); } bFirstCreatedsds = false; bFirstCreatedjlm = false; bFirstCreatedmixer = false; bFirstCreatedxlm = false; } } } }