Exemple #1
0
        private void btnOK_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                Model.FFMIsAvailable   = Convert.ToInt32(Enum.Parse(typeof(YesOrNoType), Available.SelectedValue.ToString()));
                Model.FFMBerthPosition = (int)Enum.Parse(typeof(BerthPositionType), Position.SelectedValue.ToString());
                Model.FFMState         = (int)Enum.Parse(typeof(PLCStateType), cmbFFMState.SelectedValue.ToString());
                Model.FFMCreateType    = (int)Enum.Parse(typeof(CreateControlType), cmbCreateType.SelectedValue.ToString());

                if (this.Title.Contains("添加"))
                {
                    Model.CreateTime = DateTime.Now;
                    Model.CreateUser = TengDa.Core.AppContext.Current.UserInfo.UserName;
                    if ((new FixtureFurnaceMainDB()).Insert(Model) < 1)
                    {
                        MessageBox.CustomMessageBox.Show("添加数据过程出现错误!", MessageBox.CustomMessageBoxButton.OK, MessageBox.CustomMessageBoxIcon.Question);
                        return;
                    }
                }
                else
                {
                    if (!(new FixtureFurnaceMainDB()).Update(Model))
                    {
                        MessageBox.CustomMessageBox.Show("修改数据过程出现错误!", MessageBox.CustomMessageBoxButton.OK, MessageBox.CustomMessageBoxIcon.Question);
                        return;
                    }
                }
                this.DialogResult = new bool?(true);
                this.Close();
            }
            catch (Exception ex)
            {
                MessageBoxX.Error(ex.Message);
            }
        }
 private void click1(object sender, RoutedEventArgs e)
 {
     MessageBoxX.Info("我里边的值随便写");
     MessageBoxX.Error("我里边的值真随便写");
     MessageBoxX.Warning("我里边的值真真随便写");
     MessageBoxX.Question("我里边的值真真真随便写");
 }
 private void Current_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
 {
     try
     {
         TengDa.Common.Log.Logs.Error("UI线程全局异常" + e.Exception.ToString());
         e.Handled = true;
     }
     catch (Exception ex)
     {
         TengDa.Common.Log.Logs.Error("不可恢复的UI线程全局异常:" + ex.Message.ToString());
         MessageBoxX.Error("我们很抱歉,当前应用程序遇到一些问题,该操作已经终止,请进行重试,如果问题继续存在,请联系管理员.");
     }
 }
Exemple #4
0
        private void NavigationService_LoadCompleted(object sender, NavigationEventArgs e)
        {
            if (e.ExtraData != null)
            {
                // Do something here...
                // System.Windows.MessageBox.Show(this,string.Format("Capture Page Skip Message:{0}",e.ExtraData),"Capture",MessageBoxButton.OK,MessageBoxImage.Information,MessageBoxResult.OK);

                MessageBoxX.Info(string.Format("Capture Page Skip Message:{0}", e.ExtraData));

                MessageBoxX.Error(string.Format("Capture Page Skip Message:{0}", e.ExtraData));
                MessageBoxX.Warning(string.Format("Capture Page Skip Message:{0}", e.ExtraData));
                MessageBoxX.Question(string.Format("Capture Page Skip Message:{0}", e.ExtraData));
            }
        }
        private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            try
            {
                var exception = e.ExceptionObject as Exception;
                if (exception != null)
                {
                    TengDa.Common.Log.Logs.Error("非UI线程全局异常:" + e.ToString());
                }
            }
            catch (Exception ex)
            {
                TengDa.Common.Log.Logs.Error("不可恢复的非UI线程全局异常:" + ex.ToString());
                MessageBoxX.Error("应用程序发生不可恢复的异常,将要退出!");
            }

            MessageBoxX.Error("我们很抱歉,当前应用程序遇到一些问题,该操作已经终止,请进行重试,如果问题继续存在,请联系管理员.");
        }
Exemple #6
0
        private void btnOK_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                DetailModel = new FixtureFurnaceDetailEntity();
                ObjectReflection.AutoMapping(Model, DetailModel);
                //明细表
                DetailModel.FFDState        = (int)Enum.Parse(typeof(FFDState), cmbFFDState.SelectedValue.ToString());
                DetailModel.FFDIsAccomplish = (int)Enum.Parse(typeof(YesOrNoType), Accomplish.SelectedValue.ToString());
                DetailModel.CAId            = cmbCAI.SelectedValue == null ? 0 : (int)cmbCAI.SelectedValue;



                if (operateType == 1)
                {
                    if ((new FixtureFurnaceDetailDB().Insert(DetailModel) < 1))
                    {
                        CustomMessageBox.Show("添加数据过程出现错误!", CustomMessageBoxButton.OKCancel, CustomMessageBoxIcon.Question);
                        return;
                    }
                }
                else
                {
                    if (!(new FixtureFurnaceDetailDB()).Update(DetailModel))
                    {
                        CustomMessageBox.Show("修改数据过程出现错误!", CustomMessageBoxButton.OKCancel, CustomMessageBoxIcon.Question);
                        return;
                    }
                }
                this.DialogResult = new bool?(true);
                this.Close();
            }
            catch (Exception ex)
            {
                MessageBoxX.Error(ex.Message);
            }
        }
 private void FButton_Click_Error(object sender, RoutedEventArgs e)
 {
     MessageBoxX.Error("你只看到我在不停的忙碌,却没看到我奋斗的热情。你有朝九晚五,我有通宵达旦。你否定我的现在,我决定我的未来。你可以轻视我的存在,我会用代码证明这是谁的时代!Coding是注定痛苦的旅行,路上少不了Bug和Change,但!那又怎样!我是程序猿,我为自己带眼");
 }
Exemple #8
0
        private void DealWith()
        {
            try
            {
                Console.WriteLine("Update");
                Nuitrack.Update(_skeletonTracker);
            }
            catch (LicenseNotAcquiredException exception)
            {
                Console.WriteLine("LicenseNotAcquired exception. Exception: ", exception);
                MessageBoxX.Error("3D摄像头认证异常,请重新进入页面重试。");
                //throw exception;
            }
            catch (nuitrack.Exception exception)
            {
                Console.WriteLine("Nuitrack update failed. Exception: ", exception);
                MessageBoxX.Error("3D摄像头更新异常,请重新进入页面重试。");
            }

            // Draw skeleton joints
            //CQZ:检测骨架关节数据,骨骼数组不为空开始,里边while循环判断骨骼数组里如果为空,就调用API更新骨骼数据,线程sleep 0.1秒再循环检测
            while (true)
            {
                if (_skeletonData != null)
                {
                    //加try catch处理 --CQZ
                    try
                    {
                        Console.WriteLine("_skeletonData不为空,捕捉到人");
                        while (_skeletonData.Skeletons.Length == 0)
                        {
                            Nuitrack.Update(_skeletonTracker);
                            Console.WriteLine("Skeletons为空进行Update,Skeletons是个数组,每个元素对应一个人");
                            Thread.Sleep(100);
                        }
                    }
                    catch
                    {
                        Console.WriteLine("Skeletons为空进行Update异常");
                        MessageBoxX.Error("骨骼数据为空,请站到指定位置再开始扫描。");
                    }


                    Joint Head         = new Joint(); //衣领位置
                    Joint Collar       = new Joint(); //衣领位置
                    Joint LeftShoulder = new Joint(); //左肩关节
                    Joint LeftElbow    = new Joint(); //左胳膊肘
                    Joint LeftWrist    = new Joint(); //左手手腕关节
                    Joint LeftHip      = new Joint(); //左大腿关节
                    Joint LeftKnee     = new Joint(); //左膝盖关节
                    Joint LeftAnkle    = new Joint(); //左脚踝
                    Joint Waist        = new Joint(); //腰部
                    Console.WriteLine("Joints长度为" + _skeletonData.Skeletons[0].Joints.Length);

                    //骨骼关节数据不为空后开始进行图像渲染,各个关节的计算初始化等操作。
                    try
                    {
                        while (!breakFlag)
                        {    //_skeletonData.Skeletons[0].Joints表示关节   _skeletonData.Skeletons.Length > 0 &&是不是可以删掉
                            if (_skeletonData.Skeletons.Length > 0 && _skeletonData.Skeletons[0].Joints.Length > 0)
                            {
                                Console.WriteLine("外层循环");
                                //CQZ:一直以来罪魁祸首崩溃异常的大坑!数组越界bug修改!!!!不应该是i < [].length  应该是 i < [].length-1
                                for (int i = 0; i < _skeletonData.Skeletons[0].Joints.Length - 1; i++)
                                {
                                    Skeleton skeleton = _skeletonData.Skeletons[0];

                                    this.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart) delegate()
                                    {
                                        //描点
                                        Console.WriteLine("图像渲染前" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"));
                                        DrawingVisual drawingVisual      = new DrawingVisual();
                                        DrawingContext drawingContext    = drawingVisual.RenderOpen();
                                        System.Windows.Media.Brush brush = new SolidColorBrush(System.Windows.Media.Color.FromRgb(255, 0, 0));
                                        foreach (var joint in skeleton.Joints)
                                        {
                                            drawingContext.DrawEllipse(brush, new System.Windows.Media.Pen(), new System.Windows.Point((joint.Proj.X * _bitmap.Width - 10 / 2) - 53, (joint.Proj.Y * _bitmap.Height - 10 / 2) - 70), 5, 5);
                                        }
                                        drawingContext.Close();
                                        RenderTargetBitmap bmp = new RenderTargetBitmap(640, 480, 120, 120, PixelFormats.Pbgra32);
                                        bmp.Render(drawingVisual);
                                        statusImage1.Source = bmp;
                                        Console.WriteLine("图像渲染后" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"));
                                    });
                                    //Console.WriteLine("类型" + i + " " + skeleton.Joints[i].Type.ToString());
                                    if (skeleton.Joints[i].Type.ToString() == "Head")
                                    {
                                        Head = skeleton.Joints[i];
                                        // Console.WriteLine("头部位置坐标" + i + "||" + Head.Real.X + "||" + Head.Real.Y + "||" + Head.Real.Z);
                                    }
                                    if (skeleton.Joints[i].Type.ToString() == "LeftCollar")
                                    {
                                        Collar = skeleton.Joints[i];
                                        // Console.WriteLine("衣领位置坐标" + i + "||" + Collar.Real.X + "||" + Collar.Real.Y + "||" + Collar.Real.Z);
                                    }
                                    if (skeleton.Joints[i].Type.ToString() == "LeftShoulder")
                                    {
                                        LeftShoulder = skeleton.Joints[i];
                                        // Console.WriteLine("左肩关节坐标" + i + "||" + LeftShoulder.Real.X + "||" + LeftShoulder.Real.Y + "||" + LeftShoulder.Real.Z);
                                    }
                                    if (skeleton.Joints[i].Type.ToString() == "LeftWrist")
                                    {
                                        LeftWrist = skeleton.Joints[i];
                                        //Console.WriteLine("左手手腕关节坐标" + i + "||" + LeftWrist.Real.X + "||" + LeftWrist.Real.Y + "||" + LeftWrist.Real.Z);
                                    }
                                    if (skeleton.Joints[i].Type.ToString() == "LeftHip")
                                    {
                                        LeftHip = skeleton.Joints[i];
                                        // Console.WriteLine("左大腿关节坐标" + i + "||" + LeftHip.Real.X + "||" + LeftHip.Real.Y + "||" + LeftHip.Real.Z);
                                    }
                                    if (skeleton.Joints[i].Type.ToString() == "LeftAnkle")
                                    {
                                        LeftAnkle = skeleton.Joints[i];
                                        // Console.WriteLine("左脚踝坐标" + i + "||" + LeftAnkle.Real.X + "||" + LeftAnkle.Real.Y + "||" + LeftAnkle.Real.Z);
                                    }
                                    if (skeleton.Joints[i].Type.ToString() == "LeftElbow")
                                    {
                                        LeftElbow = skeleton.Joints[i];
                                        // Console.WriteLine("左胳膊肘坐标" + i + "||" + LeftElbow.Real.X + "||" + LeftElbow.Real.Y + "||" + LeftElbow.Real.Z);
                                    }
                                    if (skeleton.Joints[i].Type.ToString() == "LeftKnee")
                                    {
                                        LeftKnee = skeleton.Joints[i];
                                        //Console.WriteLine("左膝盖坐标" + i + "||" + LeftKnee.Real.X + "||" + LeftKnee.Real.Y + "||" + LeftKnee.Real.Z);
                                    }
                                    if (skeleton.Joints[i].Type.ToString() == "Waist")
                                    {
                                        Waist = skeleton.Joints[i];
                                        //Console.WriteLine("腰部坐标" + i + "||" + Waist.Real.X + "||" + Waist.Real.Y + "||" + Waist.Real.Z);
                                    }
                                    //因为手动抓拍功能 改为全局变量 CQZ
                                    //计算距离
                                    NeckLength    = ComputeDistanceBetween2Joints(Head, Collar);
                                    ShoulderWidth = ComputeDistanceBetween2Joints(LeftShoulder, Collar);
                                    ArmLengthUp   = ComputeDistanceBetween2Joints(LeftShoulder, LeftElbow);
                                    ArmLengthDown = ComputeDistanceBetween2Joints(LeftElbow, LeftWrist);
                                    LegLengthUp   = ComputeDistanceBetween2Joints(LeftHip, LeftKnee);
                                    LegLengthDown = ComputeDistanceBetween2Joints(LeftKnee, LeftAnkle);
                                    BodyLength    = ComputeDistanceBetween2Joints(Collar, Waist);
                                    //获取权重
                                    string initWeight = ConfigUtil.Get("initWeight");
                                    //CQZ:身高计算:各个骨骼相加再补常量 常量请根据测试情况调节
                                    Height = LegLengthUp + LegLengthDown + BodyLength + NeckLength + Double.Parse(initWeight);
                                    //更新,直到点击手动拍照按钮。
                                    Console.WriteLine("Update前");
                                    Nuitrack.Update(_skeletonTracker);
                                    Console.WriteLine("Update后");
                                }
                            }
                            else
                            {
                                Nuitrack.Update(_skeletonTracker);
                                Console.WriteLine("未捕获到关节,更新");
                            }
                        }
                        break;
                    }
                    catch (IndexOutOfRangeException)
                    {
                        //如果调用release应该会抛出异常并被catch捕获,在此break;
                        Console.WriteLine("3D扫描数组越界。");
                        MessageBoxX.Error("扫描失败,请重置后再点击开始重新扫描。");
                    }
                }
                else
                {
                    Nuitrack.Update(_skeletonTracker);
                    Console.WriteLine("没有检测到人,进行Update");
                }
            }//如果_skeletonData为空,并没有进行处理,就会出现只有一帧画面就停止的状况。使用while(true)包围加上else{update}
        }