2012-04-27 105 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

相关问题