Example #1
0
        /// <summary>写入SQL到文本中</summary>
        /// <param name="sql"></param>
        public void WriteSQL(String sql)
        {
#if !__CORE__
            // 如果页面设定有XCode_SQLList列表,则往列表写入SQL语句
            var context = HttpContext.Current;
            if (context != null)
            {
                if (context.Items["XCode_SQLList"] is List <String> list)
                {
                    list.Add(sql);
                }
            }
#endif

            if (!ShowSQL)
            {
                return;
            }

            var sqlpath = Setting.Current.SQLPath;
            if (String.IsNullOrEmpty(sqlpath))
            {
                WriteLog(sql);
            }
            else
            {
                if (logger == null)
                {
                    logger = TextFileLog.Create(sqlpath);
                }
                logger.Info(sql);
            }
        }
Example #2
0
        private void FrmMain_Load(Object sender, EventArgs e)
        {
            var log = TextFileLog.Create(null, "Net_{0:yyyy_MM_dd}.log");

            BizLog = txtReceive.Combine(log);
            txtReceive.UseWinFormControl();

            //txtReceive.SetDefaultStyle(12);
            //txtSend.SetDefaultStyle(12);
            //numMutilSend.SetDefaultStyle(12);

            //gbReceive.Tag = gbReceive.Text;
            //gbSend.Tag = gbSend.Text;

            _task.ContinueWith(t =>
            {
                var dic  = EnumHelper.GetDescriptions <WorkModes>();
                var list = dic.Select(kv => kv.Value).ToList();
                //var ds = dic.ToDictionary(s => s.Value, s => s.Value);
                foreach (var item in t.Result)
                {
                    list.Add(item.Key);
                }
                //this.Invoke(() =>
                //{

                cbMode.AppendValues(list);


                var cfg = NetConfig.Current;
                if (cfg.Mode > 0 && dic.ContainsKey((WorkModes)cfg.Mode))
                {
                    cbMode.Active = list.FindIndex(f => f == dic[(WorkModes)cfg.Mode]);
                }
                else
                {
                    cbMode.Active = 0;
                }
                //});
            });

            //// 加载保存的颜色
            //UIConfig.Apply(txtReceive);

            LoadConfig();

            //// 语音识别
            //ThreadPoolX.QueueUserWorkItem(() =>
            //{
            //    var sp = SpeechRecognition.Current;
            //    if (!sp.Enable) return;

            //    sp.Register("打开", () => this.Invoke(Connect))
            //    .Register("关闭", () => this.Invoke(Disconnect))
            //    .Register("退出", () => Application.Exit())
            //    .Register("发送", () => this.Invoke(() => btnSend_Click(null, null)));

            //    BizLog.Info("语音识别前缀:{0} 可用命令:{1}", sp.Name, sp.GetAllKeys().Join());
            //});
        }
Example #3
0
        private void FrmMain_Load(Object sender, EventArgs e)
        {
            var log = TextFileLog.Create(null, "Map_{0:yyyy_MM_dd}.log");

            BizLog = txtReceive.Combine(log);
            txtReceive.UseWinFormControl();

            txtReceive.SetDefaultStyle(12);

            // 加载保存的颜色
            UIConfig.Apply(txtReceive);

            LoadConfig();

            var cfg = Setting;

            var cb = cbMap;

            cb.Items.Clear();
            cb.DisplayMember = "Name";
            foreach (var item in typeof(IMap).GetAllSubclasses(true))
            {
                //var name = item.GetDisplayName() ?? item.Name;
                //Maps[name] = item;
                //cb.Items.Add(name);
                cb.Items.Add(item);

                if (cfg.Map == item.Name)
                {
                    cb.SelectedItem = item;
                }
            }
            //if (cb.Items.Count > 0) cb.SelectedText = cfg.Map;
        }
Example #4
0
        /// <summary>写入SQL到文本中</summary>
        /// <param name="sql"></param>
        public void WriteSQL(String sql)
        {
            if (sql.IsNullOrEmpty())
            {
                return;
            }

            // 如果页面设定有XCode_SQLList列表,则往列表写入SQL语句
            DAL.LocalFilter?.Invoke(sql);

            if (!ShowSQL)
            {
                return;
            }

            var sqlpath = Setting.Current.SQLPath;

            if (String.IsNullOrEmpty(sqlpath))
            {
                WriteLog(sql);
            }
            else
            {
                if (logger == null)
                {
                    logger = TextFileLog.Create(sqlpath);
                }
                logger.Info(sql);
            }
        }
Example #5
0
        List <Bar> GetBars(List <Melanchall.DryWetMidi.Smf.Interaction.Note> notes, TempoMap tempoMap)
        {
            TextFileLog log  = new TextFileLog();
            List <Bar>  bars = new List <Bar>();

            long summedLenghtOfNotes = 0;
            int  i   = 0;
            Bar  bar = new Bar();

            while (i < notes.Count)
            {
                var musicalTime = notes[i].LengthAs <MusicalTimeSpan>(tempoMap);
                summedLenghtOfNotes += RoundUpNoteLength(musicalTime.Numerator, musicalTime.Denominator);
                bar.notes.Add(notes[i]);
                if (summedLenghtOfNotes >= musicalTime.Denominator)
                {
                    bars.Add(bar);
                    bar = new Bar();
                    summedLenghtOfNotes = 0;
                }


                i++;
            }

            return(bars);
        }
Example #6
0
        public virtual XTuple <Log, LogEditor> CreateTextFileLog(
            string filePath)
        {
            var log = new TextFileLog(filePath);

            return(XTuple.Create <Log, LogEditor>(log, log));
        }
Example #7
0
        void Connect()
        {
            spList.Connect();
            var st = spList.Port;

            //st.FrameSize = 8;
            if (st == null)
            {
                return;
            }

            // 需要考虑UI线程
            st.Disconnected += (s, e) => this.Invoke(Disconnect);

            // 发现USB2401端口,自动发送设置命令
            if (st.Description.Contains("USB2401") || st.Description.Contains("USBSER"))
            {
                var cmd = "AT+SET=00070000000000";
                st.Send(cmd.GetBytes());
                //XTrace.WriteLine(cmd);
                TextControlLog.WriteLog(txtReceive, cmd);
            }

            "连接串口{0}".F(st.PortName).SpeechTip();

            btnConnect.Text = "关闭";

            BizLog = TextFileLog.Create("SerialLog");

            var cfg = XConfig.Current;

            cfg.ColorLog = cbColor.Checked;
            cfg.Save();
        }
Example #8
0
        private void FrmMain_Load(Object sender, EventArgs e)
        {
            var log = TextFileLog.Create(null, "Serial_{0:yyyy_MM_dd}.log");

            BizLog = txtReceive.Combine(log);
            txtReceive.UseWinFormControl();

            txtReceive.SetDefaultStyle(12);
            txtSend.SetDefaultStyle(12);
            numMutilSend.SetDefaultStyle(12);

            gbReceive.Tag = gbReceive.Text;
            gbSend.Tag    = gbSend.Text;

            var menu = spList.Menu;

            txtReceive.ContextMenuStrip = menu;

            // 添加清空
            menu.Items.Insert(0, new ToolStripSeparator());
            var ti = new ToolStripMenuItem("清空");

            menu.Items.Insert(0, ti);
            ti.Click += mi清空_Click;

            // 加载保存的颜色
            UIConfig.Apply(txtReceive);

            ti      = new ToolStripMenuItem("日志着色");
            ti.Name = "日志着色";
            menu.Items.Insert(2, ti);
            ti.Click  += miCheck_Click;
            ti.Checked = XConfig.Current.ColorLog;
        }
