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));
|
printf("Model size = %d\n", (int)sizeof(g_model));
|
||||||
|
|
||||||
|
simuInit();
|
||||||
|
|
||||||
StartEepromThread(argc >= 2 ? argv[1] : "eeprom.bin");
|
StartEepromThread(argc >= 2 ? argv[1] : "eeprom.bin");
|
||||||
StartAudioThread();
|
StartAudioThread();
|
||||||
StartMainThread();
|
StartMainThread();
|
||||||
|
|
||||||
#if defined(PCBTARANIS)
|
|
||||||
simuSetSwitch(0, 0);
|
|
||||||
simuSetSwitch(1, 0);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return application.run();
|
return application.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -100,42 +100,46 @@ char simuSdDirectory[1024] = "";
|
||||||
uint8_t eeprom[EESIZE_SIMU];
|
uint8_t eeprom[EESIZE_SIMU];
|
||||||
sem_t *eeprom_write_sem;
|
sem_t *eeprom_write_sem;
|
||||||
|
|
||||||
#if defined(CPUARM)
|
void simuInit()
|
||||||
#if defined(PCBTARANIS)
|
{
|
||||||
#define SWITCH_CASE(swtch, pin, mask) \
|
for (int i = 0; i <= 17; i++)
|
||||||
case swtch: \
|
simuSetSwitch(i, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
#define NEG_CASE(sw_or_key, pin, mask) \
|
||||||
|
case sw_or_key: \
|
||||||
if ((int)state > 0) pin &= ~(mask); else pin |= (mask); \
|
if ((int)state > 0) pin &= ~(mask); else pin |= (mask); \
|
||||||
break;
|
break;
|
||||||
#else
|
#define POS_CASE(sw_or_key, pin, mask) \
|
||||||
#define SWITCH_CASE(swtch, pin, mask) \
|
case sw_or_key: \
|
||||||
case swtch: \
|
|
||||||
if ((int)state > 0) pin |= (mask); else pin &= ~(mask); \
|
if ((int)state > 0) pin |= (mask); else pin &= ~(mask); \
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#if defined(CPUARM)
|
||||||
|
#if defined(PCBTARANIS)
|
||||||
|
#define SWITCH_CASE NEG_CASE
|
||||||
|
#else
|
||||||
|
#define SWITCH_CASE POS_CASE
|
||||||
#endif
|
#endif
|
||||||
#define SWITCH_3_CASE(swtch, pin1, pin2, mask1, mask2) \
|
#define SWITCH_3_CASE(swtch, pin1, pin2, mask1, mask2) \
|
||||||
case swtch: \
|
case swtch: \
|
||||||
if ((int)state < 0) pin1 &= ~(mask1); else pin1 |= (mask1); \
|
if ((int)state < 0) pin1 &= ~(mask1); else pin1 |= (mask1); \
|
||||||
if ((int)state > 0) pin2 &= ~(mask2); else pin2 |= (mask2); \
|
if ((int)state > 0) pin2 &= ~(mask2); else pin2 |= (mask2); \
|
||||||
break;
|
break;
|
||||||
#define KEY_CASE(key, pin, mask) \
|
#define KEY_CASE NEG_CASE
|
||||||
case key: \
|
|
||||||
if ((int)state > 0) pin &= ~mask; else pin |= mask;\
|
|
||||||
break;
|
|
||||||
#define TRIM_CASE KEY_CASE
|
#define TRIM_CASE KEY_CASE
|
||||||
#else
|
#else
|
||||||
#define SWITCH_CASE(swtch, pin, mask) \
|
#if defined(PCBMEGA2560)
|
||||||
case swtch: \
|
#define SWITCH_CASE POS_CASE
|
||||||
if ((int)state > 0) pin &= ~(mask); else pin |= (mask); \
|
#else
|
||||||
break;
|
#define SWITCH_CASE NEG_CASE
|
||||||
|
#endif
|
||||||
#define SWITCH_3_CASE(swtch, pin1, pin2, mask1, mask2) \
|
#define SWITCH_3_CASE(swtch, pin1, pin2, mask1, mask2) \
|
||||||
case swtch: \
|
case swtch: \
|
||||||
if ((int)state >= 0) pin1 &= ~(mask1); else pin1 |= (mask1); \
|
if ((int)state >= 0) pin1 &= ~(mask1); else pin1 |= (mask1); \
|
||||||
if ((int)state <= 0) pin2 &= ~(mask2); else pin2 |= (mask2); \
|
if ((int)state <= 0) pin2 &= ~(mask2); else pin2 |= (mask2); \
|
||||||
break;
|
break;
|
||||||
#define KEY_CASE(key, pin, mask) \
|
#define KEY_CASE POS_CASE
|
||||||
case key: \
|
|
||||||
if ((int)state > 0) pin |= (mask); else pin &= ~(mask);\
|
|
||||||
break;
|
|
||||||
#define TRIM_CASE KEY_CASE
|
#define TRIM_CASE KEY_CASE
|
||||||
#endif
|
#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(x) do { if (!main_thread_running) return; sleep(x/*ms*/); } while (0)
|
||||||
#define SIMU_SLEEP_NORET(x) do { 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 simuSetKey(uint8_t key, bool state);
|
||||||
void simuSetTrim(uint8_t trim, bool state);
|
void simuSetTrim(uint8_t trim, bool state);
|
||||||
void simuSetSwitch(uint8_t swtch, int8_t 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)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
QCoreApplication app(argc, argv);
|
QCoreApplication app(argc, argv);
|
||||||
|
simuInit();
|
||||||
StartEepromThread(NULL);
|
StartEepromThread(NULL);
|
||||||
g_menuStackPtr = 0;
|
g_menuStackPtr = 0;
|
||||||
g_menuStack[0] = menuMainView;
|
g_menuStack[0] = menuMainView;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue