• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[GELÖST] Python to Javascript

dein PowerMeter-script noch dazu gebastelt bekommst du alleine hin?!

Weiss ich noch nicht, der Levelwechsel klappt ja leider noch nicht.

- - - Aktualisiert - - -

dein PowerMeter-script noch dazu gebastelt bekommst du alleine hin?!

- - - Aktualisiert - - -

das nan ist nicht schön,
füge mal vor
return (upperVal - lowerVal) / (idxUpper * 10 - idxLower * 10) * (rpm - idxLower * 10) + lowerVal;
das ein
Code:
if (idxUpper == 0 && idxLower == 0)
{
  return 0;
}

Ausgabe:
Code:
level:  5  speed:  0  power:  0
level:  5  speed:  0  power:  0
level:  5  speed:  32.25806451612903  power:  31.064516129032256
level:  5  speed:  32.25806451612903  power:  31.064516129032256
level:  5  speed:  32.25806451612903  power:  31.064516129032256
level:  5  speed:  32.25806451612903  power:  31.064516129032256
level:  5  speed:  32.25806451612903  power:  31.064516129032256
level:  5  speed:  32.25806451612903  power:  31.064516129032256
level:  5  speed:  32.25806451612903  power:  31.064516129032256
level:  5  speed:  35.44004725339634  power:  36.79208505611341

aber kein Level wechsel. Mittlerweile versuch ich es mit direkt die Kabel zusammen zu halten :)
 
wie? geht es nun oder nicht?
du hattest doch mehrere level?!

Geht nicht.

Ich habe die anderen Level Testweise von Hand gesetzt.

Komisch gerade hat er kurz getan. Ich hab einfach mal var level = 1; auf 5 gesetzt.

Dann ging er runter auf 3, aber nicht wieder hoch. Weiter runter aber auch nicht.
Um einen Hardwarefehler auszuschliessen habe ich das Kabel auch gewechselt und mal mit Brücken versucht.

Habe auch noch mal ein andere GPIO probiert, falls einer kaputt ist, aber das war es nicht.
 
Zuletzt bearbeitet:
mhh, ging das denn im python script schon mal?

Ja im python funktionieren die Taster, hier meine Ausgabe:

Code:
('Power', 0, 'Level', 5, 'RPM=2')
('Power', 0, 'Level', 5, 'RPM=2')
('Power', 0, 'Level', 5, 'RPM=2')
0
('Power', 0, 'Level', 4, 'RPM=2')
('Power', 0, 'Level', 4, 'RPM=2')
0
('Power', 0, 'Level', 3, 'RPM=2')
('Power', 0, 'Level', 3, 'RPM=2')
('Power', 0, 'Level', 3, 'RPM=2')

- - - Aktualisiert - - -

Es gibt noch so nen "npm onoff" Ich weiss aber nicht ob das weiter hilft.
Ich mache für heute auch erstmal schluss.

Aber Super weiter gekommen heute. Danke dafür!
 
ersetz mal testweise
Code:
  gpio.setup(levelUpPin, gpio.DIR_IN, gpio.EDGE_RISING);
  gpio.setup(levelDownPin, gpio.DIR_IN, gpio.EDGE_RISING);
durch
Code:
  gpio.setup(levelUpPin, gpio.DIR_HIGH, gpio.EDGE_FALLING);
  gpio.setup(levelDownPin, gpio.DIR_HIGH, gpio.EDGE_FALLING);
 
ersetz mal testweise
Code:
  gpio.setup(levelUpPin, gpio.DIR_IN, gpio.EDGE_RISING);
  gpio.setup(levelDownPin, gpio.DIR_IN, gpio.EDGE_RISING);
durch
Code:
  gpio.setup(levelUpPin, gpio.DIR_HIGH, gpio.EDGE_FALLING);
  gpio.setup(levelDownPin, gpio.DIR_HIGH, gpio.EDGE_FALLING);

Hab ich, leider keine Änderung

Können wir noch die Nachkommastellen weg machen? Das tut so weh m Auge :)
 
