From d831b0f55e991f675d29ee4456d74e0abfd38762 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Thu, 5 Jul 2018 10:16:50 +0200 Subject: [PATCH 01/11] More AVR cleanup --- radio/src/definitions.h | 2 - radio/src/mixer.cpp | 2 +- radio/src/opentx.h | 2 +- radio/src/telemetry/frsky_d.cpp | 331 ------------------ radio/src/telemetry/jeti.cpp | 207 ----------- radio/src/telemetry/jeti.h | 40 --- radio/src/telemetry/mavlink.cpp | 600 -------------------------------- radio/src/telemetry/mavlink.h | 335 ------------------ 8 files changed, 2 insertions(+), 1517 deletions(-) delete mode 100644 radio/src/telemetry/frsky_d.cpp delete mode 100644 radio/src/telemetry/jeti.cpp delete mode 100644 radio/src/telemetry/jeti.h delete mode 100644 radio/src/telemetry/mavlink.cpp delete mode 100644 radio/src/telemetry/mavlink.h diff --git a/radio/src/definitions.h b/radio/src/definitions.h index 29ac760f3..6145fd175 100644 --- a/radio/src/definitions.h +++ b/radio/src/definitions.h @@ -48,8 +48,6 @@ #define __NOINIT #endif -typedef int32_t int24_t; - #if __GNUC__ #define PACK( __Declaration__ ) __Declaration__ __attribute__((__packed__)) #else diff --git a/radio/src/mixer.cpp b/radio/src/mixer.cpp index 0f3b45b94..773c3db18 100644 --- a/radio/src/mixer.cpp +++ b/radio/src/mixer.cpp @@ -32,7 +32,7 @@ int16_t trims[NUM_TRIMS] = {0}; int32_t chans[MAX_OUTPUT_CHANNELS] = {0}; BeepANACenter bpanaCenter = 0; -int24_t act [MAX_MIXERS] = {0}; +int32_t act [MAX_MIXERS] = {0}; SwOn swOn [MAX_MIXERS]; // TODO better name later... uint8_t mixWarning; diff --git a/radio/src/opentx.h b/radio/src/opentx.h index 487640f68..9e02444d7 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -1053,7 +1053,7 @@ PACK(typedef struct { }) SwOn; extern SwOn swOn[MAX_MIXERS]; -extern int24_t act[MAX_MIXERS]; +extern int32_t act[MAX_MIXERS]; #if defined(BOLD_FONT) inline bool isExpoActive(uint8_t expo) diff --git a/radio/src/telemetry/frsky_d.cpp b/radio/src/telemetry/frsky_d.cpp deleted file mode 100644 index 256919acd..000000000 --- a/radio/src/telemetry/frsky_d.cpp +++ /dev/null @@ -1,331 +0,0 @@ -/* - * Copyright (C) OpenTX - * - * Based on code named - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include "opentx.h" - -#if (defined(FRSKY_HUB) || defined(WS_HOW_HIGH)) -void checkMinMaxAltitude() -{ - if (TELEMETRY_RELATIVE_BARO_ALT_BP > telemetryData.hub.maxAltitude) - telemetryData.hub.maxAltitude = TELEMETRY_RELATIVE_BARO_ALT_BP; - if (TELEMETRY_RELATIVE_BARO_ALT_BP < telemetryData.hub.minAltitude) - telemetryData.hub.minAltitude = TELEMETRY_RELATIVE_BARO_ALT_BP; -} -#endif - -#if defined(FRSKY_HUB) -void parseTelemHubByte(uint8_t byte) -{ - static int8_t structPos; - static uint8_t lowByte; - static TS_STATE state = TS_IDLE; - - if (byte == 0x5e) { - state = TS_DATA_ID; - return; - } - if (state == TS_IDLE) { - return; - } - if (state & TS_XOR) { - byte = byte ^ 0x60; - state = (TS_STATE)(state - TS_XOR); - } - else if (byte == 0x5d) { - state = (TS_STATE)(state | TS_XOR); - return; - } - if (state == TS_DATA_ID) { - if (byte > 0x3f) { - state = TS_IDLE; - } - else { - structPos = byte * 2; - state = TS_DATA_LOW; - } - return; - } - if (state == TS_DATA_LOW) { - lowByte = byte; - state = TS_DATA_HIGH; - return; - } - - state = TS_IDLE; - -#if defined(GPS) - if ((uint8_t)structPos == offsetof(FrskyTelemetryData, gpsLatitude_bp)) { - if (lowByte || byte) - telemetryData.hub.gpsFix = 1; - else if (telemetryData.hub.gpsFix > 0 && telemetryData.hub.gpsLatitude_bp > 1) - telemetryData.hub.gpsFix = 0; - } - else if ((uint8_t)structPos == offsetof(FrskyTelemetryData, gpsLongitude_bp)) { - if (lowByte || byte) - telemetryData.hub.gpsFix = 1; - else if (telemetryData.hub.gpsFix > 0 && telemetryData.hub.gpsLongitude_bp > 1) - telemetryData.hub.gpsFix = 0; - } - - if ((uint8_t)structPos == offsetof(FrskyTelemetryData, gpsAltitude_bp) || - ((uint8_t)structPos >= offsetof(FrskyTelemetryData, gpsAltitude_ap) && (uint8_t)structPos <= offsetof(FrskyTelemetryData, gpsLatitudeNS) && (uint8_t)structPos != offsetof(FrskyTelemetryData, baroAltitude_bp) && (uint8_t)structPos != offsetof(FrskyTelemetryData, baroAltitude_ap))) { - // If we don't have a fix, we may discard the value - if (telemetryData.hub.gpsFix <= 0) - return; - } -#endif // #if defined(GPS) - - ((uint8_t*)&telemetryData.hub)[structPos] = lowByte; - ((uint8_t*)&telemetryData.hub)[structPos+1] = byte; - - switch ((uint8_t)structPos) { - - case offsetof(FrskyTelemetryData, rpm): - telemetryData.hub.rpm *= (uint8_t)60/(g_model.frsky.blades+2); - if (telemetryData.hub.rpm > telemetryData.hub.maxRpm) - telemetryData.hub.maxRpm = telemetryData.hub.rpm; - break; - - case offsetof(FrskyTelemetryData, temperature1): - if (telemetryData.hub.temperature1 > telemetryData.hub.maxTemperature1) - telemetryData.hub.maxTemperature1 = telemetryData.hub.temperature1; - break; - - case offsetof(FrskyTelemetryData, temperature2): - if (telemetryData.hub.temperature2 > telemetryData.hub.maxTemperature2) - telemetryData.hub.maxTemperature2 = telemetryData.hub.temperature2; - break; - - case offsetof(FrskyTelemetryData, current): - if ((int16_t)telemetryData.hub.current > 0 && ((int16_t)telemetryData.hub.current + g_model.frsky.fasOffset) > 0) - telemetryData.hub.current += g_model.frsky.fasOffset; - else - telemetryData.hub.current = 0; - if (telemetryData.hub.current > telemetryData.hub.maxCurrent) - telemetryData.hub.maxCurrent = telemetryData.hub.current; - break; - - case offsetof(FrskyTelemetryData, currentConsumption): - // we receive data from openXsensor. stops the calculation of consumption and power - telemetryData.hub.openXsensor = 1; - break; - - case offsetof(FrskyTelemetryData, volts_ap): -#if defined(FAS_PROTOTYPE) - telemetryData.hub.vfas = (telemetryData.hub.volts_bp * 10 + telemetryData.hub.volts_ap); -#else - telemetryData.hub.vfas = ((telemetryData.hub.volts_bp * 10 + telemetryData.hub.volts_ap) * 21) / 11; -#endif - /* TODO later if (!telemetryData.hub.minVfas || telemetryData.hub.minVfas > telemetryData.hub.vfas) - telemetryData.hub.minVfas = telemetryData.hub.vfas; */ - break; - - case offsetof(FrskyTelemetryData, baroAltitude_bp): - // First received barometer altitude => Altitude offset - if (!telemetryData.hub.baroAltitudeOffset) - telemetryData.hub.baroAltitudeOffset = -telemetryData.hub.baroAltitude_bp; - telemetryData.hub.baroAltitude_bp += telemetryData.hub.baroAltitudeOffset; - checkMinMaxAltitude(); - break; - -#if defined(GPS) - case offsetof(FrskyTelemetryData, gpsAltitude_ap): - if (!telemetryData.hub.gpsAltitudeOffset) - telemetryData.hub.gpsAltitudeOffset = -telemetryData.hub.gpsAltitude_bp; - telemetryData.hub.gpsAltitude_bp += telemetryData.hub.gpsAltitudeOffset; - if (!telemetryData.hub.baroAltitudeOffset) { - if (telemetryData.hub.gpsAltitude_bp > telemetryData.hub.maxAltitude) - telemetryData.hub.maxAltitude = telemetryData.hub.gpsAltitude_bp; - if (telemetryData.hub.gpsAltitude_bp < telemetryData.hub.minAltitude) - telemetryData.hub.minAltitude = telemetryData.hub.gpsAltitude_bp; - } - if (!telemetryData.hub.pilotLatitude && !telemetryData.hub.pilotLongitude) { - // First received GPS position => Pilot GPS position - getGpsPilotPosition(); - } - else if (telemetryData.hub.gpsDistNeeded || menuHandlers[menuLevel] == menuViewTelemetryFrsky) { - getGpsDistance(); - } - break; - - case offsetof(FrskyTelemetryData, gpsSpeed_bp): - // Speed => Max speed - if (telemetryData.hub.gpsSpeed_bp > telemetryData.hub.maxGpsSpeed) - telemetryData.hub.maxGpsSpeed = telemetryData.hub.gpsSpeed_bp; - break; -#endif - - case offsetof(FrskyTelemetryData, volts): - frskyUpdateCells(); - break; - - case offsetof(FrskyTelemetryData, accelX): - case offsetof(FrskyTelemetryData, accelY): - case offsetof(FrskyTelemetryData, accelZ): - *(int16_t*)(&((uint8_t*)&telemetryData.hub)[structPos]) /= 10; - break; - -#if 0 - case offsetof(FrskyTelemetryData, gpsAltitude_bp): - case offsetof(FrskyTelemetryData, fuelLevel): - case offsetof(FrskyTelemetryData, gpsLongitude_bp): - case offsetof(FrskyTelemetryData, gpsLatitude_bp): - case offsetof(FrskyTelemetryData, gpsCourse_bp): - case offsetof(FrskyTelemetryData, day): - case offsetof(FrskyTelemetryData, year): - case offsetof(FrskyTelemetryData, sec): - case offsetof(FrskyTelemetryData, gpsSpeed_ap): - case offsetof(FrskyTelemetryData, gpsLongitude_ap): - case offsetof(FrskyTelemetryData, gpsLatitude_ap): - case offsetof(FrskyTelemetryData, gpsCourse_ap): - case offsetof(FrskyTelemetryData, gpsLongitudeEW): - case offsetof(FrskyTelemetryData, gpsLatitudeNS): - case offsetof(FrskyTelemetryData, varioSpeed): - case offsetof(FrskyTelemetryData, power): /* because sent by openXsensor */ - case offsetof(FrskyTelemetryData, vfas): - case offsetof(FrskyTelemetryData, volts_bp): - break; - - default: - *((uint16_t *)(((uint8_t*)&telemetryData.hub) + structPos)) = previousValue; - break; -#endif - } -} -#endif // #if defined(FRSKY_HUB) - -#if defined(WS_HOW_HIGH) -void parseTelemWSHowHighByte(uint8_t byte) -{ - if (wshhStreaming < (WSHH_TIMEOUT10ms - 10)) { - ((uint8_t*)&telemetryData.hub)[offsetof(FrskyTelemetryData, baroAltitude_bp)] = byte; - checkMinMaxAltitude(); - } - else { - // At least 100mS passed since last data received - ((uint8_t*)&telemetryData.hub)[offsetof(FrskyTelemetryData, baroAltitude_bp)+1] = byte; - } - // baroAltitude_bp unit here is feet! - wshhStreaming = WSHH_TIMEOUT10ms; // reset counter -} -#endif - -void frskyDProcessPacket(const uint8_t *packet) -{ - // What type of packet? - switch (packet[0]) - { - case LINKPKT: // A1/A2/RSSI values - { - telemetryData.analog[TELEM_ANA_A1].set(packet[1], g_model.frsky.channels[TELEM_ANA_A1].type); - telemetryData.analog[TELEM_ANA_A2].set(packet[2], g_model.frsky.channels[TELEM_ANA_A2].type); - telemetryData.rssi[0].set(packet[3]); - telemetryData.rssi[1].set(packet[4] / 2); - telemetryStreaming = TELEMETRY_TIMEOUT10ms; // reset counter only if valid packets are being detected - link_counter += 256 / FRSKY_D_AVERAGING; -#if defined(VARIO) - uint8_t varioSource = g_model.frsky.varioSource - VARIO_SOURCE_A1; - if (varioSource < 2) { - telemetryData.hub.varioSpeed = applyChannelRatio(varioSource, telemetryData.analog[varioSource].value); - } -#endif - break; - } -#if defined(FRSKY_HUB) || defined (WS_HOW_HIGH) - case USRPKT: // User Data packet - uint8_t numBytes = 3 + (packet[1] & 0x07); // sanitize in case of data corruption leading to buffer overflow - for (uint8_t i=3; i ° Issue 163 - else - jetiRxBuffer[jbp++] = rl; - } - } -} -#endif - -void JETI_Init (void) -{ - DDRE &= ~(1 << DDE0); // set RXD0 pin as input - PORTE &= ~(1 << PORTE0); // disable pullup on RXD0 pin - -#ifndef SIMU - -#undef BAUD -#define BAUD 9600 -#include - UBRR0H = UBRRH_VALUE; - UBRR0L = UBRRL_VALUE; - - UCSR0A &= ~(1 << U2X0); // disable double speed operation - - // set 9O1 - UCSR0C = (1 << UPM01) | (1 << UPM00) | (1 << UCSZ01) | (1 << UCSZ00); - UCSR0B = (1 << UCSZ02); - - // flush receive buffer - while ( UCSR0A & (1 << RXC0) ) UDR0; - -#endif -} - -void JETI_EnableTXD (void) -{ - UCSR0B |= (1 << TXEN0); // enable TX - UCSR0B |= (1 << UDRIE0); // enable UDRE0 interrupt -} - -void JETI_DisableTXD (void) -{ - UCSR0B &= ~(1 << TXEN0); // disable TX - UCSR0B &= ~(1 << UDRIE0); // disable UDRE0 interrupt -} - -void JETI_EnableRXD (void) -{ - UCSR0B |= (1 << RXEN0); // enable RX - UCSR0B |= (1 << RXCIE0); // enable Interrupt -} - -void JETI_DisableRXD (void) -{ - UCSR0B &= ~(1 << RXEN0); // disable RX - UCSR0B &= ~(1 << RXCIE0); // disable Interrupt -} - -#if 0 -void JETI_putw (uint16_t c) -{ - loop_until_bit_is_set(UCSR0A, UDRE0); - UCSR0B &= ~(1 << TXB80); - if (c & 0x0100) - { - UCSR0B |= (1 << TXB80); - } - UDR0 = c; -} - -void JETI_putc (uint8_t c) -{ - loop_until_bit_is_set(UCSR0A, UDRE0); - // UCSRB &= ~(1 << TXB8); - UCSR0B |= (1 << TXB80); - UDR0 = c; -} - -void JETI_puts (char *s) -{ - while (*s) - { - JETI_putc (*s); - s++; - } -} - -void JETI_put_start (void) -{ - loop_until_bit_is_set(UCSR0A, UDRE0); - UCSR0B &= ~(1 << TXB80); - UDR0 = 0xFE; -} - -void JETI_put_stop (void) -{ - loop_until_bit_is_set(UCSR0A, UDRE0); - UCSR0B &= ~(1 << TXB80); - UDR0 = 0xFF; -} -#endif - -void menuViewTelemetryJeti(event_t event) -{ - drawTelemetryTopBar(); - - for (uint8_t i=0; i<16; i++) { - lcdDrawChar((i+2)*FW, 3*FH, jetiRxBuffer[i], BSS); - lcdDrawChar((i+2)*FW, 4*FH, jetiRxBuffer[i+16], BSS); - } - - if (event == EVT_KEY_FIRST(KEY_EXIT)) { - JETI_DisableRXD(); - jetiReady = 0; - chainMenu(menuMainView); - } -} diff --git a/radio/src/telemetry/jeti.h b/radio/src/telemetry/jeti.h deleted file mode 100644 index d545798e7..000000000 --- a/radio/src/telemetry/jeti.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) OpenTX - * - * Based on code named - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#ifndef _JETI_H_ -#define _JETI_H_ - -#define JETI_KEY_LEFT 0x70 -#define JETI_KEY_RIGHT 0xe0 -#define JETI_KEY_UP 0xd0 -#define JETI_KEY_DOWN 0xb0 -#define JETI_KEY_NOCHANGE 0xf0 - -void JETI_Init(void); -void JETI_EnableRXD (void); -void JETI_DisableRXD (void); -void JETI_EnableTXD (void); -void JETI_DisableTXD (void); - -void telemetryInterrupt10ms(); -void menuViewTelemetryJeti(event_t event); - -#endif // _JETI_H_ - diff --git a/radio/src/telemetry/mavlink.cpp b/radio/src/telemetry/mavlink.cpp deleted file mode 100644 index 514cacc50..000000000 --- a/radio/src/telemetry/mavlink.cpp +++ /dev/null @@ -1,600 +0,0 @@ -/* - * Copyright (C) OpenTX - * - * Based on code named - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -/*! \file mavlink.cpp - * Mavlink telemetry decoder for Arducopter/Arduplane telemetry information. - */ - - -#include "telemetry/mavlink.h" - -// this might need to move to the flight software -//static -mavlink_system_t mavlink_system = { 7, MAV_COMP_ID_MISSIONPLANNER }; - -// Mavlink message decoded Status Text -#define PARAM_NB_REPEAT 10 -char mav_statustext[LEN_STATUSTEXT]; -int8_t mav_heartbeat = 0; -int8_t mav_heartbeat_recv = 0; -uint8_t data_stream_start_stop = 0; - - -// Telemetry data hold -Telemetry_Data_t telemetry_data; - -// ***************************************************** -static void MAVLINK_parse_char(uint8_t c); -uint8_t telemetryRxBufferCount = 0; - -void processTelemetryData(uint8_t byte) { - MAVLINK_parse_char(byte); -} - -/*! \brief Reset basic Mavlink varables - * \todo Figure out exact function - * - */ -void MAVLINK_reset(uint8_t warm_reset) { - if (warm_reset && telemetry_data.status) { - mav_statustext[0] = 0; - } - - mavlink_status_t* p_status = mavlink_get_channel_status(MAVLINK_COMM_0); - p_status->current_rx_seq = 0; - p_status->current_tx_seq = 0; - memset(&telemetry_data, 0, sizeof(telemetry_data)); - telemetry_data.rcv_control_mode = ERROR_NUM_MODES; - telemetry_data.req_mode = ERROR_NUM_MODES; - - telemetry_data.type = MAV_TYPE_ENUM_END; - telemetry_data.autopilot = MAV_AUTOPILOT_ENUM_END; - telemetry_data.type_autopilot = MAVLINK_INVALID_TYPE; - - mav_heartbeat = 0; - mav_heartbeat_recv = 0; - data_stream_start_stop = 0; -} - -//! \brief initalize mavlink extension -void MAVLINK_Init(void) -{ - mav_statustext[0] = 0; - MAVLINK_reset(0); - telemetryPortInit(g_eeGeneral.mavbaud); -} - -/*! \brief Status log message - * \details Processes the mavlink status messages. This message contains a - * severity and a message. The severity is an enum difined by MAV_SEVERITY also - * see RFC-5424 for the severity levels. - * The original message is maximum 50 characters and is without termination - * character. For readablity on the 9x the only the first 15 (LEN_STATUSTEXT) - * characters are used. To get the full message you can use the commented - * funtion below. - */ - -static inline void REC_MAVLINK_MSG_ID_STATUSTEXT(const mavlink_message_t* msg) { - _MAV_RETURN_char_array(msg, mav_statustext, LEN_STATUSTEXT, 1); -} - -/*! \brief System status including cpu load, battery status and communication status. - * \details From this message we use use only the batery infomation. The rest - * is not realy of use while flying. The complete message can be decoded in to - * a struct with the first two commented lines. - * The batery votage is in mV. We devide by 100 to display tenths of volts.' - * \todo Add battery remaining variable in telemetry_data struct for estimated - * remaining battery. Decoding funtion allready in place. - */ - -static inline void REC_MAVLINK_MSG_ID_SYS_STATUS(const mavlink_message_t* msg) { - telemetry_data.vbat = mavlink_msg_sys_status_get_voltage_battery(msg) / 100; // Voltage * 10 - telemetry_data.ibat = mavlink_msg_sys_status_get_current_battery(msg) / 10; - telemetry_data.rem_bat = mavlink_msg_sys_status_get_battery_remaining(msg); - -#ifdef MAVLINK_PARAMS - telemetry_data.vbat_low = (getMavlinParamsValue(BATT_MONITOR) > 0) - && (((float) telemetry_data.vbat / 10.0) < getMavlinParamsValue(LOW_VOLT)) && (telemetry_data.vbat > 50); -#else - telemetry_data.vbat_low = (telemetry_data.rem_bat < 10); -#endif -} - -/*! \brief Receive rc channels - * - */ -static inline void REC_MAVLINK_MSG_ID_RC_CHANNELS(const mavlink_message_t* msg) { - uint8_t temp_scale = 5 + g_model.mavlink.rc_rssi_scale; - telemetry_data.rc_rssi = mavlink_msg_rc_channels_get_rssi(msg) * 20 / temp_scale; -} - -/*! \brief Receive raw rc channels - * - */ -static inline void REC_MAVLINK_MSG_ID_RC_CHANNELS_RAW(const mavlink_message_t* msg) { - uint8_t temp_rssi =(mavlink_msg_rc_channels_raw_get_rssi(msg) * 100) / 255; - uint8_t temp_scale = 25 + g_model.mavlink.rc_rssi_scale * 5; - telemetry_data.rc_rssi = (temp_rssi * 100) / temp_scale; -} - -/*! \brief Arducopter specific radio message - * - */ -static inline void REC_MAVLINK_MSG_ID_RADIO(const mavlink_message_t* msg) { - if (msg->sysid != 51) - return; - telemetry_data.pc_rssi = (mavlink_msg_radio_get_rssi(msg) * 100) / 255; - telemetry_data.packet_drop = mavlink_msg_radio_get_rxerrors(msg); - telemetry_data.packet_fixed = mavlink_msg_radio_get_fixed(msg); - telemetry_data.radio_sysid = msg->sysid; - telemetry_data.radio_compid = msg->compid; -} -static inline void REC_MAVLINK_MSG_ID_RADIO_STATUS(const mavlink_message_t* msg) { - REC_MAVLINK_MSG_ID_RADIO(msg); -} - -//! \brief Navigaion output message -static inline void REC_MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT(const mavlink_message_t* msg) { - telemetry_data.bearing = mavlink_msg_nav_controller_output_get_target_bearing(msg); -} - -//! \brief Hud navigation message -static inline void REC_MAVLINK_MSG_ID_VFR_HUD(const mavlink_message_t* msg) { - telemetry_data.heading = mavlink_msg_vfr_hud_get_heading(msg); - telemetry_data.loc_current.rel_alt = mavlink_msg_vfr_hud_get_alt(msg); -} - -/*! \brief Heartbeat message - * \details Heartbeat message is used for the following information: - * type and autopilot is used to determine if the UAV is an ArduPlane or Arducopter - */ -static inline void REC_MAVLINK_MSG_ID_HEARTBEAT(const mavlink_message_t* msg) { - telemetry_data.mode = mavlink_msg_heartbeat_get_base_mode(msg); - telemetry_data.custom_mode = mavlink_msg_heartbeat_get_custom_mode(msg); - telemetry_data.status = mavlink_msg_heartbeat_get_system_status(msg); - telemetry_data.mav_sysid = msg->sysid; - telemetry_data.mav_compid = msg->compid; - uint8_t type = mavlink_msg_heartbeat_get_type(msg); - uint8_t autopilot = mavlink_msg_heartbeat_get_autopilot(msg); - if (type != telemetry_data.type || autopilot != telemetry_data.autopilot) { - telemetry_data.type = mavlink_msg_heartbeat_get_type(msg); - telemetry_data.autopilot = mavlink_msg_heartbeat_get_autopilot(msg); - if (autopilot == MAV_AUTOPILOT_ARDUPILOTMEGA) { - if (type == MAV_TYPE_QUADROTOR || - type == MAV_TYPE_COAXIAL || - type == MAV_TYPE_HELICOPTER || - type == MAV_TYPE_HEXAROTOR || - type == MAV_TYPE_OCTOROTOR || - type == MAV_TYPE_TRICOPTER) { - telemetry_data.type_autopilot = MAVLINK_ARDUCOPTER; - } - else if (type == MAV_TYPE_FIXED_WING) { - telemetry_data.type_autopilot = MAVLINK_ARDUPLANE; - } - else { - telemetry_data.type_autopilot = MAVLINK_INVALID_TYPE; - } - } - else { - telemetry_data.type_autopilot = MAVLINK_INVALID_TYPE; - } - } - telemetry_data.active = (telemetry_data.mode & MAV_MODE_FLAG_SAFETY_ARMED) ? true : false; - mav_heartbeat = 3; // 450ms display '*' - mav_heartbeat_recv = 1; -} - -static inline void REC_MAVLINK_MSG_ID_HIL_CONTROLS(const mavlink_message_t* msg) { - telemetry_data.nav_mode = mavlink_msg_hil_controls_get_mode(msg); -} - -/*! \brief Process GPS raw intger message - * \details This message contains the following data: - * - fix type: 0-1: no fix, 2: 2D fix, 3: 3D fix. - * - Latitude, longitude in 1E7 * degrees - * - Altutude 1E3 * meters above MSL. - * - Course over ground in 100 * degrees - * - GPS HDOP horizontal dilution of precision in cm (m*100). - * - Ground speed in m/s * 100 - */ -static inline void REC_MAVLINK_MSG_ID_GPS_RAW_INT(const mavlink_message_t* msg) { - telemetry_data.fix_type = mavlink_msg_gps_raw_int_get_fix_type(msg); - telemetry_data.loc_current.lat = mavlink_msg_gps_raw_int_get_lat(msg) / 1E7; - telemetry_data.loc_current.lon = mavlink_msg_gps_raw_int_get_lon(msg) / 1E7; - telemetry_data.loc_current.gps_alt = mavlink_msg_gps_raw_int_get_alt(msg) / 1E3; - telemetry_data.eph = mavlink_msg_gps_raw_int_get_eph(msg) / 100.0; - telemetry_data.course = mavlink_msg_gps_raw_int_get_cog(msg) / 100.0; - telemetry_data.v = mavlink_msg_gps_raw_int_get_vel(msg) / 100.0 ; - telemetry_data.satellites_visible = mavlink_msg_gps_raw_int_get_satellites_visible(msg); -} - -#ifdef MAVLINK_PARAMS -const pm_char *getParamId(uint8_t idx) { - const pm_char *mav_params_id [((NB_PID_PARAMS / 2) + 4)] = { - PSTR("RATE_YAW"), // Rate Yaw - PSTR("STB_YAW"), // Stabilize Yaw - PSTR("RATE_PIT"), // Rate Pitch - PSTR("STB_PIT"), // Stabilize Pitch - PSTR("RATE_RLL"), // Rate Roll - PSTR("STB_RLL"), // Stabilize Roll - PSTR("THR_ALT"), // PSTR("THR_BAR"), // Altitude Hold - PSTR("HLD_LON"), // Loiter - PSTR("HLD_LAT"), // Loiter - PSTR("NAV_LON"), // Nav WP - PSTR("NAV_LAT"), // Nav WP - PSTR("LOW_VOLT"), // Battery low voltage - PSTR("VOLT_DIVIDER"), // - PSTR("BATT_MONITOR"), // - PSTR("BATT_CAPACITY") - }; - uint8_t i; - if (idx < NB_PID_PARAMS) { - i = idx / 2; - } else { - i = idx - (NB_PID_PARAMS / 2); - } - return mav_params_id[i]; -} - -void setMavlinParamsValue(uint8_t idx, float val) { - MavlinkParam_t *param = getParam(idx); - if (idx < NB_PARAMS && val != param->value) { - param->value = val; - param->repeat = PARAM_NB_REPEAT; - uint8_t link_idx = NB_PID_PARAMS; - switch (idx) { - case RATE_PIT_P: - case RATE_PIT_I: - case STB_PIT_P: - case STB_PIT_I: - link_idx = idx + 4; - break; - case RATE_RLL_P: - case RATE_RLL_I: - case STB_RLL_P: - case STB_RLL_I: - link_idx = idx - 4; - break; - case HLD_LON_P: - case HLD_LON_I: - case NAV_LON_P: - case NAV_LON_I: - link_idx = idx + 2; - break; - case HLD_LAT_P: - case HLD_LAT_I: - case NAV_LAT_P: - case NAV_LAT_I: - link_idx = idx - 2; - break; - default: - break; - } - if (link_idx < NB_PID_PARAMS) { - MavlinkParam_t *p = getParam(link_idx); - p->value = val; - p->repeat = PARAM_NB_REPEAT; - } - } -} - -void putsMavlinParams(uint8_t x, uint8_t y, uint8_t idx, uint8_t att) { - if (idx < NB_PARAMS) { - const pm_char * s = getParamId(idx); - char c; - while ((c = pgm_read_byte(s++))) { - lcdDrawChar(x, y, (c == '_' ? ' ' : c), 0); - x += FW; - } - if (idx < NB_PID_PARAMS) { - x = 11 * FW; - lcdDrawChar(x, y, "PI"[idx & 0x01], att); - } - } -} - -static inline void setParamValue(int8_t *id, float value) { - int8_t *p_id; - for (int8_t idx = 0; idx < NB_PARAMS; idx++) { - const pm_char * s = getParamId(idx); - p_id = id; - while (1) { - char c1 = pgm_read_byte(s++); - if (!c1) { - // Founded ! - uint8_t founded = !*p_id; - if (idx < NB_PID_PARAMS) { - p_id++; - switch (*p_id++) { - case 'P': - founded = !*p_id; - break; - case 'I': - founded = !*p_id; - idx++; - break; - default: - founded = 0; - break; - } - } - // test end of string char == 0 and a valid PI - if (founded) { - MavlinkParam_t *param = getParam(idx); - param->repeat = 0; - param->valid = 1; - param->value = value; - mav_req_params_nb_recv++; - } - return; - } else if (c1 != *p_id++) { - break; - } - } - if (idx < NB_PID_PARAMS) { - // Skip I Parameter from PID - idx++; - } - } -} - -static inline void REC_MAVLINK_MSG_ID_PARAM_VALUE(const mavlink_message_t* msg) { - mavlink_param_value_t param_value; - mavlink_msg_param_value_decode(msg, ¶m_value); - char *id = param_value.param_id; - setParamValue((int8_t*)id, param_value.param_value); - data_stream_start_stop = 0; // stop data stream while getting params list - watch_mav_req_params_list = mav_req_params_nb_recv < (NB_PARAMS - 5) ? 20 : 0; // stop timeout -} -#endif - -static inline void handleMessage(mavlink_message_t* p_rxmsg) { - switch (p_rxmsg->msgid) { - case MAVLINK_MSG_ID_HEARTBEAT: - REC_MAVLINK_MSG_ID_HEARTBEAT(p_rxmsg); - break; - case MAVLINK_MSG_ID_STATUSTEXT: - REC_MAVLINK_MSG_ID_STATUSTEXT(p_rxmsg); - AUDIO_WARNING1(); - break; - case MAVLINK_MSG_ID_SYS_STATUS: - REC_MAVLINK_MSG_ID_SYS_STATUS(p_rxmsg); - break; - case MAVLINK_MSG_ID_RC_CHANNELS: - REC_MAVLINK_MSG_ID_RC_CHANNELS(p_rxmsg); - break; - case MAVLINK_MSG_ID_RC_CHANNELS_RAW: - REC_MAVLINK_MSG_ID_RC_CHANNELS_RAW(p_rxmsg); - break; - case MAVLINK_MSG_ID_RADIO: - REC_MAVLINK_MSG_ID_RADIO(p_rxmsg); - break; - case MAVLINK_MSG_ID_RADIO_STATUS: - REC_MAVLINK_MSG_ID_RADIO_STATUS(p_rxmsg); - break; - case MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT: - REC_MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT(p_rxmsg); - break; - case MAVLINK_MSG_ID_VFR_HUD: - REC_MAVLINK_MSG_ID_VFR_HUD(p_rxmsg); - break; - case MAVLINK_MSG_ID_HIL_CONTROLS: - REC_MAVLINK_MSG_ID_HIL_CONTROLS(p_rxmsg); - break; - case MAVLINK_MSG_ID_GPS_RAW_INT: - REC_MAVLINK_MSG_ID_GPS_RAW_INT(p_rxmsg); - break; -#ifdef MAVLINK_PARAMS - case MAVLINK_MSG_ID_PARAM_VALUE: - REC_MAVLINK_MSG_ID_PARAM_VALUE(p_rxmsg); - break; -#endif - - } - -} - - -/*! \brief Mavlink message parser - * \details Parses the characters in to a mavlink message. - * Case statement parses each character as it is recieved. - * \attention One big change form the 0.9 to 1.0 version is the - * MAVLINK_CRC_EXTRA. This requires the mavlink_message_crcs array of 256 bytes. - * \todo create dot for the statemachine - */ -static void MAVLINK_parse_char(uint8_t c) { - - static mavlink_message_t m_mavlink_message; - //! The currently decoded message - static mavlink_message_t* p_rxmsg = &m_mavlink_message; - //! The current decode status - mavlink_status_t* p_status = mavlink_get_channel_status(MAVLINK_COMM_0); - - -#if MAVLINK_CRC_EXTRA - static const uint8_t mavlink_message_crcs[256] PROGMEM = MAVLINK_MESSAGE_CRCS; -#endif - - // Initializes only once, values keep unchanged after first initialization - //mavlink_parse_state_initialize(p_status); - - //p_status->msg_received = 0; - - switch (p_status->parse_state) { - case MAVLINK_PARSE_STATE_UNINIT: - case MAVLINK_PARSE_STATE_IDLE: - if (c == MAVLINK_STX) { - p_status->parse_state = MAVLINK_PARSE_STATE_GOT_STX; - mavlink_start_checksum(p_rxmsg); - } - break; - - case MAVLINK_PARSE_STATE_GOT_STX: - // NOT counting STX, LENGTH, SEQ, SYSID, COMPID, MSGID, CRC1 and CRC2 - p_rxmsg->len = c; - p_status->packet_idx = 0; - mavlink_update_checksum(p_rxmsg, c); - p_status->parse_state = MAVLINK_PARSE_STATE_GOT_LENGTH; - break; - - case MAVLINK_PARSE_STATE_GOT_LENGTH: - p_rxmsg->seq = c; - mavlink_update_checksum(p_rxmsg, c); - p_status->parse_state = MAVLINK_PARSE_STATE_GOT_SEQ; - break; - - case MAVLINK_PARSE_STATE_GOT_SEQ: - p_rxmsg->sysid = c; - mavlink_update_checksum(p_rxmsg, c); - p_status->parse_state = MAVLINK_PARSE_STATE_GOT_SYSID; - break; - - case MAVLINK_PARSE_STATE_GOT_SYSID: - p_rxmsg->compid = c; - mavlink_update_checksum(p_rxmsg, c); - p_status->parse_state = MAVLINK_PARSE_STATE_GOT_COMPID; - break; - - case MAVLINK_PARSE_STATE_GOT_COMPID: - p_rxmsg->msgid = c; - mavlink_update_checksum(p_rxmsg, c); - if (p_rxmsg->len == 0) { - p_status->parse_state = MAVLINK_PARSE_STATE_GOT_PAYLOAD; - } else { - p_status->parse_state = MAVLINK_PARSE_STATE_GOT_MSGID; - } - break; - - case MAVLINK_PARSE_STATE_GOT_MSGID: - _MAV_PAYLOAD_NON_CONST(p_rxmsg)[p_status->packet_idx++] = (char) c; - mavlink_update_checksum(p_rxmsg, c); - if (p_status->packet_idx == p_rxmsg->len) { - p_status->parse_state = MAVLINK_PARSE_STATE_GOT_PAYLOAD; - } - break; - - case MAVLINK_PARSE_STATE_GOT_PAYLOAD: - -#if MAVLINK_CRC_EXTRA - mavlink_update_checksum(p_rxmsg, pgm_read_byte(&(mavlink_message_crcs[p_rxmsg->msgid]))); -#endif - if (c != (p_rxmsg->checksum & 0xFF)) { - // Check first checksum byte - p_status->parse_error = 3; - } else { - p_status->parse_state = MAVLINK_PARSE_STATE_GOT_CRC1; - } - break; - - case MAVLINK_PARSE_STATE_GOT_CRC1: - if (c != (p_rxmsg->checksum >> 8)) { - // Check second checksum byte - p_status->parse_error = 4; - } else { - // Successfully got message - if (mav_heartbeat < 0) - mav_heartbeat = 0; - p_status->current_rx_seq = p_rxmsg->seq; - p_status->parse_state = MAVLINK_PARSE_STATE_IDLE; - handleMessage(p_rxmsg); - } - break; - } - // Error occur - if (p_status->parse_error) { - p_status->parse_state = MAVLINK_PARSE_STATE_IDLE; - if (c == MAVLINK_STX) { - p_status->parse_state = MAVLINK_PARSE_STATE_GOT_STX; - mavlink_start_checksum(p_rxmsg); - } - p_status->parse_error = 0; - } -} - -#ifdef MAVLINK_PARAMS -static inline void MAVLINK_msg_param_request_list_send() { - mavlink_channel_t chan = MAVLINK_COMM_0; - mavlink_msg_param_request_list_send(chan, mavlink_system.sysid, mavlink_system.compid); -} - -static inline void MAVLINK_msg_param_set(uint8_t idx) { - const pm_char* s = getParamId(idx); - int8_t buf[15]; - int8_t *p = buf; - while (1) { - char c = pgm_read_byte(s++); - if (!c) { - if (idx < NB_PID_PARAMS) { - *p++ = '_'; - uint8_t colIdx = idx & 0x01; - *p++ = "PI"[colIdx]; - } - *p++ = 0; - break; - } - *p++ = c; - } - float param_value = getParam(idx)->value; - - mavlink_channel_t chan = MAVLINK_COMM_0; - uint8_t param_type = (uint8_t)MAV_PARAM_TYPE_REAL32; - const char* param_id = (const char*)buf; - mavlink_msg_param_set_send(chan, mavlink_system.sysid, mavlink_system.compid, param_id, param_value, param_type); - -} -#endif - -__attribute__((unused)) -static inline void MAVLINK_msg_request_data_stream_pack_send(uint8_t req_stream_id, uint16_t req_message_rate, - uint8_t start_stop) { - mavlink_channel_t chan = MAVLINK_COMM_0; - mavlink_msg_request_data_stream_send(chan, mavlink_system.sysid, mavlink_system.compid, req_stream_id, req_message_rate, - start_stop); -} - - -__attribute__((unused)) -//! \brief old mode switch funtion -static inline void MAVLINK_msg_set_mode_send(uint8_t mode) { - mavlink_channel_t chan = MAVLINK_COMM_0; - mavlink_msg_set_mode_send(chan, mavlink_system.sysid, mode, 0); -} - - -/*! \brief Telemetry monitoring, calls \link MAVLINK10mspoll. - * \todo Reimplemnt \link MAVLINK10mspoll - * - */ -void telemetryWakeup() { - uint16_t tmr10ms = get_tmr10ms(); - static uint16_t last_time = 0; - if (tmr10ms - last_time > 15) { - if (mav_heartbeat > -30) { - mav_heartbeat--; - - if (mav_heartbeat == -30) { - MAVLINK_reset(1); - telemetryPortInit(g_eeGeneral.mavbaud); - } - } - last_time = tmr10ms; - } -} - diff --git a/radio/src/telemetry/mavlink.h b/radio/src/telemetry/mavlink.h deleted file mode 100644 index 40540ecb6..000000000 --- a/radio/src/telemetry/mavlink.h +++ /dev/null @@ -1,335 +0,0 @@ -/* - * Copyright (C) OpenTX - * - * Based on code named - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -/*! \file mavlink.h - * Mavlink include file - */ - -#ifndef _MAVLINK_H_ -#define _MAVLINK_H_ - -#define MAVLINK_USE_CONVENIENCE_FUNCTIONS -#define MAVLINK_COMM_NUM_BUFFERS 1 - -#include "GCS_MAVLink/include_v1.0/mavlink_types.h" -#include "opentx.h" - -extern int8_t mav_heartbeat; -extern mavlink_system_t mavlink_system; -#define LEN_STATUSTEXT 20 -extern char mav_statustext[LEN_STATUSTEXT]; - -extern void SERIAL_start_uart_send(); -extern void SERIAL_end_uart_send(); -extern void SERIAL_send_uart_bytes(const uint8_t * buf, uint16_t len); - -# define MAV_SYSTEM_ID 1 -//mavlink_system.type = 2; //MAV_QUADROTOR; - - -#define MAVLINK_START_UART_SEND(chan,len) SERIAL_start_uart_send() -#define MAVLINK_END_UART_SEND(chan,len) SERIAL_end_uart_send() -#define MAVLINK_SEND_UART_BYTES(chan,buf,len) SERIAL_send_uart_bytes(buf,len) - -#if __clang__ -// clang does not like packed member access at all. Since mavlink is a 3rd party library, ignore the errors -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Waddress-of-packed-member" -#endif -#include "GCS_MAVLink/include_v1.0/ardupilotmega/mavlink.h" -#if __clang__ -// Restore warnings about packed member access -#pragma clang diagnostic pop -#endif - -//#define MAVLINK_PARAMS -//#define DUMP_RX_TX -#define ERROR_NUM_MODES 99 -#define ERROR_MAV_ACTION_NB 99 - - -// Auto Pilot modes -// ---------------- -#define AC_STABILIZE 0 // hold level position -#define AC_ACRO 1 // rate control -#define AC_ALT_HOLD 2 // AUTO control -#define AC_AUTO 3 // AUTO control -#define AC_GUIDED 4 // AUTO control -#define AC_LOITER 5 // Hold a single location -#define AC_RTL 6 // AUTO control -#define AC_CIRCLE 7 // AUTO control -#define AC_POSITION 8 // AUTO control -#define AC_LAND 9 // AUTO control -#define AC_OF_LOITER 10 // Hold a single location using optical flow - // sensor -#define AC_TOY_A 11 // THOR Enum for Toy mode -#define AC_TOY_M 12 // THOR Enum for Toy mode -#define AC_NUM_MODES 13 - -// Mavlink airframe types -#define MAVLINK_ARDUCOPTER 0 -#define MAVLINK_ARDUPLANE 1 -#define MAVLINK_INVALID_TYPE 2 - - -#define AP_MANUAL 0 -#define AP_CIRCLE 1 -#define AP_STABILIZE 2 -#define AP_TRAINING 3 -#define AP_FLY_BY_WIRE_A 5 -#define AP_FLY_BY_WIRE_B 6 -#define AP_AUTO 10 -#define AP_RTL 11 -#define AP_LOITER 12 -#define AP_GUIDED 15 -#define AP_INITIALISING 16 -#define AP_NUM_MODES 17 - -static const uint8_t ap_modes_lut[18] PROGMEM = {0,1,2,3,12,4,5,12,12,12,6,7,8,9,12,12,10,11}; - -/* - * Type definitions - */ - -#ifdef MAVLINK_PARAMS - -enum ACM_PARAMS { - RATE_YAW_P, // Rate Yaw - RATE_YAW_I, // Rate Yaw - STB_YAW_P, // Stabilize Yaw - STB_YAW_I, // Stabilize Yaw - RATE_PIT_P, // Rate Pitch - RATE_PIT_I, // Rate Pitch - STB_PIT_P, // Stabilize Pitch - STB_PIT_I, // Stabilize Pitch - RATE_RLL_P, // Rate Roll - RATE_RLL_I, // Rate Roll - STB_RLL_P, // Stabilize Roll - STB_RLL_I, // Stabilize Roll - THR_ALT_P, // THR_BAR, // Altitude Hold - THR_ALT_I, // THR_BAR, // Altitude Hold - HLD_LON_P, // Loiter - HLD_LON_I, // Loiter - HLD_LAT_P, // Loiter - HLD_LAT_I, // Loiter - NAV_LON_P, // Nav WP - NAV_LON_I, // Nav WP - NAV_LAT_P, // Nav WPs - NAV_LAT_I, // Nav WP - NB_PID_PARAMS, // Number of PI Parameters - LOW_VOLT = NB_PID_PARAMS, - IN_VOLT, // - BATT_MONITOR, // - BATT_CAPACITY, // - NB_PARAMS -}; -//#define NB_PID_PARAMS 24 -#define NB_COL_PARAMS 2 -#define NB_ROW_PARAMS ((NB_PARAMS+1)/NB_COL_PARAMS) - -typedef struct MavlinkParam_ { - uint8_t repeat :4; - uint8_t valid :4; - float value; -} MavlinkParam_t; - -#endif - -typedef struct Location_ { - float lat; ///< Latitude in degrees - float lon; ///< Longitude in degrees - float gps_alt; ///< Altitude in meters - float rel_alt; -} Location_t; - -typedef struct Telemetry_Data_ { - // INFOS - uint8_t status; ///< System status flag, see MAV_STATUS ENUM - uint8_t type; - uint8_t autopilot; - uint8_t type_autopilot; - uint16_t packet_drop; - uint16_t packet_fixed; - uint8_t radio_sysid; - uint8_t radio_compid; - uint8_t mav_sysid; - uint8_t mav_compid; - uint8_t mode; - uint32_t custom_mode; - bool active; - uint8_t nav_mode; - uint8_t rcv_control_mode; ///< System mode, see MAV_MODE ENUM in mavlink/include/mavlink_types.h - uint16_t load; ///< Maximum usage in percent of the mainloop time, (0%: 0, 100%: 1000) should be always below 1000 - uint8_t vbat; ///< Battery voltage, in millivolts (1 = 1 millivolt) - uint8_t ibat; ///< Battery voltage, in millivolts (1 = 1 millivolt) - uint8_t rem_bat; ///< Battery voltage, in millivolts (1 = 1 millivolt) - bool vbat_low; - - uint8_t rc_rssi; - uint8_t pc_rssi; - - uint8_t debug; - - // MSG ACTION / ACK - uint8_t req_mode; - int8_t ack_result; - - // GPS - uint8_t fix_type; ///< 0-1: no fix, 2: 2D fix, 3: 3D fix. Some applications will not use the value of this field unless it is at least two, so always correctly fill in the fix. - uint8_t satellites_visible; ///< Number of satellites visible - Location_t loc_current; - float eph; - uint16_t course; - float v; // Ground speed - // Navigation - uint16_t heading; - uint16_t bearing; - -#ifdef MAVLINK_PARAMS - // Params - MavlinkParam_t params[NB_PARAMS]; -#endif - -} Telemetry_Data_t; - -// Telemetry data hold -extern Telemetry_Data_t telemetry_data; - -/* - * Funtion definitions - */ - - - - -#if 0 -extern inline uint8_t MAVLINK_CtrlMode2Action(uint8_t mode) { - uint8_t action; - - return action; -} - -extern inline uint8_t MAVLINK_Action2CtrlMode(uint8_t action) { - uint8_t mode = ERROR_NUM_MODES; - switch (action) { - - return action; - } -} -#endif -void telemetryWakeup(); -void MAVLINK_Init(void); -void menuViewTelemetryMavlink(event_t event); -void MAVLINK10mspoll(uint16_t time); - -#ifdef MAVLINK_PARAMS - -void putsMavlinParams(uint8_t x, uint8_t y, uint8_t idx, uint8_t att); -void setMavlinParamsValue(uint8_t idx, float val); - -inline uint8_t getIdxParam(uint8_t rowIdx, uint8_t colIdx) { - return (rowIdx * NB_COL_PARAMS) + colIdx; -} - -inline MavlinkParam_t * getParam(uint8_t idx) { - return &telemetry_data.params[idx]; -} - -inline float getMavlinParamsValue(uint8_t idx) { - return telemetry_data.params[idx].value; -} - -inline uint8_t isDirtyParamsValue(uint8_t idx) { - return telemetry_data.params[idx].repeat; -} - -inline uint8_t isValidParamsValue(uint8_t idx) { - return telemetry_data.params[idx].valid; -} - -inline float getCoefPrecis(uint8_t precis) { - switch (precis) { - case 1: - return 10.0; - case 2: - return 100.0; - case 3: - return 1000.0; - } - return 1.0; - -} - -inline int16_t getMaxMavlinParamsValue(uint8_t idx) { - int16_t max = 0; - switch (idx) { - case LOW_VOLT: - max = 2500; // 25.0 Volt max - break; - case IN_VOLT: - max = 900; // 7.00 Volt max - break; - case BATT_MONITOR: - max = 3; - break; - case BATT_CAPACITY: - max = 7000; // 7000 mAh max - break; - default: - if (idx < NB_PID_PARAMS) { - max = (idx & 0x01) ? 1000 : 750; - } - break; - } - return max; -} - -inline uint8_t getPrecisMavlinParamsValue(uint8_t idx) { - uint8_t precis = 2; - switch (idx) { - case LOW_VOLT: - precis = 2; - break; - case IN_VOLT: - precis = 2; - break; - case BATT_MONITOR: - precis = 0; - break; - case BATT_CAPACITY: - precis = 0; - break; - default: - if (idx < NB_PID_PARAMS) { - if (idx & 0x01) - precis = 3; - } - break; - } - return precis; -} - -void lcd_outdezFloat(uint8_t x, uint8_t y, float val, uint8_t precis, uint8_t mode); -#endif - -void telemetryPortInit(uint8_t baudrate); - -#endif // _MAVLINK_H_ - From e76d1d0c3d80a07ef5c37d2a56a07f30be373940 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Thu, 5 Jul 2018 10:39:57 +0200 Subject: [PATCH 02/11] Remove unused telemetry protocols --- radio/src/CMakeLists.txt | 3 - radio/src/datastructs.h | 8 - radio/src/gui/128x64/menu_model.cpp | 3 - radio/src/gui/128x64/radio_setup.cpp | 5 - radio/src/gui/128x64/view_main.cpp | 11 - radio/src/gui/212x64/radio_setup.cpp | 5 - radio/src/gui/480x272/radio_setup.cpp | 6 - radio/src/opentx.cpp | 16 - radio/src/opentx.h | 4 - radio/src/telemetry/ardupilot.cpp | 716 --------------- radio/src/telemetry/ardupilot.h | 27 - radio/src/telemetry/frsky.cpp | 43 - radio/src/telemetry/frsky.h | 4 - radio/src/telemetry/nmea.cpp | 826 ------------------ radio/src/telemetry/nmea.h | 29 - radio/src/telemetry/telemetry.h | 12 - radio/src/thirdparty/GCS_MAVLink/.gitignore | 3 - radio/src/thirdparty/GCS_MAVLink/include_v1.0 | 1 - radio/src/translations.cpp | 30 - radio/src/translations.h | 36 - radio/src/translations/cz.h.txt | 126 +-- radio/src/translations/de.h.txt | 132 +-- radio/src/translations/en.h.txt | 123 +-- radio/src/translations/es.h.txt | 109 +-- radio/src/translations/fi.h.txt | 109 +-- radio/src/translations/fr.h.txt | 136 +-- radio/src/translations/it.h.txt | 132 +-- radio/src/translations/nl.h.txt | 119 +-- radio/src/translations/pl.h.txt | 132 +-- radio/src/translations/pt.h.txt | 109 +-- radio/src/translations/se.h.txt | 130 +-- radio/util/fwoptions.py | 165 ---- 32 files changed, 14 insertions(+), 3296 deletions(-) delete mode 100644 radio/src/telemetry/ardupilot.cpp delete mode 100644 radio/src/telemetry/ardupilot.h delete mode 100644 radio/src/telemetry/nmea.cpp delete mode 100644 radio/src/telemetry/nmea.h delete mode 100644 radio/src/thirdparty/GCS_MAVLink/.gitignore delete mode 160000 radio/src/thirdparty/GCS_MAVLink/include_v1.0 diff --git a/radio/src/CMakeLists.txt b/radio/src/CMakeLists.txt index 9af45bb29..10b78b451 100644 --- a/radio/src/CMakeLists.txt +++ b/radio/src/CMakeLists.txt @@ -69,9 +69,6 @@ set(EEPROM_VARIANT 0) set(GVARS_VARIANT 1) set(FRSKY_VARIANT 2) set(3POS_VARIANT 4) -set(MAVLINK_VARIANT 8) -set(M2561_VARIANT 16384) -set(M128_VARIANT 32768) set(FIRMWARE_DEPENDENCIES firmware_translations) diff --git a/radio/src/datastructs.h b/radio/src/datastructs.h index 07739bf97..e02337c01 100644 --- a/radio/src/datastructs.h +++ b/radio/src/datastructs.h @@ -355,14 +355,6 @@ PACK(struct FrSkyTelemetryData { * MAVLINK Telemetry structure */ -#if defined(TELEMETRY_MAVLINK) -PACK(struct MavlinkTelemetryData { - uint8_t rc_rssi_scale:4; - uint8_t pc_rssi_en:1; - uint8_t spare1:3; - uint8_t spare2[3]; -}); -#endif /* * Telemetry Sensor structure diff --git a/radio/src/gui/128x64/menu_model.cpp b/radio/src/gui/128x64/menu_model.cpp index 4075d9022..b2ebba5b0 100644 --- a/radio/src/gui/128x64/menu_model.cpp +++ b/radio/src/gui/128x64/menu_model.cpp @@ -20,9 +20,6 @@ #include "opentx.h" -#if defined(TELEMETRY_MAVLINK) -#include "view_mavlink.h" -#endif uint8_t editDelay(coord_t y, event_t event, uint8_t attr, const pm_char * str, uint8_t delay) { diff --git a/radio/src/gui/128x64/radio_setup.cpp b/radio/src/gui/128x64/radio_setup.cpp index ec70e8cb5..9976a5cb0 100644 --- a/radio/src/gui/128x64/radio_setup.cpp +++ b/radio/src/gui/128x64/radio_setup.cpp @@ -518,11 +518,6 @@ void menuRadioSetup(event_t event) break; #endif -#if defined(TELEMETRY_MAVLINK) - case ITEM_MAVLINK_BAUD: - g_eeGeneral.mavbaud = editChoice(RADIO_SETUP_2ND_COLUMN, y, STR_MAVLINK_BAUD_LABEL, STR_MAVLINK_BAUDS, g_eeGeneral.mavbaud, 0, 7, attr, event); - break; -#endif case ITEM_SETUP_SWITCHES_DELAY: lcdDrawTextAlignedLeft(y, STR_SWITCHES_DELAY); diff --git a/radio/src/gui/128x64/view_main.cpp b/radio/src/gui/128x64/view_main.cpp index 8bdaf2ff3..3cd7e952a 100644 --- a/radio/src/gui/128x64/view_main.cpp +++ b/radio/src/gui/128x64/view_main.cpp @@ -398,17 +398,6 @@ void menuMainView(event_t event) case EVT_KEY_TELEMETRY: #if defined(TELEMETRY_FRSKY) chainMenu(menuViewTelemetryFrsky); -#elif defined(TELEMETRY_JETI) - JETI_EnableRXD(); // enable JETI-Telemetry reception - chainMenu(menuViewTelemetryJeti); -#elif defined(TELEMETRY_ARDUPILOT) - ARDUPILOT_EnableRXD(); // enable ArduPilot-Telemetry reception - chainMenu(menuViewTelemetryArduPilot); -#elif defined(TELEMETRY_NMEA) - NMEA_EnableRXD(); // enable NMEA-Telemetry reception - chainMenu(menuViewTelemetryNMEA); -#elif defined(TELEMETRY_MAVLINK) - chainMenu(menuViewTelemetryMavlink); #else chainMenu(menuStatisticsDebug); #endif diff --git a/radio/src/gui/212x64/radio_setup.cpp b/radio/src/gui/212x64/radio_setup.cpp index cf2ac8f14..4991e1a54 100644 --- a/radio/src/gui/212x64/radio_setup.cpp +++ b/radio/src/gui/212x64/radio_setup.cpp @@ -466,11 +466,6 @@ void menuRadioSetup(event_t event) break; #endif -#if defined(TELEMETRY_MAVLINK) - case ITEM_MAVLINK_BAUD: - g_eeGeneral.mavbaud = editChoice(RADIO_SETUP_2ND_COLUMN, y, STR_MAVLINK_BAUD_LABEL, STR_MAVLINK_BAUDS, g_eeGeneral.mavbaud, 0, 7, attr, event); - break; -#endif case ITEM_SETUP_SWITCHES_DELAY: lcdDrawTextAlignedLeft(y, STR_SWITCHES_DELAY); diff --git a/radio/src/gui/480x272/radio_setup.cpp b/radio/src/gui/480x272/radio_setup.cpp index 30fa16d8a..02bd964fa 100644 --- a/radio/src/gui/480x272/radio_setup.cpp +++ b/radio/src/gui/480x272/radio_setup.cpp @@ -442,12 +442,6 @@ bool menuRadioSetup(event_t event) break; #endif -#if defined(TELEMETRY_MAVLINK) - case ITEM_MAVLINK_BAUD: - lcdDrawText(MENUS_MARGIN_LEFT, y, STR_MAVLINK_BAUD_LABEL); - g_eeGeneral.mavbaud = editChoice(RADIO_SETUP_2ND_COLUMN, y, STR_MAVLINK_BAUDS, g_eeGeneral.mavbaud, 0, 7, attr, event); - break; -#endif case ITEM_SETUP_SWITCHES_DELAY: lcdDrawText(MENUS_MARGIN_LEFT, y, STR_SWITCHES_DELAY); diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index c07f955d3..1904121df 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -505,10 +505,6 @@ void modelDefault(uint8_t id) } #endif -#if defined(TELEMETRY_MAVLINK) - g_model.mavlink.rc_rssi_scale = 15; - g_model.mavlink.pc_rssi_en = 1; -#endif #if !defined(EEPROM) strcpy(g_model.header.name, "\015\361\374\373\364"); @@ -2225,21 +2221,9 @@ int main() DSM2_Init(); #endif -#if defined(TELEMETRY_JETI) - JETI_Init(); -#endif -#if defined(TELEMETRY_ARDUPILOT) - ARDUPILOT_Init(); -#endif -#if defined(TELEMETRY_NMEA) - NMEA_Init(); -#endif -#if defined(TELEMETRY_MAVLINK) - MAVLINK_Init(); -#endif #if defined(MENU_ROTARY_SW) init_rotary_sw(); diff --git a/radio/src/opentx.h b/radio/src/opentx.h index 9e02444d7..eccb0daf3 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -128,11 +128,7 @@ #define CASE_FRSKY(x) #endif -#if defined(TELEMETRY_MAVLINK) - #define CASE_MAVLINK(x) x, -#else #define CASE_MAVLINK(x) -#endif #if defined(PXX) #define CASE_PXX(x) x, diff --git a/radio/src/telemetry/ardupilot.cpp b/radio/src/telemetry/ardupilot.cpp deleted file mode 100644 index ea96a853c..000000000 --- a/radio/src/telemetry/ardupilot.cpp +++ /dev/null @@ -1,716 +0,0 @@ -/* - * Copyright (C) OpenTX - * - * Based on code named - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include "opentx.h" - -#define NB_BUF 2 -#define LG_BUF 11 -#define VALSTR(val) (rbuf[val][0] ? rbuf[val] : val_unknown) -#define APSIZE (BSS | DBLSIZE) - -/* Received data - -Data are received as packets, each packet is identified by a prefix of three -characters and is ended by three stars. Some packets can contain more than -one value, the values are ended by a comma. - - -Position packet: -!!!LAT:0123456789,LON:9876543210,SPD:123,CRT:1,ALT:123456,ALH:654321,CRS:123,BER:123,WPN:12,DST:12345,BTV:12.4567 9012,RSP:123,TOW:123456,*** -...----1--------------2--------------3-------4-----5----------6----------7-------8-------9------10--------11-----------12----------13-----END - 1st value 2nd value - -Attitude packet: -+++ASP:123,THH:123,RLL:123,PCH:123,*** -...----1-------2-------3-------4---END - -Mode change packet: -###STABILIZE*** -...1--------END - -Waypoint packet: -%%%12 45*** -...1----END - -Alert packet: -XXXAlert Text alert*** -...1---------------END - -Performance packet: -PPPThis is performant*** -...1--------------END -*/ - -// Position packet prefix -#define PACK_POS 0x21 -// value occurence number in this packet -#define LAT 1 -#define LON 2 -#define SPD 3 -#define CRT 4 -#define ALT 5 -#define ALH 6 -#define CRS 7 -#define BER 8 -#define WPN 9 -#define DST 10 -#define BTV 11 -#define RSP 12 -#define TOW 13 - -#define PACK_ATT 0x2b -// value occurence number in this packet -#define ASP 1 -#define THH 2 -#define RLL 3 -#define PCH 4 - -#define PACK_MOD 0x23 -// value occurence number in this packet -#define MOD 1 - -#define PACK_WPC 0x25 -// value occurence number in this packet -#define WPC 1 - -#define PACK_ALR 0x58 -// value occurence number in this packet -#define ALR 1 - -#define PACK_PRF 0x50 -// value occurence number in this packet -#define PRF 1 - -// end of packet -#define PACK_END 0x2a -// end of value -#define VAL_END 0x2c -// end of title -#define TITLE_END 0x3a - -// stateful machine - -// Since the packets are sent continuously, we need to synchronize on the -// reception of the three chars prefixing a packet, whatever they are. - -// states values -#define WAIT_PACKET 1 -#define WAIT_PACK_POS1 2 -#define WAIT_PACK_POS2 3 -#define WAIT_PACK_POS3 4 -#define WAIT_PACK_ATT1 5 -#define WAIT_PACK_ATT2 6 -#define WAIT_PACK_ATT3 7 -#define WAIT_PACK_MOD1 8 -#define WAIT_PACK_MOD2 9 -#define WAIT_PACK_MOD3 10 -#define WAIT_PACK_WPC1 11 -#define WAIT_PACK_WPC2 12 -#define WAIT_PACK_WPC3 13 -#define WAIT_PACK_ALR1 14 -#define WAIT_PACK_ALR2 15 -#define WAIT_PACK_ALR3 16 -#define WAIT_PACK_PRF1 17 -#define WAIT_PACK_PRF2 18 -#define WAIT_PACK_PRF3 19 -#define FLUSH_TITLE1 20 -#define FLUSH_TITLE2 21 -#define FLUSH_TITLE3 22 -#define FLUSH_TITLE4 23 -#define READ_VALUE 24 - -uint8_t i; // working variable -uint8_t state; // currrent state -uint8_t rval, rpack; // received items -uint8_t xval[NB_BUF]; // expected value -uint8_t xpack[NB_BUF]; // expected packet -uint8_t ibuf[NB_BUF]; // subscripts on buffers values -char rbuf[NB_BUF][LG_BUF]; // receive buffers -const char val_unknown[] = "?"; - -void menuViewTelemetryArduPilot1(event_t event); -void menuViewTelemetryArduPilot2(event_t event); -void menuViewTelemetryArduPilot3(event_t event); -void menuViewTelemetryArduPilot4(event_t event); -void menuViewTelemetryArduPilot5(event_t event); -void menuViewTelemetryArduPilot6(event_t event); -void menuViewTelemetryArduPilot7(event_t event); -void menuViewTelemetryArduPilot8(event_t event); -void title(char x); -void initval(uint8_t num, uint8_t pack, uint8_t val); - -#ifndef SIMU -ISR (USART0_RX_vect) -{ - uint8_t rl; -// uint8_t rh; //USART control and Status Register 0 B - uint8_t iostat; //USART control and Status Register 0 A - - rl = UDR0; - iostat = UCSR0A; //USART control and Status Register 0 A - /* - bit 7 6 5 4 3 2 1 0 - RxC0 TxC0 UDRE0 FE0 DOR0 UPE0 U2X0 MPCM0 - - RxC0: Receive complete - TXC0: Transmit Complete - UDRE0: USART Data Register Empty - FE0: Frame Error - DOR0: Data OverRun - UPE0: USART Parity Error - U2X0: Double Tx Speed - MPCM0: MultiProcessor Comms Mode -*/ - if (iostat & ((1 << FE0) | (1 << DOR0) | (1 << UPE0))) - { - rl = xpack[0] = xpack[1] = xval[0] = xval[1] = 0; - state = WAIT_PACKET; // restart on error - } - // rh = UCSR0B; //USART control and Status Register 0 B -/* bit 7 6 5 4 3 2 1 0 - RxCIE0 TxCIE0 UDRIE0 RXEN0 TXEN0 UCSZ02 RXB80 TXB80 - - RxCIE0: Receive complete int enable - TXCIE0: Transmit Complete int enable - UDRIE0: USART Data Register Empty int enable - RXEN0: Rx enable - TXEN0: Tx Enable - UCSZ02: Character Size bit 2 - RXB80: Rx data bit 8 - TXB80: Tx data bit 8 -*/ - switch (state) - { - case WAIT_PACKET: - switch (rl) - { - case PACK_POS: // found a new POS packet - state = WAIT_PACK_POS2; // wait for the 2nd char - break; - case PACK_ATT: // found a new ATT packet - state = WAIT_PACK_ATT2; // wait for the 2nd char - break; - case PACK_MOD: // found a new MOD packet - state = WAIT_PACK_MOD2; // wait for the 2nd char - break; - case PACK_WPC: // found a new WPC packet - state = WAIT_PACK_WPC2; // wait for the 2nd char - break; - case PACK_ALR: // found a new ALR packet - state = WAIT_PACK_ALR2; // wait for the 2nd char - break; - case PACK_PRF: // found a new PRF packet - state = WAIT_PACK_PRF2; // wait for the 2nd char - break; - } - break; - case WAIT_PACK_POS2: // wait for 2nd char - if (rl == PACK_POS) - state = WAIT_PACK_POS3; - else - state = WAIT_PACKET; // restart if not found - break; - case WAIT_PACK_POS3: // wait for 3rd char - if (rl == PACK_POS) // found - { - state = FLUSH_TITLE1; // flush title "LAT:" - rpack = PACK_POS; - rval = 1; - for (i = 0; i < NB_BUF; i++) - ibuf[i] = 0; - } - else - state = WAIT_PACKET; // restart if not found - break; - case WAIT_PACK_ATT2: // wait for 2nd char - if (rl == PACK_ATT) - state = WAIT_PACK_ATT3; - else - state = WAIT_PACKET; // restart if not found - break; - case WAIT_PACK_ATT3: // wait for 3rd char - if (rl == PACK_ATT) - { - state = FLUSH_TITLE1; // flush title "ASP:" - rpack = PACK_ATT; - rval = 1; - for (i = 0; i < NB_BUF; i++) - ibuf[i] = 0; - } - else - state = WAIT_PACKET; // restart if not found - break; - case WAIT_PACK_MOD2: // wait for 2nd char - if (rl == PACK_MOD) - state = WAIT_PACK_MOD3; - else - state = WAIT_PACKET; // restart if not found - break; - case WAIT_PACK_MOD3: // wait for 3rd char - if (rl == PACK_MOD) - { - state = READ_VALUE; // ready to read values from PACK_MOD packet - rpack = PACK_MOD; - rval = 1; - for (i = 0; i < NB_BUF; i++) - ibuf[i] = 0; - } - else - state = WAIT_PACKET; // restart if not found - break; - case WAIT_PACK_WPC2: // wait for 2nd char - if (rl == PACK_WPC) - state = WAIT_PACK_WPC3; - else - state = WAIT_PACKET; // restart if not found - break; - case WAIT_PACK_WPC3: // wait for 3rd char - if (rl == PACK_WPC) - { - state = READ_VALUE; // ready to read values from PACK_WPC packet - rpack = PACK_WPC; - rval = 1; - for (i = 0; i < NB_BUF; i++) - ibuf[i] = 0; - } - else - state = WAIT_PACKET; // restart if not found - break; - case WAIT_PACK_ALR2: // wait for 2nd char - if (rl == PACK_ALR) - state = WAIT_PACK_ALR3; - else - state = WAIT_PACKET; // restart if not found - break; - case WAIT_PACK_ALR3: // wait for 3rd char - if (rl == PACK_ALR) - { - state = READ_VALUE; // ready to read values from PACK_ALR packet - rpack = PACK_ALR; - rval = 1; - for (i = 0; i < NB_BUF; i++) - ibuf[i] = 0; - } - else - state = WAIT_PACKET; // restart if not found - break; - case WAIT_PACK_PRF2: // wait for 2nd char - if (rl == PACK_PRF) - state = WAIT_PACK_PRF3; - else - state = WAIT_PACKET; // restart if not found - break; - case WAIT_PACK_PRF3: // wait for 3rd char - if (rl == PACK_PRF) - { - state = READ_VALUE; // ready to read values from PACK_PRF packet - rpack = PACK_PRF; - rval = 1; - for (i = 0; i < NB_BUF; i++) - ibuf[i] = 0; - } - else - state = WAIT_PACKET; // restart if not found - break; - case FLUSH_TITLE1: // wait for 1st char of title - state = FLUSH_TITLE2; - break; - case FLUSH_TITLE2: // wait for 2nd char - state = FLUSH_TITLE3; - break; - case FLUSH_TITLE3: // wait for 3rd char - state = FLUSH_TITLE4; - break; - case FLUSH_TITLE4: // wait for 4th char - if (rl == TITLE_END) - state = READ_VALUE; - else - state = WAIT_PACKET; // was not a title, wait for the next packet - break; - case READ_VALUE: - switch (rl) - { - case PACK_END: - state = WAIT_PACKET; // packet completed, wait for the next packet - break; - case VAL_END: // comma found, value completed - state = FLUSH_TITLE1; // flush next title - rval++; // and get next value - break; - default: // store the char in the corresponding buffer - for (i = 0; i < NB_BUF; i++) - { // is it the expected value in the expected packet ? - if (rpack == xpack[i] && rval == xval[i] && ibuf[i] < LG_BUF - 1) - { // yes, store the char - rbuf[i] [ibuf[i]] = rl; - ibuf[i]++; - rbuf[i] [ibuf[i]] = 0; - } - } - break; - } - break; - } -} -#endif - -void ARDUPILOT_Init (void) -{ - DDRE &= ~(1 << DDE0); // set RXD0 pin as input - PORTE &= ~(1 << PORTE0); // disable pullup on RXD0 pin - -#ifndef SIMU - // switch (Telem_baud) - // { - // case 1: -#undef BAUD -#define BAUD 38400 -#include - UBRR0H = UBRRH_VALUE; - UBRR0L = UBRRL_VALUE; - // break; - // } - - UCSR0A &= ~(1 << U2X0); // disable double speed operation - // set 8N1 - UCSR0B = 0|(0<< RXCIE0)|(0<, , ); - ------------------------------------- - - That means that "" of "" is stored in the buffer. - The first is 0. - - Here are the packet names and the associated value names: - - Position packet (beginning with "!!!"): "PACK_POS" - value names: "LAT", "LON", "SPD", "CRT", "ALT", "ALH", "CRS", "BER", - "WPN", "DST", "BTV", "RSP", "TOW" - - Attitude packet (beginning with "+++"): "PACK_ATT" - value names: "ASP", "THH", "RLL", "PCH" - - Mode change packet (beginning with "###"): "PACK_MOD" - value name: "MOD" - - Waypoint packet (beginning with "%%%"): "PACK_WPC" - value name: "WPC" - - Alert packet (beginning with "XXX"): "PACK_ALR" - value name: "ALR" - - Performance packet (beginning with "PPP"): "PACK_PRF" - value name: "PRF" - - The buffers are accessed using the macro "VALSTR()", where "" is "0" - for the first buffer, and "1" for the second buffer. - - When a value is missing, it is replaced by the contents of val_unknown ("?"). -*/ -// expecting LAT value in POS packet to be stored in the first buffer - initval (0, PACK_POS, LAT); -// and LON value in POS packet stored in the second buffer - initval (1, PACK_POS, LON); -// title of the screen - title ('1'); - lcdDrawText(5*FW, 1*FH, PSTR(" Latitude")); // line 1 column 5 -// first buffer into line 2 column 2 - lcdDrawText (2*FW, 2*FH, VALSTR(0), APSIZE); - lcdDrawText(5*FW, 4*FH, PSTR(" Longitude")); // line 4 column 5 -// second buffer into line 5 column 2 - lcdDrawText (1*FW, 5*FH, VALSTR(1), APSIZE); -} - -void menuViewTelemetryArduPilot2(event_t event) -{ - switch(event) - { - case EVT_KEY_FIRST(KEY_UP): - chainMenu(menuViewTelemetryArduPilot1); - break; - case EVT_KEY_FIRST(KEY_DOWN): - chainMenu(menuViewTelemetryArduPilot3); - break; - case EVT_KEY_FIRST(KEY_EXIT): - ARDUPILOT_DisableRXD(); - chainMenu(menuMainView); - break; - } - initval (0, PACK_POS, SPD); - initval (1, PACK_POS, CRT); - title ('2'); - lcdDrawText(1*FW, 1*FH, PSTR(" Ground speed")); - lcdDrawText (2*FW, 2*FH, VALSTR(0), APSIZE); - lcdDrawText(1*FW, 4*FH, PSTR(" Climb rate") ); - lcdDrawText (2*FW, 5*FH, VALSTR(1), APSIZE); -} - -void menuViewTelemetryArduPilot3(event_t event) -{ - switch(event) - { - case EVT_KEY_FIRST(KEY_UP): - chainMenu(menuViewTelemetryArduPilot2); - break; - case EVT_KEY_FIRST(KEY_DOWN): - chainMenu(menuViewTelemetryArduPilot4); - break; - case EVT_KEY_FIRST(KEY_EXIT): - ARDUPILOT_DisableRXD(); - chainMenu(menuMainView); - break; - } - initval (0, PACK_POS, ALT); - initval (1, PACK_POS, ALH); - title ('3'); - lcdDrawText(1*FW, 1*FH, PSTR(" Altitude")); - lcdDrawText (2*FW, 2*FH, VALSTR(0), APSIZE); - lcdDrawText(1*FW, 4*FH, PSTR(" Altitude Hold") ); - lcdDrawText (2*FW, 5*FH, VALSTR(1), APSIZE); -} - -void menuViewTelemetryArduPilot4(event_t event) -{ - switch(event) - { - case EVT_KEY_FIRST(KEY_UP): - chainMenu(menuViewTelemetryArduPilot3); - break; - case EVT_KEY_FIRST(KEY_DOWN): - chainMenu(menuViewTelemetryArduPilot5); - break; - case EVT_KEY_FIRST(KEY_EXIT): - ARDUPILOT_DisableRXD(); - chainMenu(menuMainView); - break; - } - initval (0, PACK_POS, CRS); - initval (1, PACK_POS, BER); - title ('4'); - lcdDrawText(1*FW, 1*FH, PSTR(" Course")); - lcdDrawText (2*FW, 2*FH, VALSTR(0), APSIZE); - lcdDrawText(1*FW, 4*FH, PSTR(" Bearing")); - lcdDrawText (2*FW, 5*FH, VALSTR(1), APSIZE); -} - -void menuViewTelemetryArduPilot5(event_t event) -{ - switch(event) - { - case EVT_KEY_FIRST(KEY_UP): - chainMenu(menuViewTelemetryArduPilot4); - break; - case EVT_KEY_FIRST(KEY_DOWN): - chainMenu(menuViewTelemetryArduPilot6); - break; - case EVT_KEY_FIRST(KEY_MENU): - break; - case EVT_KEY_FIRST(KEY_EXIT): - ARDUPILOT_DisableRXD(); - chainMenu(menuMainView); - break; - } - initval (0, PACK_POS, WPN); - initval (1, PACK_POS, DST); - title ('5'); - lcdDrawText(1*FW, 1*FH, PSTR(" Way Point # ")); - lcdDrawText (2*FW, 2*FH, VALSTR(0), APSIZE); - lcdDrawText(1*FW, 4*FH, PSTR(" Distance ")); - lcdDrawText (2*FW, 5*FH, VALSTR(1), APSIZE); -} - -void menuViewTelemetryArduPilot6(event_t event) -{ - switch(event) - { - case EVT_KEY_FIRST(KEY_UP): - chainMenu(menuViewTelemetryArduPilot5); - break; - case EVT_KEY_FIRST(KEY_DOWN): - chainMenu(menuViewTelemetryArduPilot7); - break; - case EVT_KEY_FIRST(KEY_MENU): - break; - case EVT_KEY_FIRST(KEY_EXIT): - ARDUPILOT_DisableRXD(); - chainMenu(menuMainView); - break; - } - initval (0, PACK_ATT, ASP); - initval (1, PACK_ATT, THH); - title ('6'); - lcdDrawText(1*FW, 1*FH, PSTR(" Air Speed ")); - lcdDrawText (2*FW, 2*FH, VALSTR(0), APSIZE); - lcdDrawText(1*FW, 4*FH, PSTR(" Climb Rate ")); - lcdDrawText (2*FW, 5*FH, VALSTR(1), APSIZE); -} - -void menuViewTelemetryArduPilot7(event_t event) -{ - switch(event) - { - case EVT_KEY_FIRST(KEY_UP): - chainMenu(menuViewTelemetryArduPilot6); - break; - case EVT_KEY_FIRST(KEY_DOWN): - chainMenu(menuViewTelemetryArduPilot8); - break; - case EVT_KEY_FIRST(KEY_MENU): - break; - case EVT_KEY_FIRST(KEY_EXIT): - ARDUPILOT_DisableRXD(); - chainMenu(menuMainView); - break; - } - initval (0, PACK_ATT, RLL); - initval (1, PACK_ATT, PCH); - title ('7'); - lcdDrawText(1*FW, 1*FH, PSTR(" Roll Angle")); - lcdDrawText (2*FW, 2*FH, VALSTR(0), APSIZE); - lcdDrawText(1*FW, 4*FH, PSTR(" Pitch Angle")); - lcdDrawText (2*FW, 5*FH, VALSTR(1), APSIZE); -} - -void menuViewTelemetryArduPilot8(event_t event) -{ - switch(event) - { - case EVT_KEY_FIRST(KEY_UP): - chainMenu(menuViewTelemetryArduPilot7); - break; - case EVT_KEY_FIRST(KEY_DOWN): - chainMenu(menuViewTelemetryArduPilot1); - break; - case EVT_KEY_FIRST(KEY_MENU): - break; - case EVT_KEY_FIRST(KEY_EXIT): - ARDUPILOT_DisableRXD(); - chainMenu(menuMainView); - break; - } - initval (0, PACK_MOD, MOD); - initval (1, PACK_WPC, WPC); - title ('8'); - lcdDrawText(1*FW, 1*FH, PSTR(" ArduPilot Mode")); - lcdDrawText (2*FW, 2*FH, VALSTR(0), APSIZE); - lcdDrawText(1*FW, 4*FH, PSTR(" RTL Distance")); - lcdDrawText (2*FW, 5*FH, VALSTR(1), APSIZE); -} - -void title(char x) -{ - lcdDrawText (0, 0, PSTR(" ARDU PILOT Mega ?/8 "), INVERS); - lcdDrawChar(17*FW, 0*FH, x, INVERS); -} - -void initval(uint8_t num, uint8_t pack, uint8_t val) -{ - if (xpack[num] != pack || xval[num] != val) - { - ibuf[num] = rbuf[num][0] = 0; - xpack[num] = pack; - xval[num] = val; - state = WAIT_PACKET; // synchronize to the next packet - } -} - -/* -Without ArduPilot: -Size after: -er9x.elf : -section size addr -.data 164 8388864 -.text 50634 0 -.bss 3485 8389028 ----------------------------------- -With ArduPilot: -Size after: -er9x.elf : -section size addr -.data 166 8388864 -.text 53026 0 -.bss 3517 8389030 -*/ diff --git a/radio/src/telemetry/ardupilot.h b/radio/src/telemetry/ardupilot.h deleted file mode 100644 index 44b80b214..000000000 --- a/radio/src/telemetry/ardupilot.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) OpenTX - * - * Based on code named - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#ifndef _ARDUPILOT_H_ -#define _ARDUPILOT_H_ -void ARDUPILOT_Init(void); -void ARDUPILOT_EnableRXD (void); -void menuViewTelemetryArduPilot(event_t event); -#endif // _ARDUPILOT_H_ - diff --git a/radio/src/telemetry/frsky.cpp b/radio/src/telemetry/frsky.cpp index 278dc26f0..93d421aa5 100644 --- a/radio/src/telemetry/frsky.cpp +++ b/radio/src/telemetry/frsky.cpp @@ -21,16 +21,7 @@ #include "opentx.h" -#if defined(TELEMETREZ) -#define PRIVATE 0x1B -uint8_t privateDataLen; -uint8_t privateDataPos; -#endif -#if defined(ROTARY_ENCODER_NAVIGATION) && defined(TELEMETREZ) -extern uint8_t TrotCount; -extern uint8_t TezRotary; -#endif NOINLINE void processFrskyTelemetryData(uint8_t data) { @@ -102,42 +93,8 @@ NOINLINE void processFrskyTelemetryData(uint8_t data) telemetryRxBufferCount = 0; dataState = STATE_DATA_START; } -#if defined(TELEMETREZ) - if (data == PRIVATE) { - dataState = STATE_DATA_PRIVATE_LEN; - } -#endif break; -#if defined(TELEMETREZ) - case STATE_DATA_PRIVATE_LEN: - dataState = STATE_DATA_PRIVATE_VALUE; - privateDataLen = data; // Count of bytes to receive - privateDataPos = 0; - break; - - case STATE_DATA_PRIVATE_VALUE : - if (privateDataPos == 0) { - // Process first private data byte - // PC6, PC7 - if ((data & 0x3F) == 0) {// Check byte is valid - DDRC |= 0xC0; // Set as outputs - PORTC = ( PORTC & 0x3F ) | ( data & 0xC0 ); // update outputs - } - } -#if defined(ROTARY_ENCODER_NAVIGATION) - if (privateDataPos == 1) { - TrotCount = data; - } - if (privateDataPos == 2) { // rotary encoder switch - RotEncoder = data; - } -#endif - if (++privateDataPos == privateDataLen) { - dataState = STATE_DATA_IDLE; - } - break; -#endif } // switch #if defined(TELEMETRY_FRSKY_SPORT) diff --git a/radio/src/telemetry/frsky.h b/radio/src/telemetry/frsky.h index de97fafb4..5394b5f5e 100644 --- a/radio/src/telemetry/frsky.h +++ b/radio/src/telemetry/frsky.h @@ -30,10 +30,6 @@ enum FrSkyDataState { STATE_DATA_START, STATE_DATA_IN_FRAME, STATE_DATA_XOR, -#if defined(TELEMETREZ) - STATE_DATA_PRIVATE_LEN, - STATE_DATA_PRIVATE_VALUE -#endif }; #define FRSKY_SPORT_BAUDRATE 57600 diff --git a/radio/src/telemetry/nmea.cpp b/radio/src/telemetry/nmea.cpp deleted file mode 100644 index a80f42c7d..000000000 --- a/radio/src/telemetry/nmea.cpp +++ /dev/null @@ -1,826 +0,0 @@ -/* - * Copyright (C) OpenTX - * - * Based on code named - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include "opentx.h" - -#define LG_BUF 14 -#define NB_LONG_BUF 3 -#define NB_SHORT_BUF 3 -#define LONG_BUF(val) (val) -#define SHORT_BUF(val) (val+NB_LONG_BUF) -#define VALSTR(val) (rbuf[val][0] ? rbuf[val] : val_unknown) -#define APSIZE (BSS | DBLSIZE) - -uint8_t i; // working variable -uint8_t state; // currrent state -uint8_t rval, rpack; // received items -uint8_t xval[NB_LONG_BUF+NB_SHORT_BUF]; // expected value -uint8_t xpack[NB_LONG_BUF+NB_SHORT_BUF]; // expected packet -uint8_t ibuf[NB_LONG_BUF]; // subscripts on long buffers values -char rbuf[NB_LONG_BUF][LG_BUF]; // long receive buffers -char sbuf[NB_SHORT_BUF]; // short receive buffers -const char val_unknown[] = "?"; -int32_t home_alt, save_alt, rel_alt, prev_alt, lift_alt, max_alt, abs_alt; // integer values for altitude computations -int32_t gpstimer=0; -int32_t gpstime; -uint8_t ggareceived; -uint8_t beep_on; -uint8_t show_timer; - -/* Received data -Data are received as packets, each packet is identified by a prefix of seven -characters ('$GPGGA,' or '$GPRMC,')and is ended by one star plus two bytes checksum. -The values are terminated by a comma. - -$GPGGA - Global Positioning System Fix Data, Time, Position and fix related data fora GPS receiver. - - 11 - 1 2 3 4 5 6 7 8 9 10 | 12 13 14 15 - | | | | | | | | | | | | | | | - GGA,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh - -Field Number: - 1) Universal Time Coordinated (UTC) - 2) Latitude - 3) N or S (North or South) - 4) Longitude - 5) E or W (East or West) - 6) GPS Quality Indicator, - 0 - fix not available, - 1 - GPS fix, - 2 - Differential GPS fix - 7) Number of satellites in view, 00 - 12 - 8) Horizontal Dilution of precision - 9) Antenna Altitude above/below mean-sea-level (geoid) - 10) Units of antenna altitude, meters - 11) Geoidal separation, the difference between the WGS-84 earth - ellipsoid and mean-sea-level (geoid), "-" means mean-sea-level - below ellipsoid - 12) Units of geoidal separation, meters - 13) Age of differential GPS data, time in seconds since last SC104 - type 1 or 9 update, null field when DGPS is not used - 14) Differential reference station ID, 0000-1023 - * - 15) Checksum - CrLf - - -$GPRMC - Recommended Minimum Navigation Information - 12 - 1 2 3 4 5 6 7 8 9 10 11| - | | | | | | | | | | | | - RMC,hhmmss.ss,A,llll.ll,a,yyyyy.yy,a,x.x,x.x,xxxx,x.x,a*hh - - Field Number: - 1) UTC Time - 2) Status, V = Navigation receiver warning - 3) Latitude - 4) N or S - 5) Longitude - 6) E or W - 7) Speed over ground, knots - 8) Track made good, degrees true. = = Course over ground (COG) - 9) Date, ddmmyy - 10) Magnetic Variation, degrees - 11) E or W - 12) Checksum -*/ - -// GGA record prefix -#define PACK_GGA 0x47 // "G" -#define PACK_GGA3 0x41 // "A" -// value occurence number in the GGA packet -#define TIM 1 -#define LAT 2 -#define NOS 3 -#define LON 4 -#define EOW 5 -#define FIX 6 -#define SAT 7 -#define DIL 8 -#define ALT 9 -#define MTR 10 -#define GEO 11 -#define MET 12 -#define AGE 13 -#define DIF 14 - -// RMC record prefix -#define PACK_RMC 0x52 // "R" -#define PACK_RMC2 0x4D // "M" -#define PACK_RMC3 0x43 // "C" -// value occurence number in the RMC packet -#define TIM 1 -#define NRW 2 -#define LT1 3 -#define NSO 4 -#define LN1 5 -#define EWE 6 -#define SOG 7 -#define COG 8 -#define DAT 9 -#define MAG 10 -#define EAW 11 - -// end of packet -#define PACK_END 0x2a // * -// end of value -#define VAL_END 0x2c // , - -// stateful machine - -// Since the packets are sent continuously, we need to synchronize on the -// reception of the three chars prefixing a packet, whatever they are. - -// states values -#define WAIT_PACKET 1 -#define WAIT_PACK_GGA1 2 -#define WAIT_PACK_GGA2 3 -#define WAIT_PACK_GGA3 4 -#define WAIT_PACK_RMC2 5 -#define WAIT_PACK_RMC3 6 -#define WAIT_VAL_END 7 -#define READ_VALUE 8 - -void menuViewTelemetryNMEA1(event_t event); -void menuViewTelemetryNMEA2(event_t event); -void menuViewTelemetryNMEA3(event_t event); -void menuViewTelemetryNMEA4(event_t event); -void title(char x); -void initval(uint8_t num, uint8_t pack, uint8_t val); -int32_t binary (char *str); -int32_t bintime (char *str); - -#ifndef SIMU -ISR (USART0_RX_vect) -{ - uint8_t rl; - // uint8_t rh; //USART control and Status Register 0 B - uint8_t iostat; //USART control and Status Register 0 A - - rl = UDR0; - iostat = UCSR0A; //USART control and Status Register 0 A - /* - bit 7 6 5 4 3 2 1 0 - RxC0 TxC0 UDRE0 FE0 DOR0 UPE0 U2X0 MPCM0 - - RxC0: Receive complete - TXC0: Transmit Complete - UDRE0: USART Data Register Empty - FE0: Frame Error - DOR0: Data OverRun - UPE0: USART Parity Error - U2X0: Double Tx Speed - MPCM0: MultiProcessor Comms Mode -*/ - if (iostat & ((1 << FE0) | (1 << DOR0) | (1 << UPE0))) - { - rl = xpack[0] = xpack[1] = xval[0] = xval[1] = 0; - initval (LONG_BUF(2), PACK_GGA, TIM); // always get UTC time for timer - state = WAIT_PACKET; // restart on error - } - // rh = UCSR0B; //USART control and Status Register 0 B - /* bit 7 6 5 4 3 2 1 0 - RxCIE0 TxCIE0 UDRIE0 RXEN0 TXEN0 UCSZ02 RXB80 TXB80 - - RxCIE0: Receive complete int enable - TXCIE0: Transmit Complete int enable - UDRIE0: USART Data Register Empty int enable - RXEN0: Rx enable - TXEN0: Tx Enable - UCSZ02: Character Size bit 2 - RXB80: Rx data bit 8 - TXB80: Tx data bit 8 -*/ - switch (state) - { - case WAIT_PACKET: - switch (rl) - { - case PACK_GGA: // found a new GGA packet "G" - state = WAIT_PACK_GGA2; // wait for the 2nd char - break; - case PACK_RMC: // found a new RMS packet "R" - state = WAIT_PACK_RMC2; // wait for the 2nd char - break; - } - break; - - case WAIT_PACK_GGA2: // received 2nd char "G" - if (rl == PACK_GGA) - state = WAIT_PACK_GGA3; // wait for 3rd character "A" - else - state = WAIT_PACKET; // restart if not "G" - break; - case WAIT_PACK_GGA3: // received 3rd char "A" - if (rl == PACK_GGA3) // found - { - state = WAIT_VAL_END; // wait for "," - rpack = PACK_GGA; - rval = 1; //clear the buffer - for (i = 0; i < NB_LONG_BUF; i++) - ibuf[i] = 0; - } - else - state = WAIT_PACKET; // restart if not found - break; - - case WAIT_PACK_RMC2: // wait for 2nd char "M" - if (rl == PACK_RMC2) - state = WAIT_PACK_RMC3; - else - state = WAIT_PACKET; // restart if not found - break; - case WAIT_PACK_RMC3: // wait for 3rd char "C" - if (rl == PACK_RMC3) - { - state = WAIT_VAL_END; // wait for "," - rpack = PACK_RMC; - rval = 1; - for (i = 0; i < NB_LONG_BUF; i++) // clear buffer - ibuf[i] = 0; - } - else - state = WAIT_PACKET; // restart if not found - break; - - case WAIT_VAL_END: - if (rl == VAL_END) // "," nach "GGA" oder "RMC" - { - state = READ_VALUE; - rval = 1; - for (i = 0; i < NB_LONG_BUF; i++) // clear buffer - ibuf[i] = 0; - } - else - state = WAIT_PACKET; // restart if not found - break; - - - case READ_VALUE: - switch (rl) - { - case PACK_END: - if (rpack == PACK_GGA) - ggareceived = 1; - state = WAIT_PACKET; // packet completed, wait for the next packet - break; - case VAL_END: // comma found, value completed - rval++; // and get next value - break; - default: // store the char in the corresponding buffer - for (i = 0; i < NB_LONG_BUF; i++) - { // is it the expected value in the expected packet ? - if (rpack == xpack[i] && rval == xval[i] && ibuf[i] < LG_BUF - 1) - { // yes, store the char - rbuf[i] [ibuf[i]] = rl; - ibuf[i]++; - rbuf[i] [ibuf[i]] = 0; - } - } - for (i = NB_LONG_BUF; i < NB_LONG_BUF+NB_SHORT_BUF; i++) { - if (rpack == xpack[i] // is this the expected short value in the expected packet ? - && rval == xval[i]) - sbuf[i-NB_LONG_BUF] = rl; // yes, store the char - } - } - break; - } -} -#endif - -void NMEA_Init (void) -{ -#ifndef SIMU - DDRE &= ~(1 << DDE0); // set RXD0 pin as input - PORTE &= ~(1 << PORTE0); // disable pullup on RXD0 pin - - // switch (Telem_baud) - // { - // case 1: -#undef BAUD -#define BAUD 4800 -#include - UBRR0H = UBRRH_VALUE; - UBRR0L = UBRRL_VALUE; - // break; - // } - - UCSR0A &= ~(1 << U2X0); // disable double speed operation - // set 8N1 - UCSR0B = 0|(0<< RXCIE0)|(0<resets timer to 00:00 - break; - } - /* - How to use: - - You choose the values to be displayed using the function: - - initval(, , ); - ------------------------------------- - - That means that "" of "" is stored in the buffer. - The first is 0. - - Here are the packet names and the associated value names: - - Position packet (beginning with "GGA"): "PACK_GGA" - value names: "TIM", "LAT", "NOS", "LON", "EOW", "FIX", "SAT", "DIL", "ALT", "MTR", "GEO", "MET", "AGE", "DIF", - - Required minimum packet (beginning with "RMC"): "PACK_RMC" - value names: "TIM", "NRW", "LT1", "NSO", "LN1", "EWE", "SOG", "COG", "DAT", "MAG", "EAW" - - The buffers are accessed using the macro "VALSTR()", where "" is "0" - for the first buffer, and "1" for the second buffer. - - When a value is missing, it is replaced by the contents of val_unknown ("?"). -*/ - - if (ggareceived) - { - gpstime=bintime(rbuf[2]); - ggareceived=0; - } - - initval (LONG_BUF(0), PACK_RMC, TIM); // sets rbuf[0][.] - initval (LONG_BUF(1), PACK_RMC, DAT); // sets rbuf[1][.] - initval (SHORT_BUF(0), PACK_RMC, NRW); // sets sbuf[0] - initval (SHORT_BUF(2), PACK_GGA, SAT); // -> sbuf[2] - - - title ('1'); - lcdDrawText ( 2*FW, 1*FH, PSTR("UTC-Time Sat")); - - if (rbuf[0][0]) { // show always if data have been received - lcdDrawChar ( 19*FW, 1*FH, sbuf[2], 0); // satellites in view - lcdDrawSizedText ( 2*FW, 2*FH, &rbuf[0][0], 2, APSIZE); // hours - lcdDrawChar ( 6*FW, 2*FH, ':', DBLSIZE); // ":" - lcdDrawSizedText ( 8*FW, 2*FH, &rbuf[0][2], 2, APSIZE); // minutes - lcdDrawChar ( 12*FW, 2*FH, ':', DBLSIZE); // ":" - lcdDrawSizedText ( 14*FW, 2*FH, &rbuf[0][4], 2, APSIZE); // seconds - } - else - lcdDrawText ( 2*FW, 2*FH, val_unknown, APSIZE); // "?" - - if ((show_timer == 1) && rbuf[0][0]) { // show the Timer when data have been received - - lcdDrawText ( 2*FW, 4*FH, PSTR("Timer")); // display "Timer" - drawTimer ( 5*FW, 5*FH, (gpstime-gpstimer), DBLSIZE, DBLSIZE); // display difference as mm:ss - } - else - { - lcdDrawText ( 2*FW, 4*FH, PSTR("Date")); // show the UTC Date - - if (rbuf[1][0]) { - lcdDrawSizedText( 2*FW, 5*FH, &rbuf[1][0], 2, APSIZE); // year - lcdDrawChar ( 6*FW, 5*FH, '/', DBLSIZE); // "/" - lcdDrawSizedText( 8*FW, 5*FH, &rbuf[1][2], 2, APSIZE); // month - lcdDrawChar (12*FW, 5*FH, '/', DBLSIZE); // "/" - lcdDrawSizedText(14*FW, 5*FH, &rbuf[1][4], 2, APSIZE); // day - } - else - lcdDrawText ( 2*FW, 5*FH, val_unknown, APSIZE); // "?" - } -} - - - -void menuViewTelemetryNMEA2(event_t event) -{ - static uint8_t ignore_break; - - - switch(event) - { -// Menu navigation - case EVT_KEY_BREAK(KEY_LEFT): - if (ignore_break==1) { - ignore_break=0; - break;} - chainMenu(menuViewTelemetryNMEA1); - break; - case EVT_KEY_BREAK(KEY_RIGHT): - if (ignore_break==1) { - ignore_break=0; - break;} - chainMenu(menuViewTelemetryNMEA3); - break; - case EVT_KEY_LONG(KEY_UP): - NMEA_DisableRXD(); - chainMenu(menuStatisticsView); - break; - case EVT_KEY_LONG(KEY_DOWN): - NMEA_DisableRXD(); - chainMenu(menuMainView); - break; - -//Beep setting - case EVT_KEY_LONG(KEY_LEFT): - ignore_break = 1; - beep_on=0; - AUDIO_KEY_PRESS(); - break; - case EVT_KEY_LONG(KEY_RIGHT): - ignore_break = 1; - beep_on=1; - AUDIO_KEY_PRESS(); - break; - -//Altitude setting - /* Set a home position for altitude. Normally used before starting - the model when GPS has got a fix. - MENU[short] --> alternating relative and absolute altitudes - MENU[long] --> set home altitude to current - EXIT[long] --> reset max altitude to 0 - - Switch ON / OFF short beep with positive lift - LEFT[long] --> Positive lift Beep off - RIGHT[long] --> Positive lift Beep on */ - - - case EVT_KEY_BREAK(KEY_MENU): - if (ignore_break==1) { - ignore_break=0; - break;} - - if (!home_alt) // umschalten zwischen absoluter und relativer H�he - home_alt = save_alt; - else - home_alt=0; - - if (save_alt==0) // wenn noch keine Home H�he gesetzt war, wird sie es jetzt, weil sonst - // das Umschalten keine Wirkung zeigt - save_alt = home_alt = abs_alt; // absolute altitude - AUDIO_KEY_PRESS(); - break; - - case EVT_KEY_LONG(KEY_MENU): - ignore_break = 1; - save_alt = home_alt = abs_alt; // Home altitude auf aktuelle absolute H�he setzen - AUDIO_KEY_PRESS(); - break; - - case EVT_KEY_LONG(KEY_EXIT): // Max Altitude auf 0 zur�cksetzen - max_alt=0; - AUDIO_KEY_PRESS(); - break; - - } - title ('2'); - - lcdDrawText ( 1*FW, 1*FH, PSTR("Altitude Sat Max")); - - - lcdDrawText ( 16*FW, 3*FH, PSTR("Home")); - lcdDrawText ( 2*FW, 4*FH, PSTR("Lift") ); - - lcdDrawText ( 16*FW, 5*FH, PSTR("Beep") ); - if (beep_on==1) - lcdDrawText ( 18*FW, 6*FH, PSTR("ON") ); - - else - lcdDrawText ( 17*FW, 6*FH, PSTR("OFF") ); - - - lcdDrawNumber( 20*FW, 4*FH, home_alt, PREC1, 6); // display home_alt, small characters - - if (xpack[0] != PACK_GGA) - ggareceived = 0; - - initval (LONG_BUF(0), PACK_GGA, ALT); // -> rbuf[0] - initval (LONG_BUF(1), PACK_GGA, GEO); // -> rbuf[1] - initval (SHORT_BUF(0), PACK_GGA, MTR); // -> sbuf[0] - initval (SHORT_BUF(1), PACK_GGA, FIX); // -> sbuf[1] - initval (SHORT_BUF(2), PACK_GGA, SAT); // -> sbuf[2] - - if (ggareceived) // at least one second has elapsed - { - ggareceived = 0; - - /* ALT and GEO have one single digit following the decimal point - e.g. ALT=359.7 GEO=47.7 - The altitude over mean sea level is to be calculated as: - altitude minus geoidal separation - */ - - abs_alt = binary(rbuf[0]) - binary(rbuf[1]); // alt - geo that is absolute altitude - - if (abs_alt> max_alt) max_alt=abs_alt; // hold max altitude relative to 0 m - - rel_alt=abs_alt - home_alt; // alt - geo - home altitude relative to home - - - lift_alt = rel_alt - prev_alt; - prev_alt = rel_alt; - - if ((lift_alt >= 0) && (sbuf[1]>0x30) && beep_on) // GGA record must have Fix> 0 - AUDIO_KEY_PRESS(); // short blip for non negative lift - - } - - if (rbuf[0][0]) { - lcdDrawChar ( 13*FW, 1*FH, sbuf[2], 0); // satellites in view - - if (sbuf[1]>0x30) { // & GGA has FIX > 0 - - - lcdDrawNumber( 10*FW, 2*FH, rel_alt, DBLSIZE|PREC1, 7); // altitude - - if (home_alt >= 0) - lcdDrawNumber( 20*FW, 2*FH, (max_alt-home_alt), PREC1, 6); // display small characters - else - lcdDrawNumber( 20*FW, 2*FH, max_alt, PREC1, 6); // display small characters - - - lcdDrawChar ( 11*FW, 3*FH, sbuf[0], 0); // dimension [m] - - lcdDrawNumber( 10*FW, 5*FH, lift_alt, DBLSIZE|PREC1, 6); // lift - lcdDrawChar ( 11*FW, 6*FH, sbuf[0], 0); // dimension [m/S] - lcdDrawText ( 12*FW, 6*FH, PSTR("/S") ); - } - } - else { - lcdDrawText ( 2*FW, 2*FH, val_unknown, APSIZE); - lcdDrawText ( 2*FW, 5*FH, val_unknown, APSIZE); - } -} - - - -void menuViewTelemetryNMEA3(event_t event) -{ - switch(event) - { - case EVT_KEY_BREAK(KEY_LEFT): - chainMenu(menuViewTelemetryNMEA2); - break; - case EVT_KEY_BREAK(KEY_RIGHT): - chainMenu(menuViewTelemetryNMEA4); - break; - case EVT_KEY_LONG(KEY_UP): - NMEA_DisableRXD(); - chainMenu(menuStatisticsView); - break; - case EVT_KEY_LONG(KEY_DOWN): - NMEA_DisableRXD(); - chainMenu(menuMainView); - break; - } - initval (LONG_BUF(0), PACK_RMC, SOG); - initval (LONG_BUF(1), PACK_RMC, COG); - initval (SHORT_BUF(2), PACK_GGA, SAT); // -> sbuf[2] - title ('3'); - lcdDrawText ( 0*FW, 1*FH, PSTR("GrndSpeed[knt] Sat")); - if (rbuf[0][0]) // if first position is 00, buffer is empty, taken as false - { // any other value is true - uint8_t i = 0; - while (rbuf[0][i]) - { - if (rbuf[0][i] == '.') // find decimal point and insert End of String 3 positions higher - { - rbuf[0][i+3] = 0; - break; - } - i++; - } - lcdDrawText ( 2*FW, 2*FH, VALSTR(0), APSIZE); // speed over ground - } - else - lcdDrawText ( 2*FW, 2*FH, val_unknown, APSIZE); - - lcdDrawChar ( 19*FW, 1*FH, sbuf[2], 0); // satellites in view - - lcdDrawText ( 1*FW, 4*FH, PSTR("Course over ground") ); - lcdDrawText ( 2*FW, 5*FH, VALSTR(1), APSIZE); // course over ground -} - - - -void menuViewTelemetryNMEA4(event_t event) -{ - switch(event) // new event received, branch accordingly - { - case EVT_KEY_BREAK(KEY_LEFT): - chainMenu(menuViewTelemetryNMEA3); - break; - case EVT_KEY_BREAK(KEY_RIGHT): - chainMenu(menuViewTelemetryNMEA1); - break; - case EVT_KEY_LONG(KEY_UP): - NMEA_DisableRXD(); - chainMenu(menuStatisticsView); - break; - case EVT_KEY_LONG(KEY_DOWN): - NMEA_DisableRXD(); - chainMenu(menuMainView); - break; - } - // expecting LAT value in POS packet to be stored in the first buffer - initval (LONG_BUF(0), PACK_GGA, LAT); - initval (SHORT_BUF(0), PACK_GGA, NOS); - // and LON value in POS packet stored in the second buffer - initval (LONG_BUF(1), PACK_GGA, LON); - initval (SHORT_BUF(1), PACK_GGA, EOW); - initval (SHORT_BUF(2), PACK_GGA, SAT); // -> sbuf[2] - // title of the screen - title ('4'); - lcdDrawText ( 3*FW, 1*FH, PSTR("Latitude Sat")); // line 1 column 3 - // first buffer into line 2 column 2 - if (rbuf[0][0]) - { - lcdDrawChar ( 13*FW, 1*FH, sbuf[0], 0); // N or S - lcdDrawChar ( 19*FW, 1*FH, sbuf[2], 0); // satellites in view - lcdDrawSizedText ( 1*FW, 2*FH, rbuf[0], 2, APSIZE); - lcdDrawChar ( 5*FW, 2*FH, '@',0); - lcdDrawText ( 6*FW, 2*FH, &rbuf[0][2], APSIZE); // minutes with small decimal point - } - else - lcdDrawText ( 2*FW, 2*FH, val_unknown, APSIZE); - lcdDrawText ( 3*FW, 4*FH, PSTR("Longitude")); // line 4 column 5 - // second buffer into line 5 column 2 - if (rbuf[0][0]) - { - lcdDrawChar ( 13*FW, 4*FH, sbuf[1], 0); // E or W - lcdDrawSizedText ( 0*FW, 5*FH, rbuf[1], 3, APSIZE); - lcdDrawChar ( 6*FW, 5*FH, '@',0); - lcdDrawText ( 7*FW, 5*FH, &rbuf[1][3], APSIZE); // minutes with small decimal point - - } - else - lcdDrawText ( 2*FW, 5*FH, val_unknown, APSIZE); -} - -void title(char x) -{ - lcdDrawText (0*FW, 0*FH, PSTR(" GPS NMEA data ?/4 "), INVERS); - lcdDrawChar(16*FW, 0*FH, x, INVERS); -} - -void initval(uint8_t num, uint8_t pack, uint8_t val) -{ - if (xpack[num] != pack || xval[num] != val) - { - if (num < NB_LONG_BUF) { - ibuf[num] = rbuf[num][0] = 0; - } - else - sbuf[num-NB_LONG_BUF] = '?'; - xpack[num] = pack; - xval[num] = val; - state = WAIT_PACKET; // synchronize to the next packet - } -} - -int32_t binary (char *str) -{ - int32_t numval = 0; - uint8_t sign = 0; - - while (*str) { - if (*str == '-') - sign = 1; - else if (*str >= '0' && *str <= '9') - numval = numval * 10 + (*str - '0'); - str++; - } - if (sign) - numval = -numval; - return numval; -} - -int32_t bintime (char *str) -{ - int32_t numval=0; - - if (*str) { - numval = ((str[0] - '0') * 10l) + (str[1] - '0'); // hours - numval = numval * 3600l; - numval = numval + ((( (str[2] - '0') * 10l) + (str[3] - '0')) * 60l); // minutes - numval = numval + ((str[4] - '0') * 10l) + (str[5] - '0'); // seconds - } - return numval; -} -/* -Without NMEA: - -Size after: -AVR Memory Usage ----------------- -Device: atmega64 - -Program: 54226 bytes (82.7% Full) -(.text + .data + .bootloader) - -Data: 3440 bytes (84.0% Full) -(.data + .bss + .noinit) - ----------------------------------- - -With NMEA: - -Size after: -AVR Memory Usage ----------------- -Device: atmega64 - -Program: 57098 bytes (87.1% Full) -(.text + .data + .bootloader) - -Data: 3524 bytes (86.0% Full) -(.data + .bss + .noinit) -*/ diff --git a/radio/src/telemetry/nmea.h b/radio/src/telemetry/nmea.h deleted file mode 100644 index 14854c10d..000000000 --- a/radio/src/telemetry/nmea.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (C) OpenTX - * - * Based on code named - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#ifndef _NMEA_H_ -#define _NMEA_H_ - -void NMEA_Init(void); -void NMEA_EnableRXD (void); -void menuViewTelemetryNMEA(event_t event); - -#endif // _NMEA_H_ - diff --git a/radio/src/telemetry/telemetry.h b/radio/src/telemetry/telemetry.h index b6b90cacc..21c4067df 100644 --- a/radio/src/telemetry/telemetry.h +++ b/radio/src/telemetry/telemetry.h @@ -24,18 +24,6 @@ #if defined(TELEMETRY_FRSKY) // FrSky Telemetry #include "frsky.h" -#elif defined(TELEMETRY_JETI) - // Jeti-DUPLEX Telemetry - #include "jeti.h" -#elif defined(TELEMETRY_ARDUPILOT) - // ArduPilot Telemetry - #include "ardupilot.h" -#elif defined(TELEMETRY_NMEA) - // NMEA Telemetry - #include "nmea.h" -#elif defined(TELEMETRY_MAVLINK) - // Mavlink Telemetry - #include "mavlink.h" #endif #if defined(CROSSFIRE) diff --git a/radio/src/thirdparty/GCS_MAVLink/.gitignore b/radio/src/thirdparty/GCS_MAVLink/.gitignore deleted file mode 100644 index d67b9114a..000000000 --- a/radio/src/thirdparty/GCS_MAVLink/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*~ -doc/html -doc/*.log diff --git a/radio/src/thirdparty/GCS_MAVLink/include_v1.0 b/radio/src/thirdparty/GCS_MAVLink/include_v1.0 deleted file mode 160000 index 21083c3af..000000000 --- a/radio/src/thirdparty/GCS_MAVLink/include_v1.0 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 21083c3af5f386a27d59a3ef6bff01a70991c3cb diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index 6eaf8fe94..251a4d3f6 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -113,11 +113,6 @@ const pm_char STR_OPEN9X[] PROGMEM = ISTR(BLUETOOTH_MODES) #endif ISTR(VANTENNATYPES) -#if defined(TELEMETRY_MAVLINK) - ISTR(MAVLINK_BAUDS) - ISTR(MAVLINK_AC_MODES) - ISTR(MAVLINK_AP_MODES) -#endif ; // The 0-terminated-strings @@ -719,31 +714,6 @@ const pm_char STR_BLCOLOR[] PROGMEM = TR_BLCOLOR; const pm_char STR_BLUETOOTH_PIN_CODE[] PROGMEM = TR_BLUETOOTH_PIN_CODE; #endif -#if defined(TELEMETRY_MAVLINK) - const pm_char STR_MAVLINK_RC_RSSI_SCALE_LABEL[] PROGMEM = TR_MAVLINK_RC_RSSI_SCALE_LABEL; - const pm_char STR_MAVLINK_PC_RSSI_EN_LABEL[] PROGMEM = TR_MAVLINK_PC_RSSI_EN_LABEL; - const pm_char STR_MAVMENUSETUP_TITLE[] PROGMEM = TR_MAVMENUSETUP_TITLE; - const pm_char STR_MAVLINK_BAUD_LABEL[] PROGMEM = TR_MAVLINK_BAUD_LABEL; - const pm_char STR_MAVLINK_INFOS[] PROGMEM = TR_MAVLINK_INFOS; - const pm_char STR_MAVLINK_MODE[] PROGMEM = TR_MAVLINK_MODE; - const pm_char STR_MAVLINK_CUR_MODE[] PROGMEM = TR_MAVLINK_CUR_MODE; - const pm_char STR_MAVLINK_ARMED[] PROGMEM = TR_MAVLINK_ARMED; - const pm_char STR_MAVLINK_BAT_MENU_TITLE[] PROGMEM = TR_MAVLINK_BAT_MENU_TITLE; - const pm_char STR_MAVLINK_BATTERY_LABEL[] PROGMEM = TR_MAVLINK_BATTERY_LABEL; - const pm_char STR_MAVLINK_RC_RSSI_LABEL[] PROGMEM = TR_MAVLINK_RC_RSSI_LABEL; - const pm_char STR_MAVLINK_PC_RSSI_LABEL[] PROGMEM = TR_MAVLINK_PC_RSSI_LABEL; - const pm_char STR_MAVLINK_NAV_MENU_TITLE[] PROGMEM = TR_MAVLINK_NAV_MENU_TITLE; - const pm_char STR_MAVLINK_COURSE[] PROGMEM = TR_MAVLINK_COURSE; - const pm_char STR_MAVLINK_HEADING[] PROGMEM = TR_MAVLINK_HEADING; - const pm_char STR_MAVLINK_BEARING[] PROGMEM = TR_MAVLINK_BEARING; - const pm_char STR_MAVLINK_ALTITUDE[] PROGMEM = TR_MAVLINK_ALTITUDE; - const pm_char STR_MAVLINK_GPS[] PROGMEM = TR_MAVLINK_GPS; - const pm_char STR_MAVLINK_NO_FIX[] PROGMEM = TR_MAVLINK_NO_FIX; - const pm_char STR_MAVLINK_SAT[] PROGMEM = TR_MAVLINK_SAT; - const pm_char STR_MAVLINK_HDOP[] PROGMEM = TR_MAVLINK_HDOP; - const pm_char STR_MAVLINK_LAT[] PROGMEM = TR_MAVLINK_LAT; - const pm_char STR_MAVLINK_LON[] PROGMEM = TR_MAVLINK_LON; -#endif const pm_char STR_ABOUTUS[] PROGMEM = TR_ABOUTUS; const pm_char STR_ABOUT_OPENTX_1[] PROGMEM = TR_ABOUT_OPENTX_1; diff --git a/radio/src/translations.h b/radio/src/translations.h index 3d1a430b6..cf8bd26cc 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -217,13 +217,7 @@ extern const pm_char STR_OPEN9X[]; #define OFS_VANTENNATYPES (OFS_VCELLINDEX + sizeof(TR_VCELLINDEX)) #endif #define OFS_MAVLINK_BAUDS (OFS_VANTENNATYPES + sizeof(TR_VANTENNATYPES)) -#if defined(TELEMETRY_MAVLINK) - #define OFS_MAVLINK_AC_MODES (OFS_MAVLINK_BAUDS + sizeof(TR_MAVLINK_BAUDS)) - #define OFS_MAVLINK_AP_MODES (OFS_MAVLINK_AC_MODES + sizeof(TR_MAVLINK_AC_MODES)) - #define OFS_SPARE (OFS_MAVLINK_AP_MODES + sizeof(TR_MAVLINK_AP_MODES)) -#else #define OFS_SPARE (OFS_MAVLINK_BAUDS) -#endif #define STR_OFFON (STR_OPEN9X + OFS_OFFON) #define STR_MMMINV (STR_OPEN9X + OFS_MMMINV) @@ -334,11 +328,6 @@ extern const pm_char STR_BLUETOOTH_LOCAL_ADDR[]; #define STR_BLUETOOTH_MODES (STR_OPEN9X + OFS_BLUETOOTH_MODES) #endif -#if defined(TELEMETRY_MAVLINK) - #define STR_MAVLINK_BAUDS (STR_OPEN9X + OFS_MAVLINK_BAUDS) - #define STR_MAVLINK_AC_MODES (STR_OPEN9X + OFS_MAVLINK_AC_MODES) - #define STR_MAVLINK_AP_MODES (STR_OPEN9X + OFS_MAVLINK_AP_MODES) -#endif // The 0-terminated-strings #define NO_INDENT(x) (x)+LEN_INDENT @@ -986,31 +975,6 @@ extern const pm_char STR_BLCOLOR[]; extern const pm_char STR_MODULE_RANGE[]; #endif -#if defined(TELEMETRY_MAVLINK) - extern const pm_char STR_MAVLINK_RC_RSSI_SCALE_LABEL[]; - extern const pm_char STR_MAVLINK_PC_RSSI_EN_LABEL[]; - extern const pm_char STR_MAVMENUSETUP_TITLE[]; - extern const pm_char STR_MAVLINK_BAUD_LABEL[]; - extern const pm_char STR_MAVLINK_INFOS[]; - extern const pm_char STR_MAVLINK_MODE[]; - extern const pm_char STR_MAVLINK_CUR_MODE[]; - extern const pm_char STR_MAVLINK_ARMED[]; - extern const pm_char STR_MAVLINK_BAT_MENU_TITLE[]; - extern const pm_char STR_MAVLINK_BATTERY_LABEL[]; - extern const pm_char STR_MAVLINK_RC_RSSI_LABEL[]; - extern const pm_char STR_MAVLINK_PC_RSSI_LABEL[]; - extern const pm_char STR_MAVLINK_NAV_MENU_TITLE[]; - extern const pm_char STR_MAVLINK_COURSE[]; - extern const pm_char STR_MAVLINK_HEADING[]; - extern const pm_char STR_MAVLINK_BEARING[]; - extern const pm_char STR_MAVLINK_ALTITUDE[]; - extern const pm_char STR_MAVLINK_GPS[]; - extern const pm_char STR_MAVLINK_NO_FIX[]; - extern const pm_char STR_MAVLINK_SAT[]; - extern const pm_char STR_MAVLINK_HDOP[]; - extern const pm_char STR_MAVLINK_LAT[]; - extern const pm_char STR_MAVLINK_LON[]; -#endif extern const pm_char STR_ABOUTUS[]; extern const pm_char STR_ABOUT_OPENTX_1[]; diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index ee4646747..2a983ffe5 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -137,8 +137,6 @@ #define TR_RETA123 "SVPK123LR" #elif defined(PCBSKY9X) #define TR_RETA123 "SVPK123a" -#elif defined(CPUM2560) - #define TR_RETA123 "SVPK123ab" #else #define TR_RETA123 "SVPK123" #endif @@ -167,11 +165,7 @@ #define TR_IRPROTOS #endif -#if defined(CPUARM) #define TR_XPPM -#else - #define TR_XPPM "PPM16\0""PPMsim" -#endif #define TR_VPROTOS "PPM\0 " TR_XPPM TR_PXX TR_DSM2 TR_IRPROTOS @@ -208,27 +202,14 @@ #else #define TR_CSWTIMER "Tim\0 " #define TR_CSWSTICKY "Stky\0" - #if defined(CPUARM) #define TR_CSWRANGE "Rnge\0" #define TR_CSWSTAY "Edge\0" - #else - #define TR_CSWRANGE - #define TR_CSWSTAY - #endif #endif -#if defined(CPUARM) #define TR_CSWEQUAL "a=x\0 " -#else - #define TR_CSWEQUAL -#endif #define LEN_VCSWFUNC "\005" -#if defined(CPUARM) #define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""a= 212 #define TR_FSW_RESET_TIMERS "Stopky1\0 ""Stopky2\0 ""Stopky3\0 " -#elif defined(CPUARM) - #define TR_FSW_RESET_TIMERS "Tmr1""Tmr2""Tmr3" #else - #define TR_FSW_RESET_TIMERS "Tmr1""Tmr2" + #define TR_FSW_RESET_TIMERS "Tmr1""Tmr2""Tmr3" #endif #define TR_VFSWRESET TR(TR_FSW_RESET_TIMERS "Vše\0" TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC, TR_FSW_RESET_TIMERS "Vše\0 " TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC) @@ -348,22 +321,10 @@ #define LENGTH_UNIT_METR "m\0 " #define SPEED_UNIT_METR "kmh" -#if defined(CPUARM) #define LEN_VUNITSSYSTEM TR("\006", "\010") #define TR_VUNITSSYSTEM TR("Metr.\0""Imper.", "Metrické""Imperial") #define LEN_VTELEMUNIT "\003" #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""mW\0""dB\0""rpm""g\0 ""@\0 ""rad""ml\0""fOz" -#else - #if defined(IMPERIAL_UNITS) - #define LENGTH_UNIT LENGTH_UNIT_IMP - #define SPEED_UNIT SPEED_UNIT_IMP - #else - #define LENGTH_UNIT LENGTH_UNIT_METR - #define SPEED_UNIT SPEED_UNIT_METR - #endif - #define LEN_VTELEMUNIT "\003" - #define TR_VTELEMUNIT "V\0 ""A\0 ""m/s""-\0 " SPEED_UNIT LENGTH_UNIT "@\0 ""%\0 ""mA\0""mAh""W\0 " -#endif #define STR_V (STR_VTELEMUNIT+1) #define STR_A (STR_VTELEMUNIT+4) @@ -377,15 +338,10 @@ #define LEN_VTELPROTO "\007" #define TR_VTELPROTO "---\0 ""Hub\0 ""WSHHigh" -#if defined(CPUARM) #define LEN_AMPSRC TR("\003", "\005") #define TR_AMPSRC TR("---""A1\0""A2\0""A3\0""A4\0""FAS""Cel", "---\0 ""A1\0 ""A2\0 ""A3\0 ""A4\0 ""FAS\0 ""Cells") #define LEN_VOLTSRC TR("\003", "\005") #define TR_VOLTSRC TR("A1\0""A2\0""A3\0""A4\0""FAS""Cel", "A1\0 ""A2\0 ""A3\0 ""A4\0 ""FAS\0 ""Cells") -#else - #define LEN_AMPSRC TR("\003", "\005") - #define TR_AMPSRC TR("---""A1\0""A2\0""FAS""Cel", "---\0 ""A1\0 ""A2\0 ""FAS\0 ""Cells") -#endif #define LEN_VARIOSRC "\004" #if defined(TELEMETRY_FRSKY_SPORT) @@ -394,13 +350,8 @@ #define TR_VARIOSRC "Alt\0""Alt+""VSpd""A1\0 ""A2\0" #endif -#if defined(CPUARM) #define LEN_VTELEMSCREENTYPE "\010" #define TR_VTELEMSCREENTYPE "Nic\0 ""Hodnota ""Ukazatel""Skript\0" -#else - #define LEN_VTELEMSCREENTYPE "\010" - #define TR_VTELEMSCREENTYPE "Hodnota ""Ukazatel" -#endif #define LEN_GPSFORMAT "\004" #define TR_GPSFORMAT "DMS\0""NMEA" @@ -443,18 +394,12 @@ #define LEN_INPUTNAMES "\004" #define TR_INPUTNAMES "Sme\0""Vys\0""Pln\0""Kri\0" -#if defined(CPUARM) #define TR_STICKS_VSRCRAW "\307Smě""\307Výš""\307Pln""\307Kři" -#else -#define TR_STICKS_VSRCRAW "Směr""Výšk""Plyn""Křid" -#endif #if defined(PCBHORUS) #define TR_TRIMS_VSRCRAW "\313Smě""\313Výš""\313Pln""\313Kři""\313T5\0""\313T6\0" -#elif defined(CPUARM) - #define TR_TRIMS_VSRCRAW "\313Smě""\313Výš""\313Pln""\313Kři" #else - #define TR_TRIMS_VSRCRAW "TrmS""TrmV""TrmP""TrmK" + #define TR_TRIMS_VSRCRAW "\313Smě""\313Výš""\313Pln""\313Kři" #endif #if defined(PCBX12S) @@ -485,11 +430,7 @@ #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" #endif -#if defined(CPUARM) #define TR_LOGICALSW "L01""L02""L03""L04""L05""L06""L07""L08""L09""L10""L11""L12""L13""L14""L15""L16""L17""L18""L19""L20""L21""L22""L23""L24""L25""L26""L27""L28""L29""L30""L31""L32" -#else - #define TR_LOGICALSW "L01""L02""L03""L04""L05""L06""L07""L08""L09""L10""L11""L12" -#endif #if defined(PCBHORUS) #define TR_TRIMS_SWITCHES "\313Sl""\313Sp""\313Vd""\313Vn""\313Pd""\313Pn""\313Kl""\313Kp""\3135d""\3135n""\3136d""\3136n" @@ -500,9 +441,6 @@ #if defined(PCBSKY9X) #define TR_ROTARY_ENCODERS "REa\0" #define TR_ROTENC_SWITCHES "REa" -#elif defined(PCBGRUVIN9X) || defined(PCBMEGA2560) - #define TR_ROTARY_ENCODERS "REa\0""REb\0" - #define TR_ROTENC_SWITCHES "REa""REb" #else #define TR_ROTARY_ENCODERS #define TR_ROTENC_SWITCHES @@ -529,13 +467,8 @@ #define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]" #endif -#if defined(CPUARM) #define TR_RESERVE_VSRCRAW "[--]" #define TR_EXTRA_VSRCRAW "Bat.""Čas\0""GPS\0" TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW "Tmr1""Tmr2""Tmr3" -#else - #define TR_EXTRA_VSRCRAW - #define TR_VTELEMCHNS "---\0" "Bat." "Tmr1""Tmr2""Tx\0 ""Rx\0 ""A1\0 ""A2\0 ""Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""ASp+""Cel-""Cls-""Vfs-""Cur+""Pwr+""Acc\0""Time" -#endif #define TR_VSRCRAW "---\0" TR_STICKS_VSRCRAW TR_POTS_VSRCRAW TR_ROTARY_ENCODERS "MAX\0" TR_CYC_VSRCRAW TR_TRIMS_VSRCRAW TR_SW_VSRCRAW TR_EXTRA_VSRCRAW @@ -553,14 +486,6 @@ #define LEN_VFAILSAFE "\012" #define TR_VFAILSAFE "Nenastaven""Držet\0 ""Vlastní\0 ""Bez pulzů\0""Přijímač\0" -#if defined(TELEMETRY_MAVLINK) - #define LEN_MAVLINK_BAUDS "\006" - #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""58798 ""76800" - #define LEN_MAVLINK_AC_MODES "\011" - #define TR_MAVLINK_AC_MODES "Stabilize""Acro ""Alt Hold ""Auto ""Guided ""Loiter ""RTL ""Circle ""Pos Hold ""Land ""OF Loiter""Toy A ""Toy M ""INVALID " - #define LEN_MAVLINK_AP_MODES "\015" - #define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID " -#endif #define LEN_VSENSORTYPES "\011" #define TR_VSENSORTYPES "Vlastní\0 ""Vypočtený" @@ -625,11 +550,7 @@ #define TR_PHASENAME "Název" #define TR_MIXNAME "Název" #define TR_INPUTNAME "Název" -#if defined(CPUARM) #define TR_EXPONAME "Popis" -#else - #define TR_EXPONAME "Název" -#endif #define TR_BITMAP "Obrázek" #define TR_TIMER "Stopky" #define TR_ELIMITS TR("Limit +25%", "Kanál +/- 125%") @@ -644,13 +565,9 @@ #define TR_OUTPUT_TYPE INDENT "Output" #endif #define TR_PROTO INDENT "Protokol" -#if defined(CPUARM) #define TR_PPMFRAME INDENT "PPM frame" #define TR_REFRESHRATE TR(INDENT "Refresh", INDENT "Refresh rate") #define STR_WARN_BATTVOLTAGE TR(INDENT "Output is VBAT: ", INDENT "Warning: output level is VBAT: ") -#else - #define TR_PPMFRAME "PPM frame" -#endif #define TR_MS "ms" #define TR_SWITCH "Spínač" #define TR_TRIMS "Trimy" @@ -773,13 +690,8 @@ #define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" #define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" -#if defined(CPUARM) #define TR_TMIXMAXMS "Tmix max" #define TR_FREESTACKMINB "Free Stack" -#else - #define TR_TMIXMAXMS "Tmix max\037\124ms" - #define TR_FREESTACKMINB "Free Stack\037\124b" -#endif #define TR_MENUTORESET CENTER TR_ENTER" >> Reset" #define TR_PPM_TRAINER "TR" @@ -824,11 +736,7 @@ #define TR_MENULIMITS "SERVA" -#if defined(CPUARM) #define TR_MENUINPUTS "VSTUPY" -#else - #define TR_MENUINPUTS "DR/EXPO" -#endif #define TR_MENUCURVES "KŘIVKY" #define TR_MENUCURVE "\002K" @@ -847,13 +755,8 @@ #define TR_MONITOR_CHANNELS4 "MONITOR KANÁLŮ 25/32" #define TR_MONITOR_OUTPUT_DESC "Výstupy" #define TR_MONITOR_MIXER_DESC "Mixy" -#if defined(CPUARM) #define TR_RECEIVER_NUM TR(INDENT "RX číslo", INDENT "Číslo přijímače") #define TR_RECEIVER INDENT "Přijímač" -#else - #define TR_RECEIVER_NUM "RX číslo" - #define TR_RECEIVER "RxNum" -#endif #define TR_MULTI_RFTUNE TR(INDENT "Freq tune",INDENT "RF Freq. fine tune") #define TR_MULTI_TELEMETRY "Telemetry" #define TR_MULTI_VIDFREQ TR(INDENT "Vid. freq.", INDENT "Video frequency") @@ -1110,31 +1013,6 @@ #define TR_CONFIRMRESET "Smazat modely a nastavení?" #define TR_TO_MANY_LUA_SCRIPTS "Příliš mnoho skriptů!" -#if defined(TELEMETRY_MAVLINK) - #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" - #define TR_MAVLINK_PC_RSSI_EN_LABEL "PC RSSI EN" - #define TR_MAVMENUSETUP_TITLE "Mavlink Setup" - #define TR_MAVLINK_BAUD_LABEL "Baudrate" - #define TR_MAVLINK_INFOS "INFOS" - #define TR_MAVLINK_MODE "MODE" - #define TR_MAVLINK_CUR_MODE "Current Mode" - #define TR_MAVLINK_ARMED "Armed" - #define TR_MAVLINK_BAT_MENU_TITLE "BAT RSSI" - #define TR_MAVLINK_BATTERY_LABEL "Flight Battery status" - #define TR_MAVLINK_RC_RSSI_LABEL "RC RSSI" - #define TR_MAVLINK_PC_RSSI_LABEL "PC RSSI" - #define TR_MAVLINK_NAV_MENU_TITLE "NAV" - #define TR_MAVLINK_COURSE "Course" - #define TR_MAVLINK_HEADING "Heading" - #define TR_MAVLINK_BEARING "Bearing" - #define TR_MAVLINK_ALTITUDE "Altitude" - #define TR_MAVLINK_GPS "GPS" - #define TR_MAVLINK_NO_FIX "NO Fix" - #define TR_MAVLINK_SAT "SAT" - #define TR_MAVLINK_HDOP "HDOP" - #define TR_MAVLINK_LAT "LAT" - #define TR_MAVLINK_LON "LON" -#endif // Horus and Taranis column headers diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 9ef57b602..a68ca2706 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -144,8 +144,6 @@ #define TR_RETA123 "SHGQ123LR" #elif defined(PCBSKY9X) #define TR_RETA123 "SHGQ123a" -#elif defined(CPUM2560) - #define TR_RETA123 "SHGQ123ab" #else #define TR_RETA123 "SHGQ123" #endif @@ -174,11 +172,7 @@ #define TR_IRPROTOS #endif -#if defined(CPUARM) #define TR_XPPM -#else - #define TR_XPPM "PPM16\0""PPMsim" -#endif #define TR_VPROTOS "PPM\0 " TR_XPPM TR_PXX TR_DSM2 TR_IRPROTOS @@ -215,27 +209,14 @@ #else #define TR_CSWTIMER "Takt\0" // TIM = Takt = Taktgenerator #define TR_CSWSTICKY "SRFF\0" // Sticky = RS-Flip-Flop - #if defined(CPUARM) #define TR_CSWRANGE "Rnge\0" // Range= Bereichsabfrage von bis #define TR_CSWSTAY "Puls\0" // Edge = einstellbarer Impuls - #else - #define TR_CSWRANGE - #define TR_CSWSTAY - #endif #endif -#if defined(CPUARM) #define TR_CSWEQUAL "a=x\0 " -#else -#define TR_CSWEQUAL -#endif #define LEN_VCSWFUNC "\005" -#if defined(CPUARM) #define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""a= 212 #define TR_FSW_RESET_TIMERS "Timer 1\0 ""Timer 2\0 ""Timer 3\0 " -#elif defined(CPUARM) - #define TR_FSW_RESET_TIMERS "Tmr1""Tmr2""Tmr3" #else - #define TR_FSW_RESET_TIMERS "Tmr1""Tmr2" + #define TR_FSW_RESET_TIMERS "Tmr1""Tmr2""Tmr3" #endif #define TR_VFSWRESET TR(TR_FSW_RESET_TIMERS "All\0" TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC, TR_FSW_RESET_TIMERS "All\0 " TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC) @@ -352,21 +325,12 @@ #define LEN_VTELEMCHNS "\004" -#if defined(CPUARM) #define TR_TELEM_RESERVE TR("[--]", "[---]") #define TR_TELEM_TIME TR("Zeit", "Zeit\0") #define TR_RAS TR("SWR\0", "SWR\0 ") #define TR_RX_BATT TR("[NA]", "[NA]\0") #define TR_A3_A4 TR("A3\0 ""A4\0 ", "A3\0 ""A4\0 ") #define TR_A3_A4_MIN TR("A3-\0""A4-\0", "A3-\0 ""A4-\0 ") -#else - #define TR_TELEM_RESERVE - #define TR_TELEM_TIME - #define TR_RAS - #define TR_RX_BATT - #define TR_A3_A4 - #define TR_A3_A4_MIN -#endif #define TR_ASPD_MAX TR("ASp+", "ASpd+") @@ -376,33 +340,17 @@ #define TR_TELEM_RSSI_RX TR("Rx\0 ", "Rx\0 ") #endif -#if defined(CPUARM) #define TR_TELEM_TIMERS TR("Tmr1""Tmr2""Tmr3", "Tmr1\0""Tmr2\0""Tmr3\0") -#else - #define TR_TELEM_TIMERS TR("Tmr1""Tmr2", "Tmr1\0""Tmr2\0") -#endif #define LENGTH_UNIT_IMP "ft\0" #define SPEED_UNIT_IMP "mph" #define LENGTH_UNIT_METR "m\0 " #define SPEED_UNIT_METR "kmh" -#if defined(CPUARM) #define LEN_VUNITSSYSTEM TR("\006", "\012") #define TR_VUNITSSYSTEM TR("Metrik""Imper.", "Metrisch\0 ""Imperial\0 ") #define LEN_VTELEMUNIT "\003" #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""mW\0""dB\0""rpm""g\0 ""@\0 ""rad""ml\0""fOz" -#else - #if defined(IMPERIAL_UNITS) - #define LENGTH_UNIT LENGTH_UNIT_IMP - #define SPEED_UNIT SPEED_UNIT_IMP - #else - #define LENGTH_UNIT LENGTH_UNIT_METR - #define SPEED_UNIT SPEED_UNIT_METR - #endif - #define LEN_VTELEMUNIT "\003" - #define TR_VTELEMUNIT "V\0 ""A\0 ""m/s""-\0 " SPEED_UNIT LENGTH_UNIT "@\0 ""%\0 ""mA\0""mAh""W\0 " -#endif #define STR_V (STR_VTELEMUNIT+1) #define STR_A (STR_VTELEMUNIT+4) @@ -416,15 +364,10 @@ #define LEN_VTELPROTO "\007" #define TR_VTELPROTO "Kein\0 ""Hub\0 ""WSHHigh" -#if defined(CPUARM) #define LEN_AMPSRC TR("\003", "\005") #define TR_AMPSRC TR("---""A1\0""A2\0""A3\0""A4\0""FAS""Cel", "---\0 ""A1\0 ""A2\0 ""A3\0 ""A4\0 ""FAS\0 ""Cells") #define LEN_VOLTSRC TR("\003", "\005") #define TR_VOLTSRC TR("A1\0""A2\0""A3\0""A4\0""FAS""Cel", "A1\0 ""A2\0 ""A3\0 ""A4\0 ""FAS\0 ""Cells") -#else - #define LEN_AMPSRC TR("\003", "\005") - #define TR_AMPSRC TR("---""A1\0""A2\0""FAS""Cel", "---\0 ""A1\0 ""A2\0 ""FAS\0 ""Cells") -#endif #define LEN_VARIOSRC "\004" #if defined(TELEMETRY_FRSKY_SPORT) @@ -433,13 +376,8 @@ #define TR_VARIOSRC "Alt\0""Alt+""Vspd""A1\0 ""A2\0 " #endif -#if defined(CPUARM) #define LEN_VTELEMSCREENTYPE "\007" #define TR_VTELEMSCREENTYPE " None "" Werte "" Balken"" Script" -#else - #define LEN_VTELEMSCREENTYPE "\007" - #define TR_VTELEMSCREENTYPE " Werte "" Balken" -#endif #define LEN_GPSFORMAT "\004" #define TR_GPSFORMAT "GMS\0""NMEA" //Koordinatenanzeige @@ -511,11 +449,7 @@ #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" #endif -#if defined(CPUARM) #define TR_LOGICALSW "L01""L02""L03""L04""L05""L06""L07""L08""L09""L10""L11""L12""L13""L14""L15""L16""L17""L18""L19""L20""L21""L22""L23""L24""L25""L26""L27""L28""L29""L30""L31""L32" -#else - #define TR_LOGICALSW "L01""L02""L03""L04""L05""L06""L07""L08""L09""L10""L11""L12" -#endif #if defined(PCBHORUS) #define TR_TRIMS_SWITCHES "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar""\3135d""\3135u""\3136d""\3136u" @@ -526,9 +460,6 @@ #if defined(PCBSKY9X) #define TR_ROTARY_ENCODERS "DGa\0" #define TR_ROTENC_SWITCHES "DGa" -#elif defined(PCBGRUVIN9X) || defined(PCBMEGA2560) - #define TR_ROTARY_ENCODERS "DGa\0""DGb\0" - #define TR_ROTENC_SWITCHES "DGa""DGb" #else #define TR_ROTARY_ENCODERS #define TR_ROTENC_SWITCHES @@ -555,13 +486,8 @@ #define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]" #endif -#if defined(CPUARM) #define TR_RESERVE_VSRCRAW "[--]" #define TR_EXTRA_VSRCRAW "Batt""Time""GPS\0" TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW "Tmr1""Tmr2""Tmr3" -#else - #define TR_EXTRA_VSRCRAW - #define TR_VTELEMCHNS "---\0""Akku" TR_TELEM_TIME TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_TIMERS TR_RAS "Tx\0 " TR_TELEM_RSSI_RX TR_RX_BATT "A1\0 ""A2\0 " TR_A3_A4 "Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "A1-\0""A2-\0" TR_A3_A4_MIN "Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+" TR_ASPD_MAX "Cel-""Cls-""Vfs-""Cur+""Pwr+" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "Acc\0""Zeit" -#endif #define TR_VSRCRAW "---\0" TR_STICKS_VSRCRAW TR_POTS_VSRCRAW TR_ROTARY_ENCODERS "MAX\0" TR_CYC_VSRCRAW TR_TRIMS_VSRCRAW TR_SW_VSRCRAW TR_EXTRA_VSRCRAW @@ -579,14 +505,6 @@ #define LEN_VFAILSAFE "\015" // "\013" original #define TR_VFAILSAFE "Kein Failsafe""Halte Pos.\0 ""Kanäle\0 ""Kein Signal\0 ""Empfänger\0 " -#if defined(TELEMETRY_MAVLINK) - #define LEN_MAVLINK_BAUDS "\006" - #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""58798 ""76800" - #define LEN_MAVLINK_AC_MODES "\011" - #define TR_MAVLINK_AC_MODES "Stabilize""Acro ""Alt Hold ""Auto ""Guided ""Loiter ""RTL ""Circle ""Pos Hold ""Land ""OF Loiter""Toy A ""Toy M ""INVALID " - #define LEN_MAVLINK_AP_MODES "\015" - #define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID " -#endif #define LEN_VSENSORTYPES "\012" #define TR_VSENSORTYPES "Sensor\0 ""Berechnung" @@ -641,11 +559,7 @@ #define TR_PHASENAME "Phase-Name" #define TR_MIXNAME "Mix-Name" #define TR_INPUTNAME "Input" -#if defined(CPUARM) #define TR_EXPONAME "Info" -#else - #define TR_EXPONAME "Info" // Expo Name -#endif #define TR_BITMAP "Modellfoto" #define TR_TIMER TR("Timer", "Timer ") // für Timer1 Timer2 Timer3 #define TR_ELIMITS TR("Erw. Limit", "Erw. Wege auf 150%") @@ -660,13 +574,9 @@ #define TR_OUTPUT_TYPE INDENT "Output" #endif #define TR_PROTO TR(INDENT "Protok.", INDENT "Protokoll") -#if defined(CPUARM) #define TR_PPMFRAME INDENT "PPM frame" #define TR_REFRESHRATE TR(INDENT "Refresh", INDENT "Refresh rate") #define STR_WARN_BATTVOLTAGE TR(INDENT "Output is VBAT: ", INDENT "Warning: output level is VBAT: ") -#else - #define TR_PPMFRAME "PPM frame" -#endif #define TR_MS "ms" #define TR_SWITCH TR("Schalt.", "Schalter") #define TR_TRIMS "Trims" @@ -791,13 +701,8 @@ #define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" #define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" -#if defined(CPUARM) #define TR_TMIXMAXMS "Tmix max" #define TR_FREESTACKMINB "Freier Stack" -#else - #define TR_TMIXMAXMS "Tmix max\037\124ms" - #define TR_FREESTACKMINB "Freier Stack\037\124b" -#endif #define TR_MENUTORESET CENTER TR_ENTER " für Reset" #define TR_PPM_TRAINER "TR" @@ -840,13 +745,8 @@ #define TR_MENUFLIGHTMODES "FLUGPHASEN" #define TR_MENUHELISETUP TR("HELI TS-Mischer", "HELI TS-Mischer CYC1-3") -#if defined(CPUARM) #define TR_MENUINPUTS "INPUTS" #define TR_MENULIMITS "SERVOS" //"AUSGABEN" oder "Servos" -#else - #define TR_MENUINPUTS "KNÜPPEL" - #define TR_MENULIMITS "SERVOS" -#endif #define TR_MENUCURVES "KURVEN" #define TR_MENUCURVE "KURVE" #define TR_MENULOGICALSWITCH "LOGIKSCHALTER" @@ -864,13 +764,8 @@ #define TR_MONITOR_SWITCHES "LOGIK SCHALTER MONITOR" #define TR_MONITOR_OUTPUT_DESC "Kanäle" #define TR_MONITOR_MIXER_DESC "Mischer" -#if defined(CPUARM) #define TR_RECEIVER_NUM TR(INDENT "Empf Nr.", INDENT "Empfänger Nummer") #define TR_RECEIVER INDENT "Receiver" -#else - #define TR_RECEIVER_NUM "Empf Nr." - #define TR_RECEIVER "Empf Nr." -#endif #define TR_MULTI_RFTUNE TR(INDENT "RF Freq.", INDENT "RF Freq. Feintuning") #define TR_MULTI_TELEMETRY "Telemetry" #define TR_MULTI_VIDFREQ TR(INDENT "Vid. Freq.", INDENT "Video Frequenz") @@ -1122,31 +1017,6 @@ #define TR_CONFIRMRESET TR("Alles löschen? ","ALLE Modelle+Einst. löschen?") #define TR_TO_MANY_LUA_SCRIPTS "Zu viele Lua-Skripte!" -#if defined(TELEMETRY_MAVLINK) - #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" - #define TR_MAVLINK_PC_RSSI_EN_LABEL "PC RSSI EN" - #define TR_MAVMENUSETUP_TITLE "Mavlink Setup" - #define TR_MAVLINK_BAUD_LABEL "Baudrate" - #define TR_MAVLINK_INFOS "INFOS" - #define TR_MAVLINK_MODE "MODE" - #define TR_MAVLINK_CUR_MODE "Current Mode" - #define TR_MAVLINK_ARMED "Armed" - #define TR_MAVLINK_BAT_MENU_TITLE "BAT RSSI" - #define TR_MAVLINK_BATTERY_LABEL "Flugakku-Status" - #define TR_MAVLINK_RC_RSSI_LABEL "RC RSSI" - #define TR_MAVLINK_PC_RSSI_LABEL "PC RSSI" - #define TR_MAVLINK_NAV_MENU_TITLE "NAV" - #define TR_MAVLINK_COURSE "Course" - #define TR_MAVLINK_HEADING "Heading" - #define TR_MAVLINK_BEARING "Bearing" - #define TR_MAVLINK_ALTITUDE "Altitude" - #define TR_MAVLINK_GPS "GPS" - #define TR_MAVLINK_NO_FIX "NO Fix" - #define TR_MAVLINK_SAT "SAT" - #define TR_MAVLINK_HDOP "HDOP" - #define TR_MAVLINK_LAT "LAT" - #define TR_MAVLINK_LON "LON" -#endif // Horus and Taranis specific column headers #define TR_PHASES_HEADERS_NAME "Name " diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index 2baca31a4..83b23a155 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -143,8 +143,6 @@ #define TR_RETA123 "RETA123LR" #elif defined(PCBSKY9X) #define TR_RETA123 "RETA123a" -#elif defined(CPUM2560) - #define TR_RETA123 "RETA123ab" #else #define TR_RETA123 "RETA123" #endif @@ -174,11 +172,7 @@ #define TR_IRPROTOS #endif -#if defined(CPUARM) #define TR_XPPM -#else - #define TR_XPPM "PPM16\0""PPMsim" -#endif #define TR_VPROTOS "PPM\0 " TR_XPPM TR_PXX TR_DSM2 TR_IRPROTOS @@ -215,27 +209,14 @@ #else #define TR_CSWTIMER "Tim\0 " #define TR_CSWSTICKY "Stky\0" - #if defined(CPUARM) #define TR_CSWRANGE "Rnge\0" #define TR_CSWSTAY "Edge\0" - #else - #define TR_CSWRANGE - #define TR_CSWSTAY - #endif #endif -#if defined(CPUARM) #define TR_CSWEQUAL "a=x\0 " -#else - #define TR_CSWEQUAL -#endif #define LEN_VCSWFUNC "\005" -#if defined(CPUARM) #define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""a= 212 #define TR_FSW_RESET_TIMERS "Timer 1\0 ""Timer 2\0 ""Timer 3\0 " -#elif defined(CPUARM) - #define TR_FSW_RESET_TIMERS "Tmr1""Tmr2""Tmr3" #else - #define TR_FSW_RESET_TIMERS "Tmr1""Tmr2" + #define TR_FSW_RESET_TIMERS "Tmr1""Tmr2""Tmr3" #endif #define TR_VFSWRESET TR(TR_FSW_RESET_TIMERS "All\0" TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC, TR_FSW_RESET_TIMERS "Flight\0 " TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC) @@ -357,22 +330,10 @@ #define LENGTH_UNIT_METR "m\0 " #define SPEED_UNIT_METR "kmh" -#if defined(CPUARM) #define LEN_VUNITSSYSTEM TR("\006", "\010") #define TR_VUNITSSYSTEM TR("Metric""Imper.", "Metric\0 ""Imperial") #define LEN_VTELEMUNIT "\003" #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""mW\0""dB\0""rpm""g\0 ""@\0 ""rad""ml\0""fOz" -#else - #if defined(IMPERIAL_UNITS) - #define LENGTH_UNIT LENGTH_UNIT_IMP - #define SPEED_UNIT SPEED_UNIT_IMP - #else - #define LENGTH_UNIT LENGTH_UNIT_METR - #define SPEED_UNIT SPEED_UNIT_METR - #endif - #define LEN_VTELEMUNIT "\003" - #define TR_VTELEMUNIT "V\0 ""A\0 ""m/s""-\0 " SPEED_UNIT LENGTH_UNIT "@\0 ""%\0 ""mA\0""mAh""W\0 " -#endif #define STR_V (STR_VTELEMUNIT+1) #define STR_A (STR_VTELEMUNIT+4) @@ -386,15 +347,10 @@ #define LEN_VTELPROTO "\007" #define TR_VTELPROTO "None\0 ""Hub\0 ""WSHHigh" -#if defined(CPUARM) #define LEN_AMPSRC TR("\003", "\005") #define TR_AMPSRC TR("---""A1\0""A2\0""A3\0""A4\0""FAS""Cel", "---\0 ""A1\0 ""A2\0 ""A3\0 ""A4\0 ""FAS\0 ""Cells") #define LEN_VOLTSRC TR("\003", "\005") #define TR_VOLTSRC TR("A1\0""A2\0""A3\0""A4\0""FAS""Cel", "A1\0 ""A2\0 ""A3\0 ""A4\0 ""FAS\0 ""Cells") -#else - #define LEN_AMPSRC TR("\003", "\005") - #define TR_AMPSRC TR("---""A1\0""A2\0""FAS""Cel", "---\0 ""A1\0 ""A2\0 ""FAS\0 ""Cells") -#endif #define LEN_VARIOSRC "\004" #if defined(TELEMETRY_FRSKY_SPORT) @@ -403,13 +359,8 @@ #define TR_VARIOSRC "Alt\0""Alt+""VSpd""A1\0 ""A2\0" #endif -#if defined(CPUARM) #define LEN_VTELEMSCREENTYPE "\006" #define TR_VTELEMSCREENTYPE "None\0 ""Nums\0 ""Bars\0 ""Script" -#else - #define LEN_VTELEMSCREENTYPE "\004" - #define TR_VTELEMSCREENTYPE "Nums""Bars" -#endif #define LEN_GPSFORMAT "\004" #define TR_GPSFORMAT "DMS\0""NMEA" @@ -452,18 +403,12 @@ #define LEN_VSWITCHES "\003" #define LEN_VSRCRAW "\004" -#if defined(CPUARM) #define TR_STICKS_VSRCRAW "\307Rud""\307Ele""\307Thr""\307Ail" -#else -#define TR_STICKS_VSRCRAW "Rud\0""Ele\0""Thr\0""Ail\0" -#endif #if defined(PCBHORUS) #define TR_TRIMS_VSRCRAW "\313Rud""\313Ele""\313Thr""\313Ail""\313T5\0""\313T6\0" -#elif defined(CPUARM) - #define TR_TRIMS_VSRCRAW "\313Rud""\313Ele""\313Thr""\313Ail" #else - #define TR_TRIMS_VSRCRAW "TrmR""TrmE""TrmT""TrmA" + #define TR_TRIMS_VSRCRAW "\313Rud""\313Ele""\313Thr""\313Ail" #endif #if defined(PCBX12S) @@ -494,11 +439,7 @@ #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" #endif -#if defined(CPUARM) #define TR_LOGICALSW "L01""L02""L03""L04""L05""L06""L07""L08""L09""L10""L11""L12""L13""L14""L15""L16""L17""L18""L19""L20""L21""L22""L23""L24""L25""L26""L27""L28""L29""L30""L31""L32" -#else - #define TR_LOGICALSW "L01""L02""L03""L04""L05""L06""L07""L08""L09""L10""L11""L12" -#endif #if defined(PCBHORUS) #define TR_TRIMS_SWITCHES "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar""\3135d""\3135u""\3136d""\3136u" @@ -509,9 +450,6 @@ #if defined(PCBSKY9X) #define TR_ROTARY_ENCODERS "REa\0" #define TR_ROTENC_SWITCHES "REa" -#elif defined(PCBGRUVIN9X) || defined(PCBMEGA2560) - #define TR_ROTARY_ENCODERS "REa\0""REb\0" - #define TR_ROTENC_SWITCHES "REa""REb" #else #define TR_ROTARY_ENCODERS #define TR_ROTENC_SWITCHES @@ -538,13 +476,8 @@ #define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]" #endif -#if defined(CPUARM) #define TR_RESERVE_VSRCRAW "[--]" #define TR_EXTRA_VSRCRAW "Batt""Time""GPS\0" TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW "Tmr1""Tmr2""Tmr3" -#else - #define TR_EXTRA_VSRCRAW - #define TR_VTELEMCHNS "---\0" "Batt" "Tmr1""Tmr2""Tx\0 ""Rx\0 ""A1\0 ""A2\0 ""Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""ASp+""Cel-""Cls-""Vfs-""Cur+""Pwr+""Acc\0""Time" -#endif #define TR_VSRCRAW "---\0" TR_STICKS_VSRCRAW TR_POTS_VSRCRAW TR_ROTARY_ENCODERS "MAX\0" TR_CYC_VSRCRAW TR_TRIMS_VSRCRAW TR_SW_VSRCRAW TR_EXTRA_VSRCRAW @@ -562,14 +495,6 @@ #define LEN_VFAILSAFE "\011" #define TR_VFAILSAFE "Not set\0 ""Hold\0 ""Custom\0 ""No pulses""Receiver\0" -#if defined(TELEMETRY_MAVLINK) - #define LEN_MAVLINK_BAUDS "\006" - #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""58798 ""76800" - #define LEN_MAVLINK_AC_MODES "\011" - #define TR_MAVLINK_AC_MODES "Stabilize""Acro ""Alt Hold ""Auto ""Guided ""Loiter ""RTL ""Circle ""Pos Hold ""Land ""OF Loiter""Toy A ""Toy M ""INVALID " - #define LEN_MAVLINK_AP_MODES "\015" - #define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID " -#endif #define LEN_VSENSORTYPES "\012" #define TR_VSENSORTYPES "Custom\0 ""Calculated" @@ -648,13 +573,9 @@ #define TR_OUTPUT_TYPE INDENT "Output" #endif #define TR_PROTO TR(INDENT "Proto", INDENT "Protocol") -#if defined(CPUARM) #define TR_PPMFRAME INDENT "PPM frame" #define TR_REFRESHRATE TR(INDENT "Refresh", INDENT "Refresh rate") #define STR_WARN_BATTVOLTAGE TR(INDENT "Output is VBAT: ", INDENT "Warning: output level is VBAT: ") -#else - #define TR_PPMFRAME "PPM frame" -#endif #define TR_MS "ms" #define TR_SWITCH "Switch" #define TR_TRIMS "Trims" @@ -779,13 +700,8 @@ #define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" #define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" -#if defined(CPUARM) #define TR_TMIXMAXMS "Tmix max" #define TR_FREESTACKMINB "Free Stack" -#else - #define TR_TMIXMAXMS "Tmix max\037\124ms" - #define TR_FREESTACKMINB "Free Stack\037\124b" -#endif #define TR_MENUTORESET CENTER TR_ENTER " to reset" #define TR_PPM_TRAINER "TR" @@ -828,13 +744,8 @@ #define TR_MENUFLIGHTMODE "FLIGHT MODE" #define TR_MENUHELISETUP "HELI SETUP" -#if defined(CPUARM) #define TR_MENUINPUTS "INPUTS" #define TR_MENULIMITS "OUTPUTS" -#else - #define TR_MENUINPUTS "STICKS" - #define TR_MENULIMITS "SERVOS" -#endif #define TR_MENUCURVES "CURVES" #define TR_MENUCURVE "CURVE" #define TR_MENULOGICALSWITCH "LOGICAL SWITCH" @@ -852,13 +763,8 @@ #define TR_MONITOR_SWITCHES "LOGICAL SWITCHES MONITOR" #define TR_MONITOR_OUTPUT_DESC "Outputs" #define TR_MONITOR_MIXER_DESC "Mixers" -#if defined(CPUARM) #define TR_RECEIVER_NUM TR(INDENT "RxNum", INDENT "Receiver No.") #define TR_RECEIVER INDENT "Receiver" -#else - #define TR_RECEIVER_NUM "RxNum" - #define TR_RECEIVER "RxNum" -#endif #define TR_MULTI_RFTUNE TR(INDENT "Freq tune",INDENT "RF Freq. fine tune") #define TR_MULTI_TELEMETRY "Telemetry" #define TR_MULTI_VIDFREQ TR(INDENT "Vid. freq.", INDENT "Video frequency") @@ -1122,31 +1028,6 @@ #define TR_CONFIRMRESET TR("Erase ALL", "Erase ALL models and settings?") #define TR_TO_MANY_LUA_SCRIPTS "Too many Lua scripts!" -#if defined(TELEMETRY_MAVLINK) -#define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" -#define TR_MAVLINK_PC_RSSI_EN_LABEL "PC RSSI EN" -#define TR_MAVMENUSETUP_TITLE "Mavlink setup" -#define TR_MAVLINK_BAUD_LABEL "Baudrate" -#define TR_MAVLINK_INFOS "INFOS" -#define TR_MAVLINK_MODE "MODE" -#define TR_MAVLINK_CUR_MODE "Current mode" -#define TR_MAVLINK_ARMED "Armed" -#define TR_MAVLINK_BAT_MENU_TITLE "BAT RSSI" -#define TR_MAVLINK_BATTERY_LABEL "Flight battery status" -#define TR_MAVLINK_RC_RSSI_LABEL "RC RSSI" -#define TR_MAVLINK_PC_RSSI_LABEL "PC RSSI" -#define TR_MAVLINK_NAV_MENU_TITLE "NAV" -#define TR_MAVLINK_COURSE "Course" -#define TR_MAVLINK_HEADING "Heading" -#define TR_MAVLINK_BEARING "Bearing" -#define TR_MAVLINK_ALTITUDE "Altitude" -#define TR_MAVLINK_GPS "GPS" -#define TR_MAVLINK_NO_FIX "NO Fix" -#define TR_MAVLINK_SAT "SAT" -#define TR_MAVLINK_HDOP "HDOP" -#define TR_MAVLINK_LAT "LAT" -#define TR_MAVLINK_LON "LON" -#endif // Horus and Taranis column headers #define TR_PHASES_HEADERS_NAME "Name" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 08d6529ce..e117eb24a 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -139,8 +139,6 @@ #define TR_RETA123 "RETA123LR" #elif defined(PCBSKY9X) #define TR_RETA123 "RETA123a" -#elif defined(CPUM2560) - #define TR_RETA123 "RETA123ab" #else #define TR_RETA123 "RETA123" #endif @@ -169,11 +167,7 @@ #define TR_IRPROTOS #endif -#if defined(CPUARM) #define TR_XPPM -#else - #define TR_XPPM "PPM16\0""PPMsim" -#endif #define TR_VPROTOS "PPM\0 " TR_XPPM TR_PXX TR_DSM2 TR_IRPROTOS @@ -210,27 +204,14 @@ #else #define TR_CSWTIMER "Tim\0 " #define TR_CSWSTICKY "Glue\0" - #if defined(CPUARM) #define TR_CSWRANGE "Rnge\0" #define TR_CSWSTAY "Edge\0" - #else - #define TR_CSWRANGE - #define TR_CSWSTAY - #endif #endif -#if defined(CPUARM) #define TR_CSWEQUAL "a=x\0 " -#else - #define TR_CSWEQUAL -#endif #define LEN_VCSWFUNC "\005" -#if defined(CPUARM) #define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""a= 212 #define TR_FSW_RESET_TIMERS "Chrono 1\0 ""Chrono 2\0 ""Chrono 3\0 " -#elif defined(CPUARM) - #define TR_FSW_RESET_TIMERS "Chr1""Chr2""Chr3" #else - #define TR_FSW_RESET_TIMERS "Chr1""Chr2" + #define TR_FSW_RESET_TIMERS "Chr1""Chr2""Chr3" #endif #define TR_VFSWRESET TR(TR_FSW_RESET_TIMERS "Tout" TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC, TR_FSW_RESET_TIMERS "Tout\0 " TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC) @@ -347,21 +320,12 @@ #define LEN_VTELEMCHNS "\004" -#if defined(CPUARM) #define TR_TELEM_RESERVE TR("[--]", "[---]") #define TR_TELEM_TIME TR("Heur", "H:M\0 ") #define TR_RAS TR("SWR\0", "SWR\0 ") #define TR_RX_BATT TR("BtRx", "BatRx") #define TR_A3_A4 TR("A3\0 ""A4\0 ", "A3\0 ""A4\0 ") #define TR_A3_A4_MIN TR("A3-\0""A4-\0", "A3-\0 ""A4-\0 ") -#else - #define TR_TELEM_RESERVE - #define TR_TELEM_TIME - #define TR_RAS - #define TR_RX_BATT - #define TR_A3_A4 - #define TR_A3_A4_MIN -#endif #define TR_ASPD_MAX TR("ViA+", "VitA+") @@ -371,33 +335,17 @@ #define TR_TELEM_RSSI_RX TR("Rx\0 ", "Rx\0 ") #endif -#if defined(CPUARM) #define TR_TELEM_TIMERS TR("Chr1""Chr2""Chr3", "Chr1\0""Chr2\0""Chr3\0") -#else - #define TR_TELEM_TIMERS TR("Chr1""Chr2", "Chr1\0""Chr2\0") -#endif #define LENGTH_UNIT_IMP "ft\0" #define SPEED_UNIT_IMP "mph" #define LENGTH_UNIT_METR "m\0 " #define SPEED_UNIT_METR "kmh" -#if defined(CPUARM) #define LEN_VUNITSSYSTEM TR("\006", "\012") #define TR_VUNITSSYSTEM TR("Métr.\0""Impér.", "Métriques\0""Impériales") #define LEN_VTELEMUNIT "\003" #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""mW\0""dB\0""rpm""g\0 ""@\0 ""rad""ml\0""fOz" -#else - #if defined(IMPERIAL_UNITS) - #define LENGTH_UNIT LENGTH_UNIT_IMP - #define SPEED_UNIT SPEED_UNIT_IMP - #else - #define LENGTH_UNIT LENGTH_UNIT_METR - #define SPEED_UNIT SPEED_UNIT_METR - #endif - #define LEN_VTELEMUNIT "\003" - #define TR_VTELEMUNIT "V\0 ""A\0 ""m/s""-\0 " SPEED_UNIT LENGTH_UNIT "@\0 ""%\0 ""mA\0""mAh""W\0 " -#endif #define STR_V (STR_VTELEMUNIT+1) #define STR_A (STR_VTELEMUNIT+4) @@ -411,15 +359,10 @@ #define LEN_VTELPROTO "\007" #define TR_VTELPROTO "Aucun ""Hub\0 ""WSHHigh" -#if defined(CPUARM) #define LEN_AMPSRC TR("\003", "\005") #define TR_AMPSRC TR("---""A1\0""A2\0""A3\0""A4\0""FAS""Cel", "---\0 ""A1\0 ""A2\0 ""A3\0 ""A4\0 ""FAS\0 ""Elem.") #define LEN_VOLTSRC TR("\003", "\005") #define TR_VOLTSRC TR("A1\0""A2\0""A3\0""A4\0""FAS""Cel", "A1\0 ""A2\0 ""A3\0 ""A4\0 ""FAS\0 ""Elem.") -#else - #define LEN_AMPSRC TR("\003", "\005") - #define TR_AMPSRC TR("---""A1\0""A2\0""FAS""Cel", "---\0 ""A1\0 ""A2\0 ""FAS\0 ""Elem.") -#endif #define LEN_VARIOSRC "\005" #if defined(TELEMETRY_FRSKY_SPORT) @@ -428,13 +371,8 @@ #define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" #endif -#if defined(CPUARM) #define LEN_VTELEMSCREENTYPE "\007" #define TR_VTELEMSCREENTYPE "Rien\0 ""Valeurs""Barres\0""Script\0" -#else - #define LEN_VTELEMSCREENTYPE "\004" - #define TR_VTELEMSCREENTYPE "Val.""Bars" -#endif #define LEN_GPSFORMAT "\004" #define TR_GPSFORMAT "DMS\0""NMEA" @@ -473,18 +411,12 @@ #define LEN_VSWITCHES "\003" #define LEN_VSRCRAW "\004" -#if defined(CPUARM) #define TR_STICKS_VSRCRAW "\307Dir""\307Prf""\307Gaz""\307Ail" -#else -#define TR_STICKS_VSRCRAW "Dir\0""Prf\0""Gaz\0""Ail\0" -#endif #if defined(PCBHORUS) #define TR_TRIMS_VSRCRAW "\313Dir""\313Prf""\313Gaz""\313Ail""\313T5\0""\313T6\0" -#elif defined(CPUARM) - #define TR_TRIMS_VSRCRAW "\313Dir""\313Prf""\313Gaz""\313Ail" #else - #define TR_TRIMS_VSRCRAW "TrmD""TrmP""TrmG""TrmA" + #define TR_TRIMS_VSRCRAW "\313Dir""\313Prf""\313Gaz""\313Ail" #endif #if defined(PCBX12S) @@ -515,11 +447,7 @@ #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" #endif -#if defined(CPUARM) #define TR_LOGICALSW "L01""L02""L03""L04""L05""L06""L07""L08""L09""L10""L11""L12""L13""L14""L15""L16""L17""L18""L19""L20""L21""L22""L23""L24""L25""L26""L27""L28""L29""L30""L31""L32" -#else - #define TR_LOGICALSW "L01""L02""L03""L04""L05""L06""L07""L08""L09""L10""L11""L12" -#endif #if defined(PCBHORUS) #define TR_TRIMS_SWITCHES "\313Dg""\313Dd""\313Pb""\313Ph""\313Gb""\313Gh""\313Ag""\313Ad""\3135d""\3135u""\3136d""\3136u" @@ -530,9 +458,6 @@ #if defined(PCBSKY9X) #define TR_ROTARY_ENCODERS "REa\0" #define TR_ROTENC_SWITCHES "REa" -#elif defined(PCBGRUVIN9X) || defined(PCBMEGA2560) - #define TR_ROTARY_ENCODERS "REa\0""REb\0" - #define TR_ROTENC_SWITCHES "REa""REb" #else #define TR_ROTARY_ENCODERS #define TR_ROTENC_SWITCHES @@ -559,13 +484,8 @@ #define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]" #endif -#if defined(CPUARM) #define TR_RESERVE_VSRCRAW "[--]" #define TR_EXTRA_VSRCRAW "Batt""H:M\0""GPS\0" TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW "Chr1""Chr2""Chr3" -#else - #define TR_EXTRA_VSRCRAW - #define TR_VTELEMCHNS "---\0""Batt" TR_TELEM_TIME TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_TIMERS TR_RAS "Tx\0 " TR_TELEM_RSSI_RX TR_RX_BATT "A1\0 ""A2\0 " TR_A3_A4 "Alt\0""Rpm\0""Carb""T1\0 ""T2\0 ""Vit\0""Dist""AltG""Elem""Velm""Vfas""Cour""Cnsm""Puis""AccX""AccY""AccZ""Cap\0""VitV""VitA""dET\0" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "A1-\0""A2-\0" TR_A3_A4_MIN "Alt-""Alt+""Rpm+""T1+\0""T2+\0""Vit+""Dst+" TR_ASPD_MAX "Elm-""Els-""Vfs-""Cur+""Pui+" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "Acc\0""Tmps" -#endif #define TR_VSRCRAW "---\0" TR_STICKS_VSRCRAW TR_POTS_VSRCRAW TR_ROTARY_ENCODERS "MAX\0" TR_CYC_VSRCRAW TR_TRIMS_VSRCRAW TR_SW_VSRCRAW TR_EXTRA_VSRCRAW @@ -583,14 +503,6 @@ #define LEN_VFAILSAFE "\011" #define TR_VFAILSAFE TR("Pas déf.\0""Maintien\0""Prédéf.\0 ""Pas d'imp""Récepteur", "Pas déf.\0""Maintien\0""Prédéfini""Pas d'imp""Récepteur") -#if defined(TELEMETRY_MAVLINK) - #define LEN_MAVLINK_BAUDS "\006" - #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""58798 ""76800" - #define LEN_MAVLINK_AC_MODES "\011" - #define TR_MAVLINK_AC_MODES "Stabilize""Acro ""Alt Hold ""Auto ""Guided ""Loiter ""RTL ""Circle ""Pos Hold ""Land ""OF Loiter""Toy A ""Toy M ""INVALID " - #define LEN_MAVLINK_AP_MODES "\015" - #define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID " -#endif #define LEN_VSENSORTYPES "\012" #define TR_VSENSORTYPES "Perso\0 ""Calculé\0 " @@ -670,13 +582,9 @@ #define TR_OUTPUT_TYPE INDENT "Sortie" #endif #define TR_PROTO TR(INDENT "Proto.", INDENT "Protocole") -#if defined(CPUARM) #define TR_PPMFRAME INDENT "Trame PPM" #define TR_REFRESHRATE TR(INDENT "Refresh", INDENT "Refresh rate") #define STR_WARN_BATTVOLTAGE TR(INDENT "Output is VBAT: ", INDENT "Warning: output level is VBAT: ") -#else - #define TR_PPMFRAME "Trame PPM" -#endif #define TR_MS "ms" #define TR_SWITCH TR("Inter", "Interrupteur") #define TR_TRIMS "Trims" @@ -799,13 +707,8 @@ #define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" #define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" -#if defined(CPUARM) #define TR_TMIXMAXMS "Tmix max" #define TR_FREESTACKMINB "Free Stack" -#else - #define TR_TMIXMAXMS "Tmix max\037\124ms" - #define TR_FREESTACKMINB "Free Stack\037\124b" -#endif #define TR_MENUTORESET CENTER TR_ENTER" pour reset" #define TR_PPM_TRAINER "TR" @@ -848,13 +751,8 @@ #define TR_MENUFLIGHTMODES "PHASES DE VOL" #define TR_MENUHELISETUP TR("CONF.HELI", "CONFIGURATION HELICO") -#if defined(CPUARM) #define TR_MENUINPUTS "ENTREES" #define TR_MENULIMITS "SORTIES" -#else - #define TR_MENUINPUTS "DR/EXPO" - #define TR_MENULIMITS "LIMITES" -#endif #define TR_MENUCURVES "COURBES" #define TR_MENUCURVE "COURBE" @@ -873,13 +771,8 @@ #define TR_MONITOR_SWITCHES "INTERS LOGIQUES" #define TR_MONITOR_OUTPUT_DESC "Sorties" #define TR_MONITOR_MIXER_DESC "Mixeurs" -#if defined(CPUARM) #define TR_RECEIVER_NUM TR(INDENT "NumRx", INDENT "No. récepteur") #define TR_RECEIVER INDENT "Récepteur" -#else - #define TR_RECEIVER_NUM "Récepteur" - #define TR_RECEIVER "Récepteur" -#endif #define TR_MULTI_RFTUNE TR(INDENT "Ajust.fréq", INDENT "Ajustement fréq.") #define TR_MULTI_TELEMETRY "Télémétrie" #define TR_MULTI_VIDFREQ TR(INDENT "Fréq. vidéo", INDENT "Fréquence vidéo") @@ -1138,31 +1031,6 @@ #define TR_CONFIRMRESET TR("Effacer TOUT?","Effacer TOUS modèles/réglages?") #define TR_TO_MANY_LUA_SCRIPTS "Trop de scripts lua!" -#if defined(TELEMETRY_MAVLINK) - #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "RSSI Max" - #define TR_MAVLINK_PC_RSSI_EN_LABEL "PC RSSI EN" - #define TR_MAVMENUSETUP_TITLE "Config Mavlink" - #define TR_MAVLINK_BAUD_LABEL "Baudrate" - #define TR_MAVLINK_INFOS "INFOS" - #define TR_MAVLINK_MODE "MODE" - #define TR_MAVLINK_CUR_MODE "Mode courant" - #define TR_MAVLINK_ARMED "Armé" - #define TR_MAVLINK_BAT_MENU_TITLE "BAT RSSI" - #define TR_MAVLINK_BATTERY_LABEL "Accu propulsion" - #define TR_MAVLINK_RC_RSSI_LABEL "RC RSSI" - #define TR_MAVLINK_PC_RSSI_LABEL "PC RSSI" - #define TR_MAVLINK_NAV_MENU_TITLE "NAV" - #define TR_MAVLINK_COURSE "Course" - #define TR_MAVLINK_HEADING "Cap" - #define TR_MAVLINK_BEARING "Relèv." - #define TR_MAVLINK_ALTITUDE "Altitude" - #define TR_MAVLINK_GPS "GPS" - #define TR_MAVLINK_NO_FIX "NO Fix" - #define TR_MAVLINK_SAT "SAT" - #define TR_MAVLINK_HDOP "HDOP" - #define TR_MAVLINK_LAT "LAT" - #define TR_MAVLINK_LON "LON" -#endif // Horus and Taranis column headers #define TR_PHASES_HEADERS_NAME "Nom" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 5aa820393..561720446 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -139,8 +139,6 @@ #define TR_RETA123 "DEMA123SD" #elif defined(PCBSKY9X) #define TR_RETA123 "DEMA123a" -#elif defined(CPUM2560) - #define TR_RETA123 "DEMA123ab" #else #define TR_RETA123 "DEMA123" #endif @@ -169,11 +167,7 @@ #define TR_IRPROTOS #endif -#if defined(CPUARM) #define TR_XPPM -#else - #define TR_XPPM "PPM16\0""PPMsim" -#endif #define TR_VPROTOS "PPM\0 " TR_XPPM TR_PXX TR_DSM2 TR_IRPROTOS @@ -210,27 +204,14 @@ #else #define TR_CSWTIMER "Tim\0 " #define TR_CSWSTICKY "Glue\0" - #if defined(CPUARM) #define TR_CSWRANGE "Rnge\0" #define TR_CSWSTAY "Edge\0" - #else - #define TR_CSWRANGE - #define TR_CSWSTAY - #endif #endif -#if defined(CPUARM) #define TR_CSWEQUAL "a=x\0 " -#else - #define TR_CSWEQUAL -#endif #define LEN_VCSWFUNC "\005" -#if defined(CPUARM) #define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""a= 212 #define TR_FSW_RESET_TIMERS "Timer 1\0 ""Timer 2\0 ""Timer 3\0 " -#elif defined(CPUARM) - #define TR_FSW_RESET_TIMERS "Tmr1""Tmr2""Tmr3" #else - #define TR_FSW_RESET_TIMERS "Tmr1""Tmr2" + #define TR_FSW_RESET_TIMERS "Tmr1""Tmr2""Tmr3" #endif #define TR_VFSWRESET TR(TR_FSW_RESET_TIMERS "All\0" TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC, TR_FSW_RESET_TIMERS "Tutto\0 " TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC) @@ -347,21 +320,12 @@ #define LEN_VTELEMCHNS "\004" -#if defined(CPUARM) #define TR_TELEM_RESERVE TR("[--]", "[---]") #define TR_TELEM_TIME TR("Ora\0", "Ora\0 ") #define TR_RAS TR("SWR\0", "SWR\0 ") #define TR_RX_BATT TR("RxBt", "BatRx") #define TR_A3_A4 TR("A3\0 ""A4\0 ", "A3\0 ""A4\0 ") #define TR_A3_A4_MIN TR("A3-\0""A4-\0", "A3-\0 ""A4-\0 ") -#else - #define TR_TELEM_RESERVE - #define TR_TELEM_TIME - #define TR_RAS - #define TR_RX_BATT - #define TR_A3_A4 - #define TR_A3_A4_MIN -#endif #define TR_ASPD_MAX TR("ASp+", "ASpd+") @@ -371,33 +335,17 @@ #define TR_TELEM_RSSI_RX TR("Rx\0 ", "Rx\0 ") #endif -#if defined(CPUARM) #define TR_TELEM_TIMERS TR("Tmr1""Tmr2""Tmr3", "Tmr1\0""Tmr2\0""Tmr3\0") -#else - #define TR_TELEM_TIMERS TR("Tmr1""Tmr2", "Tmr1\0""Tmr2\0") -#endif #define LENGTH_UNIT_IMP "ft\0" #define SPEED_UNIT_IMP "mph" #define LENGTH_UNIT_METR "m\0 " #define SPEED_UNIT_METR "kmh" -#if defined(CPUARM) #define LEN_VUNITSSYSTEM TR("\006", "\011") #define TR_VUNITSSYSTEM TR("Metric""Imper.", "Metriche\0""Imperiali") #define LEN_VTELEMUNIT "\003" #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""mW\0""dB\0""rpm""g\0 ""@\0 ""rad""ml\0""fOz" -#else - #if defined(IMPERIAL_UNITS) - #define LENGTH_UNIT LENGTH_UNIT_IMP - #define SPEED_UNIT SPEED_UNIT_IMP - #else - #define LENGTH_UNIT LENGTH_UNIT_METR - #define SPEED_UNIT SPEED_UNIT_METR - #endif - #define LEN_VTELEMUNIT "\003" - #define TR_VTELEMUNIT "V\0 ""A\0 ""m/s""-\0 " SPEED_UNIT LENGTH_UNIT "@\0 ""%\0 ""mA\0""mAh""W\0 " -#endif #define STR_V (STR_VTELEMUNIT+1) #define STR_A (STR_VTELEMUNIT+4) @@ -411,15 +359,10 @@ #define LEN_VTELPROTO "\007" #define TR_VTELPROTO "---\0 ""Hub\0 ""WSHHigh" -#if defined(CPUARM) #define LEN_AMPSRC TR("\003", "\007") #define TR_AMPSRC TR("---""A1\0""A2\0""A3\0""A4\0""FAS""Cel", "---\0 ""A1\0 ""A2\0 ""A3\0 ""A4\0 ""FAS\0 ""Celle\0 ") #define LEN_VOLTSRC TR("\003", "\007") #define TR_VOLTSRC TR("A1\0""A2\0""A3\0""A4\0""FAS""Cel", "A1\0 ""A2\0 ""A3\0 ""A4\0 ""FAS\0 ""Celle\0 ") -#else - #define LEN_AMPSRC TR("\003", "\007") - #define TR_AMPSRC TR("---""A1\0""A2\0""FAS""Cel", "---\0 ""A1\0 ""A2\0 ""FAS\0 ""Celle\0 ") -#endif #define LEN_VARIOSRC "\005" #if defined(TELEMETRY_FRSKY_SPORT) @@ -428,13 +371,8 @@ #define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" #endif -#if defined(CPUARM) #define LEN_VTELEMSCREENTYPE "\006" #define TR_VTELEMSCREENTYPE "Niente""Valori""Barre\0""Script" -#else - #define LEN_VTELEMSCREENTYPE "\006" - #define TR_VTELEMSCREENTYPE "Valori""Barre\0" -#endif #define LEN_GPSFORMAT "\004" #define TR_GPSFORMAT "HMS NMEA" @@ -498,11 +436,7 @@ #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" #endif -#if defined(CPUARM) #define TR_LOGICALSW "L01""L02""L03""L04""L05""L06""L07""L08""L09""L10""L11""L12""L13""L14""L15""L16""L17""L18""L19""L20""L21""L22""L23""L24""L25""L26""L27""L28""L29""L30""L31""L32" -#else - #define TR_LOGICALSW "L01""L02""L03""L04""L05""L06""L07""L08""L09""L10""L11""L12" -#endif #if defined(PCBHORUS) #define TR_TRIMS_SWITCHES "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar""\3135d""\3135u""\3136d""\3136u" @@ -513,9 +447,6 @@ #if defined(PCBSKY9X) #define TR_ROTARY_ENCODERS "REa\0" #define TR_ROTENC_SWITCHES "REa" -#elif defined(PCBGRUVIN9X) || defined(PCBMEGA2560) - #define TR_ROTARY_ENCODERS "REa\0""REb\0" - #define TR_ROTENC_SWITCHES "REa""REb" #else #define TR_ROTARY_ENCODERS #define TR_ROTENC_SWITCHES @@ -542,13 +473,8 @@ #define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]" #endif -#if defined(CPUARM) #define TR_RESERVE_VSRCRAW "[--]" #define TR_EXTRA_VSRCRAW "Batt""Time""GPS\0" TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW "Tmr1""Tmr2""Tmr3" -#else - #define TR_EXTRA_VSRCRAW - #define TR_VTELEMCHNS "---\0""Batt" TR_TELEM_TIME TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_TIMERS TR_RAS "Tx\0 " TR_TELEM_RSSI_RX TR_RX_BATT "A1\0 ""A2\0 " TR_A3_A4 "Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "A1-\0""A2-\0" TR_A3_A4_MIN "Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+" TR_ASPD_MAX "Cel-""Cls-""Vfs-""Cur+""Pwr+" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "Acc\0""Ora\0" -#endif #define TR_VSRCRAW "---\0" TR_STICKS_VSRCRAW TR_POTS_VSRCRAW TR_ROTARY_ENCODERS "MAX\0" TR_CYC_VSRCRAW TR_TRIMS_VSRCRAW TR_SW_VSRCRAW TR_EXTRA_VSRCRAW @@ -566,14 +492,6 @@ #define LEN_VFAILSAFE "\013" #define TR_VFAILSAFE "Non settato""Mantieni\0 ""Personali\0 ""No impulsi\0""Ricevente\0 " -#if defined(TELEMETRY_MAVLINK) - #define LEN_MAVLINK_BAUDS "\006" - #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""58798 ""76800" - #define LEN_MAVLINK_AC_MODES "\011" - #define TR_MAVLINK_AC_MODES "Stabilize""Acro ""Alt Hold ""Auto ""Guided ""Loiter ""RTL ""Circle ""Pos Hold ""Land ""OF Loiter""Toy A ""Toy M ""INVALID " - #define LEN_MAVLINK_AP_MODES "\015" - #define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Inizializza ""INVALID " -#endif #define LEN_VSENSORTYPES "\012" #define TR_VSENSORTYPES "Custom\0 ""Calcolato\0" @@ -638,11 +556,7 @@ #define TR_PHASENAME "Nome fase" #define TR_MIXNAME "Nome mix" #define TR_INPUTNAME "Nome Ingr." -#if defined(CPUARM) #define TR_EXPONAME "Nome expo" -#else - #define TR_EXPONAME "Nome Expo" -#endif #define TR_BITMAP "Immagine" #define TR_TIMER TR("Timer","Timer ") #define TR_ELIMITS TR("Limiti.E","Limiti Estesi") @@ -657,13 +571,9 @@ #define TR_OUTPUT_TYPE INDENT "Output" #endif #define TR_PROTO TR(INDENT "Proto", INDENT "Protocollo") -#if defined(CPUARM) #define TR_PPMFRAME INDENT "PPM frame" #define TR_REFRESHRATE TR(INDENT "Refresh", INDENT "Refresh rate") #define STR_WARN_BATTVOLTAGE TR(INDENT "Output is VBAT: ", INDENT "Warning: output level is VBAT: ") -#else - #define TR_PPMFRAME "PPM frame" -#endif #define TR_MS "ms" #define TR_SWITCH "Inter." #define TR_TRIMS "Trims" @@ -786,13 +696,8 @@ #define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" #define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" -#if defined(CPUARM) #define TR_TMIXMAXMS "Tmix max" #define TR_FREESTACKMINB "Free Stack" -#else - #define TR_TMIXMAXMS "Tmix max\037\124ms" - #define TR_FREESTACKMINB "Free Stack\037\124b" -#endif #define TR_MENUTORESET CENTER TR_ENTER" x Azzerare" #define TR_PPM_TRAINER "TR" @@ -835,13 +740,8 @@ #define TR_MENUFLIGHTMODES "FASI DI VOLO" #define TR_MENUHELISETUP "CONFIGURA ELI" -#if defined(CPUARM) #define TR_MENUINPUTS "INGRESSI" #define TR_MENULIMITS "USCITE" -#else - #define TR_MENUINPUTS "DR/ESPO" - #define TR_MENULIMITS "LIMITI" -#endif #define TR_MENUCURVES "CURVE" #define TR_MENUCURVE "CURVA" @@ -860,13 +760,8 @@ #define TR_MONITOR_CHANNELS4 "CHANNELS MONITOR 25/32" #define TR_MONITOR_OUTPUT_DESC "Outputs" #define TR_MONITOR_MIXER_DESC "Mixers" -#if defined(CPUARM) #define TR_RECEIVER_NUM TR(INDENT "RxNum", INDENT "Ricevente No.") #define TR_RECEIVER INDENT "Receiver" -#else - #define TR_RECEIVER_NUM "RxNum" - #define TR_RECEIVER "RxNum" -#endif #define TR_MULTI_RFTUNE TR(INDENT "Freq tune",INDENT "RF Freq. fine tune") #define TR_MULTI_TELEMETRY "Telemetry" #define TR_MULTI_VIDFREQ TR(INDENT "Vid. freq.", INDENT "Video frequency") @@ -1118,31 +1013,6 @@ #define TR_CONFIRMRESET "Resettare TUTTI i dati?" #define TR_TO_MANY_LUA_SCRIPTS "Troppi Scripts Lua!" -#if defined(TELEMETRY_MAVLINK) - #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" - #define TR_MAVLINK_PC_RSSI_EN_LABEL "PC RSSI EN" - #define TR_MAVMENUSETUP_TITLE "Setta Mavlink" - #define TR_MAVLINK_BAUD_LABEL "Baudrate" - #define TR_MAVLINK_INFOS "INFOS" - #define TR_MAVLINK_MODE "MODO" - #define TR_MAVLINK_CUR_MODE "Modo Corrente" - #define TR_MAVLINK_ARMED "Armato" - #define TR_MAVLINK_BAT_MENU_TITLE "BAT RSSI" - #define TR_MAVLINK_BATTERY_LABEL "Stato batteria di volo" - #define TR_MAVLINK_RC_RSSI_LABEL "RC RSSI" - #define TR_MAVLINK_PC_RSSI_LABEL "PC RSSI" - #define TR_MAVLINK_NAV_MENU_TITLE "NAV" - #define TR_MAVLINK_COURSE "Course" - #define TR_MAVLINK_HEADING "Heading" - #define TR_MAVLINK_BEARING "Bearing" - #define TR_MAVLINK_ALTITUDE "Altitudine" - #define TR_MAVLINK_GPS "GPS" - #define TR_MAVLINK_NO_FIX "NO Fix" - #define TR_MAVLINK_SAT "SAT" - #define TR_MAVLINK_HDOP "HDOP" - #define TR_MAVLINK_LAT "LAT" - #define TR_MAVLINK_LON "LON" -#endif // Horus and Taranis column headers #define TR_PHASES_HEADERS_NAME "Nome" diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index 1038251ed..e6ba578fd 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -144,8 +144,6 @@ #define TR_RETA123 "RETA123LR" #elif defined(PCBSKY9X) #define TR_RETA123 "RETA123a" -#elif defined(CPUM2560) - #define TR_RETA123 "RETA123ab" #else #define TR_RETA123 "RETA123" #endif @@ -174,11 +172,7 @@ #define TR_IRPROTOS #endif -#if defined(CPUARM) #define TR_XPPM -#else - #define TR_XPPM "PPM16\0""PPMsim" -#endif #define TR_VPROTOS "PPM\0 " TR_XPPM TR_PXX TR_DSM2 TR_IRPROTOS @@ -215,27 +209,14 @@ #else #define TR_CSWTIMER "Tim\0 " #define TR_CSWSTICKY "Glue\0" - #if defined(CPUARM) #define TR_CSWRANGE "Rnge\0" #define TR_CSWSTAY "Edge\0" - #else - #define TR_CSWRANGE - #define TR_CSWSTAY - #endif #endif -#if defined(CPUARM) #define TR_CSWEQUAL "a=x\0 " -#else - #define TR_CSWEQUAL -#endif #define LEN_VCSWFUNC "\005" -#if defined(CPUARM) #define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""a= 212 #define TR_FSW_RESET_TIMERS "Timer 1\0 ""Timer 2\0 ""Timer 3\0 " -#elif defined(CPUARM) - #define TR_FSW_RESET_TIMERS "Tmr1""Tmr2""Tmr3" #else - #define TR_FSW_RESET_TIMERS "Tmr1""Tmr2" + #define TR_FSW_RESET_TIMERS "Tmr1""Tmr2""Tmr3" #endif #define TR_VFSWRESET TR(TR_FSW_RESET_TIMERS "All\0" TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC, TR_FSW_RESET_TIMERS "Vliegdata\0" TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC) @@ -357,22 +330,10 @@ #define LENGTH_UNIT_METR "m\0 " #define SPEED_UNIT_METR "kmh" -#if defined(CPUARM) #define LEN_VUNITSSYSTEM TR("\006", "\010") #define TR_VUNITSSYSTEM TR("Mtrsch""Engels", "Metrisch\0 ""Engels\0 ") #define LEN_VTELEMUNIT "\003" #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""mW\0""dB\0""rpm""g\0 ""@\0 ""rad""ml\0""fOz" -#else - #if defined(IMPERIAL_UNITS) - #define LENGTH_UNIT LENGTH_UNIT_IMP - #define SPEED_UNIT SPEED_UNIT_IMP - #else - #define LENGTH_UNIT LENGTH_UNIT_METR - #define SPEED_UNIT SPEED_UNIT_METR - #endif - #define LEN_VTELEMUNIT "\003" - #define TR_VTELEMUNIT "V\0 ""A\0 ""m/s""-\0 " SPEED_UNIT LENGTH_UNIT "@\0 ""%\0 ""mA\0""mAh""W\0 " -#endif #define STR_V (STR_VTELEMUNIT+1) #define STR_A (STR_VTELEMUNIT+4) @@ -386,15 +347,10 @@ #define LEN_VTELPROTO "\007" #define TR_VTELPROTO "Geen\0 ""Hub\0 ""WSHHigh" -#if defined(CPUARM) #define LEN_AMPSRC TR("\003", "\005") #define TR_AMPSRC TR("---""A1\0""A2\0""A3\0""A4\0""FAS""Cel", "---\0 ""A1\0 ""A2\0 ""A3\0 ""A4\0 ""FAS\0 ""Cells") #define LEN_VOLTSRC TR("\003", "\005") #define TR_VOLTSRC TR("A1\0""A2\0""A3\0""A4\0""FAS""Cel", "A1\0 ""A2\0 ""A3\0 ""A4\0 ""FAS\0 ""Cells") -#else - #define LEN_AMPSRC TR("\003", "\005") - #define TR_AMPSRC TR("---""A1\0""A2\0""FAS""Cel", "---\0 ""A1\0 ""A2\0 ""FAS\0 ""Cells") -#endif #define LEN_VARIOSRC "\004" #if defined(TELEMETRY_FRSKY_SPORT) @@ -403,13 +359,8 @@ #define TR_VARIOSRC "Alt\0""Alt+""VSpd""A1\0 ""A2\0" #endif -#if defined(CPUARM) #define LEN_VTELEMSCREENTYPE "\006" #define TR_VTELEMSCREENTYPE "Geen\0 ""Nums\0 ""Balken""Script" -#else - #define LEN_VTELEMSCREENTYPE "\006" - #define TR_VTELEMSCREENTYPE "Nums\0 ""Balken" -#endif #define LEN_GPSFORMAT "\004" #define TR_GPSFORMAT "DMS\0""NMEA" @@ -445,11 +396,7 @@ #define LEN_VSWITCHES "\003" #define LEN_VSRCRAW "\004" -#if defined(CPUARM) #define TR_STICKS_VSRCRAW "\307Rud""\307Ele""\307Thr""\307Ail" -#else -#define TR_STICKS_VSRCRAW "Rud\0""Ele\0""Thr\0""Ail\0" -#endif #if defined(PCBHORUS) #define TR_TRIMS_VSRCRAW "\313Rud""\313Ele""\313Thr""\313Ail""\313T5\0""\313T6\0" @@ -485,11 +432,7 @@ #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" #endif -#if defined(CPUARM) #define TR_LOGICALSW "L01""L02""L03""L04""L05""L06""L07""L08""L09""L10""L11""L12""L13""L14""L15""L16""L17""L18""L19""L20""L21""L22""L23""L24""L25""L26""L27""L28""L29""L30""L31""L32" -#else - #define TR_LOGICALSW "L01""L02""L03""L04""L05""L06""L07""L08""L09""L10""L11""L12" -#endif #if defined(PCBHORUS) #define TR_TRIMS_SWITCHES "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar""\3135d""\3135u""\3136d""\3136u" @@ -500,9 +443,6 @@ #if defined(PCBSKY9X) #define TR_ROTARY_ENCODERS "REa\0" #define TR_ROTENC_SWITCHES "REa" -#elif defined(PCBGRUVIN9X) || defined(PCBMEGA2560) - #define TR_ROTARY_ENCODERS "REa\0""REb\0" - #define TR_ROTENC_SWITCHES "REa""REb" #else #define TR_ROTARY_ENCODERS #define TR_ROTENC_SWITCHES @@ -529,13 +469,8 @@ #define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]" #endif -#if defined(CPUARM) #define TR_RESERVE_VSRCRAW "[--]" #define TR_EXTRA_VSRCRAW "Batt""Time""GPS\0" TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW "Tmr1""Tmr2""Tmr3" -#else - #define TR_EXTRA_VSRCRAW - #define TR_VTELEMCHNS "---\0" "Batt" "Tmr1""Tmr2""Tx\0 ""Rx\0 ""A1\0 ""A2\0 ""Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""ASp+""Cel-""Cls-""Vfs-""Cur+""Pwr+""Acc\0""Time" -#endif #define TR_VSRCRAW "---\0" TR_STICKS_VSRCRAW TR_POTS_VSRCRAW TR_ROTARY_ENCODERS "MAX\0" TR_CYC_VSRCRAW TR_TRIMS_VSRCRAW TR_SW_VSRCRAW TR_EXTRA_VSRCRAW @@ -553,14 +488,6 @@ #define LEN_VFAILSAFE TR("\013","\011") #define TR_VFAILSAFE TR("Niet Gezet\0""Vasthouden\0""Custom\0 ""Geen Pulsen""Ontvanger\0 ","Not Set\0 ""Hold\0 ""Custom\0 ""No Pulses""Receiver\0") -#if defined(TELEMETRY_MAVLINK) - #define LEN_MAVLINK_BAUDS "\006" - #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""58798 ""76800" - #define LEN_MAVLINK_AC_MODES "\011" - #define TR_MAVLINK_AC_MODES "Stabilize""Acro ""Alt Hold ""Auto ""Guided ""Loiter ""RTL ""Circle ""Pos Hold ""Land ""OF Loiter""Toy A ""Toy M ""INVALID " - #define LEN_MAVLINK_AP_MODES "\015" - #define TR_MAVLINK_AP_MODES "Manueel ""Cirkel ""Stabiliseer ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Begeleid ""Initialiseren""ONGELDIG " -#endif #define LEN_VSENSORTYPES "\010" #define TR_VSENSORTYPES "Custom\0 ""Berekend" @@ -641,13 +568,9 @@ #define TR_OUTPUT_TYPE INDENT "Output" #endif #define TR_PROTO TR(INDENT "Proto", INDENT "Protocol") -#if defined(CPUARM) #define TR_PPMFRAME INDENT "PPM frame" #define TR_REFRESHRATE TR(INDENT "Refresh", INDENT "Refresh rate") #define STR_WARN_BATTVOLTAGE TR(INDENT "Output is VBAT: ", INDENT "Warning: output level is VBAT: ") -#else - #define TR_PPMFRAME "PPM frame" -#endif #define TR_MS "ms" #define TR_SWITCH TR("Schak.", "Schakelaar") #define TR_TRIMS "Trims" @@ -774,13 +697,8 @@ #define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" #define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" -#if defined(CPUARM) #define TR_TMIXMAXMS "Tmix max" #define TR_FREESTACKMINB "Free Stack" -#else - #define TR_TMIXMAXMS "Tmix max\037\124ms" - #define TR_FREESTACKMINB "Free Stack\037\124b" -#endif #define TR_MENUTORESET CENTER TR_ENTER" voor Reset" #define TR_PPM_TRAINER "TR" @@ -826,13 +744,8 @@ #define TR_MENUFLIGHTMODE "VLIEGFASE" #define TR_MENUHELISETUP "HELI TS-Mixer" -#if defined(CPUARM) #define TR_MENUINPUTS "INPUTS" #define TR_MENULIMITS "OUTPUTS" -#else - #define TR_MENUINPUTS "STICKS" - #define TR_MENULIMITS "SERVOS" -#endif #define TR_MENUCURVES "CURVEN" #define TR_MENUCURVE "CURVE" @@ -851,13 +764,8 @@ #define TR_MONITOR_SWITCHES "LOGISCHE SCHAKELAARS MONITOR" #define TR_MONITOR_OUTPUT_DESC "Outputs" #define TR_MONITOR_MIXER_DESC "Mixers" -#if defined(CPUARM) #define TR_RECEIVER_NUM TR(INDENT "RxNum", INDENT "Receiver Nr.") #define TR_RECEIVER INDENT "Receiver" -#else - #define TR_RECEIVER_NUM "RxNum" - #define TR_RECEIVER "RxNum" -#endif #define TR_MULTI_RFTUNE TR(INDENT "Freq tune",INDENT "RF Freq. fine tune") #define TR_MULTI_TELEMETRY "Telemetry" #define TR_MULTI_VIDFREQ TR(INDENT "Vid. freq.", INDENT "Video frequency") @@ -1115,31 +1023,6 @@ #define TR_CONFIRMRESET TR("Wis Alles?", "Wis ALLE modellen en instellingen?") #define TR_TO_MANY_LUA_SCRIPTS "Te veel Lua scripts!" -#if defined(TELEMETRY_MAVLINK) - #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" - #define TR_MAVLINK_PC_RSSI_EN_LABEL "PC RSSI EN" - #define TR_MAVMENUSETUP_TITLE "Mavlink setup" - #define TR_MAVLINK_BAUD_LABEL "Baudrate" - #define TR_MAVLINK_INFOS "INFOS" - #define TR_MAVLINK_MODE "MODE" - #define TR_MAVLINK_CUR_MODE "Current mode" - #define TR_MAVLINK_ARMED "Armed" - #define TR_MAVLINK_BAT_MENU_TITLE "BAT RSSI" - #define TR_MAVLINK_BATTERY_LABEL "Vliegaccu-Status" - #define TR_MAVLINK_RC_RSSI_LABEL "RC RSSI" - #define TR_MAVLINK_PC_RSSI_LABEL "PC RSSI" - #define TR_MAVLINK_NAV_MENU_TITLE "NAV" - #define TR_MAVLINK_COURSE "Course" - #define TR_MAVLINK_HEADING "Heading" - #define TR_MAVLINK_BEARING "Bearing" - #define TR_MAVLINK_ALTITUDE "Altitude" - #define TR_MAVLINK_GPS "GPS" - #define TR_MAVLINK_NO_FIX "NO Fix" - #define TR_MAVLINK_SAT "SAT" - #define TR_MAVLINK_HDOP "HDOP" - #define TR_MAVLINK_LAT "LAT" - #define TR_MAVLINK_LON "LON" -#endif // Horus and Taranis column headers #define TR_PHASES_HEADERS_NAME "Name" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 6543e927a..6a7de9cdb 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -141,8 +141,6 @@ #define TR_RETA123 "KWGL123LR" #elif defined(PCBSKY9X) #define TR_RETA123 "KWGL123a" -#elif defined(CPUM2560) - #define TR_RETA123 "KWGL123ab" #else #define TR_RETA123 "KWGL123" #endif @@ -171,11 +169,7 @@ #define TR_IRPROTOS #endif -#if defined(CPUARM) #define TR_XPPM -#else - #define TR_XPPM "PPM16\0""PPMsim" -#endif #define TR_VPROTOS "PPM\0 " TR_XPPM TR_PXX TR_DSM2 TR_IRPROTOS @@ -212,27 +206,14 @@ #else #define TR_CSWTIMER "Tim\0 " #define TR_CSWSTICKY "Stały" - #if defined(CPUARM) #define TR_CSWRANGE "Zasię" #define TR_CSWSTAY "Brzeg" - #else - #define TR_CSWRANGE - #define TR_CSWSTAY - #endif #endif -#if defined(CPUARM) #define TR_CSWEQUAL "a=x\0 " -#else - #define TR_CSWEQUAL -#endif #define LEN_VCSWFUNC "\005" -#if defined(CPUARM) #define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""a= 212 #define TR_FSW_RESET_TIMERS "Timer 1\0 ""Timer 2\0 ""Timer 3\0 " -#elif defined(CPUARM) - #define TR_FSW_RESET_TIMERS "Tmr1""Tmr2""Tmr3" #else - #define TR_FSW_RESET_TIMERS "Tmr1""Tmr2" + #define TR_FSW_RESET_TIMERS "Tmr1""Tmr2""Tmr3" #endif #define TR_VFSWRESET TR(TR_FSW_RESET_TIMERS "All\0" TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC, TR_FSW_RESET_TIMERS "All\0 " TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC) @@ -349,21 +322,12 @@ #define LEN_VTELEMCHNS "\004" -#if defined(CPUARM) #define TR_TELEM_RESERVE TR("[--]", "[---]") #define TR_TELEM_TIME TR("Time", "Time\0") #define TR_RAS TR("SWR\0", "SWR\0 ") #define TR_RX_BATT TR("[NA]", "[NA]\0") #define TR_A3_A4 TR("A3\0 ""A4\0 ", "A3\0 ""A4\0 ") #define TR_A3_A4_MIN TR("A3-\0""A4-\0", "A3-\0 ""A4-\0 ") -#else - #define TR_TELEM_RESERVE - #define TR_TELEM_TIME - #define TR_RAS - #define TR_RX_BATT - #define TR_A3_A4 - #define TR_A3_A4_MIN -#endif #define TR_ASPD_MAX TR("ASp+", "ASpd+") @@ -373,33 +337,17 @@ #define TR_TELEM_RSSI_RX TR("Rx\0 ", "Rx\0 ") #endif -#if defined(CPUARM) #define TR_TELEM_TIMERS TR("Tmr1""Tmr2""Tmr3", "Tmr1\0""Tmr2\0""Tmr3\0") -#else - #define TR_TELEM_TIMERS TR("Tmr1""Tmr2", "Tmr1\0""Tmr2\0") -#endif #define LENGTH_UNIT_IMP "ft\0" #define SPEED_UNIT_IMP "mph" #define LENGTH_UNIT_METR "m\0 " #define SPEED_UNIT_METR "kmh" -#if defined(CPUARM) #define LEN_VUNITSSYSTEM TR("\006", "\010") /*8 decimal*/ #define TR_VUNITSSYSTEM TR("Metr. ""Imper.", "Metryczn""Imperial") #define LEN_VTELEMUNIT "\003" #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""mW\0""dB\0""rpm""g\0 ""@\0 ""rad""ml\0""fOz" -#else - #if defined(IMPERIAL_UNITS) - #define LENGTH_UNIT LENGTH_UNIT_IMP - #define SPEED_UNIT SPEED_UNIT_IMP - #else - #define LENGTH_UNIT LENGTH_UNIT_METR - #define SPEED_UNIT SPEED_UNIT_METR - #endif - #define LEN_VTELEMUNIT "\003" - #define TR_VTELEMUNIT "V\0 ""A\0 ""m/s""-\0 " SPEED_UNIT LENGTH_UNIT "@\0 ""%\0 ""mA\0""mAh""W\0 " -#endif #define STR_V (STR_VTELEMUNIT+1) #define STR_A (STR_VTELEMUNIT+4) @@ -413,15 +361,10 @@ #define LEN_VTELPROTO "\007" #define TR_VTELPROTO "None\0 ""Hub\0 ""WSHHigh" -#if defined(CPUARM) #define LEN_AMPSRC TR("\003", "\005") #define TR_AMPSRC TR("---""A1\0""A2\0""A3\0""A4\0""FAS""Cel", "---\0 ""A1\0 ""A2\0 ""A3\0 ""A4\0 ""FAS\0 ""Cells") #define LEN_VOLTSRC TR("\003", "\005") #define TR_VOLTSRC TR("A1\0""A2\0""A3\0""A4\0""FAS""Cel", "A1\0 ""A2\0 ""A3\0 ""A4\0 ""FAS\0 ""Cells") -#else - #define LEN_AMPSRC TR("\003", "\005") - #define TR_AMPSRC TR("---""A1\0""A2\0""FAS""Cel", "---\0 ""A1\0 ""A2\0 ""FAS\0 ""Cells") -#endif #define LEN_VARIOSRC "\004" #if defined(TELEMETRY_FRSKY_SPORT) @@ -430,13 +373,8 @@ #define TR_VARIOSRC "Wys\0""Wys+""VSpd""A1\0 ""A2\0" #endif -#if defined(CPUARM) #define LEN_VTELEMSCREENTYPE "\006" #define TR_VTELEMSCREENTYPE "Brak\0 ""Liczb\0""Paski\0""Skrypt" -#else - #define LEN_VTELEMSCREENTYPE "\004" - #define TR_VTELEMSCREENTYPE "Licz""Pask" -#endif #define LEN_GPSFORMAT "\004" #define TR_GPSFORMAT "DMS\0""NMEA" @@ -500,11 +438,7 @@ #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" #endif -#if defined(CPUARM) #define TR_LOGICALSW "L01""L02""L03""L04""L05""L06""L07""L08""L09""L10""L11""L12""L13""L14""L15""L16""L17""L18""L19""L20""L21""L22""L23""L24""L25""L26""L27""L28""L29""L30""L31""L32" -#else - #define TR_LOGICALSW "L01""L02""L03""L04""L05""L06""L07""L08""L09""L10""L11""L12" -#endif #if defined(PCBHORUS) #define TR_TRIMS_SWITCHES "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar""\3135d""\3135u""\3136d""\3136u" @@ -515,9 +449,6 @@ #if defined(PCBSKY9X) #define TR_ROTARY_ENCODERS "REa\0" #define TR_ROTENC_SWITCHES "REa" -#elif defined(PCBGRUVIN9X) || defined(PCBMEGA2560) - #define TR_ROTARY_ENCODERS "REa\0""REb\0" - #define TR_ROTENC_SWITCHES "REa""REb" #else #define TR_ROTARY_ENCODERS #define TR_ROTENC_SWITCHES @@ -544,13 +475,8 @@ #define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]" #endif -#if defined(CPUARM) #define TR_RESERVE_VSRCRAW "[--]" #define TR_EXTRA_VSRCRAW "Batt""Time""GPS\0" TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW "Tmr1""Tmr2""Tmr3" -#else - #define TR_EXTRA_VSRCRAW - #define TR_VTELEMCHNS "---\0""Bat\0" TR_TELEM_TIME TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_TIMERS TR_RAS "Tx\0 " TR_TELEM_RSSI_RX TR_RX_BATT "A1\0 ""A2\0 " TR_A3_A4 "Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "A1-\0""A2-\0" TR_A3_A4_MIN "Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+" TR_ASPD_MAX "Cel-""Cls-""Vfs-""Cur+""Pwr+" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "Acc\0""Time" -#endif #define TR_VSRCRAW "---\0" TR_STICKS_VSRCRAW TR_POTS_VSRCRAW TR_ROTARY_ENCODERS "MAX\0" TR_CYC_VSRCRAW TR_TRIMS_VSRCRAW TR_SW_VSRCRAW TR_EXTRA_VSRCRAW @@ -568,14 +494,6 @@ #define LEN_VFAILSAFE "\011" /*9 decimal*/ #define TR_VFAILSAFE "Brak \0 ""Utrzymuj\0""Własne \0""0 sygnału""Odbiornik" -#if defined(TELEMETRY_MAVLINK) - #define LEN_MAVLINK_BAUDS "\006" - #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""58798 ""76800" - #define LEN_MAVLINK_AC_MODES "\011" /*9 decimal*/ - #define TR_MAVLINK_AC_MODES "Stabiliz.""Akro ""Alt Hold ""Auto ""Sterowany""Loiter ""RTL ""Koło ""Utrzymuj ""Ląduj ""OF Loiter""Toy A ""Toy M ""BŁĘDNY " - #define LEN_MAVLINK_AP_MODES "\015" /*13 decimal*/ - #define TR_MAVLINK_AP_MODES "Ręczny ""Koło ""Stabilizacja ""Trening ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Sterowany ""Inicjalizacja""BŁĘDNY " -#endif #define LEN_VSENSORTYPES "\012" /*10 decimal*/ #define TR_VSENSORTYPES "Użytkownik""Obliczone " @@ -640,11 +558,7 @@ #define TR_PHASENAME "Nazwa Fazy" #define TR_MIXNAME "Nazwa Mix" #define TR_INPUTNAME "Wpisz Nazw" -#if defined(CPUARM) #define TR_EXPONAME "LiniaNazw" -#else - #define TR_EXPONAME "Nazwa Exp" -#endif #define TR_BITMAP "Obrazek " #define TR_TIMER TR("Timer", "Timer ") #define TR_ELIMITS TR("Limi+25%", "Kanał +/- 125% ") @@ -659,13 +573,9 @@ #define TR_OUTPUT_TYPE INDENT "Wyjście" #endif #define TR_PROTO TR(INDENT "Proto", INDENT "Protokół") -#if defined(CPUARM) #define TR_PPMFRAME INDENT "Ramka PPM" #define TR_REFRESHRATE TR(INDENT "Refresh", INDENT "Refresh rate") #define STR_WARN_BATTVOLTAGE TR(INDENT "Output is VBAT: ", INDENT "Warning: output level is VBAT: ") -#else - #define TR_PPMFRAME INDENT "Ramka PPM" -#endif #define TR_MS "ms" #define TR_SWITCH "Przełą" #define TR_TRIMS "Trymy" @@ -788,13 +698,8 @@ #define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" #define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" -#if defined(CPUARM) #define TR_TMIXMAXMS "TmixMaks" #define TR_FREESTACKMINB "Wolny stos" -#else - #define TR_TMIXMAXMS "TmixMaks\037\124ms" - #define TR_FREESTACKMINB "Wolny stos\037\124b" -#endif #define TR_MENUTORESET CENTER TR_ENTER " >> Reset" #define TR_PPM_TRAINER "TR" @@ -837,13 +742,8 @@ #define TR_MENUFLIGHTMODES "FAZY LOTU" #define TR_MENUHELISETUP "USTAW HELI" -#if defined(CPUARM) #define TR_MENUINPUTS "WEJŚCIA" #define TR_MENULIMITS "WYJŚCIA" -#else - #define TR_MENUINPUTS "DRĄŻKI" - #define TR_MENULIMITS "SERWA " -#endif #define TR_MENUCURVES "KRZYWE" #define TR_MENUCURVE "KRZYWA" @@ -862,13 +762,8 @@ #define TR_MONITOR_CHANNELS4 "CHANNELS MONITOR 25/32" #define TR_MONITOR_OUTPUT_DESC "Outputs" #define TR_MONITOR_MIXER_DESC "Mixers" -#if defined(CPUARM) #define TR_RECEIVER_NUM TR( INDENT "Nr RX",INDENT "Nr odbiornika") #define TR_RECEIVER INDENT "Receiver" -#else - #define TR_RECEIVER_NUM "NumOdb" - #define TR_RECEIVER INDENT "Receiver" -#endif #define TR_MULTI_RFTUNE TR(INDENT "Freq tune",INDENT "RF Freq. fine tune") #define TR_MULTI_TELEMETRY "Telemetry" #define TR_MULTI_VIDFREQ TR(INDENT "Vid. freq.", INDENT "Video frequency") @@ -1120,31 +1015,6 @@ #define TR_CONFIRMRESET "WYkasować wszytkie modele? " #define TR_TO_MANY_LUA_SCRIPTS "Za dużo skryptów Lua!" -#if defined(TELEMETRY_MAVLINK) - #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "MaksRSSI" - #define TR_MAVLINK_PC_RSSI_EN_LABEL "PC RSSI EN" - #define TR_MAVMENUSETUP_TITLE "Ustaw.Mavlink" - #define TR_MAVLINK_BAUD_LABEL "Baudrate" - #define TR_MAVLINK_INFOS "INFO" - #define TR_MAVLINK_MODE "TRYB" - #define TR_MAVLINK_CUR_MODE "Aktualy Tryb" - #define TR_MAVLINK_ARMED "Aktywny" - #define TR_MAVLINK_BAT_MENU_TITLE "BAT RSSI" - #define TR_MAVLINK_BATTERY_LABEL "Status bateriOdbiorn." - #define TR_MAVLINK_RC_RSSI_LABEL "RC RSSI" - #define TR_MAVLINK_PC_RSSI_LABEL "PC RSSI" - #define TR_MAVLINK_NAV_MENU_TITLE "NAV" - #define TR_MAVLINK_COURSE "Kurs" - #define TR_MAVLINK_HEADING "Kierunek" - #define TR_MAVLINK_BEARING "Orientacja" - #define TR_MAVLINK_ALTITUDE "Wysokość" - #define TR_MAVLINK_GPS "GPS" - #define TR_MAVLINK_NO_FIX "NO Fix" - #define TR_MAVLINK_SAT "SAT" - #define TR_MAVLINK_HDOP "HDOP" - #define TR_MAVLINK_LAT "SZR" - #define TR_MAVLINK_LON "DLG" -#endif // Horus and Taranis column headers #define TR_PHASES_HEADERS_NAME "Nazwa" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index 00d28a5b5..dd7fba563 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -138,8 +138,6 @@ #define TR_RETA123 "LPMA123LR" #elif defined(PCBSKY9X) #define TR_RETA123 "LPMA123a" -#elif defined(CPUM2560) - #define TR_RETA123 "LPMA123ab" #else #define TR_RETA123 "LPMA123" #endif @@ -168,11 +166,7 @@ #define TR_IRPROTOS #endif -#if defined(CPUARM) #define TR_XPPM -#else - #define TR_XPPM "PPM16\0""PPMsim" -#endif #define TR_VPROTOS "PPM\0 " TR_XPPM TR_PXX TR_DSM2 TR_IRPROTOS @@ -209,27 +203,14 @@ #else #define TR_CSWTIMER "Tim\0 " #define TR_CSWSTICKY "Glue\0" - #if defined(CPUARM) #define TR_CSWRANGE "Rnge\0" #define TR_CSWSTAY "Edge\0" - #else - #define TR_CSWRANGE - #define TR_CSWSTAY - #endif #endif -#if defined(CPUARM) #define TR_CSWEQUAL "a=x\0 " -#else - #define TR_CSWEQUAL -#endif #define LEN_VCSWFUNC "\005" -#if defined(CPUARM) #define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""a Date: Thu, 5 Jul 2018 10:40:21 +0200 Subject: [PATCH 03/11] Assume CURVES are always defined --- radio/src/gui/128x64/model_input_edit.cpp | 2 -- radio/src/gui/128x64/model_inputs_mixes.cpp | 8 -------- radio/src/gui/128x64/model_mix_edit.cpp | 2 -- radio/src/gui/212x64/model_input_edit.cpp | 2 -- radio/src/gui/212x64/model_mix_edit.cpp | 2 -- radio/src/gui/212x64/model_outputs.cpp | 4 ---- radio/src/gui/480x272/model_inputs.cpp | 2 -- radio/src/gui/480x272/model_mixes.cpp | 2 -- radio/src/gui/480x272/model_outputs.cpp | 4 ---- radio/src/mixer.cpp | 2 -- radio/src/opentx.h | 9 --------- radio/src/templates.cpp | 2 -- 12 files changed, 41 deletions(-) diff --git a/radio/src/gui/128x64/model_input_edit.cpp b/radio/src/gui/128x64/model_input_edit.cpp index 1cf15385e..306192d7b 100644 --- a/radio/src/gui/128x64/model_input_edit.cpp +++ b/radio/src/gui/128x64/model_input_edit.cpp @@ -121,7 +121,6 @@ void menuModelExpoOne(event_t event) ed->offset = GVAR_MENU_ITEM(EXPO_ONE_2ND_COLUMN, y, ed->offset, -100, 100, RIGHT | attr, 0, event); break; -#if defined(CURVES) case EXPO_FIELD_CURVE_LABEL: lcdDrawTextAlignedLeft(y, STR_CURVE); break; @@ -129,7 +128,6 @@ void menuModelExpoOne(event_t event) case EXPO_FIELD_CURVE: editCurveRef(EXPO_ONE_2ND_COLUMN, y, ed->curve, s_editMode > 0 ? event : 0, RIGHT | attr); break; -#endif #if defined(FLIGHT_MODES) case EXPO_FIELD_FLIGHT_MODES_LABEL: diff --git a/radio/src/gui/128x64/model_inputs_mixes.cpp b/radio/src/gui/128x64/model_inputs_mixes.cpp index 3fb94174c..47175bcfe 100644 --- a/radio/src/gui/128x64/model_inputs_mixes.cpp +++ b/radio/src/gui/128x64/model_inputs_mixes.cpp @@ -263,7 +263,6 @@ void menuModelExpoOne(event_t event) } break; -#if defined(CURVES) case EXPO_FIELD_CURVE: lcdDrawTextAlignedLeft(y, STR_CURVE); if (ed->curveMode!=MODE_EXPO || ed->curveParam==0) { @@ -281,7 +280,6 @@ void menuModelExpoOne(event_t event) lcdDrawText(EXPO_ONE_2ND_COLUMN-3*FW, y, STR_NA, attr); } break; -#endif #if defined(FLIGHT_MODES) case EXPO_FIELD_FLIGHT_MODES: @@ -385,11 +383,7 @@ void menuModelMixOne(event_t event) putsChn(lcdLastRightPos+1*FW, 0, md2->destCh+1,0); #if defined(ROTARY_ENCODERS) -#if defined(CURVES) if ((menuVerticalPosition == MIX_FIELD_TRIM && md2->srcRaw > NUM_STICKS) || (menuVerticalPosition == MIX_FIELD_CURVE && md2->curveMode == MODE_CURVE)) -#else - if (menuVerticalPosition == MIX_FIELD_TRIM && md2->srcRaw > NUM_STICKS) -#endif SUBMENU_NOTITLE(MIX_FIELD_COUNT, {CASE_CPUARM(0) 0, 0, 0, 0, CASE_CURVES(0) CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0, 0 /*, ...*/}) else SUBMENU_NOTITLE(MIX_FIELD_COUNT, {CASE_CPUARM(0) 0, 0, 0, 1, CASE_CURVES(1) CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0, 0 /*, ...*/}); @@ -447,7 +441,6 @@ void menuModelMixOne(event_t event) break; } -#if defined(CURVES) case MIX_FIELD_CURVE: { drawFieldLabel(COLUMN_X, y, STR_CURVE); @@ -480,7 +473,6 @@ void menuModelMixOne(event_t event) } break; } -#endif #if defined(FLIGHT_MODES) case MIX_FIELD_FLIGHT_PHASE: md2->flightModes = editFlightModes(COLUMN_X+MIXES_2ND_COLUMN, y, event, md2->flightModes, attr); diff --git a/radio/src/gui/128x64/model_mix_edit.cpp b/radio/src/gui/128x64/model_mix_edit.cpp index 79ef4ca93..8b27e5971 100644 --- a/radio/src/gui/128x64/model_mix_edit.cpp +++ b/radio/src/gui/128x64/model_mix_edit.cpp @@ -137,12 +137,10 @@ void menuModelMixOne(event_t event) if (attr) md2->carryTrim = !checkIncDecModel(event, !md2->carryTrim, 0, 1); break; -#if defined(CURVES) case MIX_FIELD_CURVE: lcdDrawTextAlignedLeft(y, STR_CURVE); editCurveRef(MIXES_2ND_COLUMN, y, md2->curve, event, attr); break; -#endif #if defined(FLIGHT_MODES) case MIX_FIELD_FLIGHT_MODE: diff --git a/radio/src/gui/212x64/model_input_edit.cpp b/radio/src/gui/212x64/model_input_edit.cpp index 73ae3a36f..b1b4cac55 100644 --- a/radio/src/gui/212x64/model_input_edit.cpp +++ b/radio/src/gui/212x64/model_input_edit.cpp @@ -128,12 +128,10 @@ void menuModelExpoOne(event_t event) ed->offset = GVAR_MENU_ITEM(EXPO_ONE_2ND_COLUMN, y, ed->offset, -100, 100, LEFT|attr, 0, event); break; -#if defined(CURVES) case EXPO_FIELD_CURVE: lcdDrawTextAlignedLeft(y, STR_CURVE); editCurveRef(EXPO_ONE_2ND_COLUMN, y, ed->curve, event, attr); break; -#endif #if defined(FLIGHT_MODES) case EXPO_FIELD_FLIGHT_MODES: diff --git a/radio/src/gui/212x64/model_mix_edit.cpp b/radio/src/gui/212x64/model_mix_edit.cpp index b37c6f75d..8c6430ced 100644 --- a/radio/src/gui/212x64/model_mix_edit.cpp +++ b/radio/src/gui/212x64/model_mix_edit.cpp @@ -138,12 +138,10 @@ void menuModelMixOne(event_t event) } break; -#if defined(CURVES) case MIX_FIELD_CURVE: lcdDrawTextAlignedLeft(y, STR_CURVE); editCurveRef(MIXES_2ND_COLUMN, y, md2->curve, event, attr); break; -#endif #if defined(FLIGHT_MODES) case MIX_FIELD_FLIGHT_MODE: diff --git a/radio/src/gui/212x64/model_outputs.cpp b/radio/src/gui/212x64/model_outputs.cpp index 89549f93a..bfa527112 100644 --- a/radio/src/gui/212x64/model_outputs.cpp +++ b/radio/src/gui/212x64/model_outputs.cpp @@ -26,9 +26,7 @@ enum LimitsItems { ITEM_LIMITS_MIN, ITEM_LIMITS_MAX, ITEM_LIMITS_DIRECTION, -#if defined(CURVES) ITEM_LIMITS_CURVE, -#endif #if defined(PPM_CENTER_ADJUSTABLE) ITEM_LIMITS_PPM_CENTER, #endif @@ -208,7 +206,6 @@ void menuModelLimits(event_t event) break; } -#if defined(CURVES) case ITEM_LIMITS_CURVE: drawCurveName(LIMITS_CURVE_POS, y, ld->curve, attr); if (attr && event==EVT_KEY_LONG(KEY_ENTER) && ld->curve>0) { @@ -219,7 +216,6 @@ void menuModelLimits(event_t event) CHECK_INCDEC_MODELVAR(event, ld->curve, -MAX_CURVES, +MAX_CURVES); } break; -#endif #if defined(PPM_CENTER_ADJUSTABLE) case ITEM_LIMITS_PPM_CENTER: diff --git a/radio/src/gui/480x272/model_inputs.cpp b/radio/src/gui/480x272/model_inputs.cpp index fee036f6a..29826d074 100644 --- a/radio/src/gui/480x272/model_inputs.cpp +++ b/radio/src/gui/480x272/model_inputs.cpp @@ -267,12 +267,10 @@ bool menuModelExpoOne(event_t event) ed->offset = GVAR_MENU_ITEM(EXPO_ONE_2ND_COLUMN, y, ed->offset, -100, 100, LEFT|attr, 0, event); break; -#if defined(CURVES) case EXPO_FIELD_CURVE: lcdDrawText(MENUS_MARGIN_LEFT, y, STR_CURVE); editCurveRef(EXPO_ONE_2ND_COLUMN, y, ed->curve, event, attr); break; -#endif #if defined(FLIGHT_MODES) case EXPO_FIELD_FLIGHT_MODES: diff --git a/radio/src/gui/480x272/model_mixes.cpp b/radio/src/gui/480x272/model_mixes.cpp index 33bc0f536..4a6c96f3f 100644 --- a/radio/src/gui/480x272/model_mixes.cpp +++ b/radio/src/gui/480x272/model_mixes.cpp @@ -228,12 +228,10 @@ bool menuModelMixOne(event_t event) drawCheckBox(MIXES_2ND_COLUMN, y, !md2->carryTrim, attr); if (attr) md2->carryTrim = !checkIncDecModel(event, !md2->carryTrim, 0, 1); break; -#if defined(CURVES) case MIX_FIELD_CURVE: lcdDrawText(MENUS_MARGIN_LEFT, y, STR_CURVE); editCurveRef(MIXES_2ND_COLUMN, y, md2->curve, event, attr); break; -#endif #if defined(FLIGHT_MODES) case MIX_FIELD_FLIGHT_MODE: lcdDrawText(MENUS_MARGIN_LEFT, y, STR_FLMODE); diff --git a/radio/src/gui/480x272/model_outputs.cpp b/radio/src/gui/480x272/model_outputs.cpp index b1b5b92d0..df1cdcc33 100644 --- a/radio/src/gui/480x272/model_outputs.cpp +++ b/radio/src/gui/480x272/model_outputs.cpp @@ -26,9 +26,7 @@ enum LimitsItems { ITEM_LIMITS_MIN, ITEM_LIMITS_MAX, ITEM_LIMITS_DIRECTION, -#if defined(CURVES) ITEM_LIMITS_CURVE, -#endif #if defined(PPM_CENTER_ADJUSTABLE) ITEM_LIMITS_PPM_CENTER, #endif @@ -197,7 +195,6 @@ bool menuModelLimits(event_t event) break; } -#if defined(CURVES) case ITEM_LIMITS_CURVE: drawCurveName(LIMITS_CURVE_POS, y, ld->curve, attr); if (attr && event==EVT_KEY_LONG(KEY_ENTER) && ld->curve>0) { @@ -208,7 +205,6 @@ bool menuModelLimits(event_t event) CHECK_INCDEC_MODELVAR(event, ld->curve, -MAX_CURVES, +MAX_CURVES); } break; -#endif #if defined(PPM_CENTER_ADJUSTABLE) case ITEM_LIMITS_PPM_CENTER: diff --git a/radio/src/mixer.cpp b/radio/src/mixer.cpp index 773c3db18..126d53710 100644 --- a/radio/src/mixer.cpp +++ b/radio/src/mixer.cpp @@ -244,7 +244,6 @@ int16_t applyLimits(uint8_t channel, int32_t value) { LimitData * lim = limitAddress(channel); -#if defined(CPUARM) && defined(CURVES) if (lim->curve) { // TODO we loose precision here, applyCustomCurve could work with int32_t on ARM boards... if (lim->curve > 0) @@ -252,7 +251,6 @@ int16_t applyLimits(uint8_t channel, int32_t value) else value = 256 * applyCustomCurve(-value/256, -lim->curve-1); } -#endif int16_t ofs = LIMIT_OFS_RESX(lim); int16_t lim_p = LIMIT_MAX_RESX(lim); diff --git a/radio/src/opentx.h b/radio/src/opentx.h index eccb0daf3..7123df398 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -166,11 +166,7 @@ #define CASE_FLIGHT_MODES(x) #endif -#if defined(CURVES) #define CASE_CURVES(x) x, -#else - #define CASE_CURVES(x) -#endif #if defined(GVARS) #define CASE_GVARS(x) x, @@ -974,10 +970,6 @@ struct point_t coord_t y; }; point_t getPoint(uint8_t i); -#if !defined(CURVES) -#define LOAD_MODEL_CURVES() -#define applyCurve(x, idx) (x) -#else typedef CurveData CurveInfo; void loadCurves(); #define LOAD_MODEL_CURVES() loadCurves() @@ -988,7 +980,6 @@ int applyCurrentCurve(int x); int8_t getCurveX(int noPoints, int point); void resetCustomCurveX(int8_t * points, int noPoints); bool moveCurve(uint8_t index, int8_t shift); // TODO bool? -#endif #define APPLY_EXPOS_EXTRA_PARAMS_INC , uint8_t ovwrIdx=0, int16_t ovwrValue=0 #define APPLY_EXPOS_EXTRA_PARAMS , uint8_t ovwrIdx, int16_t ovwrValue diff --git a/radio/src/templates.cpp b/radio/src/templates.cpp index 39578bae5..a13b3a673 100644 --- a/radio/src/templates.cpp +++ b/radio/src/templates.cpp @@ -100,7 +100,6 @@ void clearCurves() memclear(g_model.curves, sizeof(g_model.curves) + sizeof(g_model.points)); // clear all curves } -#if defined(CURVES) void setCurve(uint8_t c, const pm_int8_t ar[]) { int8_t * cv = curveAddress(c); @@ -108,7 +107,6 @@ void setCurve(uint8_t c, const pm_int8_t ar[]) cv[i] = pgm_read_byte(&ar[i]); } } -#endif void setLogicalSwitch(uint8_t idx, uint8_t func, int8_t v1, int8_t v2) { From c75d873b91575de6ea73872fa224b90baa10f034 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Thu, 5 Jul 2018 10:59:12 +0200 Subject: [PATCH 04/11] Remove CASE_CPUARM and IF_CPUARM macros --- radio/src/crc16.cpp | 2 +- radio/src/gui/128x64/menus.h | 12 ++++---- radio/src/gui/128x64/model_inputs_mixes.cpp | 12 ++++---- radio/src/gui/128x64/model_setup.cpp | 28 +++++++++---------- radio/src/gui/128x64/model_telemetry.cpp | 2 +- radio/src/gui/128x64/radio_setup.cpp | 20 ++++++------- radio/src/gui/212x64/splash.cpp | 2 +- radio/src/gui/common/colorlcd/widgets.cpp | 2 +- radio/src/gui/screenshot.cpp | 2 +- radio/src/opentx.h | 3 -- .../common/arm/stm32/usbd_storage_msd.cpp | 2 +- radio/src/targets/horus/audio_spi_driver.cpp | 2 +- radio/src/targets/horus/gps_driver.cpp | 2 +- radio/src/targets/taranis/pwr_driver.cpp | 2 +- radio/src/telemetry/spektrum.cpp | 2 +- radio/src/tests/colorlcd.cpp | 2 +- radio/src/tests/lcd_480x272.cpp | 2 +- radio/src/translations/de.h.txt | 4 +-- radio/src/translations/en.h.txt | 10 +++---- radio/src/translations/es.h.txt | 4 +-- radio/src/translations/fi.h.txt | 4 +-- radio/src/translations/fr.h.txt | 10 +++---- radio/src/translations/it.h.txt | 4 +-- radio/src/translations/nl.h.txt | 10 +++---- radio/src/translations/pl.h.txt | 10 +++---- radio/src/translations/pt.h.txt | 4 +-- radio/src/translations/se.h.txt | 4 +-- 27 files changed, 80 insertions(+), 83 deletions(-) diff --git a/radio/src/crc16.cpp b/radio/src/crc16.cpp index bd4db574e..caa3c94b9 100644 --- a/radio/src/crc16.cpp +++ b/radio/src/crc16.cpp @@ -108,4 +108,4 @@ uint8_t crc8(const uint8_t * ptr, uint32_t len) crc = crc8tab[crc ^ *ptr++]; } return crc; -} \ No newline at end of file +} diff --git a/radio/src/gui/128x64/menus.h b/radio/src/gui/128x64/menus.h index f1fd1d2b4..fec7aba64 100644 --- a/radio/src/gui/128x64/menus.h +++ b/radio/src/gui/128x64/menus.h @@ -74,12 +74,12 @@ enum MenuRadioIndexes { MENU_RADIO_SETUP, CASE_SDCARD(MENU_RADIO_SD_MANAGER) - CASE_CPUARM(MENU_RADIO_SPECIAL_FUNCTIONS) + MENU_RADIO_SPECIAL_FUNCTIONS, MENU_RADIO_TRAINER, MENU_RADIO_VERSION, MENU_RADIO_SWITCHES_TEST, MENU_RADIO_ANALOGS_TEST, - CASE_CPUARM(MENU_RADIO_HARDWARE) + MENU_RADIO_HARDWARE, MENU_RADIO_CALIBRATION, MENU_RADIO_PAGES_COUNT }; @@ -97,12 +97,12 @@ void menuRadioCalibration(event_t event); static const MenuHandlerFunc menuTabGeneral[] PROGMEM = { menuRadioSetup, CASE_SDCARD(menuRadioSdManager) - CASE_CPUARM(menuRadioSpecialFunctions) + menuRadioSpecialFunctions, menuRadioTrainer, menuRadioVersion, menuRadioDiagKeys, menuRadioDiagAnalogs, - CASE_CPUARM(menuRadioHardware) + menuRadioHardware, menuRadioCalibration }; @@ -122,7 +122,7 @@ enum MenuModelIndexes { #endif CASE_FRSKY(MENU_MODEL_TELEMETRY_FRSKY) CASE_MAVLINK(MENU_MODEL_TELEMETRY_MAVLINK) - CASE_CPUARM(MENU_MODEL_DISPLAY) + MENU_MODEL_DISPLAY, CASE_TEMPLATES(MENU_MODEL_TEMPLATES) MENU_MODEL_PAGES_COUNT }; @@ -164,7 +164,7 @@ static const MenuHandlerFunc menuTabModel[] PROGMEM = { #endif CASE_FRSKY(menuModelTelemetryFrsky) CASE_MAVLINK(menuModelTelemetryMavlink) - CASE_CPUARM(menuModelDisplay) + menuModelDisplay, CASE_TEMPLATES(menuModelTemplates) }; diff --git a/radio/src/gui/128x64/model_inputs_mixes.cpp b/radio/src/gui/128x64/model_inputs_mixes.cpp index 47175bcfe..2a9a40c55 100644 --- a/radio/src/gui/128x64/model_inputs_mixes.cpp +++ b/radio/src/gui/128x64/model_inputs_mixes.cpp @@ -217,7 +217,7 @@ bool swapExpoMix(uint8_t expo, uint8_t &idx, uint8_t up) } enum ExposFields { - CASE_CPUARM(EXPO_FIELD_NAME) + EXPO_FIELD_NAME, EXPO_FIELD_WEIGHT, EXPO_FIELD_EXPO, CASE_CURVES(EXPO_FIELD_CURVE) @@ -234,7 +234,7 @@ void menuModelExpoOne(event_t event) ExpoData * ed = expoAddress(s_currIdx); drawSource(7*FW+FW/2, 0, MIXSRC_Rud+ed->chn, 0); - SUBMENU(STR_MENUINPUTS, EXPO_FIELD_MAX, {CASE_CPUARM(0) 0, 0, CASE_CURVES(CURVE_ROWS) CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0 /*, ...*/}); + SUBMENU(STR_MENUINPUTS, EXPO_FIELD_MAX, {0, 0, 0, CASE_CURVES(CURVE_ROWS) CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0 /*, ...*/}); int8_t sub = menuVerticalPosition; @@ -313,7 +313,7 @@ void menuModelExpoOne(event_t event) } enum MixFields { - CASE_CPUARM(MIX_FIELD_NAME) + MIX_FIELD_NAME, MIX_FIELD_SOURCE, MIX_FIELD_WEIGHT, MIX_FIELD_OFFSET, @@ -384,11 +384,11 @@ void menuModelMixOne(event_t event) #if defined(ROTARY_ENCODERS) if ((menuVerticalPosition == MIX_FIELD_TRIM && md2->srcRaw > NUM_STICKS) || (menuVerticalPosition == MIX_FIELD_CURVE && md2->curveMode == MODE_CURVE)) - SUBMENU_NOTITLE(MIX_FIELD_COUNT, {CASE_CPUARM(0) 0, 0, 0, 0, CASE_CURVES(0) CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0, 0 /*, ...*/}) + SUBMENU_NOTITLE(MIX_FIELD_COUNT, {0, 0, 0, 0, 0, CASE_CURVES(0) CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0, 0 /*, ...*/}) else - SUBMENU_NOTITLE(MIX_FIELD_COUNT, {CASE_CPUARM(0) 0, 0, 0, 1, CASE_CURVES(1) CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0, 0 /*, ...*/}); + SUBMENU_NOTITLE(MIX_FIELD_COUNT, {0, 0, 0, 0, 1, CASE_CURVES(1) CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0, 0 /*, ...*/}); #else - SUBMENU_NOTITLE(MIX_FIELD_COUNT, {CASE_CPUARM(0) 0, 0, 0, 1, CASE_CURVES(1) CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0, 0 /*, ...*/}); + SUBMENU_NOTITLE(MIX_FIELD_COUNT, {0, 0, 0, 0, 1, CASE_CURVES(1) CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0, 0 /*, ...*/}); #endif int8_t sub = menuVerticalPosition; diff --git a/radio/src/gui/128x64/model_setup.cpp b/radio/src/gui/128x64/model_setup.cpp index 71233c30f..a4d8a86fc 100644 --- a/radio/src/gui/128x64/model_setup.cpp +++ b/radio/src/gui/128x64/model_setup.cpp @@ -39,29 +39,29 @@ uint8_t getSwitchWarningsCount() enum MenuModelSetupItems { ITEM_MODEL_NAME, ITEM_MODEL_TIMER1, - CASE_CPUARM(ITEM_MODEL_TIMER1_NAME) + ITEM_MODEL_TIMER1_NAME, CASE_PERSISTENT_TIMERS(ITEM_MODEL_TIMER1_PERSISTENT) ITEM_MODEL_TIMER1_MINUTE_BEEP, ITEM_MODEL_TIMER1_COUNTDOWN_BEEP, ITEM_MODEL_TIMER2, - CASE_CPUARM(ITEM_MODEL_TIMER2_NAME) + ITEM_MODEL_TIMER2_NAME, CASE_PERSISTENT_TIMERS(ITEM_MODEL_TIMER2_PERSISTENT) ITEM_MODEL_TIMER2_MINUTE_BEEP, ITEM_MODEL_TIMER2_COUNTDOWN_BEEP, - CASE_CPUARM(ITEM_MODEL_TIMER3) - CASE_CPUARM(ITEM_MODEL_TIMER3_NAME) - CASE_CPUARM(ITEM_MODEL_TIMER3_PERSISTENT) - CASE_CPUARM(ITEM_MODEL_TIMER3_MINUTE_BEEP) - CASE_CPUARM(ITEM_MODEL_TIMER3_COUNTDOWN_BEEP) + ITEM_MODEL_TIMER3, + ITEM_MODEL_TIMER3_NAME, + ITEM_MODEL_TIMER3_PERSISTENT, + ITEM_MODEL_TIMER3_MINUTE_BEEP, + ITEM_MODEL_TIMER3_COUNTDOWN_BEEP, ITEM_MODEL_EXTENDED_LIMITS, ITEM_MODEL_EXTENDED_TRIMS, - CASE_CPUARM(ITEM_MODEL_DISPLAY_TRIMS) + ITEM_MODEL_DISPLAY_TRIMS, ITEM_MODEL_TRIM_INC, ITEM_MODEL_THROTTLE_REVERSED, ITEM_MODEL_THROTTLE_TRACE, ITEM_MODEL_THROTTLE_TRIM, - CASE_CPUARM(ITEM_MODEL_PREFLIGHT_LABEL) - CASE_CPUARM(ITEM_MODEL_CHECKLIST_DISPLAY) + ITEM_MODEL_PREFLIGHT_LABEL, + ITEM_MODEL_CHECKLIST_DISPLAY, ITEM_MODEL_THROTTLE_WARNING, ITEM_MODEL_SWITCHES_WARNING, #if defined(PCBTARANIS) @@ -69,7 +69,7 @@ enum MenuModelSetupItems { ITEM_MODEL_POTS_WARNING, #endif ITEM_MODEL_BEEP_CENTER, - CASE_CPUARM(ITEM_MODEL_USE_GLOBAL_FUNCTIONS) + ITEM_MODEL_USE_GLOBAL_FUNCTIONS, #if defined(PCBTARANIS) ITEM_MODEL_INTERNAL_MODULE_LABEL, ITEM_MODEL_INTERNAL_MODULE_MODE, @@ -252,8 +252,8 @@ void menuModelSetup(event_t event) 0, // Throttle reverse 0, // Throttle trace source 0, // Throttle trim - CASE_CPUARM(LABEL(PreflightCheck)) - CASE_CPUARM(0) // Checklist + LABEL(PreflightCheck), + 0, // Checklist 0, // Throttle warning SW_WARN_ROWS, // Switch warning POT_WARN_ITEMS(), // Pot warning @@ -279,7 +279,7 @@ void menuModelSetup(event_t event) EXTRA_MODULE_ROWS TRAINER_ROWS }); #else - MENU_TAB({ HEADER_LINE_COLUMNS 0, TIMER_ROWS, TIMER_ROWS, TIMER_ROWS, 0, 1, 0, 0, 0, 0, 0, CASE_CPUARM(LABEL(PreflightCheck)) CASE_CPUARM(0) 0, NUM_SWITCHES-1, NUM_STICKS+NUM_POTS+NUM_SLIDERS+NUM_ROTARY_ENCODERS-1, 0, + MENU_TAB({ HEADER_LINE_COLUMNS 0, TIMER_ROWS, TIMER_ROWS, TIMER_ROWS, 0, 1, 0, 0, 0, 0, 0, LABEL(PreflightCheck), 0, 0, NUM_SWITCHES-1, NUM_STICKS+NUM_POTS+NUM_SLIDERS+NUM_ROTARY_ENCODERS-1, 0, LABEL(ExternalModule), EXTERNAL_MODULE_MODE_ROWS, MULTIMODULE_SUBTYPE_ROWS(EXTERNAL_MODULE) diff --git a/radio/src/gui/128x64/model_telemetry.cpp b/radio/src/gui/128x64/model_telemetry.cpp index 65b79b95b..861ce008b 100644 --- a/radio/src/gui/128x64/model_telemetry.cpp +++ b/radio/src/gui/128x64/model_telemetry.cpp @@ -21,7 +21,7 @@ #include "opentx.h" enum MenuModelTelemetryFrskyItems { - CASE_CPUARM(ITEM_TELEMETRY_PROTOCOL_TYPE) + ITEM_TELEMETRY_PROTOCOL_TYPE, #if defined(REVX) ITEM_TELEMETRY_INVERTED_SERIAL, #endif diff --git a/radio/src/gui/128x64/radio_setup.cpp b/radio/src/gui/128x64/radio_setup.cpp index 9976a5cb0..ae13627d0 100644 --- a/radio/src/gui/128x64/radio_setup.cpp +++ b/radio/src/gui/128x64/radio_setup.cpp @@ -56,11 +56,11 @@ enum MenuRadioSetupItems { CASE_AUDIO(ITEM_SETUP_BEEP_MODE) CASE_BUZZER(ITEM_SETUP_BUZZER_MODE) CASE_VOICE(ITEM_SETUP_SPEAKER_VOLUME) - CASE_CPUARM(ITEM_SETUP_BEEP_VOLUME) + ITEM_SETUP_BEEP_VOLUME, ITEM_SETUP_BEEP_LENGTH, CASE_AUDIO(ITEM_SETUP_SPEAKER_PITCH) - CASE_CPUARM(ITEM_SETUP_WAV_VOLUME) - CASE_CPUARM(ITEM_SETUP_BACKGROUND_VOLUME) + ITEM_SETUP_WAV_VOLUME, + ITEM_SETUP_BACKGROUND_VOLUME, CASE_VARIO_CPUARM(ITEM_SETUP_VARIO_LABEL) CASE_VARIO_CPUARM(ITEM_SETUP_VARIO_VOLUME) CASE_VARIO_CPUARM(ITEM_SETUP_VARIO_PITCH) @@ -78,25 +78,25 @@ enum MenuRadioSetupItems { ITEM_SETUP_INACTIVITY_ALARM, ITEM_SETUP_MEMORY_WARNING, ITEM_SETUP_ALARM_WARNING, - CASE_CPUARM(ITEM_SETUP_RSSI_POWEROFF_ALARM) + ITEM_SETUP_RSSI_POWEROFF_ALARM, IF_ROTARY_ENCODERS(ITEM_SETUP_RE_NAVIGATION) ITEM_SETUP_BACKLIGHT_LABEL, ITEM_SETUP_BACKLIGHT_MODE, ITEM_SETUP_BACKLIGHT_DELAY, - CASE_CPUARM(ITEM_SETUP_BRIGHTNESS) + ITEM_SETUP_BRIGHTNESS, CASE_PWM_BACKLIGHT(ITEM_SETUP_BACKLIGHT_BRIGHTNESS_OFF) CASE_PWM_BACKLIGHT(ITEM_SETUP_BACKLIGHT_BRIGHTNESS_ON) ITEM_SETUP_FLASH_BEEP, CASE_SPLASH_PARAM(ITEM_SETUP_DISABLE_SPLASH) CASE_GPS(ITEM_SETUP_TIMEZONE) - CASE_CPUARM(ITEM_SETUP_ADJUST_RTC) + ITEM_SETUP_ADJUST_RTC, CASE_GPS(ITEM_SETUP_GPSFORMAT) CASE_PXX(ITEM_SETUP_COUNTRYCODE) - CASE_CPUARM(ITEM_SETUP_LANGUAGE) - CASE_CPUARM(ITEM_SETUP_IMPERIAL) + ITEM_SETUP_LANGUAGE, + ITEM_SETUP_IMPERIAL, IF_FAI_CHOICE(ITEM_SETUP_FAI) CASE_MAVLINK(ITEM_MAVLINK_BAUD) - CASE_CPUARM(ITEM_SETUP_SWITCHES_DELAY) + ITEM_SETUP_SWITCHES_DELAY, CASE_STM32(ITEM_SETUP_USB_MODE) ITEM_SETUP_RX_CHANNEL_ORD, ITEM_SETUP_STICK_MODE_LABELS, @@ -132,7 +132,7 @@ void menuRadioSetup(event_t event) } #endif - MENU(STR_MENURADIOSETUP, menuTabGeneral, MENU_RADIO_SETUP, HEADER_LINE+ITEM_SETUP_MAX, { HEADER_LINE_COLUMNS CASE_RTCLOCK(2) CASE_RTCLOCK(2) CASE_BATTGRAPH(1) LABEL(SOUND), CASE_AUDIO(0) CASE_BUZZER(0) CASE_VOICE(0) CASE_CPUARM(0) CASE_CPUARM(0) CASE_CPUARM(0) 0, CASE_AUDIO(0) CASE_VARIO_CPUARM(LABEL(VARIO)) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_HAPTIC(LABEL(HAPTIC)) CASE_HAPTIC(0) CASE_HAPTIC(0) CASE_HAPTIC(0) 0, LABEL(ALARMS), 0, CASE_CAPACITY(0) CASE_PCBSKY9X(0) 0, 0, 0, CASE_CPUARM(0) IF_ROTARY_ENCODERS(0) LABEL(BACKLIGHT), 0, 0, CASE_CPUARM(0) CASE_PWM_BACKLIGHT(0) CASE_PWM_BACKLIGHT(0) 0, CASE_SPLASH_PARAM(0) CASE_GPS(0) CASE_CPUARM(0) CASE_GPS(0) CASE_PXX(0) CASE_CPUARM(0) CASE_CPUARM(0) IF_FAI_CHOICE(0) CASE_MAVLINK(0) CASE_CPUARM(0) CASE_STM32(0) 0, COL_TX_MODE, 0, 1/*to force edit mode*/}); + MENU(STR_MENURADIOSETUP, menuTabGeneral, MENU_RADIO_SETUP, HEADER_LINE+ITEM_SETUP_MAX, { HEADER_LINE_COLUMNS CASE_RTCLOCK(2) CASE_RTCLOCK(2) CASE_BATTGRAPH(1) LABEL(SOUND), CASE_AUDIO(0) CASE_BUZZER(0) CASE_VOICE(0) 0, 0, 0, 0, CASE_AUDIO(0) CASE_VARIO_CPUARM(LABEL(VARIO)) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_HAPTIC(LABEL(HAPTIC)) CASE_HAPTIC(0) CASE_HAPTIC(0) CASE_HAPTIC(0) 0, LABEL(ALARMS), 0, CASE_CAPACITY(0) CASE_PCBSKY9X(0) 0, 0, 0, 0, IF_ROTARY_ENCODERS(0) LABEL(BACKLIGHT), 0, 0, 0, CASE_PWM_BACKLIGHT(0) CASE_PWM_BACKLIGHT(0) 0, CASE_SPLASH_PARAM(0) CASE_GPS(0) 0, CASE_GPS(0) CASE_PXX(0) 0, 0, IF_FAI_CHOICE(0) CASE_MAVLINK(0) 0, CASE_STM32(0) 0, COL_TX_MODE, 0, 1/*to force edit mode*/}); if (event == EVT_ENTRY) { reusableBuffer.generalSettings.stickMode = g_eeGeneral.stickMode; diff --git a/radio/src/gui/212x64/splash.cpp b/radio/src/gui/212x64/splash.cpp index 61889ad7e..94f81b530 100644 --- a/radio/src/gui/212x64/splash.cpp +++ b/radio/src/gui/212x64/splash.cpp @@ -56,4 +56,4 @@ void drawSecondSplash() lcdDrawBitmap(0, 0, splash2_lbm); lcdRefresh(); } -#endif \ No newline at end of file +#endif diff --git a/radio/src/gui/common/colorlcd/widgets.cpp b/radio/src/gui/common/colorlcd/widgets.cpp index e90f66b9e..97446d88c 100644 --- a/radio/src/gui/common/colorlcd/widgets.cpp +++ b/radio/src/gui/common/colorlcd/widgets.cpp @@ -92,4 +92,4 @@ void runFatalErrorScreen(const char * message) SIMU_SLEEP_NORET(1); } } -} \ No newline at end of file +} diff --git a/radio/src/gui/screenshot.cpp b/radio/src/gui/screenshot.cpp index 004563869..ae4dfe3c1 100644 --- a/radio/src/gui/screenshot.cpp +++ b/radio/src/gui/screenshot.cpp @@ -73,4 +73,4 @@ const char * writeScreenshot() f_close(&bmpFile); return NULL; -} \ No newline at end of file +} diff --git a/radio/src/opentx.h b/radio/src/opentx.h index 7123df398..b325b77da 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -45,9 +45,6 @@ #define CASE_PCBSKY9X(x) #endif - #define CASE_CPUARM(x) x, - #define IF_CPUARM(x) x - #if defined(STM32) #define CASE_STM32(x) x, #else diff --git a/radio/src/targets/common/arm/stm32/usbd_storage_msd.cpp b/radio/src/targets/common/arm/stm32/usbd_storage_msd.cpp index 074e990b8..b60e5da8f 100644 --- a/radio/src/targets/common/arm/stm32/usbd_storage_msd.cpp +++ b/radio/src/targets/common/arm/stm32/usbd_storage_msd.cpp @@ -612,4 +612,4 @@ int32_t fat12Write(const uint8_t * buffer, uint16_t sector, uint16_t count) } #endif return 0 ; -} \ No newline at end of file +} diff --git a/radio/src/targets/horus/audio_spi_driver.cpp b/radio/src/targets/horus/audio_spi_driver.cpp index 807f957cc..430090bb8 100644 --- a/radio/src/targets/horus/audio_spi_driver.cpp +++ b/radio/src/targets/horus/audio_spi_driver.cpp @@ -449,4 +449,4 @@ int32_t getVolume() return -1; // TODO } -#endif \ No newline at end of file +#endif diff --git a/radio/src/targets/horus/gps_driver.cpp b/radio/src/targets/horus/gps_driver.cpp index 37c6fa046..7a5e464c4 100644 --- a/radio/src/targets/horus/gps_driver.cpp +++ b/radio/src/targets/horus/gps_driver.cpp @@ -107,4 +107,4 @@ uint8_t gpsGetByte(uint8_t * byte) } #endif return result; -} \ No newline at end of file +} diff --git a/radio/src/targets/taranis/pwr_driver.cpp b/radio/src/targets/taranis/pwr_driver.cpp index 0bb6e28f4..d754d3473 100644 --- a/radio/src/targets/taranis/pwr_driver.cpp +++ b/radio/src/targets/taranis/pwr_driver.cpp @@ -117,4 +117,4 @@ void pwrResetHandler() if (WAS_RESET_BY_WATCHDOG_OR_SOFTWARE()) { pwrOn(); } -} \ No newline at end of file +} diff --git a/radio/src/telemetry/spektrum.cpp b/radio/src/telemetry/spektrum.cpp index a336c300a..dd3d9246f 100644 --- a/radio/src/telemetry/spektrum.cpp +++ b/radio/src/telemetry/spektrum.cpp @@ -489,4 +489,4 @@ void spektrumSetDefault(int index, uint16_t id, uint8_t subId, uint8_t instance) } storageDirty(EE_MODEL); -} \ No newline at end of file +} diff --git a/radio/src/tests/colorlcd.cpp b/radio/src/tests/colorlcd.cpp index 59d83c9e1..53643145a 100644 --- a/radio/src/tests/colorlcd.cpp +++ b/radio/src/tests/colorlcd.cpp @@ -51,4 +51,4 @@ TEST(color, ARGB) EXPECT_EQ(ARGB(128, 30, 40, 150), (uint16_t)0x8129); } -#endif \ No newline at end of file +#endif diff --git a/radio/src/tests/lcd_480x272.cpp b/radio/src/tests/lcd_480x272.cpp index 1cd8c2666..45352813c 100644 --- a/radio/src/tests/lcd_480x272.cpp +++ b/radio/src/tests/lcd_480x272.cpp @@ -171,4 +171,4 @@ TEST(Lcd_480x272, fonts) } -#endif \ No newline at end of file +#endif diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index a68ca2706..032538668 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -658,8 +658,8 @@ #define TR_SPLASHSCREEN TR("Startbild Ein", "Startbild Anzeigedauer") #define TR_THROTTLEWARNING TR("Gasalarm", INDENT "Gas Alarm") #define TR_SWITCHWARNING TR("Sch. Alarm", INDENT "Schalter-Alarm") -#define TR_POTWARNINGSTATE TR(IF_CPUARM(INDENT) "Pot&Slid.", INDENT "Pots & sliders") -#define TR_SLIDERWARNING TR(IF_CPUARM(INDENT) "Slid. pos.", INDENT "Slider positions") +#define TR_POTWARNINGSTATE TR(INDENT "Pot&Slid.", INDENT "Pots & sliders") +#define TR_SLIDERWARNING TR(INDENT "Slid. pos.", INDENT "Slider positions") #define TR_POTWARNING TR("Pot Warn.", INDENT "Poti-Warnung") #define TR_TIMEZONE TR("Zeitzone", "GPS-Zeitzone +/-Std") #define TR_ADJUST_RTC TR("Uhrzeit setzen", INDENT "Uhrzeit per GPS setzen") diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index 83b23a155..32bc52c17 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -655,11 +655,11 @@ #define TR_BLOFFBRIGHTNESS INDENT "OFF brightness" #define TR_BLCOLOR INDENT "Color" #define TR_SPLASHSCREEN "Splash screen" -#define TR_THROTTLEWARNING TR(IF_CPUARM(INDENT) "T-Warning", INDENT "Throttle state") -#define TR_SWITCHWARNING TR(IF_CPUARM(INDENT) "S-Warning", INDENT "Switch positions") -#define TR_POTWARNINGSTATE TR(IF_CPUARM(INDENT) "Pot&Slid.", INDENT "Pots & sliders") -#define TR_SLIDERWARNING TR(IF_CPUARM(INDENT) "Slid. pos.", INDENT "Slider positions") -#define TR_POTWARNING TR(IF_CPUARM(INDENT) "Pot warn.", INDENT "Pot positions") +#define TR_THROTTLEWARNING TR(INDENT "T-Warning", INDENT "Throttle state") +#define TR_SWITCHWARNING TR(INDENT "S-Warning", INDENT "Switch positions") +#define TR_POTWARNINGSTATE TR(INDENT "Pot&Slid.", INDENT "Pots & sliders") +#define TR_SLIDERWARNING TR(INDENT "Slid. pos.", INDENT "Slider positions") +#define TR_POTWARNING TR(INDENT "Pot warn.", INDENT "Pot positions") #define TR_TIMEZONE TR("Time Zone", INDENT "Time zone") #define TR_ADJUST_RTC TR("Adjust RTC", INDENT "Adjust RTC") #define TR_GPS "GPS" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index e117eb24a..d8bfdd864 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -657,8 +657,8 @@ #define TR_SPLASHSCREEN "Ptalla.inicio" #define TR_THROTTLEWARNING TR("Aviso-A", INDENT "Aviso Acelerador") #define TR_SWITCHWARNING TR("Aviso-I", INDENT "Aviso Intrptor") -#define TR_POTWARNINGSTATE TR(IF_CPUARM(INDENT) "Pot&Slid.", INDENT "Pots & sliders") -#define TR_SLIDERWARNING TR(IF_CPUARM(INDENT) "Slid. pos.", INDENT "Slider positions") +#define TR_POTWARNINGSTATE TR(INDENT "Pot&Slid.", INDENT "Pots & sliders") +#define TR_SLIDERWARNING TR(INDENT "Slid. pos.", INDENT "Slider positions") #define TR_POTWARNING TR("Pot Warn.", INDENT "Pot Warning") #define TR_TIMEZONE TR("Zona Hora", "GPS Zona Hora") #define TR_ADJUST_RTC TR("Adjust RTC", INDENT "Adjust RTC") diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index 57692afeb..dfb1a1dd8 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -649,8 +649,8 @@ #define TR_SPLASHSCREEN "Splash screen" #define TR_THROTTLEWARNING TR("T-Warning", INDENT "Throttle Warning") #define TR_SWITCHWARNING TR("S-Warning", INDENT "Switch Warning") -#define TR_POTWARNINGSTATE TR(IF_CPUARM(INDENT) "Pot&Slid.", INDENT "Pots & sliders") -#define TR_SLIDERWARNING TR(IF_CPUARM(INDENT) "Slid. pos.", INDENT "Slider positions") +#define TR_POTWARNINGSTATE TR(INDENT "Pot&Slid.", INDENT "Pots & sliders") +#define TR_SLIDERWARNING TR(INDENT "Slid. pos.", INDENT "Slider positions") #define TR_POTWARNING TR("Pot Warn.", INDENT "Pot Warning") #define TR_TIMEZONE TR("Time Zone","GPS Time zone") #define TR_ADJUST_RTC TR("Adjust RTC", INDENT "Adjust RTC") diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index c6ca483a2..3a2f210ee 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -664,11 +664,11 @@ #define TR_BLOFFBRIGHTNESS INDENT "Luminosité OFF" #define TR_BLCOLOR INDENT "Couleur" #define TR_SPLASHSCREEN "Logo d'accueil" -#define TR_THROTTLEWARNING TR(IF_CPUARM(INDENT) "Alerte gaz", INDENT "Alerte gaz") -#define TR_SWITCHWARNING TR(IF_CPUARM(INDENT) "Alerte int", INDENT "Pos. interrupteurs") -#define TR_POTWARNINGSTATE TR(IF_CPUARM(INDENT) "Pot&Slid.", INDENT "Pots & sliders") -#define TR_SLIDERWARNING TR(IF_CPUARM(INDENT) "Slid. pos.", INDENT "Slider positions") -#define TR_POTWARNING TR(IF_CPUARM(INDENT) "Alerte pot", INDENT "Pos. potentios") +#define TR_THROTTLEWARNING TR(INDENT "Alerte gaz", INDENT "Alerte gaz") +#define TR_SWITCHWARNING TR(INDENT "Alerte int", INDENT "Pos. interrupteurs") +#define TR_POTWARNINGSTATE TR(INDENT "Pot&Slid.", INDENT "Pots & sliders") +#define TR_SLIDERWARNING TR(INDENT "Slid. pos.", INDENT "Slider positions") +#define TR_POTWARNING TR(INDENT "Alerte pot", INDENT "Pos. potentios") #define TR_TIMEZONE "Fuseau horaire" #define TR_ADJUST_RTC TR("Ajust. RTC", INDENT "Ajust. heure auto") #define TR_GPS "GPS" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 561720446..cd29d9e46 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -655,8 +655,8 @@ #define TR_SPLASHSCREEN TR("Schermo avvio", "Schermata di avvio") #define TR_THROTTLEWARNING TR("All. Mot.", INDENT "Allarme Motore") #define TR_SWITCHWARNING TR("Avv. Int.", INDENT "Avviso Interr.") -#define TR_POTWARNINGSTATE TR(IF_CPUARM(INDENT) "Pot&Slid.", INDENT "Pots & sliders") -#define TR_SLIDERWARNING TR(IF_CPUARM(INDENT) "Slid. pos.", INDENT "Slider positions") +#define TR_POTWARNINGSTATE TR(INDENT "Pot&Slid.", INDENT "Pots & sliders") +#define TR_SLIDERWARNING TR(INDENT "Slid. pos.", INDENT "Slider positions") #define TR_POTWARNING TR("Avv. Pot.", INDENT "Avviso Pot.") #define TR_TIMEZONE "Ora locale" #define TR_ADJUST_RTC TR("Aggiusta RTC", INDENT "Aggiusta RTC") diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index e6ba578fd..624d38564 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -652,11 +652,11 @@ #define TR_BLOFFBRIGHTNESS INDENT "Uit-Helderheid" #define TR_BLCOLOR INDENT "Kleur" #define TR_SPLASHSCREEN "Startscherm Aan" -#define TR_THROTTLEWARNING TR(IF_CPUARM(INDENT) "T-Warning", INDENT "Throttle Status") -#define TR_SWITCHWARNING TR(IF_CPUARM(INDENT) "S-Warning", INDENT "Switch Posities") -#define TR_POTWARNINGSTATE TR(IF_CPUARM(INDENT) "Pot&Slid.", INDENT "Pots & sliders") -#define TR_SLIDERWARNING TR(IF_CPUARM(INDENT) "Slid. pos.", INDENT "Slider positions") -#define TR_POTWARNING TR(IF_CPUARM(INDENT) "Pot Warn.", INDENT "Pot Posities") +#define TR_THROTTLEWARNING TR(INDENT "T-Warning", INDENT "Throttle Status") +#define TR_SWITCHWARNING TR(INDENT "S-Warning", INDENT "Switch Posities") +#define TR_POTWARNINGSTATE TR(INDENT "Pot&Slid.", INDENT "Pots & sliders") +#define TR_SLIDERWARNING TR(INDENT "Slid. pos.", INDENT "Slider positions") +#define TR_POTWARNING TR(INDENT "Pot Warn.", INDENT "Pot Posities") #define TR_TIMEZONE TR("Tijdzone", "GPS-Tijdzone +/-Std") #define TR_ADJUST_RTC TR("Klok instellen", INDENT "Klok middels GPS instellen") #define TR_GPS "GPS" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 6a7de9cdb..dffda9b94 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -655,11 +655,11 @@ #define TR_BLOFFBRIGHTNESS INDENT"Jasność wył." #define TR_BLCOLOR INDENT "Color" #define TR_SPLASHSCREEN "Logo ekranu" -#define TR_THROTTLEWARNING TR(IF_CPUARM(INDENT)"OstrzGaz", INDENT "OstrzeżenieGaz") -#define TR_SWITCHWARNING TR(IF_CPUARM(INDENT) "OstrzPrzeł", INDENT "PozycjaPrzeł") -#define TR_POTWARNINGSTATE TR(IF_CPUARM(INDENT) "Pot&Slid.", INDENT "Pots & sliders") -#define TR_SLIDERWARNING TR(IF_CPUARM(INDENT) "Slid. pos.", INDENT "Slider positions") -#define TR_POTWARNING TR(IF_CPUARM(INDENT) "Ostrz.Poten.", INDENT "PozycjaPotencj.") +#define TR_THROTTLEWARNING TR(INDENT"OstrzGaz", INDENT "OstrzeżenieGaz") +#define TR_SWITCHWARNING TR(INDENT "OstrzPrzeł", INDENT "PozycjaPrzeł") +#define TR_POTWARNINGSTATE TR(INDENT "Pot&Slid.", INDENT "Pots & sliders") +#define TR_SLIDERWARNING TR(INDENT "Slid. pos.", INDENT "Slider positions") +#define TR_POTWARNING TR(INDENT "Ostrz.Poten.", INDENT "PozycjaPotencj.") #define TR_TIMEZONE TR("Strefa czasowa" ,"Strefa czasowa GPS") #define TR_ADJUST_RTC TR("RegulujRTC", INDENT "RegulujRTC") #define TR_GPS "GPS" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index dd7fba563..91a5b565b 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -656,8 +656,8 @@ #define TR_SPLASHSCREEN "Splash screen" #define TR_THROTTLEWARNING TR("Avisa Acel", INDENT "Avisa Acel") #define TR_SWITCHWARNING TR("Avisa Chav", INDENT "Avisa Chav") -#define TR_POTWARNINGSTATE TR(IF_CPUARM(INDENT) "Pot&Slid.", INDENT "Pots & sliders") -#define TR_SLIDERWARNING TR(IF_CPUARM(INDENT) "Slid. pos.", INDENT "Slider positions") +#define TR_POTWARNINGSTATE TR(INDENT "Pot&Slid.", INDENT "Pots & sliders") +#define TR_SLIDERWARNING TR(INDENT "Slid. pos.", INDENT "Slider positions") #define TR_POTWARNING TR("Pot Warn.", INDENT "Pot Warning") #define TR_TIMEZONE "Time Zone" #define TR_ADJUST_RTC TR("Adjust RTC", INDENT "Adjust RTC") diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index bc199bdbb..24ca10984 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -666,8 +666,8 @@ #define TR_BLCOLOR INDENT "Color" #define TR_THROTTLEWARNING TR("Gasvarning", INDENT "Gasvarning") #define TR_SWITCHWARNING TR("Bryt.varn.", INDENT "Brytarvarning") -#define TR_POTWARNINGSTATE TR(IF_CPUARM(INDENT) "Pot&Slid.", INDENT "Pots & sliders") -#define TR_SLIDERWARNING TR(IF_CPUARM(INDENT) "Slid. pos.", INDENT "Slider positions") +#define TR_POTWARNINGSTATE TR(INDENT "Pot&Slid.", INDENT "Pots & sliders") +#define TR_SLIDERWARNING TR(INDENT "Slid. pos.", INDENT "Slider positions") #define TR_POTWARNING TR("Rattvarn.", INDENT "Rattvarning") #define TR_TIMEZONE TR("Tidszon", "GPS Tidszon") #define TR_ADJUST_RTC TR("Adjust RTC", INDENT "Adjust RTC") From 8530cce10aba75da11fbc5221b4175e89c2b46c2 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Thu, 5 Jul 2018 11:04:39 +0200 Subject: [PATCH 05/11] Remove CASE_PERSISTENT_TIMERS --- radio/src/gui/128x64/model_setup.cpp | 6 +++--- radio/src/opentx.h | 2 -- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/radio/src/gui/128x64/model_setup.cpp b/radio/src/gui/128x64/model_setup.cpp index a4d8a86fc..6c414dbde 100644 --- a/radio/src/gui/128x64/model_setup.cpp +++ b/radio/src/gui/128x64/model_setup.cpp @@ -40,12 +40,12 @@ enum MenuModelSetupItems { ITEM_MODEL_NAME, ITEM_MODEL_TIMER1, ITEM_MODEL_TIMER1_NAME, - CASE_PERSISTENT_TIMERS(ITEM_MODEL_TIMER1_PERSISTENT) + ITEM_MODEL_TIMER1_PERSISTENT, ITEM_MODEL_TIMER1_MINUTE_BEEP, ITEM_MODEL_TIMER1_COUNTDOWN_BEEP, ITEM_MODEL_TIMER2, ITEM_MODEL_TIMER2_NAME, - CASE_PERSISTENT_TIMERS(ITEM_MODEL_TIMER2_PERSISTENT) + ITEM_MODEL_TIMER2_PERSISTENT, ITEM_MODEL_TIMER2_MINUTE_BEEP, ITEM_MODEL_TIMER2_COUNTDOWN_BEEP, ITEM_MODEL_TIMER3, @@ -166,7 +166,7 @@ enum MenuModelSetupItems { #define CURSOR_ON_CELL (true) #define MODEL_SETUP_MAX_LINES (HEADER_LINE+ITEM_MODEL_SETUP_MAX) #define POT_WARN_ITEMS() ((g_model.potsWarnMode) ? (uint8_t)(NUM_POTS+NUM_SLIDERS) : (uint8_t)0) - #define TIMER_ROWS 2, 0, CASE_PERSISTENT_TIMERS(0) 0, 0 + #define TIMER_ROWS 2, 0, 0, 0, 0 #if defined(PCBSKY9X) && !defined(REVA) #define EXTRA_MODULE_ROWS LABEL(ExtraModule), 1, 2, #else diff --git a/radio/src/opentx.h b/radio/src/opentx.h index b325b77da..b05ed0475 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -63,8 +63,6 @@ #define CASE_LUA(x) #endif - #define CASE_PERSISTENT_TIMERS(x) x, - #if defined(RTCLOCK) #define CASE_RTCLOCK(x) x, #else From fdedcf4de0177c74117916bdbd2d7cb4f17644b6 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Thu, 5 Jul 2018 11:09:28 +0200 Subject: [PATCH 06/11] Remove CASE_CURVES --- radio/src/gui/128x64/menus.h | 4 ++-- radio/src/gui/128x64/model_input_edit.cpp | 6 +++--- radio/src/gui/128x64/model_inputs_mixes.cpp | 12 ++++++------ radio/src/gui/128x64/model_mix_edit.cpp | 4 ++-- radio/src/gui/212x64/menu_model.cpp | 2 +- radio/src/gui/212x64/menus.h | 2 +- radio/src/gui/212x64/model_input_edit.cpp | 4 ++-- radio/src/gui/212x64/model_mix_edit.cpp | 4 ++-- radio/src/gui/480x272/menu_model.cpp | 2 +- radio/src/gui/480x272/menus.h | 4 ++-- radio/src/gui/480x272/model_inputs.cpp | 4 ++-- radio/src/gui/480x272/model_mixes.cpp | 4 ++-- radio/src/opentx.h | 2 -- 13 files changed, 26 insertions(+), 28 deletions(-) diff --git a/radio/src/gui/128x64/menus.h b/radio/src/gui/128x64/menus.h index fec7aba64..18459bb5e 100644 --- a/radio/src/gui/128x64/menus.h +++ b/radio/src/gui/128x64/menus.h @@ -114,7 +114,7 @@ enum MenuModelIndexes { MENU_MODEL_INPUTS, MENU_MODEL_MIXES, MENU_MODEL_OUTPUTS, - CASE_CURVES(MENU_MODEL_CURVES) + MENU_MODEL_CURVES, MENU_MODEL_LOGICAL_SWITCHES, MENU_MODEL_SPECIAL_FUNCTIONS, #if defined(LUA_MODEL_SCRIPTS) @@ -156,7 +156,7 @@ static const MenuHandlerFunc menuTabModel[] PROGMEM = { menuModelExposAll, menuModelMixAll, menuModelLimits, - CASE_CURVES(menuModelCurvesAll) + menuModelCurvesAll, menuModelLogicalSwitches, menuModelSpecialFunctions, #if defined(LUA_MODEL_SCRIPTS) diff --git a/radio/src/gui/128x64/model_input_edit.cpp b/radio/src/gui/128x64/model_input_edit.cpp index 306192d7b..55afda574 100644 --- a/radio/src/gui/128x64/model_input_edit.cpp +++ b/radio/src/gui/128x64/model_input_edit.cpp @@ -60,8 +60,8 @@ enum ExposFields { EXPO_FIELD_SCALE, EXPO_FIELD_WEIGHT, EXPO_FIELD_OFFSET, - CASE_CURVES(EXPO_FIELD_CURVE_LABEL) - CASE_CURVES(EXPO_FIELD_CURVE) + EXPO_FIELD_CURVE_LABEL, + EXPO_FIELD_CURVE, CASE_FLIGHT_MODES(EXPO_FIELD_FLIGHT_MODES_LABEL) CASE_FLIGHT_MODES(EXPO_FIELD_FLIGHT_MODES) EXPO_FIELD_SWITCH, @@ -75,7 +75,7 @@ void menuModelExpoOne(event_t event) ExpoData * ed = expoAddress(s_currIdx); drawSource(PSIZE(TR_MENUINPUTS)*FW+FW, 0, MIXSRC_FIRST_INPUT+ed->chn, 0); - SUBMENU(STR_MENUINPUTS, EXPO_FIELD_MAX, {0, 0, 0, ed->srcRaw >= MIXSRC_FIRST_TELEM ? (uint8_t)0 : (uint8_t)HIDDEN_ROW, 0, 0, CASE_CURVES(LABEL(Curve)) CASE_CURVES(1) CASE_FLIGHT_MODES(LABEL(Flight Mode)) CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0 /*, ...*/}); + SUBMENU(STR_MENUINPUTS, EXPO_FIELD_MAX, {0, 0, 0, ed->srcRaw >= MIXSRC_FIRST_TELEM ? (uint8_t)0 : (uint8_t)HIDDEN_ROW, 0, 0, LABEL(Curve), 1, CASE_FLIGHT_MODES(LABEL(Flight Mode)) CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0 /*, ...*/}); int8_t sub = menuVerticalPosition; diff --git a/radio/src/gui/128x64/model_inputs_mixes.cpp b/radio/src/gui/128x64/model_inputs_mixes.cpp index 2a9a40c55..0478723a2 100644 --- a/radio/src/gui/128x64/model_inputs_mixes.cpp +++ b/radio/src/gui/128x64/model_inputs_mixes.cpp @@ -220,7 +220,7 @@ enum ExposFields { EXPO_FIELD_NAME, EXPO_FIELD_WEIGHT, EXPO_FIELD_EXPO, - CASE_CURVES(EXPO_FIELD_CURVE) + EXPO_FIELD_CURVE, CASE_FLIGHT_MODES(EXPO_FIELD_FLIGHT_MODES) EXPO_FIELD_SWITCH, EXPO_FIELD_SIDE, @@ -234,7 +234,7 @@ void menuModelExpoOne(event_t event) ExpoData * ed = expoAddress(s_currIdx); drawSource(7*FW+FW/2, 0, MIXSRC_Rud+ed->chn, 0); - SUBMENU(STR_MENUINPUTS, EXPO_FIELD_MAX, {0, 0, 0, CASE_CURVES(CURVE_ROWS) CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0 /*, ...*/}); + SUBMENU(STR_MENUINPUTS, EXPO_FIELD_MAX, {0, 0, 0, CURVE_ROWS, CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0 /*, ...*/}); int8_t sub = menuVerticalPosition; @@ -318,7 +318,7 @@ enum MixFields { MIX_FIELD_WEIGHT, MIX_FIELD_OFFSET, MIX_FIELD_TRIM, - CASE_CURVES(MIX_FIELD_CURVE) + MIX_FIELD_CURVE, CASE_FLIGHT_MODES(MIX_FIELD_FLIGHT_PHASE) MIX_FIELD_SWITCH, MIX_FIELD_WARNING, @@ -384,11 +384,11 @@ void menuModelMixOne(event_t event) #if defined(ROTARY_ENCODERS) if ((menuVerticalPosition == MIX_FIELD_TRIM && md2->srcRaw > NUM_STICKS) || (menuVerticalPosition == MIX_FIELD_CURVE && md2->curveMode == MODE_CURVE)) - SUBMENU_NOTITLE(MIX_FIELD_COUNT, {0, 0, 0, 0, 0, CASE_CURVES(0) CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0, 0 /*, ...*/}) + SUBMENU_NOTITLE(MIX_FIELD_COUNT, {0, 0, 0, 0, 0, 0, CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0, 0 /*, ...*/}) else - SUBMENU_NOTITLE(MIX_FIELD_COUNT, {0, 0, 0, 0, 1, CASE_CURVES(1) CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0, 0 /*, ...*/}); + SUBMENU_NOTITLE(MIX_FIELD_COUNT, {0, 0, 0, 0, 1, 1, CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0, 0 /*, ...*/}); #else - SUBMENU_NOTITLE(MIX_FIELD_COUNT, {0, 0, 0, 0, 1, CASE_CURVES(1) CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0, 0 /*, ...*/}); + SUBMENU_NOTITLE(MIX_FIELD_COUNT, {0, 0, 0, 0, 1, 1, CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0, 0 /*, ...*/}); #endif int8_t sub = menuVerticalPosition; diff --git a/radio/src/gui/128x64/model_mix_edit.cpp b/radio/src/gui/128x64/model_mix_edit.cpp index 8b27e5971..7f4aeee03 100644 --- a/radio/src/gui/128x64/model_mix_edit.cpp +++ b/radio/src/gui/128x64/model_mix_edit.cpp @@ -26,7 +26,7 @@ enum MixFields { MIX_FIELD_WEIGHT, MIX_FIELD_OFFSET, MIX_FIELD_TRIM, - CASE_CURVES(MIX_FIELD_CURVE) + MIX_FIELD_CURVE, CASE_FLIGHT_MODES(MIX_FIELD_FLIGHT_MODE) MIX_FIELD_SWITCH, MIX_FIELD_WARNING, @@ -88,7 +88,7 @@ void menuModelMixOne(event_t event) MixData * md2 = mixAddress(s_currIdx) ; putsChn(PSIZE(TR_MIXER)*FW+FW, 0, md2->destCh+1,0); - SUBMENU(STR_MIXER, MIX_FIELD_COUNT, {0, 0, 0, 0, 0, CASE_CURVES(1) CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0, 0 /*, ...*/}); + SUBMENU(STR_MIXER, MIX_FIELD_COUNT, {0, 0, 0, 0, 0, 1, CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0, 0 /*, ...*/}); int8_t sub = menuVerticalPosition; int8_t editMode = s_editMode; diff --git a/radio/src/gui/212x64/menu_model.cpp b/radio/src/gui/212x64/menu_model.cpp index a7810b131..7e8bdd228 100644 --- a/radio/src/gui/212x64/menu_model.cpp +++ b/radio/src/gui/212x64/menu_model.cpp @@ -28,7 +28,7 @@ const MenuHandlerFunc menuTabModel[] = { menuModelExposAll, menuModelMixAll, menuModelLimits, - CASE_CURVES(menuModelCurvesAll) + menuModelCurvesAll, #if defined(GVARS) && defined(FLIGHT_MODES) CASE_GVARS(menuModelGVars) #endif diff --git a/radio/src/gui/212x64/menus.h b/radio/src/gui/212x64/menus.h index 62c8e68f6..9a1d214b3 100644 --- a/radio/src/gui/212x64/menus.h +++ b/radio/src/gui/212x64/menus.h @@ -93,7 +93,7 @@ enum MenuModelIndexes { MENU_MODEL_INPUTS, MENU_MODEL_MIXES, MENU_MODEL_OUTPUTS, - CASE_CURVES(MENU_MODEL_CURVES) + MENU_MODEL_CURVES, CASE_GVARS(MENU_MODEL_GVARS) MENU_MODEL_LOGICAL_SWITCHES, MENU_MODEL_SPECIAL_FUNCTIONS, diff --git a/radio/src/gui/212x64/model_input_edit.cpp b/radio/src/gui/212x64/model_input_edit.cpp index b1b4cac55..389cfedaf 100644 --- a/radio/src/gui/212x64/model_input_edit.cpp +++ b/radio/src/gui/212x64/model_input_edit.cpp @@ -59,7 +59,7 @@ enum ExposFields { EXPO_FIELD_SCALE, EXPO_FIELD_WEIGHT, EXPO_FIELD_OFFSET, - CASE_CURVES(EXPO_FIELD_CURVE) + EXPO_FIELD_CURVE, CASE_FLIGHT_MODES(EXPO_FIELD_FLIGHT_MODES) EXPO_FIELD_SWITCH, EXPO_FIELD_SIDE, @@ -80,7 +80,7 @@ void menuModelExpoOne(event_t event) drawSource(PSIZE(TR_MENUINPUTS)*FW+FW, 0, MIXSRC_FIRST_INPUT+ed->chn, 0); lcdDrawFilledRect(0, 0, LCD_W, FH, SOLID, FILL_WHITE|GREY_DEFAULT); - SUBMENU(STR_MENUINPUTS, EXPO_FIELD_MAX, {0, 0, 0, ed->srcRaw >= MIXSRC_FIRST_TELEM ? (uint8_t)0 : (uint8_t)HIDDEN_ROW, 0, 0, CASE_CURVES(CURVE_ROWS) CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0 /*, ...*/}); + SUBMENU(STR_MENUINPUTS, EXPO_FIELD_MAX, {0, 0, 0, ed->srcRaw >= MIXSRC_FIRST_TELEM ? (uint8_t)0 : (uint8_t)HIDDEN_ROW, 0, 0, CURVE_ROWS, CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0 /*, ...*/}); SET_SCROLLBAR_X(EXPO_ONE_2ND_COLUMN+10*FW); diff --git a/radio/src/gui/212x64/model_mix_edit.cpp b/radio/src/gui/212x64/model_mix_edit.cpp index 8c6430ced..cd54823e7 100644 --- a/radio/src/gui/212x64/model_mix_edit.cpp +++ b/radio/src/gui/212x64/model_mix_edit.cpp @@ -26,7 +26,7 @@ enum MixFields { MIX_FIELD_WEIGHT, MIX_FIELD_OFFSET, MIX_FIELD_TRIM, - CASE_CURVES(MIX_FIELD_CURVE) + MIX_FIELD_CURVE, CASE_FLIGHT_MODES(MIX_FIELD_FLIGHT_MODE) MIX_FIELD_SWITCH, MIX_FIELD_WARNING, @@ -94,7 +94,7 @@ void menuModelMixOne(event_t event) putsChn(PSIZE(TR_MIXER)*FW+FW, 0, md2->destCh+1,0); lcdDrawFilledRect(0, 0, LCD_W, FH, SOLID, FILL_WHITE|GREY_DEFAULT); - SUBMENU(STR_MIXER, MIX_FIELD_COUNT, {0, 0, 0, 0, 0, CASE_CURVES(1) CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0, 0 /*, ...*/}); + SUBMENU(STR_MIXER, MIX_FIELD_COUNT, {0, 0, 0, 0, 0, 1, CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0, 0 /*, ...*/}); int8_t sub = menuVerticalPosition; int8_t editMode = s_editMode; diff --git a/radio/src/gui/480x272/menu_model.cpp b/radio/src/gui/480x272/menu_model.cpp index b0ec425e9..419a39082 100644 --- a/radio/src/gui/480x272/menu_model.cpp +++ b/radio/src/gui/480x272/menu_model.cpp @@ -27,7 +27,7 @@ const MenuHandlerFunc menuTabModel[] = { menuModelExposAll, menuModelMixAll, menuModelLimits, - CASE_CURVES(menuModelCurvesAll) + menuModelCurvesAll, #if defined(GVARS) && defined(FLIGHT_MODES) CASE_GVARS(menuModelGVars) #endif diff --git a/radio/src/gui/480x272/menus.h b/radio/src/gui/480x272/menus.h index 7222f261d..aaa2146fe 100644 --- a/radio/src/gui/480x272/menus.h +++ b/radio/src/gui/480x272/menus.h @@ -107,7 +107,7 @@ enum EnumTabModel { MENU_MODEL_INPUTS, MENU_MODEL_MIXES, MENU_MODEL_OUTPUTS, - CASE_CURVES(MENU_MODEL_CURVES) + MENU_MODEL_CURVES, CASE_GVARS(MENU_MODEL_GVARS) MENU_MODEL_LOGICAL_SWITCHES, MENU_MODEL_SPECIAL_FUNCTIONS, @@ -136,7 +136,7 @@ const uint8_t MODEL_ICONS[] = { ICON_MODEL_INPUTS, ICON_MODEL_MIXER, ICON_MODEL_OUTPUTS, - CASE_CURVES(ICON_MODEL_CURVES) + ICON_MODEL_CURVES, CASE_GVARS(ICON_MODEL_GVARS) ICON_MODEL_LOGICAL_SWITCHES, ICON_MODEL_SPECIAL_FUNCTIONS, diff --git a/radio/src/gui/480x272/model_inputs.cpp b/radio/src/gui/480x272/model_inputs.cpp index 29826d074..0fac6fc0d 100644 --- a/radio/src/gui/480x272/model_inputs.cpp +++ b/radio/src/gui/480x272/model_inputs.cpp @@ -162,7 +162,7 @@ enum ExposFields { EXPO_FIELD_SCALE, EXPO_FIELD_WEIGHT, EXPO_FIELD_OFFSET, - CASE_CURVES(EXPO_FIELD_CURVE) + EXPO_FIELD_CURVE, CASE_FLIGHT_MODES(EXPO_FIELD_FLIGHT_MODES) EXPO_FIELD_SWITCH, EXPO_FIELD_SIDE, @@ -176,7 +176,7 @@ bool menuModelExpoOne(event_t event) { ExpoData * ed = expoAddress(s_currIdx); - SUBMENU_WITH_OPTIONS(STR_MENUINPUTS, ICON_MODEL_INPUTS, EXPO_FIELD_MAX, OPTION_MENU_NO_FOOTER|OPTION_MENU_NO_SCROLLBAR, { 0, 0, 0, (ed->srcRaw >= MIXSRC_FIRST_TELEM ? (uint8_t)0 : (uint8_t)HIDDEN_ROW), 0, 0, CASE_CURVES(CURVE_ROWS) CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0 /*, ...*/}); + SUBMENU_WITH_OPTIONS(STR_MENUINPUTS, ICON_MODEL_INPUTS, EXPO_FIELD_MAX, OPTION_MENU_NO_FOOTER|OPTION_MENU_NO_SCROLLBAR, { 0, 0, 0, (ed->srcRaw >= MIXSRC_FIRST_TELEM ? (uint8_t)0 : (uint8_t)HIDDEN_ROW), 0, 0, CURVE_ROWS, CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0 /*, ...*/}); lcdDrawSizedText(50, 3+FH, g_model.inputNames[ed->chn], LEN_INPUT_NAME, ZCHAR|MENU_TITLE_COLOR); lcdDrawSolidFilledRect(0, MENU_FOOTER_TOP, 230, MENU_FOOTER_HEIGHT, HEADER_BGCOLOR); diff --git a/radio/src/gui/480x272/model_mixes.cpp b/radio/src/gui/480x272/model_mixes.cpp index 4a6c96f3f..f37c276da 100644 --- a/radio/src/gui/480x272/model_mixes.cpp +++ b/radio/src/gui/480x272/model_mixes.cpp @@ -152,7 +152,7 @@ enum MixFields { MIX_FIELD_WEIGHT, MIX_FIELD_OFFSET, MIX_FIELD_TRIM, - CASE_CURVES(MIX_FIELD_CURVE) + MIX_FIELD_CURVE, CASE_FLIGHT_MODES(MIX_FIELD_FLIGHT_MODE) MIX_FIELD_SWITCH, MIX_FIELD_WARNING, @@ -176,7 +176,7 @@ bool menuModelMixOne(event_t event) { MixData * md2 = mixAddress(s_currIdx) ; - SUBMENU_WITH_OPTIONS(STR_MIXER, ICON_MODEL_MIXER, MIX_FIELD_COUNT, OPTION_MENU_NO_SCROLLBAR, { 0, 0, 0, 0, 0, CASE_CURVES(1) CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0 /*, ...*/ }); + SUBMENU_WITH_OPTIONS(STR_MIXER, ICON_MODEL_MIXER, MIX_FIELD_COUNT, OPTION_MENU_NO_SCROLLBAR, { 0, 0, 0, 0, 0, 1, CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0 /*, ...*/ }); putsChn(50, 3+FH, md2->destCh+1, MENU_TITLE_COLOR); displayMixStatus(md2->destCh); diff --git a/radio/src/opentx.h b/radio/src/opentx.h index b05ed0475..bb9dc5fc9 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -161,8 +161,6 @@ #define CASE_FLIGHT_MODES(x) #endif - #define CASE_CURVES(x) x, - #if defined(GVARS) #define CASE_GVARS(x) x, #else From a5b44fa87773a128720107022eb5b42e456840ca Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Thu, 5 Jul 2018 11:15:53 +0200 Subject: [PATCH 07/11] Remove ARM_FIELD and AVR_FIELD macros --- radio/src/datastructs.h | 33 +++++++----------------- radio/src/storage/eeprom_conversions.cpp | 20 ++++++-------- 2 files changed, 17 insertions(+), 36 deletions(-) diff --git a/radio/src/datastructs.h b/radio/src/datastructs.h index e02337c01..3427078b2 100644 --- a/radio/src/datastructs.h +++ b/radio/src/datastructs.h @@ -24,11 +24,6 @@ #include #include "dataconstants.h" - #define ARM_FIELD(x) x; - #define AVR_FIELD(x) - - #define N_PCBSTD_FIELD(x) x; - #if defined(PCBTARANIS) #define N_TARANIS_FIELD(x) #define TARANIS_FIELD(x) x; @@ -558,21 +553,17 @@ PACK(struct CustomScreenData { PACK(struct ModelData { ModelHeader header; TimerData timers[MAX_TIMERS]; - AVR_FIELD(uint8_t protocol:3) - ARM_FIELD(uint8_t telemetryProtocol:3) + uint8_t telemetryProtocol:3; uint8_t thrTrim:1; // Enable Throttle Trim - AVR_FIELD(int8_t ppmNCH:4) - ARM_FIELD(uint8_t noGlobalFunctions:1) - ARM_FIELD(uint8_t displayTrims:2) - ARM_FIELD(uint8_t ignoreSensorIds:1) + uint8_t noGlobalFunctions:1; + uint8_t displayTrims:2; + uint8_t ignoreSensorIds:1; int8_t trimInc:3; // Trim Increments uint8_t disableThrottleWarning:1; - ARM_FIELD(uint8_t displayChecklist:1) - AVR_FIELD(uint8_t pulsePol:1) + uint8_t displayChecklist:1; uint8_t extendedLimits:1; uint8_t extendedTrims:1; uint8_t throttleReversed:1; - AVR_FIELD(int8_t ppmDelay) BeepANACenter beepANACenter; MixData mixData[MAX_MIXERS]; LimitData limitData[MAX_OUTPUT_CHANNELS]; @@ -586,8 +577,6 @@ PACK(struct ModelData { SwashRingData swashR; FlightModeData flightModeData[MAX_FLIGHT_MODES]; - AVR_FIELD(int8_t ppmFrameLength) // 0=22.5ms (10ms-30ms) 0.5ms increments - NOBACKUP(uint8_t thrTraceSrc); SWITCHES_WARNING_DATA @@ -598,7 +587,7 @@ PACK(struct ModelData { MODELDATA_EXTRA - ARM_FIELD(NOBACKUP(TelemetrySensor telemetrySensors[MAX_TELEMETRY_SENSORS])) + NOBACKUP(TelemetrySensor telemetrySensors[MAX_TELEMETRY_SENSORS];) TARANIS_PCBX9E_FIELD(uint8_t toplcdTimer) @@ -749,18 +738,15 @@ PACK(struct RadioData { NOBACKUP(int8_t timezone:5); NOBACKUP(uint8_t adjustRTC:1); NOBACKUP(uint8_t inactivityTimer); - AVR_FIELD(uint8_t mavbaud:3) - ARM_FIELD(uint8_t telemetryBaudrate:3) + uint8_t telemetryBaudrate:3; SPLASH_MODE; /* 3bits */ NOBACKUP(int8_t hapticMode:2); // -2=quiet, -1=only alarms, 0=no keys, 1=all - AVR_FIELD(uint8_t blOffBright:4) - AVR_FIELD(uint8_t blOnBright:4) - ARM_FIELD(int8_t switchesDelay) + int8_t switchesDelay; NOBACKUP(uint8_t lightAutoOff); NOBACKUP(uint8_t templateSetup); // RETA order for receiver channels NOBACKUP(int8_t PPM_Multiplier); NOBACKUP(int8_t hapticLength); - N_HORUS_FIELD(N_TARANIS_FIELD(N_PCBSTD_FIELD(uint8_t reNavigation))); + N_HORUS_FIELD(N_TARANIS_FIELD(uint8_t reNavigation)); N_HORUS_FIELD(N_TARANIS_FIELD(uint8_t stickReverse)); NOBACKUP(int8_t beepLength:3); NOBACKUP(int8_t hapticStrength:3); @@ -877,7 +863,6 @@ static inline void check_struct() CHKSIZE(ModelHeader, 11); CHKTYPE(CurveData, 1); - // AVR #if defined(CPUM2560) || defined(CPUM2561) CHKSIZE(ExpoData, 5); CHKSIZE(MixData, 10); diff --git a/radio/src/storage/eeprom_conversions.cpp b/radio/src/storage/eeprom_conversions.cpp index 0d95899bd..fc93afe5e 100644 --- a/radio/src/storage/eeprom_conversions.cpp +++ b/radio/src/storage/eeprom_conversions.cpp @@ -543,19 +543,15 @@ PACK(typedef struct { PACK(typedef struct { ModelHeader_v216 header; TimerData_v216 timers[2]; - AVR_FIELD(uint8_t protocol:3) - ARM_FIELD(uint8_t telemetryProtocol:3) + uint8_t telemetryProtocol:3; uint8_t thrTrim:1; // Enable Throttle Trim - AVR_FIELD(int8_t ppmNCH:4) - ARM_FIELD(int8_t spare2:4) + int8_t spare2:4; int8_t trimInc:3; // Trim Increments uint8_t disableThrottleWarning:1; - ARM_FIELD(uint8_t displayChecklist:1) - AVR_FIELD(uint8_t pulsePol:1) + uint8_t displayChecklist:1; uint8_t extendedLimits:1; uint8_t extendedTrims:1; uint8_t throttleReversed:1; - AVR_FIELD(int8_t ppmDelay) BeepANACenter beepANACenter; // 1<<0->A1.. 1<<6->A7 MixData_v216 mixData[MAX_MIXERS]; LimitData_v216 limitData[MAX_OUTPUT_CHANNELS]; @@ -591,14 +587,14 @@ PACK(typedef struct { PACK(typedef struct { ModelHeader header; TimerData_v217 timers[MAX_TIMERS]; - ARM_FIELD(uint8_t telemetryProtocol:3) + uint8_t telemetryProtocol:3; uint8_t thrTrim:1; // Enable Throttle Trim - ARM_FIELD(uint8_t noGlobalFunctions:1) - ARM_FIELD(uint8_t displayTrims:2) - ARM_FIELD(uint8_t ignoreSensorIds:1) + uint8_t noGlobalFunctions:1; + uint8_t displayTrims:2; + uint8_t ignoreSensorIds:1; int8_t trimInc:3; // Trim Increments uint8_t disableThrottleWarning:1; - ARM_FIELD(uint8_t displayChecklist:1) + uint8_t displayChecklist:1; uint8_t extendedLimits:1; uint8_t extendedTrims:1; uint8_t throttleReversed:1; From 9c7cfe925297e3f0c1252eafae779fe31dc15788 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Thu, 5 Jul 2018 11:19:07 +0200 Subject: [PATCH 08/11] Remove all CPUM128/CPUM2560/CPUM2561 macros Also remove pulses_avr* --- radio/src/dataconstants.h | 20 - radio/src/datastructs.h | 5 - radio/src/opentx.cpp | 6 - radio/src/pulses/pulses_avr.cpp | 1035 ------------------------------- radio/src/pulses/pulses_avr.h | 48 -- 5 files changed, 1114 deletions(-) delete mode 100644 radio/src/pulses/pulses_avr.cpp delete mode 100644 radio/src/pulses/pulses_avr.h diff --git a/radio/src/dataconstants.h b/radio/src/dataconstants.h index 8e1a46e90..ee399f349 100644 --- a/radio/src/dataconstants.h +++ b/radio/src/dataconstants.h @@ -69,26 +69,6 @@ #define MAX_INPUTS 32 #define MAX_TRAINER_CHANNELS 16 #define MAX_TELEMETRY_SENSORS 32 -#elif defined(CPUM2560) || defined(CPUM2561) - #define MAX_MODELS 30 - #define MAX_OUTPUT_CHANNELS 16 // number of real output channels CH1-CH16 - #define MAX_FLIGHT_MODES 6 - #define MAX_MIXERS 32 - #define MAX_EXPOS 16 - #define MAX_LOGICAL_SWITCHES 12 - #define MAX_SPECIAL_FUNCTIONS 24 // number of functions assigned to switches - #define MAX_TRAINER_CHANNELS 8 - #define MAX_TELEMETRY_SENSORS 0 -#elif defined(CPUM128) - #define MAX_MODELS 30 - #define MAX_OUTPUT_CHANNELS 16 // number of real output channels CH1-CH16 - #define MAX_FLIGHT_MODES 5 - #define MAX_MIXERS 32 - #define MAX_EXPOS 14 - #define MAX_LOGICAL_SWITCHES 12 - #define MAX_SPECIAL_FUNCTIONS 24 // number of functions assigned to switches - #define MAX_TRAINER_CHANNELS 8 - #define MAX_TELEMETRY_SENSORS 0 #else #define MAX_MODELS 16 #define MAX_OUTPUT_CHANNELS 16 // number of real output channels CH1-CH16 diff --git a/radio/src/datastructs.h b/radio/src/datastructs.h index 3427078b2..60df2f96c 100644 --- a/radio/src/datastructs.h +++ b/radio/src/datastructs.h @@ -863,13 +863,8 @@ static inline void check_struct() CHKSIZE(ModelHeader, 11); CHKTYPE(CurveData, 1); -#if defined(CPUM2560) || defined(CPUM2561) - CHKSIZE(ExpoData, 5); - CHKSIZE(MixData, 10); -#else CHKSIZE(MixData, 9); CHKSIZE(ExpoData, 4); -#endif CHKSIZE(CustomFunctionData, 3); CHKSIZE(TimerData, 3); diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 1904121df..ccee9f60a 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -2180,12 +2180,6 @@ int main() // important to disable it before commencing with system initialisation (or // we could put a bunch more wdt_reset()s in. But I don't like that approach // during boot up.) -#if defined(CPUM2560) || defined(CPUM2561) - uint8_t mcusr = MCUSR; // save the WDT (etc) flags - MCUSR = 0; // must be zeroed before disabling the WDT - MCUCR = 0x80 ; // Disable JTAG port that can interfere with POT3 - MCUCR = 0x80 ; // Must be done twice -#endif #if defined(PCBTARANIS) g_eeGeneral.contrast = LCD_CONTRAST_DEFAULT; #endif diff --git a/radio/src/pulses/pulses_avr.cpp b/radio/src/pulses/pulses_avr.cpp deleted file mode 100644 index 6b00fbfb3..000000000 --- a/radio/src/pulses/pulses_avr.cpp +++ /dev/null @@ -1,1035 +0,0 @@ -/* - * Copyright (C) OpenTX - * - * Based on code named - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include "opentx.h" - -uint16_t nextMixerEndTime = 0; -#define SCHEDULE_MIXER_END(delay) nextMixerEndTime = getTmr16KHz() + (delay) - 2*16/*2ms*/ - -#if defined(DSM2) - // DSM2 control bits - #define DSM2_CHANS 6 - #define FRANCE_BIT 0x10 - #define DSMX_BIT 0x08 - #define BAD_DATA 0x47 - #define DSM2_SEND_BIND (1 << 7) - #define DSM2_SEND_RANGECHECK (1 << 5) - uint8_t dsm2BindTimer = DSM2_BIND_TIMEOUT; -#endif - -#if defined(PXX) - #define PXX_SEND_BIND 0x01 - #define PXX_SEND_FAILSAFE (1 << 4) - #define PXX_SEND_RANGECHECK (1 << 5) -#endif - -#if defined(DSM2) || defined(PXX) -uint8_t moduleFlag[NUM_MODULES] = { 0 }; -#endif - -uint8_t s_current_protocol[1] = { 255 }; -uint8_t s_pulses_paused = 0; - -uint16_t B3_comp_value; - -#if defined(DSM2_SERIAL) -inline void DSM2_EnableTXD(void) -{ - UCSR0B |= (1 << TXEN0); // enable TX - // don't enable UDRE0 interrupt now, it will be enabled during next setupPulses -} -#endif - -void set_timer3_capture(void); -void set_timer3_ppm(void); - -void startPulses() -{ - -#if defined(SIMU) - s_current_protocol[0] = g_model.protocol; -#else - setupPulses(); -#endif // SIMU -} - -#define PULSES_SIZE 144 -uint8_t pulses2MHz[PULSES_SIZE] = {0}; // TODO check this length, pulled from er9x, perhaps too big. -uint8_t *pulses2MHzRPtr = pulses2MHz; - -#if defined(DSM2) || defined(PXX) || defined(IRPROTOS) -uint8_t *pulses2MHzWPtr = pulses2MHz; -#endif - -#define CTRL_END 0 -#define CTRL_CNT 1 -#define CTRL_REP_1CMD -3 -#define CTRL_REP_2CMD -6 - -#define SETUP_PULSES_DURATION 1000 // 500us -uint8_t g_ppmPulsePolarity = 0; // Needed for Bit-bang PPM. - -// TIMER1_COMPA_vect used for PPM and DSM2=SERIAL. -ISR(TIMER1_COMPA_vect) // 2MHz pulse generation (BLOCKING ISR). -{ - uint8_t dt = TCNT1L; // Record Timer1 latency for DEBUG stats display. - - // Call setupPulses only after "rest" period has elapsed. - // Must do this before toggle PORTB to keep timing accurate. - if (IS_DSM2_SERIAL_PROTOCOL(s_current_protocol[0]) || *((uint16_t*)pulses2MHzRPtr) == 0) { - if (!IS_DSM2_SERIAL_PROTOCOL(s_current_protocol[0])) { - OCR1A = SETUP_PULSES_DURATION; - } - setupPulses(); // Does not sei() for setupPulsesPPM. - heartbeat |= HEART_TIMER_PULSES; - return; - } - - if (s_current_protocol[0] != PROTO_NONE) { - // Original Bit-bang for PPM. - if (g_ppmPulsePolarity) { - PORTB |= (1< g_tmr1Latency_max) g_tmr1Latency_max = dt; - if (dt < g_tmr1Latency_min) g_tmr1Latency_min = dt; -} - -void setupPulsesPPM(uint8_t proto) -{ - // Total frame length is a fixed 22.5msec (more than 9 channels is non-standard and requires this to be extended.) - // Each channel's pulse is 0.7 to 1.7ms long, with a 0.3ms stop tail, making each compelte cycle 1 to 2ms. - - int16_t PPM_range = g_model.extendedLimits ? 640*2 : 512*2; //range of 0.7..1.7msec - - uint16_t *ptr = (proto == PROTO_PPM ? (uint16_t *)pulses2MHz : (uint16_t *) &pulses2MHz[PULSES_SIZE/2]); - - //The pulse ISR is 2mhz that's why everything is multiplied by 2 - uint8_t p = (proto == PROTO_PPM16 ? 16 : 8) + (g_model.ppmNCH * 2); //Channels *2 - uint16_t q = (g_model.ppmDelay*50+300)*2; // Stoplen *2 - int32_t rest = 22500u*2 - q; - - rest += (int32_t(g_model.ppmFrameLength))*1000; - for (uint8_t i=(proto==PROTO_PPM16) ? p-8 : 0; i 65535) rest = 65535; /* prevents overflows */ - if (rest < 9000) rest = 9000; - - if (proto == PROTO_PPM) { - *ptr++ = rest - SETUP_PULSES_DURATION; - pulses2MHzRPtr = pulses2MHz; - } - else { - *ptr++ = rest; - B3_comp_value = rest - SETUP_PULSES_DURATION; // 500uS before end of sync pulse - } - - *ptr = 0; -} - - -#if defined(PXX) -const pm_uint16_t CRCTable[] PROGMEM = -{ - 0x0000,0x1189,0x2312,0x329b,0x4624,0x57ad,0x6536,0x74bf, - 0x8c48,0x9dc1,0xaf5a,0xbed3,0xca6c,0xdbe5,0xe97e,0xf8f7, - 0x1081,0x0108,0x3393,0x221a,0x56a5,0x472c,0x75b7,0x643e, - 0x9cc9,0x8d40,0xbfdb,0xae52,0xdaed,0xcb64,0xf9ff,0xe876, - 0x2102,0x308b,0x0210,0x1399,0x6726,0x76af,0x4434,0x55bd, - 0xad4a,0xbcc3,0x8e58,0x9fd1,0xeb6e,0xfae7,0xc87c,0xd9f5, - 0x3183,0x200a,0x1291,0x0318,0x77a7,0x662e,0x54b5,0x453c, - 0xbdcb,0xac42,0x9ed9,0x8f50,0xfbef,0xea66,0xd8fd,0xc974, - 0x4204,0x538d,0x6116,0x709f,0x0420,0x15a9,0x2732,0x36bb, - 0xce4c,0xdfc5,0xed5e,0xfcd7,0x8868,0x99e1,0xab7a,0xbaf3, - 0x5285,0x430c,0x7197,0x601e,0x14a1,0x0528,0x37b3,0x263a, - 0xdecd,0xcf44,0xfddf,0xec56,0x98e9,0x8960,0xbbfb,0xaa72, - 0x6306,0x728f,0x4014,0x519d,0x2522,0x34ab,0x0630,0x17b9, - 0xef4e,0xfec7,0xcc5c,0xddd5,0xa96a,0xb8e3,0x8a78,0x9bf1, - 0x7387,0x620e,0x5095,0x411c,0x35a3,0x242a,0x16b1,0x0738, - 0xffcf,0xee46,0xdcdd,0xcd54,0xb9eb,0xa862,0x9af9,0x8b70, - 0x8408,0x9581,0xa71a,0xb693,0xc22c,0xd3a5,0xe13e,0xf0b7, - 0x0840,0x19c9,0x2b52,0x3adb,0x4e64,0x5fed,0x6d76,0x7cff, - 0x9489,0x8500,0xb79b,0xa612,0xd2ad,0xc324,0xf1bf,0xe036, - 0x18c1,0x0948,0x3bd3,0x2a5a,0x5ee5,0x4f6c,0x7df7,0x6c7e, - 0xa50a,0xb483,0x8618,0x9791,0xe32e,0xf2a7,0xc03c,0xd1b5, - 0x2942,0x38cb,0x0a50,0x1bd9,0x6f66,0x7eef,0x4c74,0x5dfd, - 0xb58b,0xa402,0x9699,0x8710,0xf3af,0xe226,0xd0bd,0xc134, - 0x39c3,0x284a,0x1ad1,0x0b58,0x7fe7,0x6e6e,0x5cf5,0x4d7c, - 0xc60c,0xd785,0xe51e,0xf497,0x8028,0x91a1,0xa33a,0xb2b3, - 0x4a44,0x5bcd,0x6956,0x78df,0x0c60,0x1de9,0x2f72,0x3efb, - 0xd68d,0xc704,0xf59f,0xe416,0x90a9,0x8120,0xb3bb,0xa232, - 0x5ac5,0x4b4c,0x79d7,0x685e,0x1ce1,0x0d68,0x3ff3,0x2e7a, - 0xe70e,0xf687,0xc41c,0xd595,0xa12a,0xb0a3,0x8238,0x93b1, - 0x6b46,0x7acf,0x4854,0x59dd,0x2d62,0x3ceb,0x0e70,0x1ff9, - 0xf78f,0xe606,0xd49d,0xc514,0xb1ab,0xa022,0x92b9,0x8330, - 0x7bc7,0x6a4e,0x58d5,0x495c,0x3de3,0x2c6a,0x1ef1,0x0f78 -}; - -uint8_t PcmByte; -uint8_t PcmBitCount; -uint16_t PcmCrc; -uint8_t PcmOnesCount; - -void crc(uint8_t data) -{ - PcmCrc = (PcmCrc<<8) ^ pgm_read_word(&CRCTable[((PcmCrc >> 8) ^ data) & 0xFF]); -} - - -void putPcmPart(uint8_t value) -{ - PcmByte >>= 2; - PcmByte |= value; - if (++PcmBitCount >= 4) { - *pulses2MHzWPtr++ = PcmByte; - PcmBitCount = PcmByte = 0; - } -} - - -void putPcmFlush() -{ - while (PcmBitCount != 0) { - putPcmPart(0); // Empty - } - *pulses2MHzWPtr = 0; // Mark end -} - -void putPcmBit(uint8_t bit) -{ - if (bit) { - PcmOnesCount += 1; - putPcmPart(0x80); - } - else { - PcmOnesCount = 0; - putPcmPart(0xC0); - } - if (PcmOnesCount >= 5) { - putPcmBit(0); // Stuff a 0 bit in - } -} - -void putPcmByte(uint8_t byte) -{ - uint8_t i; - - crc(byte); - - for (i=0; i<8; i++) { - putPcmBit(byte & 0x80); - byte <<= 1; - } -} - - -void putPcmHead() -{ - // send 7E, do not CRC - // 01111110 - putPcmPart(0xC0); - putPcmPart(0x80); - putPcmPart(0x80); - putPcmPart(0x80); - putPcmPart(0x80); - putPcmPart(0x80); - putPcmPart(0x80); - putPcmPart(0xC0); -} - -uint16_t scaleForPXX(uint8_t i) -{ - int16_t value = ((i < 16) ? channelOutputs[i] * 3 / 4 : 0) + 1024; - return limit(1, value, 2046); -} - -void setupPulsesPXX() -{ - uint16_t chan; - uint16_t chan_1; - - pulses2MHzWPtr = pulses2MHz; - pulses2MHzRPtr = pulses2MHz; - - PcmCrc = 0; - PcmBitCount = PcmByte = 0; - PcmOnesCount = 0; - putPcmHead(); - putPcmByte(g_model.header.modelId[0]); - uint8_t flag1 = 0; - if (moduleFlag[0] == MODULE_BIND) { - flag1 |= (g_eeGeneral.countryCode << 1) | PXX_SEND_BIND; - } - else if (moduleFlag[0] == MODULE_RANGECHECK) { - flag1 |= PXX_SEND_RANGECHECK; - } - putPcmByte(flag1); // First byte of flags - putPcmByte(0); // Second byte of flags - for (uint8_t i=0; i<8; i+=2) { // First 8 channels only - chan = scaleForPXX(i); - chan_1 = scaleForPXX(i+1); - putPcmByte(chan); // Low byte of channel - putPcmByte(((chan >> 8) & 0x0F) | (chan_1 << 4)); // 4 bits each from 2 channels - putPcmByte(chan_1 >> 4); // High byte of channel - } - putPcmByte(0); - chan = PcmCrc; // get the crc - putPcmByte(chan>>8); // Checksum lo - putPcmByte(chan); // Checksum hi - putPcmHead(); - putPcmFlush(); - OCR1C += 40000; // 20mS on - PORTB |= (1< 0) { - dsm2BindTimer--; - if (switchState(SW_DSM2_BIND)) { - moduleFlag[0] = MODULE_BIND; - *ptr |= DSM2_SEND_BIND; - } - } - else if (moduleFlag[0] == MODULE_RANGECHECK) { - *ptr |= DSM2_SEND_RANGECHECK; - } - else { - moduleFlag[0] = 0; - } - - ptr++; - *ptr++ = g_model.header.modelId[0]; - - for (uint8_t i=0; i>5)+512,1023); - *ptr++ = (i<<2) | ((pulse>>8)&0x03); // encoded channel + upper 2 bits pulse width - *ptr++ = pulse & 0xff; // low byte - } - - pulses2MHzWPtr = (uint8_t *)ptr; - pulses2MHzRPtr = pulses2MHz; - - UCSR0B |= (1 << UDRIE0); // enable UDRE0 interrupt to start transmitting DSM2 data bytes from buffer -} - -// DSM2=SERIAL mode -void DSM2_Done() -{ - UCSR0B &= ~((1 << TXEN0) | (1 << UDRIE0)); // disable UART TX and interrupt -} - -// DSM2=SERIAL mode -void DSM2_Init(void) -{ -#ifndef SIMU - -#undef BAUD -#define BAUD 125000 - -#include - - UBRR0H = UBRRH_VALUE; - UBRR0L = UBRRL_VALUE; - UCSR0A &= ~(1 << U2X0); // disable double speed operation. - - // set 8N1 (leave TX and RX disabled for now) - UCSR0B = 0 | (0 << RXCIE0) | (0 << TXCIE0) | (0 << UDRIE0) | (0 << RXEN0) | (0 << TXEN0) | (0 << UCSZ02); - UCSR0C = 0 | (1 << UCSZ01) | (1 << UCSZ00); - - while (UCSR0A & (1 << RXC0)) { - UDR0; // flush receive buffer - } - - // These should be running right from power up on a FrSky enabled '9X. - DSM2_EnableTXD(); // enable DSM2 UART transmitter - -#endif // SIMU -} -#endif // defined(DSM2_SERIAL) - -/****** END DSM2=SERIAL ********/ - - - -///////////////////////////////////////////////////////////// - - - -/******* BEGIN DSM2=PPM ********/ - -#if defined(DSM2_PPM) -inline void _send_1(uint8_t v) -{ - *pulses2MHzWPtr++ = v; -} - -#define BITLEN_DSM2 (8*2) //125000 Baud -void sendByteDsm2(uint8_t b) //max 10changes 0 10 10 10 10 1 -{ - bool lev = 0; - uint8_t len = BITLEN_DSM2; //max val: 9*16 < 256 - for (uint8_t i=0; i<=8; i++) { //8Bits + Stop=1 - bool nlev = b & 1; //lsb first - if (lev == nlev) { - len += BITLEN_DSM2; - } - else { - _send_1(len-1); - len = BITLEN_DSM2; - lev = nlev; - } - b = (b>>1) | 0x80; //shift in stop bit - } - _send_1(len+BITLEN_DSM2-1); // 2 stop bits -} - -// DSM2=PPM mode -void setupPulsesDSM2() -{ - static uint8_t dsmDat[2+6*2] = {0xFF,0x00, 0x00,0xAA, 0x05,0xFF, 0x09,0xFF, 0x0D,0xFF, 0x13,0x54, 0x14,0xAA}; - - pulses2MHzWPtr = pulses2MHz; - - // If more channels needed make sure the pulses union/array is large enough - switch (s_current_protocol[0]) { - case PROTO_DSM2_LP45: - dsmDat[0] = 0x00; - break; - case PROTO_DSM2_DSM2: - dsmDat[0] = 0x10; - break; - default: // DSMX - dsmDat[0] = 0x18; - break; - } - - if (dsm2BindTimer > 0) { - dsm2BindTimer--; - if (switchState(SW_DSM2_BIND)) { - moduleFlag[0] = MODULE_BIND; - dsmDat[0] |= DSM2_SEND_BIND; - } - } - else if (moduleFlag[0] == MODULE_RANGECHECK) { - dsmDat[0] |= DSM2_SEND_RANGECHECK; - } - else { - moduleFlag[0] = 0; - } - - dsmDat[1] = g_model.header.modelId[0]; - - for (uint8_t i=0; i>5)+512, 1023); - dsmDat[2+2*i] = (i<<2) | ((pulse>>8)&0x03); // encoded channel + upper 2 bits pulse width - dsmDat[3+2*i] = pulse & 0xff; // low byte - } - - for (uint8_t counter=0; counter<14; counter++) { - sendByteDsm2(dsmDat[counter]); - } - - pulses2MHzWPtr -= 1; //remove last stopbits and - -//G: Removed to get waveform correct on analyser. Leave in for stock board until tests can be done. - _send_1(255); // prolong them - _send_1(0); //end of pulse stream - - pulses2MHzRPtr = pulses2MHz; -} -#endif - -/****** END DSM2=PPM ********/ - -#if defined(IRPROTOS) -static void _send_u8(uint8_t u8) -{ -#ifdef SIMU - *(pulses2MHzPtr)++ = u8; -#else - asm volatile( - " st Z+,%A[u] \n\t" - - : [p]"=z"(pulses2MHzWPtr) - : "%[p]"(pulses2MHzWPtr) - , [u]"r"(u8) - ); - -#endif -} - -static void _send_u16(uint16_t u16) -{ -#ifdef SIMU - *(*(uint16_t**)&pulses2MHzWPtr)++ = u16; -#else - asm volatile( - " st Z+,%A[t0] \n\t" - " st Z+,%B[t0] \n\t" - - : [p]"=z"(pulses2MHzWPtr) - : "%[p]"(pulses2MHzWPtr) - , [t0]"r"(u16) - ); - -#endif -} - -static void _send_1(uint16_t t0) -{ - // *(*(uint16_t**)&pulses2MHzPtr)++=t0; - _send_u16(t0); - *pulses2MHzWPtr++ = CTRL_CNT; - //_send_u8(CTRL_CNT); -} - -static void _send_rep1(uint16_t t0, uint8_t cnt) -{ - // *(*(uint16_t**)&pulses2MHzPtr)++=t0; - _send_u16(t0); - _send_u8(CTRL_REP_1CMD); - _send_u8(cnt); - _send_u8(CTRL_CNT); -} - -//picco z -//http://home.versanet.de/~b-konze/uni_fb/uni_fb.htm -// /home/husteret/txt/flieger/protokolle/m168fb_ufo_v08/picooz.c -// -// 1900 650 650 1226 650 1226 Stop -// ---- __ -- __ -- __----__----__ --__ ----____ --__ -/* - chn:2 a=00 b=01 c=10 - pow:4u msb first - trim:4s -2,0,1 - direction:3s - -chk[0] - -chk[1] - 0 -------- -2-bit sum = 0 - -chk:2 = chn:2 + pow>>2:2 +pow:2 + trim>>2:2 +trim:2 dir + direction>>1:2 + direction<<1:2 - -*/ - -#define PICOOZ_RC_HIGH 93 //(1226/13) -#define PICOOZ_RC_LOW 49 //(650/13) - -#define LEN_38KHZ (13*2) //= 38,46KHz - -void picco_sendB1(bool bit) -{ - if (bit) { - _send_rep1(LEN_38KHZ-1, PICOOZ_RC_HIGH); //ungerade anzahl 10101 - _send_1 (1226*2 - 1); //lange 0 - } - else { - _send_rep1(LEN_38KHZ-1, PICOOZ_RC_LOW); //ungerade anzahl 10101 - _send_1 (650*2 - 1); //lange 0 - } -} - -void picco_sendBn(uint8_t bits, uint8_t n) -{ - while (n--) { - picco_sendB1(bits & (1<= (1<> sfr; -} - -NOINLINE int8_t reduce7s(int16_t v, uint8_t sfr, uint8_t sf2, int8_t ofs2) -{ - v += (1<>sfr; - if (i8 <= 0) { - i8 = 1; - } - i8 -= ofs2; - if (i8 >= ofs2) { - i8 = ofs2-1; //no overflow - } - return i8; -} - -//these defines allow the compiler to preclculate constants -#define getChan7u(i,bitsRes) reduce7u(channelOutputs[i],(BITS-bitsRes)) -#define getChan7s(i,bitsRes) reduce7s(channelOutputs[i],(BITS-bitsRes),1<<((BITS-bitsRes)-1),1<<(bitsRes-1)) - -static void setupPulsesPiccoZ(uint8_t chn) -{ - // 1900 650 650 1226 650 0bit 1226 1bit Stop - // ---- __ -- __ -- __----__----__ --__ ----____ --__ - static bool state = 0; - static uint8_t pow; - static int8_t trim; - static int8_t dir; - static uint8_t chk; - if (state == 0) { - _send_rep1(LEN_38KHZ-1, 147); // 1900/13 !! must be odd - _send_1 (650*2 - 1);// - picco_sendBn(0,2); - _send_rep1(LEN_38KHZ-1, PICOOZ_RC_HIGH); - _send_1 (650*2 - 1);// - _send_rep1(LEN_38KHZ-1, PICOOZ_RC_HIGH); - _send_1 (650*2 - 1);// - // chn:2 a=00 b=01 c=10 - // pow:4u msb first - // trim:4s -2,0,1 - // dir:3s - // -chk[0] - // -chk[1] - // 0 - pow = getChan7u(2,4); - trim = getChan7s(1,4); - dir = getChan7s(0,3); - chk = - (chn+ (pow>>2) + pow + (trim>>2) + trim + (dir>>1) + (dir<<1)); - } - else { - picco_sendBn(chn,2); - picco_sendBn(pow,4); - picco_sendBn(trim,4); - picco_sendBn(dir,3); - picco_sendB1(chk & (1<<0)); //lsb first, because we are here on a odd bit (dir is only 3 bits) - picco_sendB1(chk & (1<<1)); - _send_rep1(LEN_38KHZ-1, PICOOZ_RC_LOW); //0-bit pulses - _send_1 (20000u*2 - 1); //20ms gap ? - } - state = !state; -} -#endif - -void setupPulses() -{ - uint8_t required_protocol = g_model.protocol; - -#if defined(DEBUG) && !defined(VOICE) - PORTH |= 0x80; // PORTH:7 LOW->HIGH signals start of setupPulses() -#endif - - if (s_pulses_paused) { - required_protocol = PROTO_NONE; - } - - - if (s_current_protocol[0] != required_protocol) { - -#if defined(DSM2_SERIAL) && defined(TELEMETRY_FRSKY) - if (s_current_protocol[0] == 255 || IS_DSM2_PROTOCOL(s_current_protocol[0])) { - telemetryInit(); - } -#endif - - s_current_protocol[0] = required_protocol; - - TCCR1B = 0; // Stop counter - TCNT1 = 0; - -#if defined(CPUM2560) || defined(CPUM2561) - TIMSK1 &= ~0x2F; // All Timer1 interrupts off - TIMSK1 &= ~(1<LOW signals end of setupPulses() -#endif -} - -#ifndef SIMU - -#if defined(DSM2_PPM) || defined(PXX) -ISR(TIMER1_CAPT_vect) // 2MHz pulse generation -{ - uint8_t x; - PORTB ^= (1< 200) PORTB |= (1<>= 1) == 0) { - if (*(++pulses2MHzRPtr) == 0) { - OCR1B = OCR1C + 2000; // 1mS on from OCR1B - } - } - else { - *pulses2MHzRPtr = x; - } - - heartbeat |= HEART_TIMER_PULSES; -} -#endif - -ISR(TIMER1_COMPC_vect) // DSM2_PPM or PXX end of frame -{ -#if defined(DSM2_PPM) && defined(PXX) - if (IS_DSM2_PROTOCOL(s_current_protocol[0])) { -#endif - -#if defined(DSM2_PPM) - ICR1 = 41536; // next frame starts in 22ms 41536 = 2*(22000 - 14*11*8) - if (OCR1C < 255) { - OCR1C = 39000; // delay setup pulses by 19.5ms to reduce system latency - } - else { - OCR1C = 200; - // sei will be called inside setupPulses() - setupPulses(); - } - - heartbeat |= HEART_TIMER_PULSES; -#endif - -#if defined(DSM2_PPM) && defined(PXX) - } - else { -#endif - -#if defined(PXX) - // must be PXX - setupPulses(); -#endif - -#if defined(DSM2_PPM) && defined(PXX) - } -#endif -} -#endif // defined(DSM2_PPM) || defined(PXX) - -#endif // ifndef SIMU - - -void set_timer3_capture() -{ -#ifndef SIMU -#if defined (CPUM2560) || defined(CPUM2561) // TODO TIMSK3 in #define! - TIMSK3 &= ~((1< Date: Thu, 5 Jul 2018 11:32:47 +0200 Subject: [PATCH 09/11] Remove various references of AVR from script and referenced files --- .travis.yml | 16 +- radio/src/CMakeLists.txt | 6 +- .../gui/128x64/model_curve_simple_edit.cpp | 139 ------------ radio/src/gui/128x64/model_outputs_avr.cpp | 203 ------------------ radio/src/gui/CMakeLists.txt | 9 +- radio/src/gui/common/stdlcd/CMakeLists.txt | 33 ++- radio/src/pgmtypes.h | 61 ------ radio/util/build-firmware.py | 49 +---- 8 files changed, 19 insertions(+), 497 deletions(-) delete mode 100644 radio/src/gui/128x64/model_curve_simple_edit.cpp delete mode 100644 radio/src/gui/128x64/model_outputs_avr.cpp delete mode 100644 radio/src/pgmtypes.h diff --git a/.travis.yml b/.travis.yml index 73d294b54..e931e5386 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,7 +11,6 @@ env: # - QT_BASE=56 - QT_BASE=57 # - GCC_ARM=/opt/gcc-arm-none-eabi/bin - - AVR_FLAVORS="AVR9X 9X GRUVIN9X MEGA2560" - PYTHONPATH=${PYTHONPATH}:/usr/lib/python3/dist-packages matrix: # @@ -20,10 +19,6 @@ env: # # - FLAVOR=ALL - FLAVOR=DEFAULT - # - FLAVOR=AVR9X - # - FLAVOR=9X - # - FLAVOR=GRUVIN9X - # - FLAVOR=MEGA2560 - FLAVOR=ARM9X # - FLAVOR=AR9X # - FLAVOR=SKY9X @@ -54,20 +49,11 @@ before_install: install: - sudo apt-get --yes --force-yes install curl libmpfr4 libmpc3 libfox-1.6-dev libgtest-dev - - | - if [[ " ${AVR_FLAVORS} " =~ " ${FLAVOR} " || ${FLAVOR} == "ALL" ]]; then - wget --quiet https://launchpad.net/ubuntu/+source/gcc-avr/1:4.9.2+Atmel3.5.0-1/+build/8403710/+files/gcc-avr_4.9.2+Atmel3.5.0-1_amd64.deb - wget --quiet https://launchpad.net/ubuntu/+source/avr-libc/1:1.8.0+Atmel3.5.0-1/+build/8435473/+files/avr-libc_1.8.0+Atmel3.5.0-1_all.deb - wget --quiet https://launchpad.net/ubuntu/+source/binutils-avr/2.25+Atmel3.5.0-2/+build/8435474/+files/binutils-avr_2.25+Atmel3.5.0-2_amd64.deb - sudo dpkg --install gcc-avr_4.9.2+Atmel3.5.0-1_amd64.deb avr-libc_1.8.0+Atmel3.5.0-1_all.deb binutils-avr_2.25+Atmel3.5.0-2_amd64.deb - fi - if [[ ! " ${AVR_FLAVORS} " =~ " ${FLAVOR} " || ${FLAVOR} == "ALL" ]]; then - sudo apt-get --yes --force-yes install gcc-arm-none-eabi + - sudo apt-get --yes --force-yes install gcc-arm-none-eabi # Trying to build with gcc-arm 4.7 isn't working because it can't find the compiler, despite adding to PATH (in commit-tests.sh) by defining GCC_ARM above # - wget --quiet https://launchpad.net/gcc-arm-embedded/4.7/4.7-2013-q3-update/+download/gcc-arm-none-eabi-4_7-2013q3-20130916-linux.tar.bz2 # - tar xjf gcc-arm-none-eabi-4_7-2013q3-20130916-linux.tar.bz2 # - mv gcc-arm-none-eabi-4_7-2013q3 /opt/gcc-arm-none-eabi - fi - sudo apt-get install --yes --force-yes -qq qt${QT_BASE}base qt${QT_BASE}multimedia qt${QT_BASE}svg qt${QT_BASE}tools; source /opt/qt${QT_BASE}/bin/qt${QT_BASE}-env.sh script: diff --git a/radio/src/CMakeLists.txt b/radio/src/CMakeLists.txt index 10b78b451..f3fe9bbaa 100644 --- a/radio/src/CMakeLists.txt +++ b/radio/src/CMakeLists.txt @@ -341,12 +341,8 @@ if(GUI) foreach(FILE ${GUI_SRC}) set(SRC ${SRC} gui/${GUI_DIR}/${FILE}) endforeach() - if(ARCH STREQUAL ARM) - set(SRC - ${SRC} - gui/gui_common_arm.cpp + set(SRC ${SRC} gui/gui_common_arm.cpp ) - endif() endif() foreach(FILE ${TARGET_SRC}) diff --git a/radio/src/gui/128x64/model_curve_simple_edit.cpp b/radio/src/gui/128x64/model_curve_simple_edit.cpp deleted file mode 100644 index d2afd61c4..000000000 --- a/radio/src/gui/128x64/model_curve_simple_edit.cpp +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright (C) OpenTX - * - * Based on code named - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include "opentx.h" - -void menuModelCurveOne(event_t event) -{ - TITLE(STR_MENUCURVE); - lcdDrawNumber(PSIZE(TR_MENUCURVE)*FW+1, 0, s_curveChan+1, INVERS|LEFT); - DISPLAY_PROGRESS_BAR(20*FW+1); - - CurveInfo crv = curveInfo(s_curveChan); - - switch (event) { - case EVT_ENTRY: - s_editMode = 1; - break; - - CASE_EVT_ROTARY_BREAK - case EVT_KEY_BREAK(KEY_ENTER): - if (s_editMode <= 0) - menuHorizontalPosition = 0; - if (s_editMode == 1 && crv.custom) - s_editMode = 2; - else - s_editMode = 1; - break; - - case EVT_KEY_LONG(KEY_ENTER): - if (s_editMode <= 0) { - if (int8_t(++menuHorizontalPosition) > 4) - menuHorizontalPosition = -4; - for (uint8_t i=0; i 0) { - if (--s_editMode == 0) - menuHorizontalPosition = 0; - } - else { - popMenu(); - } - break; - - /* CASE_EVT_ROTARY_LEFT */ - case EVT_KEY_REPT(KEY_LEFT): - case EVT_KEY_FIRST(KEY_LEFT): - if (s_editMode==1 && menuHorizontalPosition>0) menuHorizontalPosition--; - if (s_editMode <= 0) { - if (crv.custom) { - moveCurve(s_curveChan, -crv.points+2); - } - else if (crv.points > MIN_POINTS_PER_CURVE) { - moveCurve(s_curveChan, -1, (crv.points+1)/2); - } - else { - AUDIO_WARNING2(); - } - return; - } - break; - - /* CASE_EVT_ROTARY_RIGHT */ - case EVT_KEY_REPT(KEY_RIGHT): - case EVT_KEY_FIRST(KEY_RIGHT): - if (s_editMode==1 && menuHorizontalPosition<(crv.points-1)) menuHorizontalPosition++; - if (s_editMode <= 0) { - if (!crv.custom) { - moveCurve(s_curveChan, crv.points-2, crv.points); - } - else if (crv.points < MAX_POINTS_PER_CURVE) { - if (moveCurve(s_curveChan, 1)) { - for (int8_t i=crv.points+crv.points-2; i>=0; i--) { - if (i%2) - crv.crv[i] = (crv.crv[i/2] + crv.crv[1+i/2]) / 2; - else - crv.crv[i] = crv.crv[i/2]; - } - } - } - else { - AUDIO_WARNING2(); - } - } - break; - } - - lcdDrawTextAlignedLeft(7*FH, STR_TYPE); - uint8_t attr = (s_editMode <= 0 ? INVERS : 0); - lcdDrawNumber(5*FW-2, 7*FH, crv.points, LEFT|attr); - lcdDrawText(lcdLastRightPos, 7*FH, crv.custom ? PSTR("pt'") : PSTR("pt"), attr); - - drawCurve(); - - if (s_editMode>0) { - uint8_t i = menuHorizontalPosition; - point_t point = getPoint(i); - - if (s_editMode==1 || !BLINK_ON_PHASE) { - // do selection square - lcdDrawFilledRect(point.x-1, point.y-2, 5, 5, SOLID, FORCE); - lcdDrawFilledRect(point.x, point.y-1, 3, 3, SOLID); - } - - int8_t x = -100 + 200*i/(crv.points-1); - if (crv.custom && i>0 && irevert = !ld->revert; - storageDirty(EE_MODEL); - } - - for (uint8_t i=0; irevert) ? -LIMIT_OFS(ld) : LIMIT_OFS(ld); - char swVal = '-'; // '-', '<', '>' - if ((channelOutputs[k] - v) > 50) swVal = (ld->revert ? 127 : 126); // Switch to raw inputs? - remove trim! - if ((channelOutputs[k] - v) < -50) swVal = (ld->revert ? 126 : 127); - putsChn(0, y, k+1, 0); - lcdDrawChar(LIMITS_DIRECTION_POS, y, swVal); -#endif - - limit_min_max_t limit = (g_model.extendedLimits ? LIMIT_EXT_MAX : 100); - - putsChn(0, y, k+1, IS_LINE_SELECTED(sub, k) ? INVERS : 0); - - for (uint8_t j=0; j0) ? BLINK|INVERS : INVERS) : 0); - uint8_t active = (attr && (s_editMode>0 || p1valdiff)) ; - if (active) STICK_SCROLL_DISABLE(); - switch (j) { - case ITEM_OUTPUTS_OFFSET: -#if defined(PPM_UNIT_US) - lcdDrawNumber(LIMITS_OFFSET_POS, y, ((int32_t)ld->offset*128) / 25, attr|PREC1|RIGHT); -#else - lcdDrawNumber(LIMITS_OFFSET_POS, y, ld->offset, attr|PREC1|RIGHT); -#endif - if (active) { - ld->offset = checkIncDec(event, ld->offset, -1000, 1000, EE_MODEL|NO_INCDEC_MARKS); - } - else if (attr && event==EVT_KEY_LONG(KEY_MENU)) { - copySticksToOffset(k); - s_editMode = 0; - } - break; - - case ITEM_OUTPUTS_MIN: - lcdDrawNumber(LIMITS_MIN_POS, y, MIN_MAX_DISPLAY(ld->min-LIMITS_MIN_MAX_OFFSET), MIN_MAX_ATTR|RIGHT); - if (active) { - ld->min = LIMITS_MIN_MAX_OFFSET + checkIncDec(event, ld->min-LIMITS_MIN_MAX_OFFSET, -limit, 0, EE_MODEL); - } - break; - - case ITEM_OUTPUTS_MAX: - lcdDrawNumber(LIMITS_MAX_POS, y, MIN_MAX_DISPLAY(ld->max+LIMITS_MIN_MAX_OFFSET), MIN_MAX_ATTR|RIGHT); - if (active) { - ld->max = -LIMITS_MIN_MAX_OFFSET + checkIncDec(event, ld->max+LIMITS_MIN_MAX_OFFSET, 0, +limit, EE_MODEL); - } - break; - - case ITEM_OUTPUTS_DIRECTION: - { -#if defined(PPM_CENTER_ADJUSTABLE) - lcdDrawChar(LIMITS_REVERT_POS, y, ld->revert ? 127 : 126, attr); -#else - lcdDrawTextAtIndex(LIMITS_REVERT_POS, y, STR_MMMINV, ld->revert, attr); -#endif - if (active) { - CHECK_INCDEC_MODELVAR_ZERO(event, ld->revert, 1); - } - break; - } - -#if defined(PPM_CENTER_ADJUSTABLE) - case ITEM_OUTPUTS_PPM_CENTER: - lcdDrawNumber(LIMITS_PPM_CENTER_POS, y, PPM_CENTER+ld->ppmCenter, RIGHT|attr); - if (active) { - CHECK_INCDEC_MODELVAR(event, ld->ppmCenter, -PPM_CENTER_MAX, +PPM_CENTER_MAX); - } - break; -#endif - -#if defined(PPM_LIMITS_SYMETRICAL) - case ITEM_OUTPUTS_SYMETRICAL: - lcdDrawChar(LCD_W-FW, y, ld->symetrical ? '=' : '^', attr); - if (active) { - CHECK_INCDEC_MODELVAR_ZERO(event, ld->symetrical, 1); - } - break; -#endif - } - } - } -} diff --git a/radio/src/gui/CMakeLists.txt b/radio/src/gui/CMakeLists.txt index 5c3ad1cf9..288b10a36 100644 --- a/radio/src/gui/CMakeLists.txt +++ b/radio/src/gui/CMakeLists.txt @@ -23,17 +23,10 @@ set(GUI_SRC ) if(GUI_DIR STREQUAL 128x64) - if (ARCH STREQUAL ARM) - set(GUI_SRC + set(GUI_SRC ${GUI_SRC} model_outputs_arm.cpp ) - else() - set(GUI_SRC - ${GUI_SRC} - model_outputs_avr.cpp - ) - endif() else() set(GUI_SRC ${GUI_SRC} diff --git a/radio/src/gui/common/stdlcd/CMakeLists.txt b/radio/src/gui/common/stdlcd/CMakeLists.txt index 32683c307..a9056719f 100644 --- a/radio/src/gui/common/stdlcd/CMakeLists.txt +++ b/radio/src/gui/common/stdlcd/CMakeLists.txt @@ -8,26 +8,21 @@ if(HELI) set(GUI_SRC ${GUI_SRC} ../common/stdlcd/model_heli.cpp) endif() -if(ARCH STREQUAL ARM) - add_definitions(-DGRAPHICS) - set(GUI_SRC - ${GUI_SRC} - ../common/stdlcd/model_inputs.cpp - ../common/stdlcd/model_mixes.cpp - ../common/stdlcd/view_text.cpp - ) - set(CURVE_EDIT_SRC model_curve_edit.cpp) -else() - set(CURVE_EDIT_SRC model_curve_simple_edit.cpp) -endif() +add_definitions(-DGRAPHICS) +set(GUI_SRC + ${GUI_SRC} + ../common/stdlcd/model_inputs.cpp + ../common/stdlcd/model_mixes.cpp + ../common/stdlcd/view_text.cpp +) +set(CURVE_EDIT_SRC ) -if(CURVES) - set(GUI_SRC - ${GUI_SRC} - ../common/stdlcd/model_curves.cpp - ${CURVE_EDIT_SRC} - ) -endif() + +set(GUI_SRC + ${GUI_SRC} + ../common/stdlcd/model_curves.cpp + model_curve_edit.cpp + ) if(SDCARD) set(GUI_SRC diff --git a/radio/src/pgmtypes.h b/radio/src/pgmtypes.h deleted file mode 100644 index b9da5383d..000000000 --- a/radio/src/pgmtypes.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (C) OpenTX - * - * Based on code named - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#ifndef _PGMTYPES_H_ -#define _PGMTYPES_H_ - -/* this is workaround for g++ bug: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34734 */ -#if (((__GNUC__ * 1000) + __GNUC_MINOR__) * 1000 + __GNUC_PATCHLEVEL__) < 4006002 -# ifdef __cplusplus -# undef PROGMEM -# define PROGMEM __attribute__(( section(".progmem.data") )) -# undef PSTR -# endif -#endif - -/* old (pre 1.8.0) avr-libc does not have progmem macros compatible with new gcc - * note: even for old gcc, definition was wrong. Old gcc was just more tolerant. */ -#if (((__AVR_LIBC_MAJOR__ * 1000) + __AVR_LIBC_MINOR__) * 1000 + __AVR_LIBC_REVISION__) < 1008000 -# ifndef __PGMSPACE_H_ -# warning "This file should be included after " -# endif -# undef PSTR -# undef PGM_P -# undef PGM_VOID_P -# define PGM_P const char * -# define PGM_VOID_P const void * -#endif - -#ifndef PSTR -# define PSTR(s) (__extension__({static const char __c[] PROGMEM = (s);&__c[0];})) -#endif - -typedef void pm_void; -typedef char pm_char; -typedef unsigned char pm_uchar; -typedef int8_t pm_int8_t; -typedef uint8_t pm_uint8_t; -typedef int16_t pm_int16_t; -typedef uint16_t pm_uint16_t; -typedef int32_t pm_int32_t; -typedef uint32_t pm_uint32_t; - -#endif // _PGMTYPES_H_ - diff --git a/radio/util/build-firmware.py b/radio/util/build-firmware.py index e6528f692..846bb865e 100755 --- a/radio/util/build-firmware.py +++ b/radio/util/build-firmware.py @@ -16,14 +16,11 @@ INVALID_BOARD = 6 INVALID_LANGUAGE = 7 # Board types -BOARD_9X = 0 -BOARD_GRUVIN9X = 1 BOARD_SKY9X = 2 BOARD_TARANIS = 3 BOARD_HORUS = 4 # Board families -BOARD_FAMILY_AVR = 0 BOARD_FAMILY_ARM = 1 if len(sys.argv) != 3: @@ -40,47 +37,8 @@ if len(options) < 2 or options[0] != "opentx": optcount = 1 command_options = {} -if options[optcount] == "9x": - command_options["PCB"] = "9X" - firmware_options = options_9x - maxsize = 65536 - board = BOARD_9X - board_family = BOARD_FAMILY_AVR -elif options[optcount] == "9xr": - command_options["PCB"] = "9XR" - firmware_options = options_9x - maxsize = 65536 - board = BOARD_9X - board_family = BOARD_FAMILY_AVR -elif options[optcount] == "9x128": - command_options["PCB"] = "9X128" - command_options["FRSKY_STICKS"] = "YES" - firmware_options = options_9x128 - maxsize = 65536 * 2 - board = BOARD_9X - board_family = BOARD_FAMILY_AVR -elif options[optcount] == "9xr128": - command_options["PCB"] = "9XR128" - command_options["FRSKY_STICKS"] = "YES" - firmware_options = options_9x128 - maxsize = 65536 * 2 - board = BOARD_9X - board_family = BOARD_FAMILY_AVR -elif options[optcount] == "gruvin9x": - command_options["PCB"] = "GRUVIN9X" - command_options["TELEMETRY"] = "FRSKY" - firmware_options = options_gruvin9x - maxsize = 65536 * 4 - board = BOARD_GRUVIN9X - board_family = BOARD_FAMILY_AVR -elif options[optcount] == "mega2560": - command_options["PCB"] = "MEGA2560" - command_options["TELEMETRY"] = "FRSKY" - firmware_options = options_mega2560 - maxsize = 65536 * 4 - board = BOARD_GRUVIN9X - board_family = BOARD_FAMILY_AVR -elif options[optcount] == "sky9x": + +if options[optcount] == "sky9x": command_options["PCB"] = "SKY9X" firmware_options = options_sky9x maxsize = 65536 * 4 @@ -234,9 +192,6 @@ def build_firmware(path): # Check binary size if board_family == BOARD_FAMILY_ARM: size = os.stat(target).st_size - else: - size = subprocess.check_output('avr-size -A %s | grep Total | cut -f2- -d " "' % target, shell=True) - size = int(size.strip()) if size > maxsize: exit(FIRMWARE_SIZE_TOO_BIG) From aa5d8c4ba74d8520adb978f5343b80be1da72bf8 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Thu, 5 Jul 2018 11:58:46 +0200 Subject: [PATCH 10/11] Remove remaining references to Mavlink --- radio/src/datastructs.h | 5 - radio/src/gui/128x64/menus.h | 4 - radio/src/gui/128x64/radio_setup.cpp | 3 +- radio/src/gui/128x64/view_mavlink.cpp | 512 ------------------------- radio/src/gui/128x64/view_mavlink.h | 78 ---- radio/src/gui/212x64/menu_model.cpp | 1 - radio/src/gui/212x64/menus.h | 1 - radio/src/gui/212x64/radio_setup.cpp | 3 +- radio/src/gui/480x272/menu_model.cpp | 1 - radio/src/gui/480x272/radio_setup.cpp | 1 - radio/src/opentx.h | 2 - radio/src/targets/simu/simpgmspace.cpp | 13 - radio/src/tasks_arm.cpp | 2 +- 13 files changed, 3 insertions(+), 623 deletions(-) delete mode 100644 radio/src/gui/128x64/view_mavlink.cpp delete mode 100644 radio/src/gui/128x64/view_mavlink.h diff --git a/radio/src/datastructs.h b/radio/src/datastructs.h index 60df2f96c..92158b409 100644 --- a/radio/src/datastructs.h +++ b/radio/src/datastructs.h @@ -346,11 +346,6 @@ PACK(struct FrSkyTelemetryData { }); #endif -/* - * MAVLINK Telemetry structure - */ - - /* * Telemetry Sensor structure */ diff --git a/radio/src/gui/128x64/menus.h b/radio/src/gui/128x64/menus.h index 18459bb5e..407b7dfd3 100644 --- a/radio/src/gui/128x64/menus.h +++ b/radio/src/gui/128x64/menus.h @@ -67,7 +67,6 @@ void onMainViewMenu(const char * result); void menuFirstCalib(event_t event); void menuMainView(event_t event); void menuViewTelemetryFrsky(event_t event); -void menuViewTelemetryMavlink(event_t event); void menuSpecialFunctions(event_t event, CustomFunctionData * functions, CustomFunctionsContext * functionsContext); enum MenuRadioIndexes @@ -121,7 +120,6 @@ enum MenuModelIndexes { MENU_MODEL_CUSTOM_SCRIPTS, #endif CASE_FRSKY(MENU_MODEL_TELEMETRY_FRSKY) - CASE_MAVLINK(MENU_MODEL_TELEMETRY_MAVLINK) MENU_MODEL_DISPLAY, CASE_TEMPLATES(MENU_MODEL_TEMPLATES) MENU_MODEL_PAGES_COUNT @@ -143,7 +141,6 @@ void menuModelLogicalSwitches(event_t event); void menuModelSpecialFunctions(event_t event); void menuModelCustomScripts(event_t event); void menuModelTelemetryFrsky(event_t event); -void menuModelTelemetryMavlink(event_t event); void menuModelDisplay(event_t event); void menuModelTemplates(event_t event); void menuModelGVarOne(event_t event); @@ -163,7 +160,6 @@ static const MenuHandlerFunc menuTabModel[] PROGMEM = { menuModelCustomScripts, #endif CASE_FRSKY(menuModelTelemetryFrsky) - CASE_MAVLINK(menuModelTelemetryMavlink) menuModelDisplay, CASE_TEMPLATES(menuModelTemplates) }; diff --git a/radio/src/gui/128x64/radio_setup.cpp b/radio/src/gui/128x64/radio_setup.cpp index ae13627d0..33ce9f24a 100644 --- a/radio/src/gui/128x64/radio_setup.cpp +++ b/radio/src/gui/128x64/radio_setup.cpp @@ -95,7 +95,6 @@ enum MenuRadioSetupItems { ITEM_SETUP_LANGUAGE, ITEM_SETUP_IMPERIAL, IF_FAI_CHOICE(ITEM_SETUP_FAI) - CASE_MAVLINK(ITEM_MAVLINK_BAUD) ITEM_SETUP_SWITCHES_DELAY, CASE_STM32(ITEM_SETUP_USB_MODE) ITEM_SETUP_RX_CHANNEL_ORD, @@ -132,7 +131,7 @@ void menuRadioSetup(event_t event) } #endif - MENU(STR_MENURADIOSETUP, menuTabGeneral, MENU_RADIO_SETUP, HEADER_LINE+ITEM_SETUP_MAX, { HEADER_LINE_COLUMNS CASE_RTCLOCK(2) CASE_RTCLOCK(2) CASE_BATTGRAPH(1) LABEL(SOUND), CASE_AUDIO(0) CASE_BUZZER(0) CASE_VOICE(0) 0, 0, 0, 0, CASE_AUDIO(0) CASE_VARIO_CPUARM(LABEL(VARIO)) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_HAPTIC(LABEL(HAPTIC)) CASE_HAPTIC(0) CASE_HAPTIC(0) CASE_HAPTIC(0) 0, LABEL(ALARMS), 0, CASE_CAPACITY(0) CASE_PCBSKY9X(0) 0, 0, 0, 0, IF_ROTARY_ENCODERS(0) LABEL(BACKLIGHT), 0, 0, 0, CASE_PWM_BACKLIGHT(0) CASE_PWM_BACKLIGHT(0) 0, CASE_SPLASH_PARAM(0) CASE_GPS(0) 0, CASE_GPS(0) CASE_PXX(0) 0, 0, IF_FAI_CHOICE(0) CASE_MAVLINK(0) 0, CASE_STM32(0) 0, COL_TX_MODE, 0, 1/*to force edit mode*/}); + MENU(STR_MENURADIOSETUP, menuTabGeneral, MENU_RADIO_SETUP, HEADER_LINE+ITEM_SETUP_MAX, { HEADER_LINE_COLUMNS CASE_RTCLOCK(2) CASE_RTCLOCK(2) CASE_BATTGRAPH(1) LABEL(SOUND), CASE_AUDIO(0) CASE_BUZZER(0) CASE_VOICE(0) 0, 0, 0, 0, CASE_AUDIO(0) CASE_VARIO_CPUARM(LABEL(VARIO)) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_HAPTIC(LABEL(HAPTIC)) CASE_HAPTIC(0) CASE_HAPTIC(0) CASE_HAPTIC(0) 0, LABEL(ALARMS), 0, CASE_CAPACITY(0) CASE_PCBSKY9X(0) 0, 0, 0, 0, IF_ROTARY_ENCODERS(0) LABEL(BACKLIGHT), 0, 0, 0, CASE_PWM_BACKLIGHT(0) CASE_PWM_BACKLIGHT(0) 0, CASE_SPLASH_PARAM(0) CASE_GPS(0) 0, CASE_GPS(0) CASE_PXX(0) 0, 0, IF_FAI_CHOICE(0) 0, CASE_STM32(0) 0, COL_TX_MODE, 0, 1/*to force edit mode*/}); if (event == EVT_ENTRY) { reusableBuffer.generalSettings.stickMode = g_eeGeneral.stickMode; diff --git a/radio/src/gui/128x64/view_mavlink.cpp b/radio/src/gui/128x64/view_mavlink.cpp deleted file mode 100644 index 1e07dedea..000000000 --- a/radio/src/gui/128x64/view_mavlink.cpp +++ /dev/null @@ -1,512 +0,0 @@ -/* - * Copyright (C) OpenTX - * - * Based on code named - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -/*! \file view_mavlink.cpp - * Mavlink menu - * Contains the menu specific code for Mavlink support. - */ - -#include "view_mavlink.h" - -#define VIEW_MAVLINK_2ND_COLUMN (LCD_W-6*FW-3) - -uint8_t MAVLINK_menu = MENU_INFO; - -/*! \brief Top Mavlink Menu definition - * \details Registers button events and handles that info. Buttons select menus, - * these are launched from the MAVLINK_menu switch statement. Setup menu is - * lanuched by the menu button. On exit (with exit button) the mavlink - * extension is reinitialized. - */ -void menuViewTelemetryMavlink(event_t event) { - - switch (event) // new event received, branch accordingly - { - case EVT_ENTRY: - MAVLINK_menu = MENU_INFO; - break; - - case EVT_KEY_FIRST(KEY_UP): - if (MAVLINK_menu > 0) - MAVLINK_menu--; - else - chainMenu(menuMainView); - break; - case EVT_KEY_FIRST(KEY_DOWN): - if (MAVLINK_menu < MAX_MAVLINK_MENU - 1) - MAVLINK_menu++; - break; - case EVT_KEY_FIRST(KEY_MENU): - return; - case EVT_KEY_FIRST(KEY_EXIT): - chainMenu(menuMainView); - break; - } - - switch (MAVLINK_menu) { - case MENU_INFO: - menuTelemetryMavlinkInfos(); - break; - case MENU_MODE: - menuTelemetryMavlinkFlightMode(); - break; - case MENU_BATT: - menuTelemetryMavlinkBattery(); - break; - case MENU_NAV: - menuTelemetryMavlinkNavigation(); - break; - case MENU_GPS: - menuTelemetryMavlinkGPS(); - break; -#ifdef DUMP_RX_TX - case MENU_DUMP_TX: - case MENU_DUMP_RX: - menuTelemetryMavlinkDump(event); - break; -#endif - default: - break; - } - -} - -/*! \brief Float variable display helper - * \param x x position on the screen - * \param y y position on the screen - * \param val value to display - * \param percis precision to display - * \param mode Use one of the defines in lcd.h line 81 - * \details The maximum value is 9999. The position is the position of the ones, see below for explanation "*" marks - * the x position. - * \verbatim - * - 9999.9999 \endverbatim - */ -void lcd_outdezFloat(uint8_t x, uint8_t y, float val, uint8_t precis, uint8_t mode) { - char c; - int16_t lnum = val; - uint8_t x1 = x; - val -= lnum; - uint8_t xinc = FWNUM; - if (mode & DBLSIZE) - xinc *= 2; - - int8_t i = 0; - lnum = abs(lnum); - for (; i < 4; i++) { - c = (lnum % 10) + '0'; - x1 -= xinc; - lcdDrawChar(x1, y, c, mode); - lnum /= 10; - if (lnum == 0) { - break; - } - } - if (lnum != 0) { - // Error number too big - x1 = x; - for (i = 0; i < 4; i++) { - x1 -= FW; - lcdDrawChar(x1, y, '?', mode); - } - } else { - if (val < 0) { - val = -val; - x1 -= xinc; - lcdDrawChar(x1, y, '-', mode); - } - if (precis) - { - uint8_t y_temp = y; - if (mode & DBLSIZE) - y_temp += FH; - lcdDrawChar(x, y_temp, '.', (mode & (~DBLSIZE))); - x -= (xinc / 2); - } - for (i = 0; i < precis; i++) { - val *= 10; - int a = val; - c = a + '0'; - x += xinc; - lcdDrawChar(x, y, c, mode); - val -= a; - } - } -} - -/*! \brief Fightmode string printer - * \details Decodes the flight mode from Mavlink custom mode enum to a string. - * This funtion can handle ArduPilot and ArduCoper code. - * To support new autopilot pilots add a STR_MAVLINK_... to the translations, - * and if requred a lut (see arduplane for examle) if there are unused modes - * in the sequence. - */ - -void print_mav_mode(uint8_t x, uint8_t y, uint32_t custom_mode, uint8_t attr) //, const char * mode_text_p) -{ - uint8_t mode = (uint8_t) custom_mode; - switch (telemetry_data.type_autopilot) { - case MAVLINK_ARDUCOPTER: - lcdDrawTextAtIndex(x,y,STR_MAVLINK_AC_MODES,mode,attr); - break; - case MAVLINK_ARDUPLANE: - lcdDrawTextAtIndex(x,y,STR_MAVLINK_AP_MODES,ap_modes_lut[custom_mode],attr); - break; - default: - lcdDrawText (FW, y, PSTR("INV. MAV TYPE"), attr); - break; - } -} - -/*! \brief Menu header - * \details Small helper function to print the standard header on the screen. - */ -void mav_title(const pm_char * s, uint8_t index) -{ - lcdDrawText(0, 0, PSTR("MAVLINK"), INVERS); - lcdDrawText(10 * FW, 0, s); - drawScreenIndex(index, MAX_MAVLINK_MENU, INVERS); - lcdDrawChar(7 * FW, 0, (mav_heartbeat > 0) ? '*' : ' '); - if (telemetry_data.active) - lcdDrawChar(8 * FW, 0, 'A', BLINK); -} - -/*! \brief Global info menu - * \details Quick status overview menu. The menu should contain current mode, - * armed | disarmed, battery status and RSSI info. Menu must be clean and - * readable with a quick glance. - * \todo Make menu as described as above. - */ -void menuTelemetryMavlinkInfos(void) { - - mav_title(STR_MAVLINK_INFOS, MAVLINK_menu); - - uint8_t x1, x2, xnum, y; - x1 = FW; - x2 = 7 * FW; - xnum = x2 + 5 * FWNUM; - y = FH; -/* - char * ptr = mav_statustext; - for (uint8_t j = 0; j < LEN_STATUSTEXT; j++) { - if (*ptr == 0) { - lcdDrawChar(x1, y, ' '); - } else { - lcdDrawChar(x1, y, *ptr++); - } - x1 += FW; - } - x1 = FW; - y += FH; -*/ - if (telemetry_data.status) { - - lcdDrawSizedText(x1, y, STR_MAVLINK_MODE, 4, 0); - if (telemetry_data.active) - lcdDrawSizedText(x2, y, PSTR("A"), 1, 0); - lcdDrawNumber(xnum, y, telemetry_data.mode, 0); - - y += FH; - lcdDrawText(x1, y, PSTR("BATT")); - lcdDrawNumber(xnum, y, telemetry_data.vbat, PREC1, 5); - - y += FH; - lcdDrawText(x1, y, PSTR("DROP")); - lcdDrawNumber(xnum, y, telemetry_data.packet_drop, 0); -/* y += FH; - lcdDrawText(x1, y, PSTR("FIX")); - lcdDrawNumber(xnum, y, telemetry_data.packet_fixed, 0); - y += FH; - lcdDrawText(x1, y, PSTR("MAV Comp")); - lcdDrawNumber(xnum, y, telemetry_data.mav_compid, 0); - y += FH; - lcdDrawText(x1, y, PSTR("MAV Sys")); - lcdDrawNumber(xnum, y, telemetry_data.mav_sysid, 0); - y += FH; - lcdDrawText(x1, y, PSTR("Rad Comp")); - lcdDrawNumber(xnum, y, telemetry_data.radio_compid, 0); - y += FH; - lcdDrawText(x1, y, PSTR("Rad Sys")); - lcdDrawNumber(xnum, y, telemetry_data.radio_sysid, 0); -*/ - - } -} - -/*! \brief Flight mode menu - * \details Clear display of current flight mode. - * \todo Add functionality to change flight mode. - */ -void menuTelemetryMavlinkFlightMode(void) { - - mav_title(STR_MAVLINK_MODE, MAVLINK_menu); - - uint8_t x, y; - x = 0; - y = FH; - - lcdDrawText(x, y, STR_MAVLINK_CUR_MODE); - y += FH; - print_mav_mode(FW, y, telemetry_data.custom_mode, DBLSIZE); - y += 2 * FH; - - char * ptr = mav_statustext; - for (uint8_t j = 0; j < LEN_STATUSTEXT; j++) { - if (*ptr == 0) { - lcdDrawChar(x, y, ' '); - } else { - lcdDrawChar(x, y, *ptr++); - } - x += FW; - } - y += FH; - x = 0; - - if (telemetry_data.active) - lcdDrawText (FW, y, STR_MAVLINK_ARMED, DBLSIZE); -} - -/*! \brief Batterystatus dislplay - * \details Shows flight batery status. - * Also RC and PC RSSI are in this menu. - */ -void menuTelemetryMavlinkBattery(void) { - - mav_title(STR_MAVLINK_BAT_MENU_TITLE, MAVLINK_menu); - - uint8_t x, y, ynum; - x = 7 * FWNUM; -// x = xnum + 0 * FW; - ynum = 2 * FH; - y = 3 * FH; - - lcdDrawText(0, 1*FH, STR_MAVLINK_BATTERY_LABEL); - - lcdDrawNumber(x, ynum, telemetry_data.vbat, (DBLSIZE | PREC1 | UNSIGN)); - lcdDrawText(x, y, PSTR("V")); - x += 4 * (2 * FWNUM); - lcdDrawNumber(x, ynum, telemetry_data.ibat, (DBLSIZE | PREC1 | UNSIGN)); - lcdDrawText(x, y, PSTR("A")); - x += 4 * (2 * FWNUM); - lcdDrawNumber(x, ynum, telemetry_data.rem_bat, (DBLSIZE | UNSIGN)); - lcdDrawText(x, y, PSTR("%")); - y += FH; - ynum += 3 * FH; - - x = 0; - lcdDrawText(x, y, STR_MAVLINK_RC_RSSI_LABEL); - lcdDrawNumber(x + 7 * FWNUM, ynum, telemetry_data.rc_rssi, (DBLSIZE | UNSIGN)); - lcdDrawText(x + 7 * FWNUM, ynum + FH, PSTR("%")); - if (g_model.mavlink.pc_rssi_en) - { - x += 8 * (2 * FWNUM); - lcdDrawText(x, y, STR_MAVLINK_PC_RSSI_LABEL); - lcdDrawNumber(x + 7 * FWNUM, ynum, telemetry_data.pc_rssi, (DBLSIZE)); - lcdDrawText(x + 7 * FWNUM, ynum + FH, PSTR("%")); - } - -} - -/*! \brief Navigation dislplay - * \details Shows Navigation telemetry. - * Altitude in this menu is the relative (to the home location) altitude. This - * is the same altitude used by the waypoints. - * \todo Add a similar menu to fly back to the home location. - */ -void menuTelemetryMavlinkNavigation(void) { - - mav_title(STR_MAVLINK_NAV_MENU_TITLE, MAVLINK_menu); - - uint8_t x, y, ynum; - x = 7 * FWNUM; -// x = xnum + 0 * FW; - ynum = 2 * FH; - y = FH; - - - x = 0; - lcdDrawText(x, y, STR_MAVLINK_COURSE); - lcdDrawNumber(x + 7 * FWNUM, ynum, telemetry_data.course, (DBLSIZE | UNSIGN)); - lcdDrawText(x + 7 * FWNUM, ynum, PSTR("o")); - x += 8 * (2 * FWNUM); - lcdDrawText(x, y, STR_MAVLINK_HEADING); - lcdDrawNumber(x + 7 * FWNUM, ynum, telemetry_data.heading, (DBLSIZE | UNSIGN)); - lcdDrawText(x + 7 * FWNUM, ynum, PSTR("o")); - y += 3 * FH; - ynum += 3 * FH; - - x = 0; - lcdDrawText(x, y, STR_MAVLINK_BEARING); - lcdDrawNumber(x + 7 * FWNUM, ynum, telemetry_data.bearing, (DBLSIZE | UNSIGN)); - lcdDrawText(x + 7 * FWNUM, ynum, PSTR("o")); - x += 8 * (2 * FWNUM); - lcdDrawText(x, y, STR_MAVLINK_ALTITUDE); - lcd_outdezFloat(x + 4 * FWNUM - 1, ynum, telemetry_data.loc_current.rel_alt, 1, (DBLSIZE)); - lcdDrawText(x + 7 * FWNUM, ynum + FH, PSTR("m")); - -} - - - -/*! \brief GPS information menu - * \details Menu gives a lot of info from the gps like fix type, position, - * attitude, heading and velocity. Text is small and the user must focus to - * read it. - * \todo Text is small. Should we do something about this or leaf it like this. - * I don't think will be used much when a user is concentrated on flying. - */ -void menuTelemetryMavlinkGPS(void) { - mav_title(STR_MAVLINK_GPS, MAVLINK_menu); - - uint8_t x1, x2, xnum, xnum2, y; - x1 = FW; - x2 = x1 + 12 * FW; - xnum = 7 * FW + 3 * FWNUM; - xnum2 = xnum + 11 * FWNUM; - y = FH; - - lcdDrawSizedText(x1, y, STR_MAVLINK_GPS, 3, 0); - if (telemetry_data.fix_type < 2) { - lcdDrawSizedText(xnum, y, STR_MAVLINK_NO_FIX, 6, 0); - } else { - lcdDrawNumber(xnum, y, telemetry_data.fix_type, 0, 3); - lcdDrawText(xnum, y, PSTR("D")); - } - lcdDrawText(x2, y, STR_MAVLINK_SAT); - lcdDrawNumber(xnum2, y, telemetry_data.satellites_visible, 0, 2); - -// if (telemetry_data.fix_type > 0) { - y += FH; - lcdDrawText(x1, y, STR_MAVLINK_HDOP); - lcd_outdezFloat(xnum, y, telemetry_data.eph, 2); - - y += FH; - lcdDrawText(x1, y, STR_MAVLINK_LAT); - lcd_outdezFloat(xnum, y, telemetry_data.loc_current.lat, 2); - - lcdDrawSizedText(x2, y, STR_MAVLINK_LON, 3, 0); - lcd_outdezFloat(xnum2, y, telemetry_data.loc_current.lon, 2); - - y += FH; - lcdDrawSizedText(x1, y, STR_MAVLINK_ALTITUDE, 3, 0); - lcdDrawNumber(xnum, y, telemetry_data.loc_current.gps_alt, 0); - - y += FH; - lcdDrawSizedText(x1, y, STR_MAVLINK_COURSE, 6, 0); - lcd_outdezFloat(xnum, y, telemetry_data.course, 2); - - y += FH; - lcdDrawSizedText(x1, y, PSTR("V"), 1, 0); - lcdDrawNumber(xnum, y, telemetry_data.v, 0); - //} -} - -#ifdef DUMP_RX_TX -//! \brief Display one byte as hex. -void lcd_outhex2(uint8_t x, uint8_t y, uint8_t val) { - x += FWNUM * 2; - for (int i = 0; i < 2; i++) { - x -= FWNUM; - char c = val & 0xf; - c = c > 9 ? c + 'A' - 10 : c + '0'; - lcdDrawChar(x, y, c, c >= 'A' ? CONDENSED : 0); - val >>= 4; - } -} - -//! \brief Hex dump of the current mavlink message. -void menuTelemetryMavlinkDump(event_t event) { - uint8_t x = 0; - uint8_t y = FH; - uint16_t count = 0; - uint16_t bufferLen = 0; - uint8_t *ptr = NULL; - switch (MAVLINK_menu) { - case MENU_DUMP_RX: - mav_dump_rx = 1; - mav_title(PSTR("RX"), MAVLINK_menu); - bufferLen = mavlinkRxBufferCount; - ptr = mavlinkRxBuffer; - break; - - case MENU_DUMP_TX: - mav_title(PSTR("TX"), MAVLINK_menu); - bufferLen = serialTxBufferCount; - ptr = ptrTxISR; - break; - default: - break; - } - for (uint16_t var = 0; var < bufferLen; var++) { - uint8_t byte = *ptr++; - lcd_outhex2(x, y, byte); - x += 2 * FW; - count++; - if (count > 8) { - count = 0; - x = 0; - y += FH; - if (y == (6 * FH)) - break; - } - } -} -#endif - - -/*! \brief Mavlink General setup menu. - * \details Setup menu for generic mavlink settings. - * Current menu items - * - RC RSSI scale item. Used to adjust the scale of the RSSI indicator to match - * the actual rssi value - * - PC RSSI enable item. Can be used to dissable PC RSSI display if not used. - * This funcion is called from the model setup menus, not directly by the - * telemetry menus - */ -void menuModelTelemetryMavlink(event_t event) { - - MENU(STR_MAVMENUSETUP_TITLE, menuTabModel, MENU_MODEL_TELEMETRY_MAVLINK, ITEM_MAVLINK_MAX + 1, {0, 0, 1/*to force edit mode*/}); - - uint8_t sub = menuVerticalPosition - 1; - - for (uint8_t i=0; i0) ? BLINK|INVERS : INVERS); - uint8_t attr = (sub == k ? blink : 0); - switch(k) { - case ITEM_MAVLINK_RC_RSSI_SCALE: - lcdDrawTextAlignedLeft(y, STR_MAVLINK_RC_RSSI_SCALE_LABEL); - lcdDrawNumber(VIEW_MAVLINK_2ND_COLUMN, y, (25 + g_model.mavlink.rc_rssi_scale * 5), attr|LEFT); - lcdDrawChar(lcdLastRightPos, y, '%'); - if (attr) CHECK_INCDEC_MODELVAR(event, g_model.mavlink.rc_rssi_scale, 0, 15); - break; - case ITEM_MAVLINK_PC_RSSI_EN: - g_model.mavlink.pc_rssi_en = editCheckBox(g_model.mavlink.pc_rssi_en, - VIEW_MAVLINK_2ND_COLUMN, - y, - STR_MAVLINK_PC_RSSI_EN_LABEL, - attr, - event); - break; - } - } -} diff --git a/radio/src/gui/128x64/view_mavlink.h b/radio/src/gui/128x64/view_mavlink.h deleted file mode 100644 index e551dd1a7..000000000 --- a/radio/src/gui/128x64/view_mavlink.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (C) OpenTX - * - * Based on code named - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -/*! \file view_mavlink.h - * Mavlink menu include file - */ - -#ifndef _VIEW_MAVLINK_H_ -#define _VIEW_MAVLINK_H_ - -#include "opentx.h" -#include "telemetry/mavlink.h" - -#define APSIZE (BSS | DBLSIZE) - -void menuViewTelemetryMavlink(event_t event); -void lcd_outdezFloat(uint8_t x, uint8_t y, float val, uint8_t precis, uint8_t mode = 0); -void mav_title(const pm_char * s, uint8_t index); -void menuTelemetryMavlinkInfos(void); -void menuTelemetryMavlinkFlightMode(void); -void menuTelemetryMavlinkBattery(void); -void menuTelemetryMavlinkNavigation(void); -void menuTelemetryMavlinkGPS(void); -#ifdef DUMP_RX_TX -void lcd_outhex2(uint8_t x, uint8_t y, uint8_t val); -void menuTelemetryMavlinkDump(event_t event); -#endif - -/*! \brief Mavlink menu enumerator - * \details Used to create a readable case statement for the - * \link menuTelemetryMavlink menuTelemetryMavlink \endlink funtion. - */ -enum mavlink_menu_ { - MENU_INFO = 0, // - MENU_MODE, - MENU_BATT, - MENU_NAV, - MENU_GPS, // -#ifdef DUMP_RX_TX - MENU_DUMP_RX, // - MENU_DUMP_TX, // -#endif - MAX_MAVLINK_MENU -}; - -//! \brief Pointer array to mavlink settings menus. -const MenuHandlerFunc menuTabMav[] PROGMEM = { - menuViewTelemetryMavlink -}; - -//! \brief Mavlink setup menu configuration items list. -enum menuMavlinkSetupItems { - ITEM_MAVLINK_RC_RSSI_SCALE, - ITEM_MAVLINK_PC_RSSI_EN, - ITEM_MAVLINK_MAX -}; - -//! \brief Menu index varible, initialized on info menu. -extern uint8_t MAVLINK_menu; - -#endif // _VIEW_MAVLINK_H_ diff --git a/radio/src/gui/212x64/menu_model.cpp b/radio/src/gui/212x64/menu_model.cpp index 7e8bdd228..547c76cd8 100644 --- a/radio/src/gui/212x64/menu_model.cpp +++ b/radio/src/gui/212x64/menu_model.cpp @@ -38,7 +38,6 @@ const MenuHandlerFunc menuTabModel[] = { menuModelCustomScripts, #endif CASE_FRSKY(menuModelTelemetryFrsky) - CASE_MAVLINK(menuModelTelemetryMavlink) menuModelDisplay }; diff --git a/radio/src/gui/212x64/menus.h b/radio/src/gui/212x64/menus.h index 9a1d214b3..91fb3be07 100644 --- a/radio/src/gui/212x64/menus.h +++ b/radio/src/gui/212x64/menus.h @@ -101,7 +101,6 @@ enum MenuModelIndexes { MENU_MODEL_CUSTOM_SCRIPTS, #endif MENU_MODEL_TELEMETRY_FRSKY, - CASE_MAVLINK(MENU_MODEL_TELEMETRY_MAVLINK) MENU_MODEL_DISPLAY, MENU_MODEL_PAGES_COUNT }; diff --git a/radio/src/gui/212x64/radio_setup.cpp b/radio/src/gui/212x64/radio_setup.cpp index 4991e1a54..edc9c1fe7 100644 --- a/radio/src/gui/212x64/radio_setup.cpp +++ b/radio/src/gui/212x64/radio_setup.cpp @@ -86,7 +86,6 @@ enum MenuRadioSetupItems { ITEM_SETUP_LANGUAGE, ITEM_SETUP_IMPERIAL, IF_FAI_CHOICE(ITEM_SETUP_FAI) - CASE_MAVLINK(ITEM_MAVLINK_BAUD) ITEM_SETUP_SWITCHES_DELAY, ITEM_SETUP_USB_MODE, ITEM_SETUP_RX_CHANNEL_ORD, @@ -117,7 +116,7 @@ void menuRadioSetup(event_t event) } #endif - MENU(STR_MENURADIOSETUP, menuTabGeneral, MENU_RADIO_SETUP, ITEM_SETUP_MAX, { 2, 2, 0, 1, LABEL(SOUND), 0, 0, 0, 0, 0, 0, 0, CASE_VARIO(LABEL(VARIO)) CASE_VARIO(0) CASE_VARIO(0) CASE_VARIO(0) CASE_VARIO(0) CASE_HAPTIC(LABEL(HAPTIC)) CASE_HAPTIC(0) CASE_HAPTIC(0) CASE_HAPTIC(0) 0, LABEL(ALARMS), 0, 0, 0, 0, 0,IF_ROTARY_ENCODERS(0) LABEL(BACKLIGHT), 0, 0, 0, CASE_PCBX9E_PCBX9DP(0) 0, CASE_SPLASH_PARAM(0) CASE_GPS(LABEL(GPS)) CASE_GPS(0) CASE_GPS(0) CASE_GPS(0) CASE_PXX(0) 0, 0, IF_FAI_CHOICE(0) CASE_MAVLINK(0) 0, 0, 0, LABEL(TX_MODE), 0, 1/*to force edit mode*/ }); + MENU(STR_MENURADIOSETUP, menuTabGeneral, MENU_RADIO_SETUP, ITEM_SETUP_MAX, { 2, 2, 0, 1, LABEL(SOUND), 0, 0, 0, 0, 0, 0, 0, CASE_VARIO(LABEL(VARIO)) CASE_VARIO(0) CASE_VARIO(0) CASE_VARIO(0) CASE_VARIO(0) CASE_HAPTIC(LABEL(HAPTIC)) CASE_HAPTIC(0) CASE_HAPTIC(0) CASE_HAPTIC(0) 0, LABEL(ALARMS), 0, 0, 0, 0, 0,IF_ROTARY_ENCODERS(0) LABEL(BACKLIGHT), 0, 0, 0, CASE_PCBX9E_PCBX9DP(0) 0, CASE_SPLASH_PARAM(0) CASE_GPS(LABEL(GPS)) CASE_GPS(0) CASE_GPS(0) CASE_GPS(0) CASE_PXX(0) 0, 0, IF_FAI_CHOICE(0) 0, 0, 0, LABEL(TX_MODE), 0, 1/*to force edit mode*/ }); if (event == EVT_ENTRY) { reusableBuffer.generalSettings.stickMode = g_eeGeneral.stickMode; diff --git a/radio/src/gui/480x272/menu_model.cpp b/radio/src/gui/480x272/menu_model.cpp index 419a39082..100904fcf 100644 --- a/radio/src/gui/480x272/menu_model.cpp +++ b/radio/src/gui/480x272/menu_model.cpp @@ -37,7 +37,6 @@ const MenuHandlerFunc menuTabModel[] = { menuModelCustomScripts, #endif CASE_FRSKY(menuModelTelemetryFrsky) - CASE_MAVLINK(menuModelTelemetryMavlink) }; void editCurveRef(coord_t x, coord_t y, CurveRef & curve, event_t event, LcdFlags attr); diff --git a/radio/src/gui/480x272/radio_setup.cpp b/radio/src/gui/480x272/radio_setup.cpp index 02bd964fa..b42f100a2 100644 --- a/radio/src/gui/480x272/radio_setup.cpp +++ b/radio/src/gui/480x272/radio_setup.cpp @@ -74,7 +74,6 @@ enum menuRadioSetupItems { ITEM_SETUP_LANGUAGE, ITEM_SETUP_IMPERIAL, IF_FAI_CHOICE(ITEM_SETUP_FAI) - // CASE_MAVLINK(ITEM_MAVLINK_BAUD) ITEM_SETUP_SWITCHES_DELAY, ITEM_SETUP_USB_MODE, ITEM_SETUP_RX_CHANNEL_ORD, diff --git a/radio/src/opentx.h b/radio/src/opentx.h index bb9dc5fc9..dc6f766a5 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -123,8 +123,6 @@ #define CASE_FRSKY(x) #endif - #define CASE_MAVLINK(x) - #if defined(PXX) #define CASE_PXX(x) x, #else diff --git a/radio/src/targets/simu/simpgmspace.cpp b/radio/src/targets/simu/simpgmspace.cpp index 9f252daa0..b9b15e0cf 100644 --- a/radio/src/targets/simu/simpgmspace.cpp +++ b/radio/src/targets/simu/simpgmspace.cpp @@ -306,19 +306,6 @@ void simuSetSwitch(uint8_t swtch, int8_t state) SWITCH_CASE(4, PIOA->PIO_PDSR, 1<<2) SWITCH_CASE(5, PIOC->PIO_PDSR, 1<<16) SWITCH_CASE(6, PIOC->PIO_PDSR, 1<<8) -#else // PCB9X - SWITCH_3_CASE(0, ping, pine, (1< Date: Thu, 5 Jul 2018 12:03:47 +0200 Subject: [PATCH 11/11] Remove templates --- companion/src/modeledit/CMakeLists.txt | 2 - companion/src/modeledit/templates.cpp | 896 ------------------------- companion/src/modeledit/templates.h | 43 -- radio/src/CMakeLists.txt | 6 - radio/src/gui/128x64/menus.h | 2 - radio/src/opentx.cpp | 7 - radio/src/opentx.h | 9 - radio/src/templates.cpp | 260 ------- radio/src/templates.h | 82 --- radio/src/translations.cpp | 6 - radio/src/translations.h | 8 - 11 files changed, 1321 deletions(-) delete mode 100644 companion/src/modeledit/templates.cpp delete mode 100644 companion/src/modeledit/templates.h delete mode 100644 radio/src/templates.cpp delete mode 100644 radio/src/templates.h diff --git a/companion/src/modeledit/CMakeLists.txt b/companion/src/modeledit/CMakeLists.txt index 6c0ca893b..a69127b31 100644 --- a/companion/src/modeledit/CMakeLists.txt +++ b/companion/src/modeledit/CMakeLists.txt @@ -23,7 +23,6 @@ set(modeledit_SRCS channels.cpp logicalswitches.cpp customfunctions.cpp - # templates.cpp mixerslistwidget.cpp # node.cpp ## node and edge are built in common lib because also used by simulator # edge.cpp ## commenting them here avoids a "duplicate target" warning eg. from ninja @@ -36,7 +35,6 @@ set(modeledit_HDRS channels.h logicalswitches.h customfunctions.h - # templates.h mixerslistwidget.h # node.h ) diff --git a/companion/src/modeledit/templates.cpp b/companion/src/modeledit/templates.cpp deleted file mode 100644 index 00c63d4f0..000000000 --- a/companion/src/modeledit/templates.cpp +++ /dev/null @@ -1,896 +0,0 @@ -/* - * Copyright (C) OpenTX - * - * Based on code named - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include "templates.h" - -#define CHANNEL_ORDER(x) generalSettings.getDefaultStick(x) -#define CC(x) (CHANNEL_ORDER(x)) //need to invert this to work with dest -// TODO ICC is GeneralSettings::getDefaultChannel(unsigned int stick) - -void ModelEdit::setCurve(uint8_t c, int8_t ar[]) -{ - int len=sizeof(ar)/sizeof(int8_t); - - if (firmware->getCapability(NumCurves)>c) { - if (len<9) { - model.curves[c].count=5; - model.curves[c].custom=false; - for (int i=0; i< 5; i++) { - model.curves[c].points[i].y=ar[i]; - } - } - else { - model.curves[c].count=5; - model.curves[c].custom=false; - for (int i=0; i< 5; i++) { - model.curves[c].points[i].y=ar[i]; - } - } - } -} - -Templates::Templates(QWidget * parent, ModelData & model): - QWidget(parent), - model(model) -{ - QGridLayout * gridLayout = new QGridLayout(this); - QListWidget * templateList = new QListWidget(this); - gridLayout->addWidget(templateList, 0, 0, 1, 1); - - templateList->addItem(tr("Simple 4-CH")); - templateList->addItem(tr("T-Cut")); - templateList->addItem(tr("Sticky T-Cut")); - templateList->addItem(tr("V-Tail")); - templateList->addItem(tr("Elevon\\Delta")); - templateList->addItem(tr("Heli Setup")); - templateList->addItem(tr("Heli Setup with gyro gain control")); - templateList->addItem(tr("Gyro gain control")); - templateList->addItem(tr("Heli Setup (Futaba's channel assignment style)")); - templateList->addItem(tr("Heli Setup with gyro gain control (Futaba's channel assignment style)")); - templateList->addItem(tr("Gyro gain control (Futaba's channel assignment style)")); - templateList->addItem(tr("Servo Test")); - templateList->addItem(tr("MultiCopter")); - templateList->addItem(tr("Use Model Config Wizard")); - - connect(templateList, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(doubleClicked(QModelIndex))); -} - -Templates::~Templates() -{ -} - -void Templates::setSwitch(unsigned int idx, unsigned int func, int v1, int v2) -{ - g_model.logicalSw[idx-1].func = func; - g_model.logicalSw[idx-1].val1 = v1; - g_model.logicalSw[idx-1].val2 = v2; -} - -void Templates::onDoubleClicked(QModelIndex index) -{ - QString text = ui->templateList->item(index.row())->text(); - if (index.row()==13) { - uint64_t result=0xffffffff; - modelConfigDialog *mcw = new modelConfigDialog(radioData, &result, this); - mcw->exec(); - if (result!=0xffffffff) { - applyNumericTemplate(result); - updateSettings(); - tabMixes(); - } - } else { - int res = QMessageBox::question(this,tr("Apply Template?"),tr("Apply template \"%1\"?").arg(text),QMessageBox::Yes | QMessageBox::No); - if(res!=QMessageBox::Yes) return; - applyTemplate(index.row()); - updateSettings(); - tabMixes(); - } -} - -void Templates::applyNumericTemplate(uint64_t tpl) -{ - clearCurves(); - clearExpos(false); - clearMixes(false); - int8_t heli_ar1[] = {-100, -20, 30, 70, 90}; - int8_t heli_ar2[] = {80, 70, 60, 70, 100}; - int8_t heli_ar3[] = {100, 90, 80, 90, 100}; - int8_t heli_ar4[] = {-30, -15, 0, 50, 100}; - int8_t heli_ar5[] = {-100, -50, 0, 50, 100}; - bool rx[10]; - for (int i=0; i<10 ; i++) { - rx[i]=false; - } - int thrsw=firmware->getCapability(GetThrSwitch); - MixData *md = &model.mixData[0]; - uint8_t spo2ch=(tpl & 0x0F); - tpl>>=4; - uint8_t spo1ch=(tpl & 0x0F); - tpl>>=4; - uint8_t fla2ch=(tpl & 0x0F); - tpl>>=4; - uint8_t fla1ch=(tpl & 0x0F); - tpl>>=4; - uint8_t rud2ch=(tpl & 0x0F); - tpl>>=4; - uint8_t ele2ch=(tpl & 0x0F); - tpl>>=4; - uint8_t ail2ch=(tpl & 0x0F); - tpl>>=4; - uint8_t chstyle=(tpl & 0x03); - tpl>>=2; - uint8_t gyro=(tpl & 0x03); - tpl>>=2; - uint8_t tailtype=(tpl & 0x03); - tpl>>=2; - uint8_t swashtype=(tpl & 0x07); - tpl>>=3; - uint8_t ruddertype=(tpl & 0x03); - tpl>>=2; - uint8_t spoilertype=(tpl & 0x3); - tpl>>=2; - uint8_t flaptype=(tpl & 0x03); - tpl>>=2; - uint8_t ailerontype=(tpl & 0x03); - tpl>>=2; - uint8_t enginetype=(tpl & 0x03); - tpl>>=2; - uint8_t modeltype=(tpl & 0x03); - - #define ICC(x) icc[(x)-1] - uint8_t icc[4] = {0}; - for(uint8_t i=1; i<=4; i++) //generate inverse array - for(uint8_t j=1; j<=4; j++) if(CC(i)==j) icc[j-1]=i; - - int ailerons; - int flaps; - int throttle; - int spoilers; - int elevators; - int rudders; - int sign; - uint8_t rxch; - switch (modeltype) { - case 0: - ailerons=ailerontype; - flaps=flaptype; - throttle=1; - switch (tailtype) { - case 0: - case 1: - rudders=1; - elevators=1; - break; - case 2: - rudders=1; - elevators=2; - break; - } - rxch=ICC(STK_RUD); - md=setDest(rxch); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=100; md->swtch=RawSwitch();strncpy(md->name, tr("RUD").toAscii().data(),6); - if (tailtype==1) { - md=setDest(rxch); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 1); md->weight=-100; md->swtch=RawSwitch();strncpy(md->name, tr("ELE").toAscii().data(),6); - } - rx[rxch-1]=true; - rxch=ICC(STK_ELE); - if (tailtype==1) { - md=setDest(rxch); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=100; md->swtch=RawSwitch();strncpy(md->name, tr("RUD").toAscii().data(),6); - } - md=setDest(rxch); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 1); md->weight=100; md->swtch=RawSwitch();strncpy(md->name, tr("ELE").toAscii().data(),6); - rx[rxch-1]=true; - rxch=ICC(STK_THR); - md=setDest(rxch); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch();strncpy(md->name, tr("THR").toAscii().data(),6); - rx[rxch-1]=true; - if (ail2ch > 0) { - rx[ail2ch-1]=true; - } - if (ele2ch > 0) { - rx[ele2ch-1]=true; - } - if (fla1ch > 0) { - rx[fla1ch-1]=true; - } - if (fla2ch > 0) { - rx[fla2ch-1]=true; - } - if (ailerons>0) { - rxch=ICC(STK_AIL); - md=setDest(rxch); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 3); md->weight=100; md->swtch=RawSwitch();strncpy(md->name, tr("AIL").toAscii().data(),6); - rx[rxch-1]=true; - } - if (ailerons>1) { - if (ail2ch==0) { - for (int j=0; j<10 ; j++) { - if (!rx[j]) { - md=setDest(j+1); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 3); md->weight=100; md->swtch=RawSwitch();strncpy(md->name, tr("AIL2").toAscii().data(),6); - rx[j]=true; - break; - } - } - } else { - md=setDest(ail2ch); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 3); md->weight=100; md->swtch=RawSwitch();strncpy(md->name, tr("AIL2").toAscii().data(),6); - } - } - if (elevators>1) { - if (ele2ch==0) { - for (int j=0; j<10 ; j++) { - if (!rx[j]) { - md=setDest(j+1); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 1); md->weight=-100; md->swtch=RawSwitch();;strncpy(md->name, tr("ELE2").toAscii().data(),6); - rx[j]=true; - break; - } - } - }else{ - md=setDest(ele2ch); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 1); md->weight=-100; md->swtch=RawSwitch();;strncpy(md->name, tr("ELE2").toAscii().data(),6); - } - } - if (flaps>0) { - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,-Board::SWITCH_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6); md->speedUp=4; md->speedDown=4; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6); md->speedUp=4; md->speedDown=4; - } - sign=-1; - for (uint8_t i=0; i< flaps; i++) { - sign*=-1; - int index; - if (i==0) { - index=fla1ch; - } else { - index=fla2ch; - } - if (index==0) { - for (int j=0; j<10 ; j++) { - if (!rx[j]) { - md=setDest(j+1); md->srcRaw=RawSource(SOURCE_TYPE_CH, 10); md->weight=100*sign; md->sOffset=0; md->swtch=RawSwitch();strncpy(md->name, tr("FLAP%1").arg(i+1).toAscii().data(),6); - rx[j]=true; - break; - } - } - } else { - md=setDest(index); md->srcRaw=RawSource(SOURCE_TYPE_CH, 10); md->weight=100*sign; md->sOffset=0; md->swtch=RawSwitch();strncpy(md->name, tr("FLAP%1").arg(i+1).toAscii().data(),6); - } - } - break; - case 1: - setCurve(CURVE5(1),heli_ar1); - setCurve(CURVE5(2),heli_ar2); - setCurve(CURVE5(3),heli_ar3); - setCurve(CURVE5(4),heli_ar4); - setCurve(CURVE5(5),heli_ar5); - setCurve(CURVE5(6),heli_ar5); - switch (swashtype) { - case 0: - model.swashRingData.type = HELI_SWASH_TYPE_90; - break; - case 1: - model.swashRingData.type = HELI_SWASH_TYPE_120; - break; - case 2: - model.swashRingData.type = HELI_SWASH_TYPE_120X; - break; - case 3: - model.swashRingData.type = HELI_SWASH_TYPE_140; - break; - case 4: - model.swashRingData.type = HELI_SWASH_TYPE_NONE; - break; - } - model.swashRingData.collectiveSource = RawSource(SOURCE_TYPE_CH, 10); - - if (chstyle==0) { - if (swashtype!=4) { - md=setDest(1); md->srcRaw=RawSource(SOURCE_TYPE_CYC, 0); md->weight= 100; md->swtch=RawSwitch();strncpy(md->name, tr("ELE").toAscii().data(),6); - md=setDest(2); md->srcRaw=RawSource(SOURCE_TYPE_CYC, 1); md->weight= 100; md->swtch=RawSwitch();strncpy(md->name, tr("AIL").toAscii().data(),6); - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_CYC, 2); md->weight= 100; md->swtch=RawSwitch();strncpy(md->name, tr("PITCH").toAscii().data(),6); - } else { - md=setDest(1); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 3); md->weight= 100; md->swtch=RawSwitch();strncpy(md->name, tr("ELE").toAscii().data(),6); - md=setDest(2); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 1); md->weight= 100; md->swtch=RawSwitch();strncpy(md->name, tr("AIL").toAscii().data(),6); - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_CH, 10); md->weight= 100; md->swtch=RawSwitch();strncpy(md->name, tr("PITCH").toAscii().data(),6); - } - md=setDest(4); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=100; md->swtch=RawSwitch();strncpy(md->name, tr("RUD").toAscii().data(),6); - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF; - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF; - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF; - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,thrsw); md->mltpx=MLTPX_REP; - switch (gyro) { - case 1: - md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=30; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,-Board::SWITCH_GEA);strncpy(md->name, tr("GYRO").toAscii().data(),6); - md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-30; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_GEA);strncpy(md->name, tr("GYRO").toAscii().data(),6); - break; - case 2: - md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,-Board::SWITCH_GEA); md->sOffset=100;strncpy(md->name, tr("GYRO").toAscii().data(),6); - md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_GEA); md->sOffset=100;strncpy(md->name, tr("GYRO").toAscii().data(),6); - break; - } - } else { - if (swashtype!=4) { - md=setDest(1); md->srcRaw=RawSource(SOURCE_TYPE_CYC, 1); md->weight= 100; md->swtch=RawSwitch();strncpy(md->name, tr("AIL").toAscii().data(),6); - md=setDest(2); md->srcRaw=RawSource(SOURCE_TYPE_CYC, 0); md->weight= 100; md->swtch=RawSwitch();strncpy(md->name, tr("ELE").toAscii().data(),6); - md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_CYC, 2); md->weight= 100; md->swtch=RawSwitch();strncpy(md->name, tr("PITCH").toAscii().data(),6); - } else { - md=setDest(1); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 3); md->weight= 100; md->swtch=RawSwitch();strncpy(md->name, tr("AIL").toAscii().data(),6); - md=setDest(2); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 1); md->weight= 100; md->swtch=RawSwitch();strncpy(md->name, tr("ELE").toAscii().data(),6); - md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_CH, 10); md->weight= 100; md->swtch=RawSwitch();strncpy(md->name, tr("PITCH").toAscii().data(),6); - } - md=setDest(4); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=100; md->swtch=RawSwitch();strncpy(md->name, tr("RUD").toAscii().data(),6); - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF; - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF; - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF; - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,thrsw); md->mltpx=MLTPX_REP; - switch (gyro) { - case 1: - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=30; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,-Board::SWITCH_GEA);strncpy(md->name, tr("GYRO").toAscii().data(),6); - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-30; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_GEA);strncpy(md->name, tr("GYRO").toAscii().data(),6); - break; - case 2: - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,-Board::SWITCH_GEA); md->sOffset=100;strncpy(md->name, tr("GYRO").toAscii().data(),6); - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_GEA); md->sOffset=100;strncpy(md->name, tr("GYRO").toAscii().data(),6); - break; - } - } - // collective - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID0); md->curve=CV(4); md->carryTrim=TRIM_OFF; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID1); md->curve=CV(5); md->carryTrim=TRIM_OFF; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID2); md->curve=CV(6); md->carryTrim=TRIM_OFF; - break; - case 2: - ailerons=ailerontype; - flaps=flaptype; - spoilers=spoilertype; - throttle=enginetype; - switch (tailtype) { - case 0: - case 1: - rudders=1; - elevators=1; - break; - case 2: - rudders=1; - elevators=2; - break; - } - if (throttle==1) { - rxch=ICC(STK_THR); - md=setDest(rxch); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch();strncpy(md->name, tr("THR").toAscii().data(),6); - rx[rxch-1]=true; - } - rxch=ICC(STK_RUD); - md=setDest(rxch); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=100; md->swtch=RawSwitch();strncpy(md->name, tr("RUD").toAscii().data(),6); - if (tailtype==1) { - md=setDest(rxch); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 1); md->weight=-100; md->swtch=RawSwitch();strncpy(md->name, tr("RUD").toAscii().data(),6); - } - rx[rxch-1]=true; - rxch=ICC(STK_ELE); - if (tailtype==1) { - md=setDest(rxch); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=-100; md->swtch=RawSwitch();strncpy(md->name, tr("ELE").toAscii().data(),6); - } - md=setDest(rxch); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 1); md->weight=100; md->swtch=RawSwitch();strncpy(md->name, tr("ELE").toAscii().data(),6); - rx[rxch-1]=true; - if (ail2ch > 0) { - rx[ail2ch-1]=true; - } - if (ele2ch > 0) { - rx[ele2ch-1]=true; - } - if (fla1ch > 0) { - rx[fla1ch-1]=true; - } - if (fla2ch > 0) { - rx[fla2ch-1]=true; - } - if (spo1ch > 0) { - rx[spo1ch-1]=true; - } - if (spo2ch > 0) { - rx[spo2ch-1]=true; - } - - if (ailerons>0) { - rxch=ICC(STK_AIL); - md=setDest(rxch); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 3); md->weight=100; md->swtch=RawSwitch();strncpy(md->name, tr("AIL").toAscii().data(),6); - rx[rxch-1]=true; - } - if (ailerons>1) { - if (ail2ch==0) { - for (int j=0; j<10 ; j++) { - if (!rx[j]) { - md=setDest(j+1); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 3); md->weight=100; md->swtch=RawSwitch();strncpy(md->name, tr("AIL2").toAscii().data(),6); - rx[j]=true; - break; - } - } - } else { - md=setDest(ail2ch); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 3); md->weight=100; md->swtch=RawSwitch();strncpy(md->name, tr("AIL2").toAscii().data(),6); - } - } - if (elevators>1) { - if (ele2ch==0) { - for (int j=0; j<10 ; j++) { - if (!rx[j]) { - md=setDest(j+1); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 1); md->weight=-100; md->swtch=RawSwitch();strncpy(md->name, tr("ELE2").toAscii().data(),6); - rx[j]=true; - break; - } - } - } else { - md=setDest(ele2ch); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 1); md->weight=-100; md->swtch=RawSwitch();strncpy(md->name, tr("ELE2").toAscii().data(),6); - } - } - if (flaps>0) { - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,-Board::SWITCH_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6);md->speedUp=4; md->speedDown=4; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6);md->speedUp=4; md->speedDown=4; - } - sign=-1; - for (uint8_t i=0; i< flaps; i++) { - sign*=-1; - int index; - if (i==0) { - index=fla1ch; - } else { - index=fla2ch; - } - if (index==0) { - for (int j=0; j<10 ; j++) { - if (!rx[j]) { - md=setDest(j+1); md->srcRaw=RawSource(SOURCE_TYPE_CH, 10); md->weight=100*sign; md->sOffset=0; md->swtch=RawSwitch();strncpy(md->name, tr("FLAP%1").arg(i+1).toAscii().data(),6); - rx[j]=true; - break; - } - } - } else { - md=setDest(index); md->srcRaw=RawSource(SOURCE_TYPE_CH, 10); md->weight=100*sign; md->sOffset=0; md->swtch=RawSwitch();strncpy(md->name, tr("FLAP%1").arg(i+1).toAscii().data(),6); - } - } - if (spoilers>0) { - md=setDest(12); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,-Board::SWITCH_GEA);strncpy(md->name, tr("SPOIL").toAscii().data(),6); md->speedUp=4;;md->speedDown=4; - md=setDest(12); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_GEA);strncpy(md->name, tr("SPOIL").toAscii().data(),6);md->speedUp=4;md->speedDown=4; - } - sign=-1; - for (uint8_t i=0; i< spoilers; i++) { - sign*=-1; - int index; - if (i==0) { - index=spo1ch; - } else { - index=spo2ch; - } - if (index==0) { - for (int j=0; j<10 ; j++) { - if (!rx[j]) { - md=setDest(j+1); md->srcRaw=RawSource(SOURCE_TYPE_CH, 11); md->weight=100*sign; md->sOffset=0; md->swtch=RawSwitch();strncpy(md->name, tr("SPOIL%1").arg(i+1).toAscii().data(),6); - rx[j]=true; - break; - } - } - } else { - md=setDest(index); md->srcRaw=RawSource(SOURCE_TYPE_CH, 11); md->weight=100*sign; md->sOffset=0; md->swtch=RawSwitch();strncpy(md->name, tr("SPOIL%1").arg(i+1).toAscii().data(),6); - } - } - break; - case 3: - flaps=flaptype; - throttle=enginetype; - rudders=ruddertype; - if (throttle==1) { - rxch=ICC(STK_THR); - md=setDest(rxch); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch();strncpy(md->name, tr("THR").toAscii().data(),6); - rx[rxch-1]=true; - } - rxch=ICC(STK_ELE); - md=setDest(rxch); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 1); md->weight=100; md->swtch=RawSwitch();strncpy(md->name, tr("ELE").toAscii().data(),6); - md=setDest(rxch); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 3); md->weight=100; md->swtch=RawSwitch();strncpy(md->name, tr("ELE").toAscii().data(),6); - rx[rxch-1]=true; - rxch=ICC(STK_AIL); - md=setDest(rxch); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 1); md->weight=-100; md->swtch=RawSwitch();strncpy(md->name, tr("AIL").toAscii().data(),6); - md=setDest(rxch); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 3); md->weight=100; md->swtch=RawSwitch();strncpy(md->name, tr("AIL").toAscii().data(),6); - rx[rxch-1]=true; - if (rudders>0) { - rxch=ICC(STK_RUD); - md=setDest(rxch); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=100; md->swtch=RawSwitch();strncpy(md->name, tr("RUD").toAscii().data(),6); - rx[rxch-1]=true; - } - if (rud2ch > 0) { - rx[rud2ch-1]=true; - } - if (fla1ch > 0) { - rx[fla1ch-1]=true; - } - if (fla2ch > 0) { - rx[fla2ch-1]=true; - } - if (rudders>1) { - if (rud2ch==0) { - for (int j=0; j<10 ; j++) { - if (!rx[j]) { - md=setDest(j+1); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=-100; md->swtch=RawSwitch();strncpy(md->name, tr("RUD2").toAscii().data(),6); - rx[j]=true; - break; - } - } - } else { - md=setDest(rud2ch); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=-100; md->swtch=RawSwitch();strncpy(md->name, tr("RUD2").toAscii().data(),6); - } - } - if (flaps>0) { - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,-Board::SWITCH_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6); md->sOffset=0; md->speedUp=4; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6); md->sOffset=0; md->speedUp=4; - } - sign=-1; - for (uint8_t i=0; i< flaps; i++) { - sign*=-1; - int index; - if (i==0) { - index=fla1ch; - } else { - index=fla2ch; - } - if (index==0) { - for (int j=0; j<10 ; j++) { - if (!rx[j]) { - md=setDest(j+1); md->srcRaw=RawSource(SOURCE_TYPE_CH, 10); md->weight=100*sign; md->sOffset=0; md->speedUp=4; md->speedDown=4; md->swtch=RawSwitch();strncpy(md->name, tr("FLAP%1").arg(i+1).toAscii().data(),6); - rx[j]=true; - break; - } - } - } else { - md=setDest(index); md->srcRaw=RawSource(SOURCE_TYPE_CH, 10); md->weight=100*sign; md->sOffset=0; md->speedUp=4; md->speedDown=4; md->swtch=RawSwitch();strncpy(md->name, tr("FLAP%1").arg(i+1).toAscii().data(),6); - } - } - break; - } - updateHeliTab(); - updateCurvesTab(); - if (modeltype==1 && swashtype!=4) { - ui->tabWidget->setCurrentIndex(1); - } else { - ui->tabWidget->setCurrentIndex(4); - } - resizeEvent(); -} - -void Templates::applyTemplate(uint8_t idx) -{ - int8_t heli_ar1[] = {-100, -20, 30, 70, 90}; - int8_t heli_ar2[] = {80, 70, 60, 70, 100}; - int8_t heli_ar3[] = {100, 90, 80, 90, 100}; - int8_t heli_ar4[] = {-30, -15, 0, 50, 100}; - int8_t heli_ar5[] = {-100, -50, 0, 50, 100}; - - int thrsw=firmware->getCapability(GetThrSwitch); - MixData *md = &model.mixData[0]; - - //CC(STK) -> vSTK - //ICC(vSTK) -> STK - #define ICC(x) icc[(x)-1] - uint8_t icc[4] = {0}; - for(uint8_t i=1; i<=4; i++) //generate inverse array - for(uint8_t j=1; j<=4; j++) if(CC(i)==j) icc[j-1]=i; - - - uint8_t j = 0; - - //Simple 4-Ch - if(idx==j++) { - if (md->destCh) - clearMixes(); - md=setDest(ICC(STK_RUD)); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=100; md->swtch=RawSwitch(); - md=setDest(ICC(STK_ELE)); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 1); md->weight=100; md->swtch=RawSwitch(); - md=setDest(ICC(STK_THR)); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(); - md=setDest(ICC(STK_AIL)); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 3); md->weight=100; md->swtch=RawSwitch(); - } - - //T-Cut - if(idx==j++) { - md=setDest(ICC(STK_THR)); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,thrsw); md->mltpx=MLTPX_REP; - } - - //sticky t-cut - if(idx==j++) { - md=setDest(ICC(STK_THR)); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(Board::SWITCH_TYPE_VIRTUAL, 12); md->mltpx=MLTPX_REP; - md=setDest(14); md->srcRaw=RawSource(SOURCE_TYPE_CH, 13); md->weight= 100; md->swtch=RawSwitch(); - md=setDest(14); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(Board::SWITCH_TYPE_VIRTUAL, 11); md->mltpx=MLTPX_REP; - md=setDest(14); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight= 100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,thrsw); md->mltpx=MLTPX_REP; - setSwitch(0xB, LS_FN_VNEG, RawSource(SOURCE_TYPE_STICK, 2).toValue(), -99); - setSwitch(0xC, LS_FN_VPOS, RawSource(SOURCE_TYPE_CH, 13).toValue(), 0); - updateSwitchesTab(); - } - - //V-Tail - if(idx==j++) { - clearMixes(); - md=setDest(ICC(STK_THR)); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(); - md=setDest(ICC(STK_AIL)); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 3); md->weight=100; md->swtch=RawSwitch(); - md=setDest(ICC(STK_RUD)); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight= 100; md->swtch=RawSwitch(); - md=setDest(ICC(STK_RUD)); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 1); md->weight=-100; md->swtch=RawSwitch(); - md=setDest(ICC(STK_ELE)); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight= 100; md->swtch=RawSwitch(); - md=setDest(ICC(STK_ELE)); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 1); md->weight= 100; md->swtch=RawSwitch(); - } - - //Elevon\\Delta - if(idx==j++) { - clearMixes(); - md=setDest(ICC(STK_THR)); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(); - md=setDest(ICC(STK_RUD)); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=100; md->swtch=RawSwitch(); - md=setDest(ICC(STK_ELE)); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 1); md->weight= 100; md->swtch=RawSwitch(); - md=setDest(ICC(STK_ELE)); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 3); md->weight= 100; md->swtch=RawSwitch(); - md=setDest(ICC(STK_AIL)); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 1); md->weight=-100; md->swtch=RawSwitch(); - md=setDest(ICC(STK_AIL)); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 3); md->weight=100; md->swtch=RawSwitch(); - } - - //Heli Setup - if(idx==j++) { - clearMixes(); //This time we want a clean slate - clearCurves(); - - // Set up Mixes - // 3 cyclic channels - md=setDest(1); md->srcRaw=RawSource(SOURCE_TYPE_CYC, 0); md->weight= 100; md->swtch=RawSwitch(); - md=setDest(2); md->srcRaw=RawSource(SOURCE_TYPE_CYC, 1); md->weight= 100; md->swtch=RawSwitch(); - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_CYC, 2); md->weight= 100; md->swtch=RawSwitch(); - - // rudder - md=setDest(4); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=100; md->swtch=RawSwitch(); - - // throttle - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF; - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF; - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF; - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,thrsw); md->mltpx=MLTPX_REP; - - // gyro gain - md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=30; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,-Board::SWITCH_GEA); - md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-30; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_GEA); - - // collective - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID0); md->curve=CV(4); md->carryTrim=TRIM_OFF; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID1); md->curve=CV(5); md->carryTrim=TRIM_OFF; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID2); md->curve=CV(6); md->carryTrim=TRIM_OFF; - - model.swashRingData.type = HELI_SWASH_TYPE_120; - model.swashRingData.collectiveSource = RawSource(SOURCE_TYPE_CH, 10); - - // set up Curves - setCurve(CURVE5(1),heli_ar1); - setCurve(CURVE5(2),heli_ar2); - setCurve(CURVE5(3),heli_ar3); - setCurve(CURVE5(4),heli_ar4); - setCurve(CURVE5(5),heli_ar5); - setCurve(CURVE5(6),heli_ar5); - - // make sure curves are redrawn - updateHeliTab(); - updateCurvesTab(); - resizeEvent(); - } - - //Heli Setup gyro gain control - if(idx==j++) { - clearMixes(); //This time we want a clean slate - clearCurves(); - - // Set up Mixes - // 3 cyclic channels - md=setDest(1); md->srcRaw=RawSource(SOURCE_TYPE_CYC, 0); md->weight= 100; md->swtch=RawSwitch(); - md=setDest(2); md->srcRaw=RawSource(SOURCE_TYPE_CYC, 1); md->weight= 100; md->swtch=RawSwitch(); - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_CYC, 2); md->weight= 100; md->swtch=RawSwitch(); - - // rudder - md=setDest(4); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=100; md->swtch=RawSwitch(); - - // throttle - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF; - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF; - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF; - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,thrsw); md->mltpx=MLTPX_REP; - - // gyro gain - md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,-Board::SWITCH_GEA); md->sOffset=100; - md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_GEA); md->sOffset=100; - - // collective - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID0); md->curve=CV(4); md->carryTrim=TRIM_OFF; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID1); md->curve=CV(5); md->carryTrim=TRIM_OFF; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID2); md->curve=CV(6); md->carryTrim=TRIM_OFF; - - model.swashRingData.type = HELI_SWASH_TYPE_120; - model.swashRingData.collectiveSource = RawSource(SOURCE_TYPE_CH, 10); - - // set up Curves - setCurve(CURVE5(1),heli_ar1); - setCurve(CURVE5(2),heli_ar2); - setCurve(CURVE5(3),heli_ar3); - setCurve(CURVE5(4),heli_ar4); - setCurve(CURVE5(5),heli_ar5); - setCurve(CURVE5(6),heli_ar5); - - // make sure curves are redrawn - updateHeliTab(); - updateCurvesTab(); - resizeEvent(); - } - - // gyro gain control - if(idx==j++) { - int res = QMessageBox::question(this,tr("Clear Mixes?"),tr("Really clear existing mixes on CH6?"),QMessageBox::Yes | QMessageBox::No); - if(res!=QMessageBox::Yes) return; - // first clear mix on ch6 - bool found=true; - while (found) { - found=false; - for (int i=0; i< firmware->getCapability(Mixes); i++) { - if (model.mixData[i].destCh==6) { - gm_deleteMix(i); - found=true; - break; - } - } - } - md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,-Board::SWITCH_GEA); md->sOffset=100; - md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_GEA); md->sOffset=100; - } - - //Heli Setup futaba style - if(idx==j++) { - clearMixes(); //This time we want a clean slate - clearCurves(); - - // Set up Mixes - // 3 cyclic channels - md=setDest(1); md->srcRaw=RawSource(SOURCE_TYPE_CYC, 1); md->weight= 100; md->swtch=RawSwitch(); - md=setDest(2); md->srcRaw=RawSource(SOURCE_TYPE_CYC, 0); md->weight= 100; md->swtch=RawSwitch(); - md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_CYC, 2); md->weight= 100; md->swtch=RawSwitch(); - - // rudder - md=setDest(4); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=100; md->swtch=RawSwitch(); - - // throttle - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF; - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF; - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF; - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,thrsw); md->mltpx=MLTPX_REP; - - // gyro gain - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=30; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,-Board::SWITCH_GEA); - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-30; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_GEA); - - // collective - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID0); md->curve=CV(4); md->carryTrim=TRIM_OFF; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID1); md->curve=CV(5); md->carryTrim=TRIM_OFF; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID2); md->curve=CV(6); md->carryTrim=TRIM_OFF; - - model.swashRingData.type = HELI_SWASH_TYPE_120; - model.swashRingData.collectiveSource = RawSource(SOURCE_TYPE_CH, 10); - - // set up Curves - setCurve(CURVE5(1),heli_ar1); - setCurve(CURVE5(2),heli_ar2); - setCurve(CURVE5(3),heli_ar3); - setCurve(CURVE5(4),heli_ar4); - setCurve(CURVE5(5),heli_ar5); - setCurve(CURVE5(6),heli_ar5); - - // make sure curves are redrawn - updateHeliTab(); - updateCurvesTab(); - resizeEvent(); - } - - // Heli setup futaba style with gyro gain control - if(idx==j++) { - clearMixes(); //This time we want a clean slate - clearCurves(); - - // Set up Mixes - // 3 cyclic channels - md=setDest(1); md->srcRaw=RawSource(SOURCE_TYPE_CYC, 1); md->weight= 100; md->swtch=RawSwitch(); - md=setDest(2); md->srcRaw=RawSource(SOURCE_TYPE_CYC, 0); md->weight= 100; md->swtch=RawSwitch(); - md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_CYC, 2); md->weight= 100; md->swtch=RawSwitch(); - - // rudder - md=setDest(4); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=100; md->swtch=RawSwitch(); - - // throttle - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF; - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF; - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF; - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,thrsw); md->mltpx=MLTPX_REP; - - // gyro gain - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,-Board::SWITCH_GEA); md->sOffset=100; - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_GEA); md->sOffset=100; - - // collective - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID0); md->curve=CV(4); md->carryTrim=TRIM_OFF; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID1); md->curve=CV(5); md->carryTrim=TRIM_OFF; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_ID2); md->curve=CV(6); md->carryTrim=TRIM_OFF; - - model.swashRingData.type = HELI_SWASH_TYPE_120; - model.swashRingData.collectiveSource = RawSource(SOURCE_TYPE_CH, 10); - - // set up Curves - setCurve(CURVE5(1),heli_ar1); - setCurve(CURVE5(2),heli_ar2); - setCurve(CURVE5(3),heli_ar3); - setCurve(CURVE5(4),heli_ar4); - setCurve(CURVE5(5),heli_ar5); - setCurve(CURVE5(6),heli_ar5); - - // make sure curves are redrawn - updateHeliTab(); - updateCurvesTab(); - resizeEvent(); - } - - // gyro gain control futaba style - if(idx==j++) { - int res = QMessageBox::question(this,tr("Clear Mixes?"),tr("Really clear existing mixes on CH5?"),QMessageBox::Yes | QMessageBox::No); - if(res!=QMessageBox::Yes) return; - // first clear mix on ch6 - bool found=true; - while (found) { - found=false; - for (int i=0; i< firmware->getCapability(Mixes); i++) { - if (model.mixData[i].destCh==5) { - gm_deleteMix(i); - found=true; - break; - } - } - } - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,-Board::SWITCH_GEA); md->sOffset=100; - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(Board::SWITCH_TYPE_SWITCH,Board::SWITCH_GEA); md->sOffset=100; - } - - //Servo Test - if(idx==j++) { - md=setDest(15); md->srcRaw=RawSource(SOURCE_TYPE_CH, 15); md->weight= 100; md->speedUp = 8; md->speedDown = 8; md->swtch=RawSwitch(); - md=setDest(16); md->srcRaw=RawSource(SOURCE_TYPE_CUSTOM_SWITCH, 0); md->weight= 110; md->swtch=RawSwitch(); - md=setDest(16); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-110; md->swtch=RawSwitch(Board::SWITCH_TYPE_VIRTUAL, 2); md->mltpx=MLTPX_REP; - md=setDest(16); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight= 110; md->swtch=RawSwitch(Board::SWITCH_TYPE_VIRTUAL, 3); md->mltpx=MLTPX_REP; - setSwitch(1, LS_FN_LESS, RawSource(SOURCE_TYPE_CH, 14).toValue(), RawSource(SOURCE_TYPE_CH, 15).toValue()); - setSwitch(2, LS_FN_VPOS, RawSource(SOURCE_TYPE_CH, 14).toValue(), 105); - setSwitch(3, LS_FN_VNEG, RawSource(SOURCE_TYPE_CH, 14).toValue(), -105); - - // redraw switches tab - updateSwitchesTab(); - } - - //MultiCopter - if(idx==j++) { - if (md->destCh) - clearMixes(); - md=setDest(1); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 3); md->weight=50; md->swtch=RawSwitch(); //CH1 AIL - md=setDest(2); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 1); md->weight=-50; md->swtch=RawSwitch(); //CH2 ELE - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(); //CH3 THR - md=setDest(4); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=100; md->swtch=RawSwitch(); //CH4 RUD - } -} - -MixData* Templates::setDest(uint8_t dch) -{ - uint8_t i = 0; - while ((g_model.mixData[i].destCh<=dch) && (g_model.mixData[i].destCh) && (igetCapability(Mixes))) i++; - if(i==firmware->getCapability(Mixes)) return &g_model.mixData[0]; - - memmove(&g_model.mixData[i+1],&g_model.mixData[i], - (firmware->getCapability(Mixes)-(i+1))*sizeof(MixData) ); - memset(&g_model.mixData[i],0,sizeof(MixData)); - g_model.mixData[i].destCh = dch; - return &g_model.mixData[i]; -} diff --git a/companion/src/modeledit/templates.h b/companion/src/modeledit/templates.h deleted file mode 100644 index a3e1af8fd..000000000 --- a/companion/src/modeledit/templates.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (C) OpenTX - * - * Based on code named - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#ifndef _TEMPLATES_H_ -#define _TEMPLATES_H_ - -#include -#include "eeprominterface.h" - -class Templates : public QWidget -{ - Q_OBJECT - - public: - Templates(QWidget *parent, ModelData & model); - ~Templates(); - - private slots: - void onDoubleClicked(QModelIndex index); - - private: - void applyNumericTemplate(uint64_t tpl); - ModelData & model; -}; - -#endif // _TEMPLATES_H_ diff --git a/radio/src/CMakeLists.txt b/radio/src/CMakeLists.txt index f3fe9bbaa..aac4399b9 100644 --- a/radio/src/CMakeLists.txt +++ b/radio/src/CMakeLists.txt @@ -150,12 +150,6 @@ if(RAMBACKUP) set(SRC ${SRC} storage/rambackup.cpp storage/rlc.cpp) endif() -if(TEMPLATES) - add_definitions(-DTEMPLATES) - set(SRC ${SRC} templates.cpp) - set(GUI_SRC ${GUI_SRC} model_templates.cpp) -endif() - if(NOT LUA STREQUAL NO) add_definitions(-DLUA) if(LUA_COMPILER) diff --git a/radio/src/gui/128x64/menus.h b/radio/src/gui/128x64/menus.h index 407b7dfd3..e51504314 100644 --- a/radio/src/gui/128x64/menus.h +++ b/radio/src/gui/128x64/menus.h @@ -121,7 +121,6 @@ enum MenuModelIndexes { #endif CASE_FRSKY(MENU_MODEL_TELEMETRY_FRSKY) MENU_MODEL_DISPLAY, - CASE_TEMPLATES(MENU_MODEL_TEMPLATES) MENU_MODEL_PAGES_COUNT }; @@ -161,7 +160,6 @@ static const MenuHandlerFunc menuTabModel[] PROGMEM = { #endif CASE_FRSKY(menuModelTelemetryFrsky) menuModelDisplay, - CASE_TEMPLATES(menuModelTemplates) }; void menuStatisticsView(event_t event); diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index ccee9f60a..cc6df41fe 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -347,12 +347,6 @@ void defaultInputs() } #endif -#if defined(TEMPLATES) -inline void applyDefaultTemplate() -{ - applyTemplate(TMPL_SIMPLE_4CH); // calls storageDirty internally -} -#else void applyDefaultTemplate() { #if defined(VIRTUAL_INPUTS) @@ -372,7 +366,6 @@ void applyDefaultTemplate() #endif } } -#endif #if defined(CPUARM) && defined(EEPROM) void checkModelIdUnique(uint8_t index, uint8_t module) diff --git a/radio/src/opentx.h b/radio/src/opentx.h index dc6f766a5..e7c1aaa1e 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -147,12 +147,6 @@ #define CASE_HELI(x) #endif -#if defined(TEMPLATES) - #define CASE_TEMPLATES(x) x, -#else - #define CASE_TEMPLATES(x) -#endif - #if defined(FLIGHT_MODES) #define CASE_FLIGHT_MODES(x) x, #else @@ -443,9 +437,6 @@ typedef struct { #include "strhelpers.h" #include "gui.h" -#if defined(TEMPLATES) - #include "templates.h" -#endif #if !defined(SIMU) #define assert(x) diff --git a/radio/src/templates.cpp b/radio/src/templates.cpp deleted file mode 100644 index a13b3a673..000000000 --- a/radio/src/templates.cpp +++ /dev/null @@ -1,260 +0,0 @@ -/* - * Copyright (C) OpenTX - * - * Based on code named - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -/* - * - * ============================================================ - * Templates file - * - * eccpm - * crow - * throttle cut - * flaperon - * elevon - * v-tail - * throttle hold - * Aileron Differential - * Spoilers - * Snap Roll - * ELE->Flap - * Flap->ELE - * - */ - -#include "opentx.h" - - #pragma message("Templates are not implemented on this board") - -MixData* setDest(uint8_t dch, uint8_t src, bool clear=false) -{ - uint8_t i = 0; - MixData * mix; - - while (1) { - mix = mixAddress(i); - if (mix->srcRaw && mix->destCh <= dch) { - if (clear && mix->destCh == dch) { - deleteExpoMix(0, i); - } - else { - if (++i==MAX_MIXERS) { - // TODO should return null pointer but needs to be tested then - mix = mixAddress(0); - break; - } - } - } - else { - break; - } - } - - memmove(mix+1, mix, (MAX_MIXERS-(i+1))*sizeof(MixData) ); - memclear(mix, sizeof(MixData)); - mix->destCh = dch; - mix->srcRaw = src; - mix->weight = 100; - return mix; -} - -void mixSetWeight(MixData* md, int8_t weight) -{ - u_int8int16_t tmp; - tmp.word=weight; - MD_UNION_TO_WEIGHT(tmp,md); - // MD_SETWEIGHT(md,weight); doesn't matter here in code cost compiler optimizes this anyway -} - -#if defined(PCBTARANIS) - #define TMPL_INPUT(x) (MIXSRC_FIRST_INPUT+channel_order(x)-1) -#else - #define clearInputs() - #define defaultInputs() - #define TMPL_INPUT(x) (MIXSRC_Rud+x-1) -#endif - -void clearMixes() -{ - memset(g_model.mixData, 0, sizeof(g_model.mixData)); // clear all mixes -} - -void clearCurves() -{ - memclear(g_model.curves, sizeof(g_model.curves) + sizeof(g_model.points)); // clear all curves -} - -void setCurve(uint8_t c, const pm_int8_t ar[]) -{ - int8_t * cv = curveAddress(c); - for (uint8_t i=0; i<5; i++) { - cv[i] = pgm_read_byte(&ar[i]); - } -} - -void setLogicalSwitch(uint8_t idx, uint8_t func, int8_t v1, int8_t v2) -{ - LogicalSwitchData *cs = lswAddress(idx-1); - cs->func = func; - cs->v1 = v1; - cs->v2 = v2; -} - -const pm_int8_t heli_ar1[] PROGMEM = {-100, 20, 30, 70, 90}; -const pm_int8_t heli_ar2[] PROGMEM = {80, 70, 60, 70, 100}; -const pm_int8_t heli_ar3[] PROGMEM = {100, 90, 80, 90, 100}; -const pm_int8_t heli_ar4[] PROGMEM = {-30, -15, 0, 50, 100}; -const pm_int8_t heli_ar5[] PROGMEM = {-100, -50, 0, 50, 100}; - -void applyTemplate(uint8_t idx) -{ - MixData *md; - - //CC(STK) -> vSTK - //ICC(vSTK) -> STK -#define ICC(x) icc[(x)-1] - uint8_t icc[4] = {0}; - for (uint8_t i=0; i<4; i++) { //generate inverse array - for(uint8_t j=0; j<4; j++) - if(CC(i+1)==j+MIXSRC_Rud) icc[j]=i; - } - - switch (idx) { - case TMPL_CLEAR_MIXES: - case TMPL_SIMPLE_4CH: -#if defined(HELI) && defined(CURVES) - case TMPL_HELI_SETUP: -#endif - clearMixes(); - break; - } - - switch (idx) { - // Simple 4-Ch - case TMPL_SIMPLE_4CH: - defaultInputs(); - setDest(ICC(STK_RUD), TMPL_INPUT(STK_RUD)); - setDest(ICC(STK_ELE), TMPL_INPUT(STK_ELE)); - setDest(ICC(STK_THR), TMPL_INPUT(STK_THR)); - setDest(ICC(STK_AIL), TMPL_INPUT(STK_AIL)); - break; - - // Sticky-T-Cut - case TMPL_STI_THR_CUT: - md=setDest(ICC(STK_THR), MIXSRC_MAX); mixSetWeight(md, -100); md->swtch=SWSRC_SWC; md->mltpx=MLTPX_REP; - md=setDest(13, MIXSRC_CH14); // md->weight= 100; done by setDest anyway - md=setDest(13, MIXSRC_MAX); mixSetWeight(md, -100); md->swtch=SWSRC_SWB; md->mltpx=MLTPX_REP; - md=setDest(13, MIXSRC_MAX); /* md->weight= 100;*/ md->swtch=SWSRC_THR; md->mltpx=MLTPX_REP; - setLogicalSwitch(11, LS_FUNC_VNEG, STK_THR, -99); - setLogicalSwitch(12, LS_FUNC_VPOS, MIXSRC_CH14, 0); - break; - - // V-Tail - case TMPL_V_TAIL: - defaultInputs(); - setDest(ICC(STK_RUD), TMPL_INPUT(STK_RUD), true); - md=setDest(ICC(STK_RUD), TMPL_INPUT(STK_ELE)); mixSetWeight(md, -100); - setDest(ICC(STK_ELE), TMPL_INPUT(STK_RUD), true); - setDest(ICC(STK_ELE), TMPL_INPUT(STK_ELE)); - break; - - // Elevon\\Delta - case TMPL_ELEVON_DELTA: - defaultInputs(); - setDest(ICC(STK_ELE), MIXSRC_Ele, true); - setDest(ICC(STK_ELE), MIXSRC_Ail); - setDest(ICC(STK_AIL), MIXSRC_Ele, true); - md=setDest(ICC(STK_AIL), MIXSRC_Ail); mixSetWeight(md, -100); - break; - - // eCCPM - case TMPL_ECCPM: - md=setDest(ICC(STK_ELE), MIXSRC_Ele, true); md->weight= 72; - md=setDest(ICC(STK_ELE), MIXSRC_Thr); md->weight= 55; - md=setDest(ICC(STK_AIL), MIXSRC_Ele, true); mixSetWeight(md, -36); - md=setDest(ICC(STK_AIL), MIXSRC_Ail); md->weight= 62; - md=setDest(ICC(STK_AIL), MIXSRC_Thr); md->weight= 55; - md=setDest(5, MIXSRC_Ele, true); mixSetWeight(md, -36); - md=setDest(5, MIXSRC_Ail); mixSetWeight(md, -62); - md=setDest(5, MIXSRC_Thr); md->weight= 55; - break; - -#if defined(HELI) && defined(CURVES) - // Heli Setup - case TMPL_HELI_SETUP: - clearCurves(); - - //Set up Mixes - // 3 cyclic channels - md=setDest(0, MIXSRC_CYC1); // md->weight=100; - md=setDest(1, MIXSRC_CYC2); // md->weight=100; - md=setDest(2, MIXSRC_CYC3); // md->weight=100; - - // rudder - md=setDest(3, MIXSRC_Rud); // md->weight=100; - - // throttle -#if defined(PCBTARANIS) - // TODO -#else - md=setDest(4, MIXSRC_Thr); md->swtch=SWSRC_ID0; mixSetCurve(md, 0); md->carryTrim=TRIM_OFF; - md=setDest(4, MIXSRC_Thr); md->swtch=SWSRC_ID1; mixSetCurve(md, 1); md->carryTrim=TRIM_OFF; - md=setDest(4, MIXSRC_Thr); md->swtch=SWSRC_ID2; mixSetCurve(md, 2); md->carryTrim=TRIM_OFF; -#endif - md=setDest(4, MIXSRC_MAX); mixSetWeight(md, -100); md->swtch=SWSRC_THR; md->mltpx=MLTPX_REP; - - // gyro gain - md=setDest(5, MIXSRC_MAX); md->weight= 30; md->swtch=-SWSRC_GEA; - md=setDest(5, MIXSRC_MAX); mixSetWeight(md, -30); md->swtch= SWSRC_GEA; - - // collective -#if defined(PCBTARANIS) - // TODO -#else - md=setDest(10, MIXSRC_Thr); /*md->weight= 100;*/ md->swtch=SWSRC_ID0; mixSetCurve(md, 3); md->carryTrim=TRIM_OFF; - md=setDest(10, MIXSRC_Thr); /*md->weight= 100;*/ md->swtch=SWSRC_ID1; mixSetCurve(md, 4); md->carryTrim=TRIM_OFF; - md=setDest(10, MIXSRC_Thr); /*md->weight= 100;*/ md->swtch=SWSRC_ID2; mixSetCurve(md, 5); md->carryTrim=TRIM_OFF; -#endif - - g_model.swashR.collectiveSource = MIXSRC_CH11; - g_model.swashR.type = SWASH_TYPE_120; - - // curves - setCurve(0, heli_ar1); - setCurve(1, heli_ar2); - setCurve(2, heli_ar3); - setCurve(3, heli_ar4); - setCurve(4, heli_ar5); - setCurve(5, heli_ar5); - break; -#endif - - // Servo Test - case TMPL_SERVO_TEST: - md=setDest(MAX_OUTPUT_CHANNELS-1, MIXSRC_SW1, true); md->weight=110; md->mltpx=MLTPX_ADD; md->delayUp = 6; md->delayDown = 6; md->speedUp = 8; md->speedDown = 8; - setLogicalSwitch(1, LS_FUNC_VNEG, MIXSRC_LAST_CH, 0); - break; - - default: - break; - - } - - storageDirty(EE_MODEL); -} diff --git a/radio/src/templates.h b/radio/src/templates.h deleted file mode 100644 index 2fe5a34fa..000000000 --- a/radio/src/templates.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (C) OpenTX - * - * Based on code named - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -/* - * ============================================================ - * Templates file - * - * eccpm - * crow - * throttle cut - * flaperon - * elevon - * v-tail - * throttle hold - * Aileron Differential - * Spoilers - * Snap Roll - * ELE->Flap - * Flap->ELE - * - */ - -#ifndef _TEMPLATES_H_ -#define _TEMPLATES_H_ - -#include - -#define STK_RUD 1 -#define STK_ELE 2 -#define STK_THR 3 -#define STK_AIL 4 -#define STK_P1 5 -#define STK_P2 6 -#define STK_P3 7 - -#define CV(x) (CURVE_BASE+(x)-1) -#define CC(x) (MIXSRC_Rud - 1 + channel_order(x)) // need to invert this to work with dest - -#if defined(PCBTARANIS) - #define mixSetCurve(mix, idx) mix->curve.type=CURVE_REF_CUSTOM; mix->curve.value=idx -#else - #define mixSetCurve(mix, idx) mix->curveMode=MODE_CURVE; mix->curveParam=CURVE_BASE+idx -#endif - -enum Templates { - TMPL_CLEAR_MIXES, - TMPL_SIMPLE_4CH, - TMPL_STI_THR_CUT, - TMPL_V_TAIL, - TMPL_ELEVON_DELTA, - TMPL_ECCPM, -#if defined(HELI) && defined(CURVES) - TMPL_HELI_SETUP, -#endif - TMPL_SERVO_TEST, - TMPL_COUNT -}; - -void clearMixes(); -void clearCurves(); -void applyTemplate(uint8_t idx); - -#endif // _TEMPLATES_H_ - - diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index 251a4d3f6..4d6a55491 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -70,9 +70,6 @@ const pm_char STR_OPEN9X[] PROGMEM = ISTR(AMPSRC) ISTR(VARIOSRC) ISTR(VTELEMSCREENTYPE) -#if defined(TEMPLATES) - ISTR(VTEMPLATES) -#endif #if defined(HELI) ISTR(VSWASHTYPE) #endif @@ -340,9 +337,6 @@ const pm_char STR_MENUTELEMETRY[] PROGMEM = TR_MENUTELEMETRY; const pm_char STR_LIMIT[] PROGMEM = TR_LIMIT; #endif -#if defined(TEMPLATES) -const pm_char STR_MENUTEMPLATES[] PROGMEM = TR_MENUTEMPLATES; -#endif const pm_char STR_MENUSTAT[] PROGMEM = TR_MENUSTAT; const pm_char STR_MENUDEBUG[] PROGMEM = TR_MENUDEBUG; diff --git a/radio/src/translations.h b/radio/src/translations.h index cf8bd26cc..9a0e57672 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -163,12 +163,7 @@ extern const pm_char STR_OPEN9X[]; #define OFS_VARIOSRC (OFS_AMPSRC + sizeof(TR_AMPSRC)) #define OFS_VSCREEN (OFS_VARIOSRC + sizeof(TR_VARIOSRC)) #define OFS_VTEMPLATES (OFS_VSCREEN + sizeof(TR_VTELEMSCREENTYPE)) -#if defined(TEMPLATES) - #define TR_VTEMPLATES TR_TEMPLATE_CLEAR_MIXES TR_TEMPLATE_SIMPLE_4CH TR_TEMPLATE_STICKY_TCUT TR_TEMPLATE_VTAIL TR_TEMPLATE_DELTA TR_TEMPLATE_ECCPM TR_TEMPLATE_HELI TR_TEMPLATE_SERVO_TEST - #define OFS_VSWASHTYPE (OFS_VTEMPLATES + sizeof(TR_VTEMPLATES)) -#else #define OFS_VSWASHTYPE (OFS_VTEMPLATES) -#endif #if defined(HELI) #define OFS_VKEYS (OFS_VSWASHTYPE + sizeof(TR_VSWASHTYPE)) #else @@ -264,9 +259,6 @@ extern const pm_char STR_OPEN9X[]; #define STR_VTELEMSCREENTYPE (STR_OPEN9X + OFS_VSCREEN) #define STR_TELEMCHNS (STR_OPEN9X + OFS_TELEMCHNS) -#if defined(TEMPLATES) - #define STR_VTEMPLATES (STR_OPEN9X + OFS_VTEMPLATES) -#endif #if defined(HELI) #define STR_VSWASHTYPE (STR_OPEN9X + OFS_VSWASHTYPE)