2017-03-29 1 views
0

J'ai le pi de framboise et le chapeau de sens. Je souhaite extraire l'accélération z, y, x, la température et la pression et le temps à csv. Cependant, le code que j'ai écrit ne fait pas ce que je veux qu'il fasse. Je m'attendais à ce que les données quittent la fonction dans un tableau mais la fenêtre de débogage les montre comme des objets séparés. Comment puis-je obtenir l'accélération z, y, x et le temps de partir en tant que tableau afin que je puisse exporter au format CSV?nœud rouge fonction et exporter au CSV

29/03/2017, 17:17:23node: abf1ef08.31a6f 
msg : Object 
object 
payload: 0.9487 
_msgid: "ae0db049.020f6" 
29/03/2017, 17:17:23node: abf1ef08.31a6f 
msg : Object 
object 
payload: 0.2781 
_msgid: "ae0db049.020f6" 
29/03/2017, 17:17:23node: abf1ef08.31a6f 
msg : Object 
object 
payload: 0.1491 
_msgid: "ae0db049.020f6" 
29/03/2017, 17:17:23node: abf1ef08.31a6f 
msg : Date 
"Wed Mar 29 2017 16:17:25 GMT+0000 (UTC) 

est ici le code de fonction:

var msgAccelZ,msgAccelX,msgAccelY,msgTemperature,msgPressure,msgCurrentTime; 
if (msg.topic === 'motion') { 
    msgAccelZ = { payload: msg.payload.acceleration.z, }; 
    msgAccelX = { payload: msg.payload.acceleration.x, }; 
    msgAccelY = { payload: msg.payload.acceleration.y, }; 
} else if (msg.topic === 'environment') { 
    msgTemperature = { payload: msg.payload.temperature }; 
    msgPressure = { payload: msg.payload.pressure }; 
} 
msgCurrentTime = new Date(); 
return [ [msgAccelZ, msgAccelX, msgAccelY,msgCurrentTime] ,[msgTemperature, msgPressure, msgCurrentTime] ]; 

Répondre

1

Une fonction doit retourner un objet de message, pas seulement une valeur brute.

Par convention, vous mettriez les données que vous souhaitez revenir sous msg.payload:

msg.payload = [ [msgAccelZ, msgAccelX, msgAccelY,msgCurrentTime] ,[msgTemperature, msgPressure, msgCurrentTime] ]; 
return msg; 

La documentation pour le nœud de fonction explique plus en détail: http://nodered.org/docs/writing-functions