@@ -66,7 +66,7 @@ module.exports = (app, plugin) => {
66
66
}
67
67
68
68
var vessel = app . getPath ( delta . context )
69
- var mmsi = _ . get ( vessel , 'mmsi' ) || findDeltaValue ( delta , 'mmsi' ) ;
69
+ var mmsi = findDeltaValue ( vessel , delta , 'mmsi' ) ;
70
70
71
71
if ( ! mmsi ) {
72
72
return null ;
@@ -83,7 +83,7 @@ module.exports = (app, plugin) => {
83
83
return res
84
84
} else if ( delta . context . startsWith ( 'atons.' ) ) {
85
85
var vessel = app . getPath ( delta . context )
86
- var mmsi = _ . get ( vessel , 'mmsi' ) || findDeltaValue ( delta , 'mmsi' ) ;
86
+ var mmsi = findDeltaValue ( vessel , delta , 'mmsi' ) ;
87
87
88
88
if ( ! mmsi ) {
89
89
return
@@ -217,17 +217,16 @@ module.exports = (app, plugin) => {
217
217
}
218
218
219
219
function generateStatic ( vessel , mmsi , delta ) {
220
- var name = _ . get ( vessel , "name" ) || findDeltaValue ( delta , 'name' ) ;
221
-
222
- var type = _ . get ( findDeltaValue ( delta , "design.aisShipType" ) , "id" )
223
- var callsign = findDeltaValue ( delta , "communication.callsignVhf" )
224
- var length = _ . get ( findDeltaValue ( delta , 'design.length' ) , 'overall' )
225
- var beam = findDeltaValue ( delta , 'design.beam' )
226
- var fromCenter = findDeltaValue ( delta , 'sensors.ais.fromCenter' )
227
- var fromBow = findDeltaValue ( delta , 'sensors.ais.fromBow' )
228
- var draft = _ . get ( findDeltaValue ( delta , 'design.draft' ) , 'maximum' )
229
- var imo = findDeltaValue ( delta , 'registrations.imo' )
230
- var dest = findDeltaValue ( delta , 'navigation.destination.commonName' )
220
+ var name = findDeltaValue ( vessel , delta , 'name' ) ;
221
+ var type = _ . get ( findDeltaValue ( vessel , delta , "design.aisShipType" ) , "id" )
222
+ var callsign = findDeltaValue ( vessel , delta , "communication.callsignVhf" )
223
+ var length = _ . get ( findDeltaValue ( vessel , delta , 'design.length' ) , 'overall' )
224
+ var beam = findDeltaValue ( vessel , delta , 'design.beam' )
225
+ var fromCenter = findDeltaValue ( vessel , delta , 'sensors.ais.fromCenter' )
226
+ var fromBow = findDeltaValue ( vessel , delta , 'sensors.ais.fromBow' )
227
+ var draft = _ . get ( findDeltaValue ( vessel , delta , 'design.draft' ) , 'maximum' )
228
+ var imo = findDeltaValue ( vessel , delta , 'registrations.imo' )
229
+ var dest = findDeltaValue ( vessel , delta , 'navigation.destination.commonName' )
231
230
/*
232
231
type = _.isUndefined(type) ? 0 : type
233
232
callsign = fillASCII(callsign ? callsign : '0', 7)
@@ -296,14 +295,14 @@ function generateStatic(vessel, mmsi, delta) {
296
295
}
297
296
298
297
function generatePosition ( vessel , mmsi , delta ) {
299
- var position = findDeltaValue ( delta , 'navigation.position' )
298
+ var position = findDeltaValue ( vessel , delta , 'navigation.position' )
300
299
301
300
if ( position && position . latitude && position . longitude ) {
302
- var cog = findDeltaValue ( delta , 'navigation.courseOverGroundTrue' )
303
- var sog = findDeltaValue ( delta , 'navigation.speedOverGround' )
304
- var heading = findDeltaValue ( delta , 'navigation.headingTrue' ) ;
305
- var rot = findDeltaValue ( delta , 'navigation.rateOfTurn' )
306
- var status = findDeltaValue ( delta , 'navigation.state' )
301
+ var cog = findDeltaValue ( vessel , delta , 'navigation.courseOverGroundTrue' )
302
+ var sog = findDeltaValue ( vessel , delta , 'navigation.speedOverGround' )
303
+ var heading = findDeltaValue ( vessel , delta , 'navigation.headingTrue' ) ;
304
+ var rot = findDeltaValue ( vessel , delta , 'navigation.rateOfTurn' )
305
+ var status = findDeltaValue ( vessel , delta , 'navigation.state' )
307
306
308
307
if ( ! _ . isUndefined ( status ) ) {
309
308
status = navStatusMapping [ status ]
@@ -395,15 +394,15 @@ function generatePosition(vessel, mmsi, delta) {
395
394
}
396
395
397
396
function generateAtoN ( vessel , mmsi , delta ) {
398
- var position = findDeltaValue ( delta , 'navigation.position' )
397
+ var position = findDeltaValue ( vessel , delta , 'navigation.position' )
399
398
400
399
if ( position && position . latitude && position . longitude ) {
401
- var name = _ . get ( vessel , "name" ) || findDeltaValue ( delta , 'name' ) ;
402
- var type = _ . get ( findDeltaValue ( delta , "atonType" ) , "id" )
403
- var length = _ . get ( findDeltaValue ( delta , 'design.length' ) , 'overall' )
404
- var beam = findDeltaValue ( delta , 'design.beam' )
405
- var fromCenter = findDeltaValue ( delta , 'sensors.ais.fromCenter' )
406
- var fromBow = findDeltaValue ( delta , 'sensors.ais.fromBow' )
400
+ var name = _ . get ( vessel , "name" ) || findDeltaValue ( vessel , delta , 'name' ) ;
401
+ var type = _ . get ( findDeltaValue ( vessel , delta , "atonType" ) , "id" )
402
+ var length = _ . get ( findDeltaValue ( vessel , delta , 'design.length' ) , 'overall' )
403
+ var beam = findDeltaValue ( vessel , delta , 'design.beam' )
404
+ var fromCenter = findDeltaValue ( vessel , delta , 'sensors.ais.fromCenter' )
405
+ var fromBow = findDeltaValue ( vessel , delta , 'sensors.ais.fromBow' )
407
406
var latitude = position . latitude * 10000000 ;
408
407
var longitude = position . longitude * 10000000 ;
409
408
@@ -516,7 +515,7 @@ function hasAnyKeys(delta, keys) {
516
515
return false
517
516
}
518
517
519
- function findDeltaValue ( delta , path ) {
518
+ function findDeltaValue ( vessel , delta , path ) {
520
519
if ( delta . updates ) {
521
520
for ( var i = 0 ; i < delta . updates . length ; i ++ ) {
522
521
for ( var j = 0 ; j < delta . updates [ i ] . values . length ; j ++ ) {
@@ -533,7 +532,8 @@ function findDeltaValue(delta, path) {
533
532
}
534
533
}
535
534
}
536
- return undefined
535
+ let val = _ . get ( vessel , path )
536
+ return val ? val . value : undefined
537
537
}
538
538
539
539
function fillASCII ( theString , len )
0 commit comments