xxxxxxxxxx
81
// Enkel skisse over støm inn vs ut
//Mange bugs sikkert, men feel free to edit..
let maxFromAms = 24 * 6; // mW tilgjengelig ut (volt x mA)
let virkningsgrad = 0.75; // virkningsgrad på DC-DC omformer
let inbound = maxFromAms * virkningsgrad;
let tx = 3.3*170; // mW forbrukes hvert sekund på sending (volt x mA)
let sleep = 3.3*20; // mW forbrukes hvert sekund på soving (volt x mA)
let dekoding = 3.3* 60; // mW forbrukes hvert sekund på dekoding / mottak av data (volt x mA)
let tid = 0; // sekundteller
let saldo = 0; // energisaldoen vår
let varighet = 3; //varighet av sending til Homeseer / Whatever
let frekvens = 10; // Hvor hyppig kommer datapakkene
let txfrekvens = 7; // hvor mange mottak av data skal buffres før hver sending?
let count = 0;
let txtid = -1;
let gotdata = 0;
function setup() {
createCanvas(400, 400);
frameRate(40); // endrer hastigheten på telleren, kommenter ut for å kjøre 60 fps
textSize(40);
}
function draw() {
background(240);
text(tid++ + " sek", 30, 70);
addup();
text("Saldo : " + saldo+" mWs", 30,300);
rectMode(CENTER);
push();
if (saldo > 1000){
fill(0,255,0);
}
else{
fill(255,0,0);
}
rect(5,200,saldo/5,50);
pop();
console.log(tid + " - " + saldo);
if (gotdata >= txfrekvens){
txtid = tid + 1 + varighet;
gotdata = 0;
}
if (saldo < 0){
text("KONKURS", 50, 100);
noLoop();
}
}
function addup(){
if (tid % frekvens == 0 && tid != 0){
saldo = saldo + ((inbound/2) - dekoding);
gotdata++;
}
else if (tid % frekvens == 5 && tid-5 % 3600 == 0 && tid != 5){
saldo = saldo + ((inbound / 2) - dekoding);
gotdata++;
}
else{
if (tid < txtid){
saldo = saldo + (inbound - tx);
}
else{
saldo += inbound - sleep;
}
}
}