mirror of
https://github.com/node-red/node-red-nodes.git
synced 2023-10-10 13:36:58 +02:00
sync sample node with main sample
reduce exif error messages so false-positives don't keep getting reported
This commit is contained in:
parent
ac0aa40e24
commit
fb7ccc7736
@ -31,6 +31,8 @@ module.exports = function(RED) {
|
||||
|
||||
// Store local copies of the node configuration (as defined in the .html)
|
||||
this.topic = n.topic;
|
||||
|
||||
// copy "this" object in case we need it in context of callbacks of other functions.
|
||||
var node = this;
|
||||
|
||||
// Do whatever you need to do in here - declare callbacks etc
|
||||
@ -43,16 +45,16 @@ module.exports = function(RED) {
|
||||
|
||||
// send out the message to the rest of the workspace.
|
||||
// ... this message will get sent at startup so you may not see it in a debug node.
|
||||
node.send(msg);
|
||||
this.send(msg);
|
||||
|
||||
// respond to inputs....
|
||||
node.on('input', function (msg) {
|
||||
this.on('input', function (msg) {
|
||||
node.warn("I saw a payload: "+msg.payload);
|
||||
// in this example just send it straight on... should process it here really
|
||||
node.send(msg);
|
||||
});
|
||||
|
||||
node.on("close", function() {
|
||||
this.on("close", function() {
|
||||
// Called when the node is shutdown - eg on redeploy.
|
||||
// Allows ports to be closed, connections dropped etc.
|
||||
// eg: node.client.disconnect();
|
||||
|
@ -17,13 +17,13 @@
|
||||
module.exports = function(RED) {
|
||||
"use strict";
|
||||
var ExifImage = require('exif').ExifImage;
|
||||
|
||||
|
||||
function convertDegreesMinutesSecondsToDecimals(degrees, minutes, seconds) {
|
||||
var result;
|
||||
result = degrees + (minutes / 60) + (seconds / 3600);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
* Extracts GPS location information from Exif data. If enough information is
|
||||
* provided, convert the Exif data into a pair of single floating point number
|
||||
@ -46,7 +46,7 @@ module.exports = function(RED) {
|
||||
if(gpsData.GPSLongitude.length === 3) { // OK to convert longitude
|
||||
var latitude = convertDegreesMinutesSecondsToDecimals(gpsData.GPSLatitude[0], gpsData.GPSLatitude[1], gpsData.GPSLatitude[2]);
|
||||
latitude = Math.round(latitude * 100000)/100000;
|
||||
|
||||
|
||||
// (N)orth means positive latitude
|
||||
// (S)outh means negative latitude
|
||||
// (E)ast means positive longitude
|
||||
@ -54,10 +54,10 @@ module.exports = function(RED) {
|
||||
if(gpsData.GPSLatitudeRef.toString() === 'S' || gpsData.GPSLatitudeRef.toString() === 's') {
|
||||
latitude = latitude * -1;
|
||||
}
|
||||
|
||||
|
||||
var longitude = convertDegreesMinutesSecondsToDecimals(gpsData.GPSLongitude[0], gpsData.GPSLongitude[1], gpsData.GPSLongitude[2]);
|
||||
longitude = Math.round(longitude * 100000)/100000;
|
||||
|
||||
|
||||
if(gpsData.GPSLongitudeRef.toString() === 'W' || gpsData.GPSLongitudeRef.toString() === 'w') {
|
||||
longitude = longitude * -1;
|
||||
}
|
||||
@ -86,25 +86,24 @@ module.exports = function(RED) {
|
||||
var node = this;
|
||||
this.on("input", function(msg) {
|
||||
try {
|
||||
|
||||
if(msg.payload) {
|
||||
var isBuffer = Buffer.isBuffer(msg.payload);
|
||||
if(isBuffer === true) {
|
||||
if (msg.payload) {
|
||||
if (Buffer.isBuffer(msg.payload)) {
|
||||
new ExifImage({ image : msg.payload }, function (error, exifData) {
|
||||
if (error) {
|
||||
node.error('Failed to extract Exif data from image.');
|
||||
node.log('Failed to extract Exif data from image. '+ error);
|
||||
if (error) {
|
||||
//node.error('Failed to extract Exif data from image.');
|
||||
//node.log('Failed to extract Exif data from image. '+ error);
|
||||
node.log(error);
|
||||
} else {
|
||||
//msg.payload remains the same buffer
|
||||
if(exifData) {
|
||||
msg.exif = exifData;
|
||||
addMsgLocationDataFromExifGPSData(msg);
|
||||
} else {
|
||||
//msg.payload remains the same buffer
|
||||
if(exifData) {
|
||||
msg.exif = exifData;
|
||||
addMsgLocationDataFromExifGPSData(msg);
|
||||
} else {
|
||||
node.warn("The incoming buffer did not contain Exif data, nothing to do. ");
|
||||
}
|
||||
node.warn("The incoming buffer did not contain Exif data, nothing to do. ");
|
||||
}
|
||||
node.send(msg);
|
||||
});
|
||||
}
|
||||
node.send(msg);
|
||||
});
|
||||
} else {
|
||||
node.error("Invalid payload received, the Exif node cannot proceed, no messages sent.");
|
||||
return;
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name" : "node-red-node-exif",
|
||||
"version" : "0.0.1",
|
||||
"version" : "0.0.2",
|
||||
"description" : "A Node-RED node that extracts Exif information from JPEG image buffers.",
|
||||
"dependencies" : {
|
||||
"exif": "0.4.0"
|
||||
|
Loading…
Reference in New Issue
Block a user