mirror of
https://github.com/opentx/opentx.git
synced 2025-07-21 23:35:17 +03:00
Compilation problem when !FRSKY
Rotary encoder navigation on v4 Some cleaning on code
This commit is contained in:
parent
03fd1e3b01
commit
1ed8d7ca44
10 changed files with 144 additions and 102 deletions
|
@ -106,7 +106,9 @@ void menuProcSetup(uint8_t event)
|
|||
lcd_putsnAtt(PARAM_OFS - 2*FW, y, STR_VBEEPMODE+(LEN_VBEEPMODE*2)+(LEN_VBEEPMODE*g_eeGeneral.beeperMode), LEN_VBEEPMODE, (sub==subN ? INVERS:0));
|
||||
if(sub==subN) {
|
||||
CHECK_INCDEC_GENVAR(event, g_eeGeneral.beeperMode, -2, 1);
|
||||
#if defined(FRSKY)
|
||||
if (checkIncDec_Ret) FRSKY_setModelAlarms();
|
||||
#endif
|
||||
}
|
||||
if((y+=FH)>7*FH) return;
|
||||
}subN++;
|
||||
|
|
|
@ -56,7 +56,10 @@ void DisplayScreenIndex(uint8_t index, uint8_t count, uint8_t attr)
|
|||
lcd_outdezAtt(1+128-FW*(count>9 ? 3 : 2),0,index+1,attr);
|
||||
}
|
||||
|
||||
#if defined(NAVIGATION_POT1) || defined(NAVIGATION_RE1)
|
||||
#if defined(NAVIGATION_RE1)
|
||||
int8_t scrollRE;
|
||||
int16_t p1valdiff;
|
||||
#elif defined(NAVIGATION_POT1)
|
||||
int16_t p1valdiff;
|
||||
#endif
|
||||
|
||||
|
@ -155,22 +158,40 @@ bool check_submenu_simple(uint8_t event, uint8_t maxrow)
|
|||
#define DEC(val,max) if(val>0 ) {val--;} else {val=max;}
|
||||
bool check(uint8_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t menuTabSize, const pm_uint8_t *horTab, uint8_t horTabMax, uint8_t maxrow)
|
||||
{
|
||||
int8_t maxcol = MAXCOL(m_posVert);
|
||||
|
||||
#ifdef NAVIGATION_RE1
|
||||
// check rotary encoder 1 if changed -> cursor down/up
|
||||
static int16_t re1valprev;
|
||||
p1valdiff = 0;
|
||||
int8_t scrollRE = re1valprev - g_rotenc[0];
|
||||
scrollRE = re1valprev - g_rotenc[0];
|
||||
if (scrollRE) {
|
||||
re1valprev = g_rotenc[0];
|
||||
if (s_editMode > 0) {
|
||||
p1valdiff = scrollRE;
|
||||
p1valdiff = -scrollRE;
|
||||
scrollRE = 0;
|
||||
}
|
||||
}
|
||||
if (event == EVT_KEY_FIRST(BTN_RE1)) {
|
||||
if (event == EVT_KEY_LONG(BTN_RE1)) {
|
||||
if (!menuTab && !s_editMode) {
|
||||
popMenu();
|
||||
killEvents(event);
|
||||
}
|
||||
}
|
||||
if (event == EVT_KEY_BREAK(BTN_RE1)) {
|
||||
if (s_editMode > 0 && (maxcol & ZCHAR)) {
|
||||
if (m_posHorz < maxcol-ZCHAR) {
|
||||
m_posHorz++;
|
||||
}
|
||||
else {
|
||||
s_editMode = 0;
|
||||
}
|
||||
}
|
||||
else {
|
||||
scrollRE = 0;
|
||||
if (s_editMode++ > 0) s_editMode = 0;
|
||||
if (s_editMode > 0 && m_posVert == 0) s_editMode = -1;
|
||||
if (s_editMode > 0 && m_posVert == 0 && menuTab) s_editMode = -1;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#define scrollRE 0
|
||||
|
@ -212,7 +233,7 @@ bool check(uint8_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t menuTa
|
|||
int8_t cc = curr;
|
||||
|
||||
if (scrollLR || (scrollRE && s_editMode < 0)) {
|
||||
cc = limit((int8_t)0, (int8_t)(curr - scrollLR - scrollRE), (int8_t)(menuTabSize-1));
|
||||
cc = limit((int8_t)0, (int8_t)(curr - scrollLR + scrollRE), (int8_t)(menuTabSize-1));
|
||||
}
|
||||
|
||||
switch(event) {
|
||||
|
@ -242,8 +263,6 @@ bool check(uint8_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t menuTa
|
|||
|
||||
theFile.DisplayProgressBar(menuTab ? lcd_lastPos-2*FW-((curr+1)/10*FWNUM)-2 : 20*FW+1);
|
||||
|
||||
uint8_t maxcol = MAXCOL(m_posVert);
|
||||
|
||||
if (s_editMode<=0) {
|
||||
if (scrollUD) {
|
||||
m_posVert = limit((int8_t)0, (int8_t)(m_posVert - scrollUD), (int8_t)maxrow);
|
||||
|
@ -257,14 +276,19 @@ bool check(uint8_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t menuTa
|
|||
}
|
||||
|
||||
#ifdef NAVIGATION_RE1
|
||||
while (scrollRE) {
|
||||
while (!s_editMode && scrollRE) {
|
||||
if (scrollRE > 0) {
|
||||
--scrollRE;
|
||||
if (++m_posHorz > MAXCOL(m_posVert)) {
|
||||
maxcol = MAXCOL(m_posVert);
|
||||
if (maxcol & ZCHAR) maxcol = 0;
|
||||
if (++m_posHorz > maxcol) {
|
||||
if (m_posVert < maxrow) {
|
||||
maxcol = MAXCOL(++m_posVert); // TODO not stored into maxcol?
|
||||
if (maxcol < 0) m_posVert++;
|
||||
m_posHorz = 0;
|
||||
if (++m_posVert > maxrow) {
|
||||
m_posVert = maxrow;
|
||||
m_posHorz = MAXCOL(m_posVert);
|
||||
}
|
||||
else {
|
||||
--m_posHorz;
|
||||
scrollRE = 0;
|
||||
}
|
||||
}
|
||||
|
@ -278,7 +302,9 @@ bool check(uint8_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t menuTa
|
|||
scrollRE = 0;
|
||||
}
|
||||
else {
|
||||
m_posHorz = MAXCOL(m_posVert);
|
||||
maxcol = MAXCOL(m_posVert);
|
||||
if (maxcol < 0) maxcol = MAXCOL(--m_posVert);
|
||||
m_posHorz = maxcol;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -291,8 +317,21 @@ bool check(uint8_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t menuTa
|
|||
{
|
||||
case EVT_ENTRY:
|
||||
minit();
|
||||
#ifdef NAVIGATION_RE1
|
||||
if (menuTab) {
|
||||
s_editMode = -1;
|
||||
break;
|
||||
}
|
||||
// no break
|
||||
#else
|
||||
s_editMode = -1;
|
||||
break;
|
||||
#endif
|
||||
#ifdef NAVIGATION_RE1
|
||||
case EVT_ENTRY_UP:
|
||||
s_editMode = 0;
|
||||
break;
|
||||
#endif
|
||||
case EVT_KEY_FIRST(KEY_MENU):
|
||||
if (maxcol > 0)
|
||||
s_editMode = (s_editMode<=0);
|
||||
|
@ -306,7 +345,7 @@ bool check(uint8_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t menuTa
|
|||
s_editMode = 0;
|
||||
break;
|
||||
}
|
||||
if(m_posVert==0 || !menuTab) {
|
||||
if (m_posVert==0 || !menuTab) {
|
||||
popMenu(); //beeps itself
|
||||
}
|
||||
else {
|
||||
|
|
11
src/menus.h
11
src/menus.h
|
@ -79,11 +79,20 @@ void menuProcModelSelect(uint8_t event);
|
|||
void menuProcStatistic(uint8_t event);
|
||||
void menuProcDebug(uint8_t event);
|
||||
|
||||
#if defined(NAVIGATION_POT1) || defined(NAVIGATION_RE1)
|
||||
#if defined(NAVIGATION_RE1)
|
||||
extern int8_t scrollRE;
|
||||
extern int16_t p1valdiff;
|
||||
#define IS_RE1_EVT_TYPE(event, type) (event==type(BTN_RE1))
|
||||
#define IS_RE1_EVT(event) ((event&0x0f)==BTN_RE1)
|
||||
#else
|
||||
#define IS_RE1_EVT_TYPE(event, type) (0)
|
||||
#define IS_RE1_EVT(event) (0)
|
||||
#if defined(NAVIGATION_POT1)
|
||||
extern int16_t p1valdiff;
|
||||
#else
|
||||
#define p1valdiff 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
extern int8_t checkIncDec_Ret; // global helper vars
|
||||
extern int8_t s_editMode; // global editmode
|
||||
|
|
|
@ -176,7 +176,7 @@ void menuProcModelSelect(uint8_t event)
|
|||
}
|
||||
|
||||
uint8_t _event = (s_warning ? 0 : event);
|
||||
uint8_t _event_ = _event;
|
||||
uint8_t _event_ = (IS_RE1_EVT(_event) ? 0 : _event);
|
||||
|
||||
if (s_copyMode || !EFile::exists(FILE_MODEL(g_eeGeneral.currModel))) {
|
||||
if ((_event & 0x1f) == KEY_EXIT)
|
||||
|
@ -190,7 +190,14 @@ void menuProcModelSelect(uint8_t event)
|
|||
lcd_puts(9*FW-(LEN_FREE-4)*FW, 0, STR_FREE);
|
||||
lcd_outdezAtt( 17*FW, 0, EeFsGetFree(),0);
|
||||
|
||||
DisplayScreenIndex(e_ModelSelect, DIM(menuTabModel), INVERS);
|
||||
DisplayScreenIndex(e_ModelSelect, DIM(menuTabModel), (sub == g_eeGeneral.currModel) ? INVERS : 0);
|
||||
|
||||
#ifdef NAVIGATION_RE1
|
||||
if (scrollRE > 0 && s_editMode < 0) {
|
||||
chainMenu(menuProcModel);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
switch(_event)
|
||||
{
|
||||
|
@ -199,6 +206,7 @@ void menuProcModelSelect(uint8_t event)
|
|||
s_copyMode = 0; // TODO only this one?
|
||||
s_copyTgtOfs = 0;
|
||||
s_copySrcRow = -1;
|
||||
s_editMode = -1;
|
||||
break;
|
||||
case EVT_KEY_LONG(KEY_EXIT):
|
||||
if (s_copyMode && s_copyTgtOfs == 0 && g_eeGeneral.currModel != sub && EFile::exists(FILE_MODEL(sub))) {
|
||||
|
@ -216,6 +224,12 @@ void menuProcModelSelect(uint8_t event)
|
|||
killEvents(_event);
|
||||
}
|
||||
break;
|
||||
#ifdef NAVIGATION_RE1
|
||||
case EVT_KEY_BREAK(BTN_RE1):
|
||||
s_editMode = (s_editMode == 0 && sub == g_eeGeneral.currModel) ? -1 : 0;
|
||||
break;
|
||||
case EVT_KEY_LONG(BTN_RE1):
|
||||
#endif
|
||||
case EVT_KEY_LONG(KEY_MENU):
|
||||
case EVT_KEY_BREAK(KEY_MENU):
|
||||
if (s_copyMode && (s_copyTgtOfs || s_copySrcRow>=0)) {
|
||||
|
@ -250,7 +264,10 @@ void menuProcModelSelect(uint8_t event)
|
|||
s_copyTgtOfs = 0;
|
||||
return;
|
||||
}
|
||||
else if (_event == EVT_KEY_LONG(KEY_MENU)) {
|
||||
else if (_event == EVT_KEY_LONG(KEY_MENU) || IS_RE1_EVT_TYPE(_event, EVT_KEY_LONG)) {
|
||||
#ifdef NAVIGATION_RE1
|
||||
s_editMode = -1;
|
||||
#endif
|
||||
displayPopup(STR_LOADINGMODEL);
|
||||
eeCheck(true); // force writing of current model data before this is changed
|
||||
if (g_eeGeneral.currModel != sub) {
|
||||
|
@ -272,7 +289,7 @@ void menuProcModelSelect(uint8_t event)
|
|||
chainMenu(_event == EVT_KEY_FIRST(KEY_RIGHT) ? menuProcModel : menuTabModel[DIM(menuTabModel)-1]);
|
||||
return;
|
||||
}
|
||||
AUDIO_WARNING1(); // TODO it was beepWarn();
|
||||
AUDIO_WARNING1();
|
||||
break;
|
||||
case EVT_KEY_FIRST(KEY_UP):
|
||||
case EVT_KEY_FIRST(KEY_DOWN):
|
||||
|
@ -352,25 +369,12 @@ void menuProcModelSelect(uint8_t event)
|
|||
|
||||
void EditName(uint8_t x, uint8_t y, char *name, uint8_t size, uint8_t event, bool active, uint8_t & cur)
|
||||
{
|
||||
lcd_putsnAtt(x, y, name, size, ZCHAR | (active ? ((s_editMode>0) ? 0 : INVERS) : 0));
|
||||
|
||||
if (active) {
|
||||
if (s_editMode>0) {
|
||||
switch(event) {
|
||||
case EVT_KEY_BREAK(KEY_LEFT):
|
||||
if (cur>0) cur--;
|
||||
break;
|
||||
case EVT_KEY_BREAK(KEY_RIGHT):
|
||||
if (cur<size-1) cur++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
cur = m_posHorz = 0;
|
||||
}
|
||||
}
|
||||
|
||||
lcd_putsnAtt(x, y, name, size, ZCHAR | (active ? ((s_editMode>0) ? 0 : INVERS) : 0));
|
||||
if (active && s_editMode>0) {
|
||||
char c = name[cur];
|
||||
uint8_t next = cur;
|
||||
char c = name[next];
|
||||
char v = c;
|
||||
if (p1valdiff || event==EVT_KEY_FIRST(KEY_DOWN) || event==EVT_KEY_FIRST(KEY_UP)
|
||||
|| event==EVT_KEY_REPT(KEY_DOWN) || event==EVT_KEY_REPT(KEY_UP)) {
|
||||
|
@ -379,14 +383,38 @@ void EditName(uint8_t x, uint8_t y, char *name, uint8_t size, uint8_t event, boo
|
|||
STORE_MODELVARS;
|
||||
}
|
||||
|
||||
if (v>=-26 && v<=26 && (event==EVT_KEY_LONG(KEY_RIGHT) || event==EVT_KEY_LONG(KEY_LEFT))) {
|
||||
switch(event) {
|
||||
case EVT_KEY_BREAK(KEY_LEFT):
|
||||
if (next>0) next--;
|
||||
break;
|
||||
case EVT_KEY_BREAK(KEY_RIGHT):
|
||||
if (next<size-1) next++;
|
||||
break;
|
||||
#ifdef NAVIGATION_RE1
|
||||
case EVT_KEY_LONG(BTN_RE1):
|
||||
if (v==0) {
|
||||
s_editMode = 0;
|
||||
killEvents(BTN_RE1);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
case EVT_KEY_LONG(KEY_LEFT):
|
||||
case EVT_KEY_LONG(KEY_RIGHT):
|
||||
if (v>=-26 && v<=26) {
|
||||
v = -v; // toggle case
|
||||
STORE_MODELVARS;
|
||||
STORE_MODELVARS; // TODO optim if (c!=v) at the end
|
||||
if (event==EVT_KEY_LONG(KEY_LEFT))
|
||||
killEvents(KEY_LEFT);
|
||||
}
|
||||
}
|
||||
|
||||
name[cur] = v;
|
||||
lcd_putcAtt(x+cur*FW, y, idx2char(v), INVERS);
|
||||
cur = next;
|
||||
}
|
||||
else {
|
||||
cur = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -395,7 +423,7 @@ void EditName(uint8_t x, uint8_t y, char *name, uint8_t size, uint8_t event, boo
|
|||
void menuProcModel(uint8_t event)
|
||||
{
|
||||
lcd_outdezNAtt(7*FW,0,g_eeGeneral.currModel+1,INVERS+LEADING0,2);
|
||||
MENU(STR_MENUSETUP, menuTabModel, e_Model, (g_model.protocol==PROTO_PPM||g_model.protocol==PROTO_DSM2||g_model.protocol==PROTO_PXX ? 12 : 11), {0,sizeof(g_model.name)-1,2,2,0,0,0,0,0,6,2,1});
|
||||
MENU(STR_MENUSETUP, menuTabModel, e_Model, (g_model.protocol==PROTO_PPM||g_model.protocol==PROTO_DSM2||g_model.protocol==PROTO_PXX ? 12 : 11), {0,ZCHAR|sizeof(g_model.name)-1,2,2,0,0,0,0,0,6,2,1});
|
||||
|
||||
uint8_t sub = m_posVert;
|
||||
uint8_t y = 1*FH;
|
||||
|
@ -519,7 +547,7 @@ void menuProcModel(uint8_t event)
|
|||
else if (sub==subN) {
|
||||
m_posHorz = 0;
|
||||
}
|
||||
if (sub==subN && (s_editMode>0 || p1valdiff || (g_model.protocol!=0 && g_model.protocol!=PROTO_DSM2))) { // TODO avoid DSM2 when not defined
|
||||
if (sub==subN && (s_editMode>0 || p1valdiff || (g_model.protocol!=0/*TODO constant*/ && g_model.protocol!=PROTO_DSM2))) { // TODO avoid DSM2 when not defined
|
||||
switch (m_posHorz) {
|
||||
case 0:
|
||||
CHECK_INCDEC_MODELVAR(event,g_model.protocol,0,PROTO_MAX-1);
|
||||
|
@ -596,7 +624,7 @@ void menuProcPhaseOne(uint8_t event)
|
|||
PhaseData *phase = phaseaddress(s_currIdx);
|
||||
putsFlightPhase(13*FW, 0, s_currIdx+1, 0);
|
||||
|
||||
SUBMENU(STR_MENUFLIGHTPHASE, (s_currIdx==0 ? 3 : 5), {6, 0, 3/*, 0, 0*/});
|
||||
SUBMENU(STR_MENUFLIGHTPHASE, (s_currIdx==0 ? 3 : 5), {ZCHAR|sizeof(phase->name)-1, 0, 3/*, 0, 0*/});
|
||||
|
||||
int8_t sub = m_posVert;
|
||||
|
||||
|
@ -657,7 +685,11 @@ void menuProcPhasesAll(uint8_t event)
|
|||
|
||||
switch (event) {
|
||||
case EVT_KEY_FIRST(KEY_MENU):
|
||||
#ifdef NAVIGATION_RE1
|
||||
case EVT_KEY_BREAK(BTN_RE1):
|
||||
#endif
|
||||
if (sub == MAX_PHASES) {
|
||||
s_editMode = 0;
|
||||
trimsCheckTimer = 200; // 2 seconds
|
||||
}
|
||||
// no break
|
||||
|
@ -1801,43 +1833,6 @@ void menuProcFunctionSwitches(uint8_t event)
|
|||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
void menuProcSafetySwitches(uint8_t event)
|
||||
{
|
||||
MENU(STR_MENUSAFETYSWITCHES, menuTabModel, e_SafetySwitches, NUM_CHNOUT+1, {0, 1/*repeated*/});
|
||||
|
||||
uint8_t y = 0;
|
||||
uint8_t k = 0;
|
||||
|
||||
for(uint8_t i=0; i<7; i++){
|
||||
y=(i+1)*FH;
|
||||
k=i+s_pgOfs;
|
||||
if(k==NUM_CHNOUT) break;
|
||||
SafetySwData *sd = &g_model.safetySw[k];
|
||||
putsChn(0,y,k+1,0);
|
||||
for(uint8_t j=0; j<=2;j++){
|
||||
uint8_t attr = ((m_posVert-1==k && m_posHorz==j) ? ((s_editMode>0) ? BLINK : INVERS) : 0);
|
||||
uint8_t active = (attr && (s_editMode>0 || p1valdiff));
|
||||
switch(j)
|
||||
{
|
||||
case 0:
|
||||
putsSwitches(6*FW, y, sd->swtch , attr);
|
||||
if (active) {
|
||||
CHECK_INCDEC_MODELVAR( event, sd->swtch, -MAX_SWITCH, MAX_SWITCH);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
lcd_outdezAtt(16*FW, y, sd->val, attr);
|
||||
if (active) {
|
||||
CHECK_INCDEC_MODELVAR( event, sd->val, -125, 125);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef FRSKY
|
||||
#define TELEM_COL2 (9*FW+2)
|
||||
void menuProcTelemetry(uint8_t event)
|
||||
|
@ -1852,7 +1847,7 @@ void menuProcTelemetry(uint8_t event)
|
|||
uint8_t blink;
|
||||
uint8_t y;
|
||||
|
||||
switch(event){
|
||||
switch (event) {
|
||||
case EVT_KEY_BREAK(KEY_DOWN):
|
||||
case EVT_KEY_BREAK(KEY_UP):
|
||||
case EVT_KEY_BREAK(KEY_LEFT):
|
||||
|
|
|
@ -251,7 +251,6 @@ const pm_char STR_MENUCURVES[] PROGMEM = TR_MENUCURVES;
|
|||
const pm_char STR_MENUCURVE[] PROGMEM = TR_MENUCURVE;
|
||||
const pm_char STR_MENUCUSTOMSWITCHES[] PROGMEM = TR_MENUCUSTOMSWITCHES;
|
||||
const pm_char STR_MENUFUNCSWITCHES[] PROGMEM = TR_MENUFUNCSWITCHES;
|
||||
const pm_char STR_MENUSAFETYSWITCHES[] PROGMEM = TR_MENUSAFETYSWITCHES;
|
||||
|
||||
#ifdef FRSKY
|
||||
const pm_char STR_MENUTELEMETRY[] PROGMEM = TR_MENUTELEMETRY;
|
||||
|
|
|
@ -319,7 +319,6 @@ extern const pm_char STR_MENUCURVES[];
|
|||
extern const pm_char STR_MENUCURVE[];
|
||||
extern const pm_char STR_MENUCUSTOMSWITCHES[];
|
||||
extern const pm_char STR_MENUFUNCSWITCHES[];
|
||||
extern const pm_char STR_MENUSAFETYSWITCHES[];
|
||||
extern const pm_char STR_MENUTELEMETRY[];
|
||||
extern const pm_char STR_MENUTEMPLATES[];
|
||||
extern const pm_char STR_MENUSTAT[];
|
||||
|
|
|
@ -719,7 +719,7 @@ uint8_t checkTrim(uint8_t event)
|
|||
uint8_t phase = getTrimFlightPhase(idx, getFlightPhase());
|
||||
int16_t before = getTrimValue(phase, idx);
|
||||
int8_t v = (s==0) ? min(32, abs(before)/4+1) : 1 << (s-1); // 1=>1 2=>2 3=>4 4=>8
|
||||
bool thro = (idx==2/*TODO constant*/ && g_model.thrTrim);
|
||||
bool thro = (idx==THR_STICK && g_model.thrTrim);
|
||||
if (thro) v = 4; // if throttle trim and trim trottle then step=4
|
||||
int16_t after = (k&1) ? before + v : before - v; // positive = k&1
|
||||
|
||||
|
@ -981,7 +981,7 @@ FORCEINLINE void evalTrims(uint8_t phase)
|
|||
int16_t v = anas[i];
|
||||
int32_t vv = 2*RESX;
|
||||
int16_t trim = getTrimValue(getTrimFlightPhase(i, phase), i);
|
||||
if (i==2/*TODO constant*/ && g_model.thrTrim) {
|
||||
if (i==THR_STICK && g_model.thrTrim) {
|
||||
if (g_eeGeneral.throttleReversed)
|
||||
trim = -trim;
|
||||
vv = ((int32_t)trim-TRIM_MIN)*(RESX-v)/(2*RESX);
|
||||
|
@ -1026,7 +1026,7 @@ uint8_t evalSticks(uint8_t phase)
|
|||
if(v <= -RESX) v = -RESX;
|
||||
if(v >= RESX) v = RESX;
|
||||
|
||||
if (g_eeGeneral.throttleReversed && ch==2/*TODO THR_STICK*/)
|
||||
if (g_eeGeneral.throttleReversed && ch==THR_STICK)
|
||||
v = -v;
|
||||
|
||||
calibratedStick[ch] = v; //for show in expo
|
||||
|
@ -1050,7 +1050,7 @@ uint8_t evalSticks(uint8_t phase)
|
|||
}
|
||||
|
||||
#ifdef HELI
|
||||
if(d && (ch==1/*TODO ELE_STICK*/ || ch==3/*TODO AIL_STICK*/))
|
||||
if(d && (ch==ELE_STICK || ch==AIL_STICK))
|
||||
v = int32_t(v)*g_model.swashR.value*RESX/(int32_t(d)*100);
|
||||
#endif
|
||||
|
||||
|
@ -1460,7 +1460,7 @@ void perMain()
|
|||
uint16_t val;
|
||||
|
||||
if (g_model.thrTraceSrc == 0) {
|
||||
val = calibratedStick[2/*TODO THR_STICK*/]; // get throttle channel value
|
||||
val = calibratedStick[THR_STICK]; // get throttle channel value
|
||||
val = (g_eeGeneral.throttleReversed ? RESX-val : val+RESX);
|
||||
}
|
||||
else if (g_model.thrTraceSrc > NUM_POTS) {
|
||||
|
@ -2053,7 +2053,7 @@ void instantTrim()
|
|||
uint8_t phase = getFlightPhase();
|
||||
|
||||
for (uint8_t i=0; i<NUM_STICKS; i++) {
|
||||
if (i!=2/*TODO constant*/) {
|
||||
if (i!=THR_STICK) {
|
||||
// don't instant trim the throttle stick
|
||||
uint8_t trim_phase = getTrimFlightPhase(i, phase);
|
||||
s_noStickInputs = true;
|
||||
|
|
|
@ -255,10 +255,11 @@ extern const pm_uint8_t modn12x3[];
|
|||
//convert from mode 1 to mode g_eeGeneral.stickMode
|
||||
//NOTICE! => 1..4 -> 1..4
|
||||
#define CONVERT_MODE(x) (((x)<=4) ? pgm_read_byte(modn12x3 + 4*g_eeGeneral.stickMode + (x)-1) : (x) )
|
||||
#define THR_STICK (2-(g_eeGeneral.stickMode&1))
|
||||
#define ELE_STICK (1+(g_eeGeneral.stickMode&1))
|
||||
#define AIL_STICK ((g_eeGeneral.stickMode&2) ? 0 : 3)
|
||||
#define RUD_STICK ((g_eeGeneral.stickMode&2) ? 3 : 0)
|
||||
|
||||
#define RUD_STICK 0
|
||||
#define ELE_STICK 1
|
||||
#define THR_STICK 2
|
||||
#define AIL_STICK 3
|
||||
|
||||
extern uint8_t channel_order(uint8_t x);
|
||||
|
||||
|
|
|
@ -291,7 +291,6 @@
|
|||
#define TR_MENUCURVE "CURVE"
|
||||
#define TR_MENUCUSTOMSWITCHES "CUSTOM SWITCHES"
|
||||
#define TR_MENUFUNCSWITCHES "FUNC SWITCHES"
|
||||
#define TR_MENUSAFETYSWITCHES "SAFETY SWITCHES"
|
||||
#define TR_MENUTELEMETRY "TELEMETRY"
|
||||
#define TR_MENUTEMPLATES "TEMPLATES"
|
||||
#define TR_MENUSTAT "STAT"
|
||||
|
|
|
@ -291,7 +291,6 @@
|
|||
#define TR_MENUCURVE "COURBE"
|
||||
#define TR_MENUCUSTOMSWITCHES "INTERS PERS"
|
||||
#define TR_MENUFUNCSWITCHES "INTERS FONCTIONS"
|
||||
#define TR_MENUSAFETYSWITCHES "INTERS SECURITE"
|
||||
#define TR_MENUTELEMETRY "TELEMETRIE"
|
||||
#define TR_MENUTEMPLATES "GABARITS"
|
||||
#define TR_MENUSTAT "STAT"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue