in other/train-to-cloud-city/devices/rfid/utils/firestoreHelpers.js [24:101]
async function setMissionPattern(chunk, reader) {
const motor = await getMotor();
const matchingTag = await getMatchingTag({ chunk });
const proposalRef = db.collection("global").doc("proposal");
const mailboxRef = db.collection("global").doc("input_mailbox");
/**
* PATTERNS TO SELECT FROM
* high complex - 3300348D69E3
* medium complex - 33003558732D
* low complex - 0D0088F32B5D
*/
if (matchingTag?.pattern_slug) {
try {
await proposalRef.set(
{ pattern_slug: matchingTag?.pattern_slug },
{ merge: false },
);
queueMessageToPublish("mission-selected", {
chunk,
pattern_slug: matchingTag?.pattern_slug,
});
console.log(
`Mission has been read: ${JSON.stringify(matchingTag?.pattern_slug)}. Waiting for event input trigger.`,
);
} catch (error) {
console.error(error);
}
return;
}
/**
* EVENT RFID TAG (let's go magic wand)
* check-pattern (GO) - 0D00876E4DA9
* stop 330034B6B607
* reset - 330035D3B96C
*/
if (matchingTag?.event_slug) {
const { event_slug } = matchingTag;
if (event_slug === "check-pattern") {
console.log("Checking pattern ....");
queueMessageToPublish("begin-game", {
pattern_slug: matchingTag?.pattern_slug,
});
try {
await mailboxRef.set({ input: "check_pattern" });
motor?.setPower(25); // move towards station
console.log(
`Input mailbox has been triggered to check pattern and now moving to station.`,
);
} catch (error) {
motor?.stop();
console.error(error);
}
}
if (event_slug === "reset") {
console.log("Admin reset registered.");
try {
motor?.stop();
await mailboxRef.set({ input: "reset" });
motor?.setPower(25);
} catch (error) {
console.error(error);
}
}
if (event_slug === "stop") {
console.log("Admin stop registered.");
motor?.stop();
}
}
}