Target Gateway provides live udp stream reception, parsing and DB injection.
TargetGateway ingests detected targets as GeoJson compatible documents.
TargetSchema
const radarTargetSchema = new mongoose.Schema({
missionId: { type: mongoose.Schema.Types.ObjectId },
sensorId: Number,
timestamp: { type: Date, index: true },
geometry: {
type: {String, enum: ['Point'], required: true },
coordinates: { type: [Number], required: true, index: '2dsphere'}
},
properties: {
TGT_ID: Number,
TARGET_HOSTILITY: { type: String, enum: ['FRIEND', 'UNKNOWN', 'HOSTILE', 'NEUTRAL']},
TGT_QUALITY: Number,
TGT_ST_PRIM: { type: String, enum: ['Initial', 'Memory', 'Active', 'Lost']},
TGT_ST_SECOND: { type: String, enum: ['None', 'Imaged', 'Hook']},
TGT_UNIQ_ID: Number,
TargetTacticalName: String,
TGT_AZ: Number,
TGT_RNG: Number,
TGT_COURSE: Number,
TGT_VEL: Number,
TargetISRRadius: Number,
AVN_TIME_HOUR: Number,
AVN_TIME_MINUTE: Number,
AVN_TIME_SECOND: Number
}
}, {
usePushEach: true
});
Here is an example of the document.
{
"_id" : ObjectId("5bbdcfff51a371500800ce8c"),
"missionId" : ObjectId("5bb6200553bf5250a8a56e15"),
"timestamp" : ISODate("2018-10-10T10:10:07.302Z"),
"geometry" : {
"type" : "Point",
"coordinates" : [
34.7844444444444,
32.4633333333333
]
},
"properties" : {
"TGT_ID" : 1280,
"TARGET_HOSTILITY" : "FRIEND",
"TGT_QUALITY" : 0,
"TGT_ST_PRIM" : "Lost",
"TGT_ST_SECOND" : "None",
"TGT_UNIQ_ID" : 36,
"TargetTacticalName" : "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000",
"TGT_AZ" : 164.498289144,
"TGT_RNG" : 80056,
"TGT_COURSE" : -89.999998976,
"TGT_VEL" : 0.25,
"TargetISRRadius" : 0,
"AVN_TIME_HOUR" : 5,
"AVN_TIME_MINUTE" : 36,
"AVN_TIME_SECOND" : 5
},
"__v" : 0
}
In addition to the MongoDB ingest, TargetGateway can optionally create standard GeoJSON files that can be used in any GIS application. Received packets are saved to files (last target packet or/and packet history).
npm install
Listen to the stream and save GeoJSON collections as files at c:\tmp\targets
node index.js -a 234.5.6.7 -p 6040 --historyFolder c:/tmp/targets --lastTargetsFile c:/tmp/targets/latestTarget.geojson
Listen to the stream and ingest into DB for mission 5bb6200553bf5250a8a56e15. Use 192.168.1.31 network interface
node index.js -a 234.5.6.7 -p 6040 -n 192.168.1.31 -m 5bb6200553bf5250a8a56e15 -d mongodb://localhost:27017/db
| Short Command | Command | Description |
|---|---|---|
| -a | --address | Input address |
| -p | --port | Input port |
| -n | --nic | Input network interface. DefaultValue: '0.0.0.0' |
| -d | --db | Optional. DB connection string. If not provided, no DB ingest is performed |
| --historyFolder | Optional. The target folder for GeoJSON feature collection files. | |
| --lastTargetsFile | Optional. The path where last packet should be saved (as GeoJSON feature collection). | |
| -m | --missionId | Mission ID |
| --sensorId | Sensor ID | |
| -s | --silent | Silent mode. Do not print status message. |
| -v | --version | Version |
| -h | --help | Display usage |