//to display code line UI for Brute Move command
    public override GameObject createBruteCoordinatesSelector(BruteMove bruteStatement)
    {
        //Overriding createBruteCoordinatesSelector for BRUTE
        GameObject         coordinateDisplay;
        List <TextMeshPro> textFields;
        Button             button;
        Interactable       interactable;

        textFields        = new List <TextMeshPro>();
        coordinateDisplay = Instantiate(targetBruteSelectorPrefab);
        coordinateDisplay.GetComponentsInChildren <TextMeshPro>(textFields);
        Vector4 targetInV4 = new Vector4(bruteStatement.target.x, bruteStatement.target.y, bruteStatement.target.z, 0f);

        button       = coordinateDisplay.GetComponentInChildren <Button>();
        interactable = coordinateDisplay.GetComponentInChildren <Interactable>();
        foreach (TextMeshPro textField in textFields)
        {
            if (textField.name.Contains("TargetValue"))
            {
                textField.text = bruteStatement.target.ToString();
                interactable.OnClick.AddListener(() =>
                {   /*
                     * if (coordinateTargetSelector.selectedRosTransform != null)
                     * {
                     *  Transform rosCoords = coordinateTargetSelector.selectedRosTransform;
                     *  textField.text = rosCoords.localPosition.ToString();
                     * }   */
                });
            }
        }


        return(coordinateDisplay);
    }
    // public Vector3 newPos;


    // Start is called before the first frame update
    void Start()
    {
        GearMove_Script  = Gears.GetComponent <GearMove>();
        LuzMove_Script   = Luz.GetComponent <LuzMove>();
        BruteMove_Script = Brute.GetComponent <BruteMove>();
        PumpMove_Script  = Pump.GetComponent <PumpMove>();
        SatMove_Script   = Sat.GetComponent <SatMove>();
    }
 public void getMoveScripts()
 {
     gearMove_script  = Gears.GetComponent <GearMove>();
     luzMove_script   = Luz.GetComponent <LuzMove>();
     bruteMove_script = Brute.GetComponent <BruteMove>();
     pumpMove_script  = Pump.GetComponent <PumpMove>();
     satMove_script   = Sat.GetComponent <SatMove>();
 }
Example #4
0
    //Brute Move
    public override GameObject generateBruteMovmentTypeSelectorFromStatement(BruteMove bruteStatement)
    {
        GameObject dropdownObject;

        dropdownObject = Instantiate(movementTypeDropdownPrefab);
        dropdownObject.TryGetComponent(out RectTransform rectTransformDropDown);
        dropdownObject.TryGetComponent(out TMP_Dropdown dropdown);
        dropdown.value = bruteStatement.movementValueForCanvas;
        dropdown.RefreshShownValue();
        return(dropdownObject);
    }
 public abstract GameObject generateBruteMovmentTypeSelectorFromStatement(BruteMove bruteStatement);
 //BruteMove command below
 private List <Statement> bruteMoveCommand(Vector3 target, BruteMove bruteStatement, List <Statement> statements)
 {   //Brute move command is constructed into a statement here
     bruteStatement.target = target;
     statements.Add(bruteStatement);
     return(statements);
 }
Example #7
0
    private String generateProgramStringFromProgram(Program program)
    {
        String programString = "";

        foreach (Statement statement in program.statements)
        {
            //debug
            Debug.Log("generateProgramStringFromProgram statement:" + statement);
            if (statement.GetType().IsSubclassOf(typeof(MoveStatement1)))
            {
                RosSharp.RosBridgeClient.MessageTypes.Dobot.SetPTPCmdRequest request;
                MoveStatement1 moveStatement = (MoveStatement1)statement;
                byte           ptpMode_byte;
                byte.TryParse("" + moveStatement.movementValueForCanvas, out ptpMode_byte);
                float x = moveStatement.target.x;
                float y = moveStatement.target.y;
                float z = moveStatement.target.z;
                float r = 0f;
                request        = new RosSharp.RosBridgeClient.MessageTypes.Dobot.SetPTPCmdRequest(ptpMode_byte, x, y, z, r, true);
                programString += $"Move({request.x} {request.y} {request.z});\n";
            }
            //below is to generate Program string from Program for BruteMove. The string generated on UI will read 'Brute'
            else if (statement.GetType().IsSubclassOf(typeof(BruteMove)))
            {
                RosSharp.RosBridgeClient.MessageTypes.Dobot.SetPTPCmdRequest request;
                BruteMove bruteStatement = (BruteMove)statement;
                byte      ptpMode_byte;
                byte.TryParse("" + bruteStatement.movementValueForCanvas, out ptpMode_byte);
                float x = bruteStatement.target.x;
                float y = bruteStatement.target.y;
                float z = bruteStatement.target.z;
                float r = 0f;
                request        = new RosSharp.RosBridgeClient.MessageTypes.Dobot.SetPTPCmdRequest(ptpMode_byte, x, y, z, r, true);
                programString += $"Brute({request.x} {request.y} {request.z});\n";
            }
            else
            {
                if (statement is ClawUp)
                {
                    ClawUp clawUp = (ClawUp)statement;
                    // programString += $"Claw({clawUp.isClawUp});\n";
                    if (clawUp.isClawUp == true)
                    {
                        programString += $"Claw({"up"});\n";
                    }
                    else
                    {
                        programString += $"Claw({"down"});\n";
                    }
                }

                /*
                 * if (statement is ToggleSuction)
                 * {
                 *  //  ToggleSuction toggleSuction = (ToggleSuction)statement;
                 *  //programString += $"ToggleSuction({toggleSuction.isSuctionEnabled});\n";
                 *  programString += $"Move({0} {0} {0});\n";
                 * }
                 */
            }
        }
        //debug
        Debug.Log("generateProgramStringFromProgram with co-ordinates :" + programString);
        return(programString);
    }
 //for Brute Move command
 public abstract GameObject createBruteCoordinatesSelector(BruteMove bruteStatement);