TR-mbed 1.0
Loading...
Searching...
No Matches
main.h
Go to the documentation of this file.
1//
2// Created by ankit on 1/31/23.
3//
4
5#ifndef TR_EMBEDDED_MAIN_H
6#define TR_EMBEDDED_MAIN_H
7
8#include "mbed.h"
9
10#include "algorithms/PID.h"
11#include "algorithms/TRMutex.h"
14// #include "subsystems/Chassis.h"
16
17#include "motor/PWMMotor.h"
18#include "motor/DJIMotor.h"
19
27
28
29#include <cstring>
30#define ESP_DEBUG 1 // 1 true, 0 false
31
32#define OLED_SDA PB_7
33#define OLED_SCL PB_8
34// I2C i2c(OLED_SDA, OLED_SCL);
35
36// SSD1308 oled(&i2c, 0x78);
37
38DigitalIn jumperPC9(PC_9);
39DigitalIn jumperPB1(PB_1);
40
41DigitalIn userButton(BUTTON1);
43static BufferedSerial bc(PA_0, PA_1, 115200);
44static BufferedSerial usbSerial(USBTX, USBRX, 115200);
45
47{
48 printer.updatePriority(desiredLevel);
49}
50
51void printfESP(const char *format, ...){
52 char temp[100];
53 va_list args;
54 va_start(args, format);
55 vsnprintf(temp, 100, format, args);
56 bc.write(temp, 100);
57 va_end(args);
58}
59
60void print(char statement[], priorityLevels priority = DEFAULT)
61{
62 printer.print(statement, priority);
63}
64
65void print(int integer, priorityLevels priority = DEFAULT)
66{
67 printer.print(integer, priority);
68}
69
70void printff(const char *format, ...)
71{
72 char temp[50];
73 va_list args;
74 va_start(args, format);
75 int len = vsnprintf(temp, 50, format, args);
76 if (len > 0)
77 usbSerial.write(temp, len);
78 va_end(args);
79}
80
81void fprintff(priorityLevels priority, const char *format, ...)
82{
83 char temp[50];
84 va_list args;
85 va_start(args, format);
86 vsnprintf(temp, 50, format, args);
87 printer.print(temp, priority);
88 va_end(args);
89}
90
91void println(char statement[], priorityLevels priority = DEFAULT)
92{
93 printer.println(statement, priority);
94}
95
97{
98 printer.println(integer, priority);
99}
100#define L25 PB_0
101#define L26 PC_1
102#define L27 PC_0
103
104static Remote remote(PA_10);
105static BufferedSerial referee(PC_10, PC_11, 115200); // Nucleo board: top left male pins.
106
109
110inline static void remoteRead()
111{
112 remote.read();
113}
114
115static void remotePrint()
116{
117 // for (int i = 0; i < 7; i++)
118 // printf("%d\t", dats[i]);
119 printf("%d\t%d\t%d\t%d\t%d\t%d\t", remote.leftX(), remote.leftY(), remote.rightX(), remote.rightY(), remote.leftSwitch(), remote.rightSwitch());
120 printf("\n");
121}
122
123// CANHandler canPorts(PA_11,PA_12,PB_12,PB_13);
124
125// Thread threadingRemote(osPriorityNormal);
126// Thread threadingReferee(osPriorityLow);
127// Thread threadingPrint(osPriorityBelowNormal);
128// Thread threadingLogger(osPriorityLow);
129
130float floatmod(float input, float mod){
131 float f = input;
132 while(f < 0){
133 f += mod;
134 }
135 while(f >= mod){
136 f -= mod;
137 }
138 return f;
139}
140
141constexpr float MAX_METERSPERSSECOND_60W = 1.0;
142constexpr float MAX_RADIANSPERSSECOND_60W = 6.3;
144 float v = sqrt(cs.vX * cs.vX + cs.vY * cs.vY);
147 }else{
148 return 0;
149 }
150}
151
152#endif // TR_EMBEDDED_MAIN_H
Array< int, Dynamic, 1 > v
Definition Array_initializer_list_vector_cxx11.cpp:1
priorityLevels
Definition TRMutex.h:18
@ DEFAULT
Definition TRMutex.h:21
Definition CANHandler.h:18
Definition DJIRemote.h:11
int leftX() const
Definition DJIRemote.h:149
Remote::SwitchState rightSwitch() const
Definition DJIRemote.h:169
int leftY() const
Definition DJIRemote.h:153
int rightY() const
Definition DJIRemote.h:161
void read()
Definition DJIRemote.cpp:19
int rightX() const
Definition DJIRemote.h:157
Remote::SwitchState leftSwitch() const
Definition DJIRemote.h:165
Definition TRMutex.h:28
void updatePriority(priorityLevels desiredLevel)
Definition TRMutex.cpp:15
void println(int integer, priorityLevels priority)
Definition TRMutex.cpp:69
void print(int integer, priorityLevels priority)
Definition TRMutex.cpp:33
int integer
Definition datatypes.h:8
std::string format(const std::string &str, const std::vector< std::string > &find, const std::vector< std::string > &replace)
Definition openglsupport.cpp:226
float BeybladeModulation(ChassisSpeeds cs)
Definition main.h:143
CANHandler canHandler2(PB_12, PB_13)
TRMutex printer
Definition main.h:42
constexpr float MAX_RADIANSPERSSECOND_60W
Definition main.h:142
DigitalIn jumperPB1(PB_1)
CANHandler canHandler1(PA_11, PA_12)
void println(char statement[], priorityLevels priority=DEFAULT)
Definition main.h:91
void fprintff(priorityLevels priority, const char *format,...)
Definition main.h:81
DigitalIn jumperPC9(PC_9)
void print(char statement[], priorityLevels priority=DEFAULT)
Definition main.h:60
DigitalIn userButton(BUTTON1)
void printff(const char *format,...)
Definition main.h:70
float floatmod(float input, float mod)
Definition main.h:130
void printfESP(const char *format,...)
Definition main.h:51
void updatePriority(priorityLevels desiredLevel)
Definition main.h:46
constexpr float MAX_METERSPERSSECOND_60W
Definition main.h:141
Definition ChassisSubsystem.h:66
double vY
Definition ChassisSubsystem.h:68
double vX
Definition ChassisSubsystem.h:67