[英]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.