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

                byte[] strbuf, myByte;

                //move_group_interfaces
                arraylength = rand.Next(10);
                if (move_group_interfaces == null)
                {
                    move_group_interfaces = new Messages.xamlamoveit_msgs.MoveGroupInterfaceDescription[arraylength];
                }
                else
                {
                    Array.Resize(ref move_group_interfaces, arraylength);
                }
                for (int i = 0; i < move_group_interfaces.Length; i++)
                {
                    //move_group_interfaces[i]
                    move_group_interfaces[i] = new Messages.xamlamoveit_msgs.MoveGroupInterfaceDescription();
                    move_group_interfaces[i].Randomize();
                }
            }
            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;

                //move_group_interfaces
                hasmetacomponents |= true;
                arraylength        = BitConverter.ToInt32(serializedMessage, currentIndex);
                currentIndex      += Marshal.SizeOf(typeof(System.Int32));
                if (move_group_interfaces == null)
                {
                    move_group_interfaces = new Messages.xamlamoveit_msgs.MoveGroupInterfaceDescription[arraylength];
                }
                else
                {
                    Array.Resize(ref move_group_interfaces, arraylength);
                }
                for (int i = 0; i < move_group_interfaces.Length; i++)
                {
                    //move_group_interfaces[i]
                    move_group_interfaces[i] = new Messages.xamlamoveit_msgs.MoveGroupInterfaceDescription(serializedMessage, ref currentIndex);
                }
            }
            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;

                //move_group_interfaces
                hasmetacomponents |= true;
                if (move_group_interfaces == null)
                {
                    move_group_interfaces = new Messages.xamlamoveit_msgs.MoveGroupInterfaceDescription[0];
                }
                pieces.Add(BitConverter.GetBytes(move_group_interfaces.Length));
                for (int i = 0; i < move_group_interfaces.Length; i++)
                {
                    //move_group_interfaces[i]
                    if (move_group_interfaces[i] == null)
                    {
                        move_group_interfaces[i] = new Messages.xamlamoveit_msgs.MoveGroupInterfaceDescription();
                    }
                    pieces.Add(move_group_interfaces[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);
            }