Exemple #1
0
            public override void Randomize()
            {
                int    arraylength = -1;
                Random rand        = new Random();
                int    strlength;

                byte[] strbuf, myByte;

                //path
                arraylength = rand.Next(10);
                if (path == null)
                {
                    path = new Messages.xamlamoveit_msgs.JointPathPoint[arraylength];
                }
                else
                {
                    Array.Resize(ref path, arraylength);
                }
                for (int i = 0; i < path.Length; i++)
                {
                    //path[i]
                    path[i] = new Messages.xamlamoveit_msgs.JointPathPoint();
                    path[i].Randomize();
                }
                //error_code
                error_code = new Messages.moveit_msgs.MoveItErrorCodes();
                error_code.Randomize();
            }
Exemple #2
0
            public override void Deserialize(byte[] serializedMessage, ref int currentIndex)
            {
                int  arraylength       = -1;
                bool hasmetacomponents = false;
                int  piecesize         = 0;

                byte[] thischunk, scratch1, scratch2;
                IntPtr h;
                object __thing;

                //path
                hasmetacomponents |= true;
                arraylength        = BitConverter.ToInt32(serializedMessage, currentIndex);
                currentIndex      += Marshal.SizeOf(typeof(System.Int32));
                if (path == null)
                {
                    path = new Messages.xamlamoveit_msgs.JointPathPoint[arraylength];
                }
                else
                {
                    Array.Resize(ref path, arraylength);
                }
                for (int i = 0; i < path.Length; i++)
                {
                    //path[i]
                    path[i] = new Messages.xamlamoveit_msgs.JointPathPoint(serializedMessage, ref currentIndex);
                }
                //error_code
                error_code = new Messages.moveit_msgs.MoveItErrorCodes(serializedMessage, ref currentIndex);
            }
Exemple #3
0
            public override void Deserialize(byte[] serializedMessage, ref int currentIndex)
            {
                int  arraylength       = -1;
                bool hasmetacomponents = false;

                byte[] thischunk, scratch1, scratch2;
                object __thing;
                int    piecesize = 0;
                IntPtr h;

                //point
                point = new Messages.xamlamoveit_msgs.JointPathPoint(serializedMessage, ref currentIndex);
                //joint_names
                hasmetacomponents |= false;
                arraylength        = BitConverter.ToInt32(serializedMessage, currentIndex);
                currentIndex      += Marshal.SizeOf(typeof(System.Int32));
                if (joint_names == null)
                {
                    joint_names = new string[arraylength];
                }
                else
                {
                    Array.Resize(ref joint_names, arraylength);
                }
                for (int i = 0; i < joint_names.Length; i++)
                {
                    //joint_names[i]
                    joint_names[i] = "";
                    piecesize      = BitConverter.ToInt32(serializedMessage, currentIndex);
                    currentIndex  += 4;
                    joint_names[i] = Encoding.ASCII.GetString(serializedMessage, currentIndex, piecesize);
                    currentIndex  += piecesize;
                }
            }
 public override byte[] Serialize(bool partofsomethingelse)
 {
     int currentIndex=0, length=0;
     bool hasmetacomponents = false;
     byte[] thischunk, scratch1, scratch2;
     List<byte[]> pieces = new List<byte[]>();
     GCHandle h;
     IntPtr ptr;
     int x__size;
     
     //group_name
     if (group_name == null)
         group_name = "";
     scratch1 = Encoding.ASCII.GetBytes((string)group_name);
     thischunk = new byte[scratch1.Length + 4];
     scratch2 = BitConverter.GetBytes(scratch1.Length);
     Array.Copy(scratch1, 0, thischunk, 4, scratch1.Length);
     Array.Copy(scratch2, thischunk, 4);
     pieces.Add(thischunk);
     //joint_names
     hasmetacomponents |= false;
     if (joint_names == null)
         joint_names = new string[0];
     pieces.Add(BitConverter.GetBytes(joint_names.Length));
     for (int i=0;i<joint_names.Length; i++) {
         //joint_names[i]
         if (joint_names[i] == null)
             joint_names[i] = "";
         scratch1 = Encoding.ASCII.GetBytes((string)joint_names[i]);
         thischunk = new byte[scratch1.Length + 4];
         scratch2 = BitConverter.GetBytes(scratch1.Length);
         Array.Copy(scratch1, 0, thischunk, 4, scratch1.Length);
         Array.Copy(scratch2, thischunk, 4);
         pieces.Add(thischunk);
     }
     //waypoints
     hasmetacomponents |= true;
     if (waypoints == null)
         waypoints = new Messages.xamlamoveit_msgs.JointPathPoint[0];
     pieces.Add(BitConverter.GetBytes(waypoints.Length));
     for (int i=0;i<waypoints.Length; i++) {
         //waypoints[i]
         if (waypoints[i] == null)
             waypoints[i] = new Messages.xamlamoveit_msgs.JointPathPoint();
         pieces.Add(waypoints[i].Serialize(true));
     }
     //combine every array in pieces into one array and return it
     int __a_b__f = pieces.Sum((__a_b__c)=>__a_b__c.Length);
     int __a_b__e=0;
     byte[] __a_b__d = new byte[__a_b__f];
     foreach(var __p__ in pieces)
     {
         Array.Copy(__p__,0,__a_b__d,__a_b__e,__p__.Length);
         __a_b__e += __p__.Length;
     }
     return __a_b__d;
 }
Exemple #5
0
            public override byte[] Serialize(bool partofsomethingelse)
            {
                int  currentIndex = 0, length = 0;
                bool hasmetacomponents = false;

                byte[]        thischunk, scratch1, scratch2;
                List <byte[]> pieces = new List <byte[]>();
                GCHandle      h;
                IntPtr        ptr;
                int           x__size;

                //solutions
                hasmetacomponents |= true;
                if (solutions == null)
                {
                    solutions = new Messages.xamlamoveit_msgs.JointPathPoint[0];
                }
                pieces.Add(BitConverter.GetBytes(solutions.Length));
                for (int i = 0; i < solutions.Length; i++)
                {
                    //solutions[i]
                    if (solutions[i] == null)
                    {
                        solutions[i] = new Messages.xamlamoveit_msgs.JointPathPoint();
                    }
                    pieces.Add(solutions[i].Serialize(true));
                }
                //error_codes
                hasmetacomponents |= false;
                if (error_codes == null)
                {
                    error_codes = new Messages.moveit_msgs.MoveItErrorCodes[0];
                }
                pieces.Add(BitConverter.GetBytes(error_codes.Length));
                for (int i = 0; i < error_codes.Length; i++)
                {
                    //error_codes[i]
                    if (error_codes[i] == null)
                    {
                        error_codes[i] = new Messages.moveit_msgs.MoveItErrorCodes();
                    }
                    pieces.Add(error_codes[i].Serialize(true));
                }
                //combine every array in pieces into one array and return it
                int __a_b__f = pieces.Sum((__a_b__c) => __a_b__c.Length);
                int __a_b__e = 0;

                byte[] __a_b__d = new byte[__a_b__f];
                foreach (var __p__ in pieces)
                {
                    Array.Copy(__p__, 0, __a_b__d, __a_b__e, __p__.Length);
                    __a_b__e += __p__.Length;
                }
                return(__a_b__d);
            }
 public override void Randomize()
 {
     int arraylength=-1;
     Random rand = new Random();
     int strlength;
     byte[] strbuf, myByte;
     
     //group_name
     strlength = rand.Next(100) + 1;
     strbuf = new byte[strlength];
     rand.NextBytes(strbuf);  //fill the whole buffer with random bytes
     for (int __x__ = 0; __x__ < strlength; __x__++)
         if (strbuf[__x__] == 0) //replace null chars with non-null random ones
             strbuf[__x__] = (byte)(rand.Next(254) + 1);
     strbuf[strlength - 1] = 0; //null terminate
     group_name = Encoding.ASCII.GetString(strbuf);
     //joint_names
     arraylength = rand.Next(10);
     if (joint_names == null)
         joint_names = new string[arraylength];
     else
         Array.Resize(ref joint_names, arraylength);
     for (int i=0;i<joint_names.Length; i++) {
         //joint_names[i]
         strlength = rand.Next(100) + 1;
         strbuf = new byte[strlength];
         rand.NextBytes(strbuf);  //fill the whole buffer with random bytes
         for (int __x__ = 0; __x__ < strlength; __x__++)
             if (strbuf[__x__] == 0) //replace null chars with non-null random ones
                 strbuf[__x__] = (byte)(rand.Next(254) + 1);
         strbuf[strlength - 1] = 0; //null terminate
         joint_names[i] = Encoding.ASCII.GetString(strbuf);
     }
     //waypoints
     arraylength = rand.Next(10);
     if (waypoints == null)
         waypoints = new Messages.xamlamoveit_msgs.JointPathPoint[arraylength];
     else
         Array.Resize(ref waypoints, arraylength);
     for (int i=0;i<waypoints.Length; i++) {
         //waypoints[i]
         waypoints[i] = new Messages.xamlamoveit_msgs.JointPathPoint();
         waypoints[i].Randomize();
     }
 }
Exemple #7
0
            public override void Randomize()
            {
                int    arraylength = -1;
                Random rand        = new Random();
                int    strlength;

                byte[] strbuf, myByte;

                //solutions
                arraylength = rand.Next(10);
                if (solutions == null)
                {
                    solutions = new Messages.xamlamoveit_msgs.JointPathPoint[arraylength];
                }
                else
                {
                    Array.Resize(ref solutions, arraylength);
                }
                for (int i = 0; i < solutions.Length; i++)
                {
                    //solutions[i]
                    solutions[i] = new Messages.xamlamoveit_msgs.JointPathPoint();
                    solutions[i].Randomize();
                }
                //error_codes
                arraylength = rand.Next(10);
                if (error_codes == null)
                {
                    error_codes = new Messages.moveit_msgs.MoveItErrorCodes[arraylength];
                }
                else
                {
                    Array.Resize(ref error_codes, arraylength);
                }
                for (int i = 0; i < error_codes.Length; i++)
                {
                    //error_codes[i]
                    error_codes[i] = new Messages.moveit_msgs.MoveItErrorCodes();
                    error_codes[i].Randomize();
                }
            }
            public override void Randomize()
            {
                int    arraylength = -1;
                Random rand        = new Random();
                int    strlength;

                byte[] strbuf, myByte;

                //end_effector_name
                strlength = rand.Next(100) + 1;
                strbuf    = new byte[strlength];
                rand.NextBytes(strbuf);  //fill the whole buffer with random bytes
                for (int __x__ = 0; __x__ < strlength; __x__++)
                {
                    if (strbuf[__x__] == 0) //replace null chars with non-null random ones
                    {
                        strbuf[__x__] = (byte)(rand.Next(254) + 1);
                    }
                }
                strbuf[strlength - 1] = 0; //null terminate
                end_effector_name     = Encoding.ASCII.GetString(strbuf);
                //waypoints
                arraylength = rand.Next(10);
                if (waypoints == null)
                {
                    waypoints = new Messages.geometry_msgs.PoseStamped[arraylength];
                }
                else
                {
                    Array.Resize(ref waypoints, arraylength);
                }
                for (int i = 0; i < waypoints.Length; i++)
                {
                    //waypoints[i]
                    waypoints[i] = new Messages.geometry_msgs.PoseStamped();
                    waypoints[i].Randomize();
                }
                //max_xyz_velocity
                max_xyz_velocity = (rand.Next() + rand.NextDouble());
                //max_xyz_acceleration
                max_xyz_acceleration = (rand.Next() + rand.NextDouble());
                //max_angular_velocity
                max_angular_velocity = (rand.Next() + rand.NextDouble());
                //max_angular_acceleration
                max_angular_acceleration = (rand.Next() + rand.NextDouble());
                //dt
                dt = (rand.Next() + rand.NextDouble());
                //ik_jump_threshold
                ik_jump_threshold = (rand.Next() + rand.NextDouble());
                //max_deviation
                max_deviation = (rand.Next() + rand.NextDouble());
                //joint_names
                arraylength = rand.Next(10);
                if (joint_names == null)
                {
                    joint_names = new string[arraylength];
                }
                else
                {
                    Array.Resize(ref joint_names, arraylength);
                }
                for (int i = 0; i < joint_names.Length; i++)
                {
                    //joint_names[i]
                    strlength = rand.Next(100) + 1;
                    strbuf    = new byte[strlength];
                    rand.NextBytes(strbuf);  //fill the whole buffer with random bytes
                    for (int __x__ = 0; __x__ < strlength; __x__++)
                    {
                        if (strbuf[__x__] == 0) //replace null chars with non-null random ones
                        {
                            strbuf[__x__] = (byte)(rand.Next(254) + 1);
                        }
                    }
                    strbuf[strlength - 1] = 0; //null terminate
                    joint_names[i]        = Encoding.ASCII.GetString(strbuf);
                }
                //seed
                seed = new Messages.xamlamoveit_msgs.JointPathPoint();
                seed.Randomize();
                //collision_check
                collision_check = rand.Next(2) == 1;
            }
            public override byte[] Serialize(bool partofsomethingelse)
            {
                int  currentIndex = 0, length = 0;
                bool hasmetacomponents = false;

                byte[]        thischunk, scratch1, scratch2;
                List <byte[]> pieces = new List <byte[]>();
                GCHandle      h;
                IntPtr        ptr;
                int           x__size;

                //end_effector_name
                if (end_effector_name == null)
                {
                    end_effector_name = "";
                }
                scratch1  = Encoding.ASCII.GetBytes((string)end_effector_name);
                thischunk = new byte[scratch1.Length + 4];
                scratch2  = BitConverter.GetBytes(scratch1.Length);
                Array.Copy(scratch1, 0, thischunk, 4, scratch1.Length);
                Array.Copy(scratch2, thischunk, 4);
                pieces.Add(thischunk);
                //waypoints
                hasmetacomponents |= true;
                if (waypoints == null)
                {
                    waypoints = new Messages.geometry_msgs.PoseStamped[0];
                }
                pieces.Add(BitConverter.GetBytes(waypoints.Length));
                for (int i = 0; i < waypoints.Length; i++)
                {
                    //waypoints[i]
                    if (waypoints[i] == null)
                    {
                        waypoints[i] = new Messages.geometry_msgs.PoseStamped();
                    }
                    pieces.Add(waypoints[i].Serialize(true));
                }
                //max_xyz_velocity
                scratch1 = new byte[Marshal.SizeOf(typeof(double))];
                h        = GCHandle.Alloc(scratch1, GCHandleType.Pinned);
                Marshal.StructureToPtr(max_xyz_velocity, h.AddrOfPinnedObject(), false);
                h.Free();
                pieces.Add(scratch1);
                //max_xyz_acceleration
                scratch1 = new byte[Marshal.SizeOf(typeof(double))];
                h        = GCHandle.Alloc(scratch1, GCHandleType.Pinned);
                Marshal.StructureToPtr(max_xyz_acceleration, h.AddrOfPinnedObject(), false);
                h.Free();
                pieces.Add(scratch1);
                //max_angular_velocity
                scratch1 = new byte[Marshal.SizeOf(typeof(double))];
                h        = GCHandle.Alloc(scratch1, GCHandleType.Pinned);
                Marshal.StructureToPtr(max_angular_velocity, h.AddrOfPinnedObject(), false);
                h.Free();
                pieces.Add(scratch1);
                //max_angular_acceleration
                scratch1 = new byte[Marshal.SizeOf(typeof(double))];
                h        = GCHandle.Alloc(scratch1, GCHandleType.Pinned);
                Marshal.StructureToPtr(max_angular_acceleration, h.AddrOfPinnedObject(), false);
                h.Free();
                pieces.Add(scratch1);
                //dt
                scratch1 = new byte[Marshal.SizeOf(typeof(double))];
                h        = GCHandle.Alloc(scratch1, GCHandleType.Pinned);
                Marshal.StructureToPtr(dt, h.AddrOfPinnedObject(), false);
                h.Free();
                pieces.Add(scratch1);
                //ik_jump_threshold
                scratch1 = new byte[Marshal.SizeOf(typeof(double))];
                h        = GCHandle.Alloc(scratch1, GCHandleType.Pinned);
                Marshal.StructureToPtr(ik_jump_threshold, h.AddrOfPinnedObject(), false);
                h.Free();
                pieces.Add(scratch1);
                //max_deviation
                scratch1 = new byte[Marshal.SizeOf(typeof(double))];
                h        = GCHandle.Alloc(scratch1, GCHandleType.Pinned);
                Marshal.StructureToPtr(max_deviation, h.AddrOfPinnedObject(), false);
                h.Free();
                pieces.Add(scratch1);
                //joint_names
                hasmetacomponents |= false;
                if (joint_names == null)
                {
                    joint_names = new string[0];
                }
                pieces.Add(BitConverter.GetBytes(joint_names.Length));
                for (int i = 0; i < joint_names.Length; i++)
                {
                    //joint_names[i]
                    if (joint_names[i] == null)
                    {
                        joint_names[i] = "";
                    }
                    scratch1  = Encoding.ASCII.GetBytes((string)joint_names[i]);
                    thischunk = new byte[scratch1.Length + 4];
                    scratch2  = BitConverter.GetBytes(scratch1.Length);
                    Array.Copy(scratch1, 0, thischunk, 4, scratch1.Length);
                    Array.Copy(scratch2, thischunk, 4);
                    pieces.Add(thischunk);
                }
                //seed
                if (seed == null)
                {
                    seed = new Messages.xamlamoveit_msgs.JointPathPoint();
                }
                pieces.Add(seed.Serialize(true));
                //collision_check
                thischunk    = new byte[1];
                thischunk[0] = (byte)((bool)collision_check ? 1 : 0);
                pieces.Add(thischunk);
                //combine every array in pieces into one array and return it
                int __a_b__f = pieces.Sum((__a_b__c) => __a_b__c.Length);
                int __a_b__e = 0;

                byte[] __a_b__d = new byte[__a_b__f];
                foreach (var __p__ in pieces)
                {
                    Array.Copy(__p__, 0, __a_b__d, __a_b__e, __p__.Length);
                    __a_b__e += __p__.Length;
                }
                return(__a_b__d);
            }
            public override void Deserialize(byte[] serializedMessage, ref int currentIndex)
            {
                int  arraylength       = -1;
                bool hasmetacomponents = false;

                byte[] thischunk, scratch1, scratch2;
                object __thing;
                int    piecesize = 0;
                IntPtr h;

                //end_effector_name
                end_effector_name = "";
                piecesize         = BitConverter.ToInt32(serializedMessage, currentIndex);
                currentIndex     += 4;
                end_effector_name = Encoding.ASCII.GetString(serializedMessage, currentIndex, piecesize);
                currentIndex     += piecesize;
                //waypoints
                hasmetacomponents |= true;
                arraylength        = BitConverter.ToInt32(serializedMessage, currentIndex);
                currentIndex      += Marshal.SizeOf(typeof(System.Int32));
                if (waypoints == null)
                {
                    waypoints = new Messages.geometry_msgs.PoseStamped[arraylength];
                }
                else
                {
                    Array.Resize(ref waypoints, arraylength);
                }
                for (int i = 0; i < waypoints.Length; i++)
                {
                    //waypoints[i]
                    waypoints[i] = new Messages.geometry_msgs.PoseStamped(serializedMessage, ref currentIndex);
                }
                //max_xyz_velocity
                piecesize = Marshal.SizeOf(typeof(double));
                h         = IntPtr.Zero;
                if (serializedMessage.Length - currentIndex != 0)
                {
                    h = Marshal.AllocHGlobal(piecesize);
                    Marshal.Copy(serializedMessage, currentIndex, h, piecesize);
                }
                if (h == IntPtr.Zero)
                {
                    throw new Exception("Memory allocation failed");
                }
                max_xyz_velocity = (double)Marshal.PtrToStructure(h, typeof(double));
                Marshal.FreeHGlobal(h);
                currentIndex += piecesize;
                //max_xyz_acceleration
                piecesize = Marshal.SizeOf(typeof(double));
                h         = IntPtr.Zero;
                if (serializedMessage.Length - currentIndex != 0)
                {
                    h = Marshal.AllocHGlobal(piecesize);
                    Marshal.Copy(serializedMessage, currentIndex, h, piecesize);
                }
                if (h == IntPtr.Zero)
                {
                    throw new Exception("Memory allocation failed");
                }
                max_xyz_acceleration = (double)Marshal.PtrToStructure(h, typeof(double));
                Marshal.FreeHGlobal(h);
                currentIndex += piecesize;
                //max_angular_velocity
                piecesize = Marshal.SizeOf(typeof(double));
                h         = IntPtr.Zero;
                if (serializedMessage.Length - currentIndex != 0)
                {
                    h = Marshal.AllocHGlobal(piecesize);
                    Marshal.Copy(serializedMessage, currentIndex, h, piecesize);
                }
                if (h == IntPtr.Zero)
                {
                    throw new Exception("Memory allocation failed");
                }
                max_angular_velocity = (double)Marshal.PtrToStructure(h, typeof(double));
                Marshal.FreeHGlobal(h);
                currentIndex += piecesize;
                //max_angular_acceleration
                piecesize = Marshal.SizeOf(typeof(double));
                h         = IntPtr.Zero;
                if (serializedMessage.Length - currentIndex != 0)
                {
                    h = Marshal.AllocHGlobal(piecesize);
                    Marshal.Copy(serializedMessage, currentIndex, h, piecesize);
                }
                if (h == IntPtr.Zero)
                {
                    throw new Exception("Memory allocation failed");
                }
                max_angular_acceleration = (double)Marshal.PtrToStructure(h, typeof(double));
                Marshal.FreeHGlobal(h);
                currentIndex += piecesize;
                //dt
                piecesize = Marshal.SizeOf(typeof(double));
                h         = IntPtr.Zero;
                if (serializedMessage.Length - currentIndex != 0)
                {
                    h = Marshal.AllocHGlobal(piecesize);
                    Marshal.Copy(serializedMessage, currentIndex, h, piecesize);
                }
                if (h == IntPtr.Zero)
                {
                    throw new Exception("Memory allocation failed");
                }
                dt = (double)Marshal.PtrToStructure(h, typeof(double));
                Marshal.FreeHGlobal(h);
                currentIndex += piecesize;
                //ik_jump_threshold
                piecesize = Marshal.SizeOf(typeof(double));
                h         = IntPtr.Zero;
                if (serializedMessage.Length - currentIndex != 0)
                {
                    h = Marshal.AllocHGlobal(piecesize);
                    Marshal.Copy(serializedMessage, currentIndex, h, piecesize);
                }
                if (h == IntPtr.Zero)
                {
                    throw new Exception("Memory allocation failed");
                }
                ik_jump_threshold = (double)Marshal.PtrToStructure(h, typeof(double));
                Marshal.FreeHGlobal(h);
                currentIndex += piecesize;
                //max_deviation
                piecesize = Marshal.SizeOf(typeof(double));
                h         = IntPtr.Zero;
                if (serializedMessage.Length - currentIndex != 0)
                {
                    h = Marshal.AllocHGlobal(piecesize);
                    Marshal.Copy(serializedMessage, currentIndex, h, piecesize);
                }
                if (h == IntPtr.Zero)
                {
                    throw new Exception("Memory allocation failed");
                }
                max_deviation = (double)Marshal.PtrToStructure(h, typeof(double));
                Marshal.FreeHGlobal(h);
                currentIndex += piecesize;
                //joint_names
                hasmetacomponents |= false;
                arraylength        = BitConverter.ToInt32(serializedMessage, currentIndex);
                currentIndex      += Marshal.SizeOf(typeof(System.Int32));
                if (joint_names == null)
                {
                    joint_names = new string[arraylength];
                }
                else
                {
                    Array.Resize(ref joint_names, arraylength);
                }
                for (int i = 0; i < joint_names.Length; i++)
                {
                    //joint_names[i]
                    joint_names[i] = "";
                    piecesize      = BitConverter.ToInt32(serializedMessage, currentIndex);
                    currentIndex  += 4;
                    joint_names[i] = Encoding.ASCII.GetString(serializedMessage, currentIndex, piecesize);
                    currentIndex  += piecesize;
                }
                //seed
                seed = new Messages.xamlamoveit_msgs.JointPathPoint(serializedMessage, ref currentIndex);
                //collision_check
                collision_check = serializedMessage[currentIndex++] == 1;
            }
Exemple #11
0
            public override void Randomize()
            {
                int    arraylength = -1;
                Random rand        = new Random();
                int    strlength;

                byte[] strbuf, myByte;

                //group_name
                strlength = rand.Next(100) + 1;
                strbuf    = new byte[strlength];
                rand.NextBytes(strbuf);  //fill the whole buffer with random bytes
                for (int __x__ = 0; __x__ < strlength; __x__++)
                {
                    if (strbuf[__x__] == 0) //replace null chars with non-null random ones
                    {
                        strbuf[__x__] = (byte)(rand.Next(254) + 1);
                    }
                }
                strbuf[strlength - 1] = 0; //null terminate
                group_name            = Encoding.ASCII.GetString(strbuf);
                //joint_names
                arraylength = rand.Next(10);
                if (joint_names == null)
                {
                    joint_names = new string[arraylength];
                }
                else
                {
                    Array.Resize(ref joint_names, arraylength);
                }
                for (int i = 0; i < joint_names.Length; i++)
                {
                    //joint_names[i]
                    strlength = rand.Next(100) + 1;
                    strbuf    = new byte[strlength];
                    rand.NextBytes(strbuf);  //fill the whole buffer with random bytes
                    for (int __x__ = 0; __x__ < strlength; __x__++)
                    {
                        if (strbuf[__x__] == 0) //replace null chars with non-null random ones
                        {
                            strbuf[__x__] = (byte)(rand.Next(254) + 1);
                        }
                    }
                    strbuf[strlength - 1] = 0; //null terminate
                    joint_names[i]        = Encoding.ASCII.GetString(strbuf);
                }
                //end_effector_link
                strlength = rand.Next(100) + 1;
                strbuf    = new byte[strlength];
                rand.NextBytes(strbuf);  //fill the whole buffer with random bytes
                for (int __x__ = 0; __x__ < strlength; __x__++)
                {
                    if (strbuf[__x__] == 0) //replace null chars with non-null random ones
                    {
                        strbuf[__x__] = (byte)(rand.Next(254) + 1);
                    }
                }
                strbuf[strlength - 1] = 0; //null terminate
                end_effector_link     = Encoding.ASCII.GetString(strbuf);
                //seed
                seed = new Messages.xamlamoveit_msgs.JointPathPoint();
                seed.Randomize();
                //const_seed
                const_seed = rand.Next(2) == 1;
                //points
                arraylength = rand.Next(10);
                if (points == null)
                {
                    points = new Messages.geometry_msgs.PoseStamped[arraylength];
                }
                else
                {
                    Array.Resize(ref points, arraylength);
                }
                for (int i = 0; i < points.Length; i++)
                {
                    //points[i]
                    points[i] = new Messages.geometry_msgs.PoseStamped();
                    points[i].Randomize();
                }
                //collision_check
                collision_check = rand.Next(2) == 1;
                //attempts
                attempts = rand.Next();
                //timeout
                timeout = new Duration(new TimeData(
                                           Convert.ToInt32(rand.Next()),
                                           Convert.ToInt32(rand.Next())));
            }
