When the number is first sent from nodejs to arduino. I see the error "Error Resource temporarily unavailable Cannot lock port"
I use linux.
I fist update some value (in webserver) and Serialport catch the value. so I can see the value in arduino serial monitor.
but after I update some value again. it cause error.
this is nodejs code.
>
var serialport = require('serialport'),
> SerialPort = serialport.SerialPort,
> portName = '/dev/ttyACM0',
> portConfig = {
> baudRate: 9600,
> // call myPort.on('data') when a newline is received:
> //parser: serialport.parsers.readline('\n')
> };
>
> .
> .
> (code..)
> .
> .
> pool.getConnection(function(err,connection)
> {
> var sql = "update value set temperature=? , humidity=? where idx=?";
> connection.query(sql,[temperature,humidity,idx],function(err,result)
> {
> console.log(result);
> if(err) console.error("update errrr : ",err);
> var myPort = new SerialPort(portName, portConfig);
> myPort.on('open', openPort);
>
> function openPort() {
> var temp = temperature;
> console.log('port open');
> console.log('baud rate: ' + myPort.options.baudRate);
>
> function sendData() {
>
> //myPort.write(temp.toString()); for(var i=0; i<temp.length; i++) {
> myPort.write(new Buffer(temp[i], 'ascii'), function(err, results) {
> });
>
> }
>
> console.log('Sending ' + temp + ' out the serial port');
> } setTimeout(sendData, 500); myPort.close
>
> }
> res.redirect('/');
> connection.release();
> });
>
> }); });
this is arduino code
String inData = "";
int led = 13;
void setup()
{
pinMode(led, OUTPUT);
Serial.begin(9600);
analogReference(INTERNAL);
}
void loop()
{
while (Serial.available() > 0) {
long received = Serial.parseInt();
inData.concat(received);
Serial.println(inData);
}
inData = "";
}
help me please..
via kim J
No comments:
Post a Comment