1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-21 15:25:17 +03:00

Re #2239: PPM output type added for 9XR-PRO (open drain or push-pull)

This commit is contained in:
Damjan Adamic 2015-05-04 20:33:17 +02:00
parent 1609b1236d
commit 60b2a378dd
20 changed files with 198 additions and 25 deletions

View file

@ -821,6 +821,7 @@ class ModuleData {
int failsafeChannels[C9X_NUM_CHNOUT];
int ppmDelay;
bool ppmPulsePol; // false = positive
bool ppmOutputType; // false = open drain, true = push pull
int ppmFrameLength;
void clear() { memset(this, 0, sizeof(ModuleData)); }
QString polarityToString() { return ppmPulsePol ? QObject::tr("Positive") : QObject::tr("Negative"); }

View file

@ -2983,7 +2983,16 @@ OpenTxModelData::OpenTxModelData(ModelData & modelData, BoardEnum board, unsigne
internalField.Append(new SignedField<16>(modelData.moduleData[module].failsafeChannels[i]));
internalField.Append(new ConversionField< SignedField<8> >(modelData.moduleData[module].ppmDelay, exportPpmDelay, importPpmDelay));
internalField.Append(new SignedField<8>(modelData.moduleData[module].ppmFrameLength));
internalField.Append(new BoolField<8>(modelData.moduleData[module].ppmPulsePol));
if (IS_9XRPRO(board)) {
internalField.Append(new BoolField<1>(modelData.moduleData[module].ppmPulsePol));
internalField.Append(new BoolField<1>(modelData.moduleData[module].ppmOutputType));
internalField.Append(new SpareBitsField<6>());
}
else {
internalField.Append(new BoolField<1>(modelData.moduleData[module].ppmPulsePol));
internalField.Append(new SpareBitsField<7>());
}
}
}

View file

@ -204,6 +204,7 @@ ModulePanel::~ModulePanel()
#define MASK_CHANNELS_RANGE 8
#define MASK_PPM_FIELDS 16
#define MASK_FAILSAFES 32
#define MASK_OPEN_DRAIN 64
void ModulePanel::update()
{
@ -230,6 +231,9 @@ void ModulePanel::update()
break;
case PPM:
mask |= MASK_PPM_FIELDS | MASK_CHANNELS_RANGE| MASK_CHANNELS_COUNT;
if (IS_9XRPRO(firmware->getBoard())) {
mask |= MASK_OPEN_DRAIN;
}
break;
case OFF:
default:
@ -259,6 +263,9 @@ void ModulePanel::update()
ui->label_ppmPolarity->setVisible(mask & MASK_PPM_FIELDS);
ui->ppmPolarity->setVisible(mask & MASK_PPM_FIELDS);
ui->ppmPolarity->setCurrentIndex(module.ppmPulsePol);
ui->label_ppmOutputType->setVisible(mask & MASK_OPEN_DRAIN);
ui->ppmOutputType->setVisible(mask & MASK_OPEN_DRAIN);
ui->ppmOutputType->setCurrentIndex(module.ppmOutputType);
ui->label_ppmDelay->setVisible(mask & MASK_PPM_FIELDS);
ui->ppmDelay->setVisible(mask & MASK_PPM_FIELDS);
ui->ppmDelay->setValue(module.ppmDelay);
@ -306,6 +313,12 @@ void ModulePanel::on_ppmPolarity_currentIndexChanged(int index)
emit modified();
}
void ModulePanel::on_ppmOutputType_currentIndexChanged(int index)
{
module.ppmOutputType = index;
emit modified();
}
void ModulePanel::on_channelsCount_editingFinished()
{
if (!lock) {

View file

@ -55,6 +55,7 @@ class ModulePanel : public ModelPanel
void on_channelsCount_editingFinished();
void on_channelsStart_editingFinished();
void on_ppmPolarity_currentIndexChanged(int index);
void on_ppmOutputType_currentIndexChanged(int index);
void on_ppmFrameLength_editingFinished();
void on_rxNumber_editingFinished();
void on_failsafeMode_currentIndexChanged(int value);

View file

@ -6,7 +6,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>692</width>
<width>737</width>
<height>300</height>
</rect>
</property>
@ -545,6 +545,27 @@
</property>
</widget>
</item>
<item row="5" column="2">
<widget class="QLabel" name="label_ppmOutputType">
<property name="text">
<string>Output type</string>
</property>
</widget>
</item>
<item row="5" column="3">
<widget class="QComboBox" name="ppmOutputType">
<item>
<property name="text">
<string>Open Drain</string>
</property>
</item>
<item>
<property name="text">
<string>Push Pull</string>
</property>
</item>
</widget>
</item>
</layout>
</widget>
</item>
@ -559,6 +580,7 @@
<tabstop>ppmPolarity</tabstop>
<tabstop>ppmDelay</tabstop>
<tabstop>failsafeMode</tabstop>
<tabstop>ppmOutputType</tabstop>
<tabstop>rxNumber</tabstop>
</tabstops>
<resources/>

View file

@ -75,6 +75,9 @@ enum menuModelSetupItems {
ITEM_MODEL_EXTERNAL_MODULE_MODE,
ITEM_MODEL_EXTERNAL_MODULE_CHANNELS,
ITEM_MODEL_EXTERNAL_MODULE_BIND,
#if defined(PCBSKY9X) && defined(REVX)
ITEM_MODEL_EXTERNAL_MODULE_OUTPUT_TYPE,
#endif
ITEM_MODEL_EXTERNAL_MODULE_FAILSAFE,
#if defined(PCBSKY9X) && !defined(REVA) && !defined(REVX)
ITEM_MODEL_EXTRA_MODULE_LABEL,
@ -112,6 +115,12 @@ void menuModelSetup(uint8_t event)
#define IF_EXTERNAL_MODULE_ON(x) (g_model.externalModule == MODULE_TYPE_NONE ? HIDDEN_ROW : (uint8_t)(x))
#define IS_D8_RX(x) (g_model.moduleData[x].rfProtocol == RF_PROTO_D8)
#define EXTERNAL_MODULE_CHANNELS_ROWS() IF_EXTERNAL_MODULE_ON(IS_MODULE_DSM2(EXTERNAL_MODULE) ? (uint8_t)0 : (uint8_t)1)
#define EXTERNAL_MODULE_SETTINGS_ROWS() (IS_MODULE_XJT(EXTERNAL_MODULE) && IS_D8_RX(EXTERNAL_MODULE)) ? (uint8_t)1 : (IS_MODULE_PPM(EXTERNAL_MODULE) || IS_MODULE_XJT(EXTERNAL_MODULE) || IS_MODULE_DSM2(EXTERNAL_MODULE)) ? (uint8_t)2 : HIDDEN_ROW
#if defined(PCBSKY9X) && defined(REVX)
#define OUTPUT_TYPE_ROWS() (IS_MODULE_PPM(EXTERNAL_MODULE) ? (uint8_t)0 : HIDDEN_ROW) ,
#else
#define OUTPUT_TYPE_ROWS()
#endif
#define TRAINER_CHANNELS_ROWS() (HIDDEN_ROW)
#define PORT_CHANNELS_ROWS(x) (x==EXTERNAL_MODULE ? EXTERNAL_MODULE_CHANNELS_ROWS() : 0)
#define FAILSAFE_ROWS(x) ((g_model.moduleData[x].rfProtocol==RF_PROTO_X16 || g_model.moduleData[x].rfProtocol==RF_PROTO_LR12) ? (g_model.moduleData[x].failsafeMode==FAILSAFE_CUSTOM ? (uint8_t)1 : (uint8_t)0) : HIDDEN_ROW)
@ -125,7 +134,7 @@ void menuModelSetup(uint8_t event)
#define EXTRA_MODULE_ROWS
#endif
#define TRAINER_MODULE_ROWS
MENU_TAB({ 0, 0, TIMER_ROWS, TIMER_ROWS, TIMER_ROWS, 0, 1, 0, 0, 0, 0, 0, CASE_CPUARM(LABEL(PreflightCheck)) CASE_CPUARM(0) 0, 6, NUM_STICKS+NUM_POTS+NUM_ROTARY_ENCODERS-1, 0, LABEL(ExternalModule), (IS_MODULE_XJT(EXTERNAL_MODULE) || IS_MODULE_DSM2(EXTERNAL_MODULE)) ? (uint8_t)1 : (uint8_t)0, EXTERNAL_MODULE_CHANNELS_ROWS(), (IS_MODULE_XJT(EXTERNAL_MODULE) && IS_D8_RX(EXTERNAL_MODULE)) ? (uint8_t)1 : (IS_MODULE_PPM(EXTERNAL_MODULE) || IS_MODULE_XJT(EXTERNAL_MODULE) || IS_MODULE_DSM2(EXTERNAL_MODULE)) ? (uint8_t)2 : HIDDEN_ROW, IF_EXTERNAL_MODULE_XJT(FAILSAFE_ROWS(EXTERNAL_MODULE)), EXTRA_MODULE_ROWS TRAINER_MODULE_ROWS });
MENU_TAB({ 0, 0, TIMER_ROWS, TIMER_ROWS, TIMER_ROWS, 0, 1, 0, 0, 0, 0, 0, CASE_CPUARM(LABEL(PreflightCheck)) CASE_CPUARM(0) 0, 6, NUM_STICKS+NUM_POTS+NUM_ROTARY_ENCODERS-1, 0, LABEL(ExternalModule), (IS_MODULE_XJT(EXTERNAL_MODULE) || IS_MODULE_DSM2(EXTERNAL_MODULE)) ? (uint8_t)1 : (uint8_t)0, EXTERNAL_MODULE_CHANNELS_ROWS(), EXTERNAL_MODULE_SETTINGS_ROWS(), OUTPUT_TYPE_ROWS() IF_EXTERNAL_MODULE_XJT(FAILSAFE_ROWS(EXTERNAL_MODULE)), EXTRA_MODULE_ROWS TRAINER_MODULE_ROWS });
#elif defined(CPUM64)
#define CURSOR_ON_CELL (true)
#define MODEL_SETUP_MAX_LINES ((IS_PPM_PROTOCOL(protocol)||IS_DSM2_PROTOCOL(protocol)||IS_PXX_PROTOCOL(protocol)) ? 1+ITEM_MODEL_SETUP_MAX : ITEM_MODEL_SETUP_MAX)
@ -621,6 +630,16 @@ void menuModelSetup(uint8_t event)
}
#endif
#if defined(PCBSKY9X) && defined(REVX)
case ITEM_MODEL_EXTERNAL_MODULE_OUTPUT_TYPE:
{
uint8_t moduleIdx = CURRENT_MODULE_EDITED(k);
ModuleData & moduleData = g_model.moduleData[moduleIdx];
moduleData.ppmOutputType = selectMenuItem(MODEL_SETUP_2ND_COLUMN, y, STR_OUTPUT_TYPE, STR_VOUTPUT_TYPE, moduleData.ppmOutputType, 0, 1, attr, event);
break;
}
#endif
#if defined(CPUARM)
case ITEM_MODEL_EXTERNAL_MODULE_FAILSAFE:
{

View file

@ -414,7 +414,13 @@ PACK(typedef struct {
int16_t failsafeChannels[NUM_CHNOUT];
int8_t ppmDelay;
int8_t ppmFrameLength;
uint8_t ppmPulsePol;
uint8_t ppmPulsePol:1;
#if defined(PCBSKY9X) && defined(REVX)
uint8_t ppmOutputType:1; // false = open drain, true = push pull
uint8_t spare:6;
#else
uint8_t spare:7;
#endif
}) ModuleData;
#define SET_DEFAULT_PPM_FRAME_LENGTH(idx) g_model.moduleData[idx].ppmFrameLength = 4 * max((int8_t)0, g_model.moduleData[idx].channelsCount)

View file

@ -43,7 +43,12 @@ void module_output_active()
pioptr->PIO_ABCDSR[1] |= PIO_PA17 ; // Peripheral C
pioptr->PIO_PDR = PIO_PA17 ; // Disable bit A17 Assign to peripheral
#if defined(REVX)
if (g_model.moduleData[EXTERNAL_MODULE].ppmOutputType) {
pioptr->PIO_MDDR = PIO_PA17 ; // Push Pull O/p in A17
}
else {
pioptr->PIO_MDER = PIO_PA17 ; // Open Drain O/p in A17
}
pioptr->PIO_PUER = PIO_PA17 ; // With pull up
#endif
}

View file

@ -68,6 +68,9 @@ const pm_char STR_OPEN9X[] PROGMEM =
ISTR(RETA123)
ISTR(VPROTOS)
ISTR(POSNEG)
#if defined(PCBSKY9X) && defined(REVX)
ISTR(VOUTPUT_TYPE)
#endif
ISTR(VBLMODE)
ISTR(VCURVEFUNC)
ISTR(VMLTPX)
@ -155,6 +158,9 @@ const pm_char STR_TTRACE[] PROGMEM = TR_TTRACE;
const pm_char STR_TTRIM[] PROGMEM = TR_TTRIM;
const pm_char STR_BEEPCTR[] PROGMEM = TR_BEEPCTR;
const pm_char STR_USE_GLOBAL_FUNCS[] PROGMEM = TR_USE_GLOBAL_FUNCS;
#if defined(PCBSKY9X) && defined(REVX)
const pm_char STR_OUTPUT_TYPE[] PROGMEM = TR_OUTPUT_TYPE;
#endif
const pm_char STR_PROTO[] PROGMEM = TR_PROTO;
const pm_char STR_PPMFRAME[] PROGMEM = TR_PPMFRAME;
const pm_char STR_MS[] PROGMEM = TR_MS;

View file

@ -119,7 +119,12 @@ extern const pm_char STR_OPEN9X[];
#endif
#define OFS_VPROTOS (OFS_RETA123 + sizeof(TR_RETA123))
#define OFS_POSNEG (OFS_VPROTOS + sizeof(TR_VPROTOS))
#define OFS_VBLMODE (OFS_POSNEG + sizeof(TR_POSNEG))
#if defined(PCBSKY9X) && defined(REVX)
#define OFS_VOUTPUT_TYPE (OFS_POSNEG + sizeof(TR_POSNEG))
#define OFS_VBLMODE (OFS_VOUTPUT_TYPE + sizeof(TR_VOUTPUT_TYPE))
#else
#define OFS_VBLMODE (OFS_POSNEG + sizeof(TR_POSNEG))
#endif
#define OFS_VCURVEFUNC (OFS_VBLMODE + sizeof(TR_VBLMODE))
#define OFS_VMLTPX (OFS_VCURVEFUNC + sizeof(TR_VCURVEFUNC))
#define OFS_VMLTPX2 (OFS_VMLTPX + sizeof(TR_VMLTPX))
@ -226,6 +231,9 @@ extern const pm_char STR_OPEN9X[];
#define STR_RETA123 (STR_OPEN9X + OFS_RETA123)
#define STR_VPROTOS (STR_OPEN9X + OFS_VPROTOS)
#define STR_POSNEG (STR_OPEN9X + OFS_POSNEG)
#if defined(PCBSKY9X) && defined(REVX)
#define STR_VOUTPUT_TYPE (STR_OPEN9X + OFS_VOUTPUT_TYPE)
#endif
#define STR_VBLMODE (STR_OPEN9X + OFS_VBLMODE)
#define STR_VCURVEFUNC (STR_OPEN9X + OFS_VCURVEFUNC)
#define STR_VSIDE STR_VCURVEFUNC
@ -343,6 +351,9 @@ extern const pm_char STR_TTRACE[];
extern const pm_char STR_TTRIM[];
extern const pm_char STR_BEEPCTR[];
extern const pm_char STR_USE_GLOBAL_FUNCS[];
#if defined(PCBSKY9X) && defined(REVX)
extern const pm_char STR_OUTPUT_TYPE[];
#endif
extern const pm_char STR_PROTO[];
extern const pm_char STR_PPMFRAME[];
extern const pm_char STR_MS[];

View file

@ -173,6 +173,11 @@
#define LEN_POSNEG "\003"
#define TR_POSNEG "POZ""NEG"
#if defined(PCBSKY9X) && defined(REVX)
#define LEN_VOUTPUT_TYPE "\011"
#define TR_VOUTPUT_TYPE "OpenDrain""PushPull\0"
#endif
#define LEN_VCURVEFUNC "\003"
#define TR_VCURVEFUNC "---""x>0""x<0""|x|""f>0""f<0""|f|"
@ -597,6 +602,9 @@
#define TR_TTRIM TR("TrimVolnob.", INDENT "Trim jen volnoběh")
#define TR_BEEPCTR TR("Středy \221\222", "Pípat středy \221\222")
#define TR_USE_GLOBAL_FUNCS "Use Global Funcs"
#if defined(PCBSKY9X) && defined(REVX)
#define TR_OUTPUT_TYPE INDENT "Output"
#endif
#define TR_PROTO INDENT "Protokol"
#if defined(CPUARM)
#define TR_PPMFRAME INDENT "PPM frame"

View file

@ -173,6 +173,11 @@
#define LEN_POSNEG "\003"
#define TR_POSNEG "POS""NEG"
#if defined(PCBSKY9X) && defined(REVX)
#define LEN_VOUTPUT_TYPE "\011"
#define TR_VOUTPUT_TYPE "OpenDrain""PushPull\0"
#endif
#define LEN_VCURVEFUNC "\003"
#define TR_VCURVEFUNC "---""x>0""x<0""|x|""f>0""f<0""|f|"
@ -596,6 +601,9 @@
#define TR_TTRIM TR("Gastrim", INDENT "Gas-Leerlauftrim")
#define TR_BEEPCTR TR("Mitt.Piep","Mittelstell. -Pieps")
#define TR_USE_GLOBAL_FUNCS "Globale Funkt verw."
#if defined(PCBSKY9X) && defined(REVX)
#define TR_OUTPUT_TYPE INDENT "Output"
#endif
#define TR_PROTO TR(INDENT"Protok.",INDENT"Protokoll")
#if defined(CPUARM)
#define TR_PPMFRAME INDENT "PPM frame"

View file

@ -173,6 +173,11 @@
#define LEN_POSNEG "\003"
#define TR_POSNEG "POS""NEG"
#if defined(PCBSKY9X) && defined(REVX)
#define LEN_VOUTPUT_TYPE "\011"
#define TR_VOUTPUT_TYPE "OpenDrain""PushPull\0"
#endif
#define LEN_VCURVEFUNC "\003"
#define TR_VCURVEFUNC "---""x>0""x<0""|x|""f>0""f<0""|f|"
@ -596,6 +601,9 @@
#define TR_TTRIM TR("T-Trim", INDENT "Trim Idle Only")
#define TR_BEEPCTR TR("Ctr Beep", "Center Beep")
#define TR_USE_GLOBAL_FUNCS TR("Glob.Funcs", "Use Global Funcs")
#if defined(PCBSKY9X) && defined(REVX)
#define TR_OUTPUT_TYPE INDENT "Output"
#endif
#define TR_PROTO TR(INDENT "Proto", INDENT "Protocol")
#if defined(CPUARM)
#define TR_PPMFRAME INDENT "PPM frame"

View file

@ -165,6 +165,11 @@
#define LEN_POSNEG "\003"
#define TR_POSNEG "POS""NEG"
#if defined(PCBSKY9X) && defined(REVX)
#define LEN_VOUTPUT_TYPE "\011"
#define TR_VOUTPUT_TYPE "OpenDrain""PushPull\0"
#endif
#define LEN_VCURVEFUNC "\003"
#define TR_VCURVEFUNC "---""x>0""x<0""|x|""f>0""f<0""|f|"
@ -562,6 +567,9 @@
#define TR_TTRIM TR("Trim-A", INDENT "Trim Acelerad")
#define TR_BEEPCTR TR("Ctr Beep","Center Beep")
#define TR_USE_GLOBAL_FUNCS "Use Global Funcs"
#if defined(PCBSKY9X) && defined(REVX)
#define TR_OUTPUT_TYPE INDENT "Output"
#endif
#define TR_PROTO TR(INDENT"Proto",INDENT"Protocol")
#define TR_PPMFRAME "Trama PPM"
#define TR_MS "ms"

View file

@ -165,6 +165,11 @@
#define LEN_POSNEG "\003"
#define TR_POSNEG "POS""NEG"
#if defined(PCBSKY9X) && defined(REVX)
#define LEN_VOUTPUT_TYPE "\011"
#define TR_VOUTPUT_TYPE "OpenDrain""PushPull\0"
#endif
#define LEN_VCURVEFUNC "\003"
#define TR_VCURVEFUNC "---""x>0""x<0""|x|""f>0""f<0""|f|"
@ -562,6 +567,9 @@
#define TR_TTRIM TR("T-Trim", INDENT "Throttle Trim")
#define TR_BEEPCTR TR("Ctr Beep", "Center Beep")
#define TR_USE_GLOBAL_FUNCS "Use Global Funcs"
#if defined(PCBSKY9X) && defined(REVX)
#define TR_OUTPUT_TYPE INDENT "Output"
#endif
#define TR_PROTO TR(INDENT "Proto", INDENT "Protocol")
#define TR_PPMFRAME TR("PPM frame", INDENT "PPM frame")
#define TR_MS "ms"

View file

@ -173,6 +173,11 @@
#define LEN_POSNEG "\003"
#define TR_POSNEG "POS""NEG"
#if defined(PCBSKY9X) && defined(REVX)
#define LEN_VOUTPUT_TYPE "\011"
#define TR_VOUTPUT_TYPE "OpenDrain""PushPull\0"
#endif
#define LEN_VCURVEFUNC "\003"
#define TR_VCURVEFUNC "---""x>0""x<0""|x|""f>0""f<0""|f|"
@ -596,6 +601,9 @@
#define TR_TTRIM TR("Trim gaz", INDENT "Trim ralenti uniq.")
#define TR_BEEPCTR TR("Bips centr", "Bips centrage")
#define TR_USE_GLOBAL_FUNCS "Fonctions Globales"
#if defined(PCBSKY9X) && defined(REVX)
#define TR_OUTPUT_TYPE INDENT "Output"
#endif
#define TR_PROTO TR(INDENT "Proto.", INDENT "Protocole")
#if defined(CPUARM)
#define TR_PPMFRAME INDENT "PPM frame"

View file

@ -165,6 +165,11 @@
#define LEN_POSNEG "\003"
#define TR_POSNEG "POS""NEG"
#if defined(PCBSKY9X) && defined(REVX)
#define LEN_VOUTPUT_TYPE "\011"
#define TR_VOUTPUT_TYPE "OpenDrain""PushPull\0"
#endif
#define LEN_VCURVEFUNC "\003"
#define TR_VCURVEFUNC "---""x>0""x<0""|x|""f>0""f<0""|f|"
@ -562,6 +567,9 @@
#define TR_TTRIM TR("T-Trim", INDENT "Trim Motore")
#define TR_BEEPCTR TR("Ctr Beep","Beep al centro")
#define TR_USE_GLOBAL_FUNCS "Use Global Funcs"
#if defined(PCBSKY9X) && defined(REVX)
#define TR_OUTPUT_TYPE INDENT "Output"
#endif
#define TR_PROTO TR(INDENT "Proto", INDENT "Protocollo")
#define TR_PPMFRAME TR("PPM frame", INDENT "PPM frame")
#define TR_MS "ms"

View file

@ -177,6 +177,11 @@
#define LEN_POSNEG "\003"
#define TR_POSNEG "POZ""NEG"
#if defined(PCBSKY9X) && defined(REVX)
#define LEN_VOUTPUT_TYPE "\011"
#define TR_VOUTPUT_TYPE "OpenDrain""PushPull\0"
#endif
#define LEN_VCURVEFUNC "\003"
#define TR_VCURVEFUNC "---""x>0""x<0""|x|""f>0""f<0""|f|"
@ -600,6 +605,9 @@
#define TR_TTRIM TR("TryGaz", INDENT "TrymWolnObrotó")
#define TR_BEEPCTR TR("ŚrodBeep", "Pikn.Środka")
#define TR_USE_GLOBAL_FUNCS TR("Funk.Glb.","Użyj Funkcji Glb")
#if defined(PCBSKY9X) && defined(REVX)
#define TR_OUTPUT_TYPE INDENT "Output"
#endif
#define TR_PROTO TR(INDENT "Proto", INDENT "Protokół")
#if defined(CPUARM)
#define TR_PPMFRAME INDENT "Ramka PPM"

View file

@ -165,6 +165,11 @@
#define LEN_POSNEG "\003"
#define TR_POSNEG "POS""NEG"
#if defined(PCBSKY9X) && defined(REVX)
#define LEN_VOUTPUT_TYPE "\011"
#define TR_VOUTPUT_TYPE "OpenDrain""PushPull\0"
#endif
#define LEN_VCURVEFUNC "\003"
#define TR_VCURVEFUNC "---""x>0""x<0""|x|""f>0""f<0""|f|"
@ -562,6 +567,9 @@
#define TR_TTRIM TR("T-Trim", INDENT "T-Trim")
#define TR_BEEPCTR "Ctr Beep"
#define TR_USE_GLOBAL_FUNCS "Use Global Funcs"
#if defined(PCBSKY9X) && defined(REVX)
#define TR_OUTPUT_TYPE INDENT "Output"
#endif
#define TR_PROTO INDENT"Proto"
#define TR_PPMFRAME "PPM frame"
#define TR_MS "ms"

View file

@ -165,6 +165,11 @@
#define LEN_POSNEG "\003"
#define TR_POSNEG "Pos""Neg"
#if defined(PCBSKY9X) && defined(REVX)
#define LEN_VOUTPUT_TYPE "\011"
#define TR_VOUTPUT_TYPE "OpenDrain""PushPull\0"
#endif
#define LEN_VCURVEFUNC "\003"
#define TR_VCURVEFUNC "---""x>0""x<0""|x|""f>0""f<0""|f|"
@ -562,6 +567,9 @@
#define TR_TTRIM TR("Gastrim", INDENT "Gastrim")
#define TR_BEEPCTR TR("Cent.pip", "Centerpip")
#define TR_USE_GLOBAL_FUNCS "Use Global Funcs"
#if defined(PCBSKY9X) && defined(REVX)
#define TR_OUTPUT_TYPE INDENT "Output"
#endif
#define TR_PROTO TR(INDENT "Proto", INDENT "Protokoll")
#define TR_PPMFRAME TR(INDENT "PPM-paket", INDENT "PPM-paket")
#define TR_MS "ms"