Exemplo n.º 1
0
 private int GetParamInt32(ParamID id)
 {
     int value;
     var status = GetParamInt32(id, out value);
     if (status != CTR_Code.CTR_OKAY)
         CheckStatus((int)status);
     return value;
 }
Exemplo n.º 2
0
 private double GetParam(ParamID id)
 {
     C_TalonSRX_RequestParam(m_impl, (int)id);
     Timer.Delay(DelayForSolicitedSignals);
     var value = 0.0;
     var status = C_TalonSRX_GetParamResponse(m_impl, (int)id, ref value);
     if (status != CTR_Code.CTR_OKAY)
         CheckStatus((int)status);
     return value;
 }
Exemplo n.º 3
0
    protected override void LaunchPluginFunction(CloudData data)
    {
        HashSet <int>   selectedpointsSet     = data.globalMetaData.SelectedPointsList;
        HashSet <float> selectedtrajectorySet = data.globalMetaData.SelectedTrajectories;

        N = 0;

        List <double> TrajectoriesList = new List <double>();
        List <double> Xvalues          = new List <double>();
        List <double> Yvalues          = new List <double>();
        List <double> Zvalues          = new List <double>();
        List <double> Tvalues          = new List <double>();

        Debug.Log("lowtime " + data.globalMetaData.lowertimeLimit);

        Debug.Log("uptime " + data.globalMetaData.uppertimeLimit);

        float xaverage, yaverage, zaverage;
        float xsum        = 0;
        float ysum        = 0;
        float zsum        = 0;
        int   pointnumber = 0;

        foreach (float i in selectedtrajectorySet)
        {
            foreach (int j in data.pointTrajectoriesTable[i].metadata.selectedpointsIDList)
            {
                if (data.pointMetaDataTable[j].isHidden == false)
                {
                    //Debug.Log("time " + data.pointDataTable[j].time);

                    if (data.pointDataTable[j].time >= data.globalMetaData.lowertimeLimit && data.pointDataTable[j].time <= data.globalMetaData.uppertimeLimit)
                    {
                        Debug.Log("check");
                        N++;
                        TrajectoriesList.Add(i);
                        Xvalues.Add((double)data.pointDataTable[j].position.x);
                        Yvalues.Add((double)data.pointDataTable[j].position.y);
                        Zvalues.Add((double)data.pointDataTable[j].position.z);
                        Tvalues.Add((double)data.pointDataTable[j].time);

                        xsum += data.pointDataTable[j].normed_position.x;
                        ysum += data.pointDataTable[j].normed_position.y;
                        zsum += data.pointDataTable[j].normed_position.z;
                        pointnumber++;
                    }
                }
            }
        }

        xaverage = xsum / pointnumber;
        yaverage = ysum / pointnumber;
        zaverage = zsum / pointnumber;

        ArrowLocalPosition = new Vector3(xaverage, yaverage, zaverage);

        //DEBUG

        /**
         * N = 25;
         * for(int i = 0; i < 5; i++)
         * {
         *  TrajectoriesList.Add(i);
         *  Xvalues.Add((double)Random.Range(0,100));
         *  Yvalues.Add((double)Random.Range(0, 100));
         *  Zvalues.Add((double)Random.Range(0, 100));
         *  Tvalues.Add(0);
         *  TrajectoriesList.Add(i);
         *  Xvalues.Add((double)Random.Range(0, 100));
         *  Yvalues.Add((double)Random.Range(0, 100));
         *  Zvalues.Add((double)Random.Range(0, 100));
         *  Tvalues.Add(1);
         *  TrajectoriesList.Add(i);
         *  Xvalues.Add((double)Random.Range(0, 100));
         *  Yvalues.Add((double)Random.Range(0, 100));
         *  Zvalues.Add((double)Random.Range(0, 100));
         *  Tvalues.Add(2);
         *  TrajectoriesList.Add(i);
         *  Xvalues.Add((double)Random.Range(0, 100));
         *  Yvalues.Add((double)Random.Range(0, 100));
         *  Zvalues.Add((double)Random.Range(0, 100));
         *  Tvalues.Add(3);
         *  TrajectoriesList.Add(i);
         *  Xvalues.Add((double)Random.Range(0, 100));
         *  Yvalues.Add((double)Random.Range(0, 100));
         *  Zvalues.Add((double)Random.Range(0, 100));
         *  Tvalues.Add(4);
         * }
         *
         * Debug.Log(TrajectoriesList.Count);
         **/
        //END_DEBUG
        double[] TrajectoriesArray = TrajectoriesList.ToArray();
        double[] XvaluesArray      = Xvalues.ToArray();
        double[] YvaluesArray      = Yvalues.ToArray();
        double[] ZvaluesArray      = Zvalues.ToArray();
        double[] TvaluesArray      = Tvalues.ToArray();

        fixed(double *Trajectoriespointer = TrajectoriesArray)
        {
            fixed(double *xvalues = XvaluesArray)
            {
                fixed(double *yvalues = YvaluesArray)
                {
                    fixed(double *zvalues = ZvaluesArray)
                    {
                        fixed(double *tvalues = TvaluesArray)
                        {
                            this.trajectories = Trajectoriespointer;
                            this.xCoord       = xvalues;
                            this.yCoord       = yvalues;
                            this.zCoord       = zvalues;
                            this.tCoord       = tvalues;

                            double diffusion = 145.0;
                            double forceX    = 14.0;
                            double forceY    = 16.0;
                            double forceZ    = 17.0;

                            Diffusion = &diffusion;
                            ForceX    = &forceX;
                            ForceY    = &forceY;
                            ForceZ    = &forceZ;

                            //functionID = (FunctionID)dropdown.value;

                            headerID = (HeaderID)headerDropdown.value;
                            paramID  = (ParamID)paramDropdown.value;
                            // Debug.Log("FunctionID - "+(int)functionID);
                            double.TryParse(SigmaInput.text, out Sigma);
                            double.TryParse(SigmaxyInput.text, out SigmaXY);
                            double.TryParse(SigmazInput.text, out SigmaZ);

                            //Debug.Log("fid " + functionID);
                            Debug.Log("Sigma " + Sigma);
                            Debug.Log("Sigmaxy " + SigmaXY);
                            Debug.Log("Sigmaz " + SigmaZ);


                            Infer3D((int)headerID, (int)paramID, Sigma, SigmaXY, SigmaZ, N, trajectories,
                                    xCoord, yCoord, zCoord, tCoord, Diffusion, ForceX, ForceY, ForceZ);
                            double diffusionres = *Diffusion;
                            double forceXres    = *ForceX;
                            double forceYres    = *ForceY;
                            double forceZres    = *ForceZ;

                            diffusionres = Math.Round(diffusionres, 3);
                            forceXres    = Math.Round(forceXres, 3);
                            forceYres    = Math.Round(forceYres, 3);
                            forceZres    = Math.Round(forceZres, 3);

                            ResultsString = "diffusion : " + diffusionres + "\n" + "forceX : " + forceXres + "\n"
                                            + "forceY : " + forceYres + "\n" + "forceZ : " + forceZres + "\n";
                            Debug.Log("N : " + N);
                            Debug.Log("diffusion : " + *Diffusion);
                            Debug.Log("forceX : " + *ForceX);
                            Debug.Log("forceY : " + *ForceY);
                            Debug.Log("forceZ : " + *ForceZ);

                            GameObject go = new GameObject("ARROW");

                            go.transform.position = Vector3.zero;
                            go.transform.SetParent(data.transform, true);

                            //go.transform.SetParent(data.transform);
                            go.AddComponent <GenerateArrow>();
                            go.GetComponent <GenerateArrow>().GenerateTriangularArrowMesh(new Vector3((float)*ForceX, (float)*ForceY, (float)*ForceZ).normalized);
                            go.transform.localPosition = ArrowLocalPosition;
                            Debug.Log("ArrowCalculatedpos : " + ArrowLocalPosition);
                            Debug.Log("ArrowWorldPos : " + go.transform.position);
                            Debug.Log("ArrowLocalPos : " + go.transform.localPosition);
                        }
                    }
                }
            }
        }
    }
Exemplo n.º 4
0
 private void SetParam(ParamID id, double value)
 {
     var errorCode = C_TalonSRX_SetParam(m_impl, (int)id, value);
     if (errorCode != CTR_Code.CTR_OKAY)
         CheckStatus((int)errorCode);
 }
Exemplo n.º 5
0
 private CTR_Code GetParamInt32(ParamID id, out int value)
 {
     C_TalonSRX_RequestParam(m_impl, (int)id);
     Timer.Delay(DelayForSolicitedSignals);
     value = 0;
     return C_TalonSRX_GetParamResponseInt32(m_impl, (int)id, ref value);
 }
Exemplo n.º 6
0
 /// <summary>
 /// General set frame.
 /// </summary>
 /// <param name="paramEnum">The parameter to set.</param>
 /// <param name="value">The value to set the parameter to.</param>
 public void SetParameter(ParamID paramEnum, double value)
 {
     CTR_Code status = C_TalonSRX_SetParam(m_talonPointer, (int)paramEnum, value);
     CheckCTRStatus(status);
 }
Exemplo n.º 7
0
 public ParamDefFloat(ParamID pid, float min, float max, float defaultV)
 {
 }