Exemplo n.º 1
0
        private string serializeJointState(JointState js)
        {
            string topic = "\"topic\": \"/joint_states\", "; // platzhalter, topic vom RosMessage- objekt später holen
            // Baue Header

            string headerString = RosHeaderCoder_.serializeSingleHeader(js.header);

            // Baue Velocityarray
            double[] velocity       = js.velocity;
            string   velocityString = RosArrayService_.baueDoubleWertArrayUm(velocity, "\"velocity\": ", false);

            // Baue Effortarray
            double[] effort       = js.effort;
            string   effortString = RosArrayService_.baueDoubleWertArrayUm(effort, "\"effort\": ", false);

            // Baue Namearray
            string[] name       = js.name;
            string   nameString = RosArrayService_.baueStringWertArrayUm(name, "\"name\": ", false);

            // Baue Positionarray
            double[] position       = js.position;
            string   positionString = RosArrayService_.baueDoubleWertArrayUm(position, "\"position\": ", true);

            // Einzelteile zusammenkleben und formatiert zurückgeben
            return("\"{" + topic + "\"msg\": {" + headerString + velocityString + effortString + nameString + positionString + "}, \"op\": \"publish\"}\"");
        }
        private string serializeJointTrajectory(JointTrajectory jt)
        {
            //serialisiere Topic
            string topic = "\"topic\": \"/preview_trajectory\", "; // platzhalter, topic vom RosMessage- objekt später holen

            // serialisiere header
            Header jtheader     = jt.header;
            string headerString = RosHeaderCoder_.serializeSingleHeader(jtheader);

            //serialisiere joint_names
            string[] jtjoint_names      = jt.joint_names;
            string   joint_names_string = RosArrayService_.baueStringWertArrayUm(jtjoint_names, "\"joint_names\": ", false);

            //serialisiere JoinTrajectoryPoints
            JointTrajectoryPoint[] jtps = jt.points;
            string points_string        = "";

            for (int i = 0; i < jtps.Length - 2; ++i)
            {
                points_string = points_string + RosJointTrajectoryPointCoder_.serializeSingleJointTrajectoryPoint(jtps[i]) + ", ";
            }
            points_string = points_string + RosJointTrajectoryPointCoder_.serializeSingleJointTrajectoryPoint(jtps[jtps.Length - 1]);
            points_string = "\"points: \"[" + points_string + "]";


            // Einzelteile zusammenkleben und formatiert zurückgeben
            return("\"{" + topic + "\"msg\": {" + headerString + joint_names_string + points_string + "}, \"op\": \"publish\"}\"");
        }
        private RosPublish deserializeJointTrajectory(JsonObject jsonObject)
        {
            JsonArray jjoint_names = jsonObject["msg"].GetObject()["joint_names"].GetArray();


            // baue den Header
            Header header = RosHeaderCoder_.deserializeSingleHeader((JsonValue)jsonObject["msg"].GetObject()["header"]);

            // Lasse die JointTrajectoryPoints vom jeweiligen Coder deserialisieren

            JsonArray jjointtrajectorypoints = jsonObject["msg"].GetObject()["points"].GetArray();

            //TODO JointTrajectoryPoints deserialisieren
            JointTrajectoryPoint[] pts = new JointTrajectoryPoint[jjointtrajectorypoints.Count];
            for (int i = 0; i < jjointtrajectorypoints.Count; i++)
            {
                pts[i] = RosJointTrajectoryPointCoder_.deserializeSingleJointTrajectoryPoint((JsonValue)jjointtrajectorypoints[i]);
            }


            JointTrajectory messageData = new JointTrajectory();

            messageData.header = header;
            // Nutze den ArrayService, um die JSONArrays in "normale" Arrays umzuwandeln
            messageData.joint_names = RosArrayService_.stringArrayAusJSonArray(jjoint_names);
            messageData.points      = pts;


            return(new RosPublish("\"/preview_trajectory\"", messageData));
        }
Exemplo n.º 4
0
        private RosPublish deserializeJointState(JsonObject jsonObject)
        {
            JsonArray jnarray = jsonObject["msg"].GetObject()["name"].GetArray();
            JsonArray jparray = jsonObject["msg"].GetObject()["position"].GetArray();
            JsonArray jvarray = jsonObject["msg"].GetObject()["velocity"].GetArray();
            JsonArray jearray = jsonObject["msg"].GetObject()["effort"].GetArray();

            // baue den Header
            Header header = RosHeaderCoder_.deserializeSingleHeader((JsonValue)jsonObject["msg"].GetObject()["header"]);

            //Restliche Werte des JointState rausfinden

            JointState messageData = new JointState();

            messageData.header = header;
            // Nutze den ArrayService, um die JSONArrays in "normale" Arrays umzuwandeln
            messageData.name     = RosArrayService_.stringArrayAusJSonArray(jnarray);
            messageData.position = RosArrayService_.doubleArrayAusJSonArray(jparray);
            messageData.velocity = RosArrayService_.doubleArrayAusJSonArray(jvarray);
            messageData.effort   = RosArrayService_.doubleArrayAusJSonArray(jearray);

            return(new RosPublish("\"/joint_states\"", messageData));
        }