mirror of
https://github.com/dalathegreat/Battery-Emulator.git
synced 2025-10-03 09:49:32 +02:00
Add more Arduino/FreeRTOS test stubs so that eModbus builds in ESP32 mode.
This commit is contained in:
parent
9eac0a90b5
commit
55d8a24f55
12 changed files with 86 additions and 11 deletions
|
@ -62,7 +62,7 @@ include_directories("${source_dir}/googletest/include"
|
|||
include_directories(emul)
|
||||
|
||||
# For eModBus
|
||||
add_compile_definitions(__linux__ HW_LILYGO NISSAN_LEAF_BATTERY)
|
||||
add_compile_definitions(ESP32 HW_LILYGO NISSAN_LEAF_BATTERY)
|
||||
|
||||
# add the executable
|
||||
add_executable(tests
|
||||
|
@ -74,9 +74,12 @@ add_executable(tests
|
|||
../Software/src/devboard/utils/events.cpp
|
||||
../Software/src/datalayer/datalayer.cpp
|
||||
../Software/src/datalayer/datalayer_extended.cpp
|
||||
../Software/src/lib/eModbus-eModbus/ModbusMessage.cpp
|
||||
../Software/src/lib/eModbus-eModbus/ModbusTypeDefs.cpp
|
||||
../Software/src/lib/eModbus-eModbus/Logging.cpp
|
||||
../Software/src/lib/eModbus-eModbus/ModbusMessage.cpp
|
||||
../Software/src/lib/eModbus-eModbus/ModbusServer.cpp
|
||||
../Software/src/lib/eModbus-eModbus/ModbusServerRTU.cpp
|
||||
../Software/src/lib/eModbus-eModbus/ModbusTypeDefs.cpp
|
||||
../Software/src/lib/eModbus-eModbus/RTUutils.cpp
|
||||
# ../Software/src/lib/eModbus-eModbus/scripts/mbServerFCs.cpp
|
||||
../Software/USER_SETTINGS.cpp
|
||||
../Software/src/battery/BATTERIES.cpp
|
||||
|
@ -90,6 +93,7 @@ add_executable(tests
|
|||
emul/time.cpp
|
||||
emul/serial.cpp
|
||||
emul/Arduino.cpp
|
||||
emul/freertos/FreeRTOS.cpp
|
||||
)
|
||||
|
||||
target_link_libraries(tests
|
||||
|
|
|
@ -1,5 +1,16 @@
|
|||
#include "Arduino.h"
|
||||
|
||||
void delay(unsigned long ms) {}
|
||||
void delayMicroseconds(unsigned long us) {}
|
||||
int digitalRead(uint8_t pin) {
|
||||
return 0;
|
||||
}
|
||||
void digitalWrite(uint8_t pin, uint8_t val) {}
|
||||
unsigned long micros() {
|
||||
return 0;
|
||||
}
|
||||
void pinMode(uint8_t pin, uint8_t mode) {}
|
||||
|
||||
int max(int a, int b) {
|
||||
return (a > b) ? a : b;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
#ifndef ARDUINO_H
|
||||
#define ARDUINO_H
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "HardwareSerial.h"
|
||||
#include "Print.h"
|
||||
|
||||
#include "esp-hal-gpio.h"
|
||||
|
||||
|
@ -9,10 +15,13 @@ void pinMode(uint8_t pin, uint8_t mode);
|
|||
void digitalWrite(uint8_t pin, uint8_t val);
|
||||
int digitalRead(uint8_t pin);
|
||||
|
||||
unsigned long micros();
|
||||
// Can be previously declared as a macro in stupid eModbus
|
||||
#undef millis
|
||||
unsigned long millis();
|
||||
|
||||
void delay(unsigned long ms);
|
||||
void delayMicroseconds(unsigned long us);
|
||||
int max(int a, int b);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
#define HARDWARESERIAL_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include <cstddef>
|
||||
#include "Print.h"
|
||||
#include "Stream.h"
|
||||
|
||||
enum SerialConfig {
|
||||
|
@ -33,11 +35,18 @@ enum SerialConfig {
|
|||
|
||||
class HardwareSerial : public Stream {
|
||||
public:
|
||||
int available() { return 0; }
|
||||
uint32_t baudRate() { return 9600; }
|
||||
void begin(unsigned long baud, uint32_t config = SERIAL_8N1, int8_t rxPin = -1, int8_t txPin = -1,
|
||||
bool invert = false, unsigned long timeout_ms = 20000UL, uint8_t rxfifo_full_thrhd = 120) {}
|
||||
int read() { return 0; }
|
||||
void setTxBufferSize(uint16_t size) {}
|
||||
void setRxBufferSize(uint16_t size) {}
|
||||
bool setRxFIFOFull(uint8_t fifoBytes) { return false; }
|
||||
size_t write(uint8_t) { return 0; }
|
||||
};
|
||||
|
||||
extern HardwareSerial Serial0;
|
||||
extern HardwareSerial Serial;
|
||||
extern HardwareSerial Serial1;
|
||||
extern HardwareSerial Serial2;
|
||||
|
||||
|
|
|
@ -1,6 +1,13 @@
|
|||
#ifndef PRINT_H
|
||||
#define PRINT_H
|
||||
|
||||
class Print {};
|
||||
class Print {
|
||||
public:
|
||||
virtual void flush() {}
|
||||
void printf(const char* format, ...) {}
|
||||
virtual size_t write(uint8_t) = 0;
|
||||
virtual size_t write(const char* s) { return 0; }
|
||||
virtual size_t write(const uint8_t* buffer, size_t size) { return 0; }
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,6 +1,12 @@
|
|||
#ifndef STREAM_H
|
||||
#define STREAM_H
|
||||
|
||||
class Stream {};
|
||||
#include "Print.h"
|
||||
|
||||
class Stream : public Print {
|
||||
public:
|
||||
virtual int available() = 0;
|
||||
virtual int read() = 0;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
10
test/emul/freertos/FreeRTOS.cpp
Normal file
10
test/emul/freertos/FreeRTOS.cpp
Normal file
|
@ -0,0 +1,10 @@
|
|||
#include "FreeRTOS.h"
|
||||
|
||||
extern "C" {
|
||||
BaseType_t xTaskCreatePinnedToCore(TaskFunction_t pxTaskCode, const char* const pcName, const uint32_t ulStackDepth,
|
||||
void* const pvParameters, UBaseType_t uxPriority, TaskHandle_t* const pxCreatedTask,
|
||||
const BaseType_t xCoreID) {
|
||||
return 0;
|
||||
}
|
||||
void vTaskDelete(TaskHandle_t xTaskToDelete) {}
|
||||
}
|
21
test/emul/freertos/FreeRTOS.h
Normal file
21
test/emul/freertos/FreeRTOS.h
Normal file
|
@ -0,0 +1,21 @@
|
|||
#ifndef _FREERTOS_H_
|
||||
#define _FREERTOS_H_
|
||||
|
||||
#include "task.h"
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
typedef int BaseType_t;
|
||||
typedef unsigned int UBaseType_t;
|
||||
|
||||
const BaseType_t tskNO_AFFINITY = -1;
|
||||
|
||||
extern "C" {
|
||||
BaseType_t xTaskCreatePinnedToCore(TaskFunction_t pxTaskCode, const char* const pcName, const uint32_t ulStackDepth,
|
||||
void* const pvParameters, UBaseType_t uxPriority, TaskHandle_t* const pxCreatedTask,
|
||||
const BaseType_t xCoreID);
|
||||
|
||||
void vTaskDelete(TaskHandle_t xTaskToDelete);
|
||||
}
|
||||
|
||||
#endif
|
2
test/emul/freertos/task.h
Normal file
2
test/emul/freertos/task.h
Normal file
|
@ -0,0 +1,2 @@
|
|||
typedef void* TaskHandle_t;
|
||||
typedef void (*TaskFunction_t)(void*);
|
|
@ -1,5 +1,5 @@
|
|||
#include "HardwareSerial.h"
|
||||
|
||||
HardwareSerial Serial0;
|
||||
HardwareSerial Serial;
|
||||
HardwareSerial Serial1;
|
||||
HardwareSerial Serial2;
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
#include "../Software/src/datalayer/datalayer.h"
|
||||
#include "../Software/src/devboard/safety/safety.h"
|
||||
#include "../Software/src/devboard/utils/events.h"
|
||||
#include "../Software/src/inverter/ModbusInverterProtocol.h"
|
||||
|
||||
TEST(SafetyTests, ShouldSetEventWhenTemperatureTooHigh) {
|
||||
init_events();
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
#include "../Software/src/datalayer/datalayer.h"
|
||||
#include "../Software/src/devboard/safety/safety.h"
|
||||
#include "../Software/src/devboard/utils/events.h"
|
||||
#include "../Software/src/inverter/ModbusInverterProtocol.h"
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
testing::InitGoogleTest(&argc, argv);
|
||||
|
@ -12,5 +11,3 @@ int main(int argc, char** argv) {
|
|||
}
|
||||
|
||||
void store_settings_equipment_stop(void) {}
|
||||
|
||||
ModbusInverterProtocol::ModbusInverterProtocol() {}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue