code: function(data) {
  		var defered = q.defer();
  		
  		var numValues = data.numVals;
  		var numAddresses = data.numAddresses;
  		var numResults = data.scansPerRead;
  
  		data.data = [];
  		data.autoRecoveryDetected = false;
  		var i, j = 0;
  
  		// Initialize variables to build a timestamp.
  		var time = data.time;
  		var timeIncrement = data.timeIncrement;
  
  		// Initialize variables to control a data pointer.
  		var pointerIncrement = ARCH_DOUBLE_NUM_BYTES;
  		var pointer = 0;
  
  		// Read and save data from the strea data (dta.rawData) buffer object.
  		for (i = 0; i < numResults; i++) {
  			var dataStore = [];
  			dataStore.push(time);
  			time += timeIncrement;
  			for (j = 0; j < numAddresses; j++) {
  				var val = data.rawData.readDoubleLE(pointer);
  				if(val == -9999) {
  					data.autoRecoveryDetected = true;
  				}
  				dataStore.push(val);
  				pointer += pointerIncrement;
  			}
  			data.data.push(dataStore);
  		}
  		data.rawData = null;
  		delete data.rawData;
  
  		defered.resolve(data);
  		return defered.promise;
  	}
docs: The goal of this function is to transpose & pull out information, and
  calculate a timestamp for each stream data point given that the buffer
  object that gets populated by the streamRead function as "rawData"
  in the format:
  [x1, y1, x2, y2, ... ]
  to:
  [[timeStamp, x1, y1], [timeStamp, x2, y2], ... ]
  and save that new javascript object to the data object as "data".
  
  This format was chosen because the created "data_buffer.js" file in
  Kipling and the "flot" graphing program prefer data to be organized in
  similar ways to this.  It also cut down on the number of loops required
  to parse the data into one full pass-through of the data.