Hab ich, leider keine Änderung
ich habs ehrlich gesagt auch nicht verstanden, warum er hier https://github.com/JamesBarwell/rpi-gpio.js/issues/9 auf den low/high fehler verweist.
habs auch mal getestet, geht nicht. was geht, ein externer pullup und
Code:
gpio.setup(levelUpPin, gpio.DIR_IN, gpio.EDGE_FALLING);
gpio.setup(levelDownPin, gpio.DIR_IN, gpio.EDGE_FALLING);
mit schalter gegen masse der ursprüngliche code
Code:
gpio.setup(levelUpPin, gpio.DIR_IN, gpio.EDGE_RISING);
  gpio.setup(levelDownPin, gpio.DIR_IN, gpio.EDGE_RISING);
mit schalter gegen 3,3V geht auch

Können wir noch die Nachkommastellen weg machen? Das tut so weh m Auge :)
wozu? die ausgaben sind je nur zum testen
 
mit schalter gegen masse der ursprüngliche code
Code:
gpio.setup(levelUpPin, gpio.DIR_IN, gpio.EDGE_RISING);
  gpio.setup(levelDownPin, gpio.DIR_IN, gpio.EDGE_RISING);
mit schalter gegen 3,3V geht auch


wozu? die ausgaben sind je nur zum testen

Also bei dir funktioniert das?
Kann es sein, das es daran liegt, das ich einen raspberry 3 mit debian jessie Verwenden?
 
wenn du einfach mit einem dupont connector auf pin1 den pin 38 antipst sollte das bei dir auch gehen
 
wenn du einfach mit einem dupont connector auf pin1 den pin 38 antipst sollte das bei dir auch gehen

Das wusste ich nicht, das 3.3V gegen einen GPIO gehen!? habe immer gegen GND gelegt!

Der muss jetzt noch debounced werden da er gleich von 5 auf 15 springt. Man bin ich erleichtert. Hab den ganzen Tag schon gelesen woran es liegt :)
 
Zuletzt bearbeitet:
Das wusste ich nicht, das 3.3V gegen einen GPIO gehen!? habe immer gegen GND gelegt!
was eigentlich besser wäre, aber dann brauchst du enen pullup, der das signal auf high zieht wenn der taster nicht gedrückt ist.
den internen pullup bekomme ich aber mit dem paket nicht enabled, mit nem externen kalappt es mit der änderung
Code:
gpio.setup(levelUpPin, gpio.DIR_IN, gpio.EDGE_FALLING);
gpio.setup(levelDownPin, gpio.DIR_IN, gpio.EDGE_FALLING);

- - - Aktualisiert - - -

Code:
var SpeedMeter = function(pin, levelUpPin, levelDownPin, weighting, pulsesPerRev, timeOut, bounceTime)
{
  var rpm = 0;
  var level = 1;
  var timeAct = 0;
  var timeOld = 0;
  var timeDiff = 0;
  var timeLevel = 0;
  var watchdog = null;
  var gpio = require('rpi-gpio');
  var power = [
    [6,12,20,29,40,53,69,79,92,106,121],
    [8,16,26,38,53,68,88,103,120,138,152],
    [9,20,32,47,66,84,107,125,148,172,186],
    [11,23,39,56,79,101,126,150,173,206,219],
    [13,27,45,65,92,117,145,175,202,238,254],
    [15,31,52,75,105,135,166,202,231,275,289],
    [16,35,58,85,118,152,185,226,260,305,332],
    [18,39,65,96,131,169,208,249,289,333,375],
    [19,42,71,104,144,184,227,272,318,361,408],
    [21,46,77,113,157,199,245,295,345,386,442],
    [23,50,84,123,170,216,262,318,372,413,480],
    [24,53,89,131,183,230,279,342,398,441,512],
    [26,56,94,139,196,245,296,365,424,468,548],
    [28,60,101,148,209,261,318,389,449,494,585],
    [30,64,108,158,222,277,337,415,476,518,620],
    [32,68,115,168,235,296,355,439,503,548,658],
    [33,72,122,177,248,312,373,463,530,576,694],
    [35,76,129,187,261,328,390,484,556,606,727],
    [37,79,134,195,274,342,407,507,572,632,763],
    [39,83,140,204,287,354,424,528,598,659,790],
    [40,87,146,213,300,368,442,551,616,689,812],
    [42,91,153,223,313,385,461,574,645,720,840],
    [44,95,160,234,326,401,479,598,673,752,872],
    [47,101,171,246,340,418,501,625,706,788,908]
  ];
  
  
  weighting = weighting || 0;
  pulsesPerRev = pulsesPerRev || 1;
  timeOut = timeOut || 10000;
  bounceTime = bounceTime || 200;
  
  gpio.on('change', function(channel, value)
  {
    if (channel == pin)
    {
      var timeAct = new Date();
      if ((timeAct - timeOld) > bounceTime)
      {
        if (watchdog)
        {
          clearTimeout(watchdog);
        }
        if (timeOld)
        {
          timeDiff *= weighting;
          timeDiff += (1 - weighting) * (timeAct - timeOld);
          rpm = 60000 / (timeDiff * pulsesPerRev);
        }
        timeOld = timeAct;
        watchdog = setTimeout(function()
        {
          timeOld = 0;
          rpm = 0;
        }, timeOut);
      }
    }
    else if (channel == levelUpPin)
    {
      var timeLevelUp = new Date();
      if ((timeLevelUp - timeLevel) > bounceTime)
      {
        if (level < 23)
        {
          ++level;
        }
        timeLevel = timeLevelUp;
      }
    }
    else if (channel == levelDownPin)
    {
      var timeLevelDown = new Date();
      if ((timeLevelDown - timeLevel) > bounceTime)
      {
        if (level > 1)
        {
          --level;
        }
        timeLevel = timeLevelDown;
      }
    }
  });
  
  gpio.setup(pin, gpio.DIR_IN, gpio.EDGE_RISING);
  gpio.setup(levelUpPin, gpio.DIR_IN, gpio.EDGE_RISING);
  gpio.setup(levelDownPin, gpio.DIR_IN, gpio.EDGE_RISING);
  //gpio.setup(levelUpPin, gpio.DIR_IN, gpio.EDGE_FALLING);
  //gpio.setup(levelDownPin, gpio.DIR_IN, gpio.EDGE_FALLING);
  
  this.getSpeed = function()
  {
    return rpm;
  };
  this.getLevel = function()
  {
    return level;
  };
  this.getPower = function()
  {
    var lowerVal = 0;
    var upperVal = 0;
    var idxLower = Math.floor(rpm / 10);
    var idxUpper = Math.ceil(rpm / 10);
    if (idxLower > 1)
    {
      lowerVal = power[level - 1][idxLower - 2];
    }
    else
    {
      idxLower = 0;
    }
    if (idxUpper > 1 && idxUpper <= 12)
    {
      upperVal = power[level - 1][idxUpper - 2];
    }
    else if (idxUpper > 12)
    {
      console.log("RPM(", rpm, ") out of range");
      return power[level - 1][10];
    }
    else if (idxUpper <= 1)
    {
      idxUpper = 0;
    }
    if (idxUpper == 0 && idxLower == 0)
    {
      return 0;
    }
    return (upperVal - lowerVal) / (idxUpper * 10 - idxLower * 10) * (rpm - idxLower * 10) + lowerVal;
  };
};

module.exports.SpeedMeter = SpeedMeter;
 
Das sieht gut aus.
Ich sichere den GPIO nachher noch mit einem 4.7K Widerstand und probiere deinen Code dann heute Abend aus.

Gestern hatte ich frei, also heute kann ich das erst abends probieren.

Wenn dann endlich meine Erkältung weg ist, freu ich mich schon auf 40 Kilometer Zwift fahren, ich hoffe das "wir" das bis zum WE am laufen haben. :)

test.js fertig sollte dann am Ende so aussehen?
Code:
-----------------------------------------
var SpeedMeter = require('./SpeedMeter');
var speedmeter = new SpeedMeter.SpeedMeter(4, 38, 40);
//
var power_meter = require('./power-meter');
var pm = new power_meter.PowerMeter();

function a() {
  var power_instant = speedmeter.getPower();
  var cadence = speedmeter.getSpeed();
  pm.broadcast(power_instant, cadence);
  setTimeout(a, 249);
}

a();

Das JS Zeug verstehe ich zumindest besser als den Python Onkel :)

- - - Aktualisiert - - -

So hab den neuen Code mal ausprobiert:

Er schaltet sauber hoch mit Tastendruck, aber er schaltet von selber wieder runter ohne das ich drücke. Ich habe die 3.3V Leitung mit einem 4.7K "Angstgesichert"

Beispiel ich Starte mit Level 4 habe ich im code auf 4 gesetzt, wenn ich nicht trete bleibt Level 4! Ich schalte hoch auf 7, bleibt auf Level 7 wenn ich nicht trete!

Jetzt laufe ich los, dann gehen die Level selber wieder runter. bis auf 1.

Hier meine Ausgabe, die Power teste ich noch ein wenig :) Power sieht gut aus.

Code:
evel:  1  speed:  40.241448692152915  power:  20.217303822937623
level:  1  speed:  40.241448692152915  power:  20.217303822937623
level:  1  speed:  40.241448692152915  power:  20.217303822937623
level:  1  speed:  46.22496147919877  power:  25.602465331278893
level:  1  speed:  46.22496147919877  power:  25.602465331278893
level:  1  speed:  46.22496147919877  power:  25.602465331278893
level:  1  speed:  47.77070063694268  power:  26.99363057324841
level:  1  speed:  47.77070063694268  power:  26.99363057324841
level:  1  speed:  46.43962848297214  power:  25.795665634674926
level:  1  speed:  46.43962848297214  power:  25.795665634674926
level:  1  speed:  46.43962848297214  power:  25.795665634674926
level:  1  speed:  47.206923682140044  power:  26.48623131392604
level:  1  speed:  47.206923682140044  power:  26.48623131392604
level:  1  speed:  47.206923682140044  power:  26.48623131392604
level:  1  speed:  47.69475357710652  power:  26.925278219395867
level:  1  speed:  47.69475357710652  power:  26.925278219395867
level:  1  speed:  47.69475357710652  power:  26.925278219395867
level:  1  speed:  48.27031375703942  power:  27.443282381335475
level:  1  speed:  48.27031375703942  power:  27.443282381335475
level:  1  speed:  48.27031375703942  power:  27.443282381335475
level:  1  speed:  46.948356807511736  power:  26.253521126760564
level:  1  speed:  46.948356807511736  power:  26.253521126760564
level:  1  speed:  46.948356807511736  power:  26.253521126760564
level:  1  speed:  45.80152671755725  power:  25.221374045801525
level:  1  speed:  45.80152671755725  power:  25.221374045801525
level:  1  speed:  45.94180704441041  power:  25.34762633996937
level:  1  speed:  45.94180704441041  power:  25.34762633996937
level:  1  speed:  45.94180704441041  power:  25.34762633996937
level:  1  speed:  45.76659038901602  power:  25.189931350114414
level:  1  speed:  45.76659038901602  power:  25.189931350114414
level:  1  speed:  45.76659038901602  power:  25.189931350114414
level:  1  speed:  46.728971962616825  power:  26.05607476635514
level:  1  speed:  46.728971962616825  power:  26.05607476635514
level:  1  speed:  46.728971962616825  power:  26.05607476635514
level:  1  speed:  46.58385093167702  power:  25.925465838509318
level:  1  speed:  46.58385093167702  power:  25.925465838509318
level:  1  speed:  46.58385093167702  power:  25.925465838509318
level:  1  speed:  46.33204633204633  power:  25.698841698841697
level:  1  speed:  46.33204633204633  power:  25.698841698841697
level:  1  speed:  46.33204633204633  power:  25.698841698841697
level:  1  speed:  45.45454545454545  power:  24.909090909090907
level:  1  speed:  45.45454545454545  power:  24.909090909090907
level:  1  speed:  45.45454545454545  power:  24.909090909090907
level:  1  speed:  44.943820224719104  power:  24.449438202247194
level:  1  speed:  44.943820224719104  power:  24.449438202247194
level:  1  speed:  44.943820224719104  power:  24.449438202247194
level:  1  speed:  46.15384615384615  power:  25.53846153846154
level:  1  speed:  46.15384615384615  power:  25.53846153846154
level:  1  speed:  46.15384615384615  power:  25.53846153846154
level:  2  speed:  48.03843074459568  power:  35.646116893514815
level:  2  speed:  48.03843074459568  power:  35.646116893514815
level:  3  speed:  49.4641384995878  power:  46.1962077493817
level:  4  speed:  49.4641384995878  power:  55.08903544929925
level:  4  speed:  49.4641384995878  power:  55.08903544929925
level:  5  speed:  49.30156121610518  power:  63.603122432210355
level:  5  speed:  49.30156121610518  power:  63.603122432210355
level:  5  speed:  49.30156121610518  power:  63.603122432210355
level:  5  speed:  50.462573591253154  power:  66.24894869638352
level:  5  speed:  50.462573591253154  power:  66.24894869638352
level:  5  speed:  49.62779156327544  power:  64.25558312655087
level:  5  speed:  49.62779156327544  power:  64.25558312655087
level:  5  speed:  49.62779156327544  power:  64.25558312655087
level:  5  speed:  50.63291139240506  power:  66.70886075949367
level:  5  speed:  50.63291139240506  power:  66.70886075949367
level:  5  speed:  51.90311418685121  power:  70.13840830449827
level:  5  speed:  51.90311418685121  power:  70.13840830449827
level:  5  speed:  51.90311418685121  power:  70.13840830449827
level:  5  speed:  52.493438320209975  power:  71.73228346456693
level:  5  speed:  52.493438320209975  power:  71.73228346456693
level:  4  speed:  52.35602094240838  power:  61.41884816753927
level:  4  speed:  52.35602094240838  power:  61.41884816753927
level:  4  speed:  52.35602094240838  power:  61.41884816753927
level:  4  speed:  53.23868677905945  power:  63.44897959183673
level:  4  speed:  53.23868677905945  power:  63.44897959183673
level:  4  speed:  53.23868677905945  power:  63.44897959183673
level:  4  speed:  52.35602094240838  power:  61.41884816753927
level:  4  speed:  52.35602094240838  power:  61.41884816753927
level:  4  speed:  51.282051282051285  power:  58.948717948717956
level:  4  speed:  51.282051282051285  power:  58.948717948717956
level:  4  speed:  51.282051282051285  power:  58.948717948717956
level:  4  speed:  51.724137931034484  power:  59.96551724137931
level:  4  speed:  51.724137931034484  power:  59.96551724137931
level:  4  speed:  50.54759898904802  power:  57.25947767481044
level:  4  speed:  50.54759898904802  power:  57.25947767481044
level:  4  speed:  50.54759898904802  power:  57.25947767481044
level:  4  speed:  49.75124378109453  power:  55.5771144278607
level:  4  speed:  49.75124378109453  power:  55.5771144278607
level:  4  speed:  49.75124378109453  power:  55.5771144278607
level:  4  speed:  48.85993485342019  power:  54.061889250814325
level:  4  speed:  48.85993485342019  power:  54.061889250814325
level:  4  speed:  48.309178743961354  power:  53.1256038647343
level:  4  speed:  48.309178743961354  power:  53.1256038647343
level:  4  speed:  48.309178743961354  power:  53.1256038647343
level:  4  speed:  46.26060138781804  power:  49.64302235929067
level:  4  speed:  46.26060138781804  power:  49.64302235929067
level:  4  speed:  46.26060138781804  power:  49.64302235929067
level:  4  speed:  43.92386530014641  power:  45.6705710102489
level:  4  speed:  43.92386530014641  power:  45.6705710102489
level:  4  speed:  43.92386530014641  power:  45.6705710102489
level:  3  speed:  46.08294930875576  power:  41.12442396313364
level:  3  speed:  46.08294930875576  power:  41.12442396313364
level:  3  speed:  46.08294930875576  power:  41.12442396313364
level:  2  speed:  47.92332268370607  power:  35.50798722044728
level:  2  speed:  47.92332268370607  power:  35.50798722044728
level:  2  speed:  47.92332268370607  power:  35.50798722044728
level:  2  speed:  48.03843074459568  power:  35.646116893514815
level:  2  speed:  48.03843074459568  power:  35.646116893514815
level:  1  speed:  48.03843074459568  power:  27.23458767013611
level:  1  speed:  48.309178743961354  power:  27.47826086956522
level:  1  speed:  48.309178743961354  power:  27.47826086956522
level:  1  speed:  48.426150121065376  power:  27.583535108958838
level:  1  speed:  48.426150121065376  power:  27.583535108958838
level:  1  speed:  48.426150121065376  power:  27.583535108958838
level:  1  speed:  46.62004662004662  power:  25.95804195804196
level:  1  speed:  46.62004662004662  power:  25.95804195804196
level:  1  speed:  46.62004662004662  power:  25.95804195804196
level:  1  speed:  46.51162790697674  power:  25.860465116279066
level:  1  speed:  46.51162790697674  power:  25.860465116279066
level:  1  speed:  46.51162790697674  power:  25.860465116279066
level:  1  speed:  45.42013626040878  power:  24.878122634367905
level:  1  speed:  45.42013626040878  power:  24.878122634367905
level:  1  speed:  45.42013626040878  power:  24.878122634367905
level:  1  speed:  45.42013626040878  power:  24.878122634367905
level:  1  speed:  45.42013626040878  power:  24.878122634367905
level:  1  speed:  45.42013626040878  power:  24.878122634367905
level:  1  speed:  45.42013626040878  power:  24.878122634367905
level:  1  speed:  45.42013626040878  power:  24.878122634367905

Aber wir haben einen Levelwechsel *freu
 
Zuletzt bearbeitet:
Ich habe die 3.3V Leitung mit einem 4.7K "Angstgesichert"
was ist "Angstgesichert"? ein pulldown? das wollte ich gerade vorschlagen, wobei du dann auch gleich einen pullup nehmen solltest, und das mit einem widerstand um die 50k. 10k wird meistens empfohlen, 50k dachte ich sind intern, 100k sollten auch gehen.

Beispiel ich Starte mit Level 4 habe ich im code auf 4 gesetzt, wenn ich nicht trete bleibt Level 4! Ich schalte hoch auf 7, bleibt auf Level 7 wenn ich nicht trete!
hört sich zwar erstmal nach softwarefehler an, sehe ich aber nicht, vermutlich hast du doch was falsch angeschlossen.

Code:
                 -+- 3,3V
                  |
                 \
                  |
                  +- gpio
                  |
                  R pulldown ca. 50k
                  |
                 -+- gnd
 
Kein Ding löt ich mir eben zusammen und probier nochmal...

Probiert und läuft!

Wobei ich sagen muss, um die Uhrzeit löten ist nicht mehr so leicht. Hab 30k genommen.

Was muss ich noch machen?
 
Zuletzt bearbeitet:
das wars würd ich sagen?

Fast :)

Ich bin jetzt zurück in mein Verzeichniss /ant-cycling-power

da mach ich
Code:
npm install rpi-gpio

dann hol ich meine js Scripte rüber
SpeedMeter.js und test.js

Die test.js sieht ja jetzt so aus:

Code:
var SpeedMeter = require('./SpeedMeter');
var speedmeter = new SpeedMeter.SpeedMeter(7, 38, 40);
//
var power_meter = require('./power-meter');
var pm = new power_meter.PowerMeter();

function a() {
  var power_instant = speedmeter.getPower();
  var cadence = speedmeter.getSpeed();
  pm.broadcast(power_instant, cadence);
  setTimeout(a, 249);
}

a();

Ich hab sogar "eine" Ausgabe dann Fehler:

Code:
Event: 24        Power: 84.68941584731058w       Cadence: 34.70213996529786rpm
buffer.js:760
        return this.hexWrite(string, offset, length);
                    ^

TypeError: Invalid hex string
    at TypeError (native)
    at Buffer.write (buffer.js:760:21)
    at fromString (buffer.js:203:26)
    at Function.Buffer.from (buffer.js:99:12)
    at new Buffer (buffer.js:80:17)
    at Function.Messages.intToLEHexArray (/home/pi/ant-cycling-power/node_modules/ant-plus/build/ant.js:238:17)
    at PowerMeter.broadcast (/home/pi/ant-cycling-power/power-meter.js:62:35)
    at Timeout.a [as _onTimeout] (/home/pi/ant-cycling-power/sat.js:10:6)
    at ontimeout (timers.js:386:14)
    at tryOnTimeout (timers.js:250:5)

Ich glaube die "commas" müssen weg, bekomme die aber nicht ausgeblendet:

Mein bester Versuch:
Code:
  var cadence = speedmeter.getSpeed.replace(/,/g, "");
  parseInt(speedmeter.getSpeed, 10);
 

Wieso find ich die Seiten icht? *egal:

Also:
Code:
var SpeedMeter = require('./SpeedMeter');
var speedmeter = new SpeedMeter.SpeedMeter(7, 38, 40);
[b]math.round(speedmeter.getSpeed());[/b]

var power_meter = require('./power-meter');
var pm = new power_meter.PowerMeter();

function a() {
  var power_instant = speedmeter.getPower();
  var cadence = speedmeter.getSpeed();
  pm.broadcast(power_instant, cadence);
  setTimeout(a, 249);
}

a();
?
 
Zurück
Oben