1 #include "Kuon/RS160DControl.h" 2 #include "rnr/hid/360Controller.h" 3 #include "rnr/rnrconfig.h" 11 int GetLeftValue(
int Why,
int Ex) {
15 Return = Return * PERCENT;
18 Return = (.7 * Why) - (.6 * Ex);
19 Return = Return * PERCENT;
23 int GetRightValue(
int Why,
int Ex) {
27 Return = Return * PERCENT;
30 Return = (.7 * Why) + (.6 * Ex);
31 Return = Return * PERCENT;
40 error = RS160DOpenConnection(
"/dev/ttyUSB0",&(MyMotors.m_fdFront));
42 LOGDIAG2(
"Failed to open front motor controller");
45 error = RS160DOpenConnection(
"/dev/ttyUSB1",&(MyMotors.m_fdRear));
49 error = RS160DSetToSerial(MyMotors.m_fdFront);
53 error = RS160DSetToSerial(MyMotors.m_fdRear);
57 Init360Controller(&hid360);
59 while(hid360.Controller_Connected){
60 Update360ControllerValues();
62 printf(
"****Exiting****\n");
63 hid360.Controller_Connected = 0;
65 if((hid360.Right_Trig_Val >= 100) && !coast) {
66 RS160DAlterBraking(0,MyMotors.m_fdFront,0);
67 RS160DAlterBraking(0,MyMotors.m_fdFront,1);
68 RS160DAlterBraking(0,MyMotors.m_fdRear,0);
69 RS160DAlterBraking(0,MyMotors.m_fdRear,1);
70 RS160DAlterSlew(40,MyMotors.m_fdRear,0);
71 RS160DAlterSlew(40,MyMotors.m_fdRear,1);
72 RS160DAlterSlew(40,MyMotors.m_fdFront,0);
73 RS160DAlterSlew(40,MyMotors.m_fdFront,1);
76 if((hid360.Right_Trig_Val < 100) && coast) {
77 RS160DAlterBraking(31,MyMotors.m_fdFront,0);
78 RS160DAlterBraking(31,MyMotors.m_fdFront,1);
79 RS160DAlterBraking(31,MyMotors.m_fdRear,0);
80 RS160DAlterBraking(31,MyMotors.m_fdRear,1);
81 RS160DAlterSlew(0,MyMotors.m_fdRear,0);
82 RS160DAlterSlew(0,MyMotors.m_fdRear,1);
83 RS160DAlterSlew(0,MyMotors.m_fdFront,0);
84 RS160DAlterSlew(0,MyMotors.m_fdFront,1);
88 RS160DUpdateMotorSpeeds(GetLeftValue(hid360.Left_Y_Val,
89 hid360.Left_X_Val), MyMotors.m_fdFront,
91 RS160DUpdateMotorSpeeds(-1*GetRightValue(hid360.Left_Y_Val,
92 hid360.Left_X_Val), MyMotors.m_fdFront,
94 RS160DUpdateMotorSpeeds(GetLeftValue(hid360.Left_Y_Val,
95 hid360.Left_X_Val), MyMotors.m_fdRear,
97 RS160DUpdateMotorSpeeds(-1*GetRightValue(hid360.Left_Y_Val,
98 hid360.Left_X_Val), MyMotors.m_fdRear,
101 RS160DEStop(MyMotors.m_fdFront, MyMotors.m_fdRear);
102 RS160DClose(MyMotors.m_fdFront);
103 RS160DClose(MyMotors.m_fdRear);
104 Kill360Controller(&hid360);