using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace RemoteUpdate
{
    public partial class frm_main : Form
    {
        //定义使用的局部变量
        public frm_uartUpdate        mfrm_uartUpdate;    //串口更新窗体
        public frm_remoteUpdate      mfrm_remoteUpdate;  //远程更新窗口
        public FrmUpdateInf          mfrmUpdateInf;      //更改终端配置窗体
        public FrmRAMOperation     mfrmFlahOperation;  //更改终端配置窗体

        //======================================================================
        //函数名称：frm_main
        //函数返回：frm_main窗体构造函数
        //参数说明：无
        //功能概要：完成frm_main窗体的初始化工作
        //======================================================================
        public frm_main()
        {
            InitializeComponent();
        }

        //======================================================================
        //函数名称：frm_main_Load
        //函数返回：无
        //参数说明：无
        //功能概要：主窗体加载函数
        //======================================================================
        private void frm_main_Load(object sender, EventArgs e)
        {

        }

        //======================================================================
        //函数名称：tmr_tick_Tick
        //函数返回：无
        //参数说明：无
        //功能概要：每1秒执行一次，更新显示当前系统时间
        //======================================================================
        private void tmr_tick_Tick(object sender, EventArgs e)
        {
            lbl_curtime.Text = "当前时间：" + System.DateTime.Now.ToString();
        }

        //======================================================================
        //函数名称：tsmi_uartupdate_Click
        //函数返回：无
        //参数说明：无
        //功能概要：打开串口更新页面
        //======================================================================
        private void tsmi_uartupdate_Click(object sender, EventArgs e)
        {
            //（1）串口更新页面是否已打开
            if (mfrm_uartUpdate == null || mfrm_uartUpdate.IsDisposed)
            {
                //新建frm_update窗体
                mfrm_uartUpdate = new frm_uartUpdate();
                //设置mfrm_update的父窗体为本窗体
                mfrm_uartUpdate.MdiParent = this;
            }
            //(2) 判断更改终端配置窗口是否已经打开
            if (mfrmUpdateInf != null)
            {

                if (mfrmUpdateInf.emuart._Uartport != null)
                    mfrmUpdateInf.emuart._Uartport.Dispose();
                mfrmUpdateInf.Close();
            }
            //(3) 判断Flash操作窗口是否已经打开
            if (mfrmFlahOperation != null)
            {

                if (mfrmFlahOperation.emuart._Uartport != null)
                    mfrmFlahOperation.emuart._Uartport.Dispose();
                mfrmFlahOperation.Close();
            }
            //（4）显示串口更新页面
            mfrm_uartUpdate.Hide();  //置顶显示
            mfrm_uartUpdate.Show();
            //（5）提示
            lbl_mainstatus.Text = "运行状态：打开串口更新页面";
        }

        //======================================================================
        //函数名称：tsmi_remoteupdate_Click
        //函数返回：无
        //参数说明：无
        //功能概要：打开串口更新（远程）页面
        //======================================================================
        private void tsmi_remoteupdate_Click(object sender, EventArgs e)
        {
            //（1）远程更新页面是否已打开
            if (mfrm_remoteUpdate == null || mfrm_remoteUpdate.IsDisposed)
            {
                //新建frm_remoteUpdate窗体
                mfrm_remoteUpdate = new frm_remoteUpdate();
                //设置frm_remoteUpdate的父窗体为本窗体
                mfrm_remoteUpdate.MdiParent = this;
            }
            //（2）显示串口更新页面
            mfrm_remoteUpdate.Hide();  //置顶显示
            mfrm_remoteUpdate.Show();
            //（3）提示
            lbl_mainstatus.Text = "运行状态：打开远程更新页面";
        }


        //======================================================================
        //函数名称：UpdateInfToolStripMenuItem_Click
        //函数返回：无
        //参数说明：无
        //功能概要：打开“更改终端配置”页面
        //======================================================================
        private void UpdateInfToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //（1）更新Flash页面是否已打开
            if (mfrmUpdateInf == null || mfrmUpdateInf.IsDisposed)
            {
                //新建frm_update窗体
                mfrmUpdateInf = new FrmUpdateInf();
                //设置mfrm_update的父窗体为本窗体
                mfrmUpdateInf.MdiParent = this;
            }
            //（2）判断串口更新窗口是否已经打开
            if (mfrm_uartUpdate != null)
            {
                if (mfrm_uartUpdate.emuart._Uartport != null)
                    mfrm_uartUpdate.emuart._Uartport.Dispose();
                mfrm_uartUpdate.Close();
            }
            //(3) 判断Flash操作窗口是否已经打开
            if (mfrmFlahOperation != null)
            {

                if (mfrmFlahOperation.emuart._Uartport != null)
                    mfrmFlahOperation.emuart._Uartport.Dispose();
                mfrmFlahOperation.Close();
            }
            //（4）显示更新Flash页面
            mfrmUpdateInf.Hide();  //先关闭
            mfrmUpdateInf.Show();  //显示
            //（5）提示
            lbl_mainstatus.Text = "运行状态：打开更改Flash页面";
        }

        //======================================================================
        //函数名称：FlashOperationToolStripMenuItem_Click
        //函数返回：无
        //参数说明：无
        //功能概要：打开Flash操作页面
        //======================================================================
        private void FlashOperationToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //（1）更新Flash页面是否已打开
            if (mfrmFlahOperation == null || mfrmFlahOperation.IsDisposed)
            {
                //新建frm_update窗体
                mfrmFlahOperation = new FrmRAMOperation();
                //设置mfrm_update的父窗体为本窗体
                mfrmFlahOperation.MdiParent = this;
            }
            //（2）判断串口更新窗口是否已经打开
            if (mfrm_uartUpdate != null)
            {
                if (mfrm_uartUpdate.emuart._Uartport != null)
                    mfrm_uartUpdate.emuart._Uartport.Dispose();
                mfrm_uartUpdate.Close();
            }
            //(3) 判断更改终端配置窗口是否已经打开
            if (mfrmUpdateInf != null)
            {
                if (mfrmUpdateInf.emuart._Uartport != null)
                    mfrmUpdateInf.emuart._Uartport.Dispose();
                mfrmUpdateInf.Close();
            }
            //（4）显示更新Flash页面
            mfrmFlahOperation.Hide();  //先关闭
            mfrmFlahOperation.Show();  //显示
            //（5）提示
            lbl_mainstatus.Text = "运行状态：打开更改Flash页面";

        }

        //======================================================================
        //函数名称：tsm_help_Click
        //函数返回：无
        //参数说明：无
        //功能概要：打开帮助页面
        //======================================================================
        private void tsm_help_Click(object sender, EventArgs e)
        {
            string ddataDir = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;//获取绝对地址
            if (File.Exists("help.CHM"))
                ddataDir += "help.CHM";
            else
                ddataDir += "../../04_Resource/help.CHM";
            if (File.Exists(ddataDir))
                System.Diagnostics.Process.Start(ddataDir);
            else
                MessageBox.Show("【找不帮助文件help.chm】"
                       , "金葫芦IoT友情提示：", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

    }
}
