示例#1
0
 public EntityValue(string _name, AUT_WH.MajorDomoProtocol.EntityValueType _type, byte _index, ushort _size)
 {
     Name        = _name;
     Type        = _type;
     Index       = _index;
     m_data      = new byte[_size];
     m_buffer    = new FlatBuffers.ByteBuffer(m_data);
     m_modified  = false;
     m_updated   = false;
     m_fixedSize = (_size > 0);             // size > 0 indicates a fixed size buffer, size 0 as length indicates a variable length
 }
示例#2
0
 public EntityValue GetValue(string _name, AUT_WH.MajorDomoProtocol.EntityValueType _type)
 {
     foreach (EntityValue value in m_values)
     {
         if ((value.Name == _name) && (value.Type == _type))
         {
             return(value);
         }
     }
     return(null);
 }
示例#3
0
        protected EntityValue AddEntityValue(string _name, AUT_WH.MajorDomoProtocol.EntityValueType _type)
        {
            // does the value already exist?
            EntityValue value = GetValue(_name, _type);

            if (value == null)
            {
                // not yet
                // is this entity already registered? If so, then no more values can be added
                if (State == EntityState.Created)
                {
                    // is there room for one more?
                    byte index = (byte)m_values.Count;
                    if (index < MAX_VALUE_COUNT)
                    {
                        value = EntityValue.GenerateEntityValueInstance(_name, index, _type);
                        m_values.Add(value);
                        // Debug.Log("Entity value '" + _name + "' added to entity '" + Name + "'");
                    }
                    else
                    {
                        Debug.LogWarning("Trying to add more than " + MAX_VALUE_COUNT + " values to entity '" + Name + "'");
                    }
                }
                else
                {
                    Debug.LogWarning("Trying to add a value to registered entity '" + Name + "'");
                }
            }
            else if (value.Type != _type)
            {
                Debug.LogWarning("Entity value '" + _name + "' already added to entity '" + Name + "' with different type");
                value = null;
            }
            return(value);
        }
示例#4
0
        public static EntityValue GenerateEntityValueInstance(string _name, byte _index, AUT_WH.MajorDomoProtocol.EntityValueType _type)
        {
            switch (_type)
            {
            case AUT_WH.MajorDomoProtocol.EntityValueType.Boolean:    return(new EntityValue_Boolean(_name, _index));

            case AUT_WH.MajorDomoProtocol.EntityValueType.Byte:       return(new EntityValue_Byte(_name, _index));

            case AUT_WH.MajorDomoProtocol.EntityValueType.Int16:      return(new EntityValue_Int16(_name, _index));

            case AUT_WH.MajorDomoProtocol.EntityValueType.Int32:      return(new EntityValue_Int32(_name, _index));

            case AUT_WH.MajorDomoProtocol.EntityValueType.Int64:      return(new EntityValue_Int64(_name, _index));

            case AUT_WH.MajorDomoProtocol.EntityValueType.Float32:    return(new EntityValue_Float32(_name, _index));

            case AUT_WH.MajorDomoProtocol.EntityValueType.Float64:    return(new EntityValue_Float64(_name, _index));

            case AUT_WH.MajorDomoProtocol.EntityValueType.String:     return(new EntityValue_String(_name, _index));

            case AUT_WH.MajorDomoProtocol.EntityValueType.Color:      return(new EntityValue_Color(_name, _index));

            case AUT_WH.MajorDomoProtocol.EntityValueType.Vector3D:   return(new EntityValue_Vector3D(_name, _index));

            case AUT_WH.MajorDomoProtocol.EntityValueType.Quaternion: return(new EntityValue_Quaternion(_name, _index));

            case AUT_WH.MajorDomoProtocol.EntityValueType.ByteArray:  return(new EntityValue_ByteArray(_name, _index));

            case AUT_WH.MajorDomoProtocol.EntityValueType.FloatArray: return(new EntityValue_FloatArray(_name, _index));
            }
            return(null);
        }