FrmMenu.cs 12.6 KB
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MetroFramework.Forms;
using TSA_V.DeviceLibrary;
using TSA_V.Common;
using PUSICANLibrary;
using TSA_V.LoadCSVLibrary;
using System.IO;
using AccAOI;
using System.Speech.Synthesis;
using Asa;

namespace TSA_V
{
    public partial class FrmMenu : FrmBase
    { 
        public static FrmMenu frmMain = null;
      
        private bool isClick = false;
        public FrmMenu()
        {   //设置语言
            string str = ConfigAppSettings.GetValue(Setting_Init.Default_Language);
            LogUtil.info("默认语言:" + str);
            ResourceCulture.SetCurrentCulture(str);
            frmMain = this;
            CheckForIllegalCrossThreadCalls = false;
            InitializeComponent();
            this.MaximizeBox = false;
            this.MinimizeBox = false;
            this.btnCom.Visible = true;

            if (FormManager.UserInfo.Limit.Equals(UserLimit.Admin) || FormManager.UserInfo.Limit.Equals(UserLimit.Debug))
            {
                btnProduct.Visible  = true;
                btnCom.Visible = true;
            }
            else
            {
                btnProduct.Visible = false;
                btnCom.Visible = false ;
            }
            lblMsg.Text = "";
            //if (FormManager.UserInfo.Limit.Equals(UserLimit.Admin))
            //{
            //    btnMaintenance.Visible = true;
            //}
            //else
            //{
            //    btnMaintenance.Visible = false ;
            //}
        }
        public static void Speak(string text)
        {
            using (SpeechSynthesizer speech = new SpeechSynthesizer())
            {
                speech.Rate = int.Parse("0");//语速  介于-10于10之间
                speech.Speak(text);
            }
        }
        private void btnWork_Click(object sender, EventArgs e)
        {
        //    Speak("你点击了开始工作");

            GC.Collect();
            //if (TSAVBean.IsInRunTest())
            //{
            //    MessageBox.Show(ResourceCulture.GetString( "清先等待预热结束"));
            //    return;
            //}
            isClick = true;  

            FrmBoardSelect fw = new FrmBoardSelect();
            this.Visible = false; ;
            fw.ShowDialog();
            this.Visible = true;
        }

        private void btnProduct_Click(object sender, EventArgs e)
        {
            //FrmPwd fw = new FrmPwd(10);
            //DialogResult result = fw.ShowDialog();
            //if (!result.Equals(DialogResult.OK))
            //{
            //    LogUtil.info("点击  元器件信息,没有正确输入密码");
            //    return;
            //}

      
                this.Visible = false; ;
                isClick = true;
                FrmBoardList.instance.Show();
                FrmBoardList.instance.LoadCom();
          
        }

        private bool useLed = false;
        private System.Timers.Timer timer = new System.Timers.Timer();
        private void FrmMenu_Load(object sender, EventArgs e)
        {
            DB.userName = FormManager.UserInfo.Name;
            string time = GetVersion(true);
            System.Reflection.AssemblyName assemblyName = System.Reflection.Assembly.GetExecutingAssembly().GetName();
            lblVersion.Text = "V" + assemblyName.Version.ToString() + "(" + time + ")";
            LblUserName.Text = FormManager.UserInfo.Name + "/" + FormManager.UserInfo.Limit;
      
            Task.Factory.StartNew(delegate
            {
                LoadBackImage();
            });
      

            //加载板卡
            BoardManager.LoadBoard();
            CSVReaderBomManager.LoadAllCom();
            WorkCountManager.LoadData();
            //CalibrationManager.LoadData(); 
            string positionFileName = CSVPositionReader<TSAVPosition>.getPositionFilePath();
            //加载位置
            LoadCSVLibrary.CSVPositionReader<TSAVPosition>.LoadFile(positionFileName);
            //加载设备信息
            TSAVBean.LoadTSAV();
            //需要链接IO 
            timer.AutoReset = true;
            timer.Interval = 1000;
            timer.Elapsed += timer_Elapsed;
            if (ConfigAppSettings.GetBoolValue("CodeRun")) { }
            else
            {
                Task.Factory.StartNew(delegate
                {
                    IOManager.ConnectionIO();
                    TSAVBean.StartRun();
                    timer.Enabled = true;
                });
            }
            LWidthManager.Init();
            this.Text = ConfigAppSettings.GetValue(Setting_Init.App_Title);
             
            btnCloseLed.Visible = useLed;
            btnOpenLed.Visible = useLed;

            try
            {
                AccAOI.camera.CameraManager.LoadCamera(); 
                LogUtil.info("加载到相机:" + AccAOI.camera.CameraManager.cName); 
                this.Focus();
                SetMouseAtCenterScreen();
            }
            catch (Exception ex)
            {
                LogUtil.error("加载相机出错:" + ex.ToString());
            }  
        }

        public void LoadBackImage()
        {
            if (CurrLanguage.Equals(ResourceCulture.English))
            {

                this.panel1.BackgroundImage = ImageManager.frm_背景图;
              //  button1.BackgroundImage = ImageManager.Main_US_MOSCOT;
                btnExit.BackgroundImage = ImageManager.Main_US_退出;
                this.btnMaintenance.BackgroundImage = ImageManager.Main_US_设备配置;
                this.btnWork.BackgroundImage = ImageManager.Main_US_开始工作;
                this.btnProduct.BackgroundImage = ImageManager.Main_US_程序编辑;
                this.btnCom.BackgroundImage = ImageManager.Main_US_元器件;
                this.btnOpenLed.BackgroundImage = ImageManager.Menu_US_打开光源;
                this.btnCloseLed.BackgroundImage = ImageManager.Menu_US_关闭光源;
                this.btnHistory.BackgroundImage = ImageManager.Main_US_历史记录;
            }
            else
            {
                this.panel1.BackgroundImage = ImageManager.frm_背景图;
            //    button1.BackgroundImage = ImageManager.Main_MOSCOT;
                btnExit.BackgroundImage = ImageManager.Main_退出;
                this.btnMaintenance.BackgroundImage = ImageManager.Main_设备配置;
                this.btnWork.BackgroundImage = ImageManager.Main_开始工作;
                this.btnProduct.BackgroundImage = ImageManager.Main_程序编辑;
                this.btnCom.BackgroundImage = ImageManager.Main_元器件;
                this.btnOpenLed.BackgroundImage = ImageManager.Menu_打开光源;
                this.btnCloseLed.BackgroundImage = ImageManager.Menu_关闭光源;
                this.btnHistory.BackgroundImage = ImageManager.Main_历史记录;
            }
        }

        void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            IOManager.ConnectionIO();
            timer.Interval = 2000;
            if (IOManager.ISConnection())
            {
                LogUtil.info(" 连接到IO模块成功!");
                timer.Enabled = false;
                if (TSAVBean.Status <= TSAVStatus.Wait)
                {
                    LogUtil.error("进入程序界面,还未启动组装信息机,开始启动插件机");
                    TSAVBean.StartRun();
                }
                int auto = ConfigAppSettings.GetIntValue(Setting_Init.App_AutoRun);
                if (auto == 1 && this.Visible == true)
                {
                    LogUtil.info(" auto=1,开始自动启动插件机!");
                    btnWork_Click(null, null);
                }
            }
            else
            {
                LogUtil.info("未连接到IO模块,等待2000后重连!");
            }
        }

        private void FrmMenu_FormClosing(object sender, FormClosingEventArgs e)
        {

            AOIResourceCulture.LogDefaultMap();
            ResourceCulture.LogDefaultMap();
            isClick = true;
            if (TSAVBean.Status > TSAVStatus.Wait)
            {
                TSAVBean.StopRun();
            }
            if (IOBase.instance != null)
            {
                IOBase.instance.CloseAllDO();
            }
            if (IOManager.ISConnection())
            {
                IOBase.instance.CloseAllConnection();
            }
            if (TSAVBean.IsNeedAOI)
            {
                CameraHDevelop.CloseAllCamera();
            }
            //MetcalManager.ColseAllPort();
            AccAOI.camera.CameraManager.CloseCamera();
          //  PUSICANControl.Close();
        }

   
        private void FrmMenu_SizeChanged(object sender, EventArgs e)
        {
            return;
        }

        private void btnCom_Click(object sender, EventArgs e)
        {
            //FrmPwd fw = new FrmPwd(10);
            //DialogResult result = fw.ShowDialog();
            //if (!result.Equals(DialogResult.OK))
            //{
            //    LogUtil.info("点击  元器件信息,没有正确输入密码");
            //    return;
            //}
            isClick = true;
            FrmComponentList.instance.Show();
            this.Visible = false;
        }
         

        private void btnChangeSkin_Click(object sender, EventArgs e)
        {
            FormManager.NextSkin();
            //SetSkin(this);
        }

        private void FrmMenu_Shown(object sender, EventArgs e)
        {
            //SetSkin(this);
            this.BackColor = Color.White; 
            TSAVBean.ShowPointEvent += TSAVBean_ShowPointEvent;
            //showProjectorTimer.Start();
            timer1.Start();
        }

        private bool TSAVBean_ShowPointEvent(ProjectorPInfo p )
        {
            FrmProjectorScreen.instance.ClearPoint();
            FrmProjectorScreen.instance.ShowPoint(p);
            return true;
        }

        private void btnDefaultSkin_Click(object sender, EventArgs e)
        {
            FormManager.DefaultSkin();
            //SetSkin(this);
        }

        private void btnMaintenance_Click(object sender, EventArgs e)
        { 
            isClick = true;
            FrmMaintenance.instance.Show();
            this.Visible = false; 
        }

        private void btnExit_Click(object sender, EventArgs e)
        {
            FrmProjectorScreen.instance.Close();
            this.Close();
        }
         

        private void btnOpenLed_Click(object sender, EventArgs e)
        {
            if (!useLed)
            {
                return;
            }
            //IOManager.IOMove(IOManager.Camera_Led, IO_VALUE.HIGH);
            btnCloseLed.Visible = true;
            btnOpenLed.Visible = false;
        }

        private void btnCloseLed_Click(object sender, EventArgs e)
        {
            if (!useLed)
            {
                return;
            }
            //   IOManager.IOMove(IOManager.Camera_Led, IO_VALUE.LOW);
            btnCloseLed.Visible = false ;
            btnOpenLed.Visible = true ;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            try
            {
                lblMsg.Text = TSAVBean.GetShowMsg();
                Screen[] sc = Screen.AllScreens;
                if ((!FrmProjectorScreen.instance.ISShow) && sc.Length > FrmProjectorScreen.instance.ScreenIndex)
                {
                    bool result = FrmProjectorScreen.instance.ShowForm();
                }
                else if (sc.Length <= FrmProjectorScreen.instance.ScreenIndex && FrmProjectorScreen.instance.ISShow)
                { 
                    FrmProjectorScreen.instance.Close();
                    FrmProjectorScreen.instance = new FrmProjectorScreen();
                    LogUtil.info("检测到只有一个显示器,关闭投影界面");
                }
            }catch(Exception ex)
            {
                LogUtil.error("投影界面检测处理出错:" + ex.ToString());
            }
        }
        private void openForms()
        { 

            FrmScreenTest form2 = new FrmScreenTest();
            form2.ScreenIndex = 1;
            form2.Show(); 
        }

        private void btnScreenTest_Click(object sender, EventArgs e)
        {
            openForms();
        }

        private void BtnHistory_Click(object sender, EventArgs e)
        {
            FrmHistorySearch frm = new FrmHistorySearch();
            frm.ShowDialog();
            //FrmHistory frm = new FrmHistory();
            //frm.ShowDialog();
        }
    }
}