Example #1
0
        public static bool Send(byte[] data)
        {
            try
            {
                if (_cpldSocket == null)
                {
                    Connect();
                }
                else if (_cpldSocket.Connected == false)
                {
                    Connect();
                }


                if (_cpldSocket == null || !_cpldSocket.Connected)
                {
                    return(false);
                }
                _cpldSocket.SendTimeout = 3000;
                _cpldSocket.Send(data);
                return(true);
            }
            catch (TimeoutException ex)
            {
                LogControl.LogError(ex);
                Disconnected();
                return(false);
            }
            catch (Exception ex)
            {
                LogControl.LogError(ex);
                Disconnected();
                return(false);
            }
        }
        private void ChangeImg()
        {
            try
            {
                var bgImage = new BitmapImage(new Uri(Cable.BgImgPath, UriKind.Absolute));
                ImgBackGround.Source = bgImage;

                _zoomHeight       = bgImage.Height;
                _zoomWidth        = bgImage.Width;
                ZoomCanvas.Height = bgImage.Height * _zoomScale;//触发缩放
                ZoomCanvas.Width  = bgImage.Width * _zoomScale;
            }
            catch (Exception e)
            {
                LogControl.LogError("图片选择错误或丢失" + e);
                InfoBox.ErrorMsg("请选择正确的图片");
                if (_dots != null && _dots.Count > 0)
                {
                    _zoomHeight = Math.Max(_dots.Max(x => x.Info.Position.Y) + 50, 600);
                    _zoomWidth  = Math.Max(_dots.Max(x => x.Info.Position.X) + 50, 800);
                }
                else
                {
                    _zoomHeight = 600;
                    _zoomWidth  = 800;
                }

                ZoomCanvas.Height = _zoomHeight * _zoomScale;
                ZoomCanvas.Width  = _zoomWidth * _zoomScale;
            }
        }
Example #3
0
        public bool CopyCable()
        {
            if (SelectedCable == null)
            {
                InfoBox.InfoMsg("请选择产品");
                return(false);
            }

            var mbr = MessageBox.Show("确定要复制选中的记录吗?", "提示信息", MessageBoxButton.OKCancel, MessageBoxImage.Information);

            if (mbr != MessageBoxResult.OK)
            {
                return(true);
            }
            if (!CacheGraph.CopyCable(SelectedCable, _user.UserName))
            {
                InfoBox.ErrorMsg("数据库访问失败,请联系管理员");
                return(false);
            }
            if (!CacheGraph.CacheCopyCable())
            {
                LogControl.LogError("写入样线数据库失败");
                return(false);
            }
            return(UpdataCableGrid());
        }
Example #4
0
        private void Image_MouseDown(object sender, MouseButtonEventArgs e)
        {
            try
            {
                var mbr = MessageBox.Show("确认关闭计算机?", "提示信息", MessageBoxButton.OKCancel, MessageBoxImage.Question);

                if (mbr != MessageBoxResult.OK)
                {
                    return;
                }
                var mp = new Process
                {
                    StartInfo =
                    {
                        FileName               = "cmd.exe",
                        RedirectStandardInput  = true,
                        RedirectStandardOutput = true,
                        RedirectStandardError  = true,
                        UseShellExecute        = false,
                        CreateNoWindow         = true
                    }
                };
                mp.Start();
                mp.StandardInput.WriteLine("shutdown -s -t 0");
            }
            catch (Exception)
            {
                LogControl.LogError("Close Computer Cxception");
            }
        }
Example #5
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            BtnLogout.IsEnabled = false;
            DbCommon.InitDbConn();
            var cache = new CacheGraph();

            if (!cache.CacheInit())
            {
                LogControl.LogError("缓存数据初始化失败");
                return;
            }
            DisableAllOperation();

            LoadMachineSetting();

            _checkConnStateThread = new Thread(CheckConnState);
            _checkConnStateThread.Start();

            if (!CpldBase.CustomizeVersion.Debug)
            {
                return;
            }
            TbUsername.Text     = "admin";
            TbPassword.Password = "******";
        }
Example #6
0
        public static bool BeginPointCheck(out List <string> pointList)
        {
            ResultData = null;
            pointList  = null;

            var sendData = CommandData.GetCommandData(CommandType.PointCheck);

            SendCommand(sendData);
            ReceiveResult();

            if (ResultData == null || ResultData.Length < 8)
            {
                LogControl.LogError("result null or resultdata length < 8");
                return(false);
            }

            if (ResultData[0] != 0)
            {
                return(false);
            }

            try
            {
                DataParser.PointCircuitParser.SearchPointParse(ResultData, out pointList);
                return(true);
            }
            catch (Exception ex)
            {
                LogControl.LogError(ex);
                return(false);
            }
        }
Example #7
0
        public bool DelCable()
        {
            if (SelectedCable == null)
            {
                InfoBox.InfoMsg("请选择产品");
                return(false);
            }
            var mbr = MessageBox.Show("确定要删除选中的记录吗?", "提示信息", MessageBoxButton.OKCancel, MessageBoxImage.Information);

            if (mbr != MessageBoxResult.OK)
            {
                return(true);
            }
            if (!CacheGraph.DelCable(SelectedCable))
            {
                LogControl.LogError("删除样线缓存失败");
                return(false);
            }
            if (!CacheGraph.CacheDelCable())
            {
                LogControl.LogError("写入样线数据库失败");
                return(false);
            }
            CpldControl.Bartend.BartendControl.DelBartendFiles(SelectedCable.CableName);
            return(UpdataCableGrid());;
        }
Example #8
0
        public static bool ImportSqlFile(string varFileName)
        {
            const string sql = "DROP DATABASE IF EXISTS tds_data; CREATE DATABASE tds_data";

            if (!NonQueryData(sql))
            {
                return(false);
            }

            using (var reader = new StreamReader(varFileName, System.Text.Encoding.GetEncoding("utf-8")))
            {
                try
                {
                    var line = "";
                    while (true)
                    {
                        if (line.EndsWith(";"))
                        {
                            line = "";
                        }

                        var l = reader.ReadLine();

                        if (l == null)
                        {
                            break;
                        }
                        l = l.TrimEnd();
                        if (l == "")
                        {
                            continue;
                        }
                        if (l.StartsWith("--"))
                        {
                            continue;
                        }
                        line += l;
                        if (!line.EndsWith(";"))
                        {
                            continue;
                        }
                        if (line.StartsWith("/*!"))
                        {
                            continue;
                        }
                        NonQueryData(line);
                    }
                }
                catch (Exception)
                {
                    InfoBox.ErrorMsg("导入失败");
                    LogControl.LogError("导入数据失败");
                    return(false);
                }
            }
            return(true);
        }
Example #9
0
 private void Window_Unloaded(object sender, RoutedEventArgs e)
 {
     CpldBase.ThreadFlags.ConnStatCheck = false;
     try
     {
         _checkConnStateThread.Abort();
     }
     catch (Exception ex)
     {
         LogControl.LogError(ex);
     }
 }
Example #10
0
        public bool SearchCable()
        {
            List <CableInfo> cableList;

            if (!CacheGraph.GetCablesByName(out cableList, SearchText))
            {
                LogControl.LogError("搜索样线缓存失败");
                return(false);
            }
            CableList.Clear();
            foreach (var cable in cableList)
            {
                CableList.Add(cable);
            }
            return(true);
        }
Example #11
0
 private static bool UpdateSettingToFile()
 {
     try
     {
         var sw = new StreamWriter("cfg.ini", false);
         sw.WriteLine(Settings.IsDelayScan? "1": "0");
         sw.WriteLine(Settings.IsShareSerial? "1": "0");
         sw.WriteLine(Settings.DelayTime);
         sw.Close();
         return(true);
     }
     catch (Exception ex)
     {
         LogControl.LogError(ex);
         return(false);
     }
 }
Example #12
0
        private bool UpdataCableGrid()
        {
            List <CableInfo> cableList;

            if (!CacheGraph.GetCables(out cableList))
            {
                LogControl.LogError("读取样线缓存失败");
                return(false);
            }

            CableList.Clear();
            foreach (var cable in cableList)
            {
                CableList.Add(cable);
            }
            return(true);
        }
Example #13
0
 public GraphicalCableCheck(CableInfo cable, UserInfo user)
 {
     InitializeComponent();
     if (cable == null)
     {
         LogControl.LogError("选择样线失败,空样线信息");
         return;
     }
     Cable = cable;
     if (user == null)
     {
         LogControl.LogError("选择样线失败,空用户信息");
         return;
     }
     User = user;
     Window_Loaded();
 }
Example #14
0
        private static void ConnectCallBack(IAsyncResult ar)
        {
            try
            {
                if (_cpldSocket == null || !_cpldSocket.Connected)
                {
                    return;
                }

                var client = (Socket)ar.AsyncState;
                client.EndConnect(ar);
                ConnectDone.Set();
            }
            catch (Exception ex)
            {
                LogControl.LogError(ex.ToString());
            }
        }
Example #15
0
        public static bool Receive(out List <byte> recvList)
        {
            recvList = new List <byte>();
            if (_cpldSocket == null)
            {
                return(false);
            }
            if (_cpldSocket.Connected == false)
            {
                return(false);
            }

            try
            {
                _cpldSocket.ReceiveTimeout = ReceiveTimeout;

                var dataTotalLen  = -1;
                var recvLoopCount = 0;
                do
                {
                    var recvData = new byte[1024];
                    var recvLen  = _cpldSocket.Receive(recvData);
                    recvLoopCount++;

                    var tmp = new byte[recvLen];
                    Array.ConstrainedCopy(recvData, 0, tmp, 0, recvLen);
                    recvList.AddRange(tmp);
                    dataTotalLen = Convert.ToInt32(
                        Convert.ToString(recvList[5], 16).PadLeft(2, '0') +
                        Convert.ToString(recvList[4], 16).PadLeft(2, '0'), 16);
                } while (recvList.Count < dataTotalLen + 8 || recvLoopCount > 100);
                if (recvLoopCount <= 100)
                {
                    return(true);
                }
                LogControl.LogError("Loop timeout");
                return(false);
            }
            catch (Exception ex)
            {
                LogControl.LogError(ex);
                return(false);
            }
        }
Example #16
0
        public static bool BeginSampleCheck(out bool isNoShortCircuit, out List <List <string> > shortCircuitInfoResult, out int pointNo, out int circuitNo)
        {
            ResultData             = null;
            shortCircuitInfoResult = null;

            isNoShortCircuit = false;
            pointNo          = 0;
            circuitNo        = 0;

            var sendData = CommandData.GetCommandData(CommandType.SampleCheck);

            if (!SendCommand(sendData))
            {
                LogControl.LogError("Send fail");
                return(false);
            }
            if (!ReceiveResult())
            {
                LogControl.LogError("Receive Fail");
                return(false);
            }

            if (ResultData == null || ResultData.Length < 8)
            {
                LogControl.LogError("result null or resultdata length < 8");
                return(false);
            }
            if (ResultData[0] != 0)
            {
                isNoShortCircuit = true;
                return(true);
            }

            try
            {
                DataParser.SelfCheckParser.SelfCheckParse(ResultData, out shortCircuitInfoResult, out pointNo, out circuitNo);
                return(true);
            }
            catch (Exception ex)
            {
                LogControl.LogError(ex);
                return(false);
            }
        }
Example #17
0
        public static void Disconnected()
        {
            try
            {
                if (_cpldSocket == null)
                {
                    return;
                }
                _cpldSocket.Shutdown(SocketShutdown.Both);
                Thread.Sleep(10);
                _cpldSocket.Close();

                LogControl.LogError("receive timeout");
            }
            catch (Exception ex)
            {
                LogControl.LogError(ex.ToString());
            }
        }
Example #18
0
 public static void Connect()
 {
     try
     {
         _remoteHost = Params.ServerHost;
         var ipAddress = IPAddress.Parse(_remoteHost);
         var remoteEp  = new IPEndPoint(ipAddress, RemotePort);
         _cpldSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
         _cpldSocket.BeginConnect(remoteEp, ConnectCallBack, _cpldSocket);
         if (!ConnectDone.WaitOne(1000, false))                              //5 sec timeout
         {
             LogControl.LogError("connect time out");
         }
     }
     catch (Exception ex)
     {
         LogControl.LogError("connect error " + ex);
     }
 }
Example #19
0
 public static void Reconnect()
 {
     try
     {
         if (_cpldSocket.Connected)
         {
             _cpldSocket.Shutdown(SocketShutdown.Both);
             _cpldSocket.Disconnect(true);
             //cpldSocket.Connected = false;
             _cpldSocket.Close();
         }
         _cpldSocket = null;
     }
     catch (Exception ex)
     {
         LogControl.LogError("reconnect error " + ex);
     }
     Connect();
 }
Example #20
0
        public static bool SelectDots(out List <DotInfo> dots)
        {
            const string querySql = "SELECT * FROM points";
            DataTable    dt;

            dots = new List <DotInfo>();

            if (!QueryData(querySql, out dt))
            {
                return(false);
            }
            try
            {
                for (var i = 0; i < dt.Rows.Count; i++)
                {
                    var tmpDotInfo = new DotInfo
                    {
                        ParentCableId   = Convert.ToInt32(dt.Rows[i][0].ToString()),
                        DotId           = Convert.ToInt32(dt.Rows[i][1].ToString()),
                        ParentPlugId    = Convert.ToInt32(dt.Rows[i][2].ToString()),
                        ParentCircuitId = Convert.ToInt32(dt.Rows[i][3].ToString()),
                        PhyAddr         = dt.Rows[i][4].ToString(),
                        Name            = dt.Rows[i][5].ToString(),
                        DotStyle        = new Style
                        {
                            Type            = Convert.ToInt32(dt.Rows[i][6].ToString()),
                            Size            = Convert.ToInt32(dt.Rows[i][7].ToString()),
                            ForegroundColor = (Color)ColorConverter.ConvertFromString(dt.Rows[i][8].ToString()),
                            BackgroundColor = (Color)ColorConverter.ConvertFromString(dt.Rows[i][9].ToString())
                        },
                        Position = new Point(Convert.ToInt32(dt.Rows[i][10].ToString()), Convert.ToInt32(dt.Rows[i][11].ToString()))
                    };
                    dots.Add(tmpDotInfo);
                }
            }
            catch (Exception e)
            {
                LogControl.LogError(e);
            }
            return(true);
        }
Example #21
0
        protected static bool NonQueryData(string querySql)
        {
            var cmd = new MySqlCommand(querySql, _conn);

            try
            {
                _conn.Open();
                cmd.ExecuteNonQuery();
                return(true);
            }
            catch (Exception ex)
            {
                InfoBox.ErrorMsg("数据库操作错误,请检查数据库连接或联系管理员");
                LogControl.LogError("db operation error", ex);
                return(false);
            }
            finally
            {
                _conn.Close();
            }
        }
Example #22
0
        private void InitBgConfig()
        {
            if (!string.IsNullOrWhiteSpace(Cable.BgImgPath))
            {
                //有图
                try
                {
                    var bgImage = new BitmapImage(new Uri(Cable.BgImgPath, UriKind.Absolute));
                    ImgBackGround.Source = bgImage;

                    _zoomHeight       = bgImage.Height;
                    _zoomWidth        = bgImage.Width;
                    ZoomCanvas.Height = bgImage.Height * _zoomScale; //触发缩放
                    ZoomCanvas.Width  = bgImage.Width * _zoomScale;
                    return;
                }
                catch (Exception e)
                {
                    InfoBox.ErrorMsg("请配置正确的图片路径");
                    LogControl.LogError(e);
                }
            }
            //没图或图片读取失败
            ImgBackGround.Source = null;

            if (_dots != null && _dots.Count > 0)
            {
                _zoomHeight = Math.Max(_dots.Max(x => x.Info.Position.Y) + 50, 600);
                _zoomWidth  = Math.Max(_dots.Max(x => x.Info.Position.X) + 50, 800);
            }
            else
            {
                _zoomHeight = 600;
                _zoomWidth  = 800;
            }

            ZoomCanvas.Height = _zoomHeight * _zoomScale;
            ZoomCanvas.Width  = _zoomWidth * _zoomScale;
        }
Example #23
0
        protected static bool QueryData(string querySql, out DataTable dt)
        {
            var cmd = new MySqlCommand(querySql, _conn);

            dt = new DataTable();
            try
            {
                _conn.Open();
                var reader = cmd.ExecuteReader();
                dt.Load(reader);
                return(true);
            }
            catch (Exception ex)
            {
                InfoBox.ErrorMsg("数据库操作错误,请检查数据库连接或联系管理员");
                LogControl.LogError("db operation error", ex);
                return(false);
            }
            finally
            {
                _conn.Close();
            }
        }
Example #24
0
        protected static bool NonQueryData(string querySql, DataTable dt)
        {
            var dataAdapter = new MySqlDataAdapter();

            try
            {
                _conn.Open();
                dataAdapter.SelectCommand = new MySqlCommand(querySql, _conn);
                var mySqlCommandBuilder = new MySqlCommandBuilder(dataAdapter);
                dataAdapter.Update(dt);
                return(true);
            }
            catch (Exception ex)
            {
                InfoBox.ErrorMsg("数据库操作错误,请检查数据库连接或联系管理员");
                LogControl.LogError("db operation error", ex);
                return(false);
            }
            finally
            {
                _conn.Close();
            }
        }
Example #25
0
        private void btnLogin_Click(object sender, RoutedEventArgs e)
        {
            bool isVerified;

            if (!DbUser.UserLogin(TbUsername.Text.Trim(), TbPassword.Password.Trim(), out isVerified, out _user))
            {
                return;
            }
            if (_user.UserLevel == 0)
            {
                App.UnlockOper();
            }
            else
            {
                App.LockOper();
            }

            if (!isVerified)
            {
                CpldBase.InfoBox.InfoMsg("用户名或密码错误");
                return;
            }

            try
            {
                var iUserAuthen = Array.ConvertAll(_user.UserAuthen.Split(','), int.Parse);
                EnableVerifiedOperation(iUserAuthen);
                BtnLogin.IsEnabled   = false;
                BtnLogout.IsEnabled  = true;
                TbUsername.IsEnabled = false;
                TbPassword.IsEnabled = false;
            }
            catch (Exception ex)
            {
                LogControl.LogError("user level string parse error", ex);
            }
        }
        public GraphicalConfigCircuit(CircuitInfo circuit)
        {
            InitializeComponent();

            CmbLineColors.ItemsSource  = typeof(Colors).GetProperties();
            CmbDotFgColors.ItemsSource = typeof(Colors).GetProperties();
            CmbDotBgColors.ItemsSource = typeof(Colors).GetProperties();

            CurCircuit       = circuit;
            Grid.DataContext = CurCircuit;

            foreach (var item in typeof(Colors).GetProperties())
            {
                try
                {
                    var color = (Color)ColorConverter.ConvertFromString(item.Name);
                    if (color == circuit.LineStyle.ForegroundColor)
                    {
                        CmbLineColors.SelectedItem = typeof(Colors).GetProperty(item.Name);
                    }
                    if (color == circuit.DotStyle.ForegroundColor)
                    {
                        CmbDotFgColors.SelectedItem = typeof(Colors).GetProperty(item.Name);
                    }
                    if (color == circuit.DotStyle.BackgroundColor)
                    {
                        CmbDotBgColors.SelectedItem = typeof(Colors).GetProperty(item.Name);
                    }
                }
                catch (Exception e)
                {
                    LogControl.LogError(e);
                }
            }

            CmbLineWidth.SelectedIndex = Convert.ToInt32(circuit.LineStyle.Size) - 1;
        }
Example #27
0
        private void cbBar_DropDownClosed(object sender, EventArgs e)
        {
            try
            {
                TbBarFieldContent.Text = "";
                ChkEditable.IsChecked  = false;
                ChkEditable.IsEnabled  = true;

                switch (CbBar.SelectedIndex)
                {
                case 0:
                    TbBarValueLen.IsEnabled     = true;
                    TbBarFieldContent.IsEnabled = false;
                    TbBarFieldContent.Text      = "";
                    TbBarFieldName.IsEnabled    = true;
                    TbBarFieldName.Text         = "";
                    TbBarValueLen.Text          = "";
                    break;

                case 1:
                    TbBarValueLen.IsEnabled     = false;
                    TbBarFieldContent.IsEnabled = true;
                    TbBarFieldName.IsEnabled    = true;
                    TbBarFieldName.Text         = "";
                    TbBarValueLen.Text          = "0";
                    break;

                case 2:
                    TbBarValueLen.IsEnabled     = false;
                    TbBarValueLen.Text          = "2";
                    TbBarFieldContent.Text      = "";
                    TbBarFieldContent.IsEnabled = false;
                    TbBarFieldName.IsEnabled    = false;
                    TbBarFieldName.Text         = "月";
                    ChkEditable.IsEnabled       = false;
                    break;

                case 3:
                    TbBarValueLen.IsEnabled     = false;
                    TbBarValueLen.Text          = "2";
                    TbBarFieldContent.Text      = "";
                    TbBarFieldContent.IsEnabled = false;
                    TbBarFieldName.IsEnabled    = false;
                    TbBarFieldName.Text         = "日";
                    ChkEditable.IsEnabled       = false;
                    break;

                case 4:
                    TbBarValueLen.IsEnabled     = false;
                    TbBarValueLen.Text          = "2";
                    TbBarFieldContent.Text      = "";
                    TbBarFieldContent.IsEnabled = false;
                    TbBarFieldName.IsEnabled    = false;
                    TbBarFieldName.Text         = "年";
                    ChkEditable.IsEnabled       = false;
                    break;

                default: break;
                }
            }
            catch (Exception exception)
            {
                LogControl.LogError(exception);
            }
        }
Example #28
0
 private void DrawErrorLines(IEnumerable <List <string> > shortCircuitList, IEnumerable <List <string> > openCircuitList)
 {
     try
     {
         foreach (var circuit in openCircuitList)
         {
             var info = new CircuitInfo
             {
                 CircuitId = -1,
                 LineStyle = new CpldDB.Style
                 {
                     Type            = 1,
                     Size            = 2,
                     ForegroundColor = Colors.Red,
                     BackgroundColor = Colors.Transparent,
                 },
                 DotStyle = new CpldDB.Style
                 {
                     Type            = 1,
                     Size            = 4,
                     ForegroundColor = Colors.Transparent,
                     BackgroundColor = Colors.Transparent,
                 },
             };
             var tmpCircuit = new Circuit(info);
             foreach (var dot in circuit)
             {
                 if (_phyAddrMapToDot.ContainsKey(dot))
                 {
                     tmpCircuit.CircuitDots.Add((Dot)_phyAddrMapToDot[dot]);
                 }
             }
             tmpCircuit.GetAllLines(_zoomScale);
             _errorLineCanvas.Children.Add(tmpCircuit.CircuitCanvas);
         }
         foreach (var circuit in shortCircuitList)
         {
             var info = new CircuitInfo
             {
                 CircuitId = -1,
                 LineStyle = new CpldDB.Style
                 {
                     Type            = 2,
                     Size            = 6,
                     ForegroundColor = Colors.Green,
                     BackgroundColor = Colors.Transparent,
                 },
                 DotStyle = new CpldDB.Style
                 {
                     Type            = 1,
                     Size            = 4,
                     ForegroundColor = Colors.Transparent,
                     BackgroundColor = Colors.Transparent,
                 },
             };
             var tmpCircuit = new Circuit(info);
             foreach (var dot in circuit)
             {
                 if (_phyAddrMapToDot.ContainsKey(dot))
                 {
                     tmpCircuit.CircuitDots.Add((Dot)_phyAddrMapToDot[dot]);
                 }
             }
             tmpCircuit.GetAllLines(_zoomScale);
             _errorLineCanvas.Children.Add(tmpCircuit.CircuitCanvas);
         }
     }
     catch (Exception e)
     {
         LogControl.LogError(e);
         throw;
     }
 }