簡體   English   中英

Beaglebone Black骨骼稿問題

[英]Beaglebone Black bonescript ain issue

我有一個在Beaglebone Black上運行的腳本,該腳本根據來自熱電偶的輸入來切換電動機。 在我將所有內容放入一個盒子之前,該腳本運行良好,但是現在它彈出以下錯誤:

4:4:91-ti-r133
/usr/local/lib/node_modules/bonescript/src/index.js:234
    if(typeof pin.ain != 'undefined') {
                 ^

TypeError: Cannot read property 'ain' of undefined
  at Object.f.digitalRead (/usr/local/lib/node_modules/bonescript/src/index.js:234:18)
  at Object.<anonymous> (/var/lib/cloud9/Relays/Relays.js:9:16)
  at Module._compile (module.js:570:32)
  at Object.Module._extensions..js (module.js:579:10)
  at Module.load (module.js:487:32)
  at tryModuleLoad (module.js:446:12)
  at Function.Module._load (module.js:438:3)
  at Timeout.Module.runMain [as _onTimeout] (module.js:604:10)
  at ontimeout (timers.js:386:11)
  at tryOnTimeout (timers.js:250:5)
  at Timer.listOnTimeout (timers.js:214:5)

我檢查了所有的連接,電阻和電壓,似乎一切連接正確。 如果我可以解釋此錯誤,它將幫助我診斷問題。 這是代碼:

var b = require('bonescript');
var c = require('bonescript');
var d = require('bonescript');
var e = require('bonescript');
var f = require('bonescript');

var state1 = b.low;
var state2 = c.low;
var state3 = e.digitalRead('P9.23', e.INPUT)
var state4 = f.digitalRead('P9.25', f.INPUT)

var temp = d.analogRead('P9_37');

d.analogRead('P9_37', printStatus);
function printStatus(x) {
    console.log('temp = ' + x.value);
}

b.pinMode("P9_15", b.OUTPUT);
b.digitalWrite("P9_15", b.LOW);
c.pinMode("P9_12", b.OUTPUT);
c.digitalWrite("P9_12", b.LOW);
e.pinMode("P8_7", b.OUTPUT);
e.digitalWrite("P8_7", b.LOW);

setInterval(toggle1, 10000);
setInterval(toggle2, 200);
setInterval(toggle3, 1000);

function toggle3() {
    temp = d.analogRead('P9_37');
    d.analogRead('P9_37', printStatus);
}

function toggle1() {
    if(temp<0.74 && temp>0.01 && state3 == c.HIGH) {
        state1 = b.HIGH;
        state2 = c.LOW; //If temp is LT 1190 C
        b.digitalWrite("P9_15", state1);
        b.digitalWrite("P9_12", state2);
    }
    else if(temp>0.76 && state3 == c.HIGH) {//If temp is GT 1210 C
        state1 = b.LOW;
        state2 = c.HIGH;
        b.digitalWrite("P9_15", state1);
        b.digitalWrite("P9_12", state2);
    }
    else if(temp<0.74 && temp>0.01 && state4 == c.HIGH) {
        state1 = b.LOW;
        state2 = c.HIGH; //If temp is LT 1190 C
        b.digitalWrite("P9_15", state1);
        b.digitalWrite("P9_12", state2);
    }
    else if(temp>0.76 && state4 == c.HIGH) {//If temp is GT 1210 C
        state1 = b.HIGH;
        state2 = c.LOW;
        b.digitalWrite("P9_15", state1);
        b.digitalWrite("P9_12", state2);
    }
    else {//Else do nothing
        state2 = c.LOW;
        b.digitalWrite("P9_15", state2);
    }

}

function toggle2() {
    if(state1 == b.HIGH) { //If Temp was LT 1190 C
        state1 = b.LOW;
        state2 = c.LOW;
        b.digitalWrite("P9_15", state1);
        b.digitalWrite("P9_12", state2);
    }
    else if(state1 == b.LOW) { //If temp was GT 1210 C
        state2 = c.LOW;
        state1 = b.LOW;
        b.digitalWrite("P9_15", state1);
        b.digitalWrite("P9_12", state2);
    }
    else { //Else do nothing
        state1 = b.LOW;
        state2 = c.LOW;
        b.digitalWrite("P9_15", state1);
        b.digitalWrite("P9_12", state2);

    }

}

return 0;

任何建議表示贊賞。 我在其他任何地方都找不到這個確切的錯誤,而且類似的錯誤似乎無關。 謝謝!

原來這是一個語法問題。 這是正確的語法:

var state1 = b.low;
var state2 = c.low;

setInterval(check,1000);

function check(){
GPIO1.digitalRead('P8_13');
GPIO2.digitalRead('P8_19');
}

var temp = d.analogRead('P9_37');

d.analogRead('P9_37', printStatus);
function printStatus(x) {
    console.log('temp = ' + x.value);
}

b.pinMode("P9_15", b.OUTPUT);
b.digitalWrite("P9_15", b.LOW);
c.pinMode("P9_12", b.OUTPUT);
c.digitalWrite("P9_12", b.LOW);
e.pinMode("P8_7", b.OUTPUT);
e.digitalWrite("P8_7", b.LOW);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM