Skip to content

Commit

Permalink
Merge branch 'master' into anticogging
Browse files Browse the repository at this point in the history
  • Loading branch information
jsphuebner committed Feb 5, 2025
2 parents 1e47015 + 05bc282 commit 40367c7
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 4 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ OBJSL = stm32_sine.o hwinit.o stm32scheduler.o params.o terminal.o terminal_prj
my_string.o digio.o sine_core.o my_fp.o fu.o inc_encoder.o printf.o anain.o \
temp_meas.o param_save.o throttle.o errormessage.o pwmgeneration.o \
picontroller.o terminalcommands.o vehiclecontrol.o \
stm32_can.o canmap.o canhardware.o cansdo.o
stm32_can.o canmap.o canhardware.o cansdo.o sdocommands.o

ifeq ($(CONTROL), SINE)
OBJSL += pwmgeneration-sine.o
Expand Down
2 changes: 1 addition & 1 deletion libopeninv
2 changes: 2 additions & 0 deletions sinus.cbp
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@
<Unit filename="libopeninv/include/params.h" />
<Unit filename="libopeninv/include/picontroller.h" />
<Unit filename="libopeninv/include/printf.h" />
<Unit filename="libopeninv/include/sdocommands.h" />
<Unit filename="libopeninv/include/sine_core.h" />
<Unit filename="libopeninv/include/stm32_can.h" />
<Unit filename="libopeninv/include/stm32_loader.h" />
Expand Down Expand Up @@ -131,6 +132,7 @@
<Unit filename="libopeninv/src/printf.cpp">
<Option compilerVar="CC" />
</Unit>
<Unit filename="libopeninv/src/sdocommands.cpp" />
<Unit filename="libopeninv/src/sine_core.cpp" />
<Unit filename="libopeninv/src/stm32_can.cpp" />
<Unit filename="libopeninv/src/stm32scheduler.cpp" />
Expand Down
41 changes: 39 additions & 2 deletions src/stm32_sine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,11 @@
#include "stm32_can.h"
#include "canmap.h"
#include "cansdo.h"
#include "sdocommands.h"

#define PRINT_JSON 0
#define START_COMMAND_SUBINDEX 4
#define STOP_COMMAND_SUBINDEX 5

HWREV hwRev; //Hardware variant of board we are running on

Expand Down Expand Up @@ -220,13 +223,13 @@ static void Ms10Task(void)
PwmGeneration::SetOpmode(MOD_OFF);
Throttle::cruiseSpeed = -1;
TerminalCommands::EnableSaving();
canSdo->EnableSaving();
SdoCommands::EnableSaving();
}
else if (0 == initWait)
{
//Disable saving in Run mode
TerminalCommands::DisableSaving();
canSdo->DisableSaving();
SdoCommands::DisableSaving();
PwmGeneration::SetTorquePercent(0);
Throttle::RampThrottle(0); //Restart ramp
Encoder::Reset();
Expand Down Expand Up @@ -356,6 +359,29 @@ void Param::Change(Param::PARAM_NUM paramNum)
}
}

static void ProcessCustomSdoCommands(CanSdo::SdoFrame* sdoFrame)
{
if (sdoFrame->index == SDO_INDEX_COMMANDS && sdoFrame->cmd == SDO_WRITE)
{
switch (sdoFrame->subIndex)
{
case START_COMMAND_SUBINDEX:
if (sdoFrame->data < MOD_LAST)
{
Param::SetInt(Param::opmode, sdoFrame->data);
sdoFrame->cmd = SDO_WRITE_REPLY;
sdoFrame->data = 0;
}
break;
case STOP_COMMAND_SUBINDEX:
Param::SetInt(Param::opmode, 0);
sdoFrame->cmd = SDO_WRITE_REPLY;
sdoFrame->data = 0;
break;
}
}
}

static void UpgradeParameters()
{
Param::SetInt(Param::version, 4); //backward compatibility
Expand Down Expand Up @@ -441,11 +467,22 @@ extern "C" int main(void)
while(1)
{
char c = 0;
CanSdo::SdoFrame* sdoFrame = sdo.GetPendingUserspaceSdo();
t.Run();

if (canSdo->GetPrintRequest() == PRINT_JSON)
{
TerminalCommands::PrintParamsJson(canSdo, &c);
}
if (0 != sdoFrame)
{
SdoCommands::ProcessStandardCommands(sdoFrame);

if (sdoFrame->cmd == SDO_ABORT)
ProcessCustomSdoCommands(sdoFrame);

sdo.SendSdoReply(sdoFrame);
}
}

return 0;
Expand Down

0 comments on commit 40367c7

Please sign in to comment.