Ejemplo n.º 1
0
        private void OnGUI()
        {
            GUILayout.Label("Message Generator (Simple Message)", EditorStyles.boldLabel);

            EditorGUILayout.BeginHorizontal();
            messageName = EditorGUILayout.TextField("Message Name", messageName);
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            rosPackageName = EditorGUILayout.TextField("ROS Package Name", rosPackageName);
            EditorGUILayout.EndHorizontal();


            EditorGUILayout.BeginHorizontal();
            ScriptableObject target = this;

            serializedObject = new SerializedObject(target);
            serializedObject.Update();
            serializedProperty = serializedObject.FindProperty("messageElements");
            EditorGUILayout.PropertyField(serializedProperty, true);
            serializedObject.ApplyModifiedProperties();
            EditorGUILayout.EndHorizontal();


            GUILayout.Space(40);
            EditorGUILayout.BeginHorizontal();
            assetPath = EditorGUILayout.TextField("Asset Path", assetPath);
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.Space();
            if (GUILayout.Button("Set Default", GUILayout.Width(150)))
            {
                DeleteEditorPrefs();
                GetEditorPrefs();
            }
            EditorGUILayout.EndHorizontal();

            GUILayout.Space(20);
            EditorGUILayout.BeginHorizontal();

            if (GUILayout.Button("Generate Simple Message"))
            {
                SetEditorPrefs();
                SimpleMessageGenerator.Generate(messageName, rosPackageName, messageElements, assetPath);
                AssetDatabase.Refresh();
            }
            EditorGUILayout.EndHorizontal();

            GUILayout.Space(20);

            EditorGUIUtility.labelWidth = 300;
        }
Ejemplo n.º 2
0
        public static void Generate(string ActionName, string RosPackageName,
                                    MessageElement[] GoalElements, MessageElement[] ResultElements, MessageElement[] FeedbackElements, string AssetPath)
        {
            SimpleMessageGenerator.Generate(ActionName + "Goal", RosPackageName, GoalElements, AssetPath);
            SimpleMessageGenerator.Generate(ActionName + "Feedback", RosPackageName, FeedbackElements, AssetPath);
            SimpleMessageGenerator.Generate(ActionName + "Result", RosPackageName, ResultElements, AssetPath);

            SimpleMessageGenerator.Generate(ActionName + "ActionGoal", RosPackageName,
                                            new MessageElement[] { new MessageElement()
                                                                   {
                                                                       messageType = MessageType.Header,
                                                                       messageName = "header",
                                                                       isArray     = false
                                                                   },

                                                                   new MessageElement()
                                                                   {
                                                                       messageType = MessageType.GoalID,
                                                                       messageName = "goal_id",
                                                                       isArray     = false
                                                                   },

                                                                   new MessageElement(ActionName + "Goal",
                                                                                      "goal",
                                                                                      false) }, AssetPath);

            SimpleMessageGenerator.Generate(ActionName + "ActionFeedback", RosPackageName,
                                            new MessageElement[] { new MessageElement()
                                                                   {
                                                                       messageType = MessageType.Header,
                                                                       messageName = "header",
                                                                       isArray     = false
                                                                   },

                                                                   new MessageElement()
                                                                   {
                                                                       messageType = MessageType.GoalStatus,
                                                                       messageName = "status",
                                                                       isArray     = false
                                                                   },

                                                                   new MessageElement(ActionName + "Feedback",
                                                                                      "feedback",
                                                                                      false) }, AssetPath);

            SimpleMessageGenerator.Generate(ActionName + "ActionResult", RosPackageName,
                                            new MessageElement[] { new MessageElement()
                                                                   {
                                                                       messageType = MessageType.Header,
                                                                       messageName = "header",
                                                                       isArray     = false
                                                                   },

                                                                   new MessageElement()
                                                                   {
                                                                       messageType = MessageType.GoalStatus,
                                                                       messageName = "status",
                                                                       isArray     = false
                                                                   },

                                                                   new MessageElement(ActionName + "Result",
                                                                                      "result",
                                                                                      false) }, AssetPath);
        }