Beispiel #1
0
        public static void Main()
        {
            ILogger logger = new MqttLogger();

            GpioController gpioController;

            try {
                gpioController = new GpioController();
                logger.Warn("IO Enabled.");
            } catch (NotSupportedException) {
                gpioController = null;
                logger.Warn("No GPIO. IO Disabled");
            }

            IFileSystem fileSystem = new FileSystem();
            RobotConfig configs    = RobotConfig.LoadFile(Internal.CONFIG_FILE_NAME, fileSystem, m => logger.Info(m)).GetAwaiter().GetResult();

            logger.MinLevel = CalculateLoggingLevelFromConfigs(configs, LoggingLevel.INFO);
            logger.Info($"Set logging level to {logger.MinLevel}");

            Robot robot = Robot.CreateInstance(gpioController, configs, logger);

            robot.Initialize().Wait();

            logger.Info("EllieBot is Fully Operational.");

            Console.WriteLine("EllieBot is Operational and Nominal.");
            Console.WriteLine("Press any key to exit");
            Console.ReadLine();
        }
Beispiel #2
0
 private Robot(ICommandProcessor cmdProcessor, GpioController controller, RobotConfig configs, ILogger logger)
 {
     this.CommandProcessor = cmdProcessor;
     this.Configuration    = configs;
     this.Logger           = logger;
     this.GpioController   = controller;
 }
Beispiel #3
0
        private void UpdateConfigControls(RobotConfig config)
        {
            connectionPort.Text = config.Port.ToString();

            workspaceLowerX.Text = config.Limits.LowerWorkspacePoint.X.ToString();
            workspaceLowerY.Text = config.Limits.LowerWorkspacePoint.Y.ToString();
            workspaceLowerZ.Text = config.Limits.LowerWorkspacePoint.Z.ToString();

            workspaceUpperX.Text = config.Limits.UpperWorkspacePoint.X.ToString();
            workspaceUpperY.Text = config.Limits.UpperWorkspacePoint.Y.ToString();
            workspaceUpperZ.Text = config.Limits.UpperWorkspacePoint.Z.ToString();

            a1LowerLimit.Text = config.Limits.A1AxisLimit.Min.ToString();
            a1UpperLimit.Text = config.Limits.A1AxisLimit.Max.ToString();

            a2LowerLimit.Text = config.Limits.A2AxisLimit.Min.ToString();
            a2UpperLimit.Text = config.Limits.A2AxisLimit.Max.ToString();

            a3LowerLimit.Text = config.Limits.A3AxisLimit.Min.ToString();
            a3UpperLimit.Text = config.Limits.A3AxisLimit.Max.ToString();

            a4LowerLimit.Text = config.Limits.A4AxisLimit.Min.ToString();
            a4UpperLimit.Text = config.Limits.A4AxisLimit.Max.ToString();

            a5LowerLimit.Text = config.Limits.A5AxisLimit.Min.ToString();
            a5UpperLimit.Text = config.Limits.A5AxisLimit.Max.ToString();

            a6LowerLimit.Text = config.Limits.A6AxisLimit.Min.ToString();
            a6UpperLimit.Text = config.Limits.A6AxisLimit.Max.ToString();

            correctionLimitXYZ.Text = config.Limits.CorrectionLimit.XYZ.ToString();
            correctionLimitABC.Text = config.Limits.CorrectionLimit.ABC.ToString();

            velocityLimitXYZ.Text = config.Limits.VelocityLimit.XYZ.ToString();
            velocityLimitABC.Text = config.Limits.VelocityLimit.ABC.ToString();

            accelerationLimitXYZ.Text = config.Limits.AccelerationLimit.XYZ.ToString();
            accelerationLimitABC.Text = config.Limits.AccelerationLimit.ABC.ToString();

            t00.Text = config.Transformation[0, 0].ToString("F3");
            t01.Text = config.Transformation[0, 1].ToString("F3");
            t02.Text = config.Transformation[0, 2].ToString("F3");
            t03.Text = config.Transformation[0, 3].ToString("F3");

            t10.Text = config.Transformation[1, 0].ToString("F3");
            t11.Text = config.Transformation[1, 1].ToString("F3");
            t12.Text = config.Transformation[1, 2].ToString("F3");
            t13.Text = config.Transformation[1, 3].ToString("F3");

            t20.Text = config.Transformation[2, 0].ToString("F3");
            t21.Text = config.Transformation[2, 1].ToString("F3");
            t22.Text = config.Transformation[2, 2].ToString("F3");
            t23.Text = config.Transformation[2, 3].ToString("F3");

            t30.Text = config.Transformation[3, 0].ToString("F3");
            t31.Text = config.Transformation[3, 1].ToString("F3");
            t32.Text = config.Transformation[3, 2].ToString("F3");
            t33.Text = config.Transformation[3, 3].ToString("F3");
        }
Beispiel #4
0
        public void LoadConfig(string configFile)
        {
            string      jsonString = File.ReadAllText(configFile);
            RobotConfig config     = new RobotConfig(jsonString);

            Robot.Config = config;
            UpdateConfigControls(config);
        }
Beispiel #5
0
        internal static Robot CreateInstance(GpioController gpioController, RobotConfig configs, ILogger logger)
        {
            if (Instance != null)
            {
                return(Instance);
            }

            ICommandProcessor commandProcessor = new CommandProcessor(logger);

            Instance = new Robot(commandProcessor, gpioController, configs, logger);
            return(Instance);
        }
    void Start()
    {
        configOptions = new RobotConfig();
        if (configOptions.valid) {
            Debug.Log ("Options initialised ok");
            Network.init();

            headProps = new Property();

            //variables
            int rate = 100;
            int[] jntPosMax = new int[]{30,60,55,15,52,90};
            int[] jntPosMin = new int[]{-40,-70,-55,-35,-50,0};
            int[] error_tol = new int[]{1, 1, 1, 1, 1, 1};
            int Type = 3;
            int TotalJoints = 6;
            int[] axisMap = new int[]{0, 1, 2, 3, 4, 5};
            double Vel = 20.0;
            double[] Zeros = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
            double[] Encoder = new double[]{0.017453, 0.017453, 0.017453, 0.017453, 0.017453, 0.017453};
            string partName = "/head";
            string device = "controlboardwrapper2";
            string subdevice = "simulationcontrol";

            //formatting variables into string
            string properties = "(ENDINI) (rate " + rate + ") (LIMITS (jntPosMax";
            properties += arrToStr(jntPosMax);
            properties += ") (jntPosMin";
            properties += arrToStr(jntPosMin);
            properties +=") (error_tol";
            properties += arrToStr(error_tol);
            properties += ")) (GENERAL (Type " + Type;
            properties += ") (TotalJoints " + TotalJoints;
            properties += ") (AxisMap" + arrToStr(axisMap);
            properties += ") (Vel " + formatDouble(Vel);
            properties += ") (Zeros" + arrToStr(Zeros);
            properties += ") (Encoder";
            properties += arrToStr(Encoder);
            properties += ")) (name " + partName + ") (device "+ device;
            properties += ") (subdevice "+ subdevice +")";
            Debug.Log(properties);
            //initialise properties class with string
            headProps.fromString(properties);

        }
        else
        {
            Debug.Log("Configuration failed.");
        }
    }
Beispiel #7
0
        private static void Main(string[] args)
        {
            RobotConfig config = LoadConfig("./config.json");
            GRPCServer  server = config.GrpcServer;

            Channel channel = new Channel(String.Format("{0}:{1}", server.Host, server.Port)
                                          , ChannelCredentials.Insecure);
            var client = new QQBotClient(new ChatBotHub.ChatBotHubClient(channel));

            client.ListenTunnel().Wait();


            channel.ShutdownAsync().Wait();
            Console.WriteLine("Tunnel stopped; program exit.");
        }
        public bool OsInitialization()
        {
            try
            {
                _robotConfig = _robotSettings.GetEnviromentSettings();
                if (_robotConfig == null || _robotConfig.MatrixSize == null || _robotConfig.Position == null)
                {
                    _log.Message(LogLevel.Warn, "Default settings will be applied, Config Settings read error");

                    _robotConfig = RobotConstantsValues.RobotDefaultCongifs;
                }

                Console.WriteLine($"Robot {_robotConfig.Name} settings read finish!");
                Console.WriteLine($"Start position :---> [{ _robotConfig.Position.X}:{ _robotConfig.Position.Y}:{ _robotConfig.Position.Direction}]");
                Console.WriteLine($"Matrix settings :---> [{ _robotConfig.MatrixSize.Max_X_Value}:{ _robotConfig.MatrixSize.Max_Y_Value}]");

                RobotCommand command = new RobotCommand
                {
                    QueueId         = 0,
                    Type            = RobotCommandType.Initialization,
                    CurentDirection = _robotConfig.Position.Direction,
                    MoveTo          = new Position
                    {
                        X = _robotConfig.Position.X,
                        Y = _robotConfig.Position.Y,
                    }
                };

                var cmdResult = _robotStateMachine.Build(RobotCommandType.Initialization).ProcessState(command, _robotConfig.MatrixSize);

                if (cmdResult.isSuccess && cmdResult.stateResponse != null && cmdResult.stateResponse.CurrentPosition != null)
                {
                    _currentPosition = cmdResult.stateResponse.CurrentPosition;
                }

                _log.Message(LogLevel.Info, cmdResult.isSuccess ? $"{RobotCommandType.Initialization} Success" : $"{RobotCommandType.Initialization} Failure");

                return(cmdResult.isSuccess);
            }
            catch (Exception ex)
            {
                Console.WriteLine(RobotConstantsValues.CriticalErrorOccuredMissionWillNotContinue);
                _log.Exception(ex);
                return(false);
            }
        }
        public void MainRobotService_OsInitialization_Failure_When_RobotStateMachine_InitFailure_Result_False()
        {
            //Arrange
            RobotConfig config = new RobotConfig
            {
                Position   = new RobotPosition(),
                MatrixSize = new MatrixSize()
            };

            _robotSettingsMock.Setup(x => x.GetEnviromentSettings()).Returns(config);
            _robotStateMachineMock.Setup(x => x.Build(It.IsAny <RobotCommandType>()).ProcessState(It.IsAny <RobotCommand>(), It.IsAny <MatrixSize>())).Returns(DemoResult(false, false));

            //Act
            bool result = _mainRobotService.OsInitialization();

            //Arrange
            Assert.False(result);
        }
Beispiel #10
0
        private void SaveConfig(object sender, RoutedEventArgs e)
        {
            RobotConfig config = CreateConfigurationFromFields();

            var saveFileDialog = new Microsoft.Win32.SaveFileDialog {
                InitialDirectory = Path.Combine(Directory.GetCurrentDirectory(), App.ConfigDir),
                CheckPathExists  = true,
                FilterIndex      = 2,
                Title            = "Save configuration file",
                DefaultExt       = "json",
                Filter           = "JSON files |*.json",
                FileName         = "robot.config.json"
            };

            if (saveFileDialog.ShowDialog() == true && saveFileDialog.FileName != "")
            {
                File.WriteAllText(saveFileDialog.FileName, config.ToJsonString());
            }
        }
Beispiel #11
0
        public void Close(JaguarCtrl jc, RobotConfig robotCfg, string configFile)
        {
            double centerLat  = double.Parse(centerLatitude);
            double centerLong = double.Parse(centerLongitude);

            try
            {
                centerLat = double.Parse(jc.txtStartLat.Text);
            }
            catch
            {
            }
            try
            {
                centerLong = double.Parse(jc.txtStartLong.Text);
            }
            catch
            {
            }

            jc.jaguarSetting.GoogleEarthStartLat  = centerLat;
            jc.jaguarSetting.GoogleEarthStartLong = centerLong;
            try
            {
                robotCfg.WriteXml(configFile);
            }
            catch
            {
            }
            try
            {
                PostMessage(googleEarth.GetMainHwnd(), WM_QUIT, 0, 0);
            }
            catch
            {
            }
        }
Beispiel #12
0
        private void LoadConfig(object sender, RoutedEventArgs e)
        {
            var openFileDialog = new Microsoft.Win32.OpenFileDialog {
                InitialDirectory = Path.Combine(Directory.GetCurrentDirectory(), App.ConfigDir),
                Title            = "Select configuration file",
                CheckFileExists  = true,
                CheckPathExists  = true,
                DefaultExt       = "json",
                Filter           = "JSON files |*.json",
                FilterIndex      = 2,
                ReadOnlyChecked  = true,
                ShowReadOnly     = true,
                Multiselect      = false
            };

            if (openFileDialog.ShowDialog() == true)
            {
                Stream       fileStream;
                StreamReader streamReader;

                try {
                    if ((fileStream = openFileDialog.OpenFile()) != null)
                    {
                        using (fileStream)
                            using (streamReader = new StreamReader(fileStream)) {
                                string      jsonString = streamReader.ReadToEnd();
                                RobotConfig config     = new RobotConfig(jsonString);
                                Robot.Config = config;

                                UpdateConfigControls(config);
                            }
                    }
                } catch (Exception ex) {
                    MainWindow.ShowErrorDialog("Could not load configuration file.", ex);
                }
            }
        }
        public void MainRobotService_OsInitialization_Failure_When_GetEnviromentNullOrSomethingIsWrong_Result_False(TestOptions exceptionOption)
        {
            //Arrange

            RobotConfig config = new RobotConfig
            {
                Position   = new RobotPosition(),
                MatrixSize = new MatrixSize()
            };

            switch (exceptionOption)
            {
            case TestOptions.NULL_RETURN:
                _robotSettingsMock.Setup(x => x.GetEnviromentSettings()).Returns((RobotConfig)null);
                break;

            case TestOptions.THROWS_EXCEPTION:
                _robotSettingsMock.Setup(x => x.GetEnviromentSettings()).Throws <Exception>();
                break;

            case TestOptions.NULL_Config_MatrixSize:
                config.MatrixSize = null;
                _robotSettingsMock.Setup(x => x.GetEnviromentSettings()).Returns(config);
                break;

            case TestOptions.NULL_Config_Position:
                _robotSettingsMock.Setup(x => x.GetEnviromentSettings()).Returns(config);
                config.Position = null;
                break;
            }

            //Act
            bool result = _mainRobotService.OsInitialization();

            //Arrange
            Assert.False(result);
        }
        public JaguarCtrl()
        {
            simulatedJaguar = new AxDDrRobotSentinel_Simulator();
            navigation = new Navigation(this);
            drRobotConnect = new DrRobotRobotConnection(this);
            drRobotConnect.connectRobot();
            robotCfg = drRobotConnect.robotConfig;
            jaguarSetting = (RobotConfig.RobotConfigTableRow)robotCfg.RobotConfigTable.Rows[0];
            InitializeComponent();

            // Setup graphics for simulation
            SetStyle(ControlStyles.OptimizedDoubleBuffer, false);
            this.Paint += new System.Windows.Forms.PaintEventHandler(this.JaguarCtrl_Paint);
            panelGE.Visible = false;
            mapResolution = trackBarZoom.Value * zoomConstant;

            // Start Simulated Sensor Update Thread
            runSensorThread = true;
            sensorThread = new Thread(runSensorLoop);
            sensorThread.Start();
        }
    public iCubLogicalJoints(RobotConfig config)
    {
        simControl = new OdeLogicalJoint[MAX_PART,MAX_AXIS];
        int head = PART_HEAD;
        int rawHead = PART_HEAD_RAW;
        OdeLogicalJoint[] sub;
        if (config.actHead){
            string headName = "head";
            // for (int i=0; i<4; i++) {
            getController(head,0).init(headName,"hinge",0,+1, config);
            getController(head,1).init(headName,"hinge",1,-1, config);
            getController(head,2).init(headName,"hinge",2,-1, config);
            getController(head,3).init(headName,"hinge",3,+1, config);
            // }
            // for the eyes, we need to map vergence/version onto
            // individual hinge joints
            getController(rawHead,4).init(headName,"hinge",4,-1, config);
            getController(rawHead,5).init(headName,"hinge",5,+1, config);

            getController(head,4).init(getController(rawHead,4),
                                       getController(rawHead,5),
                                       getController(head,5),
                                       +1);
            getController(head,5).init(getController(rawHead,4),
                                       getController(rawHead,5),
                                       getController(head,4),
                                       -1);
            ////////////////////////////////////////////////////////////
            // Setting up the left and right arms

            for (int arm = PART_ARM_LEFT; arm <= PART_ARM_RIGHT; arm++) {
                string armName = (arm==PART_ARM_LEFT)?"leftarm":"rightarm";

                if (arm == PART_ARM_RIGHT && config.actRArm){
                    getController(arm,0).init(armName,"hinge",0,-1, config);
                    getController(arm,1).init(armName,"hinge",1,+1, config);
                    getController(arm,2).init(armName,"hinge",2,-1, config);
                    getController(arm,3).init(armName,"hinge",3,+1, config);
                    getController(arm,4).init(armName,"hinge",4,-1, config);
                    getController(arm,5).init(armName,"universalAngle1",5,-1, config);
                    getController(arm,6).init(armName,"universalAngle2",5,-1, config);
                }

                if (arm == PART_ARM_LEFT && config.actLArm){
                    getController(arm,0).init(armName,"hinge",0,-1, config);
                    getController(arm,1).init(armName,"hinge",1,-1, config);
                    getController(arm,2).init(armName,"hinge",2,+1, config);
                    getController(arm,3).init(armName,"hinge",3,+1, config);
                    getController(arm,4).init(armName,"hinge",4,+1, config);
                    getController(arm,5).init(armName,"universalAngle1",5,+1, config);
                    getController(arm,6).init(armName,"universalAngle2",5,-1, config);

                }
                if (arm == PART_ARM_RIGHT && config.actRHand){
                    getController(arm,7).init(armName,"hinge",6,+1, config);
                    sub = null;
                    sub = getController(arm,7).nest(1);
                    sub[0].init(armName,"hinge",8,-1, config);

                    getController(arm,8).init(armName,"universalAngle1",22,-1, config);//thumb
                    getController(arm,9).init(armName,"universalAngle2",22,-1, config);//thumb

                    getController(arm,10).init(armName,"hinge",23,-1, config);
                    sub = null;
                    sub = getController(arm,10).nest(1);
                    sub[0].init(armName,"hinge",24,-1, config);

                    getController(arm,11).init(armName,"hinge",10,-1, config);//index proximal
                    getController(arm,12).init(armName,"hinge",14,-1, config);
                    sub = null;
                    sub = getController(arm,12).nest(1);
                    sub[0].init(armName,"hinge",18,-1, config);

                    getController(arm,13).init(armName,"hinge",11,-1, config);//middle finger
                    getController(arm,14).init(armName,"hinge",15,-1, config);
                    sub = null;
                    sub = getController(arm,14).nest(1);
                    sub[0].init(armName,"hinge",19,-1, config);

                    getController(arm,15).init(armName,"hinge",12,-1, config);//ring + pinky
                    sub = null;
                    sub = getController(arm,15).nest(2);
                    sub[0].init(armName,"hinge",16,-1, config);
                    sub[1].init(armName,"hinge",20,-1, config);
                }
                if (arm == PART_ARM_LEFT && config.actLHand ){
                    getController(arm,7).init(armName,"hinge",6,+1, config);
                    sub = null;
                    sub = getController(arm,7).nest(1);
                    sub[0].init(armName,"hinge",8,-1, config);

                    /*getController(arm,8).init(armName,"hinge",22,+1);//thumb
              getController(arm,9).init(armName,"hinge",23,+1);
              getController(arm,10).init(armName,"hinge",24,+1);
            */
                    getController(arm,8).init(armName,"universalAngle1",22,+1, config);//thumb
                    getController(arm,9).init(armName,"universalAngle2",22,-1, config);//thumb

                    getController(arm,10).init(armName,"hinge",23,+1, config);
                    sub = null;
                    sub = getController(arm,10).nest(1);
                    sub[0].init(armName,"hinge",24,+1, config);

                    getController(arm,11).init(armName,"hinge",10,+1, config);//index proximal
                    getController(arm,12).init(armName,"hinge",14,+1, config);
                    sub = null;
                    sub = getController(arm,12).nest(1);
                    sub[0].init(armName,"hinge",18,+1, config);

                    getController(arm,13).init(armName,"hinge",11,+1, config);//middle finger
                    getController(arm,14).init(armName,"hinge",15,+1, config);
                    sub = null;
                    sub = getController(arm,14).nest(1);
                    sub[0].init(armName,"hinge",19,+1, config);

                    getController(arm,15).init(armName,"hinge",12,+1, config);//ring + pinky
                    sub = null;
                    sub = getController(arm,15).nest(2);
                    sub[0].init(armName,"hinge",16,+1, config);
                    sub[1].init(armName,"hinge",20,+1, config);
                }
            }

            if (config.actLegs){
                for (int leg = PART_LEG_LEFT; leg <= PART_LEG_RIGHT; leg++) {
                    string legName = (leg==PART_LEG_LEFT)?"leftleg":"rightleg";
                    //       changed for demo look below for previous joint setup
                    if (leg == PART_LEG_RIGHT){
                        getController(leg,0).init(legName,"hinge",5,-1, config);
                        getController(leg,1).init(legName,"hinge",4,-1, config);
                        getController(leg,2).init(legName,"hinge",3,-1, config);
                        getController(leg,3).init(legName,"hinge",2,-1, config);
                        getController(leg,4).init(legName,"hinge",1,+1, config);
                        getController(leg,5).init(legName,"hinge",0,-1, config);
                    }else{
                        getController(leg,0).init(legName,"hinge",5,-1, config);
                        getController(leg,1).init(legName,"hinge",4,+1, config);
                        getController(leg,2).init(legName,"hinge",3,+1, config);
                        getController(leg,3).init(legName,"hinge",2,-1, config);
                        getController(leg,4).init(legName,"hinge",1,+1, config);
                        getController(leg,5).init(legName,"hinge",0,+1, config);
                    }
                }
            }

            if (config.actTorso){
                int torso = PART_TORSO;
                string torsoName = "torso";
                getController(torso,0).init(torsoName,"hinge",2,+1, config);
                getController(torso,1).init(torsoName,"hinge",1,+1, config);
                getController(torso,2).init(torsoName,"hinge",0,-1, config);
            }
        }
        initialised = true;;
    }
Beispiel #16
0
 static void Main(string[] args)
 {
     RunLocal = AppContext.BaseDirectory;
     logs     = new Logs(RunLocal);
     Reload();
     if (ConfigUtils.Config.RunQQ == 0 || ConfigUtils.Config.RunGroup.Count == 0)
     {
         Console.WriteLine("运行QQ和运行群未设置,请设置后重启");
         Console.Read();
         return;
     }
     RobotConfig = new()
     {
         IP          = ConfigUtils.Config.IP,
         Port        = ConfigUtils.Config.Port,
         Name        = "BotBiliBili",
         Pack        = new() { 49 },
         RunQQ       = ConfigUtils.Config.RunQQ,
         Time        = 10000,
         CallAction  = Message,
         LogAction   = Log,
         StateAction = State
     };
     robot = new();
     robot.Set(RobotConfig);
     robot.Start();
     CheckThread.Start();
     while (true)
     {
         string   temp = Console.ReadLine();
         string[] arg  = temp.Split(' ');
         if (arg[0] == "stop")
         {
             CheckThread.Stop();
             HttpUtils.Cancel();
             robot.Stop();
             return;
         }
         else if (arg[0] == "test")
         {
             if (arg.Length < 2)
             {
                 Error("错误的参数");
                 continue;
             }
             if (arg[1] == "video")
             {
                 if (arg.Length != 3)
                 {
                     Error("错误的参数");
                     continue;
                 }
                 if (arg[2].StartsWith("AV"))
                 {
                     var data = HttpUtils.GetVideoA(arg[2]);
                     VideoPicGen.Gen(data);
                     Log("已生成");
                 }
                 else if (arg[2].StartsWith("BV"))
                 {
                     var data = HttpUtils.GetVideoB(arg[2]);
                     VideoPicGen.Gen(data);
                     Log("已生成");
                 }
                 else
                 {
                     Error("不正确的视频号");
                     continue;
                 }
             }
             else if (arg[1] == "dynamic")
             {
                 if (arg.Length != 3)
                 {
                     Error("错误的参数");
                     continue;
                 }
                 var data = HttpUtils.GetDynamic(arg[2]);
                 DynamicPicGen.Gen(data);
                 Log("已生成");
             }
             else if (arg[1] == "duser")
             {
                 if (arg.Length != 3)
                 {
                     Error("错误的参数");
                     continue;
                 }
                 var data = HttpUtils.GetDynamicUid(arg[2]);
                 DynamicPicGen.Gen(data);
                 Log("已生成");
             }
             else if (arg[1] == "live")
             {
                 if (arg.Length != 3)
                 {
                     Error("错误的参数");
                     continue;
                 }
                 var data = HttpUtils.GetLive(arg[2]);
                 LivePicGen.Gen(data);
                 Log("已生成");
             }
             else if (arg[1] == "nuser")
             {
                 if (arg.Length != 3)
                 {
                     Error("错误的参数");
                     continue;
                 }
                 var data1 = HttpUtils.SearchUser(arg[2]);
                 if (data1 == null)
                 {
                     Error($"搜索不到用户:{arg[2]}");
                     return;
                 }
                 var data2 = data1["data"]["result"] as JArray;
                 if (data2.Count == 0)
                 {
                     Error($"搜索:{arg[2]} 没有结果");
                     return;
                 }
                 string id = data2[0]["mid"].ToString();
                 data1 = HttpUtils.GetDynamicUid(id);
                 if (data1 == null)
                 {
                     Error($"获取不到动态:{id}");
                     return;
                 }
                 string temp1 = DynamicPicGen.Gen(data1);
                 Program.Log($"已生成{temp1}");
             }
         }
         else if (arg[0] == "reload")
         {
             Reload();
             Log("已重读");
         }
     }
 }
Beispiel #17
0
 private static LoggingLevel CalculateLoggingLevelFromConfigs(RobotConfig configs, LoggingLevel fallbackLoggingLevel = LoggingLevel.INFO)
 {
     return(configs == null || string.IsNullOrWhiteSpace(configs.DebuggingLevel) || !Enum.TryParse(configs.DebuggingLevel, out LoggingLevel configLoggingLevel)
         ? fallbackLoggingLevel
         : configLoggingLevel);
 }
Beispiel #18
0
        public void Close(JaguarCtrl jc, RobotConfig robotCfg, string configFile)
        {
            double centerLat = double.Parse(centerLatitude);
            double centerLong = double.Parse(centerLongitude);
            try
            {
                centerLat = double.Parse(jc.txtStartLat.Text);
            }
            catch
            {
            }
            try
            {
                centerLong = double.Parse(jc.txtStartLong.Text);
            }
            catch
            {
            }

            jc.jaguarSetting.GoogleEarthStartLat = centerLat;
            jc.jaguarSetting.GoogleEarthStartLong = centerLong;
            try
            {
                robotCfg.WriteXml(configFile);
            }
            catch
            {
            }
            try
            {
                PostMessage(googleEarth.GetMainHwnd(), WM_QUIT, 0, 0);
            }
            catch
            {
            }

        }
Beispiel #19
0
 /////////////////////////////////////////////////////////////////
 
 #region form funtion
 public JaguarCtrl(DrRobotRobotConnection form, RobotConfig robotConfig)
 {
     drRobotConnect = form;
     robotCfg = robotConfig;
     jaguarSetting = (RobotConfig.RobotConfigTableRow)robotCfg.RobotConfigTable.Rows[0];
     InitializeComponent();
 }
 /**
  * Initialize a regular control unit.
  */
 public void init(string unit, string type, int index, int sign, RobotConfig conf)
 {
     //initialise parameters for particular joint type, name and index
     this.number = index;
     this.type = type;
     this.unit = unit;
     this.dryFriction = conf.motorDryFriction;
     this.maxTorque = conf.motorMaxTorque;
     this.sign = sign;
 }