2012-04-27 42 views
1

我是Node.js的新手。我的文件系統上有一個文件,用於控制硬件上的某種輸出。文件內容可以是0到100之間的整數。使用Node.js,每秒寫入文件的最佳方式是什麼

我想以固定延遲(例如每100ms)寫入此文件。所以我wrode此代碼:

var duty_percentfile = fs.openSync("/sys/class/pwm/ehrpwm.1:0/duty_percent", "w"); 

var fade = function(){ 
    fs.writeSync(duty_percentfile, i, null); 
    i = i + 5; 
} 

setInterval(fade, 100); 

首先,這是最好的辦法嗎?

其次,我收到此錯誤爭端它完成工作的事實:

fs.js:321 


return binding.write(fd, buffer, offset, length, position); 
       ^
Error: EINVAL, invalid argument 
    at Object.writeSync (fs.js:321:18) 
    at Timer.<anonymous> (/var/lib/cloud9/myApps/test.js:22:8) 
    at Timer.ontimeout (timers.js:223:14) 

回答

1

相反null的你應該指定0的位置(如果這就是你想要的)。 您的i也未初始化,不會增加。

試試這個:

var duty_percentfile = fs.openSync("/sys/class/pwm/ehrpwm.1:0/duty_percent", "w") 
    , value = 0 // or whatever your initial value is 
; 

setInterval(function(){ 
    fs.writeSync(duty_percentfile, value, 0); 
    value += 5; 
}, 100); 
+0

我試過了,我仍然得到相同的錯誤。它完成這項工作,當它完成它退出的時間間隔並出現以下錯誤時: fs.js:312 return binding.write(fd,buffer,offset,length,position); ^ 錯誤:EINVAL,參數無效 – Seeker 2012-05-01 17:58:49

相關問題