Skip to content

Commit 5e64fdc

Browse files
michalmosurfdado
authored andcommitted
support custom lcm app command for ADV2 external shutdown notification
1 parent 9fe3aa6 commit 5e64fdc

File tree

2 files changed

+30
-2
lines changed

2 files changed

+30
-2
lines changed

LCM/Code/App/datatypes.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1339,7 +1339,9 @@ typedef struct __attribute__((packed)) {
13391339

13401340
typedef enum {
13411341
FLOAT_COMMAND_ID = 101, // float/refloat custom commands
1342+
LCM_COMMAND_ID = 202, // bms custom commands
13421343
} custom_app_data_command_ids;
1344+
13431345
typedef enum {
13441346
FLOAT_COMMAND_GET_INFO = 0, // get version / package info
13451347
FLOAT_COMMAND_GET_RTDATA = 1, // get rt data
@@ -1404,6 +1406,10 @@ typedef enum {
14041406
DEBUG = 255,
14051407
} control_commands;
14061408

1409+
typedef enum {
1410+
LCM_COMMAND_EXTERNAL_SHUTDOWN_STATUS = 0, // shutdown status notification
1411+
} LCM_commands;
1412+
14071413
typedef enum {
14081414
BOOT_DEFAULT = 0,
14091415
BOOT_REDWHITEBLUE = 1,

LCM/Code/App/vesc_uasrt.c

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -333,12 +333,34 @@ uint8_t Protocol_Parse(uint8_t * message)
333333

334334
case COMM_CUSTOM_APP_DATA:
335335

336-
if (len < 12) {
336+
if (len < 3) {
337337
break;
338338
}
339339
uint8_t magicnr = pdata[ind++];
340340
uint8_t cmdid = pdata[ind++];
341-
if ((magicnr != FLOAT_COMMAND_ID) || (cmdid != FLOAT_COMMAND_LCM_POLL)) {
341+
342+
if (magicnr == LCM_COMMAND_ID)
343+
{
344+
switch(cmdid)
345+
{
346+
case LCM_COMMAND_EXTERNAL_SHUTDOWN_STATUS:
347+
if(len != 4) return 1;
348+
if(Power_Flag == 2 &&
349+
pdata[ind] == 1) // shutting down
350+
{
351+
#ifdef ADV2
352+
Power_Flag = 5;
353+
Power_Time = 0;
354+
Idle_Time = 0;
355+
#endif
356+
}
357+
break;
358+
}
359+
360+
return 0;
361+
}
362+
363+
if ((magicnr != FLOAT_COMMAND_ID) || (cmdid != FLOAT_COMMAND_LCM_POLL) || (len < 12)) {
342364
break;
343365
}
344366
data.floatPackageSupported = true;

0 commit comments

Comments
 (0)