From 4a2a196607e6136669d7aa10d112e86f5416182d Mon Sep 17 00:00:00 2001 From: Kilrah Date: Sat, 4 May 2019 12:06:56 +0200 Subject: [PATCH] VC++ compilation continued --- radio/src/bluetooth.cpp | 12 +++++++++--- radio/src/gyro.cpp | 1 + radio/src/myeeprom.h | 2 +- radio/src/pulses/pulses.h | 15 ++++++++++----- radio/src/telemetry/telemetry_sensors.cpp | 2 ++ 5 files changed, 23 insertions(+), 9 deletions(-) diff --git a/radio/src/bluetooth.cpp b/radio/src/bluetooth.cpp index b3fd28e3a..9c81e7a69 100644 --- a/radio/src/bluetooth.cpp +++ b/radio/src/bluetooth.cpp @@ -30,6 +30,12 @@ #define BLUETOOTH_COMMAND_BAUD_115200 "TTM:BPS-115200" #endif +#if defined(_MSC_VER) + #define SWAP32(val) (_byteswap_ulong(val)) +#elif defined(__GNUC__ ) + #define SWAP32(val) (__builtin_bswap32(val)) +#endif + extern Fifo btTxFifo; extern Fifo btRxFifo; @@ -633,7 +639,7 @@ const char * Bluetooth::bootloaderEraseFlash(uint32_t start, uint32_t size) uint32_t address = start; uint32_t end = start + size; while (address < end) { - uint32_t addressBigEndian = __builtin_bswap32(address); + uint32_t addressBigEndian = SWAP32(address); bootloaderSendCommand(CMD_SECTOR_ERASE, &addressBigEndian, sizeof(addressBigEndian)); const char * result = bootloaderWaitCommandResponse(); if (result) @@ -649,8 +655,8 @@ const char * Bluetooth::bootloaderEraseFlash(uint32_t start, uint32_t size) const char * Bluetooth::bootloaderStartWriteFlash(uint32_t start, uint32_t size) { uint32_t cmdArgs[2] = { - __builtin_bswap32(start), - __builtin_bswap32(size), + SWAP32(start), + SWAP32(size), }; bootloaderSendCommand(CMD_DOWNLOAD, cmdArgs, sizeof(cmdArgs)); const char * result = bootloaderWaitCommandResponse(); diff --git a/radio/src/gyro.cpp b/radio/src/gyro.cpp index 5822fc76b..a3c6a6244 100644 --- a/radio/src/gyro.cpp +++ b/radio/src/gyro.cpp @@ -19,6 +19,7 @@ */ #include "opentx.h" +#define _USE_MATH_DEFINES #include #define ACC_LSB_VALUE 0.000488 // 0.488 mg/LSB diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index 8dad60198..51d6d9f4f 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -30,7 +30,7 @@ #define GET_TRAINER_PPM_POLARITY() g_model.trainerData.pulsePol #define GET_SBUS_POLARITY(idx) g_model.moduleData[idx].sbus.noninverted #define GET_MODULE_PPM_DELAY(idx) (g_model.moduleData[idx].ppm.delay * 50 + 300) -#define GET_TRAINER_PPM_DELAY(idx) (g_model.trainerData.delay * 50 + 300) +#define GET_TRAINER_PPM_DELAY() (g_model.trainerData.delay * 50 + 300) #define SET_DEFAULT_PPM_FRAME_LENGTH(idx) g_model.moduleData[idx].ppm.frameLength = 4 * max((int8_t)0, g_model.moduleData[idx].channelsCount) #if defined(PCBHORUS) diff --git a/radio/src/pulses/pulses.h b/radio/src/pulses/pulses.h index e6d0c49e5..a1f32c7fc 100644 --- a/radio/src/pulses/pulses.h +++ b/radio/src/pulses/pulses.h @@ -137,6 +137,15 @@ struct BindInformation { typedef void (* ModuleCallback)(); +#if defined(SIMU) + #define BIND_INFO \ + bindInformation->candidateReceiversCount = 2; \ + strcpy(bindInformation->candidateReceiversNames[0], "SimuRX1"); \ + strcpy(bindInformation->candidateReceiversNames[1], "SimuRX2"); +#else + #define BIND_INFO +#endif + PACK(struct ModuleState { uint8_t protocol:4; uint8_t mode:4; @@ -155,11 +164,7 @@ PACK(struct ModuleState { bindInformation = destination; callback = bindCallback; mode = MODULE_MODE_BIND; -#if defined(SIMU) - bindInformation->candidateReceiversCount = 2; - strcpy(bindInformation->candidateReceiversNames[0], "SimuRX1"); - strcpy(bindInformation->candidateReceiversNames[1], "SimuRX2"); -#endif + BIND_INFO; } void readModuleInformation(ModuleInformation * destination, int8_t first, int8_t last) { diff --git a/radio/src/telemetry/telemetry_sensors.cpp b/radio/src/telemetry/telemetry_sensors.cpp index 88489a9d3..37486192d 100644 --- a/radio/src/telemetry/telemetry_sensors.cpp +++ b/radio/src/telemetry/telemetry_sensors.cpp @@ -19,6 +19,8 @@ */ #include "opentx.h" +#define _USE_MATH_DEFINES +#include TelemetryItem telemetryItems[MAX_TELEMETRY_SENSORS]; uint8_t allowNewSensors;