Tumgik
#LD task 001
theclaringtonhq · 2 years
Photo
Tumblr media
Hunter Clarington
Age: almost 30 Location: Los Angeles, CA  Height: 6′0 Sexuality: Pansexual Education: BScience in Sports Rehabilitation and Physiotherapy   Do You Want Kids?: Yes Do You Drink?: Occasionally Do You Smoke?:  No Do You Do Drugs?: No
My most useless skill is...
... I can quickly make a bed, including the neatest hospital corners you’ve ever seen.
My go to karaoke song is...
...Whistle by Flo Rida.  For a couple of months I was the captain of a show choir in high school, and I made my team perform to this song.  I thought we’d win. They told me later what the song’s really about.  But it’s stuck in my head, for better or worse now.
We’re the same type of weird if...
...you enjoy being barefoot and don’t mind getting covered in chalk.
I promise I won't judge you if...
... you don’t know who I am.
4 notes · View notes
courtneytincher · 5 years
Text
Stealth Is Overrated: This Plane Might be The Most Important to the U.S. Navy
If Beijing wanted to, it could probably develop a carrier-based equivalent to the J-16D. The J-15 Flying Shark fighters on China’s two Type 001 carriers also share common heritage in the Flanker family of aircraft, and pursuing a similar upgrade of the two-seat J-15SD seems plausible. However, one limitation would be the lower payload that the J-15s can carry, due to the maximum takeoff weight limitations imposed by the Chinese carriers’ ski-jump-style decks. In any case, it is not even clear to what extent the J-16D will be adopted.The United States Navy’s EA-18G Growler electronic attack fighters are one of a small number of military aircraft types dedicated to the task of jamming—and potentially destroying—hostile radars that could guide deadly surface-to-air missiles against friendly aircraft. This mission is known as Suppression of Enemy Air Defenses (SEAD). Basically, if a modern air force wants to attack an adversary with significant antiaircraft defenses, it needs an effective SEAD game to avoid insupportable losses.(This first appeared several months ago.)The Growler is derived from the F-18 Super Hornet fighter, and is faster, more maneuverable, and more heavily armed than preceding aerial jamming platforms based on transport and attack planes. This allows the Growlers to contribute additional firepower to strike missions, keep up with fighter planes they are escorting, and potentially approach a bit closer to hostile air defenses.China’s aviation engineers have never been too proud to copy a good idea from abroad, usually modified with “Chinese characteristics.” Perhaps it is not surprising that they appear to have devised a Growler of their own.Recommended: How Israel Takes U.S. Weapons and Makes Them Better.Recommended: North Korea’s Most Lethal Weapon Isn’t Nukes. Recommended: 5 Worst Guns Ever Made.The aircraft in question is a variant of the two-seat J-16 Red Eagle strike plane—itself a Chinese copy of the Russian Sukhoi Su-30MKK Flanker. The two-seat Red Eagle is roughly comparable to the American F-15E, and improves upon the Russian original with new avionics including an Active Electronically Scanned Array radar (AESA), the current state of the art in fighter-based radar technology. While China has had major problems developing reliable high-performance jet engines, it’s more successful at producing advanced electronics, perhaps due to crossover with its civilian electronic sector.The J-16D variant—the “D” in the designation comes from the Chinese word for “electronic,” diànzǐ—made its first flight on December 18, 2015. Photos were released to the public three days later. Let’s go over the admittedly short list of what the photo tells us.The J-16D has had its thirty-millimeter cannon and infrared sensor removed; this is not a plane intended to get into short-range dogfights! Instead, there are several new antennas and conformal electronic-warfare arrays along the fuselage. The J-16D’s nose radome is reshaped, possibly to accommodate a more advanced AESA radar. Most importantly, new electronic-warfare pods are mounted on the wingtips that resemble the American ALQ-218 electronic support measure pods on the wingtips of the EA-18G Growler. These are electromagnetic sensors that can analyze radar frequencies and help determine the position of radar-transmitting devices—data that would be highly useful both for jamming radars and for targeting them for destruction.That’s all that’s known for sure—the PLAAF, after all, is not in the habit of giving detailed briefings about its latest fighters. Let’s move on now to the realm of plausible speculation.If the J-16D’s airframe has integrated hardware to make jamming and anti-radar missiles more effective, it probably is designed to use jammers and anti-radar missiles. Most likely, it would carry two to three jamming pods the under the wings and fuselage, each optimized versus different radar frequencies. It is thought that these jammers may also use AESA technology.Even with a maximum load of electronic-warfare gear, the J-16 would have six of its twelve hardpoints free to carry weapons. China has three different types of anti-radiation missiles (ARM), which are designed to home in on enemy radars from afar. The CM-103 missile has a range of sixty-two miles and is probably accurate enough to hit naval and ground targets with its 176-pound warhead. China also has a indigenously developed copy of the Russian Kh-31P missile, known as the YJ-91, which has slightly longer range and also has antiship applications. Finally, there is an LD-10 ARM missile derived from the PL-12 antiaircraft missile. Of course, the J-16D could carry most of the other armaments that the basic Red Eagle fighter can carry on its underwing hardpoints.China already flies another fighter bomber with electronic warfare capabilities, the domestically designed two-seat JH-7 Flying Leopard, around 240 of which serve in the PLA Air Force and Naval Air Force. Capable of long-range operations and maximum speed of Mach 1.75, the Flying Leopard can carry about twenty thousand pounds of munitions, including anti-radar missiles. Both the base JH-7 and upgraded JH-7A have been photographed with jamming pods, which boast multiple jamming transmitters. However, the Flying Leopard lacks electronic warfare equipment integrated in the airframe, and is thus more limited as an electronic-warfare platform than a purpose-designed aircraft.China also maintains a modest fleet of larger, slower aircraft that can provide jamming support at standoff range. These include a couple dozen Y-8GX and Y-9GX transports equipped with tactical jammers and other electronic-warfare gear, and HD-6 electronic-warfare planes based on the H-6 bomber. New Xianglong “Soaring Dragon” drones may also have application as tactical jammers.If Beijing wanted to, it could probably develop a carrier-based equivalent to the J-16D. The J-15 Flying Shark fighters on China’s two Type 001 carriers also share common heritage in the Flanker family of aircraft, and pursuing a similar upgrade of the two-seat J-15SD seems plausible. However, one limitation would be the lower payload that the J-15s can carry, due to the maximum takeoff weight limitations imposed by the Chinese carriers’ ski-jump-style decks. In any case, it is not even clear to what extent the J-16D will be adopted.After all, China is more famous for how its own missile systems serve in its antiaccess/area-denial strategy. Where might China actually confront enemy air defenses? Of course SEAD aircraft would have application in a conflict with Taiwan or, more unlikely, Japan. However, the electronic-warfare aircraft may be most oriented at countering U.S. Navy surface warships, which bristle with SM-2, SM-6 and Sea Sparrow surface-to-air missiles for shooting down both hostile aircraft and antiship missiles. These are especially potent when their firepower and sensors are coordinated by the Aegis combat system, which include vessels in the American, Japanese, South Korean and (soon) Australian navies.For example, this Chinese article argues that JH-7ss using a combination of YJ-91 anti-radar missiles and electronic warfare would pose a “nightmare” for Aegis-equipped ships. Of course, using radar jamming alone is not an automatic “win button” against air defenses. However, jamming does degrade their effective radar detection and targeting ranges, making a swarm of attacking missiles or aircraft more likely to overwhelm the defenses.Beijing is not interested in foreign wars at this time. However, it does seek to alter the military balance of power in the Pacific Ocean. Aircraft like the J-16D suggest the People’s Liberation Army is interested in developing specialized aircraft that will offer China a full spectrum of air-warfare capabilities—just like those of the U.S. military.Sébastien Roblin holds a master’s degree in conflict resolution from Georgetown University and served as a university instructor for the Peace Corps in China. He has also worked in education, editing and refugee resettlement in France and the United States. He currently writes on security and military history for War Is Boring.
from Yahoo News - Latest News & Headlines
If Beijing wanted to, it could probably develop a carrier-based equivalent to the J-16D. The J-15 Flying Shark fighters on China’s two Type 001 carriers also share common heritage in the Flanker family of aircraft, and pursuing a similar upgrade of the two-seat J-15SD seems plausible. However, one limitation would be the lower payload that the J-15s can carry, due to the maximum takeoff weight limitations imposed by the Chinese carriers’ ski-jump-style decks. In any case, it is not even clear to what extent the J-16D will be adopted.The United States Navy’s EA-18G Growler electronic attack fighters are one of a small number of military aircraft types dedicated to the task of jamming—and potentially destroying—hostile radars that could guide deadly surface-to-air missiles against friendly aircraft. This mission is known as Suppression of Enemy Air Defenses (SEAD). Basically, if a modern air force wants to attack an adversary with significant antiaircraft defenses, it needs an effective SEAD game to avoid insupportable losses.(This first appeared several months ago.)The Growler is derived from the F-18 Super Hornet fighter, and is faster, more maneuverable, and more heavily armed than preceding aerial jamming platforms based on transport and attack planes. This allows the Growlers to contribute additional firepower to strike missions, keep up with fighter planes they are escorting, and potentially approach a bit closer to hostile air defenses.China’s aviation engineers have never been too proud to copy a good idea from abroad, usually modified with “Chinese characteristics.” Perhaps it is not surprising that they appear to have devised a Growler of their own.Recommended: How Israel Takes U.S. Weapons and Makes Them Better.Recommended: North Korea’s Most Lethal Weapon Isn’t Nukes. Recommended: 5 Worst Guns Ever Made.The aircraft in question is a variant of the two-seat J-16 Red Eagle strike plane—itself a Chinese copy of the Russian Sukhoi Su-30MKK Flanker. The two-seat Red Eagle is roughly comparable to the American F-15E, and improves upon the Russian original with new avionics including an Active Electronically Scanned Array radar (AESA), the current state of the art in fighter-based radar technology. While China has had major problems developing reliable high-performance jet engines, it’s more successful at producing advanced electronics, perhaps due to crossover with its civilian electronic sector.The J-16D variant—the “D” in the designation comes from the Chinese word for “electronic,” diànzǐ—made its first flight on December 18, 2015. Photos were released to the public three days later. Let’s go over the admittedly short list of what the photo tells us.The J-16D has had its thirty-millimeter cannon and infrared sensor removed; this is not a plane intended to get into short-range dogfights! Instead, there are several new antennas and conformal electronic-warfare arrays along the fuselage. The J-16D’s nose radome is reshaped, possibly to accommodate a more advanced AESA radar. Most importantly, new electronic-warfare pods are mounted on the wingtips that resemble the American ALQ-218 electronic support measure pods on the wingtips of the EA-18G Growler. These are electromagnetic sensors that can analyze radar frequencies and help determine the position of radar-transmitting devices—data that would be highly useful both for jamming radars and for targeting them for destruction.That’s all that’s known for sure—the PLAAF, after all, is not in the habit of giving detailed briefings about its latest fighters. Let’s move on now to the realm of plausible speculation.If the J-16D’s airframe has integrated hardware to make jamming and anti-radar missiles more effective, it probably is designed to use jammers and anti-radar missiles. Most likely, it would carry two to three jamming pods the under the wings and fuselage, each optimized versus different radar frequencies. It is thought that these jammers may also use AESA technology.Even with a maximum load of electronic-warfare gear, the J-16 would have six of its twelve hardpoints free to carry weapons. China has three different types of anti-radiation missiles (ARM), which are designed to home in on enemy radars from afar. The CM-103 missile has a range of sixty-two miles and is probably accurate enough to hit naval and ground targets with its 176-pound warhead. China also has a indigenously developed copy of the Russian Kh-31P missile, known as the YJ-91, which has slightly longer range and also has antiship applications. Finally, there is an LD-10 ARM missile derived from the PL-12 antiaircraft missile. Of course, the J-16D could carry most of the other armaments that the basic Red Eagle fighter can carry on its underwing hardpoints.China already flies another fighter bomber with electronic warfare capabilities, the domestically designed two-seat JH-7 Flying Leopard, around 240 of which serve in the PLA Air Force and Naval Air Force. Capable of long-range operations and maximum speed of Mach 1.75, the Flying Leopard can carry about twenty thousand pounds of munitions, including anti-radar missiles. Both the base JH-7 and upgraded JH-7A have been photographed with jamming pods, which boast multiple jamming transmitters. However, the Flying Leopard lacks electronic warfare equipment integrated in the airframe, and is thus more limited as an electronic-warfare platform than a purpose-designed aircraft.China also maintains a modest fleet of larger, slower aircraft that can provide jamming support at standoff range. These include a couple dozen Y-8GX and Y-9GX transports equipped with tactical jammers and other electronic-warfare gear, and HD-6 electronic-warfare planes based on the H-6 bomber. New Xianglong “Soaring Dragon” drones may also have application as tactical jammers.If Beijing wanted to, it could probably develop a carrier-based equivalent to the J-16D. The J-15 Flying Shark fighters on China’s two Type 001 carriers also share common heritage in the Flanker family of aircraft, and pursuing a similar upgrade of the two-seat J-15SD seems plausible. However, one limitation would be the lower payload that the J-15s can carry, due to the maximum takeoff weight limitations imposed by the Chinese carriers’ ski-jump-style decks. In any case, it is not even clear to what extent the J-16D will be adopted.After all, China is more famous for how its own missile systems serve in its antiaccess/area-denial strategy. Where might China actually confront enemy air defenses? Of course SEAD aircraft would have application in a conflict with Taiwan or, more unlikely, Japan. However, the electronic-warfare aircraft may be most oriented at countering U.S. Navy surface warships, which bristle with SM-2, SM-6 and Sea Sparrow surface-to-air missiles for shooting down both hostile aircraft and antiship missiles. These are especially potent when their firepower and sensors are coordinated by the Aegis combat system, which include vessels in the American, Japanese, South Korean and (soon) Australian navies.For example, this Chinese article argues that JH-7ss using a combination of YJ-91 anti-radar missiles and electronic warfare would pose a “nightmare” for Aegis-equipped ships. Of course, using radar jamming alone is not an automatic “win button” against air defenses. However, jamming does degrade their effective radar detection and targeting ranges, making a swarm of attacking missiles or aircraft more likely to overwhelm the defenses.Beijing is not interested in foreign wars at this time. However, it does seek to alter the military balance of power in the Pacific Ocean. Aircraft like the J-16D suggest the People’s Liberation Army is interested in developing specialized aircraft that will offer China a full spectrum of air-warfare capabilities—just like those of the U.S. military.Sébastien Roblin holds a master’s degree in conflict resolution from Georgetown University and served as a university instructor for the Peace Corps in China. He has also worked in education, editing and refugee resettlement in France and the United States. He currently writes on security and military history for War Is Boring.
August 21, 2019 at 11:24AM via IFTTT
0 notes
espinr · 7 years
Text
The (Activ-IoTy) Controller
Update of the ActivIoTy project for the Eclipse Open IoT Challenge.
Activ-IoTy is composed of Checkpoints (devices that collects competitors' IDs, time-stamps it, and publish it), the MQTT Broker (an instance of Mosquitto Server) and the Controller. The Controller is the component that performs most of the platform's logic.
The Controller is a MQTT subscriber that processes the checkins performed on Checkpoints.
The Controller is basically a Web application that enables competition management, including the processing of checkins performed on checkpoints along the race course. There may be several controllers for different purposes, implementing different features. This controller allow us performing the following tasks:
Features
Athletes Management
Users that can sign-up into the platform and submit their profiles.
Checkpoints Management
Creation/edition of checkpoints. This feature allows describing checkpoints that can be located on a map. Checkpoints are identified by their ID.
Race Definition
Creation/edition of races. We can describe races, including a geo-JSON file with the course and the **list of Checkpoints ** that athletes must visit to complete the race. Checkpoints might require more than a 'checkin' to complete the race (i.e., multi-lap races). This example is limited to just 1 lap.
Obviously, only one Checkpoint can be at the finish line (it has to be selected using a radio button).
Start List Creation
Registered athletes may be included as competitors in specific races. There is an automatic process where selected athletes are included as competitors in a race. Competitors have assigned unique bib identifiers.
Bib identifiers must be linked to RFID tags. For this example, I use this map of unique identifiers (included in the collection identifiers):
[ { bibId: '001', epc: 'E2 00 51 42 05 0F 02 62 16 00 6F 40' }, { bibId: '002', epc: '00 00 00 00 00 00 00 00 00 00 03 11' }, { bibId: '003', epc: '00 00 00 00 00 00 00 00 00 02 49 17' }, { bibId: '004', epc: 'E2 00 51 79 98 18 01 38 02 50 F4 9E' }, { bibId: '005', epc: 'E2 00 51 86 06 0A 01 53 08 00 C3 10' }, { bibId: '006', epc: 'E2 00 51 79 98 18 01 38 01 50 F9 BB' }, { bibId: '007', epc: 'E2 00 30 16 66 13 01 21 15 50 74 EF' }, { bibId: '008', epc: 'E2 00 41 06 21 03 00 32 10 10 AF 41' }, ]
For this prototype, I've populated the database, loading a JSON file directly.
The following picture shows the start list of a race. All athletes shown are the users registered in the system. The administrator may assign bib numbers to athletes directly.
Real-time Competition
Once a race was defined, including the checkpoints assigned to the course, and the start list already created, the competition is almost ready to start. The admin is able to open the 'live results' option. In this screen, a map with the course track and the checkpoints are shown.
At the beginning, the markers representing checkpoints are in red (disabled). Now, the controller is waiting for the ready MQTT messages from checkpoints. As soon as a checkpoint is ready, it sends a {checkpoint-ID}/ready message like this (is the first message the controller received during the example):
TOPIC: Keyboard-2/ready
MESSAGE:
{ "checkpoint" : { "id" : "Keyboard-2" }, "timestamp" : 1519401196 }
Checkpoints are marked in white and their infowindow is shown.
At the right-hand side of the image you can see a terminal connected to the same MQTT broker, waiting for the +/ready messages that are processed by the controller.
The competition starts (the admin presses the 'play' button'). Once the stopwatch is running the controller expects +/checkin messages from the checkpoints along the course. The following GIF shows the moment when competitors arrived at the first checkpoint (ID: Keypad-1).
The first checkpoint is powered by a keypad so the device sends the bib number of the athlete in a message like the following example (it is the same the checkpoint sent when the first athlete did the checkin). In the right-hand side of the video, you can see a terminal with a Mosquitto client waiting for the same +/checkin messages as the controller does).
TOPIC: Keyboard-2/checkin
MESSAGE:
{ "checkpoint" : { "id" : "Keyboard-2" }, "bibID" : "002", "timestamp" : 1519401513 }
The competition may be followed in real time as shown in the full video –the video was speeded up to show just the relevant events: readiness of checkpoints and checkins at all checkpoints. On the right hand side, there are two terminals running Mosquitto subscribers to see the real messages processed by the controller.
Complete video:
[ Check the full video at http://www.youtube.com/watch?v=nTlSV7WbGoE
Results in Open Format
Final results may be exported once the admin considers that the race is finished (other intermediate results could be exported).
This data is served in JSON-LD, following the OpenTrack model. This vocabulary is based on schema.org and is in process of standardisation.
Check the results generated in this example –perhaps the final IRIs does not resolve, it's just an example.
Implementation
The Controller is developed in Meteor, an open source platform for Web, mobile, and desktop applications build in JavaScript. The resulting mobile web application is compatible with all the latest browsers and it has been designed using the responsive web design approach, in concrete through the Materialize CSS framework.
In terms of technology, the application is built in JavaScript and is run on a Node.js server, and a MongoDB as the subjacent database system.
The application is fully operational and you can test it, but it is in an early development phase so it implements exactly the requirements of the pilot.
MQTT for in Javascript
The system uses MQTT.js, a client library for the MQTT protocol. It is written in JavaScript for node.js and any browser. It can be installed through NPM with just the following command:
npm install mqtt --save
Since the application must be subscribed to the MQTT queue, mqtt.js is configured in the server side of Meteor to wait for new messages from checkpoints. During the startup of the Controller, the a new subscription is setup (to topics +/ready and +/checkin. Also the callbacks of these events are configured.
Once a new checkin is detected, the Controller creates a new document on the checkins collection in the database with all the information of the received checkin. Also, when it detects that a checkpoint is ready, a ready flag in the database is updated to true. The concrete code is this:
/* * File at /imports/startup/server/mqtt.js */ import { Meteor } from 'meteor/meteor'; import mqtt from 'mqtt'; import Sntp from 'sntp'; import { Checkpoints } from '../../api/checkpoints/checkpoints.js'; import { Identifiers } from '../../api/identifiers/identifiers.js'; import { Checkins } from '../../api/checkins/checkins.js'; if (Meteor.isServer) { const mqttBroker = { url : 'mqtt://activioty.ddns.net', port: 1883, }; const mqttClient = mqtt.connect(mqttBroker.url, mqttBroker.port); mqttClient.on('connect', () => { const timestamp = Sntp.now(); mqttClient.subscribe({ '+/ready': 1, '+/checkin': 1 }); mqttClient.publish('controller/ready', `{ "checkpoint" : { "id" : "I am the controller :-)"}, "timestamp" : ${timestamp} }`); }); mqttClient.on('message', Meteor.bindEnvironment((topic, message) => { const timestamp = Sntp.now(); console.log(`MQTT Message received [${topic.toString()}] -> ${message.toString()}`); if (topic.includes('/ready')) { // Marks the checkpoint as ready try { const msg = JSON.parse(message.toString()); Checkpoints.update({ identifier: msg.checkpoint.id }, { $set : { ready : true } }, (error, result) => { if (error) { console.log(error); } if (result) { console.log(`${result} Checkpoint ${msg.checkpoint.id} is marked as ready (${msg.timestamp})`); } }); } catch (e) { console.log('I cannot process the readiness of a checkpoint, so I skip it'); } } else if (topic.includes('/checkin')) { // Includes the athlete in the checkins database try { const msg = JSON.parse(message.toString()); const checkpoint = Checkpoints.findOne({ identifier: msg.checkpoint.id }); let identifier; if (msg.epc) { identifier = Identifiers.findOne({ epc: msg.epc }); } else { identifier = Identifiers.findOne({ bibId: msg.bibId }); } const docToInsert = { checkpointId: checkpoint._id, bibIdentifier: identifier.bibId, epc: identifier.epc, timestamp: msg.timestamp, }; Checkins.insert(docToInsert, (error, result) => { if (error) { console.log(error); } if (result) { console.log(`Checkin of Bib Number ${identifier.bibId} at ${checkpoint.name}`); } }); } catch (e) { console.log('I cannot process the checkin in a checkpoint, so I skip it'); } } })); }
The controller will process and work directly with the checkins collection in the database.
mqtt-collection package for Meteor
Another alternative, that was tested but not used in the final solution is mqtt-collection, a MQTT package for Meteor that collects and stores the MQTT messages received. Messages are stored in the MongoDB directly, enabling reactive support for the client side.
This package is easy to use. The following code includes the definition of the MQTT messages collection and establishes the connection with the MQTT broker, indicating the topics.
/* * File at /imports/api/messages/messages.js */ import { Meteor } from 'meteor/meteor'; import { Mongo } from 'meteor/mongo'; export const Messages = new Mongo.Collection('messages'); if (Meteor.isServer) { Messages.mqttConnect('mqtt://activioty.ddns.net:1883', ['+/ready', '+/checkin'], { insert: true }, {}); }
Timing
In order to adjust time to the common NTP servers, the system uses the sntp package. This is a SNTP v4 client (RFC4330) for Node.js. It allows the server connecting to the NTP server and returns the server time along with the roundtrip duration and clock offset. To adjust the local time to the NTP time we would need to add the returned offset to the local time.
The main stopwatch of the application is built with aldeed:clock, An accurate reactive clock package for Meteor that retains elapsed time. Usage is simple and reliable.
This is a summary of the main declarations related to the official stopwatch of the competition:
/* * file at: /imports/ui/components/competition/competition.js */ Template.competitionMain.onCreated(() => { // ... template.CompetitionClock = new ReactiveClock('ExerciseClock'); template.CompetitionClock.setElapsedSeconds(0); // ... } Template.competitionMain.helpers({ stopwatch() { const template = Template.instance(); return template.CompetitionClock.elapsedTime({ format: '00:00:00' }); }, // ... }); Template.competitionMain.events({ 'click #startCompetition-button'(event) { const template = Template.instance(); template.CompetitionClock.start(); template.startTimestamp.set(Sntp.now() / 1000); // ... }, 'click #finishCompetition-button'(event) { const template = Template.instance(); template.CompetitionClock.stop(); template.finishTimestamp = Sntp.now(); // ... }, });
Athlete's Checkins
If the clock is enabled (ongoing competition), the controller system waits for checkin messages. The application runs this code, once a new checkin is included in the database:
Tracker.autorun(() => { // Gets the current Race template.currentRace = Races.findOne({ _id: raceId }); if (template.currentRace && template.currentRace.checkpoints) { template.currentRace.checkpoints.forEach((checkpoint) => { // creates a local array with checkpoints template.checkpoints.push(Checkpoints.findOne({ _id: checkpoint.id })); }); } // If the clock is running if (template.startTimestamp.get() && template.startTimestamp.get() > 0) { template.subscribe('checkins.after', template.startTimestamp.get()); template.checkpoints.forEach((checkpoint) => { const checkinsForCheckpoint = Checkins.find({ checkpointId: checkpoint._id }); if (checkinsForCheckpoint) { checkinsForCheckpoint.forEach((checkin) => { let competitor; if (checkin.epc) { competitor = Competitors.findOne({ epc: checkin.epc }); } else { competitor = Competitors.findOne({ bibId: checkin.bibId }); } const totalTime = checkin.timestamp - template.startTimestamp.get(); // The rest of the logic in the application (show it on a map, store results, etc.) checkinAthlete(template, checkpoint, competitor, totalTime); }); } }); } });
This pilot illustrates how to the data can be processed and visualized. Other services and products on top of it are unlimited.
Deployment and testing
Activ-IoTy Controller is deployed on a UPsquared I have at home.
We have done several tests in the real World.
I'll post the URL of the controller for you to test it if you want.
0 notes