How to use XBee API library to distinguish data from two transmitters?

I have three XBees (S1s) in API mode and I am using Andrew Rapp’s xbee library . I have two XBees as end devices on Arduino Dues transmitting data to one XBee coordinator on a Arduino Mega. One of the XBees is transmitting a double at 50 ms, and the other XBee is transmitting a set of three 2-byte ints at 20 ms.

I am using rx16.getRemoteAddress16() to get some sort of address from the transmitting XBee in order to find which XBee sent the data in order to parse it correctly. Is this the correct way of distinguishing the source of the data, or is there a better way? It remains working even after a power toggle on all the XBees.

Rx - Arduino Mega (Coordinator) receiving data from two transmitters.

// Arduino MEGA

#include <XBee.h>
XBee xbee = XBee();
XBeeResponse response = XBeeResponse();
Rx16Response rx16 = Rx16Response();

union {
  float Value;
  byte b[4];
} force;

void setup() {
  Serial.begin(9600);
  Serial1.begin(9600);
  xbee.setSerial(Serial1);
}

void loop() {
  xbee.readPacket();
  if (xbee.getResponse().isAvailable()) {
    if (xbee.getResponse().getApiId() == RX_16_RESPONSE) {
      xbee.getResponse().getRx16Response(rx16);
      Serial.print(rx16.getRemoteAddress16()); Serial.print('\t');
      if (rx16.getRemoteAddress16() == 22136) {
        for (int i = 0; i <= 4; i++)  force.b[i] = rx16.getData(i); // rx16.getRemoteAddress16() = 22136
        Serial.print((String)force.Value); Serial.print('\t');
      } else if (rx16.getRemoteAddress16() == 13398) {
        Serial.print(word(rx16.getData(0), rx16.getData(1))); Serial.print('\t');  // rx16.getRemoteAddress16() = 13398
        Serial.print(word(rx16.getData(2), rx16.getData(3))); Serial.print('\t');
        Serial.print(word(rx16.getData(4), rx16.getData(5)));
      }
      Serial.println();
    }
  }
}