Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions inc/sp140/battery/BatteryData.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#ifndef BATTERY_DATA_H
#define BATTERY_DATA_H

typedef struct {

float watts;
float wattHoursUsed;

} BatteryData;

#endif
7 changes: 3 additions & 4 deletions inc/sp140/display.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

#include <Adafruit_ST7735.h>
#include "utilities.h"
#include "../../inc/sp140/battery/BatteryData.h"

// Library config
#define NO_ADAFRUIT_SSD1306_COLOR_COMPATIBILITY
Expand Down Expand Up @@ -58,9 +59,6 @@ struct UIColors {
uint16_t ui_accent;
};

extern float watts;
extern float wattHoursUsed;

// Set up the display and show splash screen
void setupDisplay(const STR_DEVICE_DATA_140_V1& deviceData, const HardwareConfig& board_config);

Expand All @@ -70,7 +68,8 @@ void displayMeta(const STR_DEVICE_DATA_140_V1& deviceData, int duration = 1500);
void resetRotation(unsigned int orientation);

// Show data on screen
void updateDisplay(const STR_DEVICE_DATA_140_V1& deviceData,
void updateDisplay(BatteryData& batteryData,
const STR_DEVICE_DATA_140_V1& deviceData,
const STR_ESC_TELEMETRY_140& escTelemetry,
float altitude, bool armed, bool cruising,
unsigned int armedStartMillis);
Expand Down
30 changes: 0 additions & 30 deletions inc/sp140/esc.h

This file was deleted.

22 changes: 22 additions & 0 deletions inc/sp140/esc/EscBase.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#ifndef ESC_BASE_H
#define ESC_BASE_H

#include <Arduino.h>
#include "sp140/structs.h"
#include "EscData.h"

class EscBase {

public:
virtual void initESC(int escPin) = 0;
virtual void setupESCSerial() = 0;
virtual void setESCThrottle(int throttlePWM) = 0;
virtual void readESCTelemetry(BatteryData& batteryData, EscData& escData) = 0;
virtual void handleESCSerialData(BatteryData& batteryData, EscData& escData, byte buffer[]) = 0;
virtual void prepareESCSerialRead() = 0;
virtual int checkFletcher16(byte byteBuffer[]) = 0;
};



#endif
15 changes: 15 additions & 0 deletions inc/sp140/esc/EscData.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#ifndef ESC_DATA_H
#define ESC_DATA_H

#include <Arduino.h>
#include "sp140/structs.h"


typedef struct {

STR_ESC_TELEMETRY_140 escTelemetryData;
telem_esc_t raw_esc_telemdata;

} EscData;

#endif
35 changes: 35 additions & 0 deletions inc/sp140/esc/FactoryEsc.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#ifndef FACTORY_ESC_H
#define FACTORY_ESC_H

#include <Servo.h>
#include <CircularBuffer.hpp>
#include "EscBase.h"
#include "EscData.h"

// ESC communication parameters
#define ESC_BAUD_RATE 115200
#define ESC_DATA_V2_SIZE 22
#define READ_INTERVAL 0
#define ESC_TIMEOUT 15

class FactoryEsc : public EscBase {
public:
static void printRawSentence(byte buffer[]);

FactoryEsc(CircularBuffer<float, 50>* pVoltageBuffer);

virtual void initESC(int escPin);
virtual void setupESCSerial();
virtual void setESCThrottle(int throttlePWM);
virtual void readESCTelemetry(BatteryData& batteryData, EscData& escData);
virtual void handleESCSerialData(BatteryData& batteryData, EscData& escData, byte buffer[]);
virtual void prepareESCSerialRead();
virtual int checkFletcher16(byte byteBuffer[]);
private:

Servo esc;
CircularBuffer<float, 50>* pVoltageBuffer;
};


#endif
5 changes: 0 additions & 5 deletions inc/sp140/globals.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,6 @@ extern unsigned long cruisedAtMillis;
extern int prevPotLvl;
extern int cruisedPotVal;

extern float watts;
extern float wattHoursUsed;

extern STR_DEVICE_DATA_140_V1 deviceData;

extern STR_ESC_TELEMETRY_140 escTelemetryData;

#endif // INC_SP140_GLOBALS_H_
1 change: 1 addition & 0 deletions inc/sp140/rp2040-config.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#define INC_SP140_RP2040_CONFIG_H_

#include "shared-config.h"
#include <HardwareSerial.h>

#define SerialESC Serial1 // ESC UART connection

Expand Down
5 changes: 3 additions & 2 deletions src/sp140/display.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,7 @@ void setupDisplay(const STR_DEVICE_DATA_140_V1& deviceData, const HardwareConfig
}

void updateDisplay(
BatteryData& batteryData,
const STR_DEVICE_DATA_140_V1& deviceData,
const STR_ESC_TELEMETRY_140& escTelemetry,
float altitude, bool armed, bool cruising,
Expand Down Expand Up @@ -193,9 +194,9 @@ void updateDisplay(
canvas.print(" ?%");
}

float kWatts = constrain(watts / 1000.0, 0, 50);
float kWatts = constrain(batteryData.watts / 1000.0, 0, 50);
float volts = escTelemetry.volts;
float kWh = wattHoursUsed / 1000.0;
float kWh = batteryData.wattHoursUsed/ 1000.0;
float amps = escTelemetry.amps;

// for testing
Expand Down
208 changes: 0 additions & 208 deletions src/sp140/esc.cpp

This file was deleted.

Loading