led and rc

This commit is contained in:
2024-09-30 00:26:00 +03:00
parent 7095a09a1d
commit 6c3af6fbb5
15 changed files with 634 additions and 221 deletions

View File

@ -9,6 +9,7 @@
#include "Print.h"
#include "RobotFunctions.h"
#include "EEPROM.h"
#include "Indicator.h"
#define HIGHBIT(b) (((b)>>8)&0xff)
#define LOWBIT(b) ((b)&0xff)
@ -31,6 +32,31 @@ uint8_t checkLen(uint8_t cmd, uint8_t current_length, uint8_t required_length) {
return 1;
}
static void NULL_FUNC(){};
static void (*onSave)() = NULL_FUNC;
static void resetOnSave(){onSave = NULL_FUNC;};
uint8_t isSyncFirstSave;
static void onLedIdle(){
isSyncFirstSave = 0;
for (int i = 0; i < 9; ++i) {
led_writeMirror(i, 1);
}
HAL_Delay(25);
led_clear();
resetOnSave();
}
static void onSaveCallback(){
if(isSyncFirstSave){
isSyncFirstSave = 0;
led_PingPong_startMirror(3, 9);
for (int i = 0; i < 3; ++i) {
led_writeMirror(i, 1);
}
}
led_PingPong_next();
}
// 10
void UART3_SaveShot(uint8_t *dataPtr, uint8_t len) {
const uint8_t MIN_PARAM_LENGTH = 8;
@ -50,6 +76,7 @@ void UART3_SaveShot(uint8_t *dataPtr, uint8_t len) {
shot.rotationVertical = 180 - (int8_t) dataPtr[8] - 90;
saveShot(shotIndx, &shot);
onSaveCallback();
SendResponse(dataPtr[0], 0, NULL, 0);
}
@ -77,6 +104,7 @@ void UART3_SaveProgram(uint8_t *dataPtr, uint8_t len) {
}
saveProg(progIndx, &prog);
onSaveCallback();
SendResponse(dataPtr[0], 0, NULL, 0);
}
@ -106,6 +134,7 @@ void UART3_SaveMacro(uint8_t *dataPtr, uint8_t len) {
} else {
delMacro(macroIndx);
}
onSaveCallback();
SendResponse(dataPtr[0], 0, NULL, 0);
}
@ -201,6 +230,9 @@ void UART3_DeleteAllData(uint8_t *dataPtr, uint8_t len) {
const uint8_t MIN_PARAM_LENGTH = 0;
if (!checkLen(dataPtr[0], len, MIN_PARAM_LENGTH))
return;
isSyncFirstSave = 1;
led_setIdleCallback(onLedIdle);
onSave = onSaveCallback;
getInfoBlock();
EEPROM_EARSE();