I'm a beginner in node.js and I appreciate if anyone can help me. I've done a server using express, the code is below. When some button is pressed on the website is executed 'clientEvent' on the server. Inside there, it is a for loop which allows executing an executable C program 'sudo ./dac8532_test %s %s' in order to generate different voltages in a 2-channel DAC converter. This executable program needs two input arguments for generating a voltage for each channel. This value should change while the for loop is executing. Unfortunately, there is an error "Error command failed: ./dac8532_test 0 0" and "segmentation fault". I know that the problem is originated by replacing these values ('i') in the variable com_dac. Anyone know how to correct this problem? I would really appreciate it. :)
var express = require('express');
var fs = require('fs');
var util = require('util');
var jsonfile = require('jsonfile');
var app = express();
var http = require('http').Server(app);
var exec = require('child_process').exec;
var spawnSync = require('child_process').spawnSync;
var execSync = require('child_process').execSync;
var io = require('socket.io')(http);
var serFunc = require('./serverFunctions.js');
app.get('/', function(req,res){
res.sendFile(path.join(__dirname + '/public/index.html'));
});
//Static Directories
app.use(express.static(path.join(__dirname + '/public')));
io.on('connection', function(socket){
console.log('An user is connected')
socket.on('clientEvent', function(data){
var param = data;
var i=parseFloat(param[0]);
var incr= parseFloat(param[1]);
var val_max=parseFloat(param[2]);
var ADC_read = new Array();
var ANI0 = new Array();
var ANI1 = new Array();
var ANI2 = new Array();
var ANI3 = new Array();
var ANI4 = new Array();
var ADC_vector = new Array();
var com_dac = "sudo ./dac8532_test %s %s";
var listOfObjects = [];
console.log(param);
for(i; i<= val_max; i+=incr ){
execSync(com_dac.replace("%s",i).replace("%s",i)); //Here is the problem :( !!!!
spawnSync("sudo",['./ads1256_probe', 'adc.txt']);
ADC_read = fs.readFileSync("adc.txt").toString()
ADC_vector = ADC_read.split(" ");
ANI0.push(parseFloat(ADC_vector[0]));
ANI1.push(parseFloat(ADC_vector[1]));
};
});
socket.on('disconnect', function(data){
console.log('An user is disconnected');
});
});
//Server Starting
http.listen(8080, function(err){
if(err){
console.log('Error starting http server');
} else{
console.log('Sever running at http://localhost:8080 ');
}
});
via Margarita Gonzalez
No comments:
Post a Comment