Example #9
0
        /// <summary>参数启动</summary>
        static void StartWithParameter(String[] args)
        {
            var dic = new Dictionary <String, String>(StringComparer.OrdinalIgnoreCase);

            for (var i = 2; i < args.Length - 1; i++)
            {
                switch (args[i].ToLower())
                {
                case "-config":
                case "-model":
                case "-connstr":
                case "-provider":
                case "-log":
                    dic.Add(args[i].Substring(1), args[++i].Trim('\"'));
                    break;

                default:
                    break;
                }
            }

            // 转移日志
            var logfile = "";

            if (dic.TryGetValue("Log", out logfile) && !logfile.IsNullOrWhiteSpace())
            {
#if DEBUG
                XTrace.WriteLine("准备切换日志到 {0}", logfile);
#endif

                try
                {
                    var log = TextFileLog.CreateFile(logfile);
                    log.Info("XCoder.exe {0}", String.Join(" ", args));
                    XTrace.Log = log;
                }
                catch (Exception ex) { XTrace.WriteException(ex); }
            }

            switch (args[1].ToLower())
            {
            case "-render":
                Render(dic["Model"], dic["Config"]);
                return;

            case "-makemodel":
                MakeModel(dic["Model"], dic["ConnStr"], dic["Provider"]);
                return;

            case "-update":
                Update(false);
                return;

            default:
                break;
            }
        }
Example #10
0
        private void FrmMain_Load(Object sender, EventArgs e)
        {
            var log = TextFileLog.Create(null, "Message_{0:yyyy_MM_dd}.log");

            BizLog = txtReceive.Combine(log);
            txtReceive.UseWinFormControl();

            txtReceive.SetDefaultStyle(12);
            txtSend.SetDefaultStyle(12);
            numMutilSend.SetDefaultStyle(12);

            gbReceive.Tag = gbReceive.Text;
            gbSend.Tag    = gbSend.Text;

            var cfg = MessageConfig.Current;

            cbMode.SelectedItem = cbMode.Items[0] + "";
            if (!cfg.Address.IsNullOrEmpty())
            {
                //cbAddr.DropDownStyle = ComboBoxStyle.DropDownList;
                cbAddr.DataSource = cfg.Address.Split(";");
            }

            // 加载封包协议
            foreach (var item in _packets.Result)
            {
                cbPacket.Items.Add(item.GetDisplayName() ?? item.Name);
            }
            cbPacket.SelectedIndex = 0;

            // 加载保存的颜色
            UIConfig.Apply(txtReceive);

            LoadConfig();

            // 语音识别
            Task.Factory.StartNew(() =>
            {
                var sp = SpeechRecognition.Current;
                if (!sp.Enable)
                {
                    return;
                }

                sp.Register("打开", () => this.Invoke(Connect))
                .Register("关闭", () => this.Invoke(Disconnect))
                .Register("退出", () => Application.Exit())
                .Register("发送", () => this.Invoke(() => btnSend_Click(null, null)));

                BizLog.Info("语音识别前缀:{0} 可用命令:{1}", sp.Name, sp.GetAllKeys().Join());
            });
        }
Example #11
0
        void Connect()
        {
            _Client = null;

            var uri  = new NetUri(cbAddr.Text);
            var cfg  = Setting.Current;
            var mode = cbMode.Text;

            var ac = new LinkClient(uri.ToString())
            {
                Log        = cfg.ShowLog ? XTrace.Log : Logger.Null,
                EncoderLog = cfg.ShowEncoderLog ? XTrace.Log : Logger.Null
            };

            //ac.Received += OnReceived;
            ac.UserName     = cfg.UserName;
            ac.Password     = cfg.Password;
            ac.ActionPrefix = mode;

            //ac.Encrypted = cfg.Encrypted;
            //ac.Compressed = cfg.Compressed;

            if (!ac.Open())
            {
                return;
            }

            ac.CreateCallback = sc =>
            {
                sc.Log        = cfg.ShowLog ? XTrace.Log : Logger.Null;
                sc.LogSend    = cfg.ShowSend;
                sc.LogReceive = cfg.ShowReceive;
            };

            "已连接服务器".SpeechTip();

            _Client = ac;

            pnlSetting.Enabled = false;
            pnlAction.Enabled  = true;
            btnConnect.Text    = "关闭";

            // 添加地址
            cfg.AddAddresss(uri.ToString());

            cfg.Save();

            BizLog = TextFileLog.Create("DeviceLog");
        }
Example #12
0
        private void FrmMain_Load(Object sender, EventArgs e)
        {
            var log = TextFileLog.Create(null, "Api_{0:yyyy_MM_dd}.log");

            BizLog = txtReceive.Combine(log);
            txtReceive.UseWinFormControl();

            txtReceive.SetDefaultStyle(12);
            txtSend.SetDefaultStyle(12);
            numMutilSend.SetDefaultStyle(12);

            gbReceive.Tag = gbReceive.Text;
            gbSend.Tag    = gbSend.Text;

            var cfg = ApiConfig.Current;

            //cbMode.SelectedItem = cbMode.Items[0] + "";
            cbMode.SelectedItem = cfg.Mode;
            var flag = (cfg.Mode == "服务端");

            numPort.Enabled = flag;
            cbAddr.Enabled  = !flag;

            // 加载保存的颜色
            UIConfig.Apply(txtReceive);

            LoadConfig();

            // 语音识别
            ThreadPoolX.QueueUserWorkItem(() =>
            {
                var sp = SpeechRecognition.Current;
                if (!sp.Enable)
                {
                    return;
                }

                sp.Register("打开", () => this.Invoke(Connect))
                .Register("关闭", () => this.Invoke(Disconnect))
                .Register("退出", () => Application.Exit())
                .Register("发送", () => this.Invoke(() => btnSend_Click(null, null)));

                BizLog.Info("语音识别前缀:{0} 可用命令:{1}", sp.Name, sp.GetAllKeys().Join());
            });
        }
Example #13
0
        private void Form1_Load(Object sender, EventArgs e)
        {
            var log = TextFileLog.Create(null, "Folder_{0:yyyy_MM_dd}.log");

            BizLog = txtLog.Combine(log);
            txtLog.UseWinFormControl();

            foreach (var item in DriveInfo.GetDrives())
            {
                if (item.DriveType == DriveType.Fixed)
                {
                    var str = String.Format("{0,-10} ({1})", item.Name, FormatSize(item.TotalSize));
                    var tn  = treeView1.Nodes.Add(str);
                    tn.Tag = item.RootDirectory.ToString();
                    tn.Nodes.Add("no");
                }
            }
        }
Example #14
0
        void Connect()
        {
            spList.Connect();
            var st = spList.Port;

            //st.FrameSize = 8;

            // 需要考虑UI线程
            st.Disconnected += (s, e) => this.Invoke(Disconnect);

            // 发现USB2401端口,自动发送设置命令
            if (st.Description.Contains("USB2401") || st.Description.Contains("USBSER"))
            {
                var cmd = "AT+SET=00070000000000";
                st.Send(cmd.GetBytes());
                //XTrace.WriteLine(cmd);
                TextControlLog.WriteLog(txtReceive, cmd);
            }

            btnConnect.Text = "关闭";

            BizLog = TextFileLog.Create("SerialLog");
        }
Example #15
0
        private void SetVerticalIntervals(VoiceLine firstVoice, VoiceLine secondVoice, int voiceNumber)
        {
            long currentPositionInBar1 = 0;
            long currentPositionInBar2 = 0;

            firstVoice.VerticalIntervals.Add(new List <int>());

            TextFileLog log = new TextFileLog();


            for (int i = 0; i < firstVoice.Bars.Count; i++)
            {
                if (i < secondVoice.Bars.Count)
                {
                    int j = 0; // iterates over fist voices notes
                    int k = 0; // itarates over second voices notes

                    //variables keeping record of last value of j and k
                    int lastJ = -1;
                    int lastK = -1;


                    while (j < firstVoice[i].notes.Count && k < secondVoice[i].notes.Count)
                    {
                        firstVoice.VerticalIntervals[voiceNumber]
                        .Add(CounterpointAnalysis.GetIntervalInSemitones(firstVoice[i][j], secondVoice[i][k]));



                        if (lastJ != j)
                        {
                            var a = firstVoice[i][j].LengthAs <MusicalTimeSpan>(tempoMap);
                            currentPositionInBar1 += a.Numerator % 2 == 0 ? a.Numerator : a.Numerator + 1;
                        }
                        if (lastK != k)
                        {
                            var b = secondVoice[i][k].LengthAs <MusicalTimeSpan>(tempoMap);
                            currentPositionInBar2 += b.Numerator % 2 == 0 ? b.Numerator : b.Numerator + 1;
                        }

                        lastJ = j;
                        lastK = k;

                        if (currentPositionInBar1 < currentPositionInBar2)
                        {
                            j++;
                        }
                        else if (currentPositionInBar1 > currentPositionInBar2)

                        {
                            k++;
                        }
                        else
                        {
                            k++;
                            j++;
                        }
                    }
                }
            }
        }
Example #16
0
        void Connect()
        {
            _Server = null;
            _Client = null;

            var uri = new NetUri(cbAddr.Text);

            var cfg = ApiConfig.Current;

            switch (cbMode.Text)
            {
            case "服务端":
                var svr = new ApiServer(uri);
                svr.Log        = cfg.ShowLog ? XTrace.Log : Logger.Null;
                svr.EncoderLog = cfg.ShowEncoderLog ? XTrace.Log : Logger.Null;

                svr.Start();

                "正在监听{0}".F(uri.Port).SpeechTip();

                _Server = svr;
                break;

            case "客户端":
                var client = new ApiClient(uri + "");
                client.Log        = cfg.ShowLog ? XTrace.Log : Logger.Null;
                client.EncoderLog = cfg.ShowEncoderLog ? XTrace.Log : Logger.Null;

                // 连接成功后拉取Api列表
                client.Opened += (s, e) => GetApiAll();

                _Client = client;
                client.Open();

                "已连接服务器".SpeechTip();

                break;

            default:
                return;
            }

            pnlSetting.Enabled = false;
            btnConnect.Text    = "关闭";

            // 添加地址
            var addr = uri.ToString();
            var list = cfg.Address.Split(";").ToList();

            if (!list.Contains(addr))
            {
                list.Insert(0, addr);
                cfg.Address = list.Join(";");
            }

            cfg.Save();

            _timer = new TimerX(ShowStat, null, 5000, 5000);

            BizLog = TextFileLog.Create("ApiLog");
        }
Example #17
0
        /// <summary>写入SQL到文本中</summary>
        /// <param name="sql"></param>
        /// <param name="ps"></param>
        public void WriteSQL(String sql, params DbParameter[] ps)
        {
            if (!ShowSQL)
            {
                return;
            }

            if (ps != null && ps.Length > 0)
            {
                var sb = new StringBuilder(64);
                sb.Append(sql);
                sb.Append("[");
                for (int i = 0; i < ps.Length; i++)
                {
                    if (i > 0)
                    {
                        sb.Append(", ");
                    }
                    var v  = ps[i].Value;
                    var sv = "";
                    if (v is Byte[])
                    {
                        var bv = v as Byte[];
                        if (bv.Length > 8)
                        {
                            sv = String.Format("[{0}]0x{1}...", bv.Length, BitConverter.ToString(bv, 0, 8));
                        }
                        else
                        {
                            sv = String.Format("[{0}]0x{1}", bv.Length, BitConverter.ToString(bv));
                        }
                    }
                    else if (v is String)
                    {
                        sv = v as String;
                        if (sv.Length > 32)
                        {
                            sv = String.Format("[{0}]{1}...", sv.Length, sv.Substring(0, 8));
                        }
                    }
                    else
                    {
                        sv = "" + v;
                    }
                    sb.AppendFormat("{1}:{0}={2}", ps[i].ParameterName, ps[i].DbType, sv);
                }
                sb.Append("]");
                sql = sb.ToString();
            }

            // 如果页面设定有XCode_SQLList列表,则往列表写入SQL语句
            var context = HttpContext.Current;

            if (context != null)
            {
                var list = context.Items["XCode_SQLList"] as List <String>;
                if (list != null)
                {
                    list.Add(sql);
                }
            }

            if (String.IsNullOrEmpty(DAL.SQLPath))
            {
                WriteLog(sql);
            }
            else
            {
                if (logger == null)
                {
                    logger = TextFileLog.Create(DAL.SQLPath);
                }
                logger.Info(sql);
            }
        }
Example #18
0
        void Connect()
        {
            _Server = null;
            _Client = null;

            var uri = new NetUri(cbAddr.Text);
            // 网络封包
            var idx  = cbPacket.SelectedIndex;
            var fact = idx < 0 ? null : _packets.Result[idx].CreateInstance() as IPacketFactory;

            _Packet = fact.Create();

            var cfg = MessageConfig.Current;

            switch (cbMode.Text)
            {
            case "服务端":
                var svr = new NetServer();
                svr.Log       = cfg.ShowLog ? XTrace.Log : Logger.Null;
                svr.SocketLog = cfg.ShowSocketLog ? XTrace.Log : Logger.Null;
                svr.Port      = uri.Port;
                if (uri.IsTcp || uri.IsUdp)
                {
                    svr.ProtocolType = uri.Type;
                }
                svr.MessageReceived += OnReceived;

                svr.LogSend    = cfg.ShowSend;
                svr.LogReceive = cfg.ShowReceive;

                // 加大会话超时时间到1天
                svr.SessionTimeout = 24 * 3600;

                svr.SessionPacket = fact;

                svr.Start();

                "正在监听{0}".F(svr.Port).SpeechTip();

                if (uri.Port == 0)
                {
                    uri.Port = svr.Port;
                }
                _Server = svr;
                break;

            case "客户端":
                var client = uri.CreateRemote();
                client.Log              = cfg.ShowLog ? XTrace.Log : Logger.Null;
                client.MessageReceived += OnReceived;

                client.LogSend    = cfg.ShowSend;
                client.LogReceive = cfg.ShowReceive;

                client.Packet = _Packet;

                client.Open();

                "已连接服务器".SpeechTip();

                if (uri.Port == 0)
                {
                    uri.Port = client.Port;
                }
                _Client = client;
                break;

            default:
                return;
            }

            pnlSetting.Enabled = false;
            btnConnect.Text    = "关闭";

            // 添加地址
            var addr = uri.ToString();
            var list = cfg.Address.Split(";").ToList();

            if (!list.Contains(addr))
            {
                list.Insert(0, addr);
                cfg.Address = list.Join(";");
            }

            cfg.Save();

            _timer = new TimerX(ShowStat, null, 5000, 5000);

            BizLog = TextFileLog.Create("MessageLog");
        }
Example #19
0
        void Connect()
        {
            _Server = null;
            _Client = null;

            var port = (Int32)numPort.Value;

            var cfg = NetConfig.Current;

            cfg.Port = port;

            var mode = GetMode();

            switch (mode)
            {
            case WorkModes.UDP_TCP:
                _Server = new NetServer();
                break;

            case WorkModes.UDP_Server:
                _Server = new NetServer();
                _Server.ProtocolType = NetType.Udp;
                break;

            case WorkModes.TCP_Server:
                _Server = new NetServer();
                _Server.ProtocolType = NetType.Tcp;
                break;

            case WorkModes.TCP_Client:
                var tcp = new TcpSession();
                _Client = tcp;

                cfg.Address = cbAddr.Text;
                break;

            case WorkModes.UDP_Client:
                var udp = new UdpServer();
                _Client = udp;

                cfg.Address = cbAddr.Text;
                break;

            default:
                if ((Int32)mode > 0)
                {
                    var ns = GetNetServers().Where(n => n.Name == cbMode.Text).FirstOrDefault();
                    if (ns == null)
                    {
                        throw new XException("未识别服务[{0}]", mode);
                    }

                    _Server = ns.GetType().CreateInstance() as NetServer;
                }
                break;
            }

            if (_Client != null)
            {
                _Client.Log         = cfg.ShowLog ? XTrace.Log : Logger.Null;
                _Client.Received   += OnReceived;
                _Client.Remote.Port = port;
                _Client.Remote.Host = cbAddr.Text;

                _Client.LogSend    = cfg.ShowSend;
                _Client.LogReceive = cfg.ShowReceive;

                _Client.Open();

                "已连接服务器".SpeechTip();
            }
            else if (_Server != null)
            {
                if (_Server == null)
                {
                    _Server = new NetServer();
                }
                _Server.Log       = cfg.ShowLog ? XTrace.Log : Logger.Null;
                _Server.SocketLog = cfg.ShowSocketLog ? XTrace.Log : Logger.Null;
                _Server.Port      = port;
                if (!cbAddr.Text.Contains("所有本地"))
                {
                    _Server.Local.Host = cbAddr.Text;
                }
                _Server.Received += OnReceived;

                _Server.LogSend    = cfg.ShowSend;
                _Server.LogReceive = cfg.ShowReceive;

                _Server.Start();

                "正在监听{0}".F(port).SpeechTip();
            }

            pnlSetting.Enabled = false;
            btnConnect.Text    = "关闭";

            cfg.Save();

            _timer = new TimerX(ShowStat, null, 5000, 5000);

            BizLog = TextFileLog.Create("NetLog");
        }
Example #20
0
        private void FrmMain_Load(Object sender, EventArgs e)
        {
            var log = TextFileLog.Create(null, "Net_{0:yyyy_MM_dd}.log");

            BizLog = txtReceive.Combine(log);
            txtReceive.UseWinFormControl();

            txtReceive.SetDefaultStyle(12);
            txtSend.SetDefaultStyle(12);
            numMutilSend.SetDefaultStyle(12);

            gbReceive.Tag = gbReceive.Text;
            gbSend.Tag    = gbSend.Text;

            _task.ContinueWith(t =>
            {
                var dic  = EnumHelper.GetDescriptions <WorkModes>();
                var list = dic.Select(kv => kv.Value).ToList();
                //var ds = dic.ToDictionary(s => s.Value, s => s.Value);
                foreach (var item in t.Result)
                {
                    list.Add(item.Key);
                }
                this.Invoke(() =>
                {
                    cbMode.DataSource = list;

                    var cfg = NetConfig.Current;
                    if (cfg.Mode > 0 && dic.ContainsKey((WorkModes)cfg.Mode))
                    {
                        cbMode.SelectedItem = dic[(WorkModes)cfg.Mode];
                    }
                    else
                    {
                        cbMode.SelectedIndex = 0;
                    }
                });
            });

            // 加载保存的颜色
            UIConfig.Apply(txtReceive);

            LoadConfig();

            // 语音识别
            Task.Factory.StartNew(() =>
            {
                var sp = SpeechRecognition.Current;
                if (!sp.Enable)
                {
                    return;
                }

                sp.Register("打开", () => this.Invoke(Connect))
                .Register("关闭", () => this.Invoke(Disconnect))
                .Register("退出", () => Application.Exit())
                .Register("发送", () => this.Invoke(() => btnSend_Click(null, null)));

                BizLog.Info("语音识别前缀:{0} 可用命令:{1}", sp.Name, sp.GetAllKeys().Join());
            });
        }
Example #21
0
        void Connect()
        {
            _Server = null;
            _Client = null;

            var mode   = GetMode();
            var local  = cbLocal.Text;
            var remote = cbRemote.Text;
            var port   = (Int32)numPort.Value;

            var cfg = NetConfig.Current;

            cfg.Mode = (Byte)mode;

            switch (mode)
            {
            case WorkModes.UDP_TCP:
                _Server = new NetServer();
                break;

            case WorkModes.UDP_Server:
                _Server = new NetServer();
                _Server.ProtocolType = NetType.Udp;
                break;

            case WorkModes.TCP_Server:
                _Server = new NetServer();
                _Server.ProtocolType = NetType.Tcp;
                break;

            case WorkModes.TCP_Client:
                _Client = new TcpSession();
                break;

            case WorkModes.UDP_Client:
                _Client = new UdpServer();
                break;

            default:
                if ((Int32)mode > 0)
                {
                    var ns = GetServer(cbMode.Text);
                    if (ns == null)
                    {
                        throw new XException("未识别服务[{0}]", mode);
                    }

                    _Server = ns.GetType().CreateInstance() as NetServer;
                }
                break;
            }

            if (_Client != null)
            {
                _Client.Log = cfg.ShowLog ? XTrace.Log : Logger.Null;
                if (!local.Contains("所有本地"))
                {
                    _Client.Local.Host = local;
                }
                _Client.Received   += OnReceived;
                _Client.Remote.Port = port;
                _Client.Remote.Host = remote;

                _Client.LogSend    = cfg.ShowSend;
                _Client.LogReceive = cfg.ShowReceive;

                if (!_Client.Open())
                {
                    return;
                }

                "已连接服务器".SpeechTip();
            }
            else if (_Server != null)
            {
                if (_Server == null)
                {
                    _Server = new NetServer();
                }
                _Server.Log       = cfg.ShowLog ? XTrace.Log : Logger.Null;
                _Server.SocketLog = cfg.ShowSocketLog ? XTrace.Log : Logger.Null;
                _Server.Port      = port;
                if (!local.Contains("所有本地"))
                {
                    _Server.Local.Host = local;
                }
                _Server.Received += OnReceived;

                _Server.LogSend    = cfg.ShowSend;
                _Server.LogReceive = cfg.ShowReceive;

                //// 加大会话超时时间到1天
                //_Server.SessionTimeout = 24 * 3600;

                _Server.Start();

                "正在监听{0}".F(port).SpeechTip();
            }

            pnlSetting.Enabled = false;
            btnConnect.Text    = "关闭";

            cfg.Save();

            _timer = new TimerX(ShowStat, null, 5000, 5000);

            BizLog = TextFileLog.Create("NetLog");
        }
Example #22
0
        /// <summary>写入SQL到文本中</summary>
        /// <param name="sql"></param>
        /// <param name="ps"></param>
        public static void WriteSQL(String sql, params DbParameter[] ps)
        {
            if (!ShowSQL)
            {
                return;
            }

            if (ps != null && ps.Length > 0)
            {
                StringBuilder sb = new StringBuilder();
                sb.Append(sql);
                sb.Append("[");
                for (int i = 0; i < ps.Length; i++)
                {
                    if (i > 0)
                    {
                        sb.Append(", ");
                    }
                    var v  = ps[i].Value;
                    var sv = "";
                    if (v is Byte[])
                    {
                        var bv = v as Byte[];
                        if (bv.Length > 8)
                        {
                            sv = String.Format("[{0}]0x{1}...", bv.Length, BitConverter.ToString(bv, 0, 8));
                        }
                        else
                        {
                            sv = String.Format("[{0}]0x{1}", bv.Length, BitConverter.ToString(bv));
                        }
                    }
                    else if (v is String)
                    {
                        sv = v as String;
                        if (sv.Length > 8)
                        {
                            sv = String.Format("[{0}]{1}...", sv.Length, sv.Substring(0, 8));
                        }
                    }
                    else
                    {
                        sv = "" + v;
                    }
                    sb.AppendFormat("{1}:{0}={2}", ps[i].ParameterName, ps[i].DbType, sv);
                }
                sb.Append("]");
                sql = sb.ToString();
            }

            if (String.IsNullOrEmpty(DAL.SQLPath))
            {
                WriteLog(sql);
            }
            else
            {
                if (logger == null)
                {
                    logger = TextFileLog.Create(DAL.SQLPath);
                }
                logger.WriteLine(sql);
            }
        }