PK oATWindex.js(function (global, factory) { if (typeof define === "function" && define.amd) { define(["exports"], factory); } else if (typeof exports !== "undefined") { factory(exports); } else { var mod = { exports: {} }; factory(mod.exports); global.unknown = mod.exports; } })(this, function (_exports) { "use strict"; Object.defineProperty(_exports, "__esModule", { value: true }); _exports.default = void 0; !function (global) { "use strict"; var Op = Object.prototype; var hasOwn = Op.hasOwnProperty; var undefined; var $Symbol = typeof Symbol === "function" ? Symbol : {}; var iteratorSymbol = $Symbol.iterator || "@@iterator"; var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; var inModule = typeof module === "object"; var runtime = global.regeneratorRuntime; if (runtime) { if (inModule) { module.exports = runtime; } return; } runtime = global.regeneratorRuntime = inModule ? module.exports || {} : {}; function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; var generator = Object.create(protoGenerator.prototype); var context = new Context(tryLocsList || []); generator._invoke = makeInvokeMethod(innerFn, self, context); return generator; } runtime.wrap = wrap; function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } var GenStateSuspendedStart = "suspendedStart"; var GenStateSuspendedYield = "suspendedYield"; var GenStateExecuting = "executing"; var GenStateCompleted = "completed"; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; IteratorPrototype[iteratorSymbol] = function () { return this; }; var getProto = Object.getPrototypeOf; var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { IteratorPrototype = NativeIteratorPrototype; } var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; GeneratorFunctionPrototype.constructor = GeneratorFunction; GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction"; function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { prototype[method] = function (arg) { return this._invoke(method, arg); }; }); } runtime.isGeneratorFunction = function (genFun) { var ctor = typeof genFun === "function" && genFun.constructor; return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false; }; runtime.mark = function (genFun) { if (Object.setPrototypeOf) { Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); } else { genFun.__proto__ = GeneratorFunctionPrototype; if (!(toStringTagSymbol in genFun)) { genFun[toStringTagSymbol] = "GeneratorFunction"; } } genFun.prototype = Object.create(Gp); return genFun; }; runtime.awrap = function (arg) { return { __await: arg }; }; function AsyncIterator(generator) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if (record.type === "throw") { reject(record.arg); } else { var result = record.arg; var value = result.value; if (value && typeof value === "object" && hasOwn.call(value, "__await")) { return Promise.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }); } return Promise.resolve(value).then(function (unwrapped) { result.value = unwrapped; resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } } var previousPromise; function enqueue(method, arg) { function callInvokeWithMethodAndArg() { return new Promise(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } this._invoke = enqueue; } defineIteratorMethods(AsyncIterator.prototype); AsyncIterator.prototype[asyncIteratorSymbol] = function () { return this; }; runtime.AsyncIterator = AsyncIterator; runtime.async = function (innerFn, outerFn, self, tryLocsList) { var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList)); return runtime.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }; function makeInvokeMethod(innerFn, self, context) { var state = GenStateSuspendedStart; return function invoke(method, arg) { if (state === GenStateExecuting) { throw new Error("Generator is already running"); } if (state === GenStateCompleted) { if (method === "throw") { throw arg; } return doneResult(); } context.method = method; context.arg = arg; while (true) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if (context.method === "next") { context.sent = context._sent = context.arg; } else if (context.method === "throw") { if (state === GenStateSuspendedStart) { state = GenStateCompleted; throw context.arg; } context.dispatchException(context.arg); } else if (context.method === "return") { context.abrupt("return", context.arg); } state = GenStateExecuting; var record = tryCatch(innerFn, self, context); if (record.type === "normal") { state = context.done ? GenStateCompleted : GenStateSuspendedYield; if (record.arg === ContinueSentinel) { continue; } return { value: record.arg, done: context.done }; } else if (record.type === "throw") { state = GenStateCompleted; context.method = "throw"; context.arg = record.arg; } } }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (method === undefined) { context.delegate = null; if (context.method === "throw") { if (delegate.iterator.return) { context.method = "return"; context.arg = undefined; maybeInvokeDelegate(delegate, context); if (context.method === "throw") { return ContinueSentinel; } } context.method = "throw"; context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if (record.type === "throw") { context.method = "throw"; context.arg = record.arg; context.delegate = null; return ContinueSentinel; } var info = record.arg; if (!info) { context.method = "throw"; context.arg = new TypeError("iterator result is not an object"); context.delegate = null; return ContinueSentinel; } if (info.done) { context[delegate.resultName] = info.value; context.next = delegate.nextLoc; if (context.method !== "return") { context.method = "next"; context.arg = undefined; } } else { return info; } context.delegate = null; return ContinueSentinel; } defineIteratorMethods(Gp); Gp[toStringTagSymbol] = "Generator"; Gp[iteratorSymbol] = function () { return this; }; Gp.toString = function () { return "[object Generator]"; }; function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; if (1 in locs) { entry.catchLoc = locs[1]; } if (2 in locs) { entry.finallyLoc = locs[2]; entry.afterLoc = locs[3]; } this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal"; delete record.arg; entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }]; tryLocsList.forEach(pushTryEntry, this); this.reset(true); } runtime.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } keys.reverse(); return function next() { while (keys.length) { var key = keys.pop(); if (key in object) { next.value = key; next.done = false; return next; } } next.done = true; return next; }; }; function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) { return iteratorMethod.call(iterable); } if (typeof iterable.next === "function") { return iterable; } if (!isNaN(iterable.length)) { var i = -1, next = function next() { while (++i < iterable.length) { if (hasOwn.call(iterable, i)) { next.value = iterable[i]; next.done = false; return next; } } next.value = undefined; next.done = true; return next; }; return next.next = next; } } return { next: doneResult }; } runtime.values = values; function doneResult() { return { value: undefined, done: true }; } Context.prototype = { constructor: Context, reset: function (skipTempReset) { this.prev = 0; this.next = 0; this.sent = this._sent = undefined; this.done = false; this.delegate = null; this.method = "next"; this.arg = undefined; this.tryEntries.forEach(resetTryEntry); if (!skipTempReset) { for (var name in this) { if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { this[name] = undefined; } } } }, stop: function () { this.done = true; var rootEntry = this.tryEntries[0]; var rootRecord = rootEntry.completion; if (rootRecord.type === "throw") { throw rootRecord.arg; } return this.rval; }, dispatchException: function (exception) { if (this.done) { throw exception; } var context = this; function handle(loc, caught) { record.type = "throw"; record.arg = exception; context.next = loc; if (caught) { context.method = "next"; context.arg = undefined; } return !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; var record = entry.completion; if (entry.tryLoc === "root") { return handle("end"); } if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"); var hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) { return handle(entry.catchLoc, true); } else if (this.prev < entry.finallyLoc) { return handle(entry.finallyLoc); } } else if (hasCatch) { if (this.prev < entry.catchLoc) { return handle(entry.catchLoc, true); } } else if (hasFinally) { if (this.prev < entry.finallyLoc) { return handle(entry.finallyLoc); } } else { throw new Error("try statement without catch or finally"); } } } }, abrupt: function (type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { finallyEntry = null; } var record = finallyEntry ? finallyEntry.completion : {}; record.type = type; record.arg = arg; if (finallyEntry) { this.method = "next"; this.next = finallyEntry.finallyLoc; return ContinueSentinel; } return this.complete(record); }, complete: function (record, afterLoc) { if (record.type === "throw") { throw record.arg; } if (record.type === "break" || record.type === "continue") { this.next = record.arg; } else if (record.type === "return") { this.rval = this.arg = record.arg; this.method = "return"; this.next = "end"; } else if (record.type === "normal" && afterLoc) { this.next = afterLoc; } return ContinueSentinel; }, finish: function (finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) { this.complete(entry.completion, entry.afterLoc); resetTryEntry(entry); return ContinueSentinel; } } }, "catch": function (tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if (record.type === "throw") { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function (iterable, resultName, nextLoc) { this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }; if (this.method === "next") { this.arg = undefined; } return ContinueSentinel; } }; }(function () { return this || typeof self === "object" && self; }() || Function("return this")()); const disableBlocks = { debug: [], upload: [] }; const mustLoginBlocks = []; const triggerBlocksStatus = async (mode, app) => {}; class ExtImpl {} const extTranslationMap = { "zh": { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }, "de": { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }, "es": { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }, "fr": { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }, "id": { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }, "ja": { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }, "ja-jph": { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }, "ko": { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }, "pl": { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }, "uk": { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }, "zh-hant": { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }, "nl": { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }, "it": { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }, "hr": { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }, "ru": { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }, "pt": { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }, "fi": { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }, "tr": { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }, "tk": { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }, "en": { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" } }; const codeSnippets = { arduinoc: {} }; const extGenerators = [{ lang: 'arduinoc', template: `// generated by mBlock5 for // codes make you happy //( include //) #include //( lib //) //({ this.$ALL_VARIABLES.length==0?'':this.$ALL_VARIABLES.map(v=>"float "+v+" = 0;").join('\\n') }//) //( declare //) void _delay(float seconds) { long endTime = millis() + seconds * 1000; while(millis() < endTime) _loop(); } //( void setup() { //( setup //) //( code //) } //) void _loop() { //( _loop //) } void loop() { _loop(); }`, splitor: { frame: { left: "//(", right: "//)" }, expression: { left: "/*{", right: "}*/" } }, reducers: [{ name: 'include', reduce: codes => { let codes1 = []; for (let code of codes) { let codeStr = ''; if (typeof code === 'string') { codeStr = code; } else if (typeof code === 'function') { codeStr = code(); } if (codes1.indexOf(codeStr) === -1) { codes1.push(codeStr); } } if (codes1.length === 0) { return undefined; } return codes1.map(code => { return '#include ' + code; }).join('\n') + '\n'; } }] }]; const extSources = { arduino: [] }; const extFacePanels = {}; const ExtHandler = { onLoad: function onLoad(app, target) { const that = this; if (!that.__workerSetupInstance) { that.__workerSetupInstance = that.workerSetup({ app }).then(() => { that.worker.remote.runExtension('onLoad', target.id); }); } }, onUnload: function onUnload(app) { this.__workerSetupInstance = null; this.worker.remote.runExtension('onUnload'); this.worker.dispose(); }, onConnect: function onConnect(app, device) { this.worker.remote.runExtension('onConnect', device.id); }, onDisconnect: function onDisconnect(app, device) { this.worker.remote.runExtension('onDisconnect', device.id); }, onStopAll: function onStopAll(app, device) { this.worker.remote.runExtension('onStopAll', device.id); }, beforeChangeUploadMode: function beforeChangeUploadMode(app, device) { return this.worker.remote.runExtension('beforeChangeUploadMode', device.id); }, beforeChangeDebugMode: function beforeChangeDebugMode(app, device) { return this.worker.remote.runExtension('beforeChangeDebugMode', device.id); }, afterChangeUploadMode: function afterChangeUploadMode(app, device) { this.worker.remote.runExtension('afterChangeUploadMode', device.id); }, afterChangeDebugMode: function afterChangeDebugMode(app, device) { this.worker.remote.runExtension('afterChangeDebugMode', device.id); }, onSelect: function onSelect(app, device) { if (!this.worker) { setTimeout(() => { this.onSelect(app, device); }, 200); return; } this.worker.remote.runExtension('onSelect', device.id); }, onUnselect: function onUnselect(app, device) { this.worker.remote.runExtension('onUnselect', device.id); }, beforeCodeUpload: function beforeCodeUpload(app, device) { this.worker.remote.runExtension('beforeCodeUpload', device.id); }, afterCodeUpload: function afterCodeUpload(app, device) { this.worker.remote.runExtension('afterCodeUpload', device.id); }, onRead: function onRead(app, device) { this.worker.remote.runExtension('onRead', device.id); }, beforeFirmwareUpdate: function beforeFirmwareUpdate(app, device) { this.worker.remote.runExtension('beforeFirmwareUpdate', device.id); }, afterFirmwareUpdate: function afterFirmwareUpdate(app, device) { this.worker.remote.runExtension('afterFirmwareUpdate', device.id); } }; class ExtVdrGroveRfid { constructor() { this.checkFirmwareInForce = typeof checkFirmwareInForce !== 'undefined' ? checkFirmwareInForce : false; const handlerProxyUrl = window.MbApi.getExtResPath('vdr_grove_rfid/handlerProxy.js', 'vdr_grove_rfid'); const that = this; that.workerSetup = async function (exports) { that.worker = await window.__web_worker_rpc.create(handlerProxyUrl, exports).then(worker => { worker.CONFIG.TIMEOUT = 42000; worker.CONFIG.HEARTBEAT = 4200; worker.onFail = () => { that.worker = null; that.workerSetup(exports); const app = exports.app; if (app) { app.workspace.resetEvents(); } }; return worker; }); }; this.funcs = { 'BLOCK_1653808754555': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1653808754555', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1653808754900': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1653808754900', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1653808755176': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1653808755176', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1653808756003': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1653808756003', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1653808756290': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1653808756290', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1653808757146': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1653808757146', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1653808757484': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1653808757484', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1653808757833': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1653808757833', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1653808758086': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1653808758086', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1653808758323': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1653808758323', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } } }; } getInfo() { return { "id": "vdr_grove_rfid", "targets": [{ "name": "arduino_mega2560", "options": { "upload": { "middlewares": [{ "name": "arduino", "params": { "sources": extSources.arduino } }] } } }, { "name": "arduino_uno", "options": { "upload": { "middlewares": [{ "name": "arduino", "params": { "sources": extSources.arduino } }] } } }], "codeTypes": ["arduinoc"], "version": "1.0.0", "platform": ["mblockpc"], "categories": [{ "name": "cate_a599acce", "colors": ["#42CCFF", "#22C3FF", "#02BBFF"], "menuIconURI": "", "blockIcon": { "type": "image", "width": 28, "height": 26, "src": window.MbApi.getExtResPath('vdr_grove_rfid/imgs/d90f3d055c154c74b909c43a1845f3a9.png', 'vdr_grove_rfid') }, "blocks": [{ "opcode": "BLOCK_1653808754555", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "pinDigit": { "type": "fieldMenu", "defaultValue": "2", "menu": "BLOCK_1653808754555_PINDIGIT" } }, "branchCount": 0, "codes": { "arduinoc": { "sections": { "declare": `SoftwareSerial rfid = SoftwareSerial(/*{pinDigit}*/ , /*{pinDigit}*/ +1);\r\nString curRFIDtag;\r\nint curIndex=0;\r\nint index=0;\r\n\r\nstruct RFIDuser\r\n{\r\n String userName;\r\n String RFIDtag;\r\n String strList;\r\n String strType;\r\n};\r\nRFIDuser RFIDusers[10];\r\n\r\nvoid RFIDFlush(){\r\n //vidage des données qui reste dans le lecteur\r\n while(rfid.available()){\r\n rfid.read();\r\n }\r\n}`, "setup": `rfid.begin(9600);` } } }, "handler": this.funcs.BLOCK_1653808754555 }, { "opcode": "BLOCK_1653808754900", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "RFIDtag": { "type": "string", "defaultValue": "" }, "userName": { "type": "string", "defaultValue": "" }, "strType": { "type": "string", "defaultValue": "" }, "strList": { "type": "string", "defaultValue": "" } }, "branchCount": 0, "codes": { "arduinoc": { "code": `RFIDusers[curIndex].userName=/*{userName}*/;\r\nRFIDusers[curIndex].RFIDtag=/*{RFIDtag}*/;\r\nRFIDusers[curIndex].strList=/*{strList}*/;\r\nRFIDusers[curIndex].strType=/*{strType}*/;\r\ncurIndex++;` } }, "handler": this.funcs.BLOCK_1653808754900 }, { "opcode": "BLOCK_1653808755176", "blockType": "boolean", "checkboxInFlyout": false, "gap": 12, "arguments": {}, "branchCount": 0, "codes": { "arduinoc": { "code": `rfid.available()` } }, "handler": this.funcs.BLOCK_1653808755176 }, { "opcode": "BLOCK_1653808756003", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": {}, "branchCount": 0, "codes": { "arduinoc": { "code": `RFIDread();`, "sections": { "declare": `void RFIDread(){\r\n long int RFIDtag=0;\r\n int count=0;\r\n int readInt=0;\r\n char readStr;\r\n while(rfid.available()){\r\n readStr = rfid.read();\r\n count++ ;\r\n if (count > 4 && count < 12){\r\n if (readStr >= '0' && readStr <= '9') readInt = readStr - '0';\r\n else if(readStr >= 'A' && readStr <= 'F') readInt = readStr - 'A' + 10;\r\n RFIDtag = RFIDtag*16 + readInt;\r\n }\r\n delay(2);\r\n }\r\n curRFIDtag = \"000\" + String(RFIDtag);\r\n}` } } }, "handler": this.funcs.BLOCK_1653808756003 }, { "opcode": "BLOCK_1653808756290", "blockType": "string", "checkboxInFlyout": false, "gap": 12, "arguments": {}, "branchCount": 0, "codes": { "arduinoc": { "code": `curRFIDtag` } }, "handler": this.funcs.BLOCK_1653808756290 }, { "opcode": "BLOCK_1653808757146", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "RFIDtag": { "type": "string", "defaultValue": "" }, "type": { "type": "fieldMenu", "defaultValue": "2", "menu": "BLOCK_1653808757146_TYPE" }, "val": { "type": "string", "defaultValue": "" } }, "branchCount": 0, "codes": { "arduinoc": { "code": `RFID_setValue(/*{RFIDtag}*/,/*{type}*/, /*{val}*/);\r`, "sections": { "declare": `void RFID_setValue(String RFIDtag, int RegType, String Value){\r\n for(int i=0; i<11; i++){\r\n if (RFIDusers[i].RFIDtag==RFIDtag){\r\n switch (RegType) {\r\n case 0:\r\n RFIDusers[i].userName=Value;\r\n break;\r\n case 1:\r\n RFIDusers[i].strType=Value;\r\n break;\r\n case 2:\r\n RFIDusers[i].strList=Value;\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n\r` } } }, "handler": this.funcs.BLOCK_1653808757146 }, { "opcode": "BLOCK_1653808757484", "blockType": "string", "checkboxInFlyout": false, "gap": 12, "arguments": { "RFIDtag": { "type": "string", "defaultValue": "" }, "type": { "type": "fieldMenu", "defaultValue": "0", "menu": "BLOCK_1653808757484_TYPE" } }, "branchCount": 0, "codes": { "arduinoc": { "code": `RFID_getValue(/*{RFIDtag}*/, /*{type}*/)`, "sections": { "declare": `String RFID_getValue(String RFIDtag, int RegType){\r\n for(int i=0; i<11; i++){\r\n if (RFIDusers[i].RFIDtag==RFIDtag){\r\n switch (RegType) {\r\n case 0:\r\n return RFIDusers[i].userName;\r\n break;\r\n case 1:\r\n return RFIDusers[i].strType;\r\n break;\r\n case 2:\r\n return RFIDusers[i].strList;\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n\r` } } }, "handler": this.funcs.BLOCK_1653808757484 }, { "opcode": "BLOCK_1653808757833", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": {}, "branchCount": 0, "codes": { "arduinoc": { "code": `while(!rfid.available()){\r\n}` } }, "handler": this.funcs.BLOCK_1653808757833 }, { "opcode": "BLOCK_1653808758086", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "value": { "type": "string", "defaultValue": "" } }, "branchCount": 0, "codes": { "arduinoc": { "code": "RFID_memTag=String(/*{value}*/);", "sections": { "declare": `String RFID_memTag;` } } }, "handler": this.funcs.BLOCK_1653808758086 }, { "opcode": "BLOCK_1653808758323", "blockType": "string", "checkboxInFlyout": false, "gap": 12, "arguments": {}, "branchCount": 0, "codes": { "arduinoc": { "code": "RFID_memTag" } }, "handler": this.funcs.BLOCK_1653808758323 }], "menus": { "BLOCK_1653808754555_PINDIGIT": [{ "text": "BLOCK_1653808754555_PINDIGIT_0", "value": "2" }, { "text": "BLOCK_1653808754555_PINDIGIT_1", "value": "3" }, { "text": "BLOCK_1653808754555_PINDIGIT_2", "value": "4" }, { "text": "BLOCK_1653808754555_PINDIGIT_3", "value": "5" }, { "text": "BLOCK_1653808754555_PINDIGIT_4", "value": "6" }, { "text": "BLOCK_1653808754555_PINDIGIT_5", "value": "7" }, { "text": "BLOCK_1653808754555_PINDIGIT_6", "value": "8" }], "BLOCK_1653808757146_TYPE": [{ "text": "BLOCK_1653808757146_TYPE_0", "value": "0" }, { "text": "BLOCK_1653808757146_TYPE_1", "value": "2" }, { "text": "BLOCK_1653808757146_TYPE_2", "value": "1" }], "BLOCK_1653808757484_TYPE": [{ "text": "BLOCK_1653808757484_TYPE_0", "value": "0" }, { "text": "BLOCK_1653808757484_TYPE_1", "value": "2" }, { "text": "BLOCK_1653808757484_TYPE_2", "value": "1" }] } }], "generators": extGenerators, "translationMap": extTranslationMap, "snippets": codeSnippets, "generatorStartBlocks": [], "feature": ["worker"], "mustLoginBlocks": [], "disabledOffline": [], "disabledOnline": [] }; } getHandler() { if (typeof ExtHandler === 'object') { return ExtHandler; } else if (typeof ExtHandler === 'function') { return new ExtHandler(); } } } var _default = ExtVdrGroveRfid; _exports.default = _default; });PK oAT,@m5m5handlerProxy.js"use strict";function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg),value=info.value}catch(error){return void reject(error)}info.done?resolve(value):Promise.resolve(value).then(_next,_throw)}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}var gen=fn.apply(self,args);_next(void 0)})}}function _instanceof(left,right){return null!=right&&"undefined"!=typeof Symbol&&right[Symbol.hasInstance]?!!right[Symbol.hasInstance](left):left instanceof right}function _typeof(obj){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj},_typeof(obj)}self.rpc.CONFIG.TIMEOUT=42e3,self.rpc.CONFIG.HEARTBEAT=4200;var __context={app:self.rpc.remote.app,getDevice:function(deviceId){return new Proxy({},{get:function get(target,name){return"id"==name?deviceId:function(){for(var runDevice=__context.app.runDevice,_len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return runDevice.apply(void 0,[deviceId,name].concat(args))}}})}};!function(global){"use strict";function wrap(innerFn,outerFn,self,tryLocsList){var protoGenerator=outerFn&&_instanceof(outerFn.prototype,Generator)?outerFn:Generator,generator=Object.create(protoGenerator.prototype),context=new Context(tryLocsList||[]);return generator._invoke=makeInvokeMethod(innerFn,self,context),generator}function tryCatch(fn,obj,arg){try{return{type:"normal",arg:fn.call(obj,arg)}}catch(err){return{type:"throw",arg:err}}}function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}function defineIteratorMethods(prototype){["next","throw","return"].forEach(function(method){prototype[method]=function(arg){return this._invoke(method,arg)}})}function AsyncIterator(generator){function invoke(method,arg,resolve,reject){var record=tryCatch(generator[method],generator,arg);if("throw"===record.type)reject(record.arg);else{var result=record.arg,value=result.value;return value&&"object"===_typeof(value)&&hasOwn.call(value,"__await")?Promise.resolve(value.__await).then(function(value){invoke("next",value,resolve,reject)},function(err){invoke("throw",err,resolve,reject)}):Promise.resolve(value).then(function(unwrapped){result.value=unwrapped,resolve(result)},function(error){return invoke("throw",error,resolve,reject)})}}function enqueue(method,arg){function callInvokeWithMethodAndArg(){return new Promise(function(resolve,reject){invoke(method,arg,resolve,reject)})}return previousPromise=previousPromise?previousPromise.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}var previousPromise;this._invoke=enqueue}function makeInvokeMethod(innerFn,self,context){var state="suspendedStart";return function(method,arg){if(state==="executing")throw new Error("Generator is already running");if("completed"===state){if("throw"===method)throw arg;return doneResult()}for(context.method=method,context.arg=arg;;){var delegate=context.delegate;if(delegate){var delegateResult=maybeInvokeDelegate(delegate,context);if(delegateResult){if(delegateResult===ContinueSentinel)continue;return delegateResult}}if("next"===context.method)context.sent=context._sent=context.arg;else if("throw"===context.method){if("suspendedStart"===state)throw state="completed",context.arg;context.dispatchException(context.arg)}else"return"===context.method&&context.abrupt("return",context.arg);state="executing";var record=tryCatch(innerFn,self,context);if("normal"===record.type){if(state=context.done?"completed":"suspendedYield",record.arg===ContinueSentinel)continue;return{value:record.arg,done:context.done}}"throw"===record.type&&(state="completed",context.method="throw",context.arg=record.arg)}}}function maybeInvokeDelegate(delegate,context){var method=delegate.iterator[context.method];if(void 0===method){if(context.delegate=null,"throw"===context.method){if(delegate.iterator.return&&(context.method="return",context.arg=void 0,maybeInvokeDelegate(delegate,context),"throw"===context.method))return ContinueSentinel;context.method="throw",context.arg=new TypeError("The iterator does not provide a 'throw' method")}return ContinueSentinel}var record=tryCatch(method,delegate.iterator,context.arg);if("throw"===record.type)return context.method="throw",context.arg=record.arg,context.delegate=null,ContinueSentinel;var info=record.arg;if(!info)return context.method="throw",context.arg=new TypeError("iterator result is not an object"),context.delegate=null,ContinueSentinel;if(info.done)context[delegate.resultName]=info.value,context.next=delegate.nextLoc,"return"!==context.method&&(context.method="next",context.arg=void 0);else return info;return context.delegate=null,ContinueSentinel}function pushTryEntry(locs){var entry={tryLoc:locs[0]};1 in locs&&(entry.catchLoc=locs[1]),2 in locs&&(entry.finallyLoc=locs[2],entry.afterLoc=locs[3]),this.tryEntries.push(entry)}function resetTryEntry(entry){var record=entry.completion||{};record.type="normal",delete record.arg,entry.completion=record}function Context(tryLocsList){this.tryEntries=[{tryLoc:"root"}],tryLocsList.forEach(pushTryEntry,this),this.reset(!0)}function values(iterable){if(iterable){var iteratorMethod=iterable[iteratorSymbol];if(iteratorMethod)return iteratorMethod.call(iterable);if("function"==typeof iterable.next)return iterable;if(!isNaN(iterable.length)){var i=-1,next=function next(){for(;++i= 0; --i) { var entry = this.tryEntries[i]; var record = entry.completion; if (entry.tryLoc === "root") { return handle("end") } if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"); var hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) { return handle(entry.catchLoc, true) } else if (this.prev < entry.finallyLoc) { return handle(entry.finallyLoc) } } else if (hasCatch) { if (this.prev < entry.catchLoc) { return handle(entry.catchLoc, true) } } else if (hasFinally) { if (this.prev < entry.finallyLoc) { return handle(entry.finallyLoc) } } else { throw new Error("try statement without catch or finally") } } } }, abrupt: function(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break } } if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { finallyEntry = null } var record = finallyEntry ? finallyEntry.completion : {}; record.type = type; record.arg = arg; if (finallyEntry) { this.method = "next"; this.next = finallyEntry.finallyLoc; return ContinueSentinel } return this.complete(record) }, complete: function(record, afterLoc) { if (record.type === "throw") { throw record.arg } if (record.type === "break" || record.type === "continue") { this.next = record.arg } else if (record.type === "return") { this.rval = this.arg = record.arg; this.method = "return"; this.next = "end" } else if (record.type === "normal" && afterLoc) { this.next = afterLoc } return ContinueSentinel }, finish: function(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) { this.complete(entry.completion, entry.afterLoc); resetTryEntry(entry); return ContinueSentinel } } }, "catch": function(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if (record.type === "throw") { var thrown = record.arg; resetTryEntry(entry) } return thrown } } throw new Error("illegal catch attempt") }, delegateYield: function(iterable, resultName, nextLoc) { this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }; if (this.method === "next") { this.arg = undefined } return ContinueSentinel } } }(function() { return this || typeof self === "object" && self }() || Function("return this")()); // enter your javascript code here const disableBlocks = { debug: [], upload: [] }; const mustLoginBlocks = []; const triggerBlocksStatus = async (mode, app) => {} class ExtVdrGroveRfid { constructor() { this.funcs = { 'BLOCK_1653808754555': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1653808754555', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1653808754900': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1653808754900', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1653808755176': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1653808755176', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1653808756003': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1653808756003', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1653808756290': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1653808756290', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1653808757146': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1653808757146', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1653808757484': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1653808757484', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1653808757833': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1653808757833', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1653808758086': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1653808758086', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1653808758323': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1653808758323', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } } }; } getInfo() { return { "id": "vdr_grove_rfid", "targets": [{ "name": "arduino_mega2560", "options": { "upload": { "middlewares": [{ "name": "arduino", "params": { "sources": extSources.arduino } }] } } }, { "name": "arduino_uno", "options": { "upload": { "middlewares": [{ "name": "arduino", "params": { "sources": extSources.arduino } }] } } } ], "codeTypes": [ "arduinoc" ], "version": "1.0.0", "platform": [ "mblockpc" ], "categories": cates(facepanels), "generators": extGenerators, "translationMap": extTranslationMap, "snippets": codeSnippets, "generatorStartBlocks": [], "feature": [ "worker" ], "mustLoginBlocks": [], "disabledOffline": [], "disabledOnline": [] }; } getHandler() { if (typeof extHandler === 'object') { return extHandler; } else if (typeof extHandler === 'function') { return new extHandler(); } } } export default ExtVdrGroveRfid;PK oAT"v&&src/snippets.jsexport default [ "arduinoc: {}" ];PK oATI~src/generators.jsexport default [({ lang: 'arduinoc', template: `// generated by mBlock5 for // codes make you happy //( include //) #include //( lib //) //({ this.$ALL_VARIABLES.length==0?'':this.$ALL_VARIABLES.map(v=>"float "+v+" = 0;").join('\\n') }//) //( declare //) void _delay(float seconds) { long endTime = millis() + seconds * 1000; while(millis() < endTime) _loop(); } //( void setup() { //( setup //) //( code //) } //) void _loop() { //( _loop //) } void loop() { _loop(); }`, splitor: { frame: { left: "//(", right: "//)", }, expression: { left: "/*{", right: "}*/", } }, reducers: [{ name: 'include', reduce: (codes) => { let codes1 = [] for (let code of codes) { let codeStr = ''; if (typeof code === 'string') { codeStr = code; } else if (typeof code === 'function') { codeStr = code(); } if (codes1.indexOf(codeStr) === -1) { codes1.push(codeStr); } } if (codes1.length === 0) { return undefined; } return codes1.map(code => { return '#include ' + code; }).join('\n') + '\n' } }] })];PK oAT)src/arduinosources.jsexport default [];PK oATEsrc/facepanels.jsexport default {};PK oAT_[[src/exthandler.jsconst ExtHandler = { // when extension is loaded onLoad(app, target) {}, // when extension is unloaded onUnload(app) { // TODO }, // when device is connected onConnect(app, device) { // TODO }, // when device is disconnected onDisconnect(app, device) { // TODO }, // when stop button is clicked onStopAll(app, device) { // TODO }, // before switch to upload mode beforeChangeUploadMode(app, device) { // TODO return true; }, // before switch to debug mode beforeChangeDebugMode(app, device) { // TODO return true; }, // after switched to upload mode afterChangeUploadMode(app, device) { // TODO return true; }, // after switched to debug mode afterChangeDebugMode(app, device) { // TODO return true; }, // when device is selected onSelect(app, device) { // TODO }, // when device is unselected onUnselect(app, device) { // TODO }, // before upload code beforeCodeUpload(app, device) { // TODO }, // after code uploaded afterCodeUpload(app, device) { // TODO }, // when receiving and reading byte onRead(app, device) { // TODO } } export default ExtHandler;PK oATITEEsrc/handlerProxy.jsself.rpc.CONFIG.TIMEOUT = 42000; self.rpc.CONFIG.HEARTBEAT = 4200; const __context = { app: self.rpc.remote.app, getDevice: function getDevice(deviceId) { return new Proxy({}, { get(target, name) { if (name == "id") { return deviceId; } return function (...args) { let runDevice = __context.app.runDevice; return runDevice(deviceId, name, ...args); }; } }); } }; !function (global) { "use strict"; var Op = Object.prototype; var hasOwn = Op.hasOwnProperty; var undefined; var $Symbol = typeof Symbol === "function" ? Symbol : {}; var iteratorSymbol = $Symbol.iterator || "@@iterator"; var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; var inModule = typeof module === "object"; var runtime = global.regeneratorRuntime; if (runtime) { if (inModule) { module.exports = runtime; } return; } runtime = global.regeneratorRuntime = inModule ? module.exports || {} : {}; function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; var generator = Object.create(protoGenerator.prototype); var context = new Context(tryLocsList || []); generator._invoke = makeInvokeMethod(innerFn, self, context); return generator; } runtime.wrap = wrap; function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } var GenStateSuspendedStart = "suspendedStart"; var GenStateSuspendedYield = "suspendedYield"; var GenStateExecuting = "executing"; var GenStateCompleted = "completed"; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; IteratorPrototype[iteratorSymbol] = function () { return this; }; var getProto = Object.getPrototypeOf; var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { IteratorPrototype = NativeIteratorPrototype; } var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; GeneratorFunctionPrototype.constructor = GeneratorFunction; GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction"; function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { prototype[method] = function (arg) { return this._invoke(method, arg); }; }); } runtime.isGeneratorFunction = function (genFun) { var ctor = typeof genFun === "function" && genFun.constructor; return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false; }; runtime.mark = function (genFun) { if (Object.setPrototypeOf) { Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); } else { genFun.__proto__ = GeneratorFunctionPrototype; if (!(toStringTagSymbol in genFun)) { genFun[toStringTagSymbol] = "GeneratorFunction"; } } genFun.prototype = Object.create(Gp); return genFun; }; runtime.awrap = function (arg) { return { __await: arg }; }; function AsyncIterator(generator) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if (record.type === "throw") { reject(record.arg); } else { var result = record.arg; var value = result.value; if (value && typeof value === "object" && hasOwn.call(value, "__await")) { return Promise.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }); } return Promise.resolve(value).then(function (unwrapped) { result.value = unwrapped; resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } } var previousPromise; function enqueue(method, arg) { function callInvokeWithMethodAndArg() { return new Promise(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } this._invoke = enqueue; } defineIteratorMethods(AsyncIterator.prototype); AsyncIterator.prototype[asyncIteratorSymbol] = function () { return this; }; runtime.AsyncIterator = AsyncIterator; runtime.async = function (innerFn, outerFn, self, tryLocsList) { var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList)); return runtime.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }; function makeInvokeMethod(innerFn, self, context) { var state = GenStateSuspendedStart; return function invoke(method, arg) { if (state === GenStateExecuting) { throw new Error("Generator is already running"); } if (state === GenStateCompleted) { if (method === "throw") { throw arg; } return doneResult(); } context.method = method; context.arg = arg; while (true) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if (context.method === "next") { context.sent = context._sent = context.arg; } else if (context.method === "throw") { if (state === GenStateSuspendedStart) { state = GenStateCompleted; throw context.arg; } context.dispatchException(context.arg); } else if (context.method === "return") { context.abrupt("return", context.arg); } state = GenStateExecuting; var record = tryCatch(innerFn, self, context); if (record.type === "normal") { state = context.done ? GenStateCompleted : GenStateSuspendedYield; if (record.arg === ContinueSentinel) { continue; } return { value: record.arg, done: context.done }; } else if (record.type === "throw") { state = GenStateCompleted; context.method = "throw"; context.arg = record.arg; } } }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (method === undefined) { context.delegate = null; if (context.method === "throw") { if (delegate.iterator.return) { context.method = "return"; context.arg = undefined; maybeInvokeDelegate(delegate, context); if (context.method === "throw") { return ContinueSentinel; } } context.method = "throw"; context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if (record.type === "throw") { context.method = "throw"; context.arg = record.arg; context.delegate = null; return ContinueSentinel; } var info = record.arg; if (!info) { context.method = "throw"; context.arg = new TypeError("iterator result is not an object"); context.delegate = null; return ContinueSentinel; } if (info.done) { context[delegate.resultName] = info.value; context.next = delegate.nextLoc; if (context.method !== "return") { context.method = "next"; context.arg = undefined; } } else { return info; } context.delegate = null; return ContinueSentinel; } defineIteratorMethods(Gp); Gp[toStringTagSymbol] = "Generator"; Gp[iteratorSymbol] = function () { return this; }; Gp.toString = function () { return "[object Generator]"; }; function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; if (1 in locs) { entry.catchLoc = locs[1]; } if (2 in locs) { entry.finallyLoc = locs[2]; entry.afterLoc = locs[3]; } this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal"; delete record.arg; entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }]; tryLocsList.forEach(pushTryEntry, this); this.reset(true); } runtime.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } keys.reverse(); return function next() { while (keys.length) { var key = keys.pop(); if (key in object) { next.value = key; next.done = false; return next; } } next.done = true; return next; }; }; function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) { return iteratorMethod.call(iterable); } if (typeof iterable.next === "function") { return iterable; } if (!isNaN(iterable.length)) { var i = -1, next = function next() { while (++i < iterable.length) { if (hasOwn.call(iterable, i)) { next.value = iterable[i]; next.done = false; return next; } } next.value = undefined; next.done = true; return next; }; return next.next = next; } } return { next: doneResult }; } runtime.values = values; function doneResult() { return { value: undefined, done: true }; } Context.prototype = { constructor: Context, reset: function (skipTempReset) { this.prev = 0; this.next = 0; this.sent = this._sent = undefined; this.done = false; this.delegate = null; this.method = "next"; this.arg = undefined; this.tryEntries.forEach(resetTryEntry); if (!skipTempReset) { for (var name in this) { if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { this[name] = undefined; } } } }, stop: function () { this.done = true; var rootEntry = this.tryEntries[0]; var rootRecord = rootEntry.completion; if (rootRecord.type === "throw") { throw rootRecord.arg; } return this.rval; }, dispatchException: function (exception) { if (this.done) { throw exception; } var context = this; function handle(loc, caught) { record.type = "throw"; record.arg = exception; context.next = loc; if (caught) { context.method = "next"; context.arg = undefined; } return !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; var record = entry.completion; if (entry.tryLoc === "root") { return handle("end"); } if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"); var hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) { return handle(entry.catchLoc, true); } else if (this.prev < entry.finallyLoc) { return handle(entry.finallyLoc); } } else if (hasCatch) { if (this.prev < entry.catchLoc) { return handle(entry.catchLoc, true); } } else if (hasFinally) { if (this.prev < entry.finallyLoc) { return handle(entry.finallyLoc); } } else { throw new Error("try statement without catch or finally"); } } } }, abrupt: function (type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { finallyEntry = null; } var record = finallyEntry ? finallyEntry.completion : {}; record.type = type; record.arg = arg; if (finallyEntry) { this.method = "next"; this.next = finallyEntry.finallyLoc; return ContinueSentinel; } return this.complete(record); }, complete: function (record, afterLoc) { if (record.type === "throw") { throw record.arg; } if (record.type === "break" || record.type === "continue") { this.next = record.arg; } else if (record.type === "return") { this.rval = this.arg = record.arg; this.method = "return"; this.next = "end"; } else if (record.type === "normal" && afterLoc) { this.next = afterLoc; } return ContinueSentinel; }, finish: function (finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) { this.complete(entry.completion, entry.afterLoc); resetTryEntry(entry); return ContinueSentinel; } } }, "catch": function (tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if (record.type === "throw") { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function (iterable, resultName, nextLoc) { this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }; if (this.method === "next") { this.arg = undefined; } return ContinueSentinel; } }; }(function () { return this || typeof self === "object" && self; }() || Function("return this")()); const disableBlocks = { debug: [], upload: [] }; const mustLoginBlocks = []; const triggerBlocksStatus = async (mode, app) => {}; const blockHandlers = { 'BLOCK_1653808754555': { onRun: (args, app, device, block) => {} }, 'BLOCK_1653808754900': { onRun: (args, app, device, block) => {} }, 'BLOCK_1653808755176': { onRun: (args, app, device, block) => {} }, 'BLOCK_1653808756003': { onRun: (args, app, device, block) => {} }, 'BLOCK_1653808756290': { onRun: (args, app, device, block) => {} }, 'BLOCK_1653808757146': { onRun: (args, app, device, block) => {} }, 'BLOCK_1653808757484': { onRun: (args, app, device, block) => {} }, 'BLOCK_1653808757833': { onRun: (args, app, device, block) => {} }, 'BLOCK_1653808758086': { onRun: (args, app, device, block) => {} }, 'BLOCK_1653808758323': { onRun: (args, app, device, block) => {} } }; const ExtHandler = { onLoad(app, target) {}, onUnload(app) {}, onConnect(app, device) {}, onDisconnect(app, device) {}, onStopAll(app, device) {}, beforeChangeUploadMode(app, device) { return true; }, beforeChangeDebugMode(app, device) { return true; }, afterChangeUploadMode(app, device) { return true; }, afterChangeDebugMode(app, device) { return true; }, onSelect(app, device) {}, onUnselect(app, device) {}, beforeCodeUpload(app, device) {}, afterCodeUpload(app, device) {}, onRead(app, device) {} }; self.rpc.exports = { runBlock: function runBlock(opcode, method, deviceId, block, args) { var blockHandler = blockHandlers[opcode]; if (!blockHandler) { console.error('cannot find opcode of ' + opcode); return null; } var handle = blockHandler[method]; let app = __context.app; let device = __context.getDevice(deviceId); if (method === 'onRun') { return handle(args, app, device, block); } else { return handle(app, device, block); } }, runExtension: function runExtension(srcMethod, deviceId) { var method = ExtHandler[srcMethod]; if (!method) { console.error('method of ' + srcMethod + ' is no valid'); return null; } let app = __context.app; if (deviceId) { let device = __context.getDevice(deviceId); return method(app, device); } else { return method(app); } } };PK oAT src/cates/PK oATsrc/cates/cate_a599acce/PK oATz66 src/cates/cate_a599acce/index.jsimport blocks from './blocks.js'; const cate_a599acce = (facepanels) => ({ "name": "cate_a599acce", "colors": [ "#42CCFF", "#22C3FF", "#02BBFF" ], "menuIconURI": "", "blockIcon": { "type": "image", "width": 28, "height": 26, "src": window.MbApi.getExtResPath('vdr_grove_rfid/imgs/d90f3d055c154c74b909c43a1845f3a9.png', 'vdr_grove_rfid') }, "blocks": blocks(facepanels), "menus": { "BLOCK_1653808754555_PINDIGIT": [{ "text": "BLOCK_1653808754555_PINDIGIT_0", "value": "2" }, { "text": "BLOCK_1653808754555_PINDIGIT_1", "value": "3" }, { "text": "BLOCK_1653808754555_PINDIGIT_2", "value": "4" }, { "text": "BLOCK_1653808754555_PINDIGIT_3", "value": "5" }, { "text": "BLOCK_1653808754555_PINDIGIT_4", "value": "6" }, { "text": "BLOCK_1653808754555_PINDIGIT_5", "value": "7" }, { "text": "BLOCK_1653808754555_PINDIGIT_6", "value": "8" } ], "BLOCK_1653808757146_TYPE": [{ "text": "BLOCK_1653808757146_TYPE_0", "value": "0" }, { "text": "BLOCK_1653808757146_TYPE_1", "value": "2" }, { "text": "BLOCK_1653808757146_TYPE_2", "value": "1" } ], "BLOCK_1653808757484_TYPE": [{ "text": "BLOCK_1653808757484_TYPE_0", "value": "0" }, { "text": "BLOCK_1653808757484_TYPE_1", "value": "2" }, { "text": "BLOCK_1653808757484_TYPE_2", "value": "1" } ] } }); export default cate_a599acce;PK oAT\Tsrc/cates/index.jsimport cate_a599acce from './cate_a599acce/index.js'; const cates = (facepanels) => ([ cate_a599acce(facepanels) ]); export default cates;PK oAT$T!src/cates/cate_a599acce/blocks.jsconst blocks = (extFacePanels) => ([{ "opcode": "BLOCK_1653808754555", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "pinDigit": { "type": "fieldMenu", "defaultValue": "2", "menu": "BLOCK_1653808754555_PINDIGIT" } }, "branchCount": 0, "codes": { "arduinoc": { "sections": { "declare": `SoftwareSerial rfid = SoftwareSerial(/*{pinDigit}*/ , /*{pinDigit}*/ +1);\r\nString curRFIDtag;\r\nint curIndex=0;\r\nint index=0;\r\n\r\nstruct RFIDuser\r\n{\r\n String userName;\r\n String RFIDtag;\r\n String strList;\r\n String strType;\r\n};\r\nRFIDuser RFIDusers[10];\r\n\r\nvoid RFIDFlush(){\r\n //vidage des données qui reste dans le lecteur\r\n while(rfid.available()){\r\n rfid.read();\r\n }\r\n}`, "setup": `rfid.begin(9600);` } } }, "handler": this.funcs.BLOCK_1653808754555 }, { "opcode": "BLOCK_1653808754900", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "RFIDtag": { "type": "string", "defaultValue": "" }, "userName": { "type": "string", "defaultValue": "" }, "strType": { "type": "string", "defaultValue": "" }, "strList": { "type": "string", "defaultValue": "" } }, "branchCount": 0, "codes": { "arduinoc": { "code": `RFIDusers[curIndex].userName=/*{userName}*/;\r\nRFIDusers[curIndex].RFIDtag=/*{RFIDtag}*/;\r\nRFIDusers[curIndex].strList=/*{strList}*/;\r\nRFIDusers[curIndex].strType=/*{strType}*/;\r\ncurIndex++;` } }, "handler": this.funcs.BLOCK_1653808754900 }, { "opcode": "BLOCK_1653808755176", "blockType": "boolean", "checkboxInFlyout": false, "gap": 12, "arguments": {}, "branchCount": 0, "codes": { "arduinoc": { "code": `rfid.available()` } }, "handler": this.funcs.BLOCK_1653808755176 }, { "opcode": "BLOCK_1653808756003", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": {}, "branchCount": 0, "codes": { "arduinoc": { "code": `RFIDread();`, "sections": { "declare": `void RFIDread(){\r\n long int RFIDtag=0;\r\n int count=0;\r\n int readInt=0;\r\n char readStr;\r\n while(rfid.available()){\r\n readStr = rfid.read();\r\n count++ ;\r\n if (count > 4 && count < 12){\r\n if (readStr >= '0' && readStr <= '9') readInt = readStr - '0';\r\n else if(readStr >= 'A' && readStr <= 'F') readInt = readStr - 'A' + 10;\r\n RFIDtag = RFIDtag*16 + readInt;\r\n }\r\n delay(2);\r\n }\r\n curRFIDtag = \"000\" + String(RFIDtag);\r\n}` } } }, "handler": this.funcs.BLOCK_1653808756003 }, { "opcode": "BLOCK_1653808756290", "blockType": "string", "checkboxInFlyout": false, "gap": 12, "arguments": {}, "branchCount": 0, "codes": { "arduinoc": { "code": `curRFIDtag` } }, "handler": this.funcs.BLOCK_1653808756290 }, { "opcode": "BLOCK_1653808757146", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "RFIDtag": { "type": "string", "defaultValue": "" }, "type": { "type": "fieldMenu", "defaultValue": "2", "menu": "BLOCK_1653808757146_TYPE" }, "val": { "type": "string", "defaultValue": "" } }, "branchCount": 0, "codes": { "arduinoc": { "code": `RFID_setValue(/*{RFIDtag}*/,/*{type}*/, /*{val}*/);\r`, "sections": { "declare": `void RFID_setValue(String RFIDtag, int RegType, String Value){\r\n for(int i=0; i<11; i++){\r\n if (RFIDusers[i].RFIDtag==RFIDtag){\r\n switch (RegType) {\r\n case 0:\r\n RFIDusers[i].userName=Value;\r\n break;\r\n case 1:\r\n RFIDusers[i].strType=Value;\r\n break;\r\n case 2:\r\n RFIDusers[i].strList=Value;\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n\r` } } }, "handler": this.funcs.BLOCK_1653808757146 }, { "opcode": "BLOCK_1653808757484", "blockType": "string", "checkboxInFlyout": false, "gap": 12, "arguments": { "RFIDtag": { "type": "string", "defaultValue": "" }, "type": { "type": "fieldMenu", "defaultValue": "0", "menu": "BLOCK_1653808757484_TYPE" } }, "branchCount": 0, "codes": { "arduinoc": { "code": `RFID_getValue(/*{RFIDtag}*/, /*{type}*/)`, "sections": { "declare": `String RFID_getValue(String RFIDtag, int RegType){\r\n for(int i=0; i<11; i++){\r\n if (RFIDusers[i].RFIDtag==RFIDtag){\r\n switch (RegType) {\r\n case 0:\r\n return RFIDusers[i].userName;\r\n break;\r\n case 1:\r\n return RFIDusers[i].strType;\r\n break;\r\n case 2:\r\n return RFIDusers[i].strList;\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n\r` } } }, "handler": this.funcs.BLOCK_1653808757484 }, { "opcode": "BLOCK_1653808757833", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": {}, "branchCount": 0, "codes": { "arduinoc": { "code": `while(!rfid.available()){\r\n}` } }, "handler": this.funcs.BLOCK_1653808757833 }, { "opcode": "BLOCK_1653808758086", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "value": { "type": "string", "defaultValue": "" } }, "branchCount": 0, "codes": { "arduinoc": { "code": "RFID_memTag=String(/*{value}*/);", "sections": { "declare": `String RFID_memTag;` } } }, "handler": this.funcs.BLOCK_1653808758086 }, { "opcode": "BLOCK_1653808758323", "blockType": "string", "checkboxInFlyout": false, "gap": 12, "arguments": {}, "branchCount": 0, "codes": { "arduinoc": { "code": "RFID_memTag" } }, "handler": this.funcs.BLOCK_1653808758323 } ]); export default blocks;PK oAT src/langs/PK oATv22src/langs/zh.jsexport default { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" };PK oATv22src/langs/de.jsexport default { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" };PK oATv22src/langs/es.jsexport default { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" };PK oATv22src/langs/fr.jsexport default { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" };PK oATv22src/langs/id.jsexport default { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" };PK oATv22src/langs/ja.jsexport default { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" };PK oATv22src/langs/ja-jph.jsexport default { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" };PK oATv22src/langs/ko.jsexport default { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" };PK oATv22src/langs/pl.jsexport default { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" };PK oATv22src/langs/uk.jsexport default { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" };PK oATv22src/langs/zh-hant.jsexport default { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" };PK oATv22src/langs/nl.jsexport default { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" };PK oATv22src/langs/it.jsexport default { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" };PK oATv22src/langs/hr.jsexport default { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" };PK oATv22src/langs/ru.jsexport default { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" };PK oATv22src/langs/pt.jsexport default { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" };PK oATv22src/langs/fi.jsexport default { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" };PK oATv22src/langs/tr.jsexport default { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" };PK oATv22src/langs/tk.jsexport default { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" };PK oATv22src/langs/en.jsexport default { "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" };PK oATiisrc/langs/index.jsimport zh from './zh.js'; import de from './de.js'; import es from './es.js'; import fr from './fr.js'; import id from './id.js'; import ja from './ja.js'; import jaJph from './ja-jph.js'; import ko from './ko.js'; import pl from './pl.js'; import uk from './uk.js'; import zhHant from './zh-hant.js'; import nl from './nl.js'; import it from './it.js'; import hr from './hr.js'; import ru from './ru.js'; import pt from './pt.js'; import fi from './fi.js'; import tr from './tr.js'; import tk from './tk.js'; import en from './en.js'; const langs = { 'zh': zh, 'de': de, 'es': es, 'fr': fr, 'id': id, 'ja': ja, 'ja-jph': jaJph, 'ko': ko, 'pl': pl, 'uk': uk, 'zh-hant': zhHant, 'nl': nl, 'it': it, 'hr': hr, 'ru': ru, 'pt': pt, 'fi': fi, 'tr': tr, 'tk': tk, 'en': en }; export default langs;PK oATcEE manifest.json{ "id": "vdr_grove_rfid", "iconURL": "vdr_grove_rfid/imgs/f9c243cc1d004d6e8f84332181cafb3c.jpg", "coverURL": "./res/f9c243cc1d004d6e8f84332181cafb3c.jpg", "name": { "zh": "vdr grove RFID", "de": "vdr grove RFID", "es": "vdr grove RFID", "fr": "vdr grove RFID", "id": "vdr grove RFID", "ja": "vdr grove RFID", "ja-jph": "vdr grove RFID", "ko": "vdr grove RFID", "pl": "vdr grove RFID", "uk": "vdr grove RFID", "zh-hant": "vdr grove RFID", "nl": "vdr grove RFID", "it": "vdr grove RFID", "hr": "vdr grove RFID", "ru": "vdr grove RFID", "pt": "vdr grove RFID", "fi": "vdr grove RFID", "tr": "vdr grove RFID", "tk": "vdr grove RFID", "en": "vdr grove RFID" }, "description": { "zh": "", "de": "", "es": "", "fr": "", "id": "", "ja": "", "ja-jph": "", "ko": "", "pl": "", "uk": "", "zh-hant": "", "nl": "", "it": "", "hr": "", "ru": "", "pt": "", "fi": "", "tr": "", "tk": "", "en": "" }, "targets": [ "arduino_mega2560", "arduino_uno" ], "main": "vdr_grove_rfid/index.js", "codeTypes": [ "arduinoc" ], "device": false, "sortId": 999, "version": "1.0.0", "extApiVersion": [ "1.0.3" ], "platform": [ "mblockpc" ], "homepage": "", "feature": [ "worker" ] }PK oAT data.bak/PK oATwXNNdata.bak/ext.json{ "identify": "vdr_grove_rfid", "version": "1.0.0", "device": false, "template": "arduinoc", "cover": { "name": "Grove-125KHz_RFID_Reader.jpg", "url": "https://mblock-expanded.oss-cn-shenzhen.aliyuncs.com/f9c243cc1d004d6e8f84332181cafb3c.jpg" }, "codeTypes": [ "arduinoc" ], "generator": { "arduinoc": { "template": "// generated by mBlock5 for \n// codes make you happy\n\n//( include //)\n#include \n//( lib //)\n\n//({\n this.$ALL_VARIABLES.length==0?'':this.$ALL_VARIABLES.map(v=>\"float \"+v+\" = 0;\").join('\\\\n')\n}//)\n\n//( declare //)\n\n\nvoid _delay(float seconds) {\n long endTime = millis() + seconds * 1000;\n while(millis() < endTime) _loop();\n}\n\n//(\nvoid setup() {\n //( setup //)\n //( code //)\n}\n//)\n\nvoid _loop() {\n //( _loop //)\n}\n\nvoid loop() {\n _loop();\n}", "generator": "({\n lang: 'arduinoc',\n template: `<%=template%>`,\n splitor: {\n frame: {\n left: \"//(\",\n right: \"//)\",\n },\n expression: {\n left: \"/*{\",\n right: \"}*/\",\n }\n },\n reducers: [\n {\n name: 'include',\n reduce: (codes) => {\n let codes1 = []\n for (let code of codes) {\n let codeStr = '';\n if (typeof code === 'string') {\n codeStr = code;\n } else if (typeof code === 'function') {\n codeStr = code();\n }\n if (codes1.indexOf(codeStr) === -1) {\n codes1.push(codeStr);\n }\n }\n if (codes1.length === 0) {\n return undefined;\n }\n return codes1.map(code => {\n return '#include ' + code;\n }).join('\\n') + '\\n'\n }\n }\n ]\n})", "snippets": "", "sources": [] } }, "platform": [ "mblockpc" ], "extApiVersion": [ "1.0.3" ], "name": "vdr grove RFID", "targets": [ "arduino_mega2560", "arduino_uno" ], "id": "18727", "sort": 999, "description": "", "homepage": "", "sourceFiles": "", "code": "// enter your javascript code here\n", "handler": "\nconst ExtHandler = {\n\n // when extension is loaded\n onLoad(app, target) {\n },\n\n // when extension is unloaded\n onUnload(app) {\n // TODO\n },\n\n // when device is connected\n onConnect(app, device) {\n // TODO\n },\n\n // when device is disconnected\n onDisconnect(app, device) {\n // TODO\n },\n\n // when stop button is clicked\n onStopAll(app, device) {\n // TODO\n },\n\n // before switch to upload mode\n beforeChangeUploadMode(app, device) {\n // TODO\n return true;\n },\n\n // before switch to debug mode\n beforeChangeDebugMode(app, device) {\n // TODO\n return true;\n },\n\n // after switched to upload mode\n afterChangeUploadMode(app, device) {\n // TODO\n return true;\n },\n\n // after switched to debug mode\n afterChangeDebugMode(app, device) {\n // TODO\n return true;\n },\n\n // when device is selected\n onSelect(app, device) {\n // TODO\n },\n\n // when device is unselected\n onUnselect(app, device) {\n // TODO\n },\n\n // before upload code\n beforeCodeUpload(app, device) {\n // TODO\n },\n\n // after code uploaded\n afterCodeUpload(app, device) {\n // TODO\n },\n\n // when receiving and reading byte\n onRead(app, device) {\n // TODO\n }\n}\n" }PK oATdata.bak/categroy.json[ { "identify": "cate_a599acce", "name": "RFID grove 125 kHz", "menuIconURI": "", "blockIcon": { "name": "rfid.png", "url": "https://mblock-expanded.oss-cn-shenzhen.aliyuncs.com/d90f3d055c154c74b909c43a1845f3a9.png" }, "colors": "#42CCFF", "eid": "18727", "id": "31827", "sort": 999, "create_time": 1634911077, "modify_time": 1656231075, "uid": 1281238 } ]PK oAT}4Ta)9)9data.bak/block.json[ { "eid": "18727", "cid": "31827", "name": "Initialiser RFID @[Dropdown](fieldMenu) ", "opcode": "BLOCK_1653808754555", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "sort": 999, "args": [ { "type": "fieldMenu", "name": "pinDigit", "val": "2", "menus": [ { "text": "D2", "value": "2" }, { "text": "D3", "value": "3" }, { "text": "D4", "value": "4" }, { "text": "D5", "value": "5" }, { "text": "D6", "value": "6" }, { "text": "D7", "value": "7" }, { "text": "D8", "value": "8" } ] } ], "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "SoftwareSerial rfid = SoftwareSerial(/*{pinDigit}*/ , /*{pinDigit}*/ +1);\r\nString curRFIDtag;\r\nint curIndex=0;\r\nint index=0;\r\n\r\nstruct RFIDuser\r\n{\r\n String userName;\r\n String RFIDtag;\r\n String strList;\r\n String strType;\r\n};\r\nRFIDuser RFIDusers[10];\r\n\r\nvoid RFIDFlush(){\r\n //vidage des données qui reste dans le lecteur\r\n while(rfid.available()){\r\n rfid.read();\r\n }\r\n}", "setup": "rfid.begin(9600);", "code": "", "_loop": "" } }, "id": "312014", "create_time": 1634911077, "modify_time": 1655329567, "uid": 1281238 }, { "eid": "18727", "cid": "31827", "name": "Ajouter RFIDtag : @[String](string) Nom : @[String](string) Type : @[String](string) Données : @[String](string) ", "opcode": "BLOCK_1653808754900", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "sort": 999, "args": [ { "type": "string", "name": "RFIDtag", "val": "", "checkNumber": false }, { "type": "string", "name": "userName", "val": "", "checkNumber": false }, { "type": "string", "name": "strType", "val": "", "checkNumber": false }, { "type": "string", "name": "strList", "val": "", "checkNumber": false } ], "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "", "setup": "", "code": "RFIDusers[curIndex].userName=/*{userName}*/;\r\nRFIDusers[curIndex].RFIDtag=/*{RFIDtag}*/;\r\nRFIDusers[curIndex].strList=/*{strList}*/;\r\nRFIDusers[curIndex].strType=/*{strType}*/;\r\ncurIndex++;", "_loop": "" } }, "id": "312015", "create_time": 1634911077, "modify_time": 1634911077, "uid": 1281238 }, { "eid": "18727", "cid": "31827", "name": "Badge present", "opcode": "BLOCK_1653808755176", "blockType": "boolean", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "sort": 999, "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "", "setup": "", "code": "rfid.available()", "_loop": "" } }, "id": "312016", "create_time": 1634911077, "modify_time": 1634911077, "uid": 1281238 }, { "eid": "18727", "cid": "31827", "name": "Lire RFID tag", "opcode": "BLOCK_1653808756003", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "sort": 999, "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "void RFIDread(){\r\n long int RFIDtag=0;\r\n int count=0;\r\n int readInt=0;\r\n char readStr;\r\n while(rfid.available()){\r\n readStr = rfid.read();\r\n count++ ;\r\n if (count > 4 && count < 12){\r\n if (readStr >= '0' && readStr <= '9') readInt = readStr - '0';\r\n else if(readStr >= 'A' && readStr <= 'F') readInt = readStr - 'A' + 10;\r\n RFIDtag = RFIDtag*16 + readInt;\r\n }\r\n delay(2);\r\n }\r\n curRFIDtag = \"000\" + String(RFIDtag);\r\n}", "setup": "", "code": "RFIDread();", "_loop": "" } }, "id": "312017", "create_time": 1634911077, "modify_time": 1634911077, "uid": 1281238 }, { "eid": "18727", "cid": "31827", "name": "tag lu", "opcode": "BLOCK_1653808756290", "blockType": "string", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "sort": 999, "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "", "setup": "", "code": "curRFIDtag", "_loop": "" } }, "id": "312018", "create_time": 1634911077, "modify_time": 1634911077, "uid": 1281238 }, { "eid": "18727", "cid": "31827", "name": "Modifier RFID : @[String](string) @[Dropdown](fieldMenu) = @[String](string) ", "opcode": "BLOCK_1653808757146", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "sort": 999, "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "void RFID_setValue(String RFIDtag, int RegType, String Value){\r\n for(int i=0; i<11; i++){\r\n if (RFIDusers[i].RFIDtag==RFIDtag){\r\n switch (RegType) {\r\n case 0:\r\n RFIDusers[i].userName=Value;\r\n break;\r\n case 1:\r\n RFIDusers[i].strType=Value;\r\n break;\r\n case 2:\r\n RFIDusers[i].strList=Value;\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n\r\n", "setup": "", "code": "RFID_setValue(/*{RFIDtag}*/,/*{type}*/, /*{val}*/);\r\n", "_loop": "" } }, "args": [ { "type": "string", "name": "RFIDtag", "val": "", "checkNumber": false }, { "type": "fieldMenu", "name": "type", "val": "2", "menus": [ { "text": "Nom", "value": "0" }, { "text": "Liste", "value": "2" }, { "text": "type", "value": "1" } ] }, { "type": "string", "name": "val", "val": "", "checkNumber": false } ], "id": "312019", "create_time": 1634911077, "modify_time": 1634911077, "uid": 1281238 }, { "eid": "18727", "cid": "31827", "name": "Propriété RFID @[String](string) @[Dropdown](fieldMenu) ", "opcode": "BLOCK_1653808757484", "blockType": "string", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "sort": 999, "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "String RFID_getValue(String RFIDtag, int RegType){\r\n for(int i=0; i<11; i++){\r\n if (RFIDusers[i].RFIDtag==RFIDtag){\r\n switch (RegType) {\r\n case 0:\r\n return RFIDusers[i].userName;\r\n break;\r\n case 1:\r\n return RFIDusers[i].strType;\r\n break;\r\n case 2:\r\n return RFIDusers[i].strList;\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n\r\n", "setup": "", "code": "RFID_getValue(/*{RFIDtag}*/, /*{type}*/)", "_loop": "" } }, "args": [ { "type": "string", "name": "RFIDtag", "val": "", "checkNumber": false }, { "type": "fieldMenu", "name": "type", "val": "0", "menus": [ { "text": "Nom", "value": "0" }, { "text": "Liste", "value": "2" }, { "text": "Type", "value": "1" } ] } ], "id": "312020", "create_time": 1634911077, "modify_time": 1634911077, "uid": 1281238 }, { "eid": "18727", "cid": "31827", "name": "Attendre présence badge...", "opcode": "BLOCK_1653808757833", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "sort": 999, "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "", "setup": "", "code": "while(!rfid.available()){\r\n}", "_loop": "" } }, "id": "312021", "create_time": 1634911077, "modify_time": 1634911077, "uid": 1281238 }, { "eid": "18727", "cid": "31827", "name": "Mémoriser le tag @[String](string) ", "opcode": "BLOCK_1653808758086", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "sort": 999, "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "String RFID_memTag;", "setup": "", "code": "RFID_memTag=String(/*{value}*/);", "_loop": "" } }, "args": [ { "type": "string", "name": "value", "val": "", "checkNumber": false } ], "id": "312022", "create_time": 1634911077, "modify_time": 1634911077, "uid": 1281238 }, { "eid": "18727", "cid": "31827", "name": "Tag mémorisé", "opcode": "BLOCK_1653808758323", "blockType": "string", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "sort": 999, "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "", "setup": "", "code": "RFID_memTag", "_loop": "" } }, "id": "312023", "create_time": 1634911077, "modify_time": 1634911077, "uid": 1281238 } ]PK oAT)L data.bak/translate.json[]PK oAT)L data.bak/facepanel.json[]PK oATimgs/PK oATYz (()imgs/d90f3d055c154c74b909c43a1845f3a9.pngPNG  IHDR]!?zTXtRaw profile type exifxWYv( g$`sz.אJTh;ea4]I7{pq(BԜJJW(T ߯m=ɇ_cD|G2!lvC ]_*F!},GGv; A;Oy秒5=\)!~F 1x8!)^45)XnoP0I3%a BѦ>.7*CkX_e jठљ41QRXee-%Ҭ )C侔RX`"kQYǘY *x}r[mT;\M+kmgi#!ăȞb? dBc i%G9~+^4U`'zL *7I *7I *7I *7I *7>K <69O=/Qr_|:S>~$ڡ*mq繜5$$:B]oƐȝV-۳=4v_QM`// *ſ:qt_LѰNO:Z٘㶅^:~E=*aJK|sejjNO~^j}"J^/fzS9+zTXtRaw profile type iptcx]QKr!{AqfljvY3ED}mվKnw2sp`Bp07sL& 8qaqtȒ-\̦m2(4S8_e;Z$}Kyhy݂V'rF"hEFYҸ:(|K}3`õDg'ī::%uMq-Ϲ{]J*?sc6-aI 14mpRI"'gcG"uPFSi*1E $iCCPICC profilexJP""")ll  k6*dq1!ɲ># ֞-,La>sf.$LYU8_ od.;AXG|2c|Q\3EEց;r o=X 4O( Y7M&Ꮶf9.}lLPQT9ѕ jST܈J)9 vectortatu Rfid technology label. Frequency identification tag, electronic identify smart icon, semiconductor circuit antenna personal tagging system, radio signals tracking inventory sign 0bKGD̿ pHYs.#.#x?vtIME/(g,tEXtCommentRfid technology label. Frequency identification tag, electronic identify smart icon, semiconductor circuit antenna personal tagging system, radio signals tracking inventory sign^&IDATxniɢEC@ Dg ZYe #l,@! Q z8)^4'ŹTU׵kX]NUWU@@O/?$z׬5ѻ7-6lt#bwx u%^r OIܦcq,Wsvnmze>Gst.O;T[n_n2ߤ>(< #|SJGQ]M_Hri8Ny‰K vG6xMGo܊GN&HpHeMQ0~=?ؙSb{ɻȃfmNI M]虫*ә͟wcp\4s$u?s@㠉x.zyn#Ɲibs+Qim۩$b턫#t^_MfXO=њ*6_C RY[G1H uR Vnu<iuu< i(8R W nV:p%&lJ!t:" P+ftTr9obs*eQkb`43ײ{vu& H]7pcBN6iyԾ&YlգCA*b=M؄ }aN`pM_.`pڡã:8& ,{yW7Sn>*fu3NNoCJ,t~ iK\87pZOI:[%#Z76Ѹ,\lhɃ@lCK/ qlDpsu6{=⃧Q:Qۤ(;s[hF`d`atw=9pۄ :b!'_([6yF nsFQP.ۤ9|R61xN4_*QP!9zvj(| ll3??i4@$zWMk^4?Ov ]ORb[*h6Y{P;V%!\JDq.Pein|PKjܶo7Omhش~ú; >b%, xAmD123y֯5^_ obVp%"AÀ 1.=G:yf lb U.}dR 15O 1!me 6?2ڬq8^p27cemf>Yv(s?-Xgc.XtŋHXSk,* đ()7rɱp=R6~s* 6C?_OG;X)OX+͠$MTP{(}Tl(l`#HO( nN H Ni޹j6U9x9r2\K,e^l L6N%EvQ뭗یƾ~:lܲ$'gfM.}l٥ؠ$&c'R>R|:m#%iͣmptm6U|߹ e9=@ ncV[xt16m l $#l_wyH W ņ;+6 6܀MGwQ$="k'>4Rq4qoq$ŀ؄mL߳ `cAoË3f.:@&Cxaems @6l `@ơIQ+FWtv*Zl\?D莛--tG$;NVÅ=\ǀM:PC)˽ͱgUGшK`*`uwM)1uțp r&8_*. P_UA^aB 8A߼}!O6V=!k1 Ib$_cSFTRMLBfx떍aw׬>8b"Sc\8݆F2+n&&fLL#"јFH UP'> L4&+&ј+{DTRMCqn.MMeM/vmqLg R«Q8 %ze4LAJ#R.H>c3mroJ:X vcXc" .b cϚ*ax#f#&}OW\X#d]@HNd~tviY4~n)1+BԘzWld|5wZm:f4{P4^S"#!kh;6OtlJi6\Ȭ,Y nShAiG$Ft<%<nkrn64p x%M25 Np-fb8+IN7!%5N)1T@] (VgӀVf둄E]x3o4>Y)^I;C#m{Q|;Y]b.[SSIGnjE R5m:E4#"C++4 AC  uT7{ YvT_DѳItXG>ֳc>,j͆DDw]vHWc6O I鱗nz,sl" R;*Qs.iQLH@|R*Nm_QMغǴ^Uj6 LLE[ci? @*{5scM],dt0 Ŭ))=l/ r2N;926SQ h ߡf+qM^smbPǡџ%8B36/YyBfl~3H;+/*T?Shu7s(1eGyn&CԂTn6Y7t2I:aUUm{Z9[MJ5R/*UWc'T$Q]yȐJ"(%=Ҭ|1K62Ð'dX|MqZf}=au%M#hӾGj!+ɜuhAUY'1Fxe|leH-ܺ;rqn&8UX.XbQc2?AVؘiX$kxTJ qmhrIm%lUSκkNMB9&r N.BQs)!JRfMݳB&%4c?O3 R#oC^q;RM+o`z֏v;-b!#Q\ݕ}XyQj(cפQr03 a FŊq_PO*uՕ圑 B:DOY݄~&5ʎrMӫF*>M#_E:adk[-RF?('jOjkv6s@F!zp>g_Gccl۞5jQE"( J~~gWJzZivZ;u<(ɮ>SZ>)EK>;iP@o6+0[+jj$9ՍC* zϹJ1]McٴnFC13BQ]:"DLrr_tV V;h>.8Ԗսmv8סx/&SbXF+Kch8xÖTQ53UWie6l,ANI'UOfExݤh(I?ju[6"}o&&zE]N-s*%w7\k,u GOgtl,WGvtôd2?է䒖CxOI^cE՝NM(aO:4J[HFvp wv\mFpV va",/aOsJLx۷ҬMr;#>}g$y JѬ!J29o<[no[tn͚ ) ('*Eg<]N3#vdƦ[:⥖O2ܞ4v'>)QJtGyp" aES ((*/jbx'Eg)IaV1<ܶoSR!kȗW5(mJ'$}W#z> W"HtyOzeN6먻+o(ƵfY%8\KyoG&yNm8&ʀ$f*E%GYc_th0p:vMF|6HaDZ8^1MhQVE{\S\vl7iwGlbMF#1ڼG>7zc*ϋ[I׬̶O,TͶ"v!Շri"xw <)clzUm=s?֝9躊qש-CdTlIQHaX)g+nOa=y53v:0E09,k#yGO5*lRK\䏦̪ravQEuQEQEQE}E뫀(!MgUÛ-Nn1Ҵt.ݿTc5TXD0++T}6\&kS7WV0 θC^2Q'6PnbIa]dn,KVO11:J"2C+1f>*&h8p+$)@a6; Vm h{>J;3z9WVd\^]hPb:\+D3{7jfKxzه{guΩ3/ *я)#X+,bZct{#Tx_z"% u$մQu ,xy?V4@׶K 5$ѡLpA2r86=7He QV*X )o.4?νD5:Σp5md~CtF1ЮQ}yc58kӇ (:F!EVNJQEQEQEfx%̙ہ^]G~NJ+ʹxlݓEğߓ'ZS6\4q%:~Nx!&;c3\faGS ]xokitCKeV1玽kjFxٲ[k-Khc@亃_ SWpYAgki(е?L&~ye$ÂpOeC0QR\FWMݩ<Kտ5'.HGk7fkNjH(Cד?׬טkgn'ƲY%RKȹb'CwMu }愈TV;1l=Nuь]}?j+Oj.YeTGmEp9j׿%/lڝQ\I/#k[)Tٵ;֯z[|r[GD.?Ʒ&]^8Aa {+'UvRC=vhHBrڰo<juNNF6 "Rͮ!H_QT(/f2[nO=:^v[BD+y:f݃iz`+E4k}%A JǢv< l!/lcưd\n ϠEGD OԢJoxKaigYV×m(qDUyjBGM;ZcڦCU ri< 'g #oMW[$wV~ҹC Vח~#Q] !<׭ȮkDͷ V|QQEbjxd}kzM&)U)sٞAumjZE oĶǪkE}S3ֆuU|QLX?LV7{J?bI)>G*/޴_s_KCy p;m0*VW-?Rk6-4ʨJxb 口}S8@HF oݰ}F+? 㝭2i֌Wyu6FGTu|1c t G} \O''hTesi<E ٟq]pJ=mk 5A*SZ’'1hEYi3"|6NjItm6;j>p\)TUDY{EJ3bHWyWa9+ gqZ۰J݁=jHL{˓א?Krl4q7reX%y))s\x8 ;dִLNxt! R`)QEQEQEAIr:I79袁q"Ƥyl~,p|;Jm@ b CKExE~!Lya>r%/N3xZme@Jb1ӥv#TړE 5|_jڴU$&уmwLXM/5j!Kئ4`CpryҤQ"N_j[aXƝ8Xڥjpn5]JIny K{]g_D"~>i>pO+ (s}rQnkW[d.35[἗:nwo2x^ubGQS&s%ܑ򤪵MøSg GVլ¢u]fȬ7.Kƽg@kqӋY&8=(XhZK.'M X(( MRl˛8?|q'Aʤ1?GxA<}_Y?]p> [cHԏץ 'e@ZkV(p+ZoCjZdc O ( )h(((dѤRQPMφ4;"m&¹=WWoKĪ(ISWU+d$ XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)KmPhotoshop 3.08BIMP t6 7 2022-04-132<18:24:23-18:24C     C   '   d'ғ1=|*mskMf[_VV'peR#s./CO'Ls ]}Wmi+5'Wfg< _'c?sFYی4]=p0)G>'lizDFH]6spdõmK>mr GG̼!T}Ll]8@ e7hgvv~_Xa C̖m*^IwWk[cLH~n9@Z^wF z2mY̚%u9f d-Ds~ ȶ7+=/c 0}~!6oɶw㽾weryENgէ^R yAc캿.gҋjW7{֛(l6e-WRahoFZK?s<&}OamHgfW#0EͿAI;'7VXc} 85rߩz1rs6uy1=zM8~qՍo+1YiН~yu2S<mkcudwV33=,?m־TK;Ly9XSkdtO ʶ:Tߞmv=Lيs-m}y6 oy=o^PEW\kbڔ_Uղ9QXZyNߒv|FMrr<_l> DFy kEm6u=j2 eb2re1A0)|oI7prr+G:蜼@ uZ>z{<ė/3zp͢,"aWpe#_Mt|6F93s"l/_AmvOmspcMuc8L&hN2 !01"#324%6@ABDPHb0WsaIFh;9fUi_Vv 7I9v4Үuژ#$De,!yV?,ĖuBJQSt ]n:Egt,@,UkaLX$rBSu^ `El|s[߳H?ZߩjzFKyN6/qH4rIG?,mgl' =ZY=2a0@[Ҷ}fWWcNE+[WCxQ|8l^W10Yڹ\%Yg.ge7QhXCn'UF3,־|ܧHvMj#3`8H H>Q*Nvw]J.C@Yee;mn pvffv uј(#DS˒fʡF:7`,mE@eBK4OG 0N 6v_ot`PPD@}AUsj29&T2ʯ0?ѪPC*Vv3~V?gݳB6\錋kS7ugkN)M,Rd9R3Lk.O4aG,gtE>N't%fdq_$*eRLegf>{4(]ɐXyxǀoDCKA!h5Bpt)9ڝl_{3, Q'yXߠ첁sU + Omp5_W` I?cQӭWzǡŬ:N7V&?JCպO,uT==+۠9vܧ[Y[%;l-XAAuㅸ`s H[Vax<_V]/1Y[7-!"01 AQ2@a3#PB?~bfj-[oխ)ǧ $si$qQ550dxkӬz}-JK\+ DzdyQӅ(aQbvnE-P:TJ* K~hmҵ~+*բSMă]|q(&>F-ƚ7=!lbP¬^+593lPm!n$6[6#ۓzg s[CSbfV(#N0jqXb!FWs&P{3rD 5}^mAŦ–g9G(>OJ*fSo 9G"rwM|ϓ<Y?ZoAÍypQ켢3?ZJg%0s٘x4-B'-hv)cz|qrörE6%tJʀ=la#:9T=~cȤ֖GIj mXgS(0|9Tm a>;7fFOSF :S]4 l- Tj<3& ھJ98Rs|$wrzzzzz2qk5_P Ԇmc@iuR&yERc@r|Z_ZU[8yX!K a}؜ۤ41m^mj'EZ\륤_KVXo+3F"1QıOΰf#1ɝ" ew^+Է½K|+՟oF~Ѯ; ;xɣZ<T::uR}m][ZOm LKq8X\Dn"رОƇ$5&!tttttz^TvN/Pm\)qpaҵ<Ą: 5զ4lrcзz"SdKAc6a@̔Uܓ*ZĘ\J31nK]Cq!w== 2m8%ib\gVb*Ov{y2i* і~:JIƐd tfXn}D"|+˗RO e~_S.mp?ZcX#66h[-EcBxmmm¤w(P.8q)5h*+_+ ZCK5ᢥlKɷöGm[- 12J7$խ96aƓi.4=\*i^"Dk!͜=#X.kg iڣQMɟmx5mK9+H+T7VCVuh xElӮUQgRϛGe#tư7ъx^keW+ ieͅÅĆU>RL@v[X¢Tw[Q^X얳4@{0hc*(S#M 8R$)o! `,* i#, VUY~T$Xp͸ flT>$ ٦x*{T0,W t*5]o3\dP4Re︤9pREU#1P2%)/'Er5B҈cN=2JntX32זy;Cp/< H纬<Mtg_:q!(ɺ՘c;DU9G8A$GV ?YL# :1٣QLTFGTrMv ̭mj_V$1یPF%XMe봿ҮpfpZ6ࣷZ3Iwp oXC,qNҷaW:O[LWɗXbxkqG[(,zp+Jd{ +{? 0K_2*!1AQaq0 @P?!-4): ;t,^"8qVɎ; R)Ad5M; ƜESbl]*-NӃ\.uj~#|m NVj[ފ]·M#sީb,M/ PEs0t^Tp&! }.tt"8LӚ ϣ 6%%X]Lb/tW)fVrHY}`>H0oۚ 9[HGhNְO2_T00}HFIlCNnXi=ب w*uau+$CLwsv7%l5n⊀`/(̲^@;|M|]%gb(fl]<Q3ךU>c\ޝeCz\%\|KNݗV9<0! Ur랲'0V烹ʹ9]ܽdnXקQ%\^5|$TK~_O&23u4gUl󫎒ॳ`8SZGn j~ŭI;hz9)]ہ?Lu7u#Q8ʡJv]cHB\!54!$^SxHipx[A3l4:m.P:i~{& 焽{36K3Y]ˠM*dԈ*@OzOh5}lznNPgW @[tjB3振H!j*U]T;iYMӆLYW5O]qz 3j2濾 f*&$. `&S\0G"eٞWY;\\DJM:KSV:_(YuG{ߜDe=@e5Ԡ)dq/Md͝6)yu8FƵLVkFxiYCCw~bu,&378Uf?NЇ{"[$X1tc [uD]tķ< LCwTԵ[!JN,Q13ystR\j YFLN,!;kc(Ǵ\1%!>Q qhaU 4Pn0.ࣁ&d 3$ uk)uq%SSg, c,.%ˍj5JhP;d@ڙ`ni?5[[zO3N.~M$XO7B:CqD0CѴ%N X8ڿ?j7iӮo;3^ %:Q(Olj{c~~6?01>~!AVt[l(ː3T)Țr@:Y:]!^/邾(.?(\뼇݃?؛Rk7W E_MIa!c5*6ۖ34BQ6or3CGL<08Պx'3V × aEut ;#i-%k^ת'ep4=l|L ѻVzfjaƻLj5 `y}(4Ǻd  I$I$I$I$I H͊"I2 sI~6^|%I$od$pG$U_n\I$Iύ3$N3pаedH(ĒIc4I#_PtI$I$U.DtI&]R@s=`Yy^I!{H{qI$I$uJ= $$+#$y$A$2 $$I$$@w I$_ I&$dI ~ I$?c4@$I,vI I$I$I*!1A0Qa q@P?X /``eKu{F{4jRqč RDQpp{OVtK}0sa}eB10^j!B x]߈BhlfwӾM ˗ H}`l i*5b]pRay0"`St;%>YuG(8+}"m09+*iC[Xіy:swH!lLUדjjafi"TZ=m.zt ]%c&.,bQYUqpQBj!4(e*pnyEt7ݢIq֑M%{JdJpFZb\|ɬ8 /S[R:=mr"La +YL\. p|GtȮBel+,%U>Lk5DRhFJPK FTXEzig_|Ưx~RzgS+EXɆي3uWئ D/ 2ʠ_S ^l?e$)j_UXFdQ-sQRQ`ܣi}8ν]pT! {] KaTMP5sxix0}8vAU(,k;0V&Pݨ"—.64khf^K#?a]Hn>fV3]<SBp%s.M{)(IdTD1n~ij-4xVB{;5Ǭ[o]%1GYN+H  [HkHu4eel'!1A0Qa qP@?"]._e@MIW+s JII~s( ,Ee f__ l=S)))-[p@-1\RU8`°QAyrr )wq0Yś>^i=vG%t[pEK6nPL!g[g /*%yvՅ>h0<8 `ItY<ɀ4黜ePpy4mc5se(`wk"QSZo8OE8E'XŞ&9+ξ\1rm/ y@ Y:mA ,?Fo ^VxGK&ܓIS`aYHm>cj7`NӀ."׾>Ml 9Y NUji׈ć Cqv>7t찐6 }›=ocJeqUƷ0 lH ḁ:1E.84SZ qʈ7&w29+%R,4SOe͉@@/e@8fHZu س(4;2LiADG"@^w4XCrl?uaF/_቟Lk 0c('GRAR"֜1v]Bt'F=iPF~)`,f11P%QK^yG=1(Ѓ5ity]}qɫ?n >SKmHgAcɂ,8ުAa"k\̌c"fO;Ȓ~!.]%[s:Xk5crԫ5FLJ[ҬFNxQ))L^$z*9F7c ``PGW^?& =_w}Aq{WFpь0 L% >Xh%^JR6iN@)"xGXunaTHXj1mi zG; Ǖhh2Q^RpзAO`{߰g<#?%F%͂S6 z[)my/kA0|"]i?l̡B}Rx4=8B"9Kaomz 4 86>0:Oã$/Fu?q!_o뉔M[xW lV_?scO/?&p?ߎc$(DG!pT<1@&OQ-ʮ>&¹?aLXYˀO0 dP/?lֿL}c{"=iz? TQw㌱"|'A# NUؤ>1Cʖyz"BlGwI>w>0(Fa٦ 1>?UXشkQYf7iCϡQоz-җT?QՏhS ο8ccL;k k':iO}mu"/ Š8-jQ@̪d I:08EUps8|}&L^񀫞- \[ftL|\щ>7x^2p>qfA眃_0b6%WGN!D7rt4APp.O|cŞ8>5gCL}>PK oATres/PK oATi18n/PK oAT5g"" i18n/zh.json{ "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }PK oAT5g"" i18n/de.json{ "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }PK oAT5g"" i18n/es.json{ "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }PK oAT5g"" i18n/fr.json{ "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }PK oAT5g"" i18n/id.json{ "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }PK oAT5g"" i18n/ja.json{ "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }PK oAT5g""i18n/ja-jph.json{ "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }PK oAT5g"" i18n/ko.json{ "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }PK oAT5g"" i18n/pl.json{ "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }PK oAT5g"" i18n/uk.json{ "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }PK oAT5g""i18n/zh-hant.json{ "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }PK oAT5g"" i18n/nl.json{ "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }PK oAT5g"" i18n/it.json{ "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }PK oAT5g"" i18n/hr.json{ "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }PK oAT5g"" i18n/ru.json{ "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }PK oAT5g"" i18n/pt.json{ "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }PK oAT5g"" i18n/fi.json{ "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }PK oAT5g"" i18n/tr.json{ "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }PK oAT5g"" i18n/tk.json{ "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }PK oAT5g"" i18n/en.json{ "vdr_grove_rfid": "vdr grove RFID", "extensionName": "vdr grove RFID", "extensionDescription": "", "BLOCK_1653808754555_PINDIGIT_0": "D2", "BLOCK_1653808754555_PINDIGIT_1": "D3", "BLOCK_1653808754555_PINDIGIT_2": "D4", "BLOCK_1653808754555_PINDIGIT_3": "D5", "BLOCK_1653808754555_PINDIGIT_4": "D6", "BLOCK_1653808754555_PINDIGIT_5": "D7", "BLOCK_1653808754555_PINDIGIT_6": "D8", "BLOCK_1653808754555": "Initialiser RFID [pinDigit] ", "BLOCK_1653808754900": "Ajouter RFIDtag : [RFIDtag] Nom : [userName] Type : [strType] Données : [strList] ", "BLOCK_1653808755176": "Badge present", "BLOCK_1653808756003": "Lire RFID tag", "BLOCK_1653808756290": "tag lu", "BLOCK_1653808757146_TYPE_0": "Nom", "BLOCK_1653808757146_TYPE_1": "Liste", "BLOCK_1653808757146_TYPE_2": "type", "BLOCK_1653808757146": "Modifier RFID : [RFIDtag] [type] = [val] ", "BLOCK_1653808757484_TYPE_0": "Nom", "BLOCK_1653808757484_TYPE_1": "Liste", "BLOCK_1653808757484_TYPE_2": "Type", "BLOCK_1653808757484": "Propriété RFID [RFIDtag] [type] ", "BLOCK_1653808757833": "Attendre présence badge...", "BLOCK_1653808758086": "Mémoriser le tag [value] ", "BLOCK_1653808758323": "Tag mémorisé", "cate_a599acce": "RFID grove 125 kHz" }PK oATWindex.jsPK oAT,@m5m56handlerProxy.jsPK oAT.src/PK oAT`.cc .src/index.jsPK oAT"v&&src/snippets.jsPK oATI~Nsrc/generators.jsPK oAT)src/arduinosources.jsPK oATE^src/facepanels.jsPK oAT_[[src/exthandler.jsPK oATITEE)src/handlerProxy.jsPK oAT src/cates/PK oAT6src/cates/cate_a599acce/PK oATz66 lsrc/cates/cate_a599acce/index.jsPK oAT\Tsrc/cates/index.jsPK oAT$T!src/cates/cate_a599acce/blocks.jsPK oAT  src/langs/PK oATv22 src/langs/zh.jsPK oATv22&src/langs/de.jsPK oATv22src/langs/es.jsPK oATv22src/langs/fr.jsPK oATv22C"src/langs/id.jsPK oATv22'src/langs/ja.jsPK oATv22-src/langs/ja-jph.jsPK oATv22d2src/langs/ko.jsPK oATv227src/langs/pl.jsPK oATv22"=src/langs/uk.jsPK oATv22Bsrc/langs/zh-hant.jsPK oATv22Gsrc/langs/nl.jsPK oATv22DMsrc/langs/it.jsPK oATv22Rsrc/langs/hr.jsPK oATv22Xsrc/langs/ru.jsPK oATv22a]src/langs/pt.jsPK oATv22bsrc/langs/fi.jsPK oATv22hsrc/langs/tr.jsPK oATv22~msrc/langs/tk.jsPK oATv22rsrc/langs/en.jsPK oATii