Updated to latest libopeninv
This commit is contained in:
@@ -33,16 +33,17 @@ CFLAGS = -Os -Wall -Wextra -Iinclude/ -Ilibopeninv/include -Ilibopencm3/include
|
|||||||
-fno-common -fno-builtin -pedantic -DSTM32F1 \
|
-fno-common -fno-builtin -pedantic -DSTM32F1 \
|
||||||
-mcpu=cortex-m3 -mthumb -std=gnu99 -ffunction-sections -fdata-sections
|
-mcpu=cortex-m3 -mthumb -std=gnu99 -ffunction-sections -fdata-sections
|
||||||
CPPFLAGS = -Os -Wall -Wextra -Iinclude/ -Ilibopeninv/include -Ilibopencm3/include \
|
CPPFLAGS = -Os -Wall -Wextra -Iinclude/ -Ilibopeninv/include -Ilibopencm3/include \
|
||||||
-fno-common -std=c++11 -pedantic -DSTM32F1 -DMAX_MESSAGES=15 \
|
-fno-common -std=c++11 -pedantic -DSTM32F1 -DMAX_ITEMS=70 -DMAX_MESSAGES=15 \
|
||||||
-ffunction-sections -fdata-sections -fno-builtin -fno-rtti -fno-exceptions -fno-unwind-tables -mcpu=cortex-m3 -mthumb
|
-ffunction-sections -fdata-sections -fno-builtin -fno-rtti -fno-exceptions -fno-unwind-tables -mcpu=cortex-m3 -mthumb
|
||||||
LDSCRIPT = linker.ld
|
LDSCRIPT = linker.ld
|
||||||
LDFLAGS = -Llibopencm3/lib -T$(LDSCRIPT) -march=armv7 -nostartfiles -Wl,--gc-sections,-Map,linker.map
|
LDFLAGS = -Llibopencm3/lib -T$(LDSCRIPT) -march=armv7 -nostartfiles -Wl,--gc-sections,-Map,linker.map
|
||||||
OBJSL = main.o hwinit.o stm32scheduler.o params.o terminal.o terminal_prj.o \
|
OBJSL = main.o hwinit.o stm32scheduler.o params.o terminal.o terminal_prj.o \
|
||||||
my_string.o digio.o sine_core.o my_fp.o printf.o anain.o \
|
my_string.o digio.o sine_core.o my_fp.o printf.o anain.o \
|
||||||
param_save.o errormessage.o stm32_can.o \
|
param_save.o errormessage.o canhardware.o stm32_can.o canmap.o cansdo.o \
|
||||||
picontroller.o terminalcommands.o chargercan.o charger.o
|
picontroller.o terminalcommands.o chargercan.o charger.o
|
||||||
|
|
||||||
OBJS = $(patsubst %.o,obj/%.o, $(OBJSL))
|
OBJS = $(patsubst %.o,obj/%.o, $(OBJSL))
|
||||||
|
DEPENDS = $(patsubst %.o,obj/%.d, $(OBJSL))
|
||||||
vpath %.c src/ libopeninv/src
|
vpath %.c src/ libopeninv/src
|
||||||
vpath %.cpp src/ libopeninv/src
|
vpath %.cpp src/ libopeninv/src
|
||||||
|
|
||||||
@@ -78,13 +79,15 @@ $(BINARY): $(OBJS) $(LDSCRIPT)
|
|||||||
@printf " LD $(subst $(shell pwd)/,,$(@))\n"
|
@printf " LD $(subst $(shell pwd)/,,$(@))\n"
|
||||||
$(Q)$(LD) $(LDFLAGS) -o $(BINARY) $(OBJS) -lopencm3_stm32f1
|
$(Q)$(LD) $(LDFLAGS) -o $(BINARY) $(OBJS) -lopencm3_stm32f1
|
||||||
|
|
||||||
|
-include $(DEPENDS)
|
||||||
|
|
||||||
$(OUT_DIR)/%.o: %.c Makefile
|
$(OUT_DIR)/%.o: %.c Makefile
|
||||||
@printf " CC $(subst $(shell pwd)/,,$(@))\n"
|
@printf " CC $(subst $(shell pwd)/,,$(@))\n"
|
||||||
$(Q)$(CC) $(CFLAGS) -o $@ -c $<
|
$(Q)$(CC) $(CFLAGS) -MMD -MP -o $@ -c $<
|
||||||
|
|
||||||
$(OUT_DIR)/%.o: %.cpp Makefile
|
$(OUT_DIR)/%.o: %.cpp Makefile
|
||||||
@printf " CPP $(subst $(shell pwd)/,,$(@))\n"
|
@printf " CPP $(subst $(shell pwd)/,,$(@))\n"
|
||||||
$(Q)$(CPP) $(CPPFLAGS) -o $@ -c $<
|
$(Q)$(CPP) $(CPPFLAGS) -MMD -MP -o $@ -c $<
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@printf " CLEAN ${OUT_DIR}\n"
|
@printf " CLEAN ${OUT_DIR}\n"
|
||||||
@@ -124,7 +127,7 @@ Test:
|
|||||||
g++ -c -Ilibopeninv/include/ -o my_string.o libopeninv/src/my_string.c
|
g++ -c -Ilibopeninv/include/ -o my_string.o libopeninv/src/my_string.c
|
||||||
g++ -c -Ilibopeninv/include/ -Iinclude -o params.o libopeninv/src/params.cpp
|
g++ -c -Ilibopeninv/include/ -Iinclude -o params.o libopeninv/src/params.cpp
|
||||||
g++ -c -Ilibopeninv/include/ -Iinclude -o errormessage.o libopeninv/src/errormessage.cpp
|
g++ -c -Ilibopeninv/include/ -Iinclude -o errormessage.o libopeninv/src/errormessage.cpp
|
||||||
g++ -c -Ilibopeninv/include/ -Iinclude -o printf.o libopeninv/src/printf.cpp
|
g++ -c -Ilibopeninv/include/ -Iinclude -Wno-builtin-declaration-mismatch -Wno-int-to-pointer-cast -o printf.o libopeninv/src/printf.cpp
|
||||||
g++ -c -Ilibopeninv/include/ -Iinclude -o picontroller.o libopeninv/src/picontroller.cpp
|
g++ -c -Ilibopeninv/include/ -Iinclude -o picontroller.o libopeninv/src/picontroller.cpp
|
||||||
g++ -c -Ilibopeninv/include/ -Iinclude -o charger.o src/charger.cpp -D TEST_COMMON_H
|
g++ -c -Ilibopeninv/include/ -Iinclude -o charger.o src/charger.cpp -D TEST_COMMON_H
|
||||||
g++ -c -Ilibopeninv/include/ -Iinclude -o digio_mock.o test/digio_mock.cpp
|
g++ -c -Ilibopeninv/include/ -Iinclude -o digio_mock.o test/digio_mock.cpp
|
||||||
|
|||||||
@@ -18,12 +18,12 @@
|
|||||||
*/
|
*/
|
||||||
#ifndef CHARGERCAN_H
|
#ifndef CHARGERCAN_H
|
||||||
#define CHARGERCAN_H
|
#define CHARGERCAN_H
|
||||||
#include "stm32_can.h"
|
#include "canmap.h"
|
||||||
|
|
||||||
class ChargerCAN
|
class ChargerCAN
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static void MapMessages(Can* can);
|
static void MapMessages(CanMap* can);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
#define HWDEFS_H_INCLUDED
|
#define HWDEFS_H_INCLUDED
|
||||||
|
|
||||||
|
|
||||||
#define RCC_CLOCK_SETUP rcc_clock_setup_in_hse_8mhz_out_72mhz
|
#define RCC_CLOCK_SETUP() rcc_clock_setup_pll(&rcc_hse_configs[RCC_CLOCK_HSE8_72MHZ])
|
||||||
|
|
||||||
//Address of parameter block in flash
|
//Address of parameter block in flash
|
||||||
#define FLASH_PAGE_SIZE 1024
|
#define FLASH_PAGE_SIZE 1024
|
||||||
|
|||||||
+4
-5
@@ -39,7 +39,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
//Define a version string of your firmware here
|
//Define a version string of your firmware here
|
||||||
#define VER 1.17.R
|
#define VER 1.18.R
|
||||||
|
|
||||||
/* Entries must be ordered as follows:
|
/* Entries must be ordered as follows:
|
||||||
1. Saveable parameters (id != 0)
|
1. Saveable parameters (id != 0)
|
||||||
@@ -107,10 +107,9 @@
|
|||||||
VALUE_ENTRY(c3iac, "A", 2034 ) \
|
VALUE_ENTRY(c3iac, "A", 2034 ) \
|
||||||
VALUE_ENTRY(c3udc, "V", 2035 ) \
|
VALUE_ENTRY(c3udc, "V", 2035 ) \
|
||||||
VALUE_ENTRY(c3idc, "A", 2036 ) \
|
VALUE_ENTRY(c3idc, "A", 2036 ) \
|
||||||
VALUE_ENTRY(test_time, "s", 2037 ) \
|
VALUE_ENTRY(test_time, "s", 3000 ) \
|
||||||
VALUE_ENTRY(test_timer_flag, "X", 2038 ) \
|
VALUE_ENTRY(test_timer_flag, "X", 3001 ) \
|
||||||
VALUE_ENTRY(test_timer_icvalue, "X", 2039 ) \
|
VALUE_ENTRY(test_timer_icvalue, "X", 3002 ) \
|
||||||
// TODO: How to hide this in interface?
|
|
||||||
|
|
||||||
|
|
||||||
/***** Enum String definitions *****/
|
/***** Enum String definitions *****/
|
||||||
|
|||||||
+1
-1
Submodule libopeninv updated: 0bef3c1fdb...115ea3090d
+1
-1
@@ -18,7 +18,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "chargercan.h"
|
#include "chargercan.h"
|
||||||
|
|
||||||
void ChargerCAN::MapMessages(Can* can)
|
void ChargerCAN::MapMessages(CanMap* can)
|
||||||
{
|
{
|
||||||
can->AddRecv(Param::hwaclim, 0x207, 32, 9, 0.06666f); //gain 0.06666
|
can->AddRecv(Param::hwaclim, 0x207, 32, 9, 0.06666f); //gain 0.06666
|
||||||
can->AddRecv(Param::hwaclim, 0x209, 32, 9, 0.06666f); //gain 0.06666
|
can->AddRecv(Param::hwaclim, 0x209, 32, 9, 0.06666f); //gain 0.06666
|
||||||
|
|||||||
+42
-9
@@ -28,6 +28,7 @@
|
|||||||
#include <libopencm3/stm32/iwdg.h>
|
#include <libopencm3/stm32/iwdg.h>
|
||||||
#include <libopencm3/stm32/crc.h>
|
#include <libopencm3/stm32/crc.h>
|
||||||
#include "stm32_can.h"
|
#include "stm32_can.h"
|
||||||
|
#include "cansdo.h"
|
||||||
#include "terminal.h"
|
#include "terminal.h"
|
||||||
#include "params.h"
|
#include "params.h"
|
||||||
#include "hwdefs.h"
|
#include "hwdefs.h"
|
||||||
@@ -42,9 +43,13 @@
|
|||||||
#include "picontroller.h"
|
#include "picontroller.h"
|
||||||
#include "chargercan.h"
|
#include "chargercan.h"
|
||||||
#include "charger.h"
|
#include "charger.h"
|
||||||
|
#include "terminalcommands.h"
|
||||||
|
|
||||||
|
#define PRINT_JSON 0
|
||||||
|
|
||||||
static Stm32Scheduler* scheduler;
|
static Stm32Scheduler* scheduler;
|
||||||
static Can* can;
|
static CanHardware* can;
|
||||||
|
static CanMap* canMap;
|
||||||
PiController dcCurController;
|
PiController dcCurController;
|
||||||
uint32_t startTime;
|
uint32_t startTime;
|
||||||
|
|
||||||
@@ -72,7 +77,7 @@ static void Ms100Task(void)
|
|||||||
|
|
||||||
EvseRead();
|
EvseRead();
|
||||||
|
|
||||||
can->SendAll();
|
canMap->SendAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void MapChargerMessages()
|
static void MapChargerMessages()
|
||||||
@@ -84,13 +89,13 @@ static void MapChargerMessages()
|
|||||||
bool dummyrx;
|
bool dummyrx;
|
||||||
|
|
||||||
//check sample value, if it is mapped assume valid CAN map
|
//check sample value, if it is mapped assume valid CAN map
|
||||||
if (can->FindMap(Param::hwaclim, dummyId, dummyOfs, dummyLen, dummyGain, dummyAdd, dummyrx)) return;
|
if (canMap->FindMap(Param::hwaclim, dummyId, dummyOfs, dummyLen, dummyGain, dummyAdd, dummyrx)) return;
|
||||||
|
|
||||||
can->Clear();
|
//canMap->Clear();
|
||||||
|
|
||||||
ChargerCAN::MapMessages(can);
|
ChargerCAN::MapMessages(canMap);
|
||||||
|
|
||||||
can->Save();
|
canMap->Save();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** This function is called when the user changes a parameter */
|
/** This function is called when the user changes a parameter */
|
||||||
@@ -115,6 +120,16 @@ void Param::Change(Param::PARAM_NUM paramNum)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void HandleClear()
|
||||||
|
{
|
||||||
|
MapChargerMessages();
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool CanCallback(uint32_t, uint32_t*, uint8_t)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
//Whichever timer(s) you use for the scheduler, you have to
|
//Whichever timer(s) you use for the scheduler, you have to
|
||||||
//implement their ISRs here and call into the respective scheduler
|
//implement their ISRs here and call into the respective scheduler
|
||||||
extern "C" void tim2_isr(void)
|
extern "C" void tim2_isr(void)
|
||||||
@@ -142,10 +157,19 @@ extern "C" int main(void)
|
|||||||
Stm32Scheduler s(TIM2); //We never exit main so it's ok to put it on stack
|
Stm32Scheduler s(TIM2); //We never exit main so it's ok to put it on stack
|
||||||
scheduler = &s;
|
scheduler = &s;
|
||||||
//Initialize CAN1, including interrupts. Clock must be enabled in clock_setup()
|
//Initialize CAN1, including interrupts. Clock must be enabled in clock_setup()
|
||||||
Can c(CAN1, Can::Baud500, true);
|
Stm32Can c(CAN1, CanHardware::Baud500, true);
|
||||||
c.SetNodeId(5);
|
FunctionPointerCallback cb(CanCallback, HandleClear);
|
||||||
//store a pointer for easier access
|
c.AddCallback(&cb);
|
||||||
can = &c;
|
can = &c;
|
||||||
|
|
||||||
|
//store a pointer for easier access
|
||||||
|
CanMap cm(&c);
|
||||||
|
canMap = &cm;
|
||||||
|
CanSdo sdo(&c, &cm);
|
||||||
|
sdo.SetNodeId(2);
|
||||||
|
|
||||||
|
TerminalCommands::SetCanMap(&cm);
|
||||||
|
|
||||||
Terminal t3(USART3, termCmds);
|
Terminal t3(USART3, termCmds);
|
||||||
Terminal t1(USART1, termCmds);
|
Terminal t1(USART1, termCmds);
|
||||||
|
|
||||||
@@ -161,6 +185,9 @@ extern "C" int main(void)
|
|||||||
|
|
||||||
//backward compatibility, version 4 was the first to support the "stream" command
|
//backward compatibility, version 4 was the first to support the "stream" command
|
||||||
Param::SetInt(Param::version, 4);
|
Param::SetInt(Param::version, 4);
|
||||||
|
Param::SetFlag(Param::test_time, Param::FLAG_HIDDEN);
|
||||||
|
Param::SetFlag(Param::test_timer_flag, Param::FLAG_HIDDEN);
|
||||||
|
Param::SetFlag(Param::test_timer_icvalue, Param::FLAG_HIDDEN);
|
||||||
|
|
||||||
//In version 1.11 this changed from mV to V
|
//In version 1.11 this changed from mV to V
|
||||||
if (Param::GetInt(Param::udcspnt) > 420)
|
if (Param::GetInt(Param::udcspnt) > 420)
|
||||||
@@ -176,6 +203,12 @@ extern "C" int main(void)
|
|||||||
{
|
{
|
||||||
t1.Run();
|
t1.Run();
|
||||||
t3.Run();
|
t3.Run();
|
||||||
|
|
||||||
|
if (sdo.GetPrintRequest() == PRINT_JSON)
|
||||||
|
{
|
||||||
|
char c = 0;
|
||||||
|
TerminalCommands::PrintParamsJson(&sdo, &c);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+6
-146
@@ -36,7 +36,6 @@
|
|||||||
#include "chargercan.h"
|
#include "chargercan.h"
|
||||||
|
|
||||||
static void LoadDefaults(Terminal* term, char *arg);
|
static void LoadDefaults(Terminal* term, char *arg);
|
||||||
static void PrintParamsJson(Terminal* term, char *arg);
|
|
||||||
static void PrintSerial(Terminal* term, char *arg);
|
static void PrintSerial(Terminal* term, char *arg);
|
||||||
static void MapCan(Terminal* term, char *arg);
|
static void MapCan(Terminal* term, char *arg);
|
||||||
static void PrintErrors(Terminal* term, char *arg);
|
static void PrintErrors(Terminal* term, char *arg);
|
||||||
@@ -52,7 +51,7 @@ extern "C" const TERM_CMD termCmds[] =
|
|||||||
{ "defaults", LoadDefaults },
|
{ "defaults", LoadDefaults },
|
||||||
{ "save", TerminalCommands::SaveParameters },
|
{ "save", TerminalCommands::SaveParameters },
|
||||||
{ "load", TerminalCommands::LoadParameters },
|
{ "load", TerminalCommands::LoadParameters },
|
||||||
{ "json", PrintParamsJson },
|
{ "json", TerminalCommands::PrintParamsJson },
|
||||||
{ "can", MapCan },
|
{ "can", MapCan },
|
||||||
{ "serial", PrintSerial },
|
{ "serial", PrintSerial },
|
||||||
{ "errors", PrintErrors },
|
{ "errors", PrintErrors },
|
||||||
@@ -75,163 +74,24 @@ void PrintCanMap(Param::PARAM_NUM param, uint32_t canid, uint8_t offsetBits, uin
|
|||||||
//cantx param id offset len gain
|
//cantx param id offset len gain
|
||||||
static void MapCan(Terminal* term, char *arg)
|
static void MapCan(Terminal* term, char *arg)
|
||||||
{
|
{
|
||||||
Param::PARAM_NUM paramIdx = Param::PARAM_INVALID;
|
|
||||||
int values[4];
|
|
||||||
int result;
|
|
||||||
char op;
|
|
||||||
char *ending;
|
|
||||||
const int numArgs = 4;
|
|
||||||
|
|
||||||
arg = my_trim(arg);
|
arg = my_trim(arg);
|
||||||
|
|
||||||
if (arg[0] == 'p')
|
if (arg[0] == 'd')
|
||||||
{
|
{
|
||||||
while (curTerm != NULL); //lock
|
fprintf(term, "CAN map can not be deleted selectively, use clear command\r\n");
|
||||||
curTerm = term;
|
|
||||||
Can::GetInterface(0)->IterateCanMap(PrintCanMap);
|
|
||||||
curTerm = NULL;
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (arg[0] == 'c')
|
if (arg[0] == 'c')
|
||||||
{
|
{
|
||||||
Can::GetInterface(0)->Clear();
|
TerminalCommands::MapCan(term, arg);
|
||||||
ChargerCAN::MapMessages(Can::GetInterface(0));
|
//ChargerCAN::MapMessages(Can::GetInterface(0));
|
||||||
fprintf(term, "Default CAN mapping restored\r\n");
|
fprintf(term, "Default CAN mapping restored\r\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
op = arg[0];
|
TerminalCommands::MapCan(term, arg);
|
||||||
arg = (char *)my_strchr(arg, ' ');
|
|
||||||
|
|
||||||
if (0 == *arg)
|
|
||||||
{
|
|
||||||
fprintf(term, "Missing argument\r\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
arg = my_trim(arg);
|
|
||||||
ending = (char *)my_strchr(arg, ' ');
|
|
||||||
|
|
||||||
if (*ending == 0 && op != 'd')
|
|
||||||
{
|
|
||||||
fprintf(term, "Missing argument\r\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
*ending = 0;
|
|
||||||
paramIdx = Param::NumFromString(arg);
|
|
||||||
arg = my_trim(ending + 1);
|
|
||||||
|
|
||||||
if (Param::PARAM_INVALID == paramIdx)
|
|
||||||
{
|
|
||||||
fprintf(term, "Unknown parameter\r\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (op == 'd')
|
|
||||||
{
|
|
||||||
if (paramIdx >= Param::version)
|
|
||||||
{
|
|
||||||
fprintf(term, "Internal CAN map can not be deleted\r\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
result = Can::GetInterface(0)->Remove(paramIdx);
|
|
||||||
fprintf(term, "%d entries removed\r\n", result);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < numArgs; i++)
|
|
||||||
{
|
|
||||||
ending = (char *)my_strchr(arg, ' ');
|
|
||||||
|
|
||||||
if (0 == *ending && i < (numArgs - 1))
|
|
||||||
{
|
|
||||||
fprintf(term, "Missing argument\r\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
*ending = 0;
|
|
||||||
int iVal = my_atoi(arg);
|
|
||||||
|
|
||||||
//allow gain values < 1 and re-interpret them
|
|
||||||
if (i == (numArgs - 1) && iVal == 0)
|
|
||||||
{
|
|
||||||
values[i] = fp_atoi(arg, 16);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
values[i] = iVal;
|
|
||||||
}
|
|
||||||
|
|
||||||
arg = my_trim(ending + 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (op == 't')
|
|
||||||
{
|
|
||||||
result = Can::GetInterface(0)->AddSend(paramIdx, values[0], values[1], values[2], values[3] / 65536.0f);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result = Can::GetInterface(0)->AddRecv(paramIdx, values[0], values[1], values[2], values[3] / 65536.0f);
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (result)
|
|
||||||
{
|
|
||||||
case CAN_ERR_INVALID_ID:
|
|
||||||
fprintf(term, "Invalid CAN Id %x\r\n", values[0]);
|
|
||||||
break;
|
|
||||||
case CAN_ERR_INVALID_OFS:
|
|
||||||
fprintf(term, "Invalid Offset %d\r\n", values[1]);
|
|
||||||
break;
|
|
||||||
case CAN_ERR_INVALID_LEN:
|
|
||||||
fprintf(term, "Invalid length %d\r\n", values[2]);
|
|
||||||
break;
|
|
||||||
case CAN_ERR_MAXITEMS:
|
|
||||||
fprintf(term, "Cannot map anymore items to CAN id %d\r\n", values[0]);
|
|
||||||
break;
|
|
||||||
case CAN_ERR_MAXMESSAGES:
|
|
||||||
fprintf(term, "Max message count reached\r\n");
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
fprintf(term, "CAN map successful, %d message%s active\r\n", result, result > 1 ? "s" : "");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void PrintParamsJson(Terminal* term, char *arg)
|
|
||||||
{
|
|
||||||
arg = my_trim(arg);
|
|
||||||
|
|
||||||
const Param::Attributes *pAtr;
|
|
||||||
char comma = ' ';
|
|
||||||
bool printHidden = arg[0] == 'h';
|
|
||||||
|
|
||||||
fprintf(term, "{");
|
|
||||||
for (uint32_t idx = 0; idx < Param::PARAM_LAST; idx++)
|
|
||||||
{
|
|
||||||
pAtr = Param::GetAttrib((Param::PARAM_NUM)idx);
|
|
||||||
|
|
||||||
if ((Param::GetFlag((Param::PARAM_NUM)idx) & Param::FLAG_HIDDEN) == 0 || printHidden)
|
|
||||||
{
|
|
||||||
fprintf(term, "%c\r\n \"%s\": {\"unit\":\"%s\",\"value\":%f,",comma, pAtr->name, pAtr->unit, Param::Get((Param::PARAM_NUM)idx));
|
|
||||||
|
|
||||||
if (Param::IsParam((Param::PARAM_NUM)idx))
|
|
||||||
{
|
|
||||||
fprintf(term, "\"isparam\":true,\"minimum\":%f,\"maximum\":%f,\"default\":%f,\"category\":\"%s\",\"i\":%d}",
|
|
||||||
pAtr->min, pAtr->max, pAtr->def, pAtr->category, idx);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
fprintf(term, "\"isparam\":false}");
|
|
||||||
}
|
|
||||||
comma = ',';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fprintf(term, ",\r\n \"serial\": {\"unit\":\"\",\"value\":\"%X:%X:%X\",\"isparam\":false}", DESIG_UNIQUE_ID2, DESIG_UNIQUE_ID1, DESIG_UNIQUE_ID0);
|
|
||||||
fprintf(term, "\r\n}\r\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void LoadDefaults(Terminal* term, char *arg)
|
static void LoadDefaults(Terminal* term, char *arg)
|
||||||
{
|
{
|
||||||
arg = arg;
|
arg = arg;
|
||||||
|
|||||||
@@ -42,10 +42,17 @@
|
|||||||
<Unit filename="include/hwinit.h" />
|
<Unit filename="include/hwinit.h" />
|
||||||
<Unit filename="include/param_prj.h" />
|
<Unit filename="include/param_prj.h" />
|
||||||
<Unit filename="libopeninv/include/anain.h" />
|
<Unit filename="libopeninv/include/anain.h" />
|
||||||
|
<Unit filename="libopeninv/include/canhardware.h" />
|
||||||
|
<Unit filename="libopeninv/include/canmap.h" />
|
||||||
|
<Unit filename="libopeninv/include/canobd2.h" />
|
||||||
|
<Unit filename="libopeninv/include/cansdo.h" />
|
||||||
|
<Unit filename="libopeninv/include/crc8.h" />
|
||||||
|
<Unit filename="libopeninv/include/delay.h" />
|
||||||
<Unit filename="libopeninv/include/digio.h" />
|
<Unit filename="libopeninv/include/digio.h" />
|
||||||
<Unit filename="libopeninv/include/errormessage.h" />
|
<Unit filename="libopeninv/include/errormessage.h" />
|
||||||
<Unit filename="libopeninv/include/foc.h" />
|
<Unit filename="libopeninv/include/foc.h" />
|
||||||
<Unit filename="libopeninv/include/fu.h" />
|
<Unit filename="libopeninv/include/fu.h" />
|
||||||
|
<Unit filename="libopeninv/include/linbus.h" />
|
||||||
<Unit filename="libopeninv/include/my_fp.h" />
|
<Unit filename="libopeninv/include/my_fp.h" />
|
||||||
<Unit filename="libopeninv/include/my_math.h" />
|
<Unit filename="libopeninv/include/my_math.h" />
|
||||||
<Unit filename="libopeninv/include/my_string.h" />
|
<Unit filename="libopeninv/include/my_string.h" />
|
||||||
@@ -60,10 +67,16 @@
|
|||||||
<Unit filename="libopeninv/include/terminal.h" />
|
<Unit filename="libopeninv/include/terminal.h" />
|
||||||
<Unit filename="libopeninv/include/terminalcommands.h" />
|
<Unit filename="libopeninv/include/terminalcommands.h" />
|
||||||
<Unit filename="libopeninv/src/anain.cpp" />
|
<Unit filename="libopeninv/src/anain.cpp" />
|
||||||
|
<Unit filename="libopeninv/src/canhardware.cpp" />
|
||||||
|
<Unit filename="libopeninv/src/canmap.cpp" />
|
||||||
|
<Unit filename="libopeninv/src/canobd2.cpp" />
|
||||||
|
<Unit filename="libopeninv/src/cansdo.cpp" />
|
||||||
|
<Unit filename="libopeninv/src/crc8.cpp" />
|
||||||
<Unit filename="libopeninv/src/digio.cpp" />
|
<Unit filename="libopeninv/src/digio.cpp" />
|
||||||
<Unit filename="libopeninv/src/errormessage.cpp" />
|
<Unit filename="libopeninv/src/errormessage.cpp" />
|
||||||
<Unit filename="libopeninv/src/foc.cpp" />
|
<Unit filename="libopeninv/src/foc.cpp" />
|
||||||
<Unit filename="libopeninv/src/fu.cpp" />
|
<Unit filename="libopeninv/src/fu.cpp" />
|
||||||
|
<Unit filename="libopeninv/src/linbus.cpp" />
|
||||||
<Unit filename="libopeninv/src/my_fp.c">
|
<Unit filename="libopeninv/src/my_fp.c">
|
||||||
<Option compilerVar="CC" />
|
<Option compilerVar="CC" />
|
||||||
</Unit>
|
</Unit>
|
||||||
|
|||||||
Reference in New Issue
Block a user