You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.7 KiB
C++

/*
Binary Send
This code is meant to demonstrate the sending of binary information
from the arduino to a serial client. See the serial_client.py file
which can read the payload being sent
*/
unsigned int large_number = 3257493648;
/*
Decimal: 3257493648
Hex: C2296890
Binary: 11000010 00101001 01101000 10010000
b1 byte: 11000010
b1 hex: C2
b2 byte: 101001
b2 hex: 29
b3 byte: 1101000
b3 hex: 68
b4 byte: 10010000
b4 hex: 90
Number: 11000010001010010110100010010000
*/
// unpacks the int into bytes
byte b1 = large_number >> 24;
byte b2 = large_number >> 16;
byte b3 = large_number >> 8;
byte b4 = large_number;
// Places the bytes in little endian
byte byteBuffer[4] = {b4, b3, b2, b1};
void setup() {
//Initialize serial and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
// prints title with ending line break
Serial.print("Decimal: ");Serial.print(large_number); Serial.println();
Serial.print("Hex: ");Serial.print(large_number, HEX); Serial.println();
Serial.print("Binary: ");Serial.print(large_number, BIN); Serial.println();
Serial.print("b1 byte: ");Serial.print(b1, BIN); Serial.println();
Serial.print("b1 hex: ");Serial.print(b1, HEX); Serial.println();
Serial.print("b2 byte: ");Serial.print(b2, BIN); Serial.println();
Serial.print("b2 hex: ");Serial.print(b2, HEX); Serial.println();
Serial.print("b3 byte: ");Serial.print(b3, BIN); Serial.println();
Serial.print("b3 hex: ");Serial.print(b3, HEX); Serial.println();
Serial.print("b4 byte: ");Serial.print(b4, BIN); Serial.println();
Serial.print("b4 hex: ");Serial.print(b4, HEX); Serial.println();
Serial.print("Number: "); Serial.print(large_number, BIN); Serial.println();
Serial.println("---------------------------------");
Serial.print("high byte: ");Serial.print(highByte(large_number >> 16), BIN); Serial.println();
Serial.print("high hex: ");Serial.print(highByte(large_number >> 16), HEX); Serial.println();
Serial.print("low byte: ");Serial.print(lowByte(large_number >> 16), BIN); Serial.println();
Serial.print("low hex: ");Serial.print(lowByte(large_number >> 16), HEX); Serial.println();
Serial.println("---------------------------------");
Serial.print("high byte: ");Serial.print(highByte(large_number), BIN); Serial.println();
Serial.print("high hex: ");Serial.print(highByte(large_number), HEX); Serial.println();
Serial.print("low byte: ");Serial.print(lowByte(large_number), BIN); Serial.println();
Serial.print("low hex: ");Serial.print(lowByte(large_number), HEX); Serial.println();
}
void loop() {
Serial.write('H');
Serial.write(byteBuffer, sizeof(byteBuffer));
Serial.println();
delay(1000);
}