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 }
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); }
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); }
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); }