Skip to content

Commit

Permalink
fix: network type reinit on reboot and static params for adc vars
Browse files Browse the repository at this point in the history
  • Loading branch information
csouzapaz committed Mar 3, 2025
1 parent 62a427e commit 5f9a002
Show file tree
Hide file tree
Showing 11 changed files with 59 additions and 52 deletions.
12 changes: 6 additions & 6 deletions platformio/stima_v4/master/include/canard_config.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -95,13 +95,13 @@

/// @brief Utilizzo del flag di configurazione fissi (check moduli CAN connection and data)
#if (FIXED_CONFIGURATION)
#define USE_MODULE_FIXED_TH
#define USE_MODULE_FIXED_RAIN
#define USE_MODULE_FIXED_WIND
#define USE_MODULE_FIXED_RADIATION
// #define USE_MODULE_FIXED_TH
// #define USE_MODULE_FIXED_RAIN
// #define USE_MODULE_FIXED_WIND
// #define USE_MODULE_FIXED_RADIATION
// #define USE_MODULE_FIXED_VWC
// #define USE_MODULE_FIXED_LEVEL
#define USE_MODULE_FIXED_LEAF
#define USE_MODULE_FIXED_VWC
#define USE_MODULE_FIXED_LEVEL
#define USE_MODULE_FIXED_POWER
#endif

Expand Down
2 changes: 1 addition & 1 deletion platformio/stima_v4/master/platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ build_flags =
-DPIO_FRAMEWORK_ARDUINO_ENABLE_CDC
-DUSB_PRODUCT_STRING="\"Stima V4 Master\""
-DINIT_PARAMETER=false
-DFIXED_CONFIGURATION=false
-DFIXED_CONFIGURATION=true
-DUSE_DEBUG=true
-fpermissive
-fexceptions
Expand Down
22 changes: 11 additions & 11 deletions platformio/stima_v4/master/src/tasks/can_task.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1402,16 +1402,6 @@ void CanTask::Run() {
for(uint8_t isCfg=0; isCfg<CAN_SENSOR_COUNT_MAX; isCfg++)
param.configuration->board_slave[idxFixed].is_configured[isCfg] = true;
#endif
#ifdef USE_MODULE_FIXED_LEAF
idxFixed++;
param.configuration->board_slave[idxFixed].can_address = 63;
param.configuration->board_slave[idxFixed].module_type = Module_Type::leaf;
param.configuration->board_slave[idxFixed].can_port_id = PORT_RMAP_LEAF;
param.configuration->board_slave[idxFixed].can_publish_id = PORT_RMAP_LEAF;
param.configuration->board_slave[idxFixed].serial_number = 0;
for(uint8_t isCfg=0; isCfg<CAN_SENSOR_COUNT_MAX; isCfg++)
param.configuration->board_slave[idxFixed].is_configured[isCfg] = true;
#endif
#ifdef USE_MODULE_FIXED_POWER
idxFixed++;
param.configuration->board_slave[idxFixed].can_address = 64;
Expand Down Expand Up @@ -1442,6 +1432,16 @@ void CanTask::Run() {
for(uint8_t isCfg=0; isCfg<CAN_SENSOR_COUNT_MAX; isCfg++)
param.configuration->board_slave[idxFixed].is_configured[isCfg] = true;
#endif
#ifdef USE_MODULE_FIXED_LEAF
idxFixed++;
param.configuration->board_slave[idxFixed].can_address = 67;
param.configuration->board_slave[idxFixed].module_type = Module_Type::leaf;
param.configuration->board_slave[idxFixed].can_port_id = PORT_RMAP_LEAF;
param.configuration->board_slave[idxFixed].can_publish_id = PORT_RMAP_LEAF;
param.configuration->board_slave[idxFixed].serial_number = 0;
for(uint8_t isCfg=0; isCfg<CAN_SENSOR_COUNT_MAX; isCfg++)
param.configuration->board_slave[idxFixed].is_configured[isCfg] = true;
#endif
// RESET Next Board
for(uint8_t iIdxRst = idxFixed + 1; iIdxRst < MAX_NODE_CONNECT; iIdxRst++) {
param.configuration->board_slave[iIdxRst].can_address = NODE_VALUE_UNSET;
Expand Down Expand Up @@ -2418,7 +2418,7 @@ void CanTask::Run() {
// TRACE Info data
TRACE_INFO_F(F("RMAP recived response data module from [ %s ], node id: %d. Response code: %d\r\n"),
stimaName, clCanard.slave[queueId].get_node_id(), retLeafData->state);
TRACE_VERBOSE_F(F("Value (DSA) Leaf %d\r\n"), retLeafData->BFT.leaf.val.value);
TRACE_VERBOSE_F(F("Value (BFT) Leaf %d\r\n"), retLeafData->BFT.leaf.val.value);
// Get security remote state on maintenance mode from relative state flags
param.system_status->data_slave[queueId].maintenance_mode = (retLeafData->state & CAN_FLAG_IS_MAINTENANCE_MODE);
retLeafData->state &= CAN_FLAG_MASK_MAINTENANCE_MODE;
Expand Down
10 changes: 5 additions & 5 deletions platformio/stima_v4/master/src/tasks/supervisor_task.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -892,11 +892,11 @@ bool SupervisorTask::loadConfiguration()
#endif
#else
// Check NETWORK_GSM_BASE Parameter with Default (if some parameter are wrong)
if((param.configuration->network_type!=0)||
(param.configuration->network_type!=2)||
(param.configuration->network_type!=13)||
(param.configuration->network_type!=14)||
(param.configuration->network_type!=38)||
if((param.configuration->network_type!=0)&&
(param.configuration->network_type!=2)&&
(param.configuration->network_type!=13)&&
(param.configuration->network_type!=14)&&
(param.configuration->network_type!=38)&&
(param.configuration->network_regver>3)) {
strSafeCopy(param.configuration->network_order, CONFIGURATION_DEFAULT_GSM_NETWORK_ORDER, GSM_ORDER_NETWORK_LENGTH);
param.configuration->monitor_flags = CONFIGURATION_GSM_DEFAULT_MONITOR_FLAGS;
Expand Down
5 changes: 3 additions & 2 deletions platformio/stima_v4/slave-leaf/include/canard_config.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,13 @@
#define PORT_RMAP_RADIATION 53
#define PORT_RMAP_MPPT 54
#define PORT_RMAP_VWC 55
#define PORT_RMAP_LEAF 56
#define PORT_RMAP_LEVEL 56
#define PORT_RMAP_LEAF 57
#define PORT_RMAP_MASTER 100

// Parametri default per Modulo Slave (INIT_PARAMETER)
#define NODE_VALUE_UNSET 255
#define NODE_SLAVE_ID 63
#define NODE_SLAVE_ID 67
#define PORT_SERVICE_RMAP (PORT_RMAP_LEAF)
#define SUBJECTID_PUBLISH_RMAP (PORT_RMAP_LEAF)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,8 +104,8 @@ class ElaborateDataTask : public cpp_freertos::Thread {
#endif
void TaskWatchDog(uint32_t millis_standby);
void TaskState(uint8_t state_position, uint8_t state_subposition, task_flag state_operation);

void make_report(bool is_init = true, uint16_t report_time_s = REPORTS_TIME_S, uint8_t observation_time_s = OBSERVATIONS_TIME_S);
uint8_t getLeafPercentage(bool leaf);
uint8_t checkLeaf(rmapdata_t main_leaf);

State_t state;
Expand Down
12 changes: 6 additions & 6 deletions platformio/stima_v4/slave-leaf/include/tasks/leaf_sensor_task.h
Original file line number Diff line number Diff line change
Expand Up @@ -121,9 +121,9 @@ class LeafSensorTask : public cpp_freertos::Thread {
void powerOn(uint8_t chanel_out);
void powerOff();

void resetADCData(uint8_t chanel_out);
uint8_t addADCData(uint8_t chanel_out);
float getADCData(uint8_t chanel_out, uint8_t *quality_data);
static void resetADCData(uint8_t chanel_out);
static uint8_t addADCData(uint8_t chanel_out);
static float getADCData(uint8_t chanel_out, uint8_t *quality_data);

int32_t getVrefTemp(void);

Expand All @@ -139,9 +139,9 @@ class LeafSensorTask : public cpp_freertos::Thread {
inline static uint16_t leaf_count;

// Value of chanel ADC
uint8_t adc_in_count[MAX_ADC_CHANELS];
uint8_t adc_err_count[MAX_ADC_CHANELS];
uint64_t adc_in[MAX_ADC_CHANELS];
inline static uint8_t adc_in_count[MAX_ADC_CHANELS];
inline static uint8_t adc_err_count[MAX_ADC_CHANELS];
inline static uint64_t adc_in[MAX_ADC_CHANELS];

State_t state;
LeafSensorParam_t param;
Expand Down
10 changes: 8 additions & 2 deletions platformio/stima_v4/slave-leaf/src/tasks/elaborate_data_task.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ void ElaborateDataTask::Run() {
edata.value = true;
else
edata.value = false;
TRACE_VERBOSE_F(F("Leaf count: %d\r\n"), edata.value);
TRACE_VERBOSE_F(F("Leaf: %d%%\r\n"), getLeafPercentage(edata.value));
addValue<maintenance_t, uint16_t, bool>(&maintenance_samples, SAMPLES_COUNT_MAX, false);
addValue<sample_t, uint16_t, rmapdata_t>(&leaf_samples, SAMPLES_COUNT_MAX, edata.value);
}
Expand Down Expand Up @@ -159,7 +159,7 @@ void ElaborateDataTask::Run() {
#ifdef USE_SIMULATOR
edata.value = true;
#endif
TRACE_VERBOSE_F(F("Leaf count: %d\r\n"), edata.value);
TRACE_VERBOSE_F(F("Leaf: %d%%\r\n"), getLeafPercentage(edata.value));
addValue<maintenance_t, uint16_t, bool>(&maintenance_samples, SAMPLES_COUNT_MAX, param.system_status->flags.is_maintenance);
addValue<sample_t, uint16_t, rmapdata_t>(&leaf_samples, SAMPLES_COUNT_MAX, edata.value);
break;
Expand Down Expand Up @@ -188,6 +188,12 @@ void ElaborateDataTask::Run() {
}
}

uint8_t ElaborateDataTask::getLeafPercentage(bool leaf) {
if (leaf) return 100;
else return 0;
}


/// @brief Check data in and perform calculate of Optional Quality value
/// @param leaf real value readed from sensor
/// @return value uint_8 percent data quality value
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,9 +121,9 @@ class LevelSensorTask : public cpp_freertos::Thread {
void powerOn(uint8_t chanel_out);
void powerOff();

void resetADCData(uint8_t chanel_out);
uint8_t addADCData(uint8_t chanel_out);
float getADCData(uint8_t chanel_out, uint8_t *quality_data);
static void resetADCData(uint8_t chanel_out);
static uint8_t addADCData(uint8_t chanel_out);
static float getADCData(uint8_t chanel_out, uint8_t *quality_data);

int32_t getVrefTemp(void);

Expand All @@ -135,9 +135,9 @@ class LevelSensorTask : public cpp_freertos::Thread {
bool is_power_on;

// Value of chanel ADC
uint8_t adc_in_count[MAX_ADC_CHANELS];
uint8_t adc_err_count[MAX_ADC_CHANELS];
uint64_t adc_in[MAX_ADC_CHANELS];
static inline uint8_t adc_in_count[MAX_ADC_CHANELS];
static inline uint8_t adc_err_count[MAX_ADC_CHANELS];
static inline uint64_t adc_in[MAX_ADC_CHANELS];

State_t state;
LevelSensorParam_t param;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,9 +121,9 @@ class SolarRadiationSensorTask : public cpp_freertos::Thread {
void powerOn(uint8_t chanel_out);
void powerOff();

void resetADCData(uint8_t chanel_out);
uint8_t addADCData(uint8_t chanel_out);
float getADCData(uint8_t chanel_out, uint8_t *quality_data);
static void resetADCData(uint8_t chanel_out);
static uint8_t addADCData(uint8_t chanel_out);
static float getADCData(uint8_t chanel_out, uint8_t *quality_data);

int32_t getVrefTemp(void);

Expand All @@ -135,9 +135,9 @@ class SolarRadiationSensorTask : public cpp_freertos::Thread {
bool is_power_on;

// Value of chanel ADC
uint8_t adc_in_count[MAX_ADC_CHANELS];
uint8_t adc_err_count[MAX_ADC_CHANELS];
uint64_t adc_in[MAX_ADC_CHANELS];
inline static uint8_t adc_in_count[MAX_ADC_CHANELS];
inline static uint8_t adc_err_count[MAX_ADC_CHANELS];
inline static uint64_t adc_in[MAX_ADC_CHANELS];

State_t state;
SolarRadiationSensorParam_t param;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,9 +121,9 @@ class SoilVWCSensorTask : public cpp_freertos::Thread {
void powerOn(uint8_t chanel_out);
void powerOff();

void resetADCData(uint8_t chanel_out);
uint8_t addADCData(uint8_t chanel_out);
float getADCData(uint8_t chanel_out, uint8_t *quality_data);
static void resetADCData(uint8_t chanel_out);
static uint8_t addADCData(uint8_t chanel_out);
static float getADCData(uint8_t chanel_out, uint8_t *quality_data);

int32_t getVrefTemp(void);

Expand All @@ -135,9 +135,9 @@ class SoilVWCSensorTask : public cpp_freertos::Thread {
bool is_power_on[MAX_ADC_CHANELS];

// Value of chanel ADC
uint8_t adc_in_count[MAX_ADC_CHANELS];
uint8_t adc_err_count[MAX_ADC_CHANELS];
uint64_t adc_in[MAX_ADC_CHANELS];
inline static uint8_t adc_in_count[MAX_ADC_CHANELS];
inline static uint8_t adc_err_count[MAX_ADC_CHANELS];
inline static uint64_t adc_in[MAX_ADC_CHANELS];

State_t state;
SoilVWCSensorParam_t param;
Expand Down

0 comments on commit 5f9a002

Please sign in to comment.