mirror of https://github.com/rusefi/bldc.git
Added ts_to_age and get_cfg_float to c lib
This commit is contained in:
parent
856184d822
commit
3199dd2605
|
@ -143,6 +143,23 @@ typedef enum {
|
|||
VESC_PIN_MODE_ANALOG,
|
||||
} VESC_PIN_MODE;
|
||||
|
||||
typedef enum {
|
||||
CFG_PARAM_l_current_max = 0,
|
||||
CFG_PARAM_l_current_min,
|
||||
CFG_PARAM_l_in_current_max,
|
||||
CFG_PARAM_l_in_current_min,
|
||||
CFG_PARAM_l_abs_current_max,
|
||||
CFG_PARAM_l_min_erpm,
|
||||
CFG_PARAM_l_max_erpm,
|
||||
CFG_PARAM_l_erpm_start,
|
||||
CFG_PARAM_l_max_erpm_fbrake,
|
||||
CFG_PARAM_l_max_erpm_fbrake_cc,
|
||||
CFG_PARAM_l_min_vin,
|
||||
CFG_PARAM_l_max_vin,
|
||||
CFG_PARAM_l_battery_cut_start,
|
||||
CFG_PARAM_l_battery_cut_end,
|
||||
} CFG_PARAM;
|
||||
|
||||
#ifndef PACKET_MAX_PL_LEN
|
||||
#define PACKET_MAX_PL_LEN 512
|
||||
#endif
|
||||
|
@ -366,6 +383,12 @@ typedef struct {
|
|||
|
||||
// Send app data (which can be received by QML)
|
||||
void (*send_app_data)(unsigned char *data, unsigned int len);
|
||||
|
||||
// Age of timestamp in seconds
|
||||
float (*ts_to_age_s)(systime_t ts);
|
||||
|
||||
// Settings (TODO: Add more types and also setters)
|
||||
float (*get_cfg_float)(CFG_PARAM p);
|
||||
} vesc_c_if;
|
||||
|
||||
typedef struct {
|
||||
|
|
|
@ -365,6 +365,36 @@ static int32_t lib_uart_read(void) {
|
|||
return sdGetTimeout(&HW_UART_DEV, TIME_IMMEDIATE);
|
||||
}
|
||||
|
||||
static float lib_ts_to_age_s(systime_t ts) {
|
||||
return UTILS_AGE_S(ts);
|
||||
}
|
||||
|
||||
static float lib_get_cfg_float(CFG_PARAM p) {
|
||||
float res = 0.0;
|
||||
|
||||
const volatile mc_configuration *conf = mc_interface_get_configuration();
|
||||
|
||||
switch (p) {
|
||||
case CFG_PARAM_l_current_max: res = conf->l_current_max; break;
|
||||
case CFG_PARAM_l_current_min: res = conf->l_current_min; break;
|
||||
case CFG_PARAM_l_in_current_max: res = conf->l_in_current_max; break;
|
||||
case CFG_PARAM_l_in_current_min: res = conf->l_in_current_min; break;
|
||||
case CFG_PARAM_l_abs_current_max: res = conf->l_abs_current_max; break;
|
||||
case CFG_PARAM_l_min_erpm: res = conf->l_min_erpm; break;
|
||||
case CFG_PARAM_l_max_erpm: res = conf->l_max_erpm; break;
|
||||
case CFG_PARAM_l_erpm_start: res = conf->l_erpm_start; break;
|
||||
case CFG_PARAM_l_max_erpm_fbrake: res = conf->l_max_erpm_fbrake; break;
|
||||
case CFG_PARAM_l_max_erpm_fbrake_cc: res = conf->l_max_erpm_fbrake_cc; break;
|
||||
case CFG_PARAM_l_min_vin: res = conf->l_min_vin; break;
|
||||
case CFG_PARAM_l_max_vin: res = conf->l_max_vin; break;
|
||||
case CFG_PARAM_l_battery_cut_start: res = conf->l_battery_cut_start; break;
|
||||
case CFG_PARAM_l_battery_cut_end: res = conf->l_battery_cut_end; break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
lbm_value ext_load_native_lib(lbm_value *args, lbm_uint argn) {
|
||||
lbm_value res = lbm_enc_sym(SYM_EERROR);
|
||||
|
||||
|
@ -572,6 +602,12 @@ lbm_value ext_load_native_lib(lbm_value *args, lbm_uint argn) {
|
|||
// App data
|
||||
cif.cif.send_app_data = commands_send_app_data;
|
||||
|
||||
// Age of timestamp in seconds
|
||||
cif.cif.ts_to_age_s = lib_ts_to_age_s;
|
||||
|
||||
// Settings
|
||||
cif.cif.get_cfg_float = lib_get_cfg_float;
|
||||
|
||||
lib_init_done = true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue