Example #1
0
        public MainWindow()
        {
            //首先保存错误
            var domain = AppDomain.CurrentDomain;

            domain.UnhandledException += (sender, targs) =>
            {
                Console.WriteLine(config.ToString());
                Console.WriteLine(chart1.ToString());
                var ex = targs.ExceptionObject as Exception;
                if (ex != null)
                {
                    MessageBox.Show("message: " + ex.Message + " trace: " + ex.StackTrace);
                    //log("message: " + ex.Message + " trace: " + ex.StackTrace);
                }
            };
            InitializeComponent();
            if (File.Exists(configfilename))             //加载配置文件
            {
                config = Config.load(configfilename);
            }
            DataSrc.ini(rx_fun);
            if (config.socket.type != DSType.uart)
            {
                DataSrc.dsdict[config.socket.type]          = DataSrc.factory(config.socket.type, rx_fun);
                DataSrc.dsdict[config.socket.type].rx_event = rx_fun;                 //注册回调函数
            }
            // 获取COM口列表
            bt_refresh_uart_Click(null, null);
        }
Example #2
0
        void ini_by_config(string fname)         //从配置文件初始化程序,输入配置文件名
        {
            Config.config = Config.load(fname);
            //首先清除上一个配置
            bt_open_datasrc.Content = "关闭端口";
            btnConnCom_Click(bt_open_datasrc, null);             //关闭数据源
            DataSrc.dslist.Clear();
            if (rpl_win.rplobj != null)
            {
                rpl_win.rplobj.close();
            }
            rpl_win.rplobj = null;
            //开始配置
            Config.configPath         = fname;                                                //记录配置文件名
            Config.config.plugin_path = Tool.relPath_2_abs(fname, Config.config.plugin_path); //把插件目录的位置变为绝对路径
            //加载数据源
            if (Config.config.data_src != null)
            {
                foreach (var item in Config.config.data_src)                 //对于每一种配置的数据源
                {
                    var ds = DataSrc.factory(item, rx_fun);
                    DataSrc.dslist.Add(ds);
                }
            }
            Dictionary <string, object> td = new Dictionary <string, object>();

            td["type"]     = "replay";
            rpl_win.rplobj = DataSrc.factory(td, rx_fun) as DataSrc_replay;             //记录回放对象
            DataSrc.dslist.Add(rpl_win.rplobj);
            rpl_win.rplobj.open_cb = () => bt_replay_dlg_Click(null, null);
            td["type"]             = "file";
            var fo = DataSrc.factory(td, rx_fun) as DataSrc_file;             //文件输入对象

            DataSrc.dslist.Add(fo);

            Title = Config.config.title_str;
            // 获取COM口列表
            bt_refresh_uart_Click(null, null);
            if (Config.config.mv_w != 0)
            {
                Width = Config.config.mv_w;
            }
            if (Config.config.mv_h != 0)
            {
                Height = Config.config.mv_h;
            }
            //加入配置
            CCmd_Button.bt_margin_len = Config.config.bt_margin;
            CCmd_Button.ctrl_cols     = Config.config.ctrl_cols;
            CCmd_Button.cmds          = commc.cmds;
            CCmd_Button.dset          = commc.dset;
            CCmd_Button.send_cmd_str  = send_cmd_str;

            mc_ini();             //内部先清除上一个配置
        }