マイコン間通信用
Embed:
(wiki syntax)
Show/hide line numbers
linemiconget.cpp
00001 #include "linemiconget.h" 00002 00003 linemiconget::linemiconget(PinName linegettx, PinName linegetrx): 00004 serial(linegettx, linegetrx) 00005 { 00006 serial.baud(115200); 00007 serial.setHeaders(FIRST_HEDDER, SECOND_HEDDER); 00008 serial.startReceive(BUFFER_SIZE); 00009 } 00010 00011 void linemiconget::receiveState() 00012 { 00013 serial.getData(rxdata); 00014 for(int i = 0; i < TWO_BYTE_DATA; i++) { 00015 //if((((rxdata[2*i]<<8)|rxdata[2*i+1]) - 32768 > 1200) || (((rxdata[2*i]<<8)|rxdata[2*i+1]) - 32768 < -1)) { 00016 // } else { 00017 data[i] = ((rxdata[2*i]<<8)|rxdata[2*i+1]) - 32768; 00018 // } 00019 } 00020 for(int i = 0; i < ONE_BYTE_DATA; i++)data[TWO_BYTE_DATA + i] = rxdata[2*TWO_BYTE_DATA + i]; 00021 for(int i=0; i<5; i++) { 00022 line1[i] = data[5] % 2; 00023 data[5] /= 2; 00024 line2[i] = data[6] % 2; 00025 data[6] /= 2; 00026 00027 } 00028 } 00029 00030 int linemiconget::getDistance(int number) const 00031 { 00032 if((data[number] > 1200) || (data[number] < -1)) { 00033 return -1; 00034 } else { 00035 return data[number]; 00036 } 00037 } 00038 00039 int linemiconget::getEncoder(int number) const 00040 { 00041 return data[number + 2]; 00042 } 00043 00044 bool linemiconget::getLine1(int number) const 00045 { 00046 return line1[number]; 00047 } 00048 00049 bool linemiconget::getLine2(int number) const 00050 { 00051 return line2[number]; 00052 }
Generated on Fri Jul 22 2022 01:43:08 by
1.7.2
naoki tanabe