/// <summary> /// Recalculate Feed rate. /// </summary> void Calculate_Vf_from_vc() { // Vf = (Vc fz Z)/(pi D) var v1_3 = new DoubleST((long)tool.Z.GetValue(), "[tooth]"); var v1 = (DoubleST)material.Vc * (DoubleST)material.fz * v1_3; var v2 = Math.PI * (DoubleST)tool.D; #if TRACE_EVENTS log.Debug($"Calculator: Vf from vc({v2})"); #endif Vf.SetValueScaled(v1 / v2); }
/// <summary> /// Recalculate Feed rate. /// </summary> void Calculate_Vf_from_n() { // Vf = n fz Z // n from rotations to time domain. (not yet done automatic) var v1_1 = new DoubleST(1, "[1/s]") * (DoubleST)n / n.BaseNormal(); var v1_3 = new DoubleST((long)tool.Z.GetValue(), "[tooth]"); var v1 = v1_1 * (DoubleST)material.fz * v1_3; #if TRACE_EVENTS log.Debug($"Calculator: Vf from n({v1})"); #endif Vf.SetValueScaled(v1); }
/// <summary> /// 存储船舶状态信息 /// </summary> /// <param name="fileName"></param> public void StoreShipData(string fileName, DataTable dataRec) { /*using (FileStream fs = new FileStream(@"D:\" + fileName + ".txt", FileMode.Append)) * { * //数据保存信息量为: * //船号,纬度,经度,X坐标(m),Y坐标,和领队误差,航向角,航迹角,速度,速度等级,时间 * //在速度等级后面增加舵角信息,舵角控制输出量信息和速度控制输出量信息 * //共13个存储量 * string str_data = ShipID.ToString() + "," + Lat.ToString("0.00000000") + "," + Lon.ToString("0.00000000") + "," + pos_X.ToString("0.000") + "," + pos_Y.ToString("0.000") + "," + XError.ToString("0.000") + "," + phi.ToString("0.0") + "," + GPS_Phi.ToString("0.0") + "," + speed.ToString("0.00") + "," + gear.ToString() + "," + rud.ToString("0.0") + ',' + CtrlRudOut.ToString() + ',' + CtrlSpeedOut.ToString() + ',' + Time.ToString();//将数据转换为字符串 + + byte[] data = System.Text.Encoding.Default.GetBytes(str_data); + byte[] data3 = new byte[2]; + data3[0] = 0x0d; data3[1] = 0x0a; + //开始写入 + fs.Write(data, 0, data.Length); + + fs.Write(data3, 0, data3.Length); + + //清空缓冲区、关闭流 + fs.Flush(); + fs.Close(); + }*/ /*gridView.Rows.Add(ShipID.ToString(), Lat.ToString("0.00000000"), Lon.ToString("0.00000000"), * pos_X.ToString("0.000"), pos_Y.ToString("0.000"), XError.ToString("0.000"), * phi.ToString("0.0"), GPS_Phi.ToString("0.0"), * speed.ToString("0.00"), gear.ToString(), * rud.ToString("0.0"), CtrlRudOut.ToString(), CtrlSpeedOut.ToString(), * Time.ToString());*/ dataRec.Rows.Add(new object[] { ShipID.ToString(), Lat.ToString("0.00000000"), Lon.ToString("0.00000000"), Fter_pos_X.ToString("0.000"), Fter_pos_Y.ToString("0.000"), XError.ToString("0.000"), phi.ToString("0.0"), GPS_Phi.ToString("0.0"), Fter_GPS_Phi.ToString("0.0"), speed.ToString("0.00"), gear.ToString(), rud.ToString("0.0"), CtrlRudOut.ToString(), CtrlSpeedOut.ToString(), e1.ToString(), e2.ToString(), Vf.ToString(), F2.ToString(), MotorSpd.ToString(), HUST_1_Demo.Form1.followLineID.ToString(),//多段直线ID戳 sTime.ToString() }); }
protected override void OnStartup(StartupEventArgs e) { // Get Reference to the current Process bool retV; theMutex = new Mutex(true, "Tempo-3e8c9b1f-7798-4c3c-be4f-f4a39c0d8eb1", out retV); if (!retV) { MessageBoxWrapper.Show("Темпо е стартирано!"); theMutex = null; Application.Current.Shutdown(); return; } // ******************************************************************* // TODO - Uncomment one of the lines of code that create a CultureInfo // in order to see the application run with localized text in the UI. // ******************************************************************* CultureInfo culture = new CultureInfo("bg-BG"); culture.NumberFormat.NumberDecimalSeparator = "."; var context = new TempoDataBaseContext(); Vf.SetFormaters(context.GetSettings("LV"), context.GetSettings("KURS"), context.GetSettings("VAL"), context.GetSettings("KOL")); // ITALIAN // ******************************************************************* // Thanks to Corrado Cavalli for translating this application's display // text to Italian, as spoken in Italy. // Corrado's blog: http://blogs.ugidotnet.org/corrado/Default.aspx // //culture = new CultureInfo("it-IT"); // FRENCH // ******************************************************************* // Thanks to Laurent Bugnion for translating this application's display // text to French, as spoken in Switzerland. // Laurent's blog: http://www.galasoft.ch/ // //culture = new CultureInfo("fr-CH"); // GERMAN // ******************************************************************* // Thanks to Marco Goertz , Microsoft Cider Team Senior Development Lead, // for translating this application's display text to German, as spoken in Germany. // //culture = new CultureInfo("de-DE"); Thread.CurrentThread.CurrentCulture = culture; Thread.CurrentThread.CurrentUICulture = culture; // Ensure the current culture passed into bindings is the OS culture. // By default, WPF uses en-US as the culture, regardless of the system settings. FrameworkElement.LanguageProperty.OverrideMetadata( typeof(FrameworkElement), new FrameworkPropertyMetadata( XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag))); // define application exception handler Application.Current.DispatcherUnhandledException += new DispatcherUnhandledExceptionEventHandler( AppDispatcherUnhandledException); EventManager.RegisterClassHandler(typeof(Window), Window.LoadedEvent, new RoutedEventHandler(WindowLoaded)); //EventManager.RegisterClassHandler(typeof(UserControl), UserControl.LoadedEvent, //new RoutedEventHandler(UserControlLoaded)); // defer other startup processing to base class EventManager.RegisterClassHandler(typeof(DatePicker), DatePicker.PreviewKeyDownEvent, new KeyEventHandler(DatePicker_PreviewKeyDown)); base.OnStartup(e); }