Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Pseudocode
- count=0
- while new_reading and count<7:
- sum += new_reading //Calculate the sum of first 7 values
- count++
- while new_reading: //Loop till new readings available
- avg = sum / 7 //Calculate average
- sum -= avg //Subtract average from sum
- sum += new_reading //Add next reading to sum
- print avg
- average = (weight1*average+weight2*new_value)/(weight1+weight2);
- uint8_t[28] highbits;
- uint32_t lowbits;
- void getvalue(uint8_t index, uint16_t value){
- highbits[index] = value>>1;
- uint32_t flag = (value & 1)<<index;
- highbits|=flag;
- highbits&=~flag;
- }
- uint16_t getAverage(){
- uint16_t sum=0;
- for(uint8_t i=0;i<28;i++){
- sum+=highbits[i];
- }
- sum<<=1;//multiply by 2 after the loop
- sum+=bitcount(lowbits);
- return sum/28;
- }
- // untested code
- // static variables
- uint16_t daily_energy[7]; // perhaps in units of 0.01 kWh ?
- uint16_t weekly_energy[4]; // perhaps in units of 0.1 kWh ?
- void print_week_status(){
- Serial.print( F("last week's total energy :") );
- Serial.println( weekly_energy[0] );
- int sum = 0;
- for( int i=0; i<4; i++ ){
- sum += weekly_energy[i];
- };
- Serial.print( F("Total energy over last 4 complete weeks :") );
- Serial.println( sum );
- int average_weekly_energy = sum/4;
- int average_daily_energy = average_weekly_energy/7;
- Serial.print( F("Average daily energy over last 4 weeks :") );
- Serial.println( average_daily_energy );
- }
- void print_day_status(){
- Serial.print( F("Yesterday's energy :") );
- Serial.println( daily_energy[0] );
- Serial.print( F("average daily energy over the last 7 complete days: ") );
- int sum = 0;
- for( int i=0; i<7; i++ ){
- sum += daily_energy[i];
- };
- int average = sum/7;
- Serial.println( average );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement