Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
 /// <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() });
 }
Esempio n. 4
0
        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);
        }