// // Created by cfif on 04.10.2022. // #include #include #include #include #include "fs_interface.h" void TaskMsd_Init( tTaskMsd *env, tGnss *gnss, tRtcIO *rtcIo, tModemMain *modemMain, tGpios *gpios ) { env->gnss = gnss; env->rtcIo = rtcIo; env->modemMain = modemMain; env->gpios = gpios; //Инициализируем поток InitThreadAtrStatic(&env->thread.attr, "TaskMsd", env->thread.controlBlock, env->thread.stack, osPriorityNormal); env->thread.id = 0; } static _Noreturn void TaskMsd_Thread(tTaskMsd *env) { bool isFlagStuckSos = false; for (;;) { /* bool isButtonSosPress = GpioPinGet(&env->gpios->Power.discretIn1_pg2); // Нажата кнопка SOS if (isButtonSosPress) { isFlagStuckSos = true; } else { if (isFlagStuckSos) { isFlagStuckSos = false; sendMsd(env->modemMain); } } */ SystemDelayMs(200); } } void TaskMsd_StartThread(tTaskMsd *env) { if (!env->thread.id) { env->thread.id = osThreadNew((osThreadFunc_t) (TaskMsd_Thread), (void *) (env), &env->thread.attr); } else { osThreadResume(env->thread.id); } }