mirror of
https://github.com/DashyFox/StackSport.git
synced 2025-06-28 13:19:41 +00:00
led and rc
This commit is contained in:
@ -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();
|
||||
|
Reference in New Issue
Block a user