FEP RX program TokiPS4

Dependencies:   FEP_RX22 mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 //PS4コントローラーにしわき拡張版
00002 #include "FEP_RX22.h"
00003 #include "pinconfig.h"
00004 #include <cmath>
00005 
00006 FEP_RX22 mycon(fepTX, fepRX, fepad);
00007 Serial pc(pcTX, pcRX, 115200);
00008 
00009 int main()
00010 {
00011     mycon.StartReceive();
00012     uint8_t b[16];
00013     int16_t stick[4];
00014     int16_t trigger[4];
00015     int16_t volume[3];
00016     uint8_t toggle[4];
00017     uint8_t timeout;
00018     uint8_t data[128];
00019     int pw;
00020     while(1) {
00021         
00022 #if ControllerMode
00023         for (int i=0; i<16; i++) b[i] = mycon.getButton(i);
00024         for (int i=0; i<4; i++) stick[i] = mycon.getStick(i);
00025         for (int i=0; i<2; i++) trigger[i] = mycon.getTrigger(i);
00026         
00027         for (int i=0; i<16; i++) pc.printf("%d ", b[i]);
00028         pc.printf(" | ");
00029         for (int i=0; i<4; i++) pc.printf("%3d ", stick[i]);
00030         pc.printf(" | ");
00031         for (int i=0; i<2; i++) pc.printf("%3d ", trigger[i]);
00032         pc.printf(" | ");
00033 #else
00034         mycon.getData(data);
00035         for (int i=0, tmp=1; i<8; i++) {
00036             pw = pow((float)2,i);
00037             b[i] = (int)((data[0] & tmp)/pw);
00038             pc.printf("%d ", b[i]);
00039             tmp *= 2;
00040         }
00041         for (int i=8, tmp=1, j=0; i<16; i++, j++) {
00042             pw = pow((float)2,j);
00043             b[i] = (int)((data[1] & tmp)/pw);
00044             pc.printf("%d ", b[i]);
00045             tmp *= 2;
00046         }
00047         pc.printf(" | ");
00048         
00049         for (int i=0; i<4; i++) {
00050             stick[i] = data[i+2];
00051             pc.printf("%3d ", stick[i]);
00052         }
00053         pc.printf(" | ");
00054         
00055         for (int i=0; i<2; i++) {
00056             trigger[i] = data[i+6];
00057             pc.printf("%3d ", trigger[i]);
00058         }
00059         pc.printf(" | ");
00060         
00061         for (int i=0; i<3; i++) {
00062             volume[i] = data[i+9];
00063             pc.printf("%3d ", volume[i]);
00064         }
00065         pc.printf(" | ");
00066         
00067         for (int i=0; i<4; i++) {
00068             toggle[i] = data[i+12];
00069             pc.printf("%3d ", toggle[i]);
00070         }
00071         pc.printf(" | ");
00072         
00073         timeout = data[8];
00074         pc.printf("%3d ", timeout);
00075         pc.printf(" | ");
00076         
00077 #endif
00078         if (mycon.getStatus()) pc.printf("received\r\n");
00079         else pc.printf("anything error...\r\n");
00080         
00081     }
00082 }