Advertisement
redsees

Untitled

Mar 17th, 2017
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.23 KB | None | 0 0
  1. /*
  2.  *  AX.25 protocol frame structure:
  3.  *  -------------------------------
  4.  *
  5.  *  Flag Field: 8 bits (1 byte)
  6.  *  Header Field: 128 bits (16 bytes)
  7.  *      {
  8.  *    Destination Address: 56 bits (7 bytes)
  9.  *    Source      Address: 56 bits (7 bytes)
  10.  *    Control Bits       : 8  bits (1 byte )
  11.  *    Protocol Identifier: 8  bits (1 byte )
  12.  *  }
  13.  *  Data Field: 32-2048 bits (4-256 bytes)
  14.  *  Frame Checksum Field: 16 bits (2 bytes)
  15.  *  Flag Field: 8 bits (1 byte)
  16.  *
  17.  */
  18.  
  19. unsigned char AX25_Flag;
  20. unsigned char AX25_Header[16]  = {0};
  21. unsigned char AX25_Data[256]   = {0};
  22. unsigned char AX25_CheckSum[2] = {0};
  23.  
  24. int inByte = 0;
  25.  
  26. void setup()
  27. {
  28.     // Serial1 : TX pin 18, RX pin 19
  29.     // Serial2 : TX pin 16, RX pin 17
  30.     // Serial1 will receive data from a device and resend it on Serial2 using AX25 protocol format
  31.  
  32.     Serial1.begin(9600);
  33.     Serial2.begin(9600);
  34. }
  35.  
  36. void loop()
  37. {
  38.     // Wait until data is received on Serial1 port
  39.     while ( !(Serial1.available()) );
  40.    
  41.     // Read received data
  42.     inByte = Serial1.read();
  43.    
  44.     // Send the data using AX.25 protocol format
  45.     AX25_Data[0] = (unsigned char) inByte & 0xFF;
  46.  
  47.     Serial2.write(AX25_Flag);
  48.     Serial2.write(AX25_Header, 16);
  49.     Serial2.write(AX25_Data, 256);
  50.     Serial2.write(AX25_CheckSum, 2);
  51.     Serial2.write(AX25_Flag);
  52.    
  53.     delay(500);
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement