m3Dpi robot, based on the Pololu 3pi and m3pi. m3Dpi has multiple distance sensors, gyroscope, compass and accelerometer sensor to be fully aware of its environment. With the addition of xbee or nrf24n01 module it has wireless communication capabilities.
Dependencies: m3Dpi mbed-rtos mbed MbedJSONValue
binaryReporter.cpp
00001 #include "binaryReporter.h" 00002 00003 void BinaryReporter::print(char* data, int size) 00004 { 00005 for(int i = 0; i < size; i++){ 00006 out->putc(data[i]); 00007 } 00008 } 00009 00010 void BinaryReporter::time(time_t seconds) 00011 { 00012 00013 } 00014 00015 void BinaryReporter::distance(m3dpi::Distance distance) 00016 { 00017 const int SIZE = 13; 00018 char data[SIZE] = {START,'a', SIZE-1, DISTANCE}; 00019 data [4] = distance.front; 00020 data [5] = distance.front_right; 00021 data [6] = distance.right; 00022 data [7] = distance.back_right; 00023 data [8] = distance.back; 00024 data [9] = distance.back_left; 00025 data [10] = distance.left; 00026 data [11] = distance.front_left; 00027 data [12] = 0x00; // checksum 00028 print(data, SIZE); 00029 } 00030 00031 void BinaryReporter::acceleration(m3dpi::Acceleration acc) 00032 { 00033 const int SIZE = 11; 00034 char data[SIZE] = {START,'a', SIZE-1, ACCELERATION}; 00035 data[4] = acc.x / 256; 00036 data[5] = acc.x % 256; 00037 data[6] = acc.y / 256; 00038 data[5] = acc.y % 256; 00039 data[8] = acc.z / 256; 00040 data[9] = acc.z % 256; 00041 data [10] = 0x00; // checksum 00042 print(data, SIZE); 00043 } 00044 00045 void BinaryReporter::direction(m3dpi::Direction direction) 00046 { 00047 const int SIZE = 11; 00048 char data[SIZE] = {START,'a', SIZE-1, DIRECTION}; 00049 data[4] = direction.x / 256; 00050 data[5] = direction.x % 256; 00051 data[6] = direction.y / 256; 00052 data[5] = direction.y % 256; 00053 data[8] = direction.z / 256; 00054 data[9] = direction.z % 256; 00055 data [10] = 0x00; // checksum 00056 print(data, SIZE); 00057 } 00058 00059 void BinaryReporter::rotation(m3dpi::Rotation rotation) 00060 { 00061 const int SIZE = 11; 00062 char data[SIZE] = {START,'a', SIZE-1, ROTATION}; 00063 data[4] = rotation.x / 256; 00064 data[5] = rotation.x % 256; 00065 data[6] = rotation.y / 256; 00066 data[5] = rotation.y % 256; 00067 data[8] = rotation.z / 256; 00068 data[9] = rotation.z % 256; 00069 data [10] = 0x00; // checksum 00070 print(data, SIZE); 00071 }
Generated on Wed Jul 20 2022 08:05:49 by 1.7.2