@signalk/n2k-signalk
Version:
NMEA 2000 to SignalK conversion library
143 lines • 4.83 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const ts_pgns_1 = require("@canboat/ts-pgns");
const aisFromStarboard_1 = __importDefault(require("../aisFromStarboard"));
const schema = require('@signalk/signalk-schema');
module.exports = [
{
node: '',
filter: (n2k) => n2k.fields.atonName,
value: function (n2k) {
return {
name: n2k.fields.atonName
};
}
},
{
filter: (n2k) => n2k.fields.longitude && n2k.fields.latitude,
value: function (n2k) {
return {
longitude: Number(n2k.fields.longitude),
latitude: Number(n2k.fields.latitude)
};
},
node: 'navigation.position'
},
{
node: 'design.length',
value: function (n2k) {
return { overall: Number(n2k.fields.lengthDiameter) };
},
filter: function (n2k) {
return n2k.fields.lengthDiameter;
}
},
{
node: 'atonType',
value: function (n2k) {
let num = undefined;
if (n2k.fields.atonType) {
num = nameMapping[n2k.fields.atonType];
}
const name = schema.getAtonTypeName(num);
if (typeof num !== 'undefined' && name !== undefined) {
return {
id: num,
name: name
};
}
else {
return null;
}
}
},
{
node: 'design.beam',
source: 'beamDiameter'
},
{
node: 'sensors.ais.fromBow',
source: 'positionReferenceFromBow'
},
{
node: 'sensors.ais.fromCenter',
value: aisFromStarboard_1.default,
filter: function (n2k) {
return (n2k.fields.positionReferenceFromStarboardEdge && n2k.fields.beamDiameter);
}
},
{
node: 'virtual',
value: function (n2k) {
const flag = n2k.fields.virtualAtonFlag;
return typeof flag != 'undefined' ? flag === 'Yes' : undefined;
}
},
{
node: 'offPosition',
value: function (n2k) {
const flag = n2k.fields.offPositionIndicator;
return typeof flag != 'undefined' ? flag === 'Yes' : undefined;
}
},
{
node: '',
filter: (n2k) => n2k.fields.userId,
value: function (n2k) {
return {
mmsi: n2k.fields.userId.toString()
};
}
},
{
context: function (n2k) {
return n2k.fields.userId
? 'atons.urn:mrn:imo:mmsi:' + n2k.fields.userId
: 'atons.unknown';
}
},
{
node: 'sensors.ais.class',
value: function (n2k) {
return 'ATON';
}
}
];
const nameMapping = {
[ts_pgns_1.AtonType.DefaultTypeOfAtoNNotSpecified]: 0,
[ts_pgns_1.AtonType.ReferencePoint]: 1,
[ts_pgns_1.AtonType.Racon]: 2,
[ts_pgns_1.AtonType.FixedStructureOffShore]: 3,
[ts_pgns_1.AtonType.ReservedForFutureUse]: 4,
[ts_pgns_1.AtonType.FixedLightWithoutSectors]: 5,
[ts_pgns_1.AtonType.FixedLightWithSectors]: 6,
[ts_pgns_1.AtonType.FixedLeadingLightFront]: 7,
[ts_pgns_1.AtonType.FixedLeadingLightRear]: 8,
[ts_pgns_1.AtonType.FixedBeaconCardinalN]: 9,
[ts_pgns_1.AtonType.FixedBeaconCardinalE]: 10,
[ts_pgns_1.AtonType.FixedBeaconCardinalS]: 11,
[ts_pgns_1.AtonType.FixedBeaconCardinalW]: 12,
[ts_pgns_1.AtonType.FixedBeaconPortHand]: 13,
[ts_pgns_1.AtonType.FixedBeaconStarboardHand]: 14,
[ts_pgns_1.AtonType.FixedBeaconPreferredChannelPortHand]: 15,
[ts_pgns_1.AtonType.FixedBeaconPreferredChannelStarboardHand]: 16,
[ts_pgns_1.AtonType.FixedBeaconIsolatedDanger]: 17,
[ts_pgns_1.AtonType.FixedBeaconSafeWater]: 18,
[ts_pgns_1.AtonType.FixedBeaconSpecialMark]: 19,
[ts_pgns_1.AtonType.FloatingAtoNCardinalN]: 20,
[ts_pgns_1.AtonType.FloatingAtoNCardinalE]: 21,
[ts_pgns_1.AtonType.FloatingAtoNCardinalS]: 22,
[ts_pgns_1.AtonType.FloatingAtoNCardinalW]: 23,
[ts_pgns_1.AtonType.FloatingAtoNPortHandMark]: 24,
[ts_pgns_1.AtonType.FloatingAtoNStarboardHandMark]: 25,
[ts_pgns_1.AtonType.FloatingAtoNPreferredChannelPortHand]: 26,
[ts_pgns_1.AtonType.FloatingAtoNPreferredChannelStarboardHand]: 27,
[ts_pgns_1.AtonType.FloatingAtoNIsolatedDanger]: 28,
[ts_pgns_1.AtonType.FloatingAtoNSafeWater]: 29,
[ts_pgns_1.AtonType.FloatingAtoNSpecialMark]: 30,
[ts_pgns_1.AtonType.FloatingAtoNLightVessellanbyrigs]: 31
};
//# sourceMappingURL=129041.js.map