Hi, I am starting to use contiki and learn c programming for my summer internship. I have to calculate the mean of the ongoing process of refrigerator power. I made the code like this
Code:
#include <stdlib.h>
#include <stdio.h>
#include <homadeus/processes/fridge_process.h>
#include <homadeus/devices/78M6610.h>
#include <homadeus/utils/utils.h>
float global_variable;
int current_state = 0; //down =0, up =1
float current_power = 0;
int sample[n];
float get_instant_power()
{
double scaled_value = MAXIM_78M6610_SCALING_RESOLUTION_POWER_WATTS * maxim_78M6610_get_register_int24(MAXIM_78M6610_P);
if (scaled_value>0) return scaled_value;
else return 0;
}
float get_sum()
{
float sum = 0;
float mean;
while(1){
for(int i=1; i<n ; i++){
sample[i]=get_instant_power();
sum +=sample[i];
}
}
}
int get_current_state()
{
current_power = get_instant_power();
if(current_power < 0) return 0;
else return 1;
}
PROCESS(hmd_fridge_process, HOMADEUS_FRIDGE_PROCESS_DESCRIPTION);
PROCESS_THREAD(hmd_fridge_process, ev, data)
{
static struct etimer timer;
PROCESS_BEGIN();
while(1){
etimer_set(&timer, CLOCK_CONF_SECOND);
PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&timer));
}
PROCESS_END();
}
How it gets the value of power is handled already. Every one second, it will display the power consumed (get_instant_power()). I don't know how to start and end the sample numbre. If I start by 1 then how should it be until? Also, is it possible if I store the power in array to accumulate?