Corrupted Data from multiple nodes

I am designing a wireless network with one coordinator and six routers.
Currently I am using Xbee communication with Zigbee AT mode with baudrate 57600.
I got corrupted data as follows:

12,82847,8296
12,82857,87,87273,17425
07,87283,16826
07,87293,17387
07,87303,17500
07,87313,16742
07,87,73443,5272
08,73453,508,73463,5276
08,73474,5272

The correct data supposedly as follows:

12,82847,8296
12,82857,8
** 7,87273,17425**
07,87283,16826
07,87293,17387
07,87303,17500
07,87313,16742
07,87
** ,73443,5272**
08,73453,5
08,73463,5276
08,73474,5272

Could anyone advise how to solve this issue?
Thank you.

Could anyone advise how to solve this issue?

Without seeing your code? Not a chance.

This is my code:

#include <Wire.h>
#include <Adafruit_ADS1015.h>

Adafruit_ADS1115 ads;

void setup(void) {

Serial.begin(57600);
ads.setGain(GAIN_TWO);
ads.begin();
}

void loop(void) {

uint64_t millis11 = millis();
uint64_t millis12 = millis11 / 1000000000ULL;
int16_t adc0;

adc0 = ads.readADC_SingleEnded(0);
Serial.print(“08,”);
if (millis12 > 0)Serial.print((long)millis12);
Serial.print((long)(millis11 - millis12 * 1000000000));
Serial.print(",");
Serial.println(adc0);
delayMicroseconds(500);
}

millis() returns a 32 bit value. Why are you storing it in a 64 bit variable?

I can not see how that function is supposed to print any of the lines starting with 12 or 07.

if (millis12 > 0)Serial.print((long)millis12);
  Serial.print((long)(millis11 - millis12 * 1000000000));

I can't see the value of printing two numbers with no separator.

I can't see the value of what you are doing with millis() at all.

The "corruption" appears to be happening on the receiving end. Where is THAT code?

Sending data between start and end markers makes reading and parsing and error handling so much easier. Why aren't you?

First of all, The code above was used for multiple devices, the only difference was the identifier that is specific to each devices which is the 12, 07 or 08. So It doesn't really matter to write serial.print("08").

the following code was used to prevent the millis variable from overflowing. I was expecting the device will be operating beyond 32bit.

if (millis12 > 0)Serial.print((long)millis12);
Serial.print((long)(millis11 - millis12 * 1000000000));

That's the code that all I have. I simply use this device to transmit data to the receiver, and the read it from arduino serial port.
This problem only arises when multiple transmitting devices transmit data to only one receiver. Therefore, it seems that the data from one transmitter collide with another data from other transmitter when it tries to go get into the receiver, producing the result above. I believe the problem lays in the xbee radio configuration itself and not with the arduino code. Does anyone know how to configure xbee network properly for multiple nodes to one coordinator?

Thank you.

the following code was used to prevent the millis variable from overflowing.

Why is that a problem? Your watch "overflows" twice a day. Does THAT cause you any grief?

That's the code that all I have. I simply use this device to transmit data to the receiver, and the read it from arduino serial port.

HOW do you read the data from the "Arduino serial port"?

You must have different code on the receiver. It is THAT code that is causing the "corrupt" serial output.

Does anyone know how to configure xbee network properly for multiple nodes to one coordinator?

Lets turn that question around. How DID you configure the XBees?