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("我们很抱歉,当前应用程序遇到一些问题,该操作已经终止,请进行重试,如果问题继续存在,请联系管理员."); } }
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("我们很抱歉,当前应用程序遇到一些问题,该操作已经终止,请进行重试,如果问题继续存在,请联系管理员."); }
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,但!那又怎样!我是程序猿,我为自己带眼"); }
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} }