/
Sangak
/
inav
Обзор
Документация
Войти
/
Sangak
/
inav
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/main/main.c
79 строк
2 KB
Roman Lut
SITL: implemented built-in serial receivers support in SITL, implemented FC proxy mode, updated SITL docs (#9365)
27 апр 2024, 18:32
Не верифицирован
27 апр 2024, 18:32
e92337a
Код
Авторство
О чём код?
/* * This file is part of Cleanflight. * * Cleanflight is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Cleanflight is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Cleanflight. If not, see <http://www.gnu.org/licenses/>. */ #include <stdbool.h> #include <stdint.h> #include "platform.h" #include "build/debug.h" #include "drivers/serial.h" #include "drivers/serial_softserial.h" #include "fc/fc_init.h" #include "scheduler/scheduler.h" #if defined(SITL_BUILD) #include "target/SITL/serial_proxy.h" #endif #ifdef SOFTSERIAL_LOOPBACK serialPort_t *loopbackPort; #endif static void loopbackInit(void) { #ifdef SOFTSERIAL_LOOPBACK loopbackPort = softSerialLoopbackPort(); serialPrint(loopbackPort, "LOOPBACK\r\n"); #endif } static void processLoopback(void) { #ifdef SOFTSERIAL_LOOPBACK if (loopbackPort) { uint8_t bytesWaiting; while ((bytesWaiting = serialRxBytesWaiting(loopbackPort))) { uint8_t b = serialRead(loopbackPort); serialWrite(loopbackPort, b); }; } #endif } #if defined(SITL_BUILD) int main(int argc, char *argv[]) { parseArguments(argc, argv); #else int main(void) { #endif init(); loopbackInit(); while (true) { #if defined(SITL_BUILD) serialProxyProcess(); #endif scheduler(); processLoopback(); } }