/// <summary> /// Retrievess data from message body. populates property dependant on data type /// </summary> private void GetData() { try { int dataTypePosition = TraciDataHelper.GetTraciInteger(_traciResponse.MessageBody, _traciResponse.MessageStart + 1) + _traciResponse.MessageStart + 5; switch (TraciDataHelper.GetTraciDataType(_traciResponse.MessageBody, dataTypePosition)) { case TraciConstants.DataType.TYPE_DOUBLE: DoubleResponse = TraciDataHelper.GetTraciDouble(_traciResponse.MessageBody, dataTypePosition + 1); break; case TraciConstants.DataType.TYPE_STRINGLIST: StringListResponse = TraciDataHelper.GetTracStringList(_traciResponse.MessageBody, dataTypePosition + 1); break; case TraciConstants.DataType.TYPE_STRING: StringResponse = TraciDataHelper.GetTraciString(_traciResponse.MessageBody, dataTypePosition + 1); break; } } catch (Exception ex) { throw new SumoControllerException("Error retrieving data from Variable Traci data response", ex); } }
/// <summary> /// Initialises class, retrieves header and main body from message /// </summary> /// <param name="response">Traci response message</param> public TraciResponseMessage(byte[] response) { MessageLength = TraciDataHelper.GetTraciInteger(response, 0); Command = TraciDataHelper.GetTraciCommand(response, 5); ReadStatusHeader(response); SetMessageBody(response); SetMessageStart(); }