マイコン間通信用

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers linemiconget.cpp Source File

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 }