mirror of
https://github.com/opentx/opentx.git
synced 2025-07-16 12:55:12 +03:00
Fixes #2250
This commit is contained in:
parent
5f79e7e428
commit
d63f6bcaf7
4 changed files with 28 additions and 24 deletions
|
@ -445,15 +445,12 @@ int main(int argc,char **argv)
|
|||
|
||||
printf("Model size = %d\n", (int)sizeof(g_model));
|
||||
|
||||
simuInit();
|
||||
|
||||
StartEepromThread(argc >= 2 ? argv[1] : "eeprom.bin");
|
||||
StartAudioThread();
|
||||
StartMainThread();
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
simuSetSwitch(0, 0);
|
||||
simuSetSwitch(1, 0);
|
||||
#endif
|
||||
|
||||
return application.run();
|
||||
}
|
||||
|
||||
|
|
|
@ -100,42 +100,46 @@ char simuSdDirectory[1024] = "";
|
|||
uint8_t eeprom[EESIZE_SIMU];
|
||||
sem_t *eeprom_write_sem;
|
||||
|
||||
#if defined(CPUARM)
|
||||
#if defined(PCBTARANIS)
|
||||
#define SWITCH_CASE(swtch, pin, mask) \
|
||||
case swtch: \
|
||||
void simuInit()
|
||||
{
|
||||
for (int i = 0; i <= 17; i++)
|
||||
simuSetSwitch(i, 0);
|
||||
}
|
||||
|
||||
#define NEG_CASE(sw_or_key, pin, mask) \
|
||||
case sw_or_key: \
|
||||
if ((int)state > 0) pin &= ~(mask); else pin |= (mask); \
|
||||
break;
|
||||
#else
|
||||
#define SWITCH_CASE(swtch, pin, mask) \
|
||||
case swtch: \
|
||||
#define POS_CASE(sw_or_key, pin, mask) \
|
||||
case sw_or_key: \
|
||||
if ((int)state > 0) pin |= (mask); else pin &= ~(mask); \
|
||||
break;
|
||||
|
||||
#if defined(CPUARM)
|
||||
#if defined(PCBTARANIS)
|
||||
#define SWITCH_CASE NEG_CASE
|
||||
#else
|
||||
#define SWITCH_CASE POS_CASE
|
||||
#endif
|
||||
#define SWITCH_3_CASE(swtch, pin1, pin2, mask1, mask2) \
|
||||
case swtch: \
|
||||
if ((int)state < 0) pin1 &= ~(mask1); else pin1 |= (mask1); \
|
||||
if ((int)state > 0) pin2 &= ~(mask2); else pin2 |= (mask2); \
|
||||
break;
|
||||
#define KEY_CASE(key, pin, mask) \
|
||||
case key: \
|
||||
if ((int)state > 0) pin &= ~mask; else pin |= mask;\
|
||||
break;
|
||||
#define KEY_CASE NEG_CASE
|
||||
#define TRIM_CASE KEY_CASE
|
||||
#else
|
||||
#define SWITCH_CASE(swtch, pin, mask) \
|
||||
case swtch: \
|
||||
if ((int)state > 0) pin &= ~(mask); else pin |= (mask); \
|
||||
break;
|
||||
#if defined(PCBMEGA2560)
|
||||
#define SWITCH_CASE POS_CASE
|
||||
#else
|
||||
#define SWITCH_CASE NEG_CASE
|
||||
#endif
|
||||
#define SWITCH_3_CASE(swtch, pin1, pin2, mask1, mask2) \
|
||||
case swtch: \
|
||||
if ((int)state >= 0) pin1 &= ~(mask1); else pin1 |= (mask1); \
|
||||
if ((int)state <= 0) pin2 &= ~(mask2); else pin2 |= (mask2); \
|
||||
break;
|
||||
#define KEY_CASE(key, pin, mask) \
|
||||
case key: \
|
||||
if ((int)state > 0) pin |= (mask); else pin &= ~(mask);\
|
||||
break;
|
||||
#define KEY_CASE POS_CASE
|
||||
#define TRIM_CASE KEY_CASE
|
||||
#endif
|
||||
|
||||
|
|
|
@ -367,6 +367,8 @@ extern uint8_t main_thread_running;
|
|||
#define SIMU_SLEEP(x) do { if (!main_thread_running) return; sleep(x/*ms*/); } while (0)
|
||||
#define SIMU_SLEEP_NORET(x) do { sleep(x/*ms*/); } while (0)
|
||||
|
||||
void simuInit();
|
||||
|
||||
void simuSetKey(uint8_t key, bool state);
|
||||
void simuSetTrim(uint8_t trim, bool state);
|
||||
void simuSetSwitch(uint8_t swtch, int8_t state);
|
||||
|
|
|
@ -60,6 +60,7 @@ const char * zchar2string(const char * zstring, int size)
|
|||
int main(int argc, char **argv)
|
||||
{
|
||||
QCoreApplication app(argc, argv);
|
||||
simuInit();
|
||||
StartEepromThread(NULL);
|
||||
g_menuStackPtr = 0;
|
||||
g_menuStack[0] = menuMainView;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue