mainloop/* moved to root

This commit is contained in:
2022-09-27 20:01:14 +02:00
parent 8e211fd8fb
commit 5dd7f4a277
40 changed files with 895 additions and 35 deletions
+55
View File
@@ -0,0 +1,55 @@
/*
* Copyright 2022 Oleg Borodin <borodin@unix7.org>
*/
#include <stdint.h>
#include <stdbool.h>
#include <string.h>
#include <stdio.h>
#include <sbus.h>
#define SBUS_STARTFR_BYTE 0x0F
void sbus_init(sbus_t* bus) {
memset(bus->iframe, 0, sizeof(bus->iframe));
memset(bus->rcvalue, 0, sizeof(bus->rcvalue));
bus->findex = 0;
}
bool sbus_recv(sbus_t* bus, uint8_t ibyte) {
printf("0x%02x ", ibyte);
if(bus->findex == 0 && ibyte != SBUS_STARTFR_BYTE) {
return false;
}
if(bus->findex < SBUS_FRAMESIZE) {
bus->iframe[bus->findex] = ibyte;
bus->findex++;
//printf("0x%02x ", ibyte);
return false;
}
if(bus->findex == SBUS_FRAMESIZE) {
bus->findex = 0;
//printf("0x%02x\r\n", bus->iframe[0]);
}
return false;
}
int sbus_chcount(sbus_t* bus) {
return SBUS_CHANNELS;
}
int16_t sbus_getch(sbus_t* bus, int num) {
if (num < SBUS_CHANNELS) {
return (int16_t)bus->rcvalue[num];
}
return WRONG_RCVAL;
}