Exemple #12
0
            public override void Deserialize(byte[] serializedMessage, ref int currentIndex)
            {
                int  arraylength       = -1;
                bool hasmetacomponents = false;

                byte[] thischunk, scratch1, scratch2;
                object __thing;
                int    piecesize = 0;
                IntPtr h;

                //group_name
                group_name    = "";
                piecesize     = BitConverter.ToInt32(serializedMessage, currentIndex);
                currentIndex += 4;
                group_name    = Encoding.ASCII.GetString(serializedMessage, currentIndex, piecesize);
                currentIndex += piecesize;
                //joint_names
                hasmetacomponents |= false;
                arraylength        = BitConverter.ToInt32(serializedMessage, currentIndex);
                currentIndex      += Marshal.SizeOf(typeof(System.Int32));
                if (joint_names == null)
                {
                    joint_names = new string[arraylength];
                }
                else
                {
                    Array.Resize(ref joint_names, arraylength);
                }
                for (int i = 0; i < joint_names.Length; i++)
                {
                    //joint_names[i]
                    joint_names[i] = "";
                    piecesize      = BitConverter.ToInt32(serializedMessage, currentIndex);
                    currentIndex  += 4;
                    joint_names[i] = Encoding.ASCII.GetString(serializedMessage, currentIndex, piecesize);
                    currentIndex  += piecesize;
                }
                //end_effector_link
                end_effector_link = "";
                piecesize         = BitConverter.ToInt32(serializedMessage, currentIndex);
                currentIndex     += 4;
                end_effector_link = Encoding.ASCII.GetString(serializedMessage, currentIndex, piecesize);
                currentIndex     += piecesize;
                //seed
                seed = new Messages.xamlamoveit_msgs.JointPathPoint(serializedMessage, ref currentIndex);
                //const_seed
                const_seed = serializedMessage[currentIndex++] == 1;
                //points
                hasmetacomponents |= true;
                arraylength        = BitConverter.ToInt32(serializedMessage, currentIndex);
                currentIndex      += Marshal.SizeOf(typeof(System.Int32));
                if (points == null)
                {
                    points = new Messages.geometry_msgs.PoseStamped[arraylength];
                }
                else
                {
                    Array.Resize(ref points, arraylength);
                }
                for (int i = 0; i < points.Length; i++)
                {
                    //points[i]
                    points[i] = new Messages.geometry_msgs.PoseStamped(serializedMessage, ref currentIndex);
                }
                //collision_check
                collision_check = serializedMessage[currentIndex++] == 1;
                //attempts
                piecesize = Marshal.SizeOf(typeof(int));
                h         = IntPtr.Zero;
                if (serializedMessage.Length - currentIndex != 0)
                {
                    h = Marshal.AllocHGlobal(piecesize);
                    Marshal.Copy(serializedMessage, currentIndex, h, piecesize);
                }
                if (h == IntPtr.Zero)
                {
                    throw new Exception("Memory allocation failed");
                }
                attempts = (int)Marshal.PtrToStructure(h, typeof(int));
                Marshal.FreeHGlobal(h);
                currentIndex += piecesize;
                //timeout
                timeout = new Duration(new TimeData(
                                           BitConverter.ToInt32(serializedMessage, currentIndex),
                                           BitConverter.ToInt32(serializedMessage, currentIndex + Marshal.SizeOf(typeof(System.Int32)))));
                currentIndex += 2 * Marshal.SizeOf(typeof(System.Int32));
            }
            public override void Randomize()
            {
                int    arraylength = -1;
                Random rand        = new Random();
                int    strlength;

                byte[] strbuf, myByte;

                //joint_names
                arraylength = rand.Next(10);
                if (joint_names == null)
                {
                    joint_names = new string[arraylength];
                }
                else
                {
                    Array.Resize(ref joint_names, arraylength);
                }
                for (int i = 0; i < joint_names.Length; i++)
                {
                    //joint_names[i]
                    strlength = rand.Next(100) + 1;
                    strbuf    = new byte[strlength];
                    rand.NextBytes(strbuf);  //fill the whole buffer with random bytes
                    for (int __x__ = 0; __x__ < strlength; __x__++)
                    {
                        if (strbuf[__x__] == 0) //replace null chars with non-null random ones
                        {
                            strbuf[__x__] = (byte)(rand.Next(254) + 1);
                        }
                    }
                    strbuf[strlength - 1] = 0; //null terminate
                    joint_names[i]        = Encoding.ASCII.GetString(strbuf);
                }
                //waypoints
                arraylength = rand.Next(10);
                if (waypoints == null)
                {
                    waypoints = new Messages.xamlamoveit_msgs.JointPathPoint[arraylength];
                }
                else
                {
                    Array.Resize(ref waypoints, arraylength);
                }
                for (int i = 0; i < waypoints.Length; i++)
                {
                    //waypoints[i]
                    waypoints[i] = new Messages.xamlamoveit_msgs.JointPathPoint();
                    waypoints[i].Randomize();
                }
                //max_velocity
                arraylength = rand.Next(10);
                if (max_velocity == null)
                {
                    max_velocity = new double[arraylength];
                }
                else
                {
                    Array.Resize(ref max_velocity, arraylength);
                }
                for (int i = 0; i < max_velocity.Length; i++)
                {
                    //max_velocity[i]
                    max_velocity[i] = (rand.Next() + rand.NextDouble());
                }
                //max_acceleration
                arraylength = rand.Next(10);
                if (max_acceleration == null)
                {
                    max_acceleration = new double[arraylength];
                }
                else
                {
                    Array.Resize(ref max_acceleration, arraylength);
                }
                for (int i = 0; i < max_acceleration.Length; i++)
                {
                    //max_acceleration[i]
                    max_acceleration[i] = (rand.Next() + rand.NextDouble());
                }
                //max_deviation
                max_deviation = (rand.Next() + rand.NextDouble());
                //dt
                dt = (rand.Next() + rand.NextDouble());
            }
            public override byte[] Serialize(bool partofsomethingelse)
            {
                int  currentIndex = 0, length = 0;
                bool hasmetacomponents = false;

                byte[]        thischunk, scratch1, scratch2;
                List <byte[]> pieces = new List <byte[]>();
                GCHandle      h;
                IntPtr        ptr;
                int           x__size;

                //joint_names
                hasmetacomponents |= false;
                if (joint_names == null)
                {
                    joint_names = new string[0];
                }
                pieces.Add(BitConverter.GetBytes(joint_names.Length));
                for (int i = 0; i < joint_names.Length; i++)
                {
                    //joint_names[i]
                    if (joint_names[i] == null)
                    {
                        joint_names[i] = "";
                    }
                    scratch1  = Encoding.ASCII.GetBytes((string)joint_names[i]);
                    thischunk = new byte[scratch1.Length + 4];
                    scratch2  = BitConverter.GetBytes(scratch1.Length);
                    Array.Copy(scratch1, 0, thischunk, 4, scratch1.Length);
                    Array.Copy(scratch2, thischunk, 4);
                    pieces.Add(thischunk);
                }
                //waypoints
                hasmetacomponents |= true;
                if (waypoints == null)
                {
                    waypoints = new Messages.xamlamoveit_msgs.JointPathPoint[0];
                }
                pieces.Add(BitConverter.GetBytes(waypoints.Length));
                for (int i = 0; i < waypoints.Length; i++)
                {
                    //waypoints[i]
                    if (waypoints[i] == null)
                    {
                        waypoints[i] = new Messages.xamlamoveit_msgs.JointPathPoint();
                    }
                    pieces.Add(waypoints[i].Serialize(true));
                }
                //max_velocity
                hasmetacomponents |= false;
                if (max_velocity == null)
                {
                    max_velocity = new double[0];
                }
                pieces.Add(BitConverter.GetBytes(max_velocity.Length));
// Start Xamla
                //max_velocity
                x__size  = Marshal.SizeOf(typeof(double)) * max_velocity.Length;
                scratch1 = new byte[x__size];
                Buffer.BlockCopy(max_velocity, 0, scratch1, 0, x__size);
                pieces.Add(scratch1);
// End Xamla

                //max_acceleration
                hasmetacomponents |= false;
                if (max_acceleration == null)
                {
                    max_acceleration = new double[0];
                }
                pieces.Add(BitConverter.GetBytes(max_acceleration.Length));
// Start Xamla
                //max_acceleration
                x__size  = Marshal.SizeOf(typeof(double)) * max_acceleration.Length;
                scratch1 = new byte[x__size];
                Buffer.BlockCopy(max_acceleration, 0, scratch1, 0, x__size);
                pieces.Add(scratch1);
// End Xamla

                //max_deviation
                scratch1 = new byte[Marshal.SizeOf(typeof(double))];
                h        = GCHandle.Alloc(scratch1, GCHandleType.Pinned);
                Marshal.StructureToPtr(max_deviation, h.AddrOfPinnedObject(), false);
                h.Free();
                pieces.Add(scratch1);
                //dt
                scratch1 = new byte[Marshal.SizeOf(typeof(double))];
                h        = GCHandle.Alloc(scratch1, GCHandleType.Pinned);
                Marshal.StructureToPtr(dt, h.AddrOfPinnedObject(), false);
                h.Free();
                pieces.Add(scratch1);
                //combine every array in pieces into one array and return it
                int __a_b__f = pieces.Sum((__a_b__c) => __a_b__c.Length);
                int __a_b__e = 0;

                byte[] __a_b__d = new byte[__a_b__f];
                foreach (var __p__ in pieces)
                {
                    Array.Copy(__p__, 0, __a_b__d, __a_b__e, __p__.Length);
                    __a_b__e += __p__.Length;
                }
                return(__a_b__d);
            }
            public override void Deserialize(byte[] serializedMessage, ref int currentIndex)
            {
                int  arraylength       = -1;
                bool hasmetacomponents = false;

                byte[] thischunk, scratch1, scratch2;
                object __thing;
                int    piecesize = 0;
                IntPtr h;

                //joint_names
                hasmetacomponents |= false;
                arraylength        = BitConverter.ToInt32(serializedMessage, currentIndex);
                currentIndex      += Marshal.SizeOf(typeof(System.Int32));
                if (joint_names == null)
                {
                    joint_names = new string[arraylength];
                }
                else
                {
                    Array.Resize(ref joint_names, arraylength);
                }
                for (int i = 0; i < joint_names.Length; i++)
                {
                    //joint_names[i]
                    joint_names[i] = "";
                    piecesize      = BitConverter.ToInt32(serializedMessage, currentIndex);
                    currentIndex  += 4;
                    joint_names[i] = Encoding.ASCII.GetString(serializedMessage, currentIndex, piecesize);
                    currentIndex  += piecesize;
                }
                //waypoints
                hasmetacomponents |= true;
                arraylength        = BitConverter.ToInt32(serializedMessage, currentIndex);
                currentIndex      += Marshal.SizeOf(typeof(System.Int32));
                if (waypoints == null)
                {
                    waypoints = new Messages.xamlamoveit_msgs.JointPathPoint[arraylength];
                }
                else
                {
                    Array.Resize(ref waypoints, arraylength);
                }
                for (int i = 0; i < waypoints.Length; i++)
                {
                    //waypoints[i]
                    waypoints[i] = new Messages.xamlamoveit_msgs.JointPathPoint(serializedMessage, ref currentIndex);
                }
                //max_velocity
                hasmetacomponents |= false;
                arraylength        = BitConverter.ToInt32(serializedMessage, currentIndex);
                currentIndex      += Marshal.SizeOf(typeof(System.Int32));
                if (max_velocity == null)
                {
                    max_velocity = new double[arraylength];
                }
                else
                {
                    Array.Resize(ref max_velocity, arraylength);
                }
// Start Xamla
                //max_velocity
                piecesize = Marshal.SizeOf(typeof(double)) * max_velocity.Length;
                if (currentIndex + piecesize > serializedMessage.Length)
                {
                    throw new Exception("Memory allocation failed: Ran out of bytes to read.");
                }
                Buffer.BlockCopy(serializedMessage, currentIndex, max_velocity, 0, piecesize);
                currentIndex += piecesize;
// End Xamla

                //max_acceleration
                hasmetacomponents |= false;
                arraylength        = BitConverter.ToInt32(serializedMessage, currentIndex);
                currentIndex      += Marshal.SizeOf(typeof(System.Int32));
                if (max_acceleration == null)
                {
                    max_acceleration = new double[arraylength];
                }
                else
                {
                    Array.Resize(ref max_acceleration, arraylength);
                }
// Start Xamla
                //max_acceleration
                piecesize = Marshal.SizeOf(typeof(double)) * max_acceleration.Length;
                if (currentIndex + piecesize > serializedMessage.Length)
                {
                    throw new Exception("Memory allocation failed: Ran out of bytes to read.");
                }
                Buffer.BlockCopy(serializedMessage, currentIndex, max_acceleration, 0, piecesize);
                currentIndex += piecesize;
// End Xamla

                //max_deviation
                piecesize = Marshal.SizeOf(typeof(double));
                h         = IntPtr.Zero;
                if (serializedMessage.Length - currentIndex != 0)
                {
                    h = Marshal.AllocHGlobal(piecesize);
                    Marshal.Copy(serializedMessage, currentIndex, h, piecesize);
                }
                if (h == IntPtr.Zero)
                {
                    throw new Exception("Memory allocation failed");
                }
                max_deviation = (double)Marshal.PtrToStructure(h, typeof(double));
                Marshal.FreeHGlobal(h);
                currentIndex += piecesize;
                //dt
                piecesize = Marshal.SizeOf(typeof(double));
                h         = IntPtr.Zero;
                if (serializedMessage.Length - currentIndex != 0)
                {
                    h = Marshal.AllocHGlobal(piecesize);
                    Marshal.Copy(serializedMessage, currentIndex, h, piecesize);
                }
                if (h == IntPtr.Zero)
                {
                    throw new Exception("Memory allocation failed");
                }
                dt = (double)Marshal.PtrToStructure(h, typeof(double));
                Marshal.FreeHGlobal(h);
                currentIndex += piecesize;
            }