Go Down

Topic: serial read xbee (Read 499 times) previous topic - next topic

Rian

i have xbee i receive a packet with 18 bytes .

how can i read only 1 bytes at a time after i find my start of the packet which is 7E  how can i read only the  12th byte of my packet fram which is contains 18 bytes . ??

if (Serial.read()==0x7E)



thanks

wwbrown

The code below should give you a start.  I have not tested it but it is the way I have done it a number of times.

Hope it helps,

wade

Code: [Select]
byte get_myByte();
int n_bytes;
byte discard, myByte
// I am assuming you have the packet coming into the receiving XBee and you have started Serial()

while(Serial.available() > 0)
{
  n_bytes = Serial.available();
  if(n_bytes >= 18)
  {
    if(Serial.read() == 0x7e)
    {
         for(int i = 1; i < 11; i++)
         {
              discard = Serial.read();
         }
         return(Serial.read());
    }
    // If you have gotten here you have an error so
    // return a value that signifies an error
  }
}

Rian

i tried it but it didnt work

so in this program it will discard the values from 1 to my 11th byte

then read the rest for 12th to 16th for every 7E

PaulS

One thread per problem is the limit!

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy