コード例 #1
0
        public override void TightlyCoupleGNSSAndIMU()
        {
            Log.INFO(string.Format("START Tightly couple"));

            Application app     = Application.FindProcess("wGpsIns");
            Window      mainWin = app.FindWindow(By.NameContains("Inertial Explorer"));

            mainWin.GetByIndex <ToolbarButton>(14).Click();

            Window tightWin = app.FindWindow("Process Tightly Coupled");

            //tightWin.Get<Button>("Advanced GNSS").Click();

            //Window GNSSetingDialog = Window.Find("TC GNSS Settings");
            //{
            //    GNSSetingDialog.GetByIndex<TabCtrl>(0).Select("Measurement");
            //    GNSSetingDialog.GetByIndex<Editor>(0).SetValue("2.00");
            //    GNSSetingDialog.Get<Button>("确定").Click();
            //}

            //tightWin.Get<Button>("Advanced IMU").Click();
            //Window IMUSetingDialog = tightWin.FindChildWindow("IMU Processing Settings");
            //{
            //    Thread.Sleep(1000);
            //    //IMUSetingDialog.GetByIndex<TabCtrl>(0).Select("Alignment");
            //    IMUSetingDialog.GetS<Button>("Options")[0].Click();

            //    Window AligmentDialog = Window.Find("Alignment Options");
            //    AligmentDialog.Get<Button>("Automated alignment").Click();



            //    AligmentDialog.Get<Button>("OK").Click();
            //    AligmentDialog.WaitExit();

            //    IMUSetingDialog.GetS<Button>("Options")[1].Click();
            //    AligmentDialog = Window.Find("Alignment Options");
            //    AligmentDialog.Get<Button>("Automated alignment").Click();
            //    AligmentDialog.Get<Button>("OK").Click();
            //    AligmentDialog.WaitExit();

            //    IMUSetingDialog.GetByIndex<TabCtrl>(0).Select("GNSS");
            //    IMUSetingDialog.GetByIndex<Editor>(0).SetValue("1.00");

            //    IMUSetingDialog.Get<Button>("确定").Click();
            //}

            tightWin.GetByIndex <Editor>(0).SetValue(config.LeverArmOffsetX);
            tightWin.GetByIndex <Editor>(1).SetValue(config.LeverArmOffsetY);
            tightWin.GetByIndex <Editor>(2).SetValue(config.LeverArmOffsetZ);

            tightWin.Get <Button>("Process").Click(0);
            Window processWin = app.FindWindow("Tightly Coupled Differential Preprocessing ...");

            processWin.WaitExit(5 * 60, () =>
            {
                ListView listView = processWin.TryGet <ListView>(0);
                if (listView != null && listView.itemCount != 0)
                {
                    string[] infos = listView.AllItem();
                    foreach (string info in infos)
                    {
                        Log.WARN("Tightly Coupled Differential Preprocessing report:" + info);
                    }

                    processWin.Get <Button>("Continue").Click();
                    processWin.WaitExit();
                }
            });

            Window childWin1 = app.FindWindow(By.NameContains("Processing GPS-IMU TC 1"));
            Window childWin2 = app.FindWindow(By.NameContains("Processing GPS-IMU TC 2"));

            childWin1.WaitExit(120 * 60);
            childWin2.WaitExit();

            Thread.Sleep(2000);

            mainWin.GetByIndex <ToolbarButton>(3).Click();
            Thread.Sleep(2000);

            Log.INFO(string.Format("SUCCESS Tightly couple"));
        }
コード例 #2
0
ファイル: CalcProcHad.cs プロジェクト: yxw027/AutoIECalc
        public override void DifferentialGNSS(string basestationFle, string GNSSFile)
        {
            Log.INFO(string.Format("START differential gnss"));

            processIE = Application.Launch(config.GetIE860ExePath());
            processIE.FindWindow("Version 8.60").WaitExit();

            Window dowloadWin = processIE.TryFindWindow("Download Manufacturer Files");

            if (dowloadWin != null)
            {
                dowloadWin.Get <Button>("Close").Click();
            }

            Window mainWin = processIE.FindWindow("Waypoint - Inertial Explorer 8.60");

            mainWin.GetByIndex <ToolbarButton>(1).Click();

            Window wizardWin = processIE.FindWindow("Project Wizard");

            wizardWin.Get <Button>("下一步(N) >").Click();
            Thread.Sleep(1000);

            wizardWin.Get <Button>("Create").Click();

            Window projectWin = processIE.FindWindow("Enter Project File");

            projectWin.GetByIndex <Editor>(0).SetValue(config.GetProjectCfgPath());
            projectWin.Get <Button>("保存(S)").Click();

            wizardWin.Get <Button>("下一步(N) >").Click();
            wizardWin.GetS <Button>("Browse")[0].Click();

            Window GNSSWin = processIE.FindWindow("Select GNSS File");

            GNSSWin.GetByIndex <Editor>(0).SetValue(GNSSFile);
            GNSSWin.GetByIndex <Editor>(0).GetValue();
            GNSSWin.Get <Button>("打开(O)").Click();
            GNSSWin.WaitExit();

            Thread.Sleep(1000);

            string value = wizardWin.GetByIndex <Editor>(0).GetValue();

            if (value.Length == 0)
            {
                throw new Exception("GNSS File path is NULL");
            }

            //wizardWin.Get<Button>("I have IMU data file in Waypoint (IMR) format").Click();
            wizardWin.GetS <Button>("Browse")[1].Click();

            Window IMUWin = processIE.FindWindow("Select IMU File (Waypoint Format)");

            IMUWin.GetByIndex <Editor>(0).SetValue(config.GetIMUFilePath());
            IMUWin.Get <Button>("打开(O)").Click();

            Thread.Sleep(1000);
            wizardWin.Get <Button>("下一步(N) >").Click();
            Window ConfirmWin = processIE.FindWindow("Add DMR File");

            ConfirmWin.Get <Button>("是(Y)").Click();
            wizardWin.Get <Button>("下一步(N) >").Click();
            wizardWin.Get <Button>("I would like to add base station data").Click();
            wizardWin.Get <Button>("下一步(N) >").Click();
            wizardWin.Get <ListBox>("Add Station from File").Click();
            wizardWin.Get <Button>("下一步(N) >").Click();

            Window childWin = processIE.FindWindow("Project Wizard");

            childWin.Get <Button>("Browse").Click();

            GNSSWin = processIE.FindWindow("Select GNSS File");
            GNSSWin.GetByIndex <Editor>(0).SetValue(basestationFle);
            GNSSWin.Get <Button>("打开(O)").Click();
            GNSSWin.WaitExit();

            Thread.Sleep(1000);

            childWin.Get <Button>("下一步(N) >").Click();
            childWin.GetByIndex <Editor>(2).SetValue(config.Lat[0]);
            childWin.GetByIndex <Editor>(3).SetValue(config.Lat[1]);
            childWin.GetByIndex <Editor>(4).SetValue(config.Lat[2]);

            childWin.GetByIndex <Editor>(5).SetValue(config.Lon[0]);
            childWin.GetByIndex <Editor>(6).SetValue(config.Lon[1]);
            childWin.GetByIndex <Editor>(7).SetValue(config.Lon[2]);

            childWin.GetByIndex <Editor>(8).SetValue(config.BasetStationHeight);

            childWin.GetByIndex <ComboBox>(4).Select("Generic");
            childWin.GetByIndex <Editor>(10).SetValue(config.AntennaMeasureHeight);

            if (config.SlantMeasure != "" || config.RadiusGround != "" || config.OffsetARP2Ground != "")
            {
                childWin.Get <Button>("Compute From Slant").Click();
                Window computeWin = processIE.FindWindow("Compute From Slant Height");
                {
                    computeWin.GetByIndex <Editor>(0).SetValue(config.SlantMeasure);
                    computeWin.GetByIndex <Editor>(1).SetValue(config.RadiusGround);
                    computeWin.GetByIndex <Editor>(2).SetValue(config.OffsetARP2Ground);
                    computeWin.Get <Button>("OK").Click();
                    computeWin.WaitExit();
                }
            }

            childWin.Get <Button>("下一步(N) >").Click();

            wizardWin.Get <ListBox>("Finish").Click();

            wizardWin.Get <Button>("下一步(N) >").Click();
            //wizardWin.Get<Button>("下一步(N) >").Click();
            wizardWin.Get <Button>("完成").Click();

            mainWin.GetByIndex <ToolbarButton>(11).Click();
            Window processWin = processIE.FindWindow("Process GNSS");

            processWin.Get <Button>("Process").Click(0);

            try
            {
                Window pppWin = processIE.FindWindow("Differential GNSS Preprocessing ...");
                processWin.WaitExit(5 * 60, () =>
                {
                    ListView listView = processWin.TryGet <ListView>(0);
                    if (listView != null && listView.itemCount != 0)
                    {
                        string[] infos = listView.AllItem();
                        foreach (string info in infos)
                        {
                            Log.WARN("Differential GNSS Preprocessing report:" + info);
                        }

                        processWin.Get <Button>("Continue").Click();
                        processWin.WaitExit();
                    }
                });
            }
            catch (ArgumentException e)
            {
            }


            Window processWin1 = processIE.FindWindow(By.NameContains("Processing Differential GPS 1"));
            Window processWin2 = processIE.FindWindow(By.NameContains("Processing Differential GPS 2"));

            processWin1.WaitExit();
            processWin2.WaitExit();

            Log.INFO(string.Format("SUCCESS differential gnss"));
        }
コード例 #3
0
        public override void DifferentialGNSS(string basestationFle, string GNSSFile)
        {
            Log.INFO(string.Format("START differential gnss"));

            processIE = Application.Launch(config.GetIE860ExePath());
            processIE.FindWindow("Version 8.60").WaitExit();


            Window dowloadWin = processIE.TryFindWindow("Download Manufacturer Files");

            if (dowloadWin != null)
            {
                dowloadWin.Get <Button>("Close").Click();
            }

            Window mainWin = processIE.FindWindow("Waypoint - Inertial Explorer 8.60");

            mainWin.GetByIndex <ToolbarButton>(1).Click();

            Window wizardWin = processIE.FindWindow("Project Wizard");

            while (true)
            {
                var button = wizardWin.Get <Button>("下一步(N) >");
                button.Click();
                Thread.Sleep(5000);

                try
                {
                    wizardWin.Get <Button>("Create");
                    break;
                }
                catch (Exception e)
                {
                }
            }


            wizardWin.Get <Button>("Create").Click();

            Window projectWin = processIE.FindWindow("Enter Project File");

            projectWin.GetByIndex <Editor>(0).SetValue(config.GetProjectCfgPath());
            projectWin.Get <Button>("保存(S)").Click();

            wizardWin.Get <Button>("下一步(N) >").Click();
            wizardWin.GetS <Button>("Browse")[0].Click();

            Window GNSSWin = processIE.FindWindow("Select GNSS File");

            GNSSWin.GetByIndex <Editor>(0).SetValue(GNSSFile);
            GNSSWin.GetByIndex <Editor>(0).GetValue();
            GNSSWin.Get <Button>("打开(O)").Click();

            Thread.Sleep(1000);

            string value = wizardWin.GetByIndex <Editor>(0).GetValue();

            if (value.Length == 0)
            {
                throw new Exception("GNSS File path is NULL");
            }

            wizardWin.Get <Button>("I have IMU data file in Waypoint (IMR) format").Click();
            wizardWin.GetS <Button>("Browse")[1].Click();

            Window IMUWin = processIE.FindWindow("Select IMU File (Waypoint Format)");

            IMUWin.GetByIndex <Editor>(0).SetValue(config.GetIMUFilePath());
            IMUWin.Get <Button>("打开(O)").Click();

            Thread.Sleep(1000);

            wizardWin.Get <Button>("下一步(N) >").Click();
            Window ConfirmWin = processIE.FindWindow(By.NameContains("Add"));

            ConfirmWin.Get <Button>("是(Y)").Click();

            wizardWin.Get <Button>("下一步(N) >").Click();
            wizardWin.Get <Button>("I would like to add base station data").Click();
            wizardWin.Get <Button>("下一步(N) >").Click();
            wizardWin.Get <ListBox>("Add Station from File").Click();
            wizardWin.Get <Button>("下一步(N) >").Click();

            Window childWin = processIE.FindWindow("Project Wizard");

            childWin.Get <Button>("Browse").Click();

            GNSSWin = processIE.FindWindow("Select GNSS File");
            GNSSWin.GetByIndex <Editor>(0).SetValue(basestationFle);

            GNSSWin.Get <Button>("打开(O)").Click();

            Thread.Sleep(3000);

            childWin.Get <Button>("下一步(N) >").Click();

            Thread.Sleep(10 * 1000);

            //Window errorWin1 = processIE.TryFindWindow("Error");
            //if (errorWin1 != null)
            //{
            //    errorWin1.Get<Button>("确定").Click();
            //    errorWin1.WaitExit();
            //}


            Action <Window> actionNomarl = (Window masterStationWin) =>
            {
                masterStationWin.GetByIndex <Editor>(2).SetValue(config.Lat[0]);
                masterStationWin.GetByIndex <Editor>(3).SetValue(config.Lat[1]);
                masterStationWin.GetByIndex <Editor>(4).SetValue(config.Lat[2]);

                masterStationWin.GetByIndex <Editor>(5).SetValue(config.Lon[0]);
                masterStationWin.GetByIndex <Editor>(6).SetValue(config.Lon[1]);
                masterStationWin.GetByIndex <Editor>(7).SetValue(config.Lon[2]);

                masterStationWin.GetByIndex <Editor>(8).SetValue(config.BasetStationHeight);
                masterStationWin.GetByIndex <Editor>(10).SetValue(config.AntennaMeasureHeight);

                masterStationWin.GetByIndex <ComboBox>(4).Select("Generic");

                Thread.Sleep(1000);
            };

            Action <Window> actionException = (Window errorWin) =>
            {
                string desc = errorWin.GetByIndex <StaticText>(0).GetValue();
                if (!desc.Contains("No antenna with the name"))
                {
                    throw new Exception(desc);
                }

                Log.WARN("Record message:" + desc);

                errorWin.Get <Button>("确定").Click();
                Window masterStationWin = processIE.FindWindow("Master Station Position");
                actionNomarl(masterStationWin);
            };

            Thread.Sleep(3000);
            processIE.FindChildWindow("Master Station Position",
                                      actionNomarl,

                                      "Error",
                                      actionException);

            childWin.Get <Button>("下一步(N) >").Click();

            wizardWin.Get <ListBox>("Finish").Click();

            wizardWin.Get <Button>("下一步(N) >").Click();
            //wizardWin.Get<Button>("下一步(N) >").Click();
            wizardWin.Get <Button>("完成").Click();

            mainWin.GetByIndex <ToolbarButton>(11).Click();
            Window processWin = processIE.FindWindow("Process GNSS");

            processWin.Get <Button>("Process").Click(0);

            processWin = processIE.FindWindow("Differential GNSS Preprocessing ...");
            processWin.WaitExit(5 * 60, () =>
            {
                ListView listView = processWin.TryGet <ListView>(0);
                if (listView != null && listView.itemCount != 0)
                {
                    string[] infos = listView.AllItem();
                    foreach (string info in infos)
                    {
                        Log.WARN("Differential GNSS Preprocessing report:" + info);
                    }

                    processWin.Get <Button>("Continue").Click();
                    processWin.WaitExit();
                }
            });

            Window processWin1 = processIE.FindWindow(By.NameContains("Processing Differential GPS 1"));
            Window processWin2 = processIE.FindWindow(By.NameContains("Processing Differential GPS 2"));

            processWin1.WaitExit(20 * 60);
            processWin2.WaitExit();

            Log.INFO(string.Format("SUCCESS differential gnss"));
        }