Advertisement
Guest User

Untitled

a guest
Mar 25th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.92 KB | None | 0 0
  1. public class RS232 : MonoBehaviour {
  2.     private const int HEADER_LENGTH = 7;
  3.  
  4.     private const byte header = 0xA6;
  5.  
  6.     private byte[] BuildPacket (int monitorID, params byte[] data) {
  7.         byte[] packet = new byte[HEADER_LENGTH + data.Length + 1];
  8.  
  9.         packet[0] = header; // header
  10.         packet[1] = (byte)monitorID; // monitor ID
  11.         packet[2] = 0; // category (fixed)
  12.         packet[3] = 0; // code0 (fixed)
  13.         packet[4] = 0; // code1
  14.         packet[5] = (byte) (data.Length + 3); // length
  15.         packet[6] = 1; // data control (fixed)
  16.  
  17.         // data
  18.         for (int i = 0; i < data.Length; i++) {
  19.             packet[HEADER_LENGTH + i] = data[i];
  20.         }
  21.  
  22.         // checksum
  23.         byte checkSum = 0;
  24.         for (int i = 0; i < packet.Length - 1; i++) {
  25.             checkSum ^= packet[i];
  26.         }
  27.         packet[packet.Length - 1] = checkSum;
  28.  
  29.         return packet;
  30.     }
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement