[{"data":1,"prerenderedAt":81},["ShallowReactive",2],{"integration-node-red-contrib-tak-registration\u002F":3},{"_id":4,"categories":5,"author":8,"description":11,"npmOwners":12,"npmScope":14,"name":4,"ffCertified":15,"downloads":16,"version":18,"updatedAt":19,"maintainers":20,"homepage":22,"bugs":23,"repository":25,"time":28,"lastUpdated":19,"created":29,"license":77,"githubOwner":13,"githubRepo":78,"examples":79,"readme":80},"node-red-contrib-tak-registration",[6,7],"catalogue_communication","catalogue",{"name":9,"email":10},"Dave Conway-Jones","dceejay@gmail.com","A Node-RED node to register to TAK and to help wrap files as datapackages to send to TAK",[13],"dceejay",null,false,{"week":17},3235,"1.0.2","2026-07-27T13:47:01.941Z",[21],{"name":13,"email":10},"https:\u002F\u002Fgithub.com\u002Fdceejay\u002Ftakreg\u002Ftree\u002Fmaster#readme",{"url":24},"https:\u002F\u002Fgithub.com\u002Fdceejay\u002Ftakreg\u002Fissues",{"type":26,"url":27},"git","git+https:\u002F\u002Fgithub.com\u002Fdceejay\u002Ftakreg.git#master",{"created":29,"modified":19,"0.1.0":30,"0.1.1":31,"0.1.2":32,"0.2.0":33,"0.2.1":34,"0.2.2":35,"0.3.0":36,"0.3.1":37,"0.3.2":38,"0.6.0":39,"0.7.0":40,"0.7.1":41,"0.7.2":42,"0.8.0":43,"0.8.3":44,"0.9.0":45,"0.10.0":46,"0.11.0":47,"0.11.1":48,"0.11.4":49,"0.11.5":50,"0.11.6":51,"0.12.0":52,"0.12.1":53,"0.13.0":54,"0.13.1":55,"0.14.0":56,"0.14.1":57,"0.15.0":58,"0.16.0":59,"0.16.1":60,"0.16.3":61,"0.16.5":62,"0.16.7":63,"0.16.8":64,"0.16.9":65,"0.16.10":66,"0.16.11":67,"0.16.13":68,"0.16.14":69,"0.16.15":70,"0.16.16":71,"0.16.17":72,"0.16.18":73,"1.0.0":74,"1.0.1":75,"1.0.2":76},"2022-01-21T12:12:53.000Z","2022-01-21T12:12:53.218Z","2022-01-21T12:58:03.121Z","2022-01-21T13:21:40.743Z","2022-02-07T20:39:31.429Z","2022-02-07T22:30:44.911Z","2022-04-08T12:09:33.276Z","2022-04-15T14:46:24.781Z","2022-04-15T15:10:24.326Z","2022-07-27T12:58:15.262Z","2023-08-03T17:03:07.259Z","2023-08-09T21:44:35.376Z","2023-08-10T09:48:15.429Z","2023-08-10T10:29:33.459Z","2023-08-11T14:12:21.846Z","2023-09-01T12:24:15.368Z","2023-09-08T13:00:23.855Z","2023-09-14T17:51:00.862Z","2023-09-15T10:55:59.552Z","2023-09-25T15:13:03.977Z","2023-12-08T12:06:07.668Z","2023-12-08T14:24:25.456Z","2024-02-27T16:28:50.318Z","2024-07-02T10:10:42.289Z","2024-07-30T09:23:31.053Z","2024-10-13T08:45:03.567Z","2024-12-23T11:43:58.553Z","2025-01-16T18:54:33.315Z","2025-01-28T15:03:29.285Z","2025-05-19T17:47:37.861Z","2025-07-28T20:19:51.508Z","2025-09-14T14:10:54.922Z","2025-11-21T13:45:55.665Z","2026-01-28T14:31:38.028Z","2026-02-04T09:52:17.287Z","2026-02-08T21:10:03.487Z","2026-02-12T12:40:19.436Z","2026-02-19T21:36:47.643Z","2026-03-25T16:38:39.645Z","2026-03-31T15:09:17.797Z","2026-04-02T20:47:19.744Z","2026-04-17T09:17:58.423Z","2026-04-26T22:04:27.587Z","2026-05-08T19:45:36.409Z","2026-05-13T08:16:35.016Z","2026-05-20T10:22:59.955Z","2026-07-11T07:49:41.146Z","2026-07-27T13:47:01.767Z","Apache-2.0","takreg#master",[],"\u003Ch1 id=\"node-red-contrib-tak-registration\">\u003Ca class=\"header-anchor\" href=\"#node-red-contrib-tak-registration\">node-red-contrib-tak-registration\u003C\u002Fa>\u003C\u002Fh1>\n\u003Cp>A \u003Ca href=\"http:\u002F\u002Fnodered.org\" target=\"_new\">Node-RED\u003C\u002Fa> node to register to a TAK server, to help wrap and send\nfiles as datapackages for TAK, and to create and update markers from json messages.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>NOTE\u003C\u002Fstrong>: NOT yet for production use.\u003C\u002Fp>\n\u003Ch2 id=\"install\">\u003Ca class=\"header-anchor\" href=\"#install\">Install\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>Either use the Menu - Manage Palette - Install option, or run the following command in your Node-RED user\ndirectory - typically \u003Ccode>~\u002F.node-red\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>npm i node-red-contrib-tak-registration\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"tak-registration-node-usage\">\u003Ca class=\"header-anchor\" href=\"#tak-registration-node-usage\">TAK-Registration Node Usage\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>Registers a TAK gateway node and sets up a heartbeat.\u003C\u002Fp>\n\u003Cp>It must be connected to a TCP request node, configured to point to the TAK server tcp address and port\n(usually 8087 or 8089), set to return strings, keep connection open mode, and split on \u003Ccode>&lt;\u002Fevent&gt;\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fdceejay\u002Fpages\u002Fblob\u002Fmaster\u002FTAKinout.png?raw=true\" alt=\"TAK out and in Image\" \u002F>\u003C\u002Fp>\n\u003Cp>It can send various types of messages to TAK.\u003C\u002Fp>\n\u003Cp>It should be configured with a name, and location.\u003C\u002Fp>\n\u003Cp>As it registers to the TAK server it should be possible for other team members to send messages and markers to the gateway.\u003C\u002Fp>\n\u003Ch3 id=\"standard-cot-event\">\u003Ca class=\"header-anchor\" href=\"#standard-cot-event\">Standard COT event\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>If the \u003Ccode>msg.payload\u003C\u002Fcode> is an XML string it will be passed directly though. It should be a correctly formatted CoT XML message of course.\u003C\u002Fp>\n\u003Ch3 id=\"sending-marker-position\">\u003Ca class=\"header-anchor\" href=\"#sending-marker-position\">Sending marker position...\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>To create or update a simple marker send a msg with the following property\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>payload\u003C\u002Fstrong> - \u003Cem>object\u003C\u002Fem> - a \"standard\" node-red worldmap format - IE a msg.payload containing \u003Ccode>name, lat, lon, SIDC or cottype or aistype, (alt), (speed), (bearing), (layer), (remarks)\u003C\u002Fcode>, where \u003Ccode>SIDC\u003C\u002Fcode> is the standard mil 2525C code, eg SFGPU, \u003Ccode>cottype\u003C\u002Fcode> is the CoT type, eg a-f-g-u, or \u003Ccode>aistype\u003C\u002Fcode> is the AIS ship type number, eg 80 for a tanker. The \u003Ccode>layer\u003C\u002Fcode> will get turned into a hashtag which can then be selected on\u002Foff in the TAK app layers control, and any \u003Ccode>remarks\u003C\u002Fcode> will get added to the CoT remarks field. You can also set the \u003Ccode>icon\u003C\u002Fcode> property to specify one of the inbuilt custom icons if you know the magic iconset codes, or \u003Cem>fa-circle fa-fw\u003C\u002Fem> to use spot markers in which case \u003Ccode>iconColor\u003C\u002Fcode> will set the colour of the spot.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3 id=\"simple-geochat-messages\">\u003Ca class=\"header-anchor\" href=\"#simple-geochat-messages\">Simple GeoChat messages\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>requires a \u003Ccode>msg\u003C\u002Fcode> containing the following properties\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>sendTo\u003C\u002Fstrong> - \u003Cem>string | array\u003C\u002Fem> - can either be an individual TAK callsign, a comma separated list of callsigns, an array of callsigns, or \u003Cstrong>broadcast\u003C\u002Fstrong> to send to all users.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>payload\u003C\u002Fstrong> - \u003Cem>string\u003C\u002Fem> - the text of the message to send.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3 id=\"sending-data-packages\">\u003Ca class=\"header-anchor\" href=\"#sending-data-packages\">Sending data packages...\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>requires a \u003Ccode>msg\u003C\u002Fcode> containing the following properties\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>sendTo\u003C\u002Fstrong> - \u003Cem>string | array\u003C\u002Fem> - can either be an individual TAK callsign, an array of callsigns, or \u003Cstrong>broadcast\u003C\u002Fstrong> to send to all users, or \u003Cstrong>public\u003C\u002Fstrong> to just upload the package to the TAK server.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>topic\u003C\u002Fstrong> - \u003Cem>string\u003C\u002Fem> - the overall package name - IE what you want it to be called on the TAK device (keep it short).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>attachments\u003C\u002Fstrong> - \u003Cem>array of objects\u003C\u002Fem> - each object must contain at least a \u003Cstrong>filename\u003C\u002Fstrong> (string) and \u003Cstrong>content\u003C\u002Fstrong> a buffer of the file\u002Fdata, for example \u003Ccode>[{filename:\"foo.kml\", content: &lt;buffer of the file&gt;}]\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>from\u003C\u002Fstrong> - \u003Cem>string\u003C\u002Fem> - (optional) callsign of the person sending the file - defaults to the gateway node callsign.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>lat\u003C\u002Fstrong> - \u003Cem>number | (string)\u003C\u002Fem> - (optional) latitude of the marker for the file.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>lon\u003C\u002Fstrong> - \u003Cem>number | (string)\u003C\u002Fem> - (optional) longitude of the marker for the file.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>If you just need to send a single file then instead of msg.attachments you can use \u003Ccode>msg.filename\u003C\u002Fcode> to set the filename, and the \u003Ccode>msg.payload\u003C\u002Fcode> should be a binary buffer.\u003C\u002Fp>\n\u003Ch3 id=\"sending-drawing-layer\">\u003Ca class=\"header-anchor\" href=\"#sending-drawing-layer\">Sending drawing layer...\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>The node will also accept drawing type messages incoming from the drawing layer of the\n\u003Ca href=\"https:\u002F\u002Fflows.nodered.org\u002Fnode\u002Fnode-red-contrib-web-worldmap\">node-red-contrib-web-worldmap\u003C\u002Fa>,\nand convert them to CoT objects for display. To do this configure a \u003Cem>worldmap-in\u003C\u002Fem> node to pass on drawing layer messages.\u003C\u002Fp>\n\u003Ch3 id=\"updating-the-gateway-position\">\u003Ca class=\"header-anchor\" href=\"#updating-the-gateway-position\">Updating the gateway position...\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>To update the location of the gateway dynamically the node can accept a payload\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>payload\u003C\u002Fstrong> - \u003Cem>string | object\u003C\u002Fem> - Either an NMEA string starting \u003Ccode>$GPGGA\u003C\u002Fcode> (for example from a locally attached serial GPS device) - or an object containing only \u003Ccode>lat\u003C\u002Fcode> and \u003Ccode>lon\u003C\u002Fcode> and optional \u003Ccode>alt\u003C\u002Fcode> properties (\u003Cstrong>but no name\u003C\u002Fstrong> property).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3 id=\"details\">\u003Ca class=\"header-anchor\" href=\"#details\">Details\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>This should work almost directly with messages received from an email-in node for example - but you will need to add the recipients in the sendTo property and may need to filter out unwanted messages first.\u003C\u002Fp>\n\u003Ch3 id=\"global-context-variables\">\u003Ca class=\"header-anchor\" href=\"#global-context-variables\">Global Context Variables\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>Both nodes maintain two shared global context lookup tables that can be used by other nodes in your flow:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>\u003Ccode>_takgatewaycs\u003C\u002Fcode>\u003C\u002Fstrong> - \u003Cem>object\u003C\u002Fem> - A map of callsign → uid. Given a TAK callsign, returns the corresponding device uid.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>_takgatewayid\u003C\u002Fcode>\u003C\u002Fstrong> - \u003Cem>object\u003C\u002Fem> - A map of uid → callsign. Given a TAK device uid, returns the corresponding callsign.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>These are updated automatically whenever a message is received or sent that contains both a callsign and a uid. They can be accessed in a function node using:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-js\">var cs = global.get(\"_takgatewaycs\");  \u002F\u002F { \"CALLSIGN\": \"uid-string\", ... }\nvar id = global.get(\"_takgatewayid\");  \u002F\u002F { \"uid-string\": \"CALLSIGN\", ... }\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>A third variable \u003Cstrong>\u003Ccode>_takdphost\u003C\u002Fcode>\u003C\u002Fstrong> is also set by the TAK-Registration node, storing the configured data package server URL.\u003C\u002Fp>\n\u003Ch2 id=\"tak-ingest-node-usage\">\u003Ca class=\"header-anchor\" href=\"#tak-ingest-node-usage\">TAK-Ingest Node Usage\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>This node can accept input direct from a TCP request node, configured to point to the TAK server tcp address and port (usually 8087 or 8089), set to return strings, \u003Cem>keep connection open\u003C\u002Fem> mode, and split on \u003Ccode>&lt;\u002Fevent&gt;\u003C\u002Fcode>. This can be same TCP node as used by the TAK-registration node above.\u003C\u002Fp>\n\u003Cp>It will produce a well formatted JSON object containing the event. It is returned as \u003Cstrong>msg.payload.event\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>msg.topic\u003C\u002Fstrong> is set to the COT type.\u003C\u002Fp>\n\u003Cp>If an event arrives with a \u003Cem>fileshare\u003C\u002Fem> link, it will fetch the file and add \u003Cstrong>msg.filename\u003C\u002Fstrong> and \u003Cstrong>msg.datapackage\u003C\u002Fstrong> to the output msg. The datapackage will be a buffer.\u003C\u002Fp>\n\u003Cp>It can also accept input from a UDP node configured to listen to \u003Cem>multicast\u003C\u002Fem> on group 239.2.3.1 port 6969. The JSON object produced contains similar information but formatted\u002Forganised slightly differently. (Very annoying).\nIt is returned as \u003Cstrong>msg.payload.cotEvent\u003C\u002Fstrong>\u003C\u002Fp>\n",1785181580964]