PK ϠTmindex.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_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }, "de": { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }, "es": { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }, "fr": { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }, "id": { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }, "ja": { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }, "ja-jph": { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }, "ko": { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }, "pl": { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }, "uk": { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }, "zh-hant": { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }, "nl": { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }, "it": { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }, "hr": { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }, "ru": { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }, "pt": { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }, "fi": { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }, "tr": { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }, "tk": { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }, "en": { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" } }; 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: [{ filename: "src/LowPower.cpp", code: "/*******************************************************************************\n* LowPower Library\n* Version: 1.81\n* Date: 21-01-2020\n* Author: Lim Phang Moh\n* Company: Rocket Scream Electronics\n* Website: www.rocketscream.com\n*\n* This is a lightweight low power library for Arduino.\n*\n* This library is licensed under Creative Commons Attribution-ShareAlike 3.0\n* Unported License.\n*\n* Revision Description\n* ======== ===========\n* 1.81 Fixed timer 2 settings incorrectly restored after sleep.\n* Contributed by rwared11.\n* 1.80 Added support for ATmega88 and ATmega168P. PowerExtStandby()\n* modified because not supported on Atmega88 / Atmega168\n* Contributed by mrguen.\n* 1.70 Added support for ATmega644P and ATmega1284P.\n* Contributed by alexreinert.\n* 1.60 Added support for ATmega256RFR2. Contributed by Rodmg.\n* 1.50 Fixed compiler optimization (Arduino IDE 1.6.x branch) on BOD enable\n* function that causes the function to be over optimized.\n* 1.40\t\tAdded support for ATSAMD21G18A.\n* \t\t\tLibrary format compliant with Arduino IDE 1.5.x.\n* 1.30\t\tAdded support for ATMega168, ATMega2560, ATMega1280 & ATMega32U4.\n*\t\t\tTested to work with Arduino IDE 1.0.1 - 1.0.4.\n* 1.20\t\tRemove typo error in idle method for checking whether Timer 0 was\n*\t\t\tturned off.\n*\t\t\tRemove dependecy on WProgram.h which is not required.\n*\t\t\tTested to work with Arduino IDE 1.0.\n* 1.10\t\tAdded #ifndef for sleep_bod_disable() for compatibility with future\n*\t\t\tArduino IDE release.\n* 1.00 Initial public release.\n*******************************************************************************/\n#if defined (__AVR__)\n\t#include \n\t#include \n\t#include \n\t#include \n#elif defined (__arm__)\n\n#else\n\t#error \"Processor architecture is not supported.\"\n#endif\n\n#include \"LowPower.h\"\n\n#if defined (__AVR__)\n// Only Pico Power devices can change BOD settings through software\n#if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega168P__)\n#ifndef sleep_bod_disable\n#define sleep_bod_disable() \t\t\t\t\t\t\t\t\t\t\\\ndo { \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n unsigned char tempreg; \t\t\t\t\t\t\t\t\t\t\t\t\t\\\n __asm__ __volatile__(\"in %[tempreg], %[mcucr]\" \"\\n\\t\" \t\t\t\\\n \"ori %[tempreg], %[bods_bodse]\" \"\\n\\t\" \t\t\\\n \"out %[mcucr], %[tempreg]\" \"\\n\\t\" \t\t\t\\\n \"andi %[tempreg], %[not_bodse]\" \"\\n\\t\" \t\t\\\n \"out %[mcucr], %[tempreg]\" \t\t\t\t\t\\\n : [tempreg] \"=&d\" (tempreg) \t\t\t\t\t\\\n : [mcucr] \"I\" _SFR_IO_ADDR(MCUCR), \t\t\t\\\n [bods_bodse] \"i\" (_BV(BODS) | _BV(BODSE)), \\\n [not_bodse] \"i\" (~_BV(BODSE))); \t\t\t\\\n} while (0)\n#endif\n#endif\n\n#define\tlowPowerBodOn(mode)\t\\\ndo { \t\t\t\t\t\t\\\n set_sleep_mode(mode); \\\n cli();\t\t\t\t\\\n sleep_enable();\t\t\\\n sei();\t\t\t\t\\\n sleep_cpu();\t\t\t\\\n sleep_disable();\t\t\\\n sei();\t\t\t\t\\\n} while (0);\n\n// Only Pico Power devices can change BOD settings through software\n#if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega168P__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__)\n#define\tlowPowerBodOff(mode)\\\ndo { \t\t\t\t\t\t\\\n set_sleep_mode(mode); \\\n cli();\t\t\t\t\\\n sleep_enable();\t\t\\\n\t\t\tsleep_bod_disable(); \\\n sei();\t\t\t\t\\\n sleep_cpu();\t\t\t\\\n sleep_disable();\t\t\\\n sei();\t\t\t\t\\\n} while (0);\n#endif\n\n// Some macros is still missing from AVR GCC distribution for ATmega32U4\n#if defined __AVR_ATmega32U4__\n\t// Timer 4 PRR bit is currently not defined in iom32u4.h\n\t#ifndef PRTIM4\n\t\t#define PRTIM4 4\n\t#endif\n\n\t// Timer 4 power reduction macro is not defined currently in power.h\n\t#ifndef power_timer4_disable\n\t\t#define power_timer4_disable()\t(PRR1 |= (uint8_t)(1 << PRTIM4))\n\t#endif\n\n\t#ifndef power_timer4_enable\n\t\t#define power_timer4_enable()\t\t(PRR1 &= (uint8_t)~(1 << PRTIM4))\n\t#endif\n#endif\n\n/*******************************************************************************\n* Name: idle\n* Description: Putting ATmega328P/168 into idle state. Please make sure you\n*\t\t\t understand the implication and result of disabling module.\n*\n* Argument \tDescription\n* ========= \t===========\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\n*\t\t\t\tup resource:\n*\t\t\t\t(a) SLEEP_15MS - 15 ms sleep\n*\t\t\t\t(b) SLEEP_30MS - 30 ms sleep\n*\t\t\t\t(c) SLEEP_60MS - 60 ms sleep\n*\t\t\t\t(d) SLEEP_120MS - 120 ms sleep\n*\t\t\t\t(e) SLEEP_250MS - 250 ms sleep\n*\t\t\t\t(f) SLEEP_500MS - 500 ms sleep\n*\t\t\t\t(g) SLEEP_1S - 1 s sleep\n*\t\t\t\t(h) SLEEP_2S - 2 s sleep\n*\t\t\t\t(i) SLEEP_4S - 4 s sleep\n*\t\t\t\t(j) SLEEP_8S - 8 s sleep\n*\t\t\t\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\n*\n* 2. adc\t\tADC module disable control:\n*\t\t\t\t(a) ADC_OFF - Turn off ADC module\n*\t\t\t\t(b) ADC_ON - Leave ADC module in its default state\n*\n* 3. timer2\t\tTimer 2 module disable control:\n*\t\t\t\t(a) TIMER2_OFF - Turn off Timer 2 module\n*\t\t\t\t(b) TIMER2_ON - Leave Timer 2 module in its default state\n*\n* 4. timer1\t\tTimer 1 module disable control:\n*\t\t\t\t(a) TIMER1_OFF - Turn off Timer 1 module\n*\t\t\t\t(b) TIMER1_ON - Leave Timer 1 module in its default state\n*\n* 5. timer0\t\tTimer 0 module disable control:\n*\t\t\t\t(a) TIMER0_OFF - Turn off Timer 0 module\n*\t\t\t\t(b) TIMER0_ON - Leave Timer 0 module in its default state\n*\n* 6. spi\t\tSPI module disable control:\n*\t\t\t\t(a) SPI_OFF - Turn off SPI module\n*\t\t\t\t(b) SPI_ON - Leave SPI module in its default state\n*\n* 7. usart0\t\tUSART0 module disable control:\n*\t\t\t\t(a) USART0_OFF - Turn off USART0 module\n*\t\t\t\t(b) USART0_ON - Leave USART0 module in its default state\n*\n* 8. twi\t\tTWI module disable control:\n*\t\t\t\t(a) TWI_OFF - Turn off TWI module\n*\t\t\t\t(b) TWI_ON - Leave TWI module in its default state\n*\n*******************************************************************************/\n#if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega168__) || defined (__AVR_ATmega168P__) || defined (__AVR_ATmega88__)\nvoid\tLowPowerClass::idle(period_t period, adc_t adc, timer2_t timer2,\n\t\t\t\t\t\t\ttimer1_t timer1, timer0_t timer0,\n\t\t\t\t\t\t\tspi_t spi, usart0_t usart0,\ttwi_t twi)\n{\n\t// Temporary clock source variable\n\tunsigned char clockSource = 0;\n\n\tif (timer2 == TIMER2_OFF)\n\t{\n\t\t// Store current setting\n clockSource = TCCR2B;\n\n\t\t// Remove the clock source to shutdown Timer2\n\t\tTCCR2B &= ~(1 << CS22);\n\t\tTCCR2B &= ~(1 << CS21);\n\t\tTCCR2B &= ~(1 << CS20);\n\n\t\tpower_timer2_disable();\n\t}\n\n\tif (adc == ADC_OFF)\n\t{\n\t\tADCSRA &= ~(1 << ADEN);\n\t\tpower_adc_disable();\n\t}\n\n\tif (timer1 == TIMER1_OFF)\tpower_timer1_disable();\n\tif (timer0 == TIMER0_OFF)\tpower_timer0_disable();\n\tif (spi == SPI_OFF)\t\t\tpower_spi_disable();\n\tif (usart0 == USART0_OFF)\tpower_usart0_disable();\n\tif (twi == TWI_OFF)\t\t\tpower_twi_disable();\n\n\tif (period != SLEEP_FOREVER)\n\t{\n\t\twdt_enable(period);\n\t\tWDTCSR |= (1 << WDIE);\n\t}\n\n\tlowPowerBodOn(SLEEP_MODE_IDLE);\n\n\tif (adc == ADC_OFF)\n\t{\n\t\tpower_adc_enable();\n\t\tADCSRA |= (1 << ADEN);\n\t}\n\n\tif (timer2 == TIMER2_OFF)\n\t{\n // Restore previous setting\n TCCR2B = clockSource;\n \n\t\tpower_timer2_enable();\n\t}\n\n\tif (timer1 == TIMER1_OFF)\tpower_timer1_enable();\n\tif (timer0 == TIMER0_OFF)\tpower_timer0_enable();\n\tif (spi == SPI_OFF)\t\t\tpower_spi_enable();\n\tif (usart0 == USART0_OFF)\tpower_usart0_enable();\n\tif (twi == TWI_OFF)\t\t\tpower_twi_enable();\n}\n#endif\n\n/*******************************************************************************\n* Name: idle\n* Description: Putting ATmega32U4 into idle state. Please make sure you\n*\t\t\t understand the implication and result of disabling module.\n*\t\t\t Take note that Timer 2 is not available and USART0 is replaced\n* \t\t\t with USART1 on ATmega32U4.\n*\n* Argument \tDescription\n* ========= \t===========\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\n*\t\t\t\tup resource:\n*\t\t\t\t(a) SLEEP_15MS - 15 ms sleep\n*\t\t\t\t(b) SLEEP_30MS - 30 ms sleep\n*\t\t\t\t(c) SLEEP_60MS - 60 ms sleep\n*\t\t\t\t(d) SLEEP_120MS - 120 ms sleep\n*\t\t\t\t(e) SLEEP_250MS - 250 ms sleep\n*\t\t\t\t(f) SLEEP_500MS - 500 ms sleep\n*\t\t\t\t(g) SLEEP_1S - 1 s sleep\n*\t\t\t\t(h) SLEEP_2S - 2 s sleep\n*\t\t\t\t(i) SLEEP_4S - 4 s sleep\n*\t\t\t\t(j) SLEEP_8S - 8 s sleep\n*\t\t\t\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\n*\n* 2. adc\t\tADC module disable control:\n*\t\t\t\t(a) ADC_OFF - Turn off ADC module\n*\t\t\t\t(b) ADC_ON - Leave ADC module in its default state\n*\n* 3. timer4\t\tTimer 4 module disable control:\n*\t\t\t\t(a) TIMER4_OFF - Turn off Timer 4 module\n*\t\t\t\t(b) TIMER4_ON - Leave Timer 4 module in its default state\n*\n* 4. timer3\t\tTimer 3 module disable control:\n*\t\t\t\t(a) TIMER3_OFF - Turn off Timer 3 module\n*\t\t\t\t(b) TIMER3_ON - Leave Timer 3 module in its default state\n*\n* 5. timer1\t\tTimer 1 module disable control:\n*\t\t\t\t(a) TIMER1_OFF - Turn off Timer 1 module\n*\t\t\t\t(b) TIMER1_ON - Leave Timer 1 module in its default state\n*\n* 6. timer0\t\tTimer 0 module disable control:\n*\t\t\t\t(a) TIMER0_OFF - Turn off Timer 0 module\n*\t\t\t\t(b) TIMER0_ON - Leave Timer 0 module in its default state\n*\n* 7. spi\t\tSPI module disable control:\n*\t\t\t\t(a) SPI_OFF - Turn off SPI module\n*\t\t\t\t(b) SPI_ON - Leave SPI module in its default state\n*\n* 8. usart1\t\tUSART1 module disable control:\n*\t\t\t\t(a) USART1_OFF - Turn off USART1 module\n*\t\t\t\t(b) USART1_ON - Leave USART1 module in its default state\n*\n* 9. twi\t\tTWI module disable control:\n*\t\t\t\t(a) TWI_OFF - Turn off TWI module\n*\t\t\t\t(b) TWI_ON - Leave TWI module in its default state\n*\n* 10.usb\t\tUSB module disable control:\n*\t\t\t\t(a) USB_OFF - Turn off USB module\n*\t\t\t\t(b) USB_ON - Leave USB module in its default state\n*******************************************************************************/\n#if defined __AVR_ATmega32U4__\nvoid\tLowPowerClass::idle(period_t period, adc_t adc,\n\t\t\t\t\t\t\ttimer4_t timer4, timer3_t timer3,\n\t\t\t\t\t\t\ttimer1_t timer1, timer0_t timer0,\n\t\t\t\t\t\t\tspi_t spi, usart1_t usart1,\ttwi_t twi, usb_t usb)\n{\n\tif (adc == ADC_OFF)\n\t{\n\t\tADCSRA &= ~(1 << ADEN);\n\t\tpower_adc_disable();\n\t}\n\n\tif (timer4 == TIMER4_OFF)\tpower_timer4_disable();\n\tif (timer3 == TIMER3_OFF)\tpower_timer3_disable();\n\tif (timer1 == TIMER1_OFF)\tpower_timer1_disable();\n\tif (timer0 == TIMER0_OFF)\tpower_timer0_disable();\n\tif (spi == SPI_OFF)\t\t\tpower_spi_disable();\n\tif (usart1 == USART1_OFF)\tpower_usart1_disable();\n\tif (twi == TWI_OFF)\t\t\tpower_twi_disable();\n\tif (usb == USB_OFF)\t\t\tpower_usb_disable();\n\n\tif (period != SLEEP_FOREVER)\n\t{\n\t\twdt_enable(period);\n\t\tWDTCSR |= (1 << WDIE);\n\t}\n\n\tlowPowerBodOn(SLEEP_MODE_IDLE);\n\n\tif (adc == ADC_OFF)\n\t{\n\t\tpower_adc_enable();\n\t\tADCSRA |= (1 << ADEN);\n\t}\n\n\tif (timer4 == TIMER4_OFF)\tpower_timer4_enable();\n\tif (timer3 == TIMER3_OFF)\tpower_timer3_enable();\n\tif (timer1 == TIMER1_OFF)\tpower_timer1_enable();\n\tif (timer0 == TIMER0_OFF)\tpower_timer0_enable();\n\tif (spi == SPI_OFF)\t\t\tpower_spi_enable();\n\tif (usart1 == USART1_OFF)\tpower_usart1_enable();\n\tif (twi == TWI_OFF)\t\t\tpower_twi_enable();\n\tif (usb == USB_OFF)\t\t\tpower_usb_enable();\n}\n#endif\n\n/*******************************************************************************\n* Name: idle\n* Description: Putting ATmega644P & ATmega1284P into idle state. Please make sure\n*\t\t\t you understand the implication and result of disabling module.\n*\t\t\t Take note that extra USART 1 compared to an ATmega328P/168.\n*\n* Argument \tDescription\n* ========= \t===========\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\n*\t\t\t\tup resource:\n*\t\t\t\t(a) SLEEP_15MS - 15 ms sleep\n*\t\t\t\t(b) SLEEP_30MS - 30 ms sleep\n*\t\t\t\t(c) SLEEP_60MS - 60 ms sleep\n*\t\t\t\t(d) SLEEP_120MS - 120 ms sleep\n*\t\t\t\t(e) SLEEP_250MS - 250 ms sleep\n*\t\t\t\t(f) SLEEP_500MS - 500 ms sleep\n*\t\t\t\t(g) SLEEP_1S - 1 s sleep\n*\t\t\t\t(h) SLEEP_2S - 2 s sleep\n*\t\t\t\t(i) SLEEP_4S - 4 s sleep\n*\t\t\t\t(j) SLEEP_8S - 8 s sleep\n*\t\t\t\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\n*\n* 2. adc\t\tADC module disable control:\n*\t\t\t\t(a) ADC_OFF - Turn off ADC module\n*\t\t\t\t(b) ADC_ON - Leave ADC module in its default state\n*\n* 3. timer2\t\tTimer 2 module disable control:\n*\t\t\t\t(a) TIMER2_OFF - Turn off Timer 2 module\n*\t\t\t\t(b) TIMER2_ON - Leave Timer 2 module in its default state\n*\n* 4. timer1\t\tTimer 1 module disable control:\n*\t\t\t\t(a) TIMER1_OFF - Turn off Timer 1 module\n*\t\t\t\t(b) TIMER1_ON - Leave Timer 1 module in its default state\n*\n* 5. timer0\t\tTimer 0 module disable control:\n*\t\t\t\t(a) TIMER0_OFF - Turn off Timer 0 module\n*\t\t\t\t(b) TIMER0_ON - Leave Timer 0 module in its default state\n*\n* 6. spi\t\tSPI module disable control:\n*\t\t\t\t(a) SPI_OFF - Turn off SPI module\n*\t\t\t\t(b) SPI_ON - Leave SPI module in its default state\n*\n* 7. usart1\t\tUSART1 module disable control:\n*\t\t\t\t(a) USART1_OFF - Turn off USART1 module\n*\t\t\t\t(b) USART1_ON - Leave USART1 module in its default state\n*\n* 8. usart0\t\tUSART0 module disable control:\n*\t\t\t\t(a) USART0_OFF - Turn off USART0 module\n*\t\t\t\t(b) USART0_ON - Leave USART0 module in its default state\n*\n* 9. twi\t\tTWI module disable control:\n*\t\t\t\t(a) TWI_OFF - Turn off TWI module\n*\t\t\t\t(b) TWI_ON - Leave TWI module in its default state\n*\n*******************************************************************************/\n#if defined (__AVR_ATmega644P__) || defined (__AVR_ATmega1284P__)\nvoid\tLowPowerClass::idle(period_t period, adc_t adc, timer2_t timer2,\n\t\t\t\t\t\t\ttimer1_t timer1, timer0_t timer0, spi_t spi,\n\t\t\t\t\t\t\tusart1_t usart1, usart0_t usart0, twi_t twi)\n{\n\t// Temporary clock source variable\n\tunsigned char clockSource = 0;\n\n\tif (timer2 == TIMER2_OFF)\n\t{\n\t\t// Store current setting\n clockSource = TCCR2B;\n\n\t\t// Remove the clock source to shutdown Timer2\n\t\tTCCR2B &= ~(1 << CS22);\n\t\tTCCR2B &= ~(1 << CS21);\n\t\tTCCR2B &= ~(1 << CS20);\n\n\t\tpower_timer2_disable();\n\t}\n\n\tif (adc == ADC_OFF)\n\t{\n\t\tADCSRA &= ~(1 << ADEN);\n\t\tpower_adc_disable();\n\t}\n\n\tif (timer1 == TIMER1_OFF)\tpower_timer1_disable();\n\tif (timer0 == TIMER0_OFF)\tpower_timer0_disable();\n\tif (spi == SPI_OFF)\t\t power_spi_disable();\n\tif (usart1 == USART1_OFF)\tpower_usart1_disable();\n\tif (usart0 == USART0_OFF)\tpower_usart0_disable();\n\tif (twi == TWI_OFF)\t\t\tpower_twi_disable();\n\n\tif (period != SLEEP_FOREVER)\n\t{\n\t\twdt_enable(period);\n\t\tWDTCSR |= (1 << WDIE);\n\t}\n\n\tlowPowerBodOn(SLEEP_MODE_IDLE);\n\n\tif (adc == ADC_OFF)\n\t{\n\t\tpower_adc_enable();\n\t\tADCSRA |= (1 << ADEN);\n\t}\n\n\tif (timer2 == TIMER2_OFF)\n\t{\n // Restore previous setting\n TCCR2B = clockSource;\n\n\t\tpower_timer2_enable();\n\t}\n\n\tif (timer1 == TIMER1_OFF)\tpower_timer1_enable();\n\tif (timer0 == TIMER0_OFF)\tpower_timer0_enable();\n\tif (spi == SPI_OFF)\t\t\tpower_spi_enable();\n\tif (usart1 == USART1_OFF)\tpower_usart1_enable();\n\tif (usart0 == USART0_OFF)\tpower_usart0_enable();\n\tif (twi == TWI_OFF)\t\t\tpower_twi_enable();\n}\n#endif\n\n/*******************************************************************************\n* Name: idle\n* Description: Putting ATmega2560 & ATmega1280 into idle state. Please make sure\n*\t\t\t you understand the implication and result of disabling module.\n*\t\t\t Take note that extra Timer 5, 4, 3 compared to an ATmega328P/168.\n*\t\t\t Also take note that extra USART 3, 2, 1 compared to an\n*\t\t\t ATmega328P/168.\n*\n* Argument \tDescription\n* ========= \t===========\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\n*\t\t\t\tup resource:\n*\t\t\t\t(a) SLEEP_15MS - 15 ms sleep\n*\t\t\t\t(b) SLEEP_30MS - 30 ms sleep\n*\t\t\t\t(c) SLEEP_60MS - 60 ms sleep\n*\t\t\t\t(d) SLEEP_120MS - 120 ms sleep\n*\t\t\t\t(e) SLEEP_250MS - 250 ms sleep\n*\t\t\t\t(f) SLEEP_500MS - 500 ms sleep\n*\t\t\t\t(g) SLEEP_1S - 1 s sleep\n*\t\t\t\t(h) SLEEP_2S - 2 s sleep\n*\t\t\t\t(i) SLEEP_4S - 4 s sleep\n*\t\t\t\t(j) SLEEP_8S - 8 s sleep\n*\t\t\t\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\n*\n* 2. adc\t\tADC module disable control:\n*\t\t\t\t(a) ADC_OFF - Turn off ADC module\n*\t\t\t\t(b) ADC_ON - Leave ADC module in its default state\n*\n* 3. timer5\t\tTimer 5 module disable control:\n*\t\t\t\t(a) TIMER5_OFF - Turn off Timer 5 module\n*\t\t\t\t(b) TIMER5_ON - Leave Timer 5 module in its default state\n*\n* 4. timer4\t\tTimer 4 module disable control:\n*\t\t\t\t(a) TIMER4_OFF - Turn off Timer 4 module\n*\t\t\t\t(b) TIMER4_ON - Leave Timer 4 module in its default state\n*\n* 5. timer3\t\tTimer 3 module disable control:\n*\t\t\t\t(a) TIMER3_OFF - Turn off Timer 3 module\n*\t\t\t\t(b) TIMER3_ON - Leave Timer 3 module in its default state\n*\n* 6. timer2\t\tTimer 2 module disable control:\n*\t\t\t\t(a) TIMER2_OFF - Turn off Timer 2 module\n*\t\t\t\t(b) TIMER2_ON - Leave Timer 2 module in its default state\n*\n* 7. timer1\t\tTimer 1 module disable control:\n*\t\t\t\t(a) TIMER1_OFF - Turn off Timer 1 module\n*\t\t\t\t(b) TIMER1_ON - Leave Timer 1 module in its default state\n*\n* 8. timer0\t\tTimer 0 module disable control:\n*\t\t\t\t(a) TIMER0_OFF - Turn off Timer 0 module\n*\t\t\t\t(b) TIMER0_ON - Leave Timer 0 module in its default state\n*\n* 9. spi\t\tSPI module disable control:\n*\t\t\t\t(a) SPI_OFF - Turn off SPI module\n*\t\t\t\t(b) SPI_ON - Leave SPI module in its default state\n*\n* 10.usart3\t\tUSART3 module disable control:\n*\t\t\t\t(a) USART3_OFF - Turn off USART3 module\n*\t\t\t\t(b) USART3_ON - Leave USART3 module in its default state\n*\n* 11.usart2\t\tUSART2 module disable control:\n*\t\t\t\t(a) USART2_OFF - Turn off USART2 module\n*\t\t\t\t(b) USART2_ON - Leave USART2 module in its default state\n*\n* 12.usart1\t\tUSART1 module disable control:\n*\t\t\t\t(a) USART1_OFF - Turn off USART1 module\n*\t\t\t\t(b) USART1_ON - Leave USART1 module in its default state\n*\n* 13.usart0\t\tUSART0 module disable control:\n*\t\t\t\t(a) USART0_OFF - Turn off USART0 module\n*\t\t\t\t(b) USART0_ON - Leave USART0 module in its default state\n*\n* 14.twi\t\tTWI module disable control:\n*\t\t\t\t(a) TWI_OFF - Turn off TWI module\n*\t\t\t\t(b) TWI_ON - Leave TWI module in its default state\n*\n*******************************************************************************/\n#if defined (__AVR_ATmega2560__) || defined (__AVR_ATmega1280__)\nvoid\tLowPowerClass::idle(period_t period, adc_t adc, timer5_t timer5,\n\t\t\t\t\t timer4_t timer4, timer3_t timer3, timer2_t timer2,\n\t\t\t\t\t\t\ttimer1_t timer1, timer0_t timer0, spi_t spi,\n\t\t\t\t\t\t\tusart3_t usart3, usart2_t usart2, usart1_t usart1,\n\t\t\t usart0_t usart0, twi_t twi)\n{\n\t// Temporary clock source variable\n\tunsigned char clockSource = 0;\n\n\tif (timer2 == TIMER2_OFF)\n\t{\n\t\t// Store current setting\n clockSource = TCCR2B;\n\n\t\t// Remove the clock source to shutdown Timer2\n\t\tTCCR2B &= ~(1 << CS22);\n\t\tTCCR2B &= ~(1 << CS21);\n\t\tTCCR2B &= ~(1 << CS20);\n\n\t\tpower_timer2_disable();\n\t}\n\n\tif (adc == ADC_OFF)\n\t{\n\t\tADCSRA &= ~(1 << ADEN);\n\t\tpower_adc_disable();\n\t}\n\n\tif (timer5 == TIMER5_OFF)\tpower_timer5_disable();\n\tif (timer4 == TIMER4_OFF)\tpower_timer4_disable();\n\tif (timer3 == TIMER3_OFF)\tpower_timer3_disable();\n\tif (timer1 == TIMER1_OFF)\tpower_timer1_disable();\n\tif (timer0 == TIMER0_OFF)\tpower_timer0_disable();\n\tif (spi == SPI_OFF)\t\t power_spi_disable();\n\tif (usart3 == USART3_OFF)\tpower_usart3_disable();\n\tif (usart2 == USART2_OFF)\tpower_usart2_disable();\n\tif (usart1 == USART1_OFF)\tpower_usart1_disable();\n\tif (usart0 == USART0_OFF)\tpower_usart0_disable();\n\tif (twi == TWI_OFF)\t\t\tpower_twi_disable();\n\n\tif (period != SLEEP_FOREVER)\n\t{\n\t\twdt_enable(period);\n\t\tWDTCSR |= (1 << WDIE);\n\t}\n\n\tlowPowerBodOn(SLEEP_MODE_IDLE);\n\n\tif (adc == ADC_OFF)\n\t{\n\t\tpower_adc_enable();\n\t\tADCSRA |= (1 << ADEN);\n\t}\n\n\tif (timer2 == TIMER2_OFF)\n\t{\n // Restore previous setting\n TCCR2B = clockSource;\n\n\t\tpower_timer2_enable();\n\t}\n\n\tif (timer5 == TIMER5_OFF)\tpower_timer5_enable();\n\tif (timer4 == TIMER4_OFF)\tpower_timer4_enable();\n\tif (timer3 == TIMER3_OFF)\tpower_timer3_enable();\n\tif (timer1 == TIMER1_OFF)\tpower_timer1_enable();\n\tif (timer0 == TIMER0_OFF)\tpower_timer0_enable();\n\tif (spi == SPI_OFF)\t\t\tpower_spi_enable();\n\tif (usart3 == USART3_OFF)\tpower_usart3_enable();\n\tif (usart2 == USART2_OFF)\tpower_usart2_enable();\n\tif (usart1 == USART1_OFF)\tpower_usart1_enable();\n\tif (usart0 == USART0_OFF)\tpower_usart0_enable();\n\tif (twi == TWI_OFF)\t\t\tpower_twi_enable();\n}\n#endif\n\n/*******************************************************************************\n* Name: idle\n* Description: Putting ATmega256RFR2 into idle state. Please make sure\n*\t\t\t you understand the implication and result of disabling module.\n*\t\t\t Take note that extra Timer 5, 4, 3 compared to an ATmega328P/168.\n*\t\t\t Also take note that extra USART 1 compared to an\n*\t\t\t ATmega328P/168.\n*\n* Argument \tDescription\n* ========= \t===========\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\n*\t\t\t\tup resource:\n*\t\t\t\t(a) SLEEP_15MS - 15 ms sleep\n*\t\t\t\t(b) SLEEP_30MS - 30 ms sleep\n*\t\t\t\t(c) SLEEP_60MS - 60 ms sleep\n*\t\t\t\t(d) SLEEP_120MS - 120 ms sleep\n*\t\t\t\t(e) SLEEP_250MS - 250 ms sleep\n*\t\t\t\t(f) SLEEP_500MS - 500 ms sleep\n*\t\t\t\t(g) SLEEP_1S - 1 s sleep\n*\t\t\t\t(h) SLEEP_2S - 2 s sleep\n*\t\t\t\t(i) SLEEP_4S - 4 s sleep\n*\t\t\t\t(j) SLEEP_8S - 8 s sleep\n*\t\t\t\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\n*\n* 2. adc\t\tADC module disable control:\n*\t\t\t\t(a) ADC_OFF - Turn off ADC module\n*\t\t\t\t(b) ADC_ON - Leave ADC module in its default state\n*\n* 3. timer5\t\tTimer 5 module disable control:\n*\t\t\t\t(a) TIMER5_OFF - Turn off Timer 5 module\n*\t\t\t\t(b) TIMER5_ON - Leave Timer 5 module in its default state\n*\n* 4. timer4\t\tTimer 4 module disable control:\n*\t\t\t\t(a) TIMER4_OFF - Turn off Timer 4 module\n*\t\t\t\t(b) TIMER4_ON - Leave Timer 4 module in its default state\n*\n* 5. timer3\t\tTimer 3 module disable control:\n*\t\t\t\t(a) TIMER3_OFF - Turn off Timer 3 module\n*\t\t\t\t(b) TIMER3_ON - Leave Timer 3 module in its default state\n*\n* 6. timer2\t\tTimer 2 module disable control:\n*\t\t\t\t(a) TIMER2_OFF - Turn off Timer 2 module\n*\t\t\t\t(b) TIMER2_ON - Leave Timer 2 module in its default state\n*\n* 7. timer1\t\tTimer 1 module disable control:\n*\t\t\t\t(a) TIMER1_OFF - Turn off Timer 1 module\n*\t\t\t\t(b) TIMER1_ON - Leave Timer 1 module in its default state\n*\n* 8. timer0\t\tTimer 0 module disable control:\n*\t\t\t\t(a) TIMER0_OFF - Turn off Timer 0 module\n*\t\t\t\t(b) TIMER0_ON - Leave Timer 0 module in its default state\n*\n* 9. spi\t\tSPI module disable control:\n*\t\t\t\t(a) SPI_OFF - Turn off SPI module\n*\t\t\t\t(b) SPI_ON - Leave SPI module in its default state\n*\n* 10.usart1\t\tUSART1 module disable control:\n*\t\t\t\t(a) USART1_OFF - Turn off USART1 module\n*\t\t\t\t(b) USART1_ON - Leave USART1 module in its default state\n*\n* 11.usart0\t\tUSART0 module disable control:\n*\t\t\t\t(a) USART0_OFF - Turn off USART0 module\n*\t\t\t\t(b) USART0_ON - Leave USART0 module in its default state\n*\n* 12.twi\t\tTWI module disable control:\n*\t\t\t\t(a) TWI_OFF - Turn off TWI module\n*\t\t\t\t(b) TWI_ON - Leave TWI module in its default state\n*\n*******************************************************************************/\n#if defined (__AVR_ATmega256RFR2__)\nvoid\tLowPowerClass::idle(period_t period, adc_t adc, timer5_t timer5,\n\t\t\t\t\t timer4_t timer4, timer3_t timer3, timer2_t timer2,\n\t\t\t\t\t\t\t\t\t\t\t\t\ttimer1_t timer1, timer0_t timer0, spi_t spi,\n\t\t\t\t\t\t\t\t\t\t\t\t\tusart1_t usart1,\n\t\t\t usart0_t usart0, twi_t twi)\n{\n\t// Temporary clock source variable\n\tunsigned char clockSource = 0;\n\n\tif (timer2 == TIMER2_OFF)\n\t{\n\t\t// Store current setting\n clockSource = TCCR2B;\n\n\t\t// Remove the clock source to shutdown Timer2\n\t\tTCCR2B &= ~(1 << CS22);\n\t\tTCCR2B &= ~(1 << CS21);\n\t\tTCCR2B &= ~(1 << CS20);\n\n\t\tpower_timer2_disable();\n\t}\n\n\tif (adc == ADC_OFF)\n\t{\n\t\tADCSRA &= ~(1 << ADEN);\n\t\tpower_adc_disable();\n\t}\n\n\tif (timer5 == TIMER5_OFF)\tpower_timer5_disable();\n\tif (timer4 == TIMER4_OFF)\tpower_timer4_disable();\n\tif (timer3 == TIMER3_OFF)\tpower_timer3_disable();\n\tif (timer1 == TIMER1_OFF)\tpower_timer1_disable();\n\tif (timer0 == TIMER0_OFF)\tpower_timer0_disable();\n\tif (spi == SPI_OFF)\t\t\t power_spi_disable();\n\tif (usart1 == USART1_OFF)\tpower_usart1_disable();\n\tif (usart0 == USART0_OFF)\tpower_usart0_disable();\n\tif (twi == TWI_OFF)\t\t\t power_twi_disable();\n\n\tif (period != SLEEP_FOREVER)\n\t{\n\t\twdt_enable(period);\n\t\tWDTCSR |= (1 << WDIE);\n\t}\n\n\tlowPowerBodOn(SLEEP_MODE_IDLE);\n\n\tif (adc == ADC_OFF)\n\t{\n\t\tpower_adc_enable();\n\t\tADCSRA |= (1 << ADEN);\n\t}\n\n\tif (timer2 == TIMER2_OFF)\n\t{\n // Restore previous setting\n TCCR2B = clockSource;\n\n\t\tpower_timer2_enable();\n\t}\n\n\tif (timer5 == TIMER5_OFF)\tpower_timer5_enable();\n\tif (timer4 == TIMER4_OFF)\tpower_timer4_enable();\n\tif (timer3 == TIMER3_OFF)\tpower_timer3_enable();\n\tif (timer1 == TIMER1_OFF)\tpower_timer1_enable();\n\tif (timer0 == TIMER0_OFF)\tpower_timer0_enable();\n\tif (spi == SPI_OFF)\t\t\t power_spi_enable();\n\tif (usart1 == USART1_OFF)\tpower_usart1_enable();\n\tif (usart0 == USART0_OFF)\tpower_usart0_enable();\n\tif (twi == TWI_OFF)\t\t\t power_twi_enable();\n}\n#endif\n\n\n/*******************************************************************************\n* Name: adcNoiseReduction\n* Description: Putting microcontroller into ADC noise reduction state. This is\n*\t\t\t a very useful state when using the ADC to achieve best and low\n* noise signal.\n*\n* Argument \tDescription\n* ========= \t===========\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\n*\t\t\t\tup resource:\n*\t\t\t\t(a) SLEEP_15MS - 15 ms sleep\n*\t\t\t\t(b) SLEEP_30MS - 30 ms sleep\n*\t\t\t\t(c) SLEEP_60MS - 60 ms sleep\n*\t\t\t\t(d) SLEEP_120MS - 120 ms sleep\n*\t\t\t\t(e) SLEEP_250MS - 250 ms sleep\n*\t\t\t\t(f) SLEEP_500MS - 500 ms sleep\n*\t\t\t\t(g) SLEEP_1S - 1 s sleep\n*\t\t\t\t(h) SLEEP_2S - 2 s sleep\n*\t\t\t\t(i) SLEEP_4S - 4 s sleep\n*\t\t\t\t(j) SLEEP_8S - 8 s sleep\n*\t\t\t\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\n*\n* 2. adc\t\tADC module disable control. Turning off the ADC module is\n*\t\t\t\tbasically removing the purpose of this low power mode.\n*\t\t\t\t(a) ADC_OFF - Turn off ADC module\n*\t\t\t\t(b) ADC_ON - Leave ADC module in its default state\n*\n* 3. timer2\t\tTimer 2 module disable control:\n*\t\t\t\t(a) TIMER2_OFF - Turn off Timer 2 module\n*\t\t\t\t(b) TIMER2_ON - Leave Timer 2 module in its default state\n*\n*******************************************************************************/\nvoid\tLowPowerClass::adcNoiseReduction(period_t period, adc_t adc,\n\t\t\t\t\t\t\t\t\t\t timer2_t timer2)\n{\n\t// Temporary clock source variable\n\tunsigned char clockSource = 0;\n\n\t#if !defined(__AVR_ATmega32U4__)\n\tif (timer2 == TIMER2_OFF)\n\t{\n\t\t// Store current setting\n clockSource = TCCR2B;\n\n\t\t// Remove the clock source to shutdown Timer2\n\t\tTCCR2B &= ~(1 << CS22);\n\t\tTCCR2B &= ~(1 << CS21);\n\t\tTCCR2B &= ~(1 << CS20);\n\t}\n\t#endif\n\n\tif (adc == ADC_OFF)\tADCSRA &= ~(1 << ADEN);\n\n\tif (period != SLEEP_FOREVER)\n\t{\n\t\twdt_enable(period);\n\t\tWDTCSR |= (1 << WDIE);\n\t}\n\n\tlowPowerBodOn(SLEEP_MODE_ADC);\n\n\tif (adc == ADC_OFF) ADCSRA |= (1 << ADEN);\n\n\t#if !defined(__AVR_ATmega32U4__)\n\tif (timer2 == TIMER2_OFF)\n\t{\n // Restore previous setting\n TCCR2B = clockSource;\n\t}\n\t#endif\n}\n\n/*******************************************************************************\n* Name: powerDown\n* Description: Putting microcontroller into power down state. This is\n*\t\t\t the lowest current consumption state. Use this together with\n*\t\t\t external pin interrupt to wake up through external event\n*\t\t\t triggering (example: RTC clockout pin, SD card detect pin).\n*\n* Argument \tDescription\n* ========= \t===========\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\n*\t\t\t\tup resource:\n*\t\t\t\t(a) SLEEP_15MS - 15 ms sleep\n*\t\t\t\t(b) SLEEP_30MS - 30 ms sleep\n*\t\t\t\t(c) SLEEP_60MS - 60 ms sleep\n*\t\t\t\t(d) SLEEP_120MS - 120 ms sleep\n*\t\t\t\t(e) SLEEP_250MS - 250 ms sleep\n*\t\t\t\t(f) SLEEP_500MS - 500 ms sleep\n*\t\t\t\t(g) SLEEP_1S - 1 s sleep\n*\t\t\t\t(h) SLEEP_2S - 2 s sleep\n*\t\t\t\t(i) SLEEP_4S - 4 s sleep\n*\t\t\t\t(j) SLEEP_8S - 8 s sleep\n*\t\t\t\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\n*\n* 2. adc\t\tADC module disable control. Turning off the ADC module is\n*\t\t\t\tbasically removing the purpose of this low power mode.\n*\t\t\t\t(a) ADC_OFF - Turn off ADC module\n*\t\t\t\t(b) ADC_ON - Leave ADC module in its default state\n*\n* 3. bod\t\tBrown Out Detector (BOD) module disable control:\n*\t\t\t\t(a) BOD_OFF - Turn off BOD module\n*\t\t\t\t(b) BOD_ON - Leave BOD module in its default state\n*\n*******************************************************************************/\nvoid\tLowPowerClass::powerDown(period_t period, adc_t adc, bod_t bod)\n{\n\tif (adc == ADC_OFF)\tADCSRA &= ~(1 << ADEN);\n\n\tif (period != SLEEP_FOREVER)\n\t{\n\t\twdt_enable(period);\n\t\tWDTCSR |= (1 << WDIE);\n\t}\n\tif (bod == BOD_OFF)\n\t{\n\t\t#if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega168P__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__)\n\t\t\tlowPowerBodOff(SLEEP_MODE_PWR_DOWN);\n\t\t#else\n\t\t\tlowPowerBodOn(SLEEP_MODE_PWR_DOWN);\n\t\t#endif\n\t}\n\telse\n\t{\n\t\tlowPowerBodOn(SLEEP_MODE_PWR_DOWN);\n\t}\n\n\tif (adc == ADC_OFF) ADCSRA |= (1 << ADEN);\n}\n\n/*******************************************************************************\n* Name: powerSave\n* Description: Putting microcontroller into power save state. This is\n*\t\t\t the lowest current consumption state after power down.\n*\t\t\t Use this state together with an external 32.768 kHz crystal (but\n*\t\t\t 8/16 MHz crystal/resonator need to be removed) to provide an\n*\t\t\t asynchronous clock source to Timer 2. Please take note that\n*\t\t\t Timer 2 is also used by the Arduino core for PWM operation.\n*\t\t\t Please refer to wiring.c for explanation. Removal of the external\n*\t\t\t 8/16 MHz crystal/resonator requires the microcontroller to run\n*\t\t\t on its internal RC oscillator which is not so accurate for time\n*\t\t\t critical operation.\n*\n* Argument \tDescription\n* ========= \t===========\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\n*\t\t\t\tup resource:\n*\t\t\t\t(a) SLEEP_15MS - 15 ms sleep\n*\t\t\t\t(b) SLEEP_30MS - 30 ms sleep\n*\t\t\t\t(c) SLEEP_60MS - 60 ms sleep\n*\t\t\t\t(d) SLEEP_120MS - 120 ms sleep\n*\t\t\t\t(e) SLEEP_250MS - 250 ms sleep\n*\t\t\t\t(f) SLEEP_500MS - 500 ms sleep\n*\t\t\t\t(g) SLEEP_1S - 1 s sleep\n*\t\t\t\t(h) SLEEP_2S - 2 s sleep\n*\t\t\t\t(i) SLEEP_4S - 4 s sleep\n*\t\t\t\t(j) SLEEP_8S - 8 s sleep\n*\t\t\t\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\n*\n* 2. adc\t\tADC module disable control. Turning off the ADC module is\n*\t\t\t\tbasically removing the purpose of this low power mode.\n*\t\t\t\t(a) ADC_OFF - Turn off ADC module\n*\t\t\t\t(b) ADC_ON - Leave ADC module in its default state\n*\n* 3. bod\t\tBrown Out Detector (BOD) module disable control:\n*\t\t\t\t(a) BOD_OFF - Turn off BOD module\n*\t\t\t\t(b) BOD_ON - Leave BOD module in its default state\n*\n* 4. timer2\t\tTimer 2 module disable control:\n*\t\t\t\t(a) TIMER2_OFF - Turn off Timer 2 module\n*\t\t\t\t(b) TIMER2_ON - Leave Timer 2 module in its default state\n*\n*******************************************************************************/\nvoid\tLowPowerClass::powerSave(period_t period, adc_t adc, bod_t bod,\n\t\t\t\t\t\t\t timer2_t timer2)\n{\n\t// Temporary clock source variable\n\tunsigned char clockSource = 0;\n\n\t#if !defined(__AVR_ATmega32U4__)\n\tif (timer2 == TIMER2_OFF)\n\t{\n\t\t// Store current setting\n clockSource = TCCR2B;\n\n\t\t// Remove the clock source to shutdown Timer2\n\t\tTCCR2B &= ~(1 << CS22);\n\t\tTCCR2B &= ~(1 << CS21);\n\t\tTCCR2B &= ~(1 << CS20);\n\t}\n\t#endif\n\n\tif (adc == ADC_OFF)\tADCSRA &= ~(1 << ADEN);\n\n\tif (period != SLEEP_FOREVER)\n\t{\n\t\twdt_enable(period);\n\t\tWDTCSR |= (1 << WDIE);\n\t}\n\n\tif (bod == BOD_OFF)\n\t{\n\t\t#if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega168P__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__)\n\t\t\tlowPowerBodOff(SLEEP_MODE_PWR_SAVE);\n\t\t#else\n\t\t\tlowPowerBodOn(SLEEP_MODE_PWR_SAVE);\n\t\t#endif\n\t}\n\telse\n\t{\n\t\tlowPowerBodOn(SLEEP_MODE_PWR_SAVE);\n\t}\n\n\tif (adc == ADC_OFF) ADCSRA |= (1 << ADEN);\n\n\t#if !defined(__AVR_ATmega32U4__)\n\tif (timer2 == TIMER2_OFF)\n\t{\n // Restore previous setting\n TCCR2B = clockSource;\n\t}\n\t#endif\n}\n\n/*******************************************************************************\n* Name: powerStandby\n* Description: Putting microcontroller into power standby state.\n*\n* Argument \tDescription\n* ========= \t===========\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\n*\t\t\t\tup resource:\n*\t\t\t\t(a) SLEEP_15MS - 15 ms sleep\n*\t\t\t\t(b) SLEEP_30MS - 30 ms sleep\n*\t\t\t\t(c) SLEEP_60MS - 60 ms sleep\n*\t\t\t\t(d) SLEEP_120MS - 120 ms sleep\n*\t\t\t\t(e) SLEEP_250MS - 250 ms sleep\n*\t\t\t\t(f) SLEEP_500MS - 500 ms sleep\n*\t\t\t\t(g) SLEEP_1S - 1 s sleep\n*\t\t\t\t(h) SLEEP_2S - 2 s sleep\n*\t\t\t\t(i) SLEEP_4S - 4 s sleep\n*\t\t\t\t(j) SLEEP_8S - 8 s sleep\n*\t\t\t\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\n*\n* 2. adc\t\tADC module disable control. Turning off the ADC module is\n*\t\t\t\tbasically removing the purpose of this low power mode.\n*\t\t\t\t(a) ADC_OFF - Turn off ADC module\n*\t\t\t\t(b) ADC_ON - Leave ADC module in its default state\n*\n* 3. bod\t\tBrown Out Detector (BOD) module disable control:\n*\t\t\t\t(a) BOD_OFF - Turn off BOD module\n*\t\t\t\t(b) BOD_ON - Leave BOD module in its default state\n*\n*******************************************************************************/\nvoid\tLowPowerClass::powerStandby(period_t period, adc_t adc, bod_t bod)\n{\n\tif (adc == ADC_OFF)\tADCSRA &= ~(1 << ADEN);\n\n\tif (period != SLEEP_FOREVER)\n\t{\n\t\twdt_enable(period);\n\t\tWDTCSR |= (1 << WDIE);\n\t}\n\n\tif (bod == BOD_OFF)\n\t{\n\t\t#if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega168P__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__)\n\t\t\tlowPowerBodOff(SLEEP_MODE_STANDBY);\n\t\t#else\n\t\t\tlowPowerBodOn(SLEEP_MODE_STANDBY);\n\t\t#endif\n\t}\n\telse\n\t{\n\t\tlowPowerBodOn(SLEEP_MODE_STANDBY);\n\t}\n\n\tif (adc == ADC_OFF) ADCSRA |= (1 << ADEN);\n}\n\n/*******************************************************************************\n* Name: powerExtStandby\n* Description: Putting microcontroller into power extended standby state. This\n*\t\t\t is different from the power standby state as it has the\n*\t\t\t capability to run Timer 2 asynchronously.\n* Not implemented on Atmega88 and Atmega168.\n*\n* Argument \tDescription\n* ========= \t===========\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\n*\t\t\t\tup resource:\n*\t\t\t\t(a) SLEEP_15MS - 15 ms sleep\n*\t\t\t\t(b) SLEEP_30MS - 30 ms sleep\n*\t\t\t\t(c) SLEEP_60MS - 60 ms sleep\n*\t\t\t\t(d) SLEEP_120MS - 120 ms sleep\n*\t\t\t\t(e) SLEEP_250MS - 250 ms sleep\n*\t\t\t\t(f) SLEEP_500MS - 500 ms sleep\n*\t\t\t\t(g) SLEEP_1S - 1 s sleep\n*\t\t\t\t(h) SLEEP_2S - 2 s sleep\n*\t\t\t\t(i) SLEEP_4S - 4 s sleep\n*\t\t\t\t(j) SLEEP_8S - 8 s sleep\n*\t\t\t\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\n*\n* 2. adc\t\tADC module disable control.\n*\t\t\t\t(a) ADC_OFF - Turn off ADC module\n*\t\t\t\t(b) ADC_ON - Leave ADC module in its default state\n*\n* 3. bod\t\tBrown Out Detector (BOD) module disable control:\n*\t\t\t\t(a) BOD_OFF - Turn off BOD module\n*\t\t\t\t(b) BOD_ON - Leave BOD module in its default state\n*\n* 4. timer2\t\tTimer 2 module disable control:\n*\t\t\t\t(a) TIMER2_OFF - Turn off Timer 2 module\n*\t\t\t\t(b) TIMER2_ON - Leave Timer 2 module in its default state\n*\n*******************************************************************************/\nvoid\tLowPowerClass::powerExtStandby(period_t period, adc_t adc, bod_t bod,\n\t\t\t\t\t\t\t\t\t timer2_t timer2)\n{\n\t// Temporary clock source variable\n\tunsigned char clockSource = 0;\n\n\t#if !defined(__AVR_ATmega32U4__)\n\tif (timer2 == TIMER2_OFF)\n\t{\n\t\t// Store current setting\n clockSource = TCCR2B;\n\n\t\t// Remove the clock source to shutdown Timer2\n\t\tTCCR2B &= ~(1 << CS22);\n\t\tTCCR2B &= ~(1 << CS21);\n\t\tTCCR2B &= ~(1 << CS20);\n\t}\n\t#endif\n\n\tif (adc == ADC_OFF)\tADCSRA &= ~(1 << ADEN);\n\n\tif (period != SLEEP_FOREVER)\n\t{\n\t\twdt_enable(period);\n\t\tWDTCSR |= (1 << WDIE);\n\t}\n\n\n\t#if defined (__AVR_ATmega88__) || defined (__AVR_ATmega168__) // SLEEP_MODE_EXT_STANDBY not implemented on Atmega88 / Atmega168\n\t#else\n\t\tif (bod == BOD_OFF)\n\t\t{\n\t\t\t#if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega168P__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__)\n\t\t\t\tlowPowerBodOff(SLEEP_MODE_EXT_STANDBY);\n\t\t\t#else\n\t\t\t\tlowPowerBodOn(SLEEP_MODE_EXT_STANDBY);\n\t\t\t#endif\n\t\t}\n\t\telse\n\t\t{\n\t\t\tlowPowerBodOn(SLEEP_MODE_EXT_STANDBY);\n\t\t}\n\t#endif\n\n\tif (adc == ADC_OFF) ADCSRA |= (1 << ADEN);\n\n\t#if !defined(__AVR_ATmega32U4__)\n\tif (timer2 == TIMER2_OFF)\n\t{\n // Restore previous setting\n TCCR2B = clockSource;\n\t}\n\t#endif\n}\n\n// sleep # of milliseconds using WDT (watchdog timer - accurate to within 10%, uses about 3uA)\nvoid LowPowerClass::longPowerDown(uint32_t sleepTime) {\n do {\n if (sleepTime > 8000)\n {\n powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);\n sleepTime-=8000;\n }\n else if (sleepTime > 4000)\n {\n powerDown(SLEEP_4S, ADC_OFF, BOD_OFF);\n sleepTime-=4000;\n }\n else if (sleepTime > 2000)\n {\n powerDown(SLEEP_2S, ADC_OFF, BOD_OFF);\n sleepTime-=2000;\n }\n else if (sleepTime > 1000)\n {\n powerDown(SLEEP_1S, ADC_OFF, BOD_OFF);\n sleepTime-=1000;\n }\n else if (sleepTime > 512)\n {\n powerDown(SLEEP_500MS, ADC_OFF, BOD_OFF);\n sleepTime-=512;\n }\n else if (sleepTime > 256)\n {\n powerDown(SLEEP_250MS, ADC_OFF, BOD_OFF);\n sleepTime-=256;\n }\n else if (sleepTime > 128)\n {\n powerDown(SLEEP_120MS, ADC_OFF, BOD_OFF);\n sleepTime-=128;\n }\n else if (sleepTime > 64)\n {\n powerDown(SLEEP_60MS, ADC_OFF, BOD_OFF);\n sleepTime-=64;\n }\n else if (sleepTime > 32)\n {\n powerDown(SLEEP_30MS, ADC_OFF, BOD_OFF);\n sleepTime-=32;\n }\n else if (sleepTime > 16)\n {\n powerDown(SLEEP_15MS, ADC_OFF, BOD_OFF);\n sleepTime-=16;\n }\n else\n {\n sleepTime=0;\n }\n } while(sleepTime);\n}\n\n/*******************************************************************************\n* Name: ISR (WDT_vect)\n* Description: Watchdog Timer interrupt service routine. This routine is\n*\t\t required to allow automatic WDIF and WDIE bit clearance in\n*\t\t\t hardware.\n*\n*******************************************************************************/\nISR (WDT_vect)\n{\n\t// WDIE & WDIF is cleared in hardware upon entering this ISR\n\twdt_disable();\n}\n\n#elif defined(__arm__)\n#if defined(__SAMD21__) || defined(ARDUINO_SAMD_ZERO)\n/*******************************************************************************\n* Name: standby\n* Description: Putting SAMD21G18A into idle mode. This is the lowest current\n* consumption mode. Requires separate handling of clock and\n* \t\t\t peripheral management (disabling and shutting down) to achieve\n* \t\t\t the desired current consumption.\n*\n* Argument \tDescription\n* ========= \t===========\n* 1. idleMode Idle mode level (0, 1, 2) where IDLE_2 level provide lowest\n* \t\t\t\tcurrent consumption in this mode.\n*\n*******************************************************************************/\nvoid\tLowPowerClass::idle(idle_t idleMode)\n{\n\tSCB->SCR &= ~SCB_SCR_SLEEPDEEP_Msk;\n\tPM->SLEEP.reg = idleMode;\n\t__DSB();\n\t__WFI();\n}\n\n/*******************************************************************************\n* Name: standby\n* Description: Putting SAMD21G18A into standby mode. This is the lowest current\n* consumption mode. Use this together with the built-in RTC (use\n* RTCZero library) or external pin interrupt to wake up through\n* external event triggering.\n*\n* Argument \tDescription\n* ========= \t===========\n* 1. NIL\n*\n*******************************************************************************/\nvoid\tLowPowerClass::standby()\n{\n\tSCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;\n\t__DSB();\n\t__WFI();\n}\n\n#else\n\t#error \"Please ensure chosen MCU is a SAMD21\"\n#endif\n#else\n\t#error \"Processor architecture is not supported.\"\n#endif\n\nLowPowerClass LowPower;" }, { filename: "src/LowPower.h", code: "#ifndef LowPower_h\n#define LowPower_h\n\n#include \"Arduino.h\"\n\nenum period_t\n{\n\tSLEEP_15MS,\n\tSLEEP_30MS,\n\tSLEEP_60MS,\n\tSLEEP_120MS,\n\tSLEEP_250MS,\n\tSLEEP_500MS,\n\tSLEEP_1S,\n\tSLEEP_2S,\n\tSLEEP_4S,\n\tSLEEP_8S,\n\tSLEEP_FOREVER\n};\n\nenum bod_t\n{\n\tBOD_OFF,\n\tBOD_ON\n};\n\nenum adc_t\n{\n\tADC_OFF,\n\tADC_ON\n};\n\nenum timer5_t\n{\n\tTIMER5_OFF,\n\tTIMER5_ON\n};\n\nenum timer4_t\n{\n\tTIMER4_OFF,\n\tTIMER4_ON\n};\n\nenum timer3_t\n{\n\tTIMER3_OFF,\n\tTIMER3_ON\n};\n\nenum timer2_t\n{\n\tTIMER2_OFF,\n\tTIMER2_ON\n};\n\nenum timer1_t\n{\n\tTIMER1_OFF,\n\tTIMER1_ON\n};\n\nenum timer0_t\n{\n\tTIMER0_OFF,\n\tTIMER0_ON\n};\n\nenum spi_t\n{\n\tSPI_OFF,\n\tSPI_ON\n};\n\nenum usart0_t\n{\n\tUSART0_OFF,\n\tUSART0_ON\n};\n\nenum usart1_t\n{\n\tUSART1_OFF,\n\tUSART1_ON\n};\n\nenum usart2_t\n{\n\tUSART2_OFF,\n\tUSART2_ON\n};\n\nenum usart3_t\n{\n\tUSART3_OFF,\n\tUSART3_ON\n};\n\nenum twi_t\n{\n\tTWI_OFF,\n\tTWI_ON\n};\n\nenum usb_t\n{\n\tUSB_OFF,\n\tUSB_ON\n};\n\nenum idle_t\n{\n\tIDLE_0,\n\tIDLE_1,\n\tIDLE_2\n};\n\nclass LowPowerClass\n{\n\tpublic:\n\t\t#if defined (__AVR__)\n\n\t\t\t#if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega168__) || defined (__AVR_ATmega168P__) || defined (__AVR_ATmega88__)\n\t\t\t\tvoid\tidle(period_t period, adc_t adc, timer2_t timer2,\n\t\t\t\t\t\t timer1_t timer1, timer0_t timer0, spi_t spi,\n\t\t\t\t\t usart0_t usart0, twi_t twi);\n\t\t\t#elif defined __AVR_ATmega644P__ || defined (__AVR_ATmega1284P__)\n\t\t\t\tvoid\tidle(period_t period, adc_t adc, timer2_t timer2,\n\t\t\t\t\t\t\t timer1_t timer1, timer0_t timer0, spi_t spi,\n\t\t\t\t\t\t\t usart1_t usart1, usart0_t usart0, twi_t twi);\n\t\t\t#elif defined __AVR_ATmega2560__\n\t\t\t\tvoid\tidle(period_t period, adc_t adc, timer5_t timer5,\n\t\t\t\t\t\t\t timer4_t timer4, timer3_t timer3, timer2_t timer2,\n\t\t\t\t\t\t\t timer1_t timer1, timer0_t timer0, spi_t spi,\n\t\t\t\t\t\t\t usart3_t usart3, usart2_t usart2, usart1_t usart1,\n\t\t\t\t\t\t\t usart0_t usart0, twi_t twi);\n\t\t\t#elif defined __AVR_ATmega256RFR2__\n\t\t\t\tvoid\tidle(period_t period, adc_t adc, timer5_t timer5,\n\t\t\t\t\t\t\t\t\t timer4_t timer4, timer3_t timer3, timer2_t timer2,\n\t\t\t\t \t\t\t\t timer1_t timer1, timer0_t timer0, spi_t spi,\n\t\t\t\t\t\t usart1_t usart1,\n\t\t\t\t\t\t\t\t\t usart0_t usart0, twi_t twi);\n\t\t\t#elif defined __AVR_ATmega32U4__\n\t\t\t\tvoid\tidle(period_t period, adc_t adc, timer4_t timer4,\n\t\t\t\t timer3_t timer3, timer1_t timer1, timer0_t timer0,\n\t\t\t\t spi_t spi, usart1_t usart1, twi_t twi, usb_t usb);\n\t\t\t#else\n\t\t\t\t#error \"Please ensure chosen MCU is either 88, 168, 168P, 328P, 32U4, 2560 or 256RFR2.\"\n\t\t\t#endif\n\t\t\tvoid\tadcNoiseReduction(period_t period, adc_t adc, timer2_t timer2) __attribute__((optimize(\"-O1\")));\n\t\t\tvoid\tpowerDown(period_t period, adc_t adc, bod_t bod) __attribute__((optimize(\"-O1\")));\n\t\t\tvoid\tpowerSave(period_t period, adc_t adc, bod_t bod, timer2_t timer2) __attribute__((optimize(\"-O1\")));\n\t\t\tvoid\tpowerStandby(period_t period, adc_t adc, bod_t bod) __attribute__((optimize(\"-O1\")));\n\t\t\tvoid\tpowerExtStandby(period_t period, adc_t adc, bod_t bod, timer2_t timer2) __attribute__((optimize(\"-O1\")));\n void longPowerDown(uint32_t sleepTime);\n\t\t#elif defined (__arm__)\n\t\t\t#if defined(__SAMD21__) || defined(ARDUINO_SAMD_ZERO)\n\t\t\t\tvoid\tidle(idle_t idleMode);\n\t\t\t\tvoid\tstandby();\n\t\t\t#else\n\t\t\t\t#error \"Please ensure chosen MCU is a SAMD21\"\n\t\t\t#endif\n\n\t\t#else\n\n\t\t\t#error \"Processor architecture is not supported.\"\n\n\t\t#endif\n};\n\nextern LowPowerClass LowPower;\n#endif" }] }; 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 ExtVdrGroveDivers { constructor() { this.checkFirmwareInForce = typeof checkFirmwareInForce !== 'undefined' ? checkFirmwareInForce : false; const handlerProxyUrl = window.MbApi.getExtResPath('vdr_grove_divers/handlerProxy.js', 'vdr_grove_divers'); 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_1654891253229': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1654891253229', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1654891387215': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1654891387215', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1654891387430': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1654891387430', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1654891387629': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1654891387629', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1654891387838': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1654891387838', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1654891388053': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1654891388053', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1654891388253': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1654891388253', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1654891388445': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1654891388445', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1654891388646': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1654891388646', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1654891388886': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1654891388886', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } } }; } getInfo() { return { "id": "vdr_grove_divers", "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_a6173b07", "colors": ["#7ED321", "#71BE1E", "#65A91A"], "menuIconURI": "", "blockIcon": { "type": "image", "width": 28, "height": 26, "src": window.MbApi.getExtResPath('vdr_grove_divers/imgs/6c1edb5f7d104e018ed377bd1a7f60a7.png', 'vdr_grove_divers') }, "blocks": [{ "opcode": "BLOCK_1654891253229", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": {}, "branchCount": 0, "handler": this.funcs.BLOCK_1654891253229 }, { "opcode": "BLOCK_1654891387215", "blockType": "conditional", "checkboxInFlyout": false, "hidden": false, "gap": 12, "arguments": { "forVar": { "type": "inputVariable", "defaultValue": "" }, "min": { "type": "number", "defaultValue": 1 }, "max": { "type": "number", "defaultValue": 10 }, "step": { "type": "number", "defaultValue": 1 } }, "branchCount": 1, "platform": ["mblockpc", "mblockweb"], "codes": { "arduinoc": { "code": ` for (int /*{forVar}*/=/*{min}*/ ; /*{forVar}*/<=/*{max}*/ ; /*{forVar}*/+=/*{step}*/) {\r\n /*{$BRANCH1}*/ \r\n }\r\n ` } }, "handler": this.funcs.BLOCK_1654891387215 }, { "opcode": "BLOCK_1654891387430", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "num": { "type": "fieldMenu", "defaultValue": "1", "menu": "BLOCK_1654891387430_NUM" } }, "branchCount": 0, "codes": { "arduinoc": { "code": `tempsDepart/*{num}*/=millis();`, "sections": { "declare": `unsigned long tempsDepart/*{num}*/ = 0; \r` } } }, "handler": this.funcs.BLOCK_1654891387430 }, { "opcode": "BLOCK_1654891387629", "blockType": "boolean", "checkboxInFlyout": false, "gap": 12, "arguments": { "num": { "type": "fieldMenu", "defaultValue": "1", "menu": "BLOCK_1654891387430_NUM" }, "time": { "type": "number", "defaultValue": 1000 } }, "branchCount": 0, "codes": { "arduinoc": { "code": `((tempsDepart/*{num}*/ + /*{time}*/) < millis())` } }, "handler": this.funcs.BLOCK_1654891387629 }, { "opcode": "BLOCK_1654891387838", "blockType": "command", "checkboxInFlyout": false, "hidden": false, "gap": 12, "arguments": { "pinsDigit": { "type": "fieldMenu", "defaultValue": "2", "menu": "BLOCK_1654891387838_PINSDIGIT" }, "onOff": { "type": "fieldMenu", "defaultValue": "1", "menu": "BLOCK_1654891387838_ONOFF" } }, "branchCount": 0, "platform": ["mblockpc", "mblockweb"], "codes": { "arduinoc": { "code": `SetPinState(/*{pinsDigit}*/,/*{onOff}*/);`, "sections": { "declare": `void SetPinState(int n,int val){\r\n if(val==2){\r\n if(digitalRead(n)){\r\n digitalWrite(n, LOW);\r\n }\r\n else{\r\n digitalWrite(n, HIGH);\r\n }\r\n delay(100);\r\n }else{\r\n digitalWrite(n, val);\r\n }\r\n}`, "setup": `pinMode(/*{pinsDigit}*/,OUTPUT);` } } }, "handler": this.funcs.BLOCK_1654891387838 }, { "opcode": "BLOCK_1654891388053", "blockType": "boolean", "checkboxInFlyout": false, "gap": 12, "arguments": { "pinsDigit": { "type": "fieldMenu", "defaultValue": "2", "menu": "BLOCK_1654891387838_PINSDIGIT" }, "etat": { "type": "fieldMenu", "defaultValue": "1", "menu": "BLOCK_1654891388053_ETAT" } }, "branchCount": 0, "codes": { "arduinoc": { "code": `digitalInputState (/*{pinsDigit}*/,/*{etat}*/)`, "sections": { "declare": `bool digitalInputState (int pinNum , bool state) {\r\n if (state) return digitalRead(pinNum);\r\n else return !digitalRead(pinNum);\r\n}`, "setup": `pinMode(/*{pinsDigit}*/,INPUT);` } } }, "handler": this.funcs.BLOCK_1654891388053 }, { "opcode": "BLOCK_1654891388253", "blockType": "number", "checkboxInFlyout": false, "gap": 12, "arguments": { "pinAnalogique": { "type": "fieldMenu", "defaultValue": "A0", "menu": "BLOCK_1654891388253_PINANALOGIQUE" }, "Grove_VCC": { "type": "fieldMenu", "defaultValue": "5", "menu": "BLOCK_1654891388253_GROVE_VCC" }, "angleMax": { "type": "number", "defaultValue": 100 } }, "branchCount": 0, "codes": { "arduinoc": { "code": `GetAnglePotentiometre()`, "sections": { "declare": `#define ROTARY_ANGLE_SENSOR /*{pinAnalogique}*/\r\n#define GROVE_VCC /*{Grove_VCC}*/\r\n#define FULL_ANGLE /*{angleMax}*/ //full value of the rotary angle is 300 degrees\r\n#define ADC_REF 5 \r\n\r\nint GetAnglePotentiometre(){\r\n int sensor_value = analogRead(ROTARY_ANGLE_SENSOR);\r\n return round(((float)sensor_value*ADC_REF/1023)*FULL_ANGLE/GROVE_VCC);\r\n}`, "setup": ` pinMode(ROTARY_ANGLE_SENSOR, INPUT);` } } }, "handler": this.funcs.BLOCK_1654891388253 }, { "opcode": "BLOCK_1654891388445", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "pinDigit": { "type": "fieldMenu", "defaultValue": "2", "menu": "BLOCK_1654891387838_PINSDIGIT" }, "note": { "type": "fieldMenu", "defaultValue": "1915", "menu": "BLOCK_1654891388445_NOTE" }, "duree": { "type": "number", "defaultValue": 1 } }, "branchCount": 0, "codes": { "arduinoc": { "code": `grove_buzzer_play_tone(/*{pinDigit}*/, /*{note}*/, /*{duree}*/*1000);`, "sections": { "declare": `void grove_buzzer_play_tone(int pin, int tone, int duration) { \r\n for (long i = 0; i < duration * 1000L; i += tone * 2) {\r\n digitalWrite(pin, HIGH);\r\n delayMicroseconds(tone);\r\n digitalWrite(pin, LOW);\r\n delayMicroseconds(tone);\r\n }\r\n}`, "setup": `pinMode(/*{pinDigit}*/,OUTPUT);` } } }, "handler": this.funcs.BLOCK_1654891388445 }, { "opcode": "BLOCK_1654891388646", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": {}, "branchCount": 0, "codes": { "arduinoc": { "code": `LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);\r\n//Serial.println(\"reveil\");\r\n//delay(100);`, "sections": { "include": ["\"src/LowPower.h\""] } } }, "handler": this.funcs.BLOCK_1654891388646 }, { "opcode": "BLOCK_1654891388886", "blockType": "number", "checkboxInFlyout": false, "gap": 12, "arguments": {}, "branchCount": 0, "codes": { "arduinoc": { "code": `(float((analogRead(analogInPin))*5)/1023*2)`, "sections": { "declare": `const int analogInPin = A0;` } } }, "handler": this.funcs.BLOCK_1654891388886 }], "menus": { "BLOCK_1654891387430_NUM": [{ "text": "BLOCK_1654891387430_NUM_0", "value": "1" }, { "text": "BLOCK_1654891387430_NUM_1", "value": "2" }, { "text": "BLOCK_1654891387430_NUM_2", "value": "3" }, { "text": "BLOCK_1654891387430_NUM_3", "value": "4" }, { "text": "BLOCK_1654891387430_NUM_4", "value": "5" }, { "text": "BLOCK_1654891387430_NUM_5", "value": "6" }, { "text": "BLOCK_1654891387430_NUM_6", "value": "7" }, { "text": "BLOCK_1654891387430_NUM_7", "value": "8" }, { "text": "BLOCK_1654891387430_NUM_8", "value": "9" }], "BLOCK_1654891387838_PINSDIGIT": [{ "text": "BLOCK_1654891387838_PINSDIGIT_0", "value": "2" }, { "text": "BLOCK_1654891387838_PINSDIGIT_1", "value": "3" }, { "text": "BLOCK_1654891387838_PINSDIGIT_2", "value": "4" }, { "text": "BLOCK_1654891387838_PINSDIGIT_3", "value": "5" }, { "text": "BLOCK_1654891387838_PINSDIGIT_4", "value": "6" }, { "text": "BLOCK_1654891387838_PINSDIGIT_5", "value": "7" }, { "text": "BLOCK_1654891387838_PINSDIGIT_6", "value": "8" }], "BLOCK_1654891387838_ONOFF": [{ "text": "BLOCK_1654891387838_ONOFF_0", "value": "1" }, { "text": "BLOCK_1654891387838_ONOFF_1", "value": "0" }, { "text": "BLOCK_1654891387838_ONOFF_2", "value": "2" }], "BLOCK_1654891388053_ETAT": [{ "text": "BLOCK_1654891388053_ETAT_0", "value": "1" }, { "text": "BLOCK_1654891388053_ETAT_1", "value": "0" }], "BLOCK_1654891388253_PINANALOGIQUE": [{ "text": "BLOCK_1654891388253_PINANALOGIQUE_0", "value": "A0" }, { "text": "BLOCK_1654891388253_PINANALOGIQUE_1", "value": "A1" }, { "text": "BLOCK_1654891388253_PINANALOGIQUE_2", "value": "A2" }, { "text": "BLOCK_1654891388253_PINANALOGIQUE_3", "value": "A3" }], "BLOCK_1654891388253_GROVE_VCC": [{ "text": "BLOCK_1654891388253_GROVE_VCC_0", "value": "3.5" }, { "text": "BLOCK_1654891388253_GROVE_VCC_1", "value": "5" }], "BLOCK_1654891388445_NOTE": [{ "text": "BLOCK_1654891388445_NOTE_0", "value": "1915" }, { "text": "BLOCK_1654891388445_NOTE_1", "value": "1700" }, { "text": "BLOCK_1654891388445_NOTE_2", "value": "1519" }, { "text": "BLOCK_1654891388445_NOTE_3", "value": "1432" }, { "text": "BLOCK_1654891388445_NOTE_4", "value": "1275" }, { "text": "BLOCK_1654891388445_NOTE_5", "value": "1136" }, { "text": "BLOCK_1654891388445_NOTE_6", "value": "1074" }] } }], "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 = ExtVdrGroveDivers; _exports.default = _default; });PK ϠT&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 ExtVdrGroveDivers { constructor() { this.funcs = { 'BLOCK_1654891253229': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1654891253229', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1654891387215': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1654891387215', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1654891387430': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1654891387430', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1654891387629': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1654891387629', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1654891387838': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1654891387838', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1654891388053': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1654891388053', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1654891388253': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1654891388253', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1654891388445': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1654891388445', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1654891388646': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1654891388646', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1654891388886': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1654891388886', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } } }; } getInfo() { return { "id": "vdr_grove_divers", "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 ExtVdrGroveDivers;PK ϠT"v&&src/snippets.jsexport default [ "arduinoc: {}" ];PK ϠTI~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 ϠT:csrc/arduinosources.jsexport default [ "{ filename: \"src/LowPower.cpp\", code: \"/*******************************************************************************\\n* LowPower Library\\n* Version: 1.81\\n* Date: 21-01-2020\\n* Author: Lim Phang Moh\\n* Company: Rocket Scream Electronics\\n* Website: www.rocketscream.com\\n*\\n* This is a lightweight low power library for Arduino.\\n*\\n* This library is licensed under Creative Commons Attribution-ShareAlike 3.0\\n* Unported License.\\n*\\n* Revision Description\\n* ======== ===========\\n* 1.81 Fixed timer 2 settings incorrectly restored after sleep.\\n* Contributed by rwared11.\\n* 1.80 Added support for ATmega88 and ATmega168P. PowerExtStandby()\\n* modified because not supported on Atmega88 / Atmega168\\n* Contributed by mrguen.\\n* 1.70 Added support for ATmega644P and ATmega1284P.\\n* Contributed by alexreinert.\\n* 1.60 Added support for ATmega256RFR2. Contributed by Rodmg.\\n* 1.50 Fixed compiler optimization (Arduino IDE 1.6.x branch) on BOD enable\\n* function that causes the function to be over optimized.\\n* 1.40\\t\\tAdded support for ATSAMD21G18A.\\n* \\t\\t\\tLibrary format compliant with Arduino IDE 1.5.x.\\n* 1.30\\t\\tAdded support for ATMega168, ATMega2560, ATMega1280 & ATMega32U4.\\n*\\t\\t\\tTested to work with Arduino IDE 1.0.1 - 1.0.4.\\n* 1.20\\t\\tRemove typo error in idle method for checking whether Timer 0 was\\n*\\t\\t\\tturned off.\\n*\\t\\t\\tRemove dependecy on WProgram.h which is not required.\\n*\\t\\t\\tTested to work with Arduino IDE 1.0.\\n* 1.10\\t\\tAdded #ifndef for sleep_bod_disable() for compatibility with future\\n*\\t\\t\\tArduino IDE release.\\n* 1.00 Initial public release.\\n*******************************************************************************/\\n#if defined (__AVR__)\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#elif defined (__arm__)\\n\\n#else\\n\\t#error \\\"Processor architecture is not supported.\\\"\\n#endif\\n\\n#include \\\"LowPower.h\\\"\\n\\n#if defined (__AVR__)\\n// Only Pico Power devices can change BOD settings through software\\n#if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega168P__)\\n#ifndef sleep_bod_disable\\n#define sleep_bod_disable() \\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\\\\\ndo { \\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\\\\\n unsigned char tempreg; \\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\\\\\n __asm__ __volatile__(\\\"in %[tempreg], %[mcucr]\\\" \\\"\\\\n\\\\t\\\" \\t\\t\\t\\\\\\n \\\"ori %[tempreg], %[bods_bodse]\\\" \\\"\\\\n\\\\t\\\" \\t\\t\\\\\\n \\\"out %[mcucr], %[tempreg]\\\" \\\"\\\\n\\\\t\\\" \\t\\t\\t\\\\\\n \\\"andi %[tempreg], %[not_bodse]\\\" \\\"\\\\n\\\\t\\\" \\t\\t\\\\\\n \\\"out %[mcucr], %[tempreg]\\\" \\t\\t\\t\\t\\t\\\\\\n : [tempreg] \\\"=&d\\\" (tempreg) \\t\\t\\t\\t\\t\\\\\\n : [mcucr] \\\"I\\\" _SFR_IO_ADDR(MCUCR), \\t\\t\\t\\\\\\n [bods_bodse] \\\"i\\\" (_BV(BODS) | _BV(BODSE)), \\\\\\n [not_bodse] \\\"i\\\" (~_BV(BODSE))); \\t\\t\\t\\\\\\n} while (0)\\n#endif\\n#endif\\n\\n#define\\tlowPowerBodOn(mode)\\t\\\\\\ndo { \\t\\t\\t\\t\\t\\t\\\\\\n set_sleep_mode(mode); \\\\\\n cli();\\t\\t\\t\\t\\\\\\n sleep_enable();\\t\\t\\\\\\n sei();\\t\\t\\t\\t\\\\\\n sleep_cpu();\\t\\t\\t\\\\\\n sleep_disable();\\t\\t\\\\\\n sei();\\t\\t\\t\\t\\\\\\n} while (0);\\n\\n// Only Pico Power devices can change BOD settings through software\\n#if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega168P__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__)\\n#define\\tlowPowerBodOff(mode)\\\\\\ndo { \\t\\t\\t\\t\\t\\t\\\\\\n set_sleep_mode(mode); \\\\\\n cli();\\t\\t\\t\\t\\\\\\n sleep_enable();\\t\\t\\\\\\n\\t\\t\\tsleep_bod_disable(); \\\\\\n sei();\\t\\t\\t\\t\\\\\\n sleep_cpu();\\t\\t\\t\\\\\\n sleep_disable();\\t\\t\\\\\\n sei();\\t\\t\\t\\t\\\\\\n} while (0);\\n#endif\\n\\n// Some macros is still missing from AVR GCC distribution for ATmega32U4\\n#if defined __AVR_ATmega32U4__\\n\\t// Timer 4 PRR bit is currently not defined in iom32u4.h\\n\\t#ifndef PRTIM4\\n\\t\\t#define PRTIM4 4\\n\\t#endif\\n\\n\\t// Timer 4 power reduction macro is not defined currently in power.h\\n\\t#ifndef power_timer4_disable\\n\\t\\t#define power_timer4_disable()\\t(PRR1 |= (uint8_t)(1 << PRTIM4))\\n\\t#endif\\n\\n\\t#ifndef power_timer4_enable\\n\\t\\t#define power_timer4_enable()\\t\\t(PRR1 &= (uint8_t)~(1 << PRTIM4))\\n\\t#endif\\n#endif\\n\\n/*******************************************************************************\\n* Name: idle\\n* Description: Putting ATmega328P/168 into idle state. Please make sure you\\n*\\t\\t\\t understand the implication and result of disabling module.\\n*\\n* Argument \\tDescription\\n* ========= \\t===========\\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\\n*\\t\\t\\t\\tup resource:\\n*\\t\\t\\t\\t(a) SLEEP_15MS - 15 ms sleep\\n*\\t\\t\\t\\t(b) SLEEP_30MS - 30 ms sleep\\n*\\t\\t\\t\\t(c) SLEEP_60MS - 60 ms sleep\\n*\\t\\t\\t\\t(d) SLEEP_120MS - 120 ms sleep\\n*\\t\\t\\t\\t(e) SLEEP_250MS - 250 ms sleep\\n*\\t\\t\\t\\t(f) SLEEP_500MS - 500 ms sleep\\n*\\t\\t\\t\\t(g) SLEEP_1S - 1 s sleep\\n*\\t\\t\\t\\t(h) SLEEP_2S - 2 s sleep\\n*\\t\\t\\t\\t(i) SLEEP_4S - 4 s sleep\\n*\\t\\t\\t\\t(j) SLEEP_8S - 8 s sleep\\n*\\t\\t\\t\\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\\n*\\n* 2. adc\\t\\tADC module disable control:\\n*\\t\\t\\t\\t(a) ADC_OFF - Turn off ADC module\\n*\\t\\t\\t\\t(b) ADC_ON - Leave ADC module in its default state\\n*\\n* 3. timer2\\t\\tTimer 2 module disable control:\\n*\\t\\t\\t\\t(a) TIMER2_OFF - Turn off Timer 2 module\\n*\\t\\t\\t\\t(b) TIMER2_ON - Leave Timer 2 module in its default state\\n*\\n* 4. timer1\\t\\tTimer 1 module disable control:\\n*\\t\\t\\t\\t(a) TIMER1_OFF - Turn off Timer 1 module\\n*\\t\\t\\t\\t(b) TIMER1_ON - Leave Timer 1 module in its default state\\n*\\n* 5. timer0\\t\\tTimer 0 module disable control:\\n*\\t\\t\\t\\t(a) TIMER0_OFF - Turn off Timer 0 module\\n*\\t\\t\\t\\t(b) TIMER0_ON - Leave Timer 0 module in its default state\\n*\\n* 6. spi\\t\\tSPI module disable control:\\n*\\t\\t\\t\\t(a) SPI_OFF - Turn off SPI module\\n*\\t\\t\\t\\t(b) SPI_ON - Leave SPI module in its default state\\n*\\n* 7. usart0\\t\\tUSART0 module disable control:\\n*\\t\\t\\t\\t(a) USART0_OFF - Turn off USART0 module\\n*\\t\\t\\t\\t(b) USART0_ON - Leave USART0 module in its default state\\n*\\n* 8. twi\\t\\tTWI module disable control:\\n*\\t\\t\\t\\t(a) TWI_OFF - Turn off TWI module\\n*\\t\\t\\t\\t(b) TWI_ON - Leave TWI module in its default state\\n*\\n*******************************************************************************/\\n#if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega168__) || defined (__AVR_ATmega168P__) || defined (__AVR_ATmega88__)\\nvoid\\tLowPowerClass::idle(period_t period, adc_t adc, timer2_t timer2,\\n\\t\\t\\t\\t\\t\\t\\ttimer1_t timer1, timer0_t timer0,\\n\\t\\t\\t\\t\\t\\t\\tspi_t spi, usart0_t usart0,\\ttwi_t twi)\\n{\\n\\t// Temporary clock source variable\\n\\tunsigned char clockSource = 0;\\n\\n\\tif (timer2 == TIMER2_OFF)\\n\\t{\\n\\t\\t// Store current setting\\n clockSource = TCCR2B;\\n\\n\\t\\t// Remove the clock source to shutdown Timer2\\n\\t\\tTCCR2B &= ~(1 << CS22);\\n\\t\\tTCCR2B &= ~(1 << CS21);\\n\\t\\tTCCR2B &= ~(1 << CS20);\\n\\n\\t\\tpower_timer2_disable();\\n\\t}\\n\\n\\tif (adc == ADC_OFF)\\n\\t{\\n\\t\\tADCSRA &= ~(1 << ADEN);\\n\\t\\tpower_adc_disable();\\n\\t}\\n\\n\\tif (timer1 == TIMER1_OFF)\\tpower_timer1_disable();\\n\\tif (timer0 == TIMER0_OFF)\\tpower_timer0_disable();\\n\\tif (spi == SPI_OFF)\\t\\t\\tpower_spi_disable();\\n\\tif (usart0 == USART0_OFF)\\tpower_usart0_disable();\\n\\tif (twi == TWI_OFF)\\t\\t\\tpower_twi_disable();\\n\\n\\tif (period != SLEEP_FOREVER)\\n\\t{\\n\\t\\twdt_enable(period);\\n\\t\\tWDTCSR |= (1 << WDIE);\\n\\t}\\n\\n\\tlowPowerBodOn(SLEEP_MODE_IDLE);\\n\\n\\tif (adc == ADC_OFF)\\n\\t{\\n\\t\\tpower_adc_enable();\\n\\t\\tADCSRA |= (1 << ADEN);\\n\\t}\\n\\n\\tif (timer2 == TIMER2_OFF)\\n\\t{\\n // Restore previous setting\\n TCCR2B = clockSource;\\n \\n\\t\\tpower_timer2_enable();\\n\\t}\\n\\n\\tif (timer1 == TIMER1_OFF)\\tpower_timer1_enable();\\n\\tif (timer0 == TIMER0_OFF)\\tpower_timer0_enable();\\n\\tif (spi == SPI_OFF)\\t\\t\\tpower_spi_enable();\\n\\tif (usart0 == USART0_OFF)\\tpower_usart0_enable();\\n\\tif (twi == TWI_OFF)\\t\\t\\tpower_twi_enable();\\n}\\n#endif\\n\\n/*******************************************************************************\\n* Name: idle\\n* Description: Putting ATmega32U4 into idle state. Please make sure you\\n*\\t\\t\\t understand the implication and result of disabling module.\\n*\\t\\t\\t Take note that Timer 2 is not available and USART0 is replaced\\n* \\t\\t\\t with USART1 on ATmega32U4.\\n*\\n* Argument \\tDescription\\n* ========= \\t===========\\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\\n*\\t\\t\\t\\tup resource:\\n*\\t\\t\\t\\t(a) SLEEP_15MS - 15 ms sleep\\n*\\t\\t\\t\\t(b) SLEEP_30MS - 30 ms sleep\\n*\\t\\t\\t\\t(c) SLEEP_60MS - 60 ms sleep\\n*\\t\\t\\t\\t(d) SLEEP_120MS - 120 ms sleep\\n*\\t\\t\\t\\t(e) SLEEP_250MS - 250 ms sleep\\n*\\t\\t\\t\\t(f) SLEEP_500MS - 500 ms sleep\\n*\\t\\t\\t\\t(g) SLEEP_1S - 1 s sleep\\n*\\t\\t\\t\\t(h) SLEEP_2S - 2 s sleep\\n*\\t\\t\\t\\t(i) SLEEP_4S - 4 s sleep\\n*\\t\\t\\t\\t(j) SLEEP_8S - 8 s sleep\\n*\\t\\t\\t\\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\\n*\\n* 2. adc\\t\\tADC module disable control:\\n*\\t\\t\\t\\t(a) ADC_OFF - Turn off ADC module\\n*\\t\\t\\t\\t(b) ADC_ON - Leave ADC module in its default state\\n*\\n* 3. timer4\\t\\tTimer 4 module disable control:\\n*\\t\\t\\t\\t(a) TIMER4_OFF - Turn off Timer 4 module\\n*\\t\\t\\t\\t(b) TIMER4_ON - Leave Timer 4 module in its default state\\n*\\n* 4. timer3\\t\\tTimer 3 module disable control:\\n*\\t\\t\\t\\t(a) TIMER3_OFF - Turn off Timer 3 module\\n*\\t\\t\\t\\t(b) TIMER3_ON - Leave Timer 3 module in its default state\\n*\\n* 5. timer1\\t\\tTimer 1 module disable control:\\n*\\t\\t\\t\\t(a) TIMER1_OFF - Turn off Timer 1 module\\n*\\t\\t\\t\\t(b) TIMER1_ON - Leave Timer 1 module in its default state\\n*\\n* 6. timer0\\t\\tTimer 0 module disable control:\\n*\\t\\t\\t\\t(a) TIMER0_OFF - Turn off Timer 0 module\\n*\\t\\t\\t\\t(b) TIMER0_ON - Leave Timer 0 module in its default state\\n*\\n* 7. spi\\t\\tSPI module disable control:\\n*\\t\\t\\t\\t(a) SPI_OFF - Turn off SPI module\\n*\\t\\t\\t\\t(b) SPI_ON - Leave SPI module in its default state\\n*\\n* 8. usart1\\t\\tUSART1 module disable control:\\n*\\t\\t\\t\\t(a) USART1_OFF - Turn off USART1 module\\n*\\t\\t\\t\\t(b) USART1_ON - Leave USART1 module in its default state\\n*\\n* 9. twi\\t\\tTWI module disable control:\\n*\\t\\t\\t\\t(a) TWI_OFF - Turn off TWI module\\n*\\t\\t\\t\\t(b) TWI_ON - Leave TWI module in its default state\\n*\\n* 10.usb\\t\\tUSB module disable control:\\n*\\t\\t\\t\\t(a) USB_OFF - Turn off USB module\\n*\\t\\t\\t\\t(b) USB_ON - Leave USB module in its default state\\n*******************************************************************************/\\n#if defined __AVR_ATmega32U4__\\nvoid\\tLowPowerClass::idle(period_t period, adc_t adc,\\n\\t\\t\\t\\t\\t\\t\\ttimer4_t timer4, timer3_t timer3,\\n\\t\\t\\t\\t\\t\\t\\ttimer1_t timer1, timer0_t timer0,\\n\\t\\t\\t\\t\\t\\t\\tspi_t spi, usart1_t usart1,\\ttwi_t twi, usb_t usb)\\n{\\n\\tif (adc == ADC_OFF)\\n\\t{\\n\\t\\tADCSRA &= ~(1 << ADEN);\\n\\t\\tpower_adc_disable();\\n\\t}\\n\\n\\tif (timer4 == TIMER4_OFF)\\tpower_timer4_disable();\\n\\tif (timer3 == TIMER3_OFF)\\tpower_timer3_disable();\\n\\tif (timer1 == TIMER1_OFF)\\tpower_timer1_disable();\\n\\tif (timer0 == TIMER0_OFF)\\tpower_timer0_disable();\\n\\tif (spi == SPI_OFF)\\t\\t\\tpower_spi_disable();\\n\\tif (usart1 == USART1_OFF)\\tpower_usart1_disable();\\n\\tif (twi == TWI_OFF)\\t\\t\\tpower_twi_disable();\\n\\tif (usb == USB_OFF)\\t\\t\\tpower_usb_disable();\\n\\n\\tif (period != SLEEP_FOREVER)\\n\\t{\\n\\t\\twdt_enable(period);\\n\\t\\tWDTCSR |= (1 << WDIE);\\n\\t}\\n\\n\\tlowPowerBodOn(SLEEP_MODE_IDLE);\\n\\n\\tif (adc == ADC_OFF)\\n\\t{\\n\\t\\tpower_adc_enable();\\n\\t\\tADCSRA |= (1 << ADEN);\\n\\t}\\n\\n\\tif (timer4 == TIMER4_OFF)\\tpower_timer4_enable();\\n\\tif (timer3 == TIMER3_OFF)\\tpower_timer3_enable();\\n\\tif (timer1 == TIMER1_OFF)\\tpower_timer1_enable();\\n\\tif (timer0 == TIMER0_OFF)\\tpower_timer0_enable();\\n\\tif (spi == SPI_OFF)\\t\\t\\tpower_spi_enable();\\n\\tif (usart1 == USART1_OFF)\\tpower_usart1_enable();\\n\\tif (twi == TWI_OFF)\\t\\t\\tpower_twi_enable();\\n\\tif (usb == USB_OFF)\\t\\t\\tpower_usb_enable();\\n}\\n#endif\\n\\n/*******************************************************************************\\n* Name: idle\\n* Description: Putting ATmega644P & ATmega1284P into idle state. Please make sure\\n*\\t\\t\\t you understand the implication and result of disabling module.\\n*\\t\\t\\t Take note that extra USART 1 compared to an ATmega328P/168.\\n*\\n* Argument \\tDescription\\n* ========= \\t===========\\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\\n*\\t\\t\\t\\tup resource:\\n*\\t\\t\\t\\t(a) SLEEP_15MS - 15 ms sleep\\n*\\t\\t\\t\\t(b) SLEEP_30MS - 30 ms sleep\\n*\\t\\t\\t\\t(c) SLEEP_60MS - 60 ms sleep\\n*\\t\\t\\t\\t(d) SLEEP_120MS - 120 ms sleep\\n*\\t\\t\\t\\t(e) SLEEP_250MS - 250 ms sleep\\n*\\t\\t\\t\\t(f) SLEEP_500MS - 500 ms sleep\\n*\\t\\t\\t\\t(g) SLEEP_1S - 1 s sleep\\n*\\t\\t\\t\\t(h) SLEEP_2S - 2 s sleep\\n*\\t\\t\\t\\t(i) SLEEP_4S - 4 s sleep\\n*\\t\\t\\t\\t(j) SLEEP_8S - 8 s sleep\\n*\\t\\t\\t\\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\\n*\\n* 2. adc\\t\\tADC module disable control:\\n*\\t\\t\\t\\t(a) ADC_OFF - Turn off ADC module\\n*\\t\\t\\t\\t(b) ADC_ON - Leave ADC module in its default state\\n*\\n* 3. timer2\\t\\tTimer 2 module disable control:\\n*\\t\\t\\t\\t(a) TIMER2_OFF - Turn off Timer 2 module\\n*\\t\\t\\t\\t(b) TIMER2_ON - Leave Timer 2 module in its default state\\n*\\n* 4. timer1\\t\\tTimer 1 module disable control:\\n*\\t\\t\\t\\t(a) TIMER1_OFF - Turn off Timer 1 module\\n*\\t\\t\\t\\t(b) TIMER1_ON - Leave Timer 1 module in its default state\\n*\\n* 5. timer0\\t\\tTimer 0 module disable control:\\n*\\t\\t\\t\\t(a) TIMER0_OFF - Turn off Timer 0 module\\n*\\t\\t\\t\\t(b) TIMER0_ON - Leave Timer 0 module in its default state\\n*\\n* 6. spi\\t\\tSPI module disable control:\\n*\\t\\t\\t\\t(a) SPI_OFF - Turn off SPI module\\n*\\t\\t\\t\\t(b) SPI_ON - Leave SPI module in its default state\\n*\\n* 7. usart1\\t\\tUSART1 module disable control:\\n*\\t\\t\\t\\t(a) USART1_OFF - Turn off USART1 module\\n*\\t\\t\\t\\t(b) USART1_ON - Leave USART1 module in its default state\\n*\\n* 8. usart0\\t\\tUSART0 module disable control:\\n*\\t\\t\\t\\t(a) USART0_OFF - Turn off USART0 module\\n*\\t\\t\\t\\t(b) USART0_ON - Leave USART0 module in its default state\\n*\\n* 9. twi\\t\\tTWI module disable control:\\n*\\t\\t\\t\\t(a) TWI_OFF - Turn off TWI module\\n*\\t\\t\\t\\t(b) TWI_ON - Leave TWI module in its default state\\n*\\n*******************************************************************************/\\n#if defined (__AVR_ATmega644P__) || defined (__AVR_ATmega1284P__)\\nvoid\\tLowPowerClass::idle(period_t period, adc_t adc, timer2_t timer2,\\n\\t\\t\\t\\t\\t\\t\\ttimer1_t timer1, timer0_t timer0, spi_t spi,\\n\\t\\t\\t\\t\\t\\t\\tusart1_t usart1, usart0_t usart0, twi_t twi)\\n{\\n\\t// Temporary clock source variable\\n\\tunsigned char clockSource = 0;\\n\\n\\tif (timer2 == TIMER2_OFF)\\n\\t{\\n\\t\\t// Store current setting\\n clockSource = TCCR2B;\\n\\n\\t\\t// Remove the clock source to shutdown Timer2\\n\\t\\tTCCR2B &= ~(1 << CS22);\\n\\t\\tTCCR2B &= ~(1 << CS21);\\n\\t\\tTCCR2B &= ~(1 << CS20);\\n\\n\\t\\tpower_timer2_disable();\\n\\t}\\n\\n\\tif (adc == ADC_OFF)\\n\\t{\\n\\t\\tADCSRA &= ~(1 << ADEN);\\n\\t\\tpower_adc_disable();\\n\\t}\\n\\n\\tif (timer1 == TIMER1_OFF)\\tpower_timer1_disable();\\n\\tif (timer0 == TIMER0_OFF)\\tpower_timer0_disable();\\n\\tif (spi == SPI_OFF)\\t\\t power_spi_disable();\\n\\tif (usart1 == USART1_OFF)\\tpower_usart1_disable();\\n\\tif (usart0 == USART0_OFF)\\tpower_usart0_disable();\\n\\tif (twi == TWI_OFF)\\t\\t\\tpower_twi_disable();\\n\\n\\tif (period != SLEEP_FOREVER)\\n\\t{\\n\\t\\twdt_enable(period);\\n\\t\\tWDTCSR |= (1 << WDIE);\\n\\t}\\n\\n\\tlowPowerBodOn(SLEEP_MODE_IDLE);\\n\\n\\tif (adc == ADC_OFF)\\n\\t{\\n\\t\\tpower_adc_enable();\\n\\t\\tADCSRA |= (1 << ADEN);\\n\\t}\\n\\n\\tif (timer2 == TIMER2_OFF)\\n\\t{\\n // Restore previous setting\\n TCCR2B = clockSource;\\n\\n\\t\\tpower_timer2_enable();\\n\\t}\\n\\n\\tif (timer1 == TIMER1_OFF)\\tpower_timer1_enable();\\n\\tif (timer0 == TIMER0_OFF)\\tpower_timer0_enable();\\n\\tif (spi == SPI_OFF)\\t\\t\\tpower_spi_enable();\\n\\tif (usart1 == USART1_OFF)\\tpower_usart1_enable();\\n\\tif (usart0 == USART0_OFF)\\tpower_usart0_enable();\\n\\tif (twi == TWI_OFF)\\t\\t\\tpower_twi_enable();\\n}\\n#endif\\n\\n/*******************************************************************************\\n* Name: idle\\n* Description: Putting ATmega2560 & ATmega1280 into idle state. Please make sure\\n*\\t\\t\\t you understand the implication and result of disabling module.\\n*\\t\\t\\t Take note that extra Timer 5, 4, 3 compared to an ATmega328P/168.\\n*\\t\\t\\t Also take note that extra USART 3, 2, 1 compared to an\\n*\\t\\t\\t ATmega328P/168.\\n*\\n* Argument \\tDescription\\n* ========= \\t===========\\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\\n*\\t\\t\\t\\tup resource:\\n*\\t\\t\\t\\t(a) SLEEP_15MS - 15 ms sleep\\n*\\t\\t\\t\\t(b) SLEEP_30MS - 30 ms sleep\\n*\\t\\t\\t\\t(c) SLEEP_60MS - 60 ms sleep\\n*\\t\\t\\t\\t(d) SLEEP_120MS - 120 ms sleep\\n*\\t\\t\\t\\t(e) SLEEP_250MS - 250 ms sleep\\n*\\t\\t\\t\\t(f) SLEEP_500MS - 500 ms sleep\\n*\\t\\t\\t\\t(g) SLEEP_1S - 1 s sleep\\n*\\t\\t\\t\\t(h) SLEEP_2S - 2 s sleep\\n*\\t\\t\\t\\t(i) SLEEP_4S - 4 s sleep\\n*\\t\\t\\t\\t(j) SLEEP_8S - 8 s sleep\\n*\\t\\t\\t\\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\\n*\\n* 2. adc\\t\\tADC module disable control:\\n*\\t\\t\\t\\t(a) ADC_OFF - Turn off ADC module\\n*\\t\\t\\t\\t(b) ADC_ON - Leave ADC module in its default state\\n*\\n* 3. timer5\\t\\tTimer 5 module disable control:\\n*\\t\\t\\t\\t(a) TIMER5_OFF - Turn off Timer 5 module\\n*\\t\\t\\t\\t(b) TIMER5_ON - Leave Timer 5 module in its default state\\n*\\n* 4. timer4\\t\\tTimer 4 module disable control:\\n*\\t\\t\\t\\t(a) TIMER4_OFF - Turn off Timer 4 module\\n*\\t\\t\\t\\t(b) TIMER4_ON - Leave Timer 4 module in its default state\\n*\\n* 5. timer3\\t\\tTimer 3 module disable control:\\n*\\t\\t\\t\\t(a) TIMER3_OFF - Turn off Timer 3 module\\n*\\t\\t\\t\\t(b) TIMER3_ON - Leave Timer 3 module in its default state\\n*\\n* 6. timer2\\t\\tTimer 2 module disable control:\\n*\\t\\t\\t\\t(a) TIMER2_OFF - Turn off Timer 2 module\\n*\\t\\t\\t\\t(b) TIMER2_ON - Leave Timer 2 module in its default state\\n*\\n* 7. timer1\\t\\tTimer 1 module disable control:\\n*\\t\\t\\t\\t(a) TIMER1_OFF - Turn off Timer 1 module\\n*\\t\\t\\t\\t(b) TIMER1_ON - Leave Timer 1 module in its default state\\n*\\n* 8. timer0\\t\\tTimer 0 module disable control:\\n*\\t\\t\\t\\t(a) TIMER0_OFF - Turn off Timer 0 module\\n*\\t\\t\\t\\t(b) TIMER0_ON - Leave Timer 0 module in its default state\\n*\\n* 9. spi\\t\\tSPI module disable control:\\n*\\t\\t\\t\\t(a) SPI_OFF - Turn off SPI module\\n*\\t\\t\\t\\t(b) SPI_ON - Leave SPI module in its default state\\n*\\n* 10.usart3\\t\\tUSART3 module disable control:\\n*\\t\\t\\t\\t(a) USART3_OFF - Turn off USART3 module\\n*\\t\\t\\t\\t(b) USART3_ON - Leave USART3 module in its default state\\n*\\n* 11.usart2\\t\\tUSART2 module disable control:\\n*\\t\\t\\t\\t(a) USART2_OFF - Turn off USART2 module\\n*\\t\\t\\t\\t(b) USART2_ON - Leave USART2 module in its default state\\n*\\n* 12.usart1\\t\\tUSART1 module disable control:\\n*\\t\\t\\t\\t(a) USART1_OFF - Turn off USART1 module\\n*\\t\\t\\t\\t(b) USART1_ON - Leave USART1 module in its default state\\n*\\n* 13.usart0\\t\\tUSART0 module disable control:\\n*\\t\\t\\t\\t(a) USART0_OFF - Turn off USART0 module\\n*\\t\\t\\t\\t(b) USART0_ON - Leave USART0 module in its default state\\n*\\n* 14.twi\\t\\tTWI module disable control:\\n*\\t\\t\\t\\t(a) TWI_OFF - Turn off TWI module\\n*\\t\\t\\t\\t(b) TWI_ON - Leave TWI module in its default state\\n*\\n*******************************************************************************/\\n#if defined (__AVR_ATmega2560__) || defined (__AVR_ATmega1280__)\\nvoid\\tLowPowerClass::idle(period_t period, adc_t adc, timer5_t timer5,\\n\\t\\t\\t\\t\\t timer4_t timer4, timer3_t timer3, timer2_t timer2,\\n\\t\\t\\t\\t\\t\\t\\ttimer1_t timer1, timer0_t timer0, spi_t spi,\\n\\t\\t\\t\\t\\t\\t\\tusart3_t usart3, usart2_t usart2, usart1_t usart1,\\n\\t\\t\\t usart0_t usart0, twi_t twi)\\n{\\n\\t// Temporary clock source variable\\n\\tunsigned char clockSource = 0;\\n\\n\\tif (timer2 == TIMER2_OFF)\\n\\t{\\n\\t\\t// Store current setting\\n clockSource = TCCR2B;\\n\\n\\t\\t// Remove the clock source to shutdown Timer2\\n\\t\\tTCCR2B &= ~(1 << CS22);\\n\\t\\tTCCR2B &= ~(1 << CS21);\\n\\t\\tTCCR2B &= ~(1 << CS20);\\n\\n\\t\\tpower_timer2_disable();\\n\\t}\\n\\n\\tif (adc == ADC_OFF)\\n\\t{\\n\\t\\tADCSRA &= ~(1 << ADEN);\\n\\t\\tpower_adc_disable();\\n\\t}\\n\\n\\tif (timer5 == TIMER5_OFF)\\tpower_timer5_disable();\\n\\tif (timer4 == TIMER4_OFF)\\tpower_timer4_disable();\\n\\tif (timer3 == TIMER3_OFF)\\tpower_timer3_disable();\\n\\tif (timer1 == TIMER1_OFF)\\tpower_timer1_disable();\\n\\tif (timer0 == TIMER0_OFF)\\tpower_timer0_disable();\\n\\tif (spi == SPI_OFF)\\t\\t power_spi_disable();\\n\\tif (usart3 == USART3_OFF)\\tpower_usart3_disable();\\n\\tif (usart2 == USART2_OFF)\\tpower_usart2_disable();\\n\\tif (usart1 == USART1_OFF)\\tpower_usart1_disable();\\n\\tif (usart0 == USART0_OFF)\\tpower_usart0_disable();\\n\\tif (twi == TWI_OFF)\\t\\t\\tpower_twi_disable();\\n\\n\\tif (period != SLEEP_FOREVER)\\n\\t{\\n\\t\\twdt_enable(period);\\n\\t\\tWDTCSR |= (1 << WDIE);\\n\\t}\\n\\n\\tlowPowerBodOn(SLEEP_MODE_IDLE);\\n\\n\\tif (adc == ADC_OFF)\\n\\t{\\n\\t\\tpower_adc_enable();\\n\\t\\tADCSRA |= (1 << ADEN);\\n\\t}\\n\\n\\tif (timer2 == TIMER2_OFF)\\n\\t{\\n // Restore previous setting\\n TCCR2B = clockSource;\\n\\n\\t\\tpower_timer2_enable();\\n\\t}\\n\\n\\tif (timer5 == TIMER5_OFF)\\tpower_timer5_enable();\\n\\tif (timer4 == TIMER4_OFF)\\tpower_timer4_enable();\\n\\tif (timer3 == TIMER3_OFF)\\tpower_timer3_enable();\\n\\tif (timer1 == TIMER1_OFF)\\tpower_timer1_enable();\\n\\tif (timer0 == TIMER0_OFF)\\tpower_timer0_enable();\\n\\tif (spi == SPI_OFF)\\t\\t\\tpower_spi_enable();\\n\\tif (usart3 == USART3_OFF)\\tpower_usart3_enable();\\n\\tif (usart2 == USART2_OFF)\\tpower_usart2_enable();\\n\\tif (usart1 == USART1_OFF)\\tpower_usart1_enable();\\n\\tif (usart0 == USART0_OFF)\\tpower_usart0_enable();\\n\\tif (twi == TWI_OFF)\\t\\t\\tpower_twi_enable();\\n}\\n#endif\\n\\n/*******************************************************************************\\n* Name: idle\\n* Description: Putting ATmega256RFR2 into idle state. Please make sure\\n*\\t\\t\\t you understand the implication and result of disabling module.\\n*\\t\\t\\t Take note that extra Timer 5, 4, 3 compared to an ATmega328P/168.\\n*\\t\\t\\t Also take note that extra USART 1 compared to an\\n*\\t\\t\\t ATmega328P/168.\\n*\\n* Argument \\tDescription\\n* ========= \\t===========\\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\\n*\\t\\t\\t\\tup resource:\\n*\\t\\t\\t\\t(a) SLEEP_15MS - 15 ms sleep\\n*\\t\\t\\t\\t(b) SLEEP_30MS - 30 ms sleep\\n*\\t\\t\\t\\t(c) SLEEP_60MS - 60 ms sleep\\n*\\t\\t\\t\\t(d) SLEEP_120MS - 120 ms sleep\\n*\\t\\t\\t\\t(e) SLEEP_250MS - 250 ms sleep\\n*\\t\\t\\t\\t(f) SLEEP_500MS - 500 ms sleep\\n*\\t\\t\\t\\t(g) SLEEP_1S - 1 s sleep\\n*\\t\\t\\t\\t(h) SLEEP_2S - 2 s sleep\\n*\\t\\t\\t\\t(i) SLEEP_4S - 4 s sleep\\n*\\t\\t\\t\\t(j) SLEEP_8S - 8 s sleep\\n*\\t\\t\\t\\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\\n*\\n* 2. adc\\t\\tADC module disable control:\\n*\\t\\t\\t\\t(a) ADC_OFF - Turn off ADC module\\n*\\t\\t\\t\\t(b) ADC_ON - Leave ADC module in its default state\\n*\\n* 3. timer5\\t\\tTimer 5 module disable control:\\n*\\t\\t\\t\\t(a) TIMER5_OFF - Turn off Timer 5 module\\n*\\t\\t\\t\\t(b) TIMER5_ON - Leave Timer 5 module in its default state\\n*\\n* 4. timer4\\t\\tTimer 4 module disable control:\\n*\\t\\t\\t\\t(a) TIMER4_OFF - Turn off Timer 4 module\\n*\\t\\t\\t\\t(b) TIMER4_ON - Leave Timer 4 module in its default state\\n*\\n* 5. timer3\\t\\tTimer 3 module disable control:\\n*\\t\\t\\t\\t(a) TIMER3_OFF - Turn off Timer 3 module\\n*\\t\\t\\t\\t(b) TIMER3_ON - Leave Timer 3 module in its default state\\n*\\n* 6. timer2\\t\\tTimer 2 module disable control:\\n*\\t\\t\\t\\t(a) TIMER2_OFF - Turn off Timer 2 module\\n*\\t\\t\\t\\t(b) TIMER2_ON - Leave Timer 2 module in its default state\\n*\\n* 7. timer1\\t\\tTimer 1 module disable control:\\n*\\t\\t\\t\\t(a) TIMER1_OFF - Turn off Timer 1 module\\n*\\t\\t\\t\\t(b) TIMER1_ON - Leave Timer 1 module in its default state\\n*\\n* 8. timer0\\t\\tTimer 0 module disable control:\\n*\\t\\t\\t\\t(a) TIMER0_OFF - Turn off Timer 0 module\\n*\\t\\t\\t\\t(b) TIMER0_ON - Leave Timer 0 module in its default state\\n*\\n* 9. spi\\t\\tSPI module disable control:\\n*\\t\\t\\t\\t(a) SPI_OFF - Turn off SPI module\\n*\\t\\t\\t\\t(b) SPI_ON - Leave SPI module in its default state\\n*\\n* 10.usart1\\t\\tUSART1 module disable control:\\n*\\t\\t\\t\\t(a) USART1_OFF - Turn off USART1 module\\n*\\t\\t\\t\\t(b) USART1_ON - Leave USART1 module in its default state\\n*\\n* 11.usart0\\t\\tUSART0 module disable control:\\n*\\t\\t\\t\\t(a) USART0_OFF - Turn off USART0 module\\n*\\t\\t\\t\\t(b) USART0_ON - Leave USART0 module in its default state\\n*\\n* 12.twi\\t\\tTWI module disable control:\\n*\\t\\t\\t\\t(a) TWI_OFF - Turn off TWI module\\n*\\t\\t\\t\\t(b) TWI_ON - Leave TWI module in its default state\\n*\\n*******************************************************************************/\\n#if defined (__AVR_ATmega256RFR2__)\\nvoid\\tLowPowerClass::idle(period_t period, adc_t adc, timer5_t timer5,\\n\\t\\t\\t\\t\\t timer4_t timer4, timer3_t timer3, timer2_t timer2,\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\ttimer1_t timer1, timer0_t timer0, spi_t spi,\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tusart1_t usart1,\\n\\t\\t\\t usart0_t usart0, twi_t twi)\\n{\\n\\t// Temporary clock source variable\\n\\tunsigned char clockSource = 0;\\n\\n\\tif (timer2 == TIMER2_OFF)\\n\\t{\\n\\t\\t// Store current setting\\n clockSource = TCCR2B;\\n\\n\\t\\t// Remove the clock source to shutdown Timer2\\n\\t\\tTCCR2B &= ~(1 << CS22);\\n\\t\\tTCCR2B &= ~(1 << CS21);\\n\\t\\tTCCR2B &= ~(1 << CS20);\\n\\n\\t\\tpower_timer2_disable();\\n\\t}\\n\\n\\tif (adc == ADC_OFF)\\n\\t{\\n\\t\\tADCSRA &= ~(1 << ADEN);\\n\\t\\tpower_adc_disable();\\n\\t}\\n\\n\\tif (timer5 == TIMER5_OFF)\\tpower_timer5_disable();\\n\\tif (timer4 == TIMER4_OFF)\\tpower_timer4_disable();\\n\\tif (timer3 == TIMER3_OFF)\\tpower_timer3_disable();\\n\\tif (timer1 == TIMER1_OFF)\\tpower_timer1_disable();\\n\\tif (timer0 == TIMER0_OFF)\\tpower_timer0_disable();\\n\\tif (spi == SPI_OFF)\\t\\t\\t power_spi_disable();\\n\\tif (usart1 == USART1_OFF)\\tpower_usart1_disable();\\n\\tif (usart0 == USART0_OFF)\\tpower_usart0_disable();\\n\\tif (twi == TWI_OFF)\\t\\t\\t power_twi_disable();\\n\\n\\tif (period != SLEEP_FOREVER)\\n\\t{\\n\\t\\twdt_enable(period);\\n\\t\\tWDTCSR |= (1 << WDIE);\\n\\t}\\n\\n\\tlowPowerBodOn(SLEEP_MODE_IDLE);\\n\\n\\tif (adc == ADC_OFF)\\n\\t{\\n\\t\\tpower_adc_enable();\\n\\t\\tADCSRA |= (1 << ADEN);\\n\\t}\\n\\n\\tif (timer2 == TIMER2_OFF)\\n\\t{\\n // Restore previous setting\\n TCCR2B = clockSource;\\n\\n\\t\\tpower_timer2_enable();\\n\\t}\\n\\n\\tif (timer5 == TIMER5_OFF)\\tpower_timer5_enable();\\n\\tif (timer4 == TIMER4_OFF)\\tpower_timer4_enable();\\n\\tif (timer3 == TIMER3_OFF)\\tpower_timer3_enable();\\n\\tif (timer1 == TIMER1_OFF)\\tpower_timer1_enable();\\n\\tif (timer0 == TIMER0_OFF)\\tpower_timer0_enable();\\n\\tif (spi == SPI_OFF)\\t\\t\\t power_spi_enable();\\n\\tif (usart1 == USART1_OFF)\\tpower_usart1_enable();\\n\\tif (usart0 == USART0_OFF)\\tpower_usart0_enable();\\n\\tif (twi == TWI_OFF)\\t\\t\\t power_twi_enable();\\n}\\n#endif\\n\\n\\n/*******************************************************************************\\n* Name: adcNoiseReduction\\n* Description: Putting microcontroller into ADC noise reduction state. This is\\n*\\t\\t\\t a very useful state when using the ADC to achieve best and low\\n* noise signal.\\n*\\n* Argument \\tDescription\\n* ========= \\t===========\\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\\n*\\t\\t\\t\\tup resource:\\n*\\t\\t\\t\\t(a) SLEEP_15MS - 15 ms sleep\\n*\\t\\t\\t\\t(b) SLEEP_30MS - 30 ms sleep\\n*\\t\\t\\t\\t(c) SLEEP_60MS - 60 ms sleep\\n*\\t\\t\\t\\t(d) SLEEP_120MS - 120 ms sleep\\n*\\t\\t\\t\\t(e) SLEEP_250MS - 250 ms sleep\\n*\\t\\t\\t\\t(f) SLEEP_500MS - 500 ms sleep\\n*\\t\\t\\t\\t(g) SLEEP_1S - 1 s sleep\\n*\\t\\t\\t\\t(h) SLEEP_2S - 2 s sleep\\n*\\t\\t\\t\\t(i) SLEEP_4S - 4 s sleep\\n*\\t\\t\\t\\t(j) SLEEP_8S - 8 s sleep\\n*\\t\\t\\t\\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\\n*\\n* 2. adc\\t\\tADC module disable control. Turning off the ADC module is\\n*\\t\\t\\t\\tbasically removing the purpose of this low power mode.\\n*\\t\\t\\t\\t(a) ADC_OFF - Turn off ADC module\\n*\\t\\t\\t\\t(b) ADC_ON - Leave ADC module in its default state\\n*\\n* 3. timer2\\t\\tTimer 2 module disable control:\\n*\\t\\t\\t\\t(a) TIMER2_OFF - Turn off Timer 2 module\\n*\\t\\t\\t\\t(b) TIMER2_ON - Leave Timer 2 module in its default state\\n*\\n*******************************************************************************/\\nvoid\\tLowPowerClass::adcNoiseReduction(period_t period, adc_t adc,\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t timer2_t timer2)\\n{\\n\\t// Temporary clock source variable\\n\\tunsigned char clockSource = 0;\\n\\n\\t#if !defined(__AVR_ATmega32U4__)\\n\\tif (timer2 == TIMER2_OFF)\\n\\t{\\n\\t\\t// Store current setting\\n clockSource = TCCR2B;\\n\\n\\t\\t// Remove the clock source to shutdown Timer2\\n\\t\\tTCCR2B &= ~(1 << CS22);\\n\\t\\tTCCR2B &= ~(1 << CS21);\\n\\t\\tTCCR2B &= ~(1 << CS20);\\n\\t}\\n\\t#endif\\n\\n\\tif (adc == ADC_OFF)\\tADCSRA &= ~(1 << ADEN);\\n\\n\\tif (period != SLEEP_FOREVER)\\n\\t{\\n\\t\\twdt_enable(period);\\n\\t\\tWDTCSR |= (1 << WDIE);\\n\\t}\\n\\n\\tlowPowerBodOn(SLEEP_MODE_ADC);\\n\\n\\tif (adc == ADC_OFF) ADCSRA |= (1 << ADEN);\\n\\n\\t#if !defined(__AVR_ATmega32U4__)\\n\\tif (timer2 == TIMER2_OFF)\\n\\t{\\n // Restore previous setting\\n TCCR2B = clockSource;\\n\\t}\\n\\t#endif\\n}\\n\\n/*******************************************************************************\\n* Name: powerDown\\n* Description: Putting microcontroller into power down state. This is\\n*\\t\\t\\t the lowest current consumption state. Use this together with\\n*\\t\\t\\t external pin interrupt to wake up through external event\\n*\\t\\t\\t triggering (example: RTC clockout pin, SD card detect pin).\\n*\\n* Argument \\tDescription\\n* ========= \\t===========\\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\\n*\\t\\t\\t\\tup resource:\\n*\\t\\t\\t\\t(a) SLEEP_15MS - 15 ms sleep\\n*\\t\\t\\t\\t(b) SLEEP_30MS - 30 ms sleep\\n*\\t\\t\\t\\t(c) SLEEP_60MS - 60 ms sleep\\n*\\t\\t\\t\\t(d) SLEEP_120MS - 120 ms sleep\\n*\\t\\t\\t\\t(e) SLEEP_250MS - 250 ms sleep\\n*\\t\\t\\t\\t(f) SLEEP_500MS - 500 ms sleep\\n*\\t\\t\\t\\t(g) SLEEP_1S - 1 s sleep\\n*\\t\\t\\t\\t(h) SLEEP_2S - 2 s sleep\\n*\\t\\t\\t\\t(i) SLEEP_4S - 4 s sleep\\n*\\t\\t\\t\\t(j) SLEEP_8S - 8 s sleep\\n*\\t\\t\\t\\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\\n*\\n* 2. adc\\t\\tADC module disable control. Turning off the ADC module is\\n*\\t\\t\\t\\tbasically removing the purpose of this low power mode.\\n*\\t\\t\\t\\t(a) ADC_OFF - Turn off ADC module\\n*\\t\\t\\t\\t(b) ADC_ON - Leave ADC module in its default state\\n*\\n* 3. bod\\t\\tBrown Out Detector (BOD) module disable control:\\n*\\t\\t\\t\\t(a) BOD_OFF - Turn off BOD module\\n*\\t\\t\\t\\t(b) BOD_ON - Leave BOD module in its default state\\n*\\n*******************************************************************************/\\nvoid\\tLowPowerClass::powerDown(period_t period, adc_t adc, bod_t bod)\\n{\\n\\tif (adc == ADC_OFF)\\tADCSRA &= ~(1 << ADEN);\\n\\n\\tif (period != SLEEP_FOREVER)\\n\\t{\\n\\t\\twdt_enable(period);\\n\\t\\tWDTCSR |= (1 << WDIE);\\n\\t}\\n\\tif (bod == BOD_OFF)\\n\\t{\\n\\t\\t#if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega168P__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__)\\n\\t\\t\\tlowPowerBodOff(SLEEP_MODE_PWR_DOWN);\\n\\t\\t#else\\n\\t\\t\\tlowPowerBodOn(SLEEP_MODE_PWR_DOWN);\\n\\t\\t#endif\\n\\t}\\n\\telse\\n\\t{\\n\\t\\tlowPowerBodOn(SLEEP_MODE_PWR_DOWN);\\n\\t}\\n\\n\\tif (adc == ADC_OFF) ADCSRA |= (1 << ADEN);\\n}\\n\\n/*******************************************************************************\\n* Name: powerSave\\n* Description: Putting microcontroller into power save state. This is\\n*\\t\\t\\t the lowest current consumption state after power down.\\n*\\t\\t\\t Use this state together with an external 32.768 kHz crystal (but\\n*\\t\\t\\t 8/16 MHz crystal/resonator need to be removed) to provide an\\n*\\t\\t\\t asynchronous clock source to Timer 2. Please take note that\\n*\\t\\t\\t Timer 2 is also used by the Arduino core for PWM operation.\\n*\\t\\t\\t Please refer to wiring.c for explanation. Removal of the external\\n*\\t\\t\\t 8/16 MHz crystal/resonator requires the microcontroller to run\\n*\\t\\t\\t on its internal RC oscillator which is not so accurate for time\\n*\\t\\t\\t critical operation.\\n*\\n* Argument \\tDescription\\n* ========= \\t===========\\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\\n*\\t\\t\\t\\tup resource:\\n*\\t\\t\\t\\t(a) SLEEP_15MS - 15 ms sleep\\n*\\t\\t\\t\\t(b) SLEEP_30MS - 30 ms sleep\\n*\\t\\t\\t\\t(c) SLEEP_60MS - 60 ms sleep\\n*\\t\\t\\t\\t(d) SLEEP_120MS - 120 ms sleep\\n*\\t\\t\\t\\t(e) SLEEP_250MS - 250 ms sleep\\n*\\t\\t\\t\\t(f) SLEEP_500MS - 500 ms sleep\\n*\\t\\t\\t\\t(g) SLEEP_1S - 1 s sleep\\n*\\t\\t\\t\\t(h) SLEEP_2S - 2 s sleep\\n*\\t\\t\\t\\t(i) SLEEP_4S - 4 s sleep\\n*\\t\\t\\t\\t(j) SLEEP_8S - 8 s sleep\\n*\\t\\t\\t\\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\\n*\\n* 2. adc\\t\\tADC module disable control. Turning off the ADC module is\\n*\\t\\t\\t\\tbasically removing the purpose of this low power mode.\\n*\\t\\t\\t\\t(a) ADC_OFF - Turn off ADC module\\n*\\t\\t\\t\\t(b) ADC_ON - Leave ADC module in its default state\\n*\\n* 3. bod\\t\\tBrown Out Detector (BOD) module disable control:\\n*\\t\\t\\t\\t(a) BOD_OFF - Turn off BOD module\\n*\\t\\t\\t\\t(b) BOD_ON - Leave BOD module in its default state\\n*\\n* 4. timer2\\t\\tTimer 2 module disable control:\\n*\\t\\t\\t\\t(a) TIMER2_OFF - Turn off Timer 2 module\\n*\\t\\t\\t\\t(b) TIMER2_ON - Leave Timer 2 module in its default state\\n*\\n*******************************************************************************/\\nvoid\\tLowPowerClass::powerSave(period_t period, adc_t adc, bod_t bod,\\n\\t\\t\\t\\t\\t\\t\\t timer2_t timer2)\\n{\\n\\t// Temporary clock source variable\\n\\tunsigned char clockSource = 0;\\n\\n\\t#if !defined(__AVR_ATmega32U4__)\\n\\tif (timer2 == TIMER2_OFF)\\n\\t{\\n\\t\\t// Store current setting\\n clockSource = TCCR2B;\\n\\n\\t\\t// Remove the clock source to shutdown Timer2\\n\\t\\tTCCR2B &= ~(1 << CS22);\\n\\t\\tTCCR2B &= ~(1 << CS21);\\n\\t\\tTCCR2B &= ~(1 << CS20);\\n\\t}\\n\\t#endif\\n\\n\\tif (adc == ADC_OFF)\\tADCSRA &= ~(1 << ADEN);\\n\\n\\tif (period != SLEEP_FOREVER)\\n\\t{\\n\\t\\twdt_enable(period);\\n\\t\\tWDTCSR |= (1 << WDIE);\\n\\t}\\n\\n\\tif (bod == BOD_OFF)\\n\\t{\\n\\t\\t#if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega168P__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__)\\n\\t\\t\\tlowPowerBodOff(SLEEP_MODE_PWR_SAVE);\\n\\t\\t#else\\n\\t\\t\\tlowPowerBodOn(SLEEP_MODE_PWR_SAVE);\\n\\t\\t#endif\\n\\t}\\n\\telse\\n\\t{\\n\\t\\tlowPowerBodOn(SLEEP_MODE_PWR_SAVE);\\n\\t}\\n\\n\\tif (adc == ADC_OFF) ADCSRA |= (1 << ADEN);\\n\\n\\t#if !defined(__AVR_ATmega32U4__)\\n\\tif (timer2 == TIMER2_OFF)\\n\\t{\\n // Restore previous setting\\n TCCR2B = clockSource;\\n\\t}\\n\\t#endif\\n}\\n\\n/*******************************************************************************\\n* Name: powerStandby\\n* Description: Putting microcontroller into power standby state.\\n*\\n* Argument \\tDescription\\n* ========= \\t===========\\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\\n*\\t\\t\\t\\tup resource:\\n*\\t\\t\\t\\t(a) SLEEP_15MS - 15 ms sleep\\n*\\t\\t\\t\\t(b) SLEEP_30MS - 30 ms sleep\\n*\\t\\t\\t\\t(c) SLEEP_60MS - 60 ms sleep\\n*\\t\\t\\t\\t(d) SLEEP_120MS - 120 ms sleep\\n*\\t\\t\\t\\t(e) SLEEP_250MS - 250 ms sleep\\n*\\t\\t\\t\\t(f) SLEEP_500MS - 500 ms sleep\\n*\\t\\t\\t\\t(g) SLEEP_1S - 1 s sleep\\n*\\t\\t\\t\\t(h) SLEEP_2S - 2 s sleep\\n*\\t\\t\\t\\t(i) SLEEP_4S - 4 s sleep\\n*\\t\\t\\t\\t(j) SLEEP_8S - 8 s sleep\\n*\\t\\t\\t\\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\\n*\\n* 2. adc\\t\\tADC module disable control. Turning off the ADC module is\\n*\\t\\t\\t\\tbasically removing the purpose of this low power mode.\\n*\\t\\t\\t\\t(a) ADC_OFF - Turn off ADC module\\n*\\t\\t\\t\\t(b) ADC_ON - Leave ADC module in its default state\\n*\\n* 3. bod\\t\\tBrown Out Detector (BOD) module disable control:\\n*\\t\\t\\t\\t(a) BOD_OFF - Turn off BOD module\\n*\\t\\t\\t\\t(b) BOD_ON - Leave BOD module in its default state\\n*\\n*******************************************************************************/\\nvoid\\tLowPowerClass::powerStandby(period_t period, adc_t adc, bod_t bod)\\n{\\n\\tif (adc == ADC_OFF)\\tADCSRA &= ~(1 << ADEN);\\n\\n\\tif (period != SLEEP_FOREVER)\\n\\t{\\n\\t\\twdt_enable(period);\\n\\t\\tWDTCSR |= (1 << WDIE);\\n\\t}\\n\\n\\tif (bod == BOD_OFF)\\n\\t{\\n\\t\\t#if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega168P__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__)\\n\\t\\t\\tlowPowerBodOff(SLEEP_MODE_STANDBY);\\n\\t\\t#else\\n\\t\\t\\tlowPowerBodOn(SLEEP_MODE_STANDBY);\\n\\t\\t#endif\\n\\t}\\n\\telse\\n\\t{\\n\\t\\tlowPowerBodOn(SLEEP_MODE_STANDBY);\\n\\t}\\n\\n\\tif (adc == ADC_OFF) ADCSRA |= (1 << ADEN);\\n}\\n\\n/*******************************************************************************\\n* Name: powerExtStandby\\n* Description: Putting microcontroller into power extended standby state. This\\n*\\t\\t\\t is different from the power standby state as it has the\\n*\\t\\t\\t capability to run Timer 2 asynchronously.\\n* Not implemented on Atmega88 and Atmega168.\\n*\\n* Argument \\tDescription\\n* ========= \\t===========\\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\\n*\\t\\t\\t\\tup resource:\\n*\\t\\t\\t\\t(a) SLEEP_15MS - 15 ms sleep\\n*\\t\\t\\t\\t(b) SLEEP_30MS - 30 ms sleep\\n*\\t\\t\\t\\t(c) SLEEP_60MS - 60 ms sleep\\n*\\t\\t\\t\\t(d) SLEEP_120MS - 120 ms sleep\\n*\\t\\t\\t\\t(e) SLEEP_250MS - 250 ms sleep\\n*\\t\\t\\t\\t(f) SLEEP_500MS - 500 ms sleep\\n*\\t\\t\\t\\t(g) SLEEP_1S - 1 s sleep\\n*\\t\\t\\t\\t(h) SLEEP_2S - 2 s sleep\\n*\\t\\t\\t\\t(i) SLEEP_4S - 4 s sleep\\n*\\t\\t\\t\\t(j) SLEEP_8S - 8 s sleep\\n*\\t\\t\\t\\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\\n*\\n* 2. adc\\t\\tADC module disable control.\\n*\\t\\t\\t\\t(a) ADC_OFF - Turn off ADC module\\n*\\t\\t\\t\\t(b) ADC_ON - Leave ADC module in its default state\\n*\\n* 3. bod\\t\\tBrown Out Detector (BOD) module disable control:\\n*\\t\\t\\t\\t(a) BOD_OFF - Turn off BOD module\\n*\\t\\t\\t\\t(b) BOD_ON - Leave BOD module in its default state\\n*\\n* 4. timer2\\t\\tTimer 2 module disable control:\\n*\\t\\t\\t\\t(a) TIMER2_OFF - Turn off Timer 2 module\\n*\\t\\t\\t\\t(b) TIMER2_ON - Leave Timer 2 module in its default state\\n*\\n*******************************************************************************/\\nvoid\\tLowPowerClass::powerExtStandby(period_t period, adc_t adc, bod_t bod,\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t timer2_t timer2)\\n{\\n\\t// Temporary clock source variable\\n\\tunsigned char clockSource = 0;\\n\\n\\t#if !defined(__AVR_ATmega32U4__)\\n\\tif (timer2 == TIMER2_OFF)\\n\\t{\\n\\t\\t// Store current setting\\n clockSource = TCCR2B;\\n\\n\\t\\t// Remove the clock source to shutdown Timer2\\n\\t\\tTCCR2B &= ~(1 << CS22);\\n\\t\\tTCCR2B &= ~(1 << CS21);\\n\\t\\tTCCR2B &= ~(1 << CS20);\\n\\t}\\n\\t#endif\\n\\n\\tif (adc == ADC_OFF)\\tADCSRA &= ~(1 << ADEN);\\n\\n\\tif (period != SLEEP_FOREVER)\\n\\t{\\n\\t\\twdt_enable(period);\\n\\t\\tWDTCSR |= (1 << WDIE);\\n\\t}\\n\\n\\n\\t#if defined (__AVR_ATmega88__) || defined (__AVR_ATmega168__) // SLEEP_MODE_EXT_STANDBY not implemented on Atmega88 / Atmega168\\n\\t#else\\n\\t\\tif (bod == BOD_OFF)\\n\\t\\t{\\n\\t\\t\\t#if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega168P__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__)\\n\\t\\t\\t\\tlowPowerBodOff(SLEEP_MODE_EXT_STANDBY);\\n\\t\\t\\t#else\\n\\t\\t\\t\\tlowPowerBodOn(SLEEP_MODE_EXT_STANDBY);\\n\\t\\t\\t#endif\\n\\t\\t}\\n\\t\\telse\\n\\t\\t{\\n\\t\\t\\tlowPowerBodOn(SLEEP_MODE_EXT_STANDBY);\\n\\t\\t}\\n\\t#endif\\n\\n\\tif (adc == ADC_OFF) ADCSRA |= (1 << ADEN);\\n\\n\\t#if !defined(__AVR_ATmega32U4__)\\n\\tif (timer2 == TIMER2_OFF)\\n\\t{\\n // Restore previous setting\\n TCCR2B = clockSource;\\n\\t}\\n\\t#endif\\n}\\n\\n// sleep # of milliseconds using WDT (watchdog timer - accurate to within 10%, uses about 3uA)\\nvoid LowPowerClass::longPowerDown(uint32_t sleepTime) {\\n do {\\n if (sleepTime > 8000)\\n {\\n powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);\\n sleepTime-=8000;\\n }\\n else if (sleepTime > 4000)\\n {\\n powerDown(SLEEP_4S, ADC_OFF, BOD_OFF);\\n sleepTime-=4000;\\n }\\n else if (sleepTime > 2000)\\n {\\n powerDown(SLEEP_2S, ADC_OFF, BOD_OFF);\\n sleepTime-=2000;\\n }\\n else if (sleepTime > 1000)\\n {\\n powerDown(SLEEP_1S, ADC_OFF, BOD_OFF);\\n sleepTime-=1000;\\n }\\n else if (sleepTime > 512)\\n {\\n powerDown(SLEEP_500MS, ADC_OFF, BOD_OFF);\\n sleepTime-=512;\\n }\\n else if (sleepTime > 256)\\n {\\n powerDown(SLEEP_250MS, ADC_OFF, BOD_OFF);\\n sleepTime-=256;\\n }\\n else if (sleepTime > 128)\\n {\\n powerDown(SLEEP_120MS, ADC_OFF, BOD_OFF);\\n sleepTime-=128;\\n }\\n else if (sleepTime > 64)\\n {\\n powerDown(SLEEP_60MS, ADC_OFF, BOD_OFF);\\n sleepTime-=64;\\n }\\n else if (sleepTime > 32)\\n {\\n powerDown(SLEEP_30MS, ADC_OFF, BOD_OFF);\\n sleepTime-=32;\\n }\\n else if (sleepTime > 16)\\n {\\n powerDown(SLEEP_15MS, ADC_OFF, BOD_OFF);\\n sleepTime-=16;\\n }\\n else\\n {\\n sleepTime=0;\\n }\\n } while(sleepTime);\\n}\\n\\n/*******************************************************************************\\n* Name: ISR (WDT_vect)\\n* Description: Watchdog Timer interrupt service routine. This routine is\\n*\\t\\t required to allow automatic WDIF and WDIE bit clearance in\\n*\\t\\t\\t hardware.\\n*\\n*******************************************************************************/\\nISR (WDT_vect)\\n{\\n\\t// WDIE & WDIF is cleared in hardware upon entering this ISR\\n\\twdt_disable();\\n}\\n\\n#elif defined(__arm__)\\n#if defined(__SAMD21__) || defined(ARDUINO_SAMD_ZERO)\\n/*******************************************************************************\\n* Name: standby\\n* Description: Putting SAMD21G18A into idle mode. This is the lowest current\\n* consumption mode. Requires separate handling of clock and\\n* \\t\\t\\t peripheral management (disabling and shutting down) to achieve\\n* \\t\\t\\t the desired current consumption.\\n*\\n* Argument \\tDescription\\n* ========= \\t===========\\n* 1. idleMode Idle mode level (0, 1, 2) where IDLE_2 level provide lowest\\n* \\t\\t\\t\\tcurrent consumption in this mode.\\n*\\n*******************************************************************************/\\nvoid\\tLowPowerClass::idle(idle_t idleMode)\\n{\\n\\tSCB->SCR &= ~SCB_SCR_SLEEPDEEP_Msk;\\n\\tPM->SLEEP.reg = idleMode;\\n\\t__DSB();\\n\\t__WFI();\\n}\\n\\n/*******************************************************************************\\n* Name: standby\\n* Description: Putting SAMD21G18A into standby mode. This is the lowest current\\n* consumption mode. Use this together with the built-in RTC (use\\n* RTCZero library) or external pin interrupt to wake up through\\n* external event triggering.\\n*\\n* Argument \\tDescription\\n* ========= \\t===========\\n* 1. NIL\\n*\\n*******************************************************************************/\\nvoid\\tLowPowerClass::standby()\\n{\\n\\tSCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;\\n\\t__DSB();\\n\\t__WFI();\\n}\\n\\n#else\\n\\t#error \\\"Please ensure chosen MCU is a SAMD21\\\"\\n#endif\\n#else\\n\\t#error \\\"Processor architecture is not supported.\\\"\\n#endif\\n\\nLowPowerClass LowPower;\" }", "{ filename: \"src/LowPower.h\", code: \"#ifndef LowPower_h\\n#define LowPower_h\\n\\n#include \\\"Arduino.h\\\"\\n\\nenum period_t\\n{\\n\\tSLEEP_15MS,\\n\\tSLEEP_30MS,\\n\\tSLEEP_60MS,\\n\\tSLEEP_120MS,\\n\\tSLEEP_250MS,\\n\\tSLEEP_500MS,\\n\\tSLEEP_1S,\\n\\tSLEEP_2S,\\n\\tSLEEP_4S,\\n\\tSLEEP_8S,\\n\\tSLEEP_FOREVER\\n};\\n\\nenum bod_t\\n{\\n\\tBOD_OFF,\\n\\tBOD_ON\\n};\\n\\nenum adc_t\\n{\\n\\tADC_OFF,\\n\\tADC_ON\\n};\\n\\nenum timer5_t\\n{\\n\\tTIMER5_OFF,\\n\\tTIMER5_ON\\n};\\n\\nenum timer4_t\\n{\\n\\tTIMER4_OFF,\\n\\tTIMER4_ON\\n};\\n\\nenum timer3_t\\n{\\n\\tTIMER3_OFF,\\n\\tTIMER3_ON\\n};\\n\\nenum timer2_t\\n{\\n\\tTIMER2_OFF,\\n\\tTIMER2_ON\\n};\\n\\nenum timer1_t\\n{\\n\\tTIMER1_OFF,\\n\\tTIMER1_ON\\n};\\n\\nenum timer0_t\\n{\\n\\tTIMER0_OFF,\\n\\tTIMER0_ON\\n};\\n\\nenum spi_t\\n{\\n\\tSPI_OFF,\\n\\tSPI_ON\\n};\\n\\nenum usart0_t\\n{\\n\\tUSART0_OFF,\\n\\tUSART0_ON\\n};\\n\\nenum usart1_t\\n{\\n\\tUSART1_OFF,\\n\\tUSART1_ON\\n};\\n\\nenum usart2_t\\n{\\n\\tUSART2_OFF,\\n\\tUSART2_ON\\n};\\n\\nenum usart3_t\\n{\\n\\tUSART3_OFF,\\n\\tUSART3_ON\\n};\\n\\nenum twi_t\\n{\\n\\tTWI_OFF,\\n\\tTWI_ON\\n};\\n\\nenum usb_t\\n{\\n\\tUSB_OFF,\\n\\tUSB_ON\\n};\\n\\nenum idle_t\\n{\\n\\tIDLE_0,\\n\\tIDLE_1,\\n\\tIDLE_2\\n};\\n\\nclass LowPowerClass\\n{\\n\\tpublic:\\n\\t\\t#if defined (__AVR__)\\n\\n\\t\\t\\t#if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega168__) || defined (__AVR_ATmega168P__) || defined (__AVR_ATmega88__)\\n\\t\\t\\t\\tvoid\\tidle(period_t period, adc_t adc, timer2_t timer2,\\n\\t\\t\\t\\t\\t\\t timer1_t timer1, timer0_t timer0, spi_t spi,\\n\\t\\t\\t\\t\\t usart0_t usart0, twi_t twi);\\n\\t\\t\\t#elif defined __AVR_ATmega644P__ || defined (__AVR_ATmega1284P__)\\n\\t\\t\\t\\tvoid\\tidle(period_t period, adc_t adc, timer2_t timer2,\\n\\t\\t\\t\\t\\t\\t\\t timer1_t timer1, timer0_t timer0, spi_t spi,\\n\\t\\t\\t\\t\\t\\t\\t usart1_t usart1, usart0_t usart0, twi_t twi);\\n\\t\\t\\t#elif defined __AVR_ATmega2560__\\n\\t\\t\\t\\tvoid\\tidle(period_t period, adc_t adc, timer5_t timer5,\\n\\t\\t\\t\\t\\t\\t\\t timer4_t timer4, timer3_t timer3, timer2_t timer2,\\n\\t\\t\\t\\t\\t\\t\\t timer1_t timer1, timer0_t timer0, spi_t spi,\\n\\t\\t\\t\\t\\t\\t\\t usart3_t usart3, usart2_t usart2, usart1_t usart1,\\n\\t\\t\\t\\t\\t\\t\\t usart0_t usart0, twi_t twi);\\n\\t\\t\\t#elif defined __AVR_ATmega256RFR2__\\n\\t\\t\\t\\tvoid\\tidle(period_t period, adc_t adc, timer5_t timer5,\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t timer4_t timer4, timer3_t timer3, timer2_t timer2,\\n\\t\\t\\t\\t \\t\\t\\t\\t timer1_t timer1, timer0_t timer0, spi_t spi,\\n\\t\\t\\t\\t\\t\\t usart1_t usart1,\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t usart0_t usart0, twi_t twi);\\n\\t\\t\\t#elif defined __AVR_ATmega32U4__\\n\\t\\t\\t\\tvoid\\tidle(period_t period, adc_t adc, timer4_t timer4,\\n\\t\\t\\t\\t timer3_t timer3, timer1_t timer1, timer0_t timer0,\\n\\t\\t\\t\\t spi_t spi, usart1_t usart1, twi_t twi, usb_t usb);\\n\\t\\t\\t#else\\n\\t\\t\\t\\t#error \\\"Please ensure chosen MCU is either 88, 168, 168P, 328P, 32U4, 2560 or 256RFR2.\\\"\\n\\t\\t\\t#endif\\n\\t\\t\\tvoid\\tadcNoiseReduction(period_t period, adc_t adc, timer2_t timer2) __attribute__((optimize(\\\"-O1\\\")));\\n\\t\\t\\tvoid\\tpowerDown(period_t period, adc_t adc, bod_t bod) __attribute__((optimize(\\\"-O1\\\")));\\n\\t\\t\\tvoid\\tpowerSave(period_t period, adc_t adc, bod_t bod, timer2_t timer2) __attribute__((optimize(\\\"-O1\\\")));\\n\\t\\t\\tvoid\\tpowerStandby(period_t period, adc_t adc, bod_t bod) __attribute__((optimize(\\\"-O1\\\")));\\n\\t\\t\\tvoid\\tpowerExtStandby(period_t period, adc_t adc, bod_t bod, timer2_t timer2) __attribute__((optimize(\\\"-O1\\\")));\\n void longPowerDown(uint32_t sleepTime);\\n\\t\\t#elif defined (__arm__)\\n\\t\\t\\t#if defined(__SAMD21__) || defined(ARDUINO_SAMD_ZERO)\\n\\t\\t\\t\\tvoid\\tidle(idle_t idleMode);\\n\\t\\t\\t\\tvoid\\tstandby();\\n\\t\\t\\t#else\\n\\t\\t\\t\\t#error \\\"Please ensure chosen MCU is a SAMD21\\\"\\n\\t\\t\\t#endif\\n\\n\\t\\t#else\\n\\n\\t\\t\\t#error \\\"Processor architecture is not supported.\\\"\\n\\n\\t\\t#endif\\n};\\n\\nextern LowPowerClass LowPower;\\n#endif\" }" ];PK ϠTEsrc/facepanels.jsexport default {};PK ϠT_[[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 ϠTlڴEEsrc/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_1654891253229': { onRun: (args, app, device, block) => {} }, 'BLOCK_1654891387215': { onRun: (args, app, device, block) => {} }, 'BLOCK_1654891387430': { onRun: (args, app, device, block) => {} }, 'BLOCK_1654891387629': { onRun: (args, app, device, block) => {} }, 'BLOCK_1654891387838': { onRun: (args, app, device, block) => {} }, 'BLOCK_1654891388053': { onRun: (args, app, device, block) => {} }, 'BLOCK_1654891388253': { onRun: (args, app, device, block) => {} }, 'BLOCK_1654891388445': { onRun: (args, app, device, block) => {} }, 'BLOCK_1654891388646': { onRun: (args, app, device, block) => {} }, 'BLOCK_1654891388886': { 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 ϠT src/cates/PK ϠTsrc/cates/cate_a6173b07/PK ϠT?OO src/cates/cate_a6173b07/index.jsimport blocks from './blocks.js'; const cate_a6173b07 = (facepanels) => ({ "name": "cate_a6173b07", "colors": [ "#7ED321", "#71BE1E", "#65A91A" ], "menuIconURI": "", "blockIcon": { "type": "image", "width": 28, "height": 26, "src": window.MbApi.getExtResPath('vdr_grove_divers/imgs/6c1edb5f7d104e018ed377bd1a7f60a7.png', 'vdr_grove_divers') }, "blocks": blocks(facepanels), "menus": { "BLOCK_1654891387430_NUM": [{ "text": "BLOCK_1654891387430_NUM_0", "value": "1" }, { "text": "BLOCK_1654891387430_NUM_1", "value": "2" }, { "text": "BLOCK_1654891387430_NUM_2", "value": "3" }, { "text": "BLOCK_1654891387430_NUM_3", "value": "4" }, { "text": "BLOCK_1654891387430_NUM_4", "value": "5" }, { "text": "BLOCK_1654891387430_NUM_5", "value": "6" }, { "text": "BLOCK_1654891387430_NUM_6", "value": "7" }, { "text": "BLOCK_1654891387430_NUM_7", "value": "8" }, { "text": "BLOCK_1654891387430_NUM_8", "value": "9" } ], "BLOCK_1654891387838_PINSDIGIT": [{ "text": "BLOCK_1654891387838_PINSDIGIT_0", "value": "2" }, { "text": "BLOCK_1654891387838_PINSDIGIT_1", "value": "3" }, { "text": "BLOCK_1654891387838_PINSDIGIT_2", "value": "4" }, { "text": "BLOCK_1654891387838_PINSDIGIT_3", "value": "5" }, { "text": "BLOCK_1654891387838_PINSDIGIT_4", "value": "6" }, { "text": "BLOCK_1654891387838_PINSDIGIT_5", "value": "7" }, { "text": "BLOCK_1654891387838_PINSDIGIT_6", "value": "8" } ], "BLOCK_1654891387838_ONOFF": [{ "text": "BLOCK_1654891387838_ONOFF_0", "value": "1" }, { "text": "BLOCK_1654891387838_ONOFF_1", "value": "0" }, { "text": "BLOCK_1654891387838_ONOFF_2", "value": "2" } ], "BLOCK_1654891388053_ETAT": [{ "text": "BLOCK_1654891388053_ETAT_0", "value": "1" }, { "text": "BLOCK_1654891388053_ETAT_1", "value": "0" } ], "BLOCK_1654891388253_PINANALOGIQUE": [{ "text": "BLOCK_1654891388253_PINANALOGIQUE_0", "value": "A0" }, { "text": "BLOCK_1654891388253_PINANALOGIQUE_1", "value": "A1" }, { "text": "BLOCK_1654891388253_PINANALOGIQUE_2", "value": "A2" }, { "text": "BLOCK_1654891388253_PINANALOGIQUE_3", "value": "A3" } ], "BLOCK_1654891388253_GROVE_VCC": [{ "text": "BLOCK_1654891388253_GROVE_VCC_0", "value": "3.5" }, { "text": "BLOCK_1654891388253_GROVE_VCC_1", "value": "5" } ], "BLOCK_1654891388445_NOTE": [{ "text": "BLOCK_1654891388445_NOTE_0", "value": "1915" }, { "text": "BLOCK_1654891388445_NOTE_1", "value": "1700" }, { "text": "BLOCK_1654891388445_NOTE_2", "value": "1519" }, { "text": "BLOCK_1654891388445_NOTE_3", "value": "1432" }, { "text": "BLOCK_1654891388445_NOTE_4", "value": "1275" }, { "text": "BLOCK_1654891388445_NOTE_5", "value": "1136" }, { "text": "BLOCK_1654891388445_NOTE_6", "value": "1074" } ] } }); export default cate_a6173b07;PK ϠT3{ǐsrc/cates/index.jsimport cate_a6173b07 from './cate_a6173b07/index.js'; const cates = (facepanels) => ([ cate_a6173b07(facepanels) ]); export default cates;PK ϠTz!!!src/cates/cate_a6173b07/blocks.jsconst blocks = (extFacePanels) => ([{ "opcode": "BLOCK_1654891253229", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": {}, "branchCount": 0, "handler": this.funcs.BLOCK_1654891253229 }, { "opcode": "BLOCK_1654891387215", "blockType": "conditional", "checkboxInFlyout": false, "hidden": false, "gap": 12, "arguments": { "forVar": { "type": "inputVariable", "defaultValue": "" }, "min": { "type": "number", "defaultValue": 1 }, "max": { "type": "number", "defaultValue": 10 }, "step": { "type": "number", "defaultValue": 1 } }, "branchCount": 1, "platform": [ "mblockpc", "mblockweb" ], "codes": { "arduinoc": { "code": ` for (int /*{forVar}*/=/*{min}*/ ; /*{forVar}*/<=/*{max}*/ ; /*{forVar}*/+=/*{step}*/) {\r\n /*{$BRANCH1}*/ \r\n }\r\n ` } }, "handler": this.funcs.BLOCK_1654891387215 }, { "opcode": "BLOCK_1654891387430", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "num": { "type": "fieldMenu", "defaultValue": "1", "menu": "BLOCK_1654891387430_NUM" } }, "branchCount": 0, "codes": { "arduinoc": { "code": `tempsDepart/*{num}*/=millis();`, "sections": { "declare": `unsigned long tempsDepart/*{num}*/ = 0; \r` } } }, "handler": this.funcs.BLOCK_1654891387430 }, { "opcode": "BLOCK_1654891387629", "blockType": "boolean", "checkboxInFlyout": false, "gap": 12, "arguments": { "num": { "type": "fieldMenu", "defaultValue": "1", "menu": "BLOCK_1654891387430_NUM" }, "time": { "type": "number", "defaultValue": 1000 } }, "branchCount": 0, "codes": { "arduinoc": { "code": `((tempsDepart/*{num}*/ + /*{time}*/) < millis())` } }, "handler": this.funcs.BLOCK_1654891387629 }, { "opcode": "BLOCK_1654891387838", "blockType": "command", "checkboxInFlyout": false, "hidden": false, "gap": 12, "arguments": { "pinsDigit": { "type": "fieldMenu", "defaultValue": "2", "menu": "BLOCK_1654891387838_PINSDIGIT" }, "onOff": { "type": "fieldMenu", "defaultValue": "1", "menu": "BLOCK_1654891387838_ONOFF" } }, "branchCount": 0, "platform": [ "mblockpc", "mblockweb" ], "codes": { "arduinoc": { "code": `SetPinState(/*{pinsDigit}*/,/*{onOff}*/);`, "sections": { "declare": `void SetPinState(int n,int val){\r\n if(val==2){\r\n if(digitalRead(n)){\r\n digitalWrite(n, LOW);\r\n }\r\n else{\r\n digitalWrite(n, HIGH);\r\n }\r\n delay(100);\r\n }else{\r\n digitalWrite(n, val);\r\n }\r\n}`, "setup": `pinMode(/*{pinsDigit}*/,OUTPUT);` } } }, "handler": this.funcs.BLOCK_1654891387838 }, { "opcode": "BLOCK_1654891388053", "blockType": "boolean", "checkboxInFlyout": false, "gap": 12, "arguments": { "pinsDigit": { "type": "fieldMenu", "defaultValue": "2", "menu": "BLOCK_1654891387838_PINSDIGIT" }, "etat": { "type": "fieldMenu", "defaultValue": "1", "menu": "BLOCK_1654891388053_ETAT" } }, "branchCount": 0, "codes": { "arduinoc": { "code": `digitalInputState (/*{pinsDigit}*/,/*{etat}*/)`, "sections": { "declare": `bool digitalInputState (int pinNum , bool state) {\r\n if (state) return digitalRead(pinNum);\r\n else return !digitalRead(pinNum);\r\n}`, "setup": `pinMode(/*{pinsDigit}*/,INPUT);` } } }, "handler": this.funcs.BLOCK_1654891388053 }, { "opcode": "BLOCK_1654891388253", "blockType": "number", "checkboxInFlyout": false, "gap": 12, "arguments": { "pinAnalogique": { "type": "fieldMenu", "defaultValue": "A0", "menu": "BLOCK_1654891388253_PINANALOGIQUE" }, "Grove_VCC": { "type": "fieldMenu", "defaultValue": "5", "menu": "BLOCK_1654891388253_GROVE_VCC" }, "angleMax": { "type": "number", "defaultValue": 100 } }, "branchCount": 0, "codes": { "arduinoc": { "code": `GetAnglePotentiometre()`, "sections": { "declare": `#define ROTARY_ANGLE_SENSOR /*{pinAnalogique}*/\r\n#define GROVE_VCC /*{Grove_VCC}*/\r\n#define FULL_ANGLE /*{angleMax}*/ //full value of the rotary angle is 300 degrees\r\n#define ADC_REF 5 \r\n\r\nint GetAnglePotentiometre(){\r\n int sensor_value = analogRead(ROTARY_ANGLE_SENSOR);\r\n return round(((float)sensor_value*ADC_REF/1023)*FULL_ANGLE/GROVE_VCC);\r\n}`, "setup": ` pinMode(ROTARY_ANGLE_SENSOR, INPUT);` } } }, "handler": this.funcs.BLOCK_1654891388253 }, { "opcode": "BLOCK_1654891388445", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "pinDigit": { "type": "fieldMenu", "defaultValue": "2", "menu": "BLOCK_1654891387838_PINSDIGIT" }, "note": { "type": "fieldMenu", "defaultValue": "1915", "menu": "BLOCK_1654891388445_NOTE" }, "duree": { "type": "number", "defaultValue": 1 } }, "branchCount": 0, "codes": { "arduinoc": { "code": `grove_buzzer_play_tone(/*{pinDigit}*/, /*{note}*/, /*{duree}*/*1000);`, "sections": { "declare": `void grove_buzzer_play_tone(int pin, int tone, int duration) { \r\n for (long i = 0; i < duration * 1000L; i += tone * 2) {\r\n digitalWrite(pin, HIGH);\r\n delayMicroseconds(tone);\r\n digitalWrite(pin, LOW);\r\n delayMicroseconds(tone);\r\n }\r\n}`, "setup": `pinMode(/*{pinDigit}*/,OUTPUT);` } } }, "handler": this.funcs.BLOCK_1654891388445 }, { "opcode": "BLOCK_1654891388646", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": {}, "branchCount": 0, "codes": { "arduinoc": { "code": `LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);\r\n//Serial.println(\"reveil\");\r\n//delay(100);`, "sections": { "include": [ "\"src/LowPower.h\"" ] } } }, "handler": this.funcs.BLOCK_1654891388646 }, { "opcode": "BLOCK_1654891388886", "blockType": "number", "checkboxInFlyout": false, "gap": 12, "arguments": {}, "branchCount": 0, "codes": { "arduinoc": { "code": `(float((analogRead(analogInPin))*5)/1023*2)`, "sections": { "declare": `const int analogInPin = A0;` } } }, "handler": this.funcs.BLOCK_1654891388886 } ]); export default blocks;PK ϠT src/langs/PK ϠTysrc/langs/zh.jsexport default { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" };PK ϠTysrc/langs/de.jsexport default { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" };PK ϠTysrc/langs/es.jsexport default { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" };PK ϠTysrc/langs/fr.jsexport default { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" };PK ϠTysrc/langs/id.jsexport default { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" };PK ϠTysrc/langs/ja.jsexport default { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" };PK ϠTysrc/langs/ja-jph.jsexport default { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" };PK ϠTysrc/langs/ko.jsexport default { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" };PK ϠTysrc/langs/pl.jsexport default { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" };PK ϠTysrc/langs/uk.jsexport default { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" };PK ϠTysrc/langs/zh-hant.jsexport default { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" };PK ϠTysrc/langs/nl.jsexport default { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" };PK ϠTysrc/langs/it.jsexport default { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" };PK ϠTysrc/langs/hr.jsexport default { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" };PK ϠTysrc/langs/ru.jsexport default { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" };PK ϠTysrc/langs/pt.jsexport default { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" };PK ϠTysrc/langs/fi.jsexport default { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" };PK ϠTysrc/langs/tr.jsexport default { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" };PK ϠTysrc/langs/tk.jsexport default { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" };PK ϠTysrc/langs/en.jsexport default { "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" };PK ϠTiisrc/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 ϠTBss manifest.json{ "id": "vdr_grove_divers", "iconURL": "vdr_grove_divers/imgs/7f21cf77b1184edf8695a2925366d44d.jpg", "coverURL": "./res/7f21cf77b1184edf8695a2925366d44d.jpg", "name": { "zh": "vdr grove divers", "de": "vdr grove divers", "es": "vdr grove divers", "fr": "vdr grove divers", "id": "vdr grove divers", "ja": "vdr grove divers", "ja-jph": "vdr grove divers", "ko": "vdr grove divers", "pl": "vdr grove divers", "uk": "vdr grove divers", "zh-hant": "vdr grove divers", "nl": "vdr grove divers", "it": "vdr grove divers", "hr": "vdr grove divers", "ru": "vdr grove divers", "pt": "vdr grove divers", "fi": "vdr grove divers", "tr": "vdr grove divers", "tk": "vdr grove divers", "en": "vdr grove divers" }, "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_divers/index.js", "codeTypes": [ "arduinoc" ], "device": false, "sortId": 999, "version": "1.0.0", "extApiVersion": [ "1.0.3" ], "platform": [ "mblockpc" ], "homepage": "", "feature": [ "worker" ] }PK ϠT data.bak/PK ϠT6 data.bak/ext.json{ "identify": "vdr_grove_divers", "version": "1.0.0", "device": false, "template": "arduinoc", "cover": { "name": "red_led.jpg", "url": "https://mblock-expanded.oss-cn-shenzhen.aliyuncs.com/7f21cf77b1184edf8695a2925366d44d.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": [ { "name": "src/LowPower.cpp", "url": "src/LowPower.cpp", "fileData": "/*******************************************************************************\n* LowPower Library\n* Version: 1.81\n* Date: 21-01-2020\n* Author: Lim Phang Moh\n* Company: Rocket Scream Electronics\n* Website: www.rocketscream.com\n*\n* This is a lightweight low power library for Arduino.\n*\n* This library is licensed under Creative Commons Attribution-ShareAlike 3.0\n* Unported License.\n*\n* Revision Description\n* ======== ===========\n* 1.81 Fixed timer 2 settings incorrectly restored after sleep.\n* Contributed by rwared11.\n* 1.80 Added support for ATmega88 and ATmega168P. PowerExtStandby()\n* modified because not supported on Atmega88 / Atmega168\n* Contributed by mrguen.\n* 1.70 Added support for ATmega644P and ATmega1284P.\n* Contributed by alexreinert.\n* 1.60 Added support for ATmega256RFR2. Contributed by Rodmg.\n* 1.50 Fixed compiler optimization (Arduino IDE 1.6.x branch) on BOD enable\n* function that causes the function to be over optimized.\n* 1.40\t\tAdded support for ATSAMD21G18A.\n* \t\t\tLibrary format compliant with Arduino IDE 1.5.x.\n* 1.30\t\tAdded support for ATMega168, ATMega2560, ATMega1280 & ATMega32U4.\n*\t\t\tTested to work with Arduino IDE 1.0.1 - 1.0.4.\n* 1.20\t\tRemove typo error in idle method for checking whether Timer 0 was\n*\t\t\tturned off.\n*\t\t\tRemove dependecy on WProgram.h which is not required.\n*\t\t\tTested to work with Arduino IDE 1.0.\n* 1.10\t\tAdded #ifndef for sleep_bod_disable() for compatibility with future\n*\t\t\tArduino IDE release.\n* 1.00 Initial public release.\n*******************************************************************************/\n#if defined (__AVR__)\n\t#include \n\t#include \n\t#include \n\t#include \n#elif defined (__arm__)\n\n#else\n\t#error \"Processor architecture is not supported.\"\n#endif\n\n#include \"LowPower.h\"\n\n#if defined (__AVR__)\n// Only Pico Power devices can change BOD settings through software\n#if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega168P__)\n#ifndef sleep_bod_disable\n#define sleep_bod_disable() \t\t\t\t\t\t\t\t\t\t\\\ndo { \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n unsigned char tempreg; \t\t\t\t\t\t\t\t\t\t\t\t\t\\\n __asm__ __volatile__(\"in %[tempreg], %[mcucr]\" \"\\n\\t\" \t\t\t\\\n \"ori %[tempreg], %[bods_bodse]\" \"\\n\\t\" \t\t\\\n \"out %[mcucr], %[tempreg]\" \"\\n\\t\" \t\t\t\\\n \"andi %[tempreg], %[not_bodse]\" \"\\n\\t\" \t\t\\\n \"out %[mcucr], %[tempreg]\" \t\t\t\t\t\\\n : [tempreg] \"=&d\" (tempreg) \t\t\t\t\t\\\n : [mcucr] \"I\" _SFR_IO_ADDR(MCUCR), \t\t\t\\\n [bods_bodse] \"i\" (_BV(BODS) | _BV(BODSE)), \\\n [not_bodse] \"i\" (~_BV(BODSE))); \t\t\t\\\n} while (0)\n#endif\n#endif\n\n#define\tlowPowerBodOn(mode)\t\\\ndo { \t\t\t\t\t\t\\\n set_sleep_mode(mode); \\\n cli();\t\t\t\t\\\n sleep_enable();\t\t\\\n sei();\t\t\t\t\\\n sleep_cpu();\t\t\t\\\n sleep_disable();\t\t\\\n sei();\t\t\t\t\\\n} while (0);\n\n// Only Pico Power devices can change BOD settings through software\n#if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega168P__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__)\n#define\tlowPowerBodOff(mode)\\\ndo { \t\t\t\t\t\t\\\n set_sleep_mode(mode); \\\n cli();\t\t\t\t\\\n sleep_enable();\t\t\\\n\t\t\tsleep_bod_disable(); \\\n sei();\t\t\t\t\\\n sleep_cpu();\t\t\t\\\n sleep_disable();\t\t\\\n sei();\t\t\t\t\\\n} while (0);\n#endif\n\n// Some macros is still missing from AVR GCC distribution for ATmega32U4\n#if defined __AVR_ATmega32U4__\n\t// Timer 4 PRR bit is currently not defined in iom32u4.h\n\t#ifndef PRTIM4\n\t\t#define PRTIM4 4\n\t#endif\n\n\t// Timer 4 power reduction macro is not defined currently in power.h\n\t#ifndef power_timer4_disable\n\t\t#define power_timer4_disable()\t(PRR1 |= (uint8_t)(1 << PRTIM4))\n\t#endif\n\n\t#ifndef power_timer4_enable\n\t\t#define power_timer4_enable()\t\t(PRR1 &= (uint8_t)~(1 << PRTIM4))\n\t#endif\n#endif\n\n/*******************************************************************************\n* Name: idle\n* Description: Putting ATmega328P/168 into idle state. Please make sure you\n*\t\t\t understand the implication and result of disabling module.\n*\n* Argument \tDescription\n* ========= \t===========\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\n*\t\t\t\tup resource:\n*\t\t\t\t(a) SLEEP_15MS - 15 ms sleep\n*\t\t\t\t(b) SLEEP_30MS - 30 ms sleep\n*\t\t\t\t(c) SLEEP_60MS - 60 ms sleep\n*\t\t\t\t(d) SLEEP_120MS - 120 ms sleep\n*\t\t\t\t(e) SLEEP_250MS - 250 ms sleep\n*\t\t\t\t(f) SLEEP_500MS - 500 ms sleep\n*\t\t\t\t(g) SLEEP_1S - 1 s sleep\n*\t\t\t\t(h) SLEEP_2S - 2 s sleep\n*\t\t\t\t(i) SLEEP_4S - 4 s sleep\n*\t\t\t\t(j) SLEEP_8S - 8 s sleep\n*\t\t\t\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\n*\n* 2. adc\t\tADC module disable control:\n*\t\t\t\t(a) ADC_OFF - Turn off ADC module\n*\t\t\t\t(b) ADC_ON - Leave ADC module in its default state\n*\n* 3. timer2\t\tTimer 2 module disable control:\n*\t\t\t\t(a) TIMER2_OFF - Turn off Timer 2 module\n*\t\t\t\t(b) TIMER2_ON - Leave Timer 2 module in its default state\n*\n* 4. timer1\t\tTimer 1 module disable control:\n*\t\t\t\t(a) TIMER1_OFF - Turn off Timer 1 module\n*\t\t\t\t(b) TIMER1_ON - Leave Timer 1 module in its default state\n*\n* 5. timer0\t\tTimer 0 module disable control:\n*\t\t\t\t(a) TIMER0_OFF - Turn off Timer 0 module\n*\t\t\t\t(b) TIMER0_ON - Leave Timer 0 module in its default state\n*\n* 6. spi\t\tSPI module disable control:\n*\t\t\t\t(a) SPI_OFF - Turn off SPI module\n*\t\t\t\t(b) SPI_ON - Leave SPI module in its default state\n*\n* 7. usart0\t\tUSART0 module disable control:\n*\t\t\t\t(a) USART0_OFF - Turn off USART0 module\n*\t\t\t\t(b) USART0_ON - Leave USART0 module in its default state\n*\n* 8. twi\t\tTWI module disable control:\n*\t\t\t\t(a) TWI_OFF - Turn off TWI module\n*\t\t\t\t(b) TWI_ON - Leave TWI module in its default state\n*\n*******************************************************************************/\n#if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega168__) || defined (__AVR_ATmega168P__) || defined (__AVR_ATmega88__)\nvoid\tLowPowerClass::idle(period_t period, adc_t adc, timer2_t timer2,\n\t\t\t\t\t\t\ttimer1_t timer1, timer0_t timer0,\n\t\t\t\t\t\t\tspi_t spi, usart0_t usart0,\ttwi_t twi)\n{\n\t// Temporary clock source variable\n\tunsigned char clockSource = 0;\n\n\tif (timer2 == TIMER2_OFF)\n\t{\n\t\t// Store current setting\n clockSource = TCCR2B;\n\n\t\t// Remove the clock source to shutdown Timer2\n\t\tTCCR2B &= ~(1 << CS22);\n\t\tTCCR2B &= ~(1 << CS21);\n\t\tTCCR2B &= ~(1 << CS20);\n\n\t\tpower_timer2_disable();\n\t}\n\n\tif (adc == ADC_OFF)\n\t{\n\t\tADCSRA &= ~(1 << ADEN);\n\t\tpower_adc_disable();\n\t}\n\n\tif (timer1 == TIMER1_OFF)\tpower_timer1_disable();\n\tif (timer0 == TIMER0_OFF)\tpower_timer0_disable();\n\tif (spi == SPI_OFF)\t\t\tpower_spi_disable();\n\tif (usart0 == USART0_OFF)\tpower_usart0_disable();\n\tif (twi == TWI_OFF)\t\t\tpower_twi_disable();\n\n\tif (period != SLEEP_FOREVER)\n\t{\n\t\twdt_enable(period);\n\t\tWDTCSR |= (1 << WDIE);\n\t}\n\n\tlowPowerBodOn(SLEEP_MODE_IDLE);\n\n\tif (adc == ADC_OFF)\n\t{\n\t\tpower_adc_enable();\n\t\tADCSRA |= (1 << ADEN);\n\t}\n\n\tif (timer2 == TIMER2_OFF)\n\t{\n // Restore previous setting\n TCCR2B = clockSource;\n \n\t\tpower_timer2_enable();\n\t}\n\n\tif (timer1 == TIMER1_OFF)\tpower_timer1_enable();\n\tif (timer0 == TIMER0_OFF)\tpower_timer0_enable();\n\tif (spi == SPI_OFF)\t\t\tpower_spi_enable();\n\tif (usart0 == USART0_OFF)\tpower_usart0_enable();\n\tif (twi == TWI_OFF)\t\t\tpower_twi_enable();\n}\n#endif\n\n/*******************************************************************************\n* Name: idle\n* Description: Putting ATmega32U4 into idle state. Please make sure you\n*\t\t\t understand the implication and result of disabling module.\n*\t\t\t Take note that Timer 2 is not available and USART0 is replaced\n* \t\t\t with USART1 on ATmega32U4.\n*\n* Argument \tDescription\n* ========= \t===========\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\n*\t\t\t\tup resource:\n*\t\t\t\t(a) SLEEP_15MS - 15 ms sleep\n*\t\t\t\t(b) SLEEP_30MS - 30 ms sleep\n*\t\t\t\t(c) SLEEP_60MS - 60 ms sleep\n*\t\t\t\t(d) SLEEP_120MS - 120 ms sleep\n*\t\t\t\t(e) SLEEP_250MS - 250 ms sleep\n*\t\t\t\t(f) SLEEP_500MS - 500 ms sleep\n*\t\t\t\t(g) SLEEP_1S - 1 s sleep\n*\t\t\t\t(h) SLEEP_2S - 2 s sleep\n*\t\t\t\t(i) SLEEP_4S - 4 s sleep\n*\t\t\t\t(j) SLEEP_8S - 8 s sleep\n*\t\t\t\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\n*\n* 2. adc\t\tADC module disable control:\n*\t\t\t\t(a) ADC_OFF - Turn off ADC module\n*\t\t\t\t(b) ADC_ON - Leave ADC module in its default state\n*\n* 3. timer4\t\tTimer 4 module disable control:\n*\t\t\t\t(a) TIMER4_OFF - Turn off Timer 4 module\n*\t\t\t\t(b) TIMER4_ON - Leave Timer 4 module in its default state\n*\n* 4. timer3\t\tTimer 3 module disable control:\n*\t\t\t\t(a) TIMER3_OFF - Turn off Timer 3 module\n*\t\t\t\t(b) TIMER3_ON - Leave Timer 3 module in its default state\n*\n* 5. timer1\t\tTimer 1 module disable control:\n*\t\t\t\t(a) TIMER1_OFF - Turn off Timer 1 module\n*\t\t\t\t(b) TIMER1_ON - Leave Timer 1 module in its default state\n*\n* 6. timer0\t\tTimer 0 module disable control:\n*\t\t\t\t(a) TIMER0_OFF - Turn off Timer 0 module\n*\t\t\t\t(b) TIMER0_ON - Leave Timer 0 module in its default state\n*\n* 7. spi\t\tSPI module disable control:\n*\t\t\t\t(a) SPI_OFF - Turn off SPI module\n*\t\t\t\t(b) SPI_ON - Leave SPI module in its default state\n*\n* 8. usart1\t\tUSART1 module disable control:\n*\t\t\t\t(a) USART1_OFF - Turn off USART1 module\n*\t\t\t\t(b) USART1_ON - Leave USART1 module in its default state\n*\n* 9. twi\t\tTWI module disable control:\n*\t\t\t\t(a) TWI_OFF - Turn off TWI module\n*\t\t\t\t(b) TWI_ON - Leave TWI module in its default state\n*\n* 10.usb\t\tUSB module disable control:\n*\t\t\t\t(a) USB_OFF - Turn off USB module\n*\t\t\t\t(b) USB_ON - Leave USB module in its default state\n*******************************************************************************/\n#if defined __AVR_ATmega32U4__\nvoid\tLowPowerClass::idle(period_t period, adc_t adc,\n\t\t\t\t\t\t\ttimer4_t timer4, timer3_t timer3,\n\t\t\t\t\t\t\ttimer1_t timer1, timer0_t timer0,\n\t\t\t\t\t\t\tspi_t spi, usart1_t usart1,\ttwi_t twi, usb_t usb)\n{\n\tif (adc == ADC_OFF)\n\t{\n\t\tADCSRA &= ~(1 << ADEN);\n\t\tpower_adc_disable();\n\t}\n\n\tif (timer4 == TIMER4_OFF)\tpower_timer4_disable();\n\tif (timer3 == TIMER3_OFF)\tpower_timer3_disable();\n\tif (timer1 == TIMER1_OFF)\tpower_timer1_disable();\n\tif (timer0 == TIMER0_OFF)\tpower_timer0_disable();\n\tif (spi == SPI_OFF)\t\t\tpower_spi_disable();\n\tif (usart1 == USART1_OFF)\tpower_usart1_disable();\n\tif (twi == TWI_OFF)\t\t\tpower_twi_disable();\n\tif (usb == USB_OFF)\t\t\tpower_usb_disable();\n\n\tif (period != SLEEP_FOREVER)\n\t{\n\t\twdt_enable(period);\n\t\tWDTCSR |= (1 << WDIE);\n\t}\n\n\tlowPowerBodOn(SLEEP_MODE_IDLE);\n\n\tif (adc == ADC_OFF)\n\t{\n\t\tpower_adc_enable();\n\t\tADCSRA |= (1 << ADEN);\n\t}\n\n\tif (timer4 == TIMER4_OFF)\tpower_timer4_enable();\n\tif (timer3 == TIMER3_OFF)\tpower_timer3_enable();\n\tif (timer1 == TIMER1_OFF)\tpower_timer1_enable();\n\tif (timer0 == TIMER0_OFF)\tpower_timer0_enable();\n\tif (spi == SPI_OFF)\t\t\tpower_spi_enable();\n\tif (usart1 == USART1_OFF)\tpower_usart1_enable();\n\tif (twi == TWI_OFF)\t\t\tpower_twi_enable();\n\tif (usb == USB_OFF)\t\t\tpower_usb_enable();\n}\n#endif\n\n/*******************************************************************************\n* Name: idle\n* Description: Putting ATmega644P & ATmega1284P into idle state. Please make sure\n*\t\t\t you understand the implication and result of disabling module.\n*\t\t\t Take note that extra USART 1 compared to an ATmega328P/168.\n*\n* Argument \tDescription\n* ========= \t===========\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\n*\t\t\t\tup resource:\n*\t\t\t\t(a) SLEEP_15MS - 15 ms sleep\n*\t\t\t\t(b) SLEEP_30MS - 30 ms sleep\n*\t\t\t\t(c) SLEEP_60MS - 60 ms sleep\n*\t\t\t\t(d) SLEEP_120MS - 120 ms sleep\n*\t\t\t\t(e) SLEEP_250MS - 250 ms sleep\n*\t\t\t\t(f) SLEEP_500MS - 500 ms sleep\n*\t\t\t\t(g) SLEEP_1S - 1 s sleep\n*\t\t\t\t(h) SLEEP_2S - 2 s sleep\n*\t\t\t\t(i) SLEEP_4S - 4 s sleep\n*\t\t\t\t(j) SLEEP_8S - 8 s sleep\n*\t\t\t\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\n*\n* 2. adc\t\tADC module disable control:\n*\t\t\t\t(a) ADC_OFF - Turn off ADC module\n*\t\t\t\t(b) ADC_ON - Leave ADC module in its default state\n*\n* 3. timer2\t\tTimer 2 module disable control:\n*\t\t\t\t(a) TIMER2_OFF - Turn off Timer 2 module\n*\t\t\t\t(b) TIMER2_ON - Leave Timer 2 module in its default state\n*\n* 4. timer1\t\tTimer 1 module disable control:\n*\t\t\t\t(a) TIMER1_OFF - Turn off Timer 1 module\n*\t\t\t\t(b) TIMER1_ON - Leave Timer 1 module in its default state\n*\n* 5. timer0\t\tTimer 0 module disable control:\n*\t\t\t\t(a) TIMER0_OFF - Turn off Timer 0 module\n*\t\t\t\t(b) TIMER0_ON - Leave Timer 0 module in its default state\n*\n* 6. spi\t\tSPI module disable control:\n*\t\t\t\t(a) SPI_OFF - Turn off SPI module\n*\t\t\t\t(b) SPI_ON - Leave SPI module in its default state\n*\n* 7. usart1\t\tUSART1 module disable control:\n*\t\t\t\t(a) USART1_OFF - Turn off USART1 module\n*\t\t\t\t(b) USART1_ON - Leave USART1 module in its default state\n*\n* 8. usart0\t\tUSART0 module disable control:\n*\t\t\t\t(a) USART0_OFF - Turn off USART0 module\n*\t\t\t\t(b) USART0_ON - Leave USART0 module in its default state\n*\n* 9. twi\t\tTWI module disable control:\n*\t\t\t\t(a) TWI_OFF - Turn off TWI module\n*\t\t\t\t(b) TWI_ON - Leave TWI module in its default state\n*\n*******************************************************************************/\n#if defined (__AVR_ATmega644P__) || defined (__AVR_ATmega1284P__)\nvoid\tLowPowerClass::idle(period_t period, adc_t adc, timer2_t timer2,\n\t\t\t\t\t\t\ttimer1_t timer1, timer0_t timer0, spi_t spi,\n\t\t\t\t\t\t\tusart1_t usart1, usart0_t usart0, twi_t twi)\n{\n\t// Temporary clock source variable\n\tunsigned char clockSource = 0;\n\n\tif (timer2 == TIMER2_OFF)\n\t{\n\t\t// Store current setting\n clockSource = TCCR2B;\n\n\t\t// Remove the clock source to shutdown Timer2\n\t\tTCCR2B &= ~(1 << CS22);\n\t\tTCCR2B &= ~(1 << CS21);\n\t\tTCCR2B &= ~(1 << CS20);\n\n\t\tpower_timer2_disable();\n\t}\n\n\tif (adc == ADC_OFF)\n\t{\n\t\tADCSRA &= ~(1 << ADEN);\n\t\tpower_adc_disable();\n\t}\n\n\tif (timer1 == TIMER1_OFF)\tpower_timer1_disable();\n\tif (timer0 == TIMER0_OFF)\tpower_timer0_disable();\n\tif (spi == SPI_OFF)\t\t power_spi_disable();\n\tif (usart1 == USART1_OFF)\tpower_usart1_disable();\n\tif (usart0 == USART0_OFF)\tpower_usart0_disable();\n\tif (twi == TWI_OFF)\t\t\tpower_twi_disable();\n\n\tif (period != SLEEP_FOREVER)\n\t{\n\t\twdt_enable(period);\n\t\tWDTCSR |= (1 << WDIE);\n\t}\n\n\tlowPowerBodOn(SLEEP_MODE_IDLE);\n\n\tif (adc == ADC_OFF)\n\t{\n\t\tpower_adc_enable();\n\t\tADCSRA |= (1 << ADEN);\n\t}\n\n\tif (timer2 == TIMER2_OFF)\n\t{\n // Restore previous setting\n TCCR2B = clockSource;\n\n\t\tpower_timer2_enable();\n\t}\n\n\tif (timer1 == TIMER1_OFF)\tpower_timer1_enable();\n\tif (timer0 == TIMER0_OFF)\tpower_timer0_enable();\n\tif (spi == SPI_OFF)\t\t\tpower_spi_enable();\n\tif (usart1 == USART1_OFF)\tpower_usart1_enable();\n\tif (usart0 == USART0_OFF)\tpower_usart0_enable();\n\tif (twi == TWI_OFF)\t\t\tpower_twi_enable();\n}\n#endif\n\n/*******************************************************************************\n* Name: idle\n* Description: Putting ATmega2560 & ATmega1280 into idle state. Please make sure\n*\t\t\t you understand the implication and result of disabling module.\n*\t\t\t Take note that extra Timer 5, 4, 3 compared to an ATmega328P/168.\n*\t\t\t Also take note that extra USART 3, 2, 1 compared to an\n*\t\t\t ATmega328P/168.\n*\n* Argument \tDescription\n* ========= \t===========\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\n*\t\t\t\tup resource:\n*\t\t\t\t(a) SLEEP_15MS - 15 ms sleep\n*\t\t\t\t(b) SLEEP_30MS - 30 ms sleep\n*\t\t\t\t(c) SLEEP_60MS - 60 ms sleep\n*\t\t\t\t(d) SLEEP_120MS - 120 ms sleep\n*\t\t\t\t(e) SLEEP_250MS - 250 ms sleep\n*\t\t\t\t(f) SLEEP_500MS - 500 ms sleep\n*\t\t\t\t(g) SLEEP_1S - 1 s sleep\n*\t\t\t\t(h) SLEEP_2S - 2 s sleep\n*\t\t\t\t(i) SLEEP_4S - 4 s sleep\n*\t\t\t\t(j) SLEEP_8S - 8 s sleep\n*\t\t\t\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\n*\n* 2. adc\t\tADC module disable control:\n*\t\t\t\t(a) ADC_OFF - Turn off ADC module\n*\t\t\t\t(b) ADC_ON - Leave ADC module in its default state\n*\n* 3. timer5\t\tTimer 5 module disable control:\n*\t\t\t\t(a) TIMER5_OFF - Turn off Timer 5 module\n*\t\t\t\t(b) TIMER5_ON - Leave Timer 5 module in its default state\n*\n* 4. timer4\t\tTimer 4 module disable control:\n*\t\t\t\t(a) TIMER4_OFF - Turn off Timer 4 module\n*\t\t\t\t(b) TIMER4_ON - Leave Timer 4 module in its default state\n*\n* 5. timer3\t\tTimer 3 module disable control:\n*\t\t\t\t(a) TIMER3_OFF - Turn off Timer 3 module\n*\t\t\t\t(b) TIMER3_ON - Leave Timer 3 module in its default state\n*\n* 6. timer2\t\tTimer 2 module disable control:\n*\t\t\t\t(a) TIMER2_OFF - Turn off Timer 2 module\n*\t\t\t\t(b) TIMER2_ON - Leave Timer 2 module in its default state\n*\n* 7. timer1\t\tTimer 1 module disable control:\n*\t\t\t\t(a) TIMER1_OFF - Turn off Timer 1 module\n*\t\t\t\t(b) TIMER1_ON - Leave Timer 1 module in its default state\n*\n* 8. timer0\t\tTimer 0 module disable control:\n*\t\t\t\t(a) TIMER0_OFF - Turn off Timer 0 module\n*\t\t\t\t(b) TIMER0_ON - Leave Timer 0 module in its default state\n*\n* 9. spi\t\tSPI module disable control:\n*\t\t\t\t(a) SPI_OFF - Turn off SPI module\n*\t\t\t\t(b) SPI_ON - Leave SPI module in its default state\n*\n* 10.usart3\t\tUSART3 module disable control:\n*\t\t\t\t(a) USART3_OFF - Turn off USART3 module\n*\t\t\t\t(b) USART3_ON - Leave USART3 module in its default state\n*\n* 11.usart2\t\tUSART2 module disable control:\n*\t\t\t\t(a) USART2_OFF - Turn off USART2 module\n*\t\t\t\t(b) USART2_ON - Leave USART2 module in its default state\n*\n* 12.usart1\t\tUSART1 module disable control:\n*\t\t\t\t(a) USART1_OFF - Turn off USART1 module\n*\t\t\t\t(b) USART1_ON - Leave USART1 module in its default state\n*\n* 13.usart0\t\tUSART0 module disable control:\n*\t\t\t\t(a) USART0_OFF - Turn off USART0 module\n*\t\t\t\t(b) USART0_ON - Leave USART0 module in its default state\n*\n* 14.twi\t\tTWI module disable control:\n*\t\t\t\t(a) TWI_OFF - Turn off TWI module\n*\t\t\t\t(b) TWI_ON - Leave TWI module in its default state\n*\n*******************************************************************************/\n#if defined (__AVR_ATmega2560__) || defined (__AVR_ATmega1280__)\nvoid\tLowPowerClass::idle(period_t period, adc_t adc, timer5_t timer5,\n\t\t\t\t\t timer4_t timer4, timer3_t timer3, timer2_t timer2,\n\t\t\t\t\t\t\ttimer1_t timer1, timer0_t timer0, spi_t spi,\n\t\t\t\t\t\t\tusart3_t usart3, usart2_t usart2, usart1_t usart1,\n\t\t\t usart0_t usart0, twi_t twi)\n{\n\t// Temporary clock source variable\n\tunsigned char clockSource = 0;\n\n\tif (timer2 == TIMER2_OFF)\n\t{\n\t\t// Store current setting\n clockSource = TCCR2B;\n\n\t\t// Remove the clock source to shutdown Timer2\n\t\tTCCR2B &= ~(1 << CS22);\n\t\tTCCR2B &= ~(1 << CS21);\n\t\tTCCR2B &= ~(1 << CS20);\n\n\t\tpower_timer2_disable();\n\t}\n\n\tif (adc == ADC_OFF)\n\t{\n\t\tADCSRA &= ~(1 << ADEN);\n\t\tpower_adc_disable();\n\t}\n\n\tif (timer5 == TIMER5_OFF)\tpower_timer5_disable();\n\tif (timer4 == TIMER4_OFF)\tpower_timer4_disable();\n\tif (timer3 == TIMER3_OFF)\tpower_timer3_disable();\n\tif (timer1 == TIMER1_OFF)\tpower_timer1_disable();\n\tif (timer0 == TIMER0_OFF)\tpower_timer0_disable();\n\tif (spi == SPI_OFF)\t\t power_spi_disable();\n\tif (usart3 == USART3_OFF)\tpower_usart3_disable();\n\tif (usart2 == USART2_OFF)\tpower_usart2_disable();\n\tif (usart1 == USART1_OFF)\tpower_usart1_disable();\n\tif (usart0 == USART0_OFF)\tpower_usart0_disable();\n\tif (twi == TWI_OFF)\t\t\tpower_twi_disable();\n\n\tif (period != SLEEP_FOREVER)\n\t{\n\t\twdt_enable(period);\n\t\tWDTCSR |= (1 << WDIE);\n\t}\n\n\tlowPowerBodOn(SLEEP_MODE_IDLE);\n\n\tif (adc == ADC_OFF)\n\t{\n\t\tpower_adc_enable();\n\t\tADCSRA |= (1 << ADEN);\n\t}\n\n\tif (timer2 == TIMER2_OFF)\n\t{\n // Restore previous setting\n TCCR2B = clockSource;\n\n\t\tpower_timer2_enable();\n\t}\n\n\tif (timer5 == TIMER5_OFF)\tpower_timer5_enable();\n\tif (timer4 == TIMER4_OFF)\tpower_timer4_enable();\n\tif (timer3 == TIMER3_OFF)\tpower_timer3_enable();\n\tif (timer1 == TIMER1_OFF)\tpower_timer1_enable();\n\tif (timer0 == TIMER0_OFF)\tpower_timer0_enable();\n\tif (spi == SPI_OFF)\t\t\tpower_spi_enable();\n\tif (usart3 == USART3_OFF)\tpower_usart3_enable();\n\tif (usart2 == USART2_OFF)\tpower_usart2_enable();\n\tif (usart1 == USART1_OFF)\tpower_usart1_enable();\n\tif (usart0 == USART0_OFF)\tpower_usart0_enable();\n\tif (twi == TWI_OFF)\t\t\tpower_twi_enable();\n}\n#endif\n\n/*******************************************************************************\n* Name: idle\n* Description: Putting ATmega256RFR2 into idle state. Please make sure\n*\t\t\t you understand the implication and result of disabling module.\n*\t\t\t Take note that extra Timer 5, 4, 3 compared to an ATmega328P/168.\n*\t\t\t Also take note that extra USART 1 compared to an\n*\t\t\t ATmega328P/168.\n*\n* Argument \tDescription\n* ========= \t===========\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\n*\t\t\t\tup resource:\n*\t\t\t\t(a) SLEEP_15MS - 15 ms sleep\n*\t\t\t\t(b) SLEEP_30MS - 30 ms sleep\n*\t\t\t\t(c) SLEEP_60MS - 60 ms sleep\n*\t\t\t\t(d) SLEEP_120MS - 120 ms sleep\n*\t\t\t\t(e) SLEEP_250MS - 250 ms sleep\n*\t\t\t\t(f) SLEEP_500MS - 500 ms sleep\n*\t\t\t\t(g) SLEEP_1S - 1 s sleep\n*\t\t\t\t(h) SLEEP_2S - 2 s sleep\n*\t\t\t\t(i) SLEEP_4S - 4 s sleep\n*\t\t\t\t(j) SLEEP_8S - 8 s sleep\n*\t\t\t\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\n*\n* 2. adc\t\tADC module disable control:\n*\t\t\t\t(a) ADC_OFF - Turn off ADC module\n*\t\t\t\t(b) ADC_ON - Leave ADC module in its default state\n*\n* 3. timer5\t\tTimer 5 module disable control:\n*\t\t\t\t(a) TIMER5_OFF - Turn off Timer 5 module\n*\t\t\t\t(b) TIMER5_ON - Leave Timer 5 module in its default state\n*\n* 4. timer4\t\tTimer 4 module disable control:\n*\t\t\t\t(a) TIMER4_OFF - Turn off Timer 4 module\n*\t\t\t\t(b) TIMER4_ON - Leave Timer 4 module in its default state\n*\n* 5. timer3\t\tTimer 3 module disable control:\n*\t\t\t\t(a) TIMER3_OFF - Turn off Timer 3 module\n*\t\t\t\t(b) TIMER3_ON - Leave Timer 3 module in its default state\n*\n* 6. timer2\t\tTimer 2 module disable control:\n*\t\t\t\t(a) TIMER2_OFF - Turn off Timer 2 module\n*\t\t\t\t(b) TIMER2_ON - Leave Timer 2 module in its default state\n*\n* 7. timer1\t\tTimer 1 module disable control:\n*\t\t\t\t(a) TIMER1_OFF - Turn off Timer 1 module\n*\t\t\t\t(b) TIMER1_ON - Leave Timer 1 module in its default state\n*\n* 8. timer0\t\tTimer 0 module disable control:\n*\t\t\t\t(a) TIMER0_OFF - Turn off Timer 0 module\n*\t\t\t\t(b) TIMER0_ON - Leave Timer 0 module in its default state\n*\n* 9. spi\t\tSPI module disable control:\n*\t\t\t\t(a) SPI_OFF - Turn off SPI module\n*\t\t\t\t(b) SPI_ON - Leave SPI module in its default state\n*\n* 10.usart1\t\tUSART1 module disable control:\n*\t\t\t\t(a) USART1_OFF - Turn off USART1 module\n*\t\t\t\t(b) USART1_ON - Leave USART1 module in its default state\n*\n* 11.usart0\t\tUSART0 module disable control:\n*\t\t\t\t(a) USART0_OFF - Turn off USART0 module\n*\t\t\t\t(b) USART0_ON - Leave USART0 module in its default state\n*\n* 12.twi\t\tTWI module disable control:\n*\t\t\t\t(a) TWI_OFF - Turn off TWI module\n*\t\t\t\t(b) TWI_ON - Leave TWI module in its default state\n*\n*******************************************************************************/\n#if defined (__AVR_ATmega256RFR2__)\nvoid\tLowPowerClass::idle(period_t period, adc_t adc, timer5_t timer5,\n\t\t\t\t\t timer4_t timer4, timer3_t timer3, timer2_t timer2,\n\t\t\t\t\t\t\t\t\t\t\t\t\ttimer1_t timer1, timer0_t timer0, spi_t spi,\n\t\t\t\t\t\t\t\t\t\t\t\t\tusart1_t usart1,\n\t\t\t usart0_t usart0, twi_t twi)\n{\n\t// Temporary clock source variable\n\tunsigned char clockSource = 0;\n\n\tif (timer2 == TIMER2_OFF)\n\t{\n\t\t// Store current setting\n clockSource = TCCR2B;\n\n\t\t// Remove the clock source to shutdown Timer2\n\t\tTCCR2B &= ~(1 << CS22);\n\t\tTCCR2B &= ~(1 << CS21);\n\t\tTCCR2B &= ~(1 << CS20);\n\n\t\tpower_timer2_disable();\n\t}\n\n\tif (adc == ADC_OFF)\n\t{\n\t\tADCSRA &= ~(1 << ADEN);\n\t\tpower_adc_disable();\n\t}\n\n\tif (timer5 == TIMER5_OFF)\tpower_timer5_disable();\n\tif (timer4 == TIMER4_OFF)\tpower_timer4_disable();\n\tif (timer3 == TIMER3_OFF)\tpower_timer3_disable();\n\tif (timer1 == TIMER1_OFF)\tpower_timer1_disable();\n\tif (timer0 == TIMER0_OFF)\tpower_timer0_disable();\n\tif (spi == SPI_OFF)\t\t\t power_spi_disable();\n\tif (usart1 == USART1_OFF)\tpower_usart1_disable();\n\tif (usart0 == USART0_OFF)\tpower_usart0_disable();\n\tif (twi == TWI_OFF)\t\t\t power_twi_disable();\n\n\tif (period != SLEEP_FOREVER)\n\t{\n\t\twdt_enable(period);\n\t\tWDTCSR |= (1 << WDIE);\n\t}\n\n\tlowPowerBodOn(SLEEP_MODE_IDLE);\n\n\tif (adc == ADC_OFF)\n\t{\n\t\tpower_adc_enable();\n\t\tADCSRA |= (1 << ADEN);\n\t}\n\n\tif (timer2 == TIMER2_OFF)\n\t{\n // Restore previous setting\n TCCR2B = clockSource;\n\n\t\tpower_timer2_enable();\n\t}\n\n\tif (timer5 == TIMER5_OFF)\tpower_timer5_enable();\n\tif (timer4 == TIMER4_OFF)\tpower_timer4_enable();\n\tif (timer3 == TIMER3_OFF)\tpower_timer3_enable();\n\tif (timer1 == TIMER1_OFF)\tpower_timer1_enable();\n\tif (timer0 == TIMER0_OFF)\tpower_timer0_enable();\n\tif (spi == SPI_OFF)\t\t\t power_spi_enable();\n\tif (usart1 == USART1_OFF)\tpower_usart1_enable();\n\tif (usart0 == USART0_OFF)\tpower_usart0_enable();\n\tif (twi == TWI_OFF)\t\t\t power_twi_enable();\n}\n#endif\n\n\n/*******************************************************************************\n* Name: adcNoiseReduction\n* Description: Putting microcontroller into ADC noise reduction state. This is\n*\t\t\t a very useful state when using the ADC to achieve best and low\n* noise signal.\n*\n* Argument \tDescription\n* ========= \t===========\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\n*\t\t\t\tup resource:\n*\t\t\t\t(a) SLEEP_15MS - 15 ms sleep\n*\t\t\t\t(b) SLEEP_30MS - 30 ms sleep\n*\t\t\t\t(c) SLEEP_60MS - 60 ms sleep\n*\t\t\t\t(d) SLEEP_120MS - 120 ms sleep\n*\t\t\t\t(e) SLEEP_250MS - 250 ms sleep\n*\t\t\t\t(f) SLEEP_500MS - 500 ms sleep\n*\t\t\t\t(g) SLEEP_1S - 1 s sleep\n*\t\t\t\t(h) SLEEP_2S - 2 s sleep\n*\t\t\t\t(i) SLEEP_4S - 4 s sleep\n*\t\t\t\t(j) SLEEP_8S - 8 s sleep\n*\t\t\t\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\n*\n* 2. adc\t\tADC module disable control. Turning off the ADC module is\n*\t\t\t\tbasically removing the purpose of this low power mode.\n*\t\t\t\t(a) ADC_OFF - Turn off ADC module\n*\t\t\t\t(b) ADC_ON - Leave ADC module in its default state\n*\n* 3. timer2\t\tTimer 2 module disable control:\n*\t\t\t\t(a) TIMER2_OFF - Turn off Timer 2 module\n*\t\t\t\t(b) TIMER2_ON - Leave Timer 2 module in its default state\n*\n*******************************************************************************/\nvoid\tLowPowerClass::adcNoiseReduction(period_t period, adc_t adc,\n\t\t\t\t\t\t\t\t\t\t timer2_t timer2)\n{\n\t// Temporary clock source variable\n\tunsigned char clockSource = 0;\n\n\t#if !defined(__AVR_ATmega32U4__)\n\tif (timer2 == TIMER2_OFF)\n\t{\n\t\t// Store current setting\n clockSource = TCCR2B;\n\n\t\t// Remove the clock source to shutdown Timer2\n\t\tTCCR2B &= ~(1 << CS22);\n\t\tTCCR2B &= ~(1 << CS21);\n\t\tTCCR2B &= ~(1 << CS20);\n\t}\n\t#endif\n\n\tif (adc == ADC_OFF)\tADCSRA &= ~(1 << ADEN);\n\n\tif (period != SLEEP_FOREVER)\n\t{\n\t\twdt_enable(period);\n\t\tWDTCSR |= (1 << WDIE);\n\t}\n\n\tlowPowerBodOn(SLEEP_MODE_ADC);\n\n\tif (adc == ADC_OFF) ADCSRA |= (1 << ADEN);\n\n\t#if !defined(__AVR_ATmega32U4__)\n\tif (timer2 == TIMER2_OFF)\n\t{\n // Restore previous setting\n TCCR2B = clockSource;\n\t}\n\t#endif\n}\n\n/*******************************************************************************\n* Name: powerDown\n* Description: Putting microcontroller into power down state. This is\n*\t\t\t the lowest current consumption state. Use this together with\n*\t\t\t external pin interrupt to wake up through external event\n*\t\t\t triggering (example: RTC clockout pin, SD card detect pin).\n*\n* Argument \tDescription\n* ========= \t===========\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\n*\t\t\t\tup resource:\n*\t\t\t\t(a) SLEEP_15MS - 15 ms sleep\n*\t\t\t\t(b) SLEEP_30MS - 30 ms sleep\n*\t\t\t\t(c) SLEEP_60MS - 60 ms sleep\n*\t\t\t\t(d) SLEEP_120MS - 120 ms sleep\n*\t\t\t\t(e) SLEEP_250MS - 250 ms sleep\n*\t\t\t\t(f) SLEEP_500MS - 500 ms sleep\n*\t\t\t\t(g) SLEEP_1S - 1 s sleep\n*\t\t\t\t(h) SLEEP_2S - 2 s sleep\n*\t\t\t\t(i) SLEEP_4S - 4 s sleep\n*\t\t\t\t(j) SLEEP_8S - 8 s sleep\n*\t\t\t\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\n*\n* 2. adc\t\tADC module disable control. Turning off the ADC module is\n*\t\t\t\tbasically removing the purpose of this low power mode.\n*\t\t\t\t(a) ADC_OFF - Turn off ADC module\n*\t\t\t\t(b) ADC_ON - Leave ADC module in its default state\n*\n* 3. bod\t\tBrown Out Detector (BOD) module disable control:\n*\t\t\t\t(a) BOD_OFF - Turn off BOD module\n*\t\t\t\t(b) BOD_ON - Leave BOD module in its default state\n*\n*******************************************************************************/\nvoid\tLowPowerClass::powerDown(period_t period, adc_t adc, bod_t bod)\n{\n\tif (adc == ADC_OFF)\tADCSRA &= ~(1 << ADEN);\n\n\tif (period != SLEEP_FOREVER)\n\t{\n\t\twdt_enable(period);\n\t\tWDTCSR |= (1 << WDIE);\n\t}\n\tif (bod == BOD_OFF)\n\t{\n\t\t#if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega168P__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__)\n\t\t\tlowPowerBodOff(SLEEP_MODE_PWR_DOWN);\n\t\t#else\n\t\t\tlowPowerBodOn(SLEEP_MODE_PWR_DOWN);\n\t\t#endif\n\t}\n\telse\n\t{\n\t\tlowPowerBodOn(SLEEP_MODE_PWR_DOWN);\n\t}\n\n\tif (adc == ADC_OFF) ADCSRA |= (1 << ADEN);\n}\n\n/*******************************************************************************\n* Name: powerSave\n* Description: Putting microcontroller into power save state. This is\n*\t\t\t the lowest current consumption state after power down.\n*\t\t\t Use this state together with an external 32.768 kHz crystal (but\n*\t\t\t 8/16 MHz crystal/resonator need to be removed) to provide an\n*\t\t\t asynchronous clock source to Timer 2. Please take note that\n*\t\t\t Timer 2 is also used by the Arduino core for PWM operation.\n*\t\t\t Please refer to wiring.c for explanation. Removal of the external\n*\t\t\t 8/16 MHz crystal/resonator requires the microcontroller to run\n*\t\t\t on its internal RC oscillator which is not so accurate for time\n*\t\t\t critical operation.\n*\n* Argument \tDescription\n* ========= \t===========\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\n*\t\t\t\tup resource:\n*\t\t\t\t(a) SLEEP_15MS - 15 ms sleep\n*\t\t\t\t(b) SLEEP_30MS - 30 ms sleep\n*\t\t\t\t(c) SLEEP_60MS - 60 ms sleep\n*\t\t\t\t(d) SLEEP_120MS - 120 ms sleep\n*\t\t\t\t(e) SLEEP_250MS - 250 ms sleep\n*\t\t\t\t(f) SLEEP_500MS - 500 ms sleep\n*\t\t\t\t(g) SLEEP_1S - 1 s sleep\n*\t\t\t\t(h) SLEEP_2S - 2 s sleep\n*\t\t\t\t(i) SLEEP_4S - 4 s sleep\n*\t\t\t\t(j) SLEEP_8S - 8 s sleep\n*\t\t\t\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\n*\n* 2. adc\t\tADC module disable control. Turning off the ADC module is\n*\t\t\t\tbasically removing the purpose of this low power mode.\n*\t\t\t\t(a) ADC_OFF - Turn off ADC module\n*\t\t\t\t(b) ADC_ON - Leave ADC module in its default state\n*\n* 3. bod\t\tBrown Out Detector (BOD) module disable control:\n*\t\t\t\t(a) BOD_OFF - Turn off BOD module\n*\t\t\t\t(b) BOD_ON - Leave BOD module in its default state\n*\n* 4. timer2\t\tTimer 2 module disable control:\n*\t\t\t\t(a) TIMER2_OFF - Turn off Timer 2 module\n*\t\t\t\t(b) TIMER2_ON - Leave Timer 2 module in its default state\n*\n*******************************************************************************/\nvoid\tLowPowerClass::powerSave(period_t period, adc_t adc, bod_t bod,\n\t\t\t\t\t\t\t timer2_t timer2)\n{\n\t// Temporary clock source variable\n\tunsigned char clockSource = 0;\n\n\t#if !defined(__AVR_ATmega32U4__)\n\tif (timer2 == TIMER2_OFF)\n\t{\n\t\t// Store current setting\n clockSource = TCCR2B;\n\n\t\t// Remove the clock source to shutdown Timer2\n\t\tTCCR2B &= ~(1 << CS22);\n\t\tTCCR2B &= ~(1 << CS21);\n\t\tTCCR2B &= ~(1 << CS20);\n\t}\n\t#endif\n\n\tif (adc == ADC_OFF)\tADCSRA &= ~(1 << ADEN);\n\n\tif (period != SLEEP_FOREVER)\n\t{\n\t\twdt_enable(period);\n\t\tWDTCSR |= (1 << WDIE);\n\t}\n\n\tif (bod == BOD_OFF)\n\t{\n\t\t#if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega168P__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__)\n\t\t\tlowPowerBodOff(SLEEP_MODE_PWR_SAVE);\n\t\t#else\n\t\t\tlowPowerBodOn(SLEEP_MODE_PWR_SAVE);\n\t\t#endif\n\t}\n\telse\n\t{\n\t\tlowPowerBodOn(SLEEP_MODE_PWR_SAVE);\n\t}\n\n\tif (adc == ADC_OFF) ADCSRA |= (1 << ADEN);\n\n\t#if !defined(__AVR_ATmega32U4__)\n\tif (timer2 == TIMER2_OFF)\n\t{\n // Restore previous setting\n TCCR2B = clockSource;\n\t}\n\t#endif\n}\n\n/*******************************************************************************\n* Name: powerStandby\n* Description: Putting microcontroller into power standby state.\n*\n* Argument \tDescription\n* ========= \t===========\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\n*\t\t\t\tup resource:\n*\t\t\t\t(a) SLEEP_15MS - 15 ms sleep\n*\t\t\t\t(b) SLEEP_30MS - 30 ms sleep\n*\t\t\t\t(c) SLEEP_60MS - 60 ms sleep\n*\t\t\t\t(d) SLEEP_120MS - 120 ms sleep\n*\t\t\t\t(e) SLEEP_250MS - 250 ms sleep\n*\t\t\t\t(f) SLEEP_500MS - 500 ms sleep\n*\t\t\t\t(g) SLEEP_1S - 1 s sleep\n*\t\t\t\t(h) SLEEP_2S - 2 s sleep\n*\t\t\t\t(i) SLEEP_4S - 4 s sleep\n*\t\t\t\t(j) SLEEP_8S - 8 s sleep\n*\t\t\t\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\n*\n* 2. adc\t\tADC module disable control. Turning off the ADC module is\n*\t\t\t\tbasically removing the purpose of this low power mode.\n*\t\t\t\t(a) ADC_OFF - Turn off ADC module\n*\t\t\t\t(b) ADC_ON - Leave ADC module in its default state\n*\n* 3. bod\t\tBrown Out Detector (BOD) module disable control:\n*\t\t\t\t(a) BOD_OFF - Turn off BOD module\n*\t\t\t\t(b) BOD_ON - Leave BOD module in its default state\n*\n*******************************************************************************/\nvoid\tLowPowerClass::powerStandby(period_t period, adc_t adc, bod_t bod)\n{\n\tif (adc == ADC_OFF)\tADCSRA &= ~(1 << ADEN);\n\n\tif (period != SLEEP_FOREVER)\n\t{\n\t\twdt_enable(period);\n\t\tWDTCSR |= (1 << WDIE);\n\t}\n\n\tif (bod == BOD_OFF)\n\t{\n\t\t#if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega168P__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__)\n\t\t\tlowPowerBodOff(SLEEP_MODE_STANDBY);\n\t\t#else\n\t\t\tlowPowerBodOn(SLEEP_MODE_STANDBY);\n\t\t#endif\n\t}\n\telse\n\t{\n\t\tlowPowerBodOn(SLEEP_MODE_STANDBY);\n\t}\n\n\tif (adc == ADC_OFF) ADCSRA |= (1 << ADEN);\n}\n\n/*******************************************************************************\n* Name: powerExtStandby\n* Description: Putting microcontroller into power extended standby state. This\n*\t\t\t is different from the power standby state as it has the\n*\t\t\t capability to run Timer 2 asynchronously.\n* Not implemented on Atmega88 and Atmega168.\n*\n* Argument \tDescription\n* ========= \t===========\n* 1. period Duration of low power mode. Use SLEEP_FOREVER to use other wake\n*\t\t\t\tup resource:\n*\t\t\t\t(a) SLEEP_15MS - 15 ms sleep\n*\t\t\t\t(b) SLEEP_30MS - 30 ms sleep\n*\t\t\t\t(c) SLEEP_60MS - 60 ms sleep\n*\t\t\t\t(d) SLEEP_120MS - 120 ms sleep\n*\t\t\t\t(e) SLEEP_250MS - 250 ms sleep\n*\t\t\t\t(f) SLEEP_500MS - 500 ms sleep\n*\t\t\t\t(g) SLEEP_1S - 1 s sleep\n*\t\t\t\t(h) SLEEP_2S - 2 s sleep\n*\t\t\t\t(i) SLEEP_4S - 4 s sleep\n*\t\t\t\t(j) SLEEP_8S - 8 s sleep\n*\t\t\t\t(k) SLEEP_FOREVER - Sleep without waking up through WDT\n*\n* 2. adc\t\tADC module disable control.\n*\t\t\t\t(a) ADC_OFF - Turn off ADC module\n*\t\t\t\t(b) ADC_ON - Leave ADC module in its default state\n*\n* 3. bod\t\tBrown Out Detector (BOD) module disable control:\n*\t\t\t\t(a) BOD_OFF - Turn off BOD module\n*\t\t\t\t(b) BOD_ON - Leave BOD module in its default state\n*\n* 4. timer2\t\tTimer 2 module disable control:\n*\t\t\t\t(a) TIMER2_OFF - Turn off Timer 2 module\n*\t\t\t\t(b) TIMER2_ON - Leave Timer 2 module in its default state\n*\n*******************************************************************************/\nvoid\tLowPowerClass::powerExtStandby(period_t period, adc_t adc, bod_t bod,\n\t\t\t\t\t\t\t\t\t timer2_t timer2)\n{\n\t// Temporary clock source variable\n\tunsigned char clockSource = 0;\n\n\t#if !defined(__AVR_ATmega32U4__)\n\tif (timer2 == TIMER2_OFF)\n\t{\n\t\t// Store current setting\n clockSource = TCCR2B;\n\n\t\t// Remove the clock source to shutdown Timer2\n\t\tTCCR2B &= ~(1 << CS22);\n\t\tTCCR2B &= ~(1 << CS21);\n\t\tTCCR2B &= ~(1 << CS20);\n\t}\n\t#endif\n\n\tif (adc == ADC_OFF)\tADCSRA &= ~(1 << ADEN);\n\n\tif (period != SLEEP_FOREVER)\n\t{\n\t\twdt_enable(period);\n\t\tWDTCSR |= (1 << WDIE);\n\t}\n\n\n\t#if defined (__AVR_ATmega88__) || defined (__AVR_ATmega168__) // SLEEP_MODE_EXT_STANDBY not implemented on Atmega88 / Atmega168\n\t#else\n\t\tif (bod == BOD_OFF)\n\t\t{\n\t\t\t#if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega168P__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__)\n\t\t\t\tlowPowerBodOff(SLEEP_MODE_EXT_STANDBY);\n\t\t\t#else\n\t\t\t\tlowPowerBodOn(SLEEP_MODE_EXT_STANDBY);\n\t\t\t#endif\n\t\t}\n\t\telse\n\t\t{\n\t\t\tlowPowerBodOn(SLEEP_MODE_EXT_STANDBY);\n\t\t}\n\t#endif\n\n\tif (adc == ADC_OFF) ADCSRA |= (1 << ADEN);\n\n\t#if !defined(__AVR_ATmega32U4__)\n\tif (timer2 == TIMER2_OFF)\n\t{\n // Restore previous setting\n TCCR2B = clockSource;\n\t}\n\t#endif\n}\n\n// sleep # of milliseconds using WDT (watchdog timer - accurate to within 10%, uses about 3uA)\nvoid LowPowerClass::longPowerDown(uint32_t sleepTime) {\n do {\n if (sleepTime > 8000)\n {\n powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);\n sleepTime-=8000;\n }\n else if (sleepTime > 4000)\n {\n powerDown(SLEEP_4S, ADC_OFF, BOD_OFF);\n sleepTime-=4000;\n }\n else if (sleepTime > 2000)\n {\n powerDown(SLEEP_2S, ADC_OFF, BOD_OFF);\n sleepTime-=2000;\n }\n else if (sleepTime > 1000)\n {\n powerDown(SLEEP_1S, ADC_OFF, BOD_OFF);\n sleepTime-=1000;\n }\n else if (sleepTime > 512)\n {\n powerDown(SLEEP_500MS, ADC_OFF, BOD_OFF);\n sleepTime-=512;\n }\n else if (sleepTime > 256)\n {\n powerDown(SLEEP_250MS, ADC_OFF, BOD_OFF);\n sleepTime-=256;\n }\n else if (sleepTime > 128)\n {\n powerDown(SLEEP_120MS, ADC_OFF, BOD_OFF);\n sleepTime-=128;\n }\n else if (sleepTime > 64)\n {\n powerDown(SLEEP_60MS, ADC_OFF, BOD_OFF);\n sleepTime-=64;\n }\n else if (sleepTime > 32)\n {\n powerDown(SLEEP_30MS, ADC_OFF, BOD_OFF);\n sleepTime-=32;\n }\n else if (sleepTime > 16)\n {\n powerDown(SLEEP_15MS, ADC_OFF, BOD_OFF);\n sleepTime-=16;\n }\n else\n {\n sleepTime=0;\n }\n } while(sleepTime);\n}\n\n/*******************************************************************************\n* Name: ISR (WDT_vect)\n* Description: Watchdog Timer interrupt service routine. This routine is\n*\t\t required to allow automatic WDIF and WDIE bit clearance in\n*\t\t\t hardware.\n*\n*******************************************************************************/\nISR (WDT_vect)\n{\n\t// WDIE & WDIF is cleared in hardware upon entering this ISR\n\twdt_disable();\n}\n\n#elif defined(__arm__)\n#if defined(__SAMD21__) || defined(ARDUINO_SAMD_ZERO)\n/*******************************************************************************\n* Name: standby\n* Description: Putting SAMD21G18A into idle mode. This is the lowest current\n* consumption mode. Requires separate handling of clock and\n* \t\t\t peripheral management (disabling and shutting down) to achieve\n* \t\t\t the desired current consumption.\n*\n* Argument \tDescription\n* ========= \t===========\n* 1. idleMode Idle mode level (0, 1, 2) where IDLE_2 level provide lowest\n* \t\t\t\tcurrent consumption in this mode.\n*\n*******************************************************************************/\nvoid\tLowPowerClass::idle(idle_t idleMode)\n{\n\tSCB->SCR &= ~SCB_SCR_SLEEPDEEP_Msk;\n\tPM->SLEEP.reg = idleMode;\n\t__DSB();\n\t__WFI();\n}\n\n/*******************************************************************************\n* Name: standby\n* Description: Putting SAMD21G18A into standby mode. This is the lowest current\n* consumption mode. Use this together with the built-in RTC (use\n* RTCZero library) or external pin interrupt to wake up through\n* external event triggering.\n*\n* Argument \tDescription\n* ========= \t===========\n* 1. NIL\n*\n*******************************************************************************/\nvoid\tLowPowerClass::standby()\n{\n\tSCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;\n\t__DSB();\n\t__WFI();\n}\n\n#else\n\t#error \"Please ensure chosen MCU is a SAMD21\"\n#endif\n#else\n\t#error \"Processor architecture is not supported.\"\n#endif\n\nLowPowerClass LowPower;" }, { "name": "src/LowPower.h", "url": "src/LowPower.h", "fileData": "#ifndef LowPower_h\n#define LowPower_h\n\n#include \"Arduino.h\"\n\nenum period_t\n{\n\tSLEEP_15MS,\n\tSLEEP_30MS,\n\tSLEEP_60MS,\n\tSLEEP_120MS,\n\tSLEEP_250MS,\n\tSLEEP_500MS,\n\tSLEEP_1S,\n\tSLEEP_2S,\n\tSLEEP_4S,\n\tSLEEP_8S,\n\tSLEEP_FOREVER\n};\n\nenum bod_t\n{\n\tBOD_OFF,\n\tBOD_ON\n};\n\nenum adc_t\n{\n\tADC_OFF,\n\tADC_ON\n};\n\nenum timer5_t\n{\n\tTIMER5_OFF,\n\tTIMER5_ON\n};\n\nenum timer4_t\n{\n\tTIMER4_OFF,\n\tTIMER4_ON\n};\n\nenum timer3_t\n{\n\tTIMER3_OFF,\n\tTIMER3_ON\n};\n\nenum timer2_t\n{\n\tTIMER2_OFF,\n\tTIMER2_ON\n};\n\nenum timer1_t\n{\n\tTIMER1_OFF,\n\tTIMER1_ON\n};\n\nenum timer0_t\n{\n\tTIMER0_OFF,\n\tTIMER0_ON\n};\n\nenum spi_t\n{\n\tSPI_OFF,\n\tSPI_ON\n};\n\nenum usart0_t\n{\n\tUSART0_OFF,\n\tUSART0_ON\n};\n\nenum usart1_t\n{\n\tUSART1_OFF,\n\tUSART1_ON\n};\n\nenum usart2_t\n{\n\tUSART2_OFF,\n\tUSART2_ON\n};\n\nenum usart3_t\n{\n\tUSART3_OFF,\n\tUSART3_ON\n};\n\nenum twi_t\n{\n\tTWI_OFF,\n\tTWI_ON\n};\n\nenum usb_t\n{\n\tUSB_OFF,\n\tUSB_ON\n};\n\nenum idle_t\n{\n\tIDLE_0,\n\tIDLE_1,\n\tIDLE_2\n};\n\nclass LowPowerClass\n{\n\tpublic:\n\t\t#if defined (__AVR__)\n\n\t\t\t#if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega168__) || defined (__AVR_ATmega168P__) || defined (__AVR_ATmega88__)\n\t\t\t\tvoid\tidle(period_t period, adc_t adc, timer2_t timer2,\n\t\t\t\t\t\t timer1_t timer1, timer0_t timer0, spi_t spi,\n\t\t\t\t\t usart0_t usart0, twi_t twi);\n\t\t\t#elif defined __AVR_ATmega644P__ || defined (__AVR_ATmega1284P__)\n\t\t\t\tvoid\tidle(period_t period, adc_t adc, timer2_t timer2,\n\t\t\t\t\t\t\t timer1_t timer1, timer0_t timer0, spi_t spi,\n\t\t\t\t\t\t\t usart1_t usart1, usart0_t usart0, twi_t twi);\n\t\t\t#elif defined __AVR_ATmega2560__\n\t\t\t\tvoid\tidle(period_t period, adc_t adc, timer5_t timer5,\n\t\t\t\t\t\t\t timer4_t timer4, timer3_t timer3, timer2_t timer2,\n\t\t\t\t\t\t\t timer1_t timer1, timer0_t timer0, spi_t spi,\n\t\t\t\t\t\t\t usart3_t usart3, usart2_t usart2, usart1_t usart1,\n\t\t\t\t\t\t\t usart0_t usart0, twi_t twi);\n\t\t\t#elif defined __AVR_ATmega256RFR2__\n\t\t\t\tvoid\tidle(period_t period, adc_t adc, timer5_t timer5,\n\t\t\t\t\t\t\t\t\t timer4_t timer4, timer3_t timer3, timer2_t timer2,\n\t\t\t\t \t\t\t\t timer1_t timer1, timer0_t timer0, spi_t spi,\n\t\t\t\t\t\t usart1_t usart1,\n\t\t\t\t\t\t\t\t\t usart0_t usart0, twi_t twi);\n\t\t\t#elif defined __AVR_ATmega32U4__\n\t\t\t\tvoid\tidle(period_t period, adc_t adc, timer4_t timer4,\n\t\t\t\t timer3_t timer3, timer1_t timer1, timer0_t timer0,\n\t\t\t\t spi_t spi, usart1_t usart1, twi_t twi, usb_t usb);\n\t\t\t#else\n\t\t\t\t#error \"Please ensure chosen MCU is either 88, 168, 168P, 328P, 32U4, 2560 or 256RFR2.\"\n\t\t\t#endif\n\t\t\tvoid\tadcNoiseReduction(period_t period, adc_t adc, timer2_t timer2) __attribute__((optimize(\"-O1\")));\n\t\t\tvoid\tpowerDown(period_t period, adc_t adc, bod_t bod) __attribute__((optimize(\"-O1\")));\n\t\t\tvoid\tpowerSave(period_t period, adc_t adc, bod_t bod, timer2_t timer2) __attribute__((optimize(\"-O1\")));\n\t\t\tvoid\tpowerStandby(period_t period, adc_t adc, bod_t bod) __attribute__((optimize(\"-O1\")));\n\t\t\tvoid\tpowerExtStandby(period_t period, adc_t adc, bod_t bod, timer2_t timer2) __attribute__((optimize(\"-O1\")));\n void longPowerDown(uint32_t sleepTime);\n\t\t#elif defined (__arm__)\n\t\t\t#if defined(__SAMD21__) || defined(ARDUINO_SAMD_ZERO)\n\t\t\t\tvoid\tidle(idle_t idleMode);\n\t\t\t\tvoid\tstandby();\n\t\t\t#else\n\t\t\t\t#error \"Please ensure chosen MCU is a SAMD21\"\n\t\t\t#endif\n\n\t\t#else\n\n\t\t\t#error \"Processor architecture is not supported.\"\n\n\t\t#endif\n};\n\nextern LowPowerClass LowPower;\n#endif" } ] } }, "platform": [ "mblockpc" ], "extApiVersion": [ "1.0.3" ], "name": "vdr grove divers", "targets": [ "arduino_mega2560", "arduino_uno" ], "id": "18920", "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 ϠT<$Bdata.bak/categroy.json[ { "identify": "cate_a6173b07", "name": "divers", "menuIconURI": "", "blockIcon": { "name": "Logo-Arduino.png", "url": "https://mblock-expanded.oss-cn-shenzhen.aliyuncs.com/6c1edb5f7d104e018ed377bd1a7f60a7.png" }, "colors": "#7ED321", "eid": "18920", "id": "32161", "sort": 999, "create_time": 1634911077, "modify_time": 1654891431, "uid": 1281238 } ]PK ϠT+5PPdata.bak/block.json[ { "eid": "18920", "cid": "32161", "name": "preview block", "opcode": "BLOCK_1654891253229", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "id": "314832", "sort": 999, "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "", "setup": "", "code": "", "_loop": "" } }, "create_time": 1634911077, "modify_time": 1654891436, "uid": 1281238 }, { "eid": "18920", "cid": "32161", "name": "Pour @[Variable input dropdown](inputVariable) de @[Number](number) à @[Number](number) par @[Number](number) ", "opcode": "BLOCK_1654891387215", "blockType": "conditional", "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": " for (int /*{forVar}*/=/*{min}*/ ; /*{forVar}*/<=/*{max}*/ ; /*{forVar}*/+=/*{step}*/) {\r\n /*{$BRANCH1}*/ \r\n }\r\n ", "_loop": "" } }, "args": [ { "type": "inputVariable", "name": "forVar", "val": "", "checkNumber": false }, { "type": "number", "name": "min", "val": 1 }, { "type": "number", "name": "max", "val": 10 }, { "type": "number", "name": "step", "val": 1 } ], "platform": [ "mblockpc", "mblockweb" ], "hidden": false, "id": "314833", "create_time": 1634911077, "modify_time": 1634911077, "uid": 1281238 }, { "eid": "18920", "cid": "32161", "name": "Initialise timer @[Dropdown](fieldMenu) ", "opcode": "BLOCK_1654891387430", "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": "unsigned long tempsDepart/*{num}*/ = 0; \r\n", "setup": "", "code": "tempsDepart/*{num}*/=millis();", "_loop": "" } }, "args": [ { "type": "fieldMenu", "name": "num", "menus": [ { "text": "1", "value": "1" }, { "text": "2", "value": "2" }, { "text": "3", "value": "3" }, { "text": "4", "value": "4" }, { "text": "5", "value": "5" }, { "text": "6", "value": "6" }, { "text": "7", "value": "7" }, { "text": "8", "value": "8" }, { "text": "9", "value": "9" } ], "val": "1" } ], "id": "314834", "create_time": 1634911077, "modify_time": 1634911077, "uid": 1281238 }, { "eid": "18920", "cid": "32161", "name": "Timer @[Dropdown](fieldMenu) > @[Number](number) ", "opcode": "BLOCK_1654891387629", "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": "((tempsDepart/*{num}*/ + /*{time}*/) < millis())", "_loop": "" } }, "args": [ { "type": "fieldMenu", "name": "num", "menus": [ { "text": "1", "value": "1" }, { "text": "2", "value": "2" }, { "text": "3", "value": "3" }, { "text": "4", "value": "4" }, { "text": "5", "value": "5" }, { "text": "6", "value": "6" }, { "text": "7", "value": "7" }, { "text": "8", "value": "8" }, { "text": "9", "value": "9" } ], "val": "1" }, { "type": "number", "name": "time", "val": 1000 } ], "id": "314835", "create_time": 1634911077, "modify_time": 1634911077, "uid": 1281238 }, { "eid": "18920", "cid": "32161", "name": "LED sur\n@[Dropdown](fieldMenu)\n@[Dropdown](fieldMenu) ", "opcode": "BLOCK_1654891387838", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "sort": 999, "args": [ { "type": "fieldMenu", "name": "pinsDigit", "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" } ], "val": "2" }, { "type": "fieldMenu", "name": "onOff", "val": "1", "menus": [ { "text": "Activer", "value": "1" }, { "text": "Désactiver", "value": "0" }, { "text": "inverser", "value": "2" } ] } ], "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "void SetPinState(int n,int val){\r\n if(val==2){\r\n if(digitalRead(n)){\r\n digitalWrite(n, LOW);\r\n }\r\n else{\r\n digitalWrite(n, HIGH);\r\n }\r\n delay(100);\r\n }else{\r\n digitalWrite(n, val);\r\n }\r\n}", "setup": "pinMode(/*{pinsDigit}*/,OUTPUT);", "code": "SetPinState(/*{pinsDigit}*/,/*{onOff}*/);", "_loop": "" } }, "platform": [ "mblockpc", "mblockweb" ], "hidden": false, "id": "314836", "create_time": 1634911077, "modify_time": 1634911077, "uid": 1281238 }, { "eid": "18920", "cid": "32161", "name": "Si bouton poussoir @[Dropdown](fieldMenu) @[Dropdown](fieldMenu) ", "opcode": "BLOCK_1654891388053", "blockType": "boolean", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "sort": 999, "args": [ { "type": "fieldMenu", "name": "pinsDigit", "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" } ] }, { "type": "fieldMenu", "name": "etat", "val": "1", "menus": [ { "text": "Activer", "value": "1" }, { "text": "Désactiver", "value": "0" } ] } ], "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "bool digitalInputState (int pinNum , bool state) {\r\n if (state) return digitalRead(pinNum);\r\n else return !digitalRead(pinNum);\r\n}", "setup": "pinMode(/*{pinsDigit}*/,INPUT);", "code": "digitalInputState (/*{pinsDigit}*/,/*{etat}*/)", "_loop": "" } }, "id": "314837", "create_time": 1634911077, "modify_time": 1634911077, "uid": 1281238 }, { "eid": "18920", "cid": "32161", "name": "Angle potentiomètre sur @[Dropdown](fieldMenu) voltage @[Dropdown](fieldMenu) Valeur Max @[Number](number) ", "opcode": "BLOCK_1654891388253", "blockType": "number", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "sort": 999, "args": [ { "type": "fieldMenu", "name": "pinAnalogique", "menus": [ { "text": "A0", "value": "A0" }, { "text": "A1", "value": "A1" }, { "text": "A2", "value": "A2" }, { "text": "A3", "value": "A3" } ], "val": "A0" }, { "type": "fieldMenu", "name": "Grove_VCC", "val": "5", "menus": [ { "text": "3,5V", "value": "3.5" }, { "text": "5V", "value": "5" } ] }, { "type": "number", "name": "angleMax", "val": 100 } ], "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "#define ROTARY_ANGLE_SENSOR /*{pinAnalogique}*/\r\n#define GROVE_VCC /*{Grove_VCC}*/\r\n#define FULL_ANGLE /*{angleMax}*/ //full value of the rotary angle is 300 degrees\r\n#define ADC_REF 5 \r\n\r\nint GetAnglePotentiometre(){\r\n int sensor_value = analogRead(ROTARY_ANGLE_SENSOR);\r\n return round(((float)sensor_value*ADC_REF/1023)*FULL_ANGLE/GROVE_VCC);\r\n}", "setup": " pinMode(ROTARY_ANGLE_SENSOR, INPUT);", "code": "GetAnglePotentiometre()", "_loop": "" } }, "id": "314838", "create_time": 1634911077, "modify_time": 1634911077, "uid": 1281238 }, { "eid": "18920", "cid": "32161", "name": "Buzzer sur @[Dropdown](fieldMenu) jouer @[Dropdown](fieldMenu) pendant @[Number](number) s", "opcode": "BLOCK_1654891388445", "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" } ] }, { "type": "fieldMenu", "name": "note", "val": "1915", "menus": [ { "text": "do", "value": "1915" }, { "text": "re", "value": "1700" }, { "text": "mi", "value": "1519" }, { "text": "fa", "value": "1432" }, { "text": "sol", "value": "1275" }, { "text": "la", "value": "1136" }, { "text": "si", "value": "1074" } ] }, { "type": "number", "name": "duree", "val": 1 } ], "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "void grove_buzzer_play_tone(int pin, int tone, int duration) { \r\n for (long i = 0; i < duration * 1000L; i += tone * 2) {\r\n digitalWrite(pin, HIGH);\r\n delayMicroseconds(tone);\r\n digitalWrite(pin, LOW);\r\n delayMicroseconds(tone);\r\n }\r\n}", "setup": "pinMode(/*{pinDigit}*/,OUTPUT);", "code": "grove_buzzer_play_tone(/*{pinDigit}*/, /*{note}*/, /*{duree}*/*1000);", "_loop": "" } }, "id": "314839", "create_time": 1634911077, "modify_time": 1634911077, "uid": 1281238 }, { "eid": "18920", "cid": "32161", "name": "veille 8s", "opcode": "BLOCK_1654891388646", "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": [ "\"src/LowPower.h\"" ], "lib": "", "declare": "", "setup": "", "code": "LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);\r\n//Serial.println(\"reveil\");\r\n//delay(100);", "_loop": "" } }, "id": "314840", "create_time": 1634911077, "modify_time": 1634911077, "uid": 1281238 }, { "eid": "18920", "cid": "32161", "name": "Votage solaire", "opcode": "BLOCK_1654891388886", "blockType": "number", "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": "const int analogInPin = A0;", "setup": "", "code": "(float((analogRead(analogInPin))*5)/1023*2)", "_loop": "" } }, "id": "314841", "create_time": 1634911077, "modify_time": 1634911077, "uid": 1281238 } ]PK ϠT)L data.bak/translate.json[]PK ϠT)L data.bak/facepanel.json[]PK ϠTimgs/PK ϠT:Qodd)imgs/6c1edb5f7d104e018ed377bd1a7f60a7.pngPNG  IHDRdF:1i8/zTXtRaw profile type exifxڭW 9re}\C8r ϙ^DbT3"C̞0?#+?^yw>J^ׯ_~#u>o?.'a7 /?/{~| D?꿼q~Wv+YSM)9%V޻z-?n\)7twJyb|,y|gBn8ޕO(?ڟ׽u~ߟ O<]h3qD_*{翿y??+_o}})2raBK3~p: J??"Xu/Rs"v s|cc+jq%$ _N8Z'r>K8v+4h~2.N͟t[Qp0g:ct19様)3z!sb3an%-)_|xxu^!3pPkcc~OS3\+牛9% "'|f"Һ25$4C.bhȸ\Zj:Zj=Zm?[} n:?1ƌ3 ̫{rT6wzܾǽ^PiZo  8oY?"y{#0F_|K9230ܣ])Pǽ&B/`v̰T ?>$FvBe;Љ'W3owS]u[ g[Oy?R 1VH`=dfzUf5VF>=}>dˇ`O;?PTyhXy#U݋xz/Z1)?= *`&N'H[ U_mW!X j+jNAj1=OLysʾ_##T-'~P[R\L<4#HV=ȫ}w&|%Sh[TL&G2immG>;Yj{b#o{k1Nc1n`ު@#-$&&3_'YGͧg=`ӳGo1~x$OeoϗIZ#~$H" 1FB}I|% ]w$/,9t`wWsXK2fX A"2l! K7 _8ڤɎA $(XS;=+7fΌĽ3 ^̓lTB |8AW!@82޵ e %S"18cW6_勒l8k$cd{ej /|co8-Ŕ8< #"x5.t9t1|vo@S/I/[ 7,Mf>7q\ ..ϳM}i3"UL |gN .3nޅ`p8=Iހ7_c_@1K`YXHJZ'DaW_A>D?z@(pGC"@I8TD2dٙj01w!]y5&LSo 2q#F=XғyEE%zcRR\8 1A7bXhn4듛J+W#4>>KĶQ9#@ʏ,DBV-`drhOșaP%ʙemt z ,r8ko(A^@ h; b [v>K-{ W$sySC ЧL "S/U"r~IWׂ/HuDU"# ؇do"b<"Ȅ_ރe1k.$hZU¯>ȌB+oj=ZFCFO5 ZؐB?%@ąRy]g#0l|mD$rtE^šTyx6j}6b#Y[':DǭIF&ۘl8a*/rt8јdT`eDub {(lAm|k7Kߐ! ΛgJ,̋ y09O,qmhNH1=(6zp-7b8$LN %Y(`//1p#0\h09ydFwWidu 17VQ>/D qQkWpX 2BB{ _(l޵q(Ak;|U|C @;V^ޑ@;У*Γ>;,iƟ 1JɃ n ܊HwY`4 x|1؅m􄡴=b~Gla(!g~!&T3П:kcd [d_~T;t1ɫm5KPÞH$ g)L UL*RnzC퇚Qw¤x Cg/"Tq/ʫsFЮ #%J: H3 XD'G5ۊWghNA'ljr5^ ixC~ßpʡZXpǩd#iw<[gx7mPEP֘.@X@>#B3():/Fgm$@ j!o7T"zLgl-p |l. aVXwG3APUS]@34QFLg[PEhJXDѼ-Fa`yBN/a!FZF=|}N#O„,q2=b p7$*s4;{g#ZO|7IjqSwF8 t&9 o]蹝$ÁAm~wP|Aq,aLZ1nFB %kg!ݤDL)uD.ΊJU'"p;#Sa˿d5,#1FT\TKO"\ B>%XH _%EXPx?cjJǾ"T{^n0FCOn vTFȸ?uJN`ww/W|Tc< * 7<8Wd֎CTLm&X!Ѫ@^B'DD fLHS LRgx-L#v0u6xGz]ci`iS,˻ poDLCw٬iI9؀ F3!j-$l[[ @*b`M^?qn&~7^M6:1}PdYos|pe!d2Qj+`7wgI s7!M- ,E.u3lo 7/B e%v&.{hşŌ9+e2|xgڥZbA1iڅ Em3{@Jkyu8f$3n$%! 2n!]m5yr]9L8f)jW\}| egH66/AB@T Jʚ53}zPHSӲs<޼_,b`s%ɐpݏN3jDEJ@L nWC!1?3IM"S#A+@d(dHŃc HK.$cp6?1H =&a5Jzld2zY+Tkj_0u`Kݴ*/E20W]aO?CC ] . TLy /^0Ckl=@8 C*q\~1;\l0b>ʞ` >oհ)!/t2R.h՛d9f. F<#~0F7"άDJ-jPR>p/oX5L@F o`+sq,"U1,2 Sb(T<ȈFl+ d8LMp5uZYVYEpV<@[U{xa@Ʌ ]kk lDC]Ҕ,} ύe]-B0H/Ye5i'd`yo&C=*@LWzkn\ >vK/XD H@<^Wy]ȼyn tOLAP,a An;1xZ SI& (q|0MV؛&R0 m;2]YA_KL K2\#wjG<ӅF*E[Zq{6̑[7I%'?]rB*rS9,~!ATҪ G=}`ͣ lYo[]39+VCG$cuPccQ#t ShZ/C1PxK觢sR\MǝDqU$4|tSĩr$p|SDs1A xbzJwo_,*F>Xrv ,-fQ#w!6> #ܰA=DT7G(l.iQ-q蕆Œ @$%̍R Hg cbFB|t?#;&"}~L7*/t u)z1ζxΕF0W:Qf5uy ֜Q ! #SʋJA޼'ߺ7*I>rs^բ) k&7*L*dW ZKp6Me0@DCz-(޻]:4)QH(!7cIoTt!ѐKD-!gYrEQ;ѰG8vB+pU {3Tlp$5F7<0NJ'] /{k70:G`!D}XW!w̳x+vF0 u`!m@ ߵQY%Հ>nSN_1 8h\t`A@1󐃬`YJ$0}֥i咾~]a9: TV 0m`Ij f3ŒA;2^Rw樎ʫMlA򜂫P; dQ Џ>(L0JJ1iɕm|[ bg=wk"|G~ǹztxq<m 59_kvVosfMka)Y=`vb*l".@Qs#+`sDECm5m룀0V@y9aJ mL"'Y dFpF| rٷ Ss҅Ab F^ n6EnwȏEP3 Rn 4Tczۣ~;=$aOm?CѢR/6- oM&ψ-2mo$n^؟ChĄoWF Eg XO(jgc [n4̛m}:![ިGь{`;([ | xsڙbAxdM]YKUR5t(7_lO"*X-z]9$]B+~mq E6W?dKIJ1#;F3gJ?T#a)o;rA(0F'n1/~<˓3)־$@u!]l3E1\RuR^aZ m0xI l.t LdD! j@^i#7Tfaw~XGBfv5sڵ@Ǖm#){|ZaE,B=]w#~PQP^H/X%hpno>M"~-ٓoؔ=EYmE"PN>=Z?#kNWq=G@T<V*h'] r+-^wBB_igKz̥+|+O㥭 S#2a)Qqh0,K 7T)EG] -m|BvWf,?bz} f: p8Qq؀ޒYuCzˏ3$Bb;ٍF#%%6ͦ?,p63 !!9H '=vvt$"cu$]0m4R<-؍I)[UCke]]AƋ)t%v[#ed{=ƭ~|.sR_ɳ${MEcH$w!k5 (|mxbcl s N02*41h.b4ڔ9_iƼvŊګ,B (ɷ<<$ݕ-A{Z|}GMYsۗ"P1ChɡjVO_ fk/-l(OvSt5 9؈UqC=lM0?mݟ=v;Jٓufc+A "J\ W:Tw ce}G"@xn/,;E$ vx]v?CABbZI#,s#!eۡˠ=],6J;5h8U"br߼YnB}M6Z@UhxЪ[b =']/RbTF&$>5XMT]8&xԑi*iޖ30;R1 ie" (҇ɱ+]w;pb^Mf;@oU .^Ӻ{ eRP\!.,w"ZtjpAj& Mx_[Dd"_N`kP&Nh9$"N\0:@~zM̶ RgeI-}Mltu ݄ZZ ,ֲ )Ûx}ZFkצxGuJULd"x` $>-޸j sЬv7^@¨ 0v`aKXcpc'oy5~h iË6kӵl) MdΣ-LpD (A٘ ~QO^8MDXۃli;@iӟ*cm x7 .}ac0͋2xϲAȚSyx>(W\&UB.Q^n ~-Dzoe rI;{uVSYykv<,5{|fl{K^GTf1 ~mic*Ew7=1 "q%Ag7 ~f'_Oe⽔ݓ_+xֱDyڛ8B6?6>oltܽM"r%v~n*[ ){3  #b,?ۆ k4onKH$?,[GyriBJQpXr:CJ[݋Hi$kIճ^Yru>{ş w{6{[uS RzbGZ-\~ܭ\ کEoL(ng7ńX_ 7׃Kĥm0{&uΪ j`F9ޚ?5 <Ԋ9 Rً>sipj-r#`5v6πl`gr4Vce28nF9$aU7NC)֦pnߋB n 4(x =pƤn7H_)|,j6zNyo=nFzp> ׎cHN,3li PjDCxN$wͮSi@Amd ,V:X`",]^SxJ[\rvK(Cۚ\CuSTqIơ~w$3UwBӲֶMѭLEۑK ym_9ō?9c mk'@Z̷Fq@P)>pN# rEHtːO̴!C*PiM` +x[cϲ8{Ǒ"|T[P0U5ghU^sw r Zpk=00yzl.S *f`(dɽx 'r|ڳ`!l=Rt0DZOJv+xHt\L#.àv$LF݆АGNk.lMS9+r\^tdw`qɿg!"`>~6ϒCEpbܭݥ".{7݉tHرv9բ*5|НqJmT##RQiTbkby`DY@{I07eOQ+fu8=* e~ۖ!<.6k{nXw-1-I?=.՞ 1B&ZE-t:6|YuO fS6y/KjQۇ~/{6.2`*)q#nJ\}U vwv G1Z }}y2_`!Mmu==L![R M vGƘw_xBÒ;@T4ۻ`?' bL0IeRtcK=5ɲ(r7\iw%r+'Q)ieЃD,ٶtI]Ĉ ֊ڔrֱ F`Ml+rOY wd=≊pi49w-]}Y)ro ɀÜ쪇saD9,UG 8[9Wj `v’䵪](=:q+\muzvGQ=潉t9hj,M&~;nD$5iD =(9c dИoOgZnu?mn*ڗ܊s;މsSlXN7-vu{0PdGr1hm8]1<۲ HMxg VuUCDžţ-\۞."~vilKc > .b-vaEz&4kkpU',wflر\qscZ0U224XkHlq!tn;ȟԐL n@;oWێkSӫe ->5<眾Fջ!m⹇sALGm Y<$o8{t'uhROP_¾6;+l;O٥9<ύqME:&w1?S.TGKm< #v+p*ۧoky 80EZ ?׳Q͓ }0}յUuDg{u/cϵ#JLN>΃{$O'Mdquiͣ|̆ $z&Dz idP­vy-'&*l_4/dd[ˍhk #+ī v|yܐy C.zl3G~: XOт;1(V2֓FP1NP“nhTk>w}v^s֢)4t_u%z2EMGXQxS8v!S Ņz]]sпw=`쵷GFGmyT3<adX;'*hG^7А]uqFzPM=`0TY\:(a+j6\bđh.ڬ=7tYt4[g縅uhq%βg_rfklX 9Ru,=Y6GS!01x {jx;6fx('V&D5( Uz܋XO0B^@ԁ' TLV:9 :bw> tB[\29&yErTd U="ݞ3!S}BT7;3.l˖6m=!1Pa)z<(O< }Rf?I.[\OdH)}Skno}>ij88F ݽ{rg iTXtXML:com.adobe.xmp ݚd'bKGDC pHYs.#.#x?vtIME  3yg%tEXtCommentCompressed by jpeg-recompressIDATx}wyқ bרh퓨%'F_4QA"\V6Nyg̰}y揝s~B.6n$wʴl>?cjf[+ D`Q^NӦ6,ZߴmN>el^֟fN2eP`+Nb:;^y 8{DN41O*3'9 :a1|. B fff,Tȫ r]azAJ VmVRLJ E-z=w'^MBܽg&>,S,HU3E +,[>e>7|!R%'&*HLnL8`n4qsfB7j?g| DUlWWJ{ Gw-hy`!ؾk*?^z+~1mohQRDv,+h]CT_O(( 9$qnR$ Ѩ]N;^~1 /> 3 C 4Wa1^ףQJM[e!a:]V\':\8 {EoM:,9ѹytqj5/)R5xK~~ĉI2.  0drJeD@.u999Ia)"Gz72p}_+^ n!G=8`nX;?AmD%MI,ZE/:&N )Ѯ}5ɗv;G˹Zmㅸ9d>vuz(. кu_43gS|pz,j5[rYmGި{C7/GIq>QrlX׊s|O; Q=;/!)_ 5 /.bAn14|3aŭmxiPcDb1g=H, [-~l^ qP}pt%ӆ$ȬYjՐ1͹3nW57ڽHa R=tIHHhDs'gd V7qQJ fΚ!OBHRaFaAPFj8f^P1 rū._V{FYJ"ji$?w۱^ZNPAPggy{g(ae_!#KdY.&I01gp榦7o;M0:!I~G3fNaYΘvexZ@}ؘ?x=B/.M}`7-uWH)y5YP,IPB,D q|xġ9(׎KLR~P)C^c8U7| sAF&-)-mGB~0ҕJ-_+/Y5Ϙnm>L+jzittH,"TM^h)2嵶i\cC=Ocy{ic߮ w: 4?`2,DmK3NJgyMXrTUA@ٲwGGf>S8p{Kg=lPx@h554*&0 rgW-^O8Kk,Mn?a׽Qל=*Sq+B('WL 5MǗX\ V]>DG-/;#\qdP& G:,467?/j#3ZVgh,f˟8-@ifjHt4p:yGƪ-|L9 h|>wwuCOmX/9vfN7ȠS4|Wͻ{1ƕe"5},#}$]8HVVw֖VG+G#\I?zQrk<$tNw_⾡rSM*v^Q.UjHgfX\d:~YU^4bnqE\-KH{ev۲RA׹( tF5kUsEQgoAOv7=`~ziV7򜥓Veh~D}]B?@UMmυsJ%=.( B _aU{- ^u\v \Ny47ρasV^oٴ #,~?r:֝O?u<\f0:v?M#O5v{O:j^\GecR*ٝ bB!WIE>d2ܼ͟46Ƶ_:|ݔKK,EI"B"p<B@tU+U_hw~. B; g]SIHœ0wÌY/"}EM.x:75%A"CaЮ-W6ʪ'9=C&a Gc^(-$H3@Zf9~_n탇j4MPW?V2N!̲\:37)iUx 2h 0'N,Դq7ϘbA@|"@6H1I>@n*i |h gh4ؽ^fBb" qAc*e Ѫ_T ,JIJ_VBHzsfcsEb Ày4p$s#" \R=ԩ)wGʪhz8 qՉwS 3/wmAa JVWnU6^cD xzj}*T0& qLј7>㪼̴yaAzzujTet1zS! 3fϑDB,U/<$ cTԹi~4+s˂McSP4/*OaHS%H$V@U@8>7//ar{l&cyY, .;+Z"G_[ pe`뒉ǢRɜU?f 6^$I .%M2wΉZ `E09td c1CB88ދTH` !4:ϕ%YCwsmf* JXtCd]no8B&iRјUI 4z8@)AȄ{b"5D_T3A"%ELܜ=݃ʔ88(S`1ek'@\&50 S\v)h=E0&M7.Vˤw8.Lgc󝷎lDh)b  [/jSU /HpK6b*p\RFJ4TV 'l>g35A\*n4͐1lʳ;w 'l3L*zLf!&A,MbI2DJL_ {%!3Hd",;@ =mQzT2A* ~Iܘ<2j'uŸ:{f>odvZ؉$jeMTއ" W6YJH sCc06C*V?Aal@Ͱly D.[ا|=Y!:׾B->jP^>Eb&䒽G9z{a>ُGM.~"t=,RTBV?`[Kb2Mb:>jEf }"l^/~?`K{{0cd~әwmCasv/.WQd| ЎcN21{{ӽ2MMP_ y0Sj4j=kN"]yW:Q0ggMf}uKzY30;%u. O@%LT*2a7wi* ̔LQ!]1iDlt>9|Wc1~W&qIbB #?:T iS:AbydynBCm5iݧLS7ݬNU8–ƣ*C<+VjVn xOmvZJ&g LLXr$+U!xŕ?v *R)4UTlG61/LU !#A `8^XTI`TiD`umh$)22c%K/*_xMVi ;Ʀ$xsªHEǮsmYJ^Z-r.. B?Q#?IENDB`PK ϠT9CC)imgs/7f21cf77b1184edf8695a2925366d44d.jpgJFIFHH'ExifII*bj(1 r2iHHGIMP 2.10.302022:04:13 19:17:53 &JFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?( ( ( ( ( ( ( (ag= h.#%ێY*|WYE"uܧ"AEPEPEPEPEPEPEPEPEPEPEPEPE^kȱ [@1*&73|Y`5h :V?ߐ!Oi؎Y՜SGJ2jwvkK{ Ĺ%.s\:=NGfỮ*yn~=5Z,0`GZDьrȢ ((((((*Os(12kOx^2ⲩSE:WdfJ9 v6o| ' M4ށ\ ?q&m  rNHYXl R>~tY%Rth$=3ȮX0H pCEzw|H +2oF6 Eԥc+‚@< ɯ7񿎖{ 6ns%_*'dLβMj[;yzAE#B^9jR8}kɫ=и(8Y֋Kw#eTs<1,jx]BՕ|~9I"JcֹfufHvqX+>6;A!pjO0ţ2 4V``S[i"׍Au-ʰ=ѼRb;ݚ!W2>]$sU;QL(((( \]@pv_=]"HUE{a3*vÂ;ןmL\%rИ^bPm959 L_nZ{+LW<CR߳Z-&nLR}kOBx.w|ECLKv善rxg33V x 궫[)V 1+)lt(?{W9#RMyHtUX\ p[IdCJ(H ( ( (*U##i00kڵ)!q^i&.X\ORTuu<%+xE"GW}k-4͓g ltie-xbpW}k2Lmy'.IBGEiEufGusg*pEv;>V=5MNbaIN/_Rzq_M=zG CE] MKŽu>'Жm`HLG :rO8Jӂγg8a=sGrYD!nFX?-1R䍙2[ϥ޴r4gr][fG}<~\Np6>f7!9usdF5  :J>(zӵ\Zށ5(EC2ԗ wF`ם:m3ЅD: ]+ wk} ~M⌞^ozmc"9Px X|2Jϗ 9>{iKJ{f@* #8]Vb1>i.,qI.r:5ʂ"'vU 7lrM>$NX0,$vrĒjr[R0I3 ۣ3nϦN?5<bqVꆜ.*t-QEQEQEay2C'e(@z}\u~J/u&?wQ\k.}Qy7՛V T)ns\u==sQMY5&r:qklm".dJND Zr-E_T4~4-CmǦ9>5sII.]lS6݀ZEGS:GMc$J^XSۜz4-԰n1<*XqgwZ#Oq]pV695I9KFWs~M9&1a[jܮqïtnjG֟RIM[RA3 [ L1霏G.jӕuRN10Ҝ%?Og:)az|!F#-,^+riXF.̽Xz7 7A^\6w#>tW-iG}MbS:Iwq 9@8=v:ah@%Az&މfoe܍fSIe- y5"X n⥸ j2fNwl1X-z*k%%Äoq֭t7V"m3bmt$#ya@zWDƮXd޼Ə@5_yy"zjEUrߨZ-r6kZjۚQ@Q@J=kּ:5ђNMp>.rEo&#%zԝ?ip*/,u 8wʟ)+s&]ƶfdjmi~$/I xBp3\u0{Az: y@G=\ojǓ5-ϋ9FW6ָD浉`";洍|SVm/-a%ƥTb3SԞy.'s<+#7 ZAf8wH{RI%Iɕ/w(2L`HöYbHC!9#=+{Im%L^\bFa֬ژ!UmҨ (,x1³?}JA?aOkuUKI{7xG%I 琇. Ѻ>a-mSQoJWmX#8*H>U¯aYʤVՖZ#<' D72[#3&Ozq\-#t׀=쏩_OTSb.GLt6IIl#mYA)Kf|G-e}j]zW.Ϝ YxKFTyb9'vי-?3̻sIB6Tx5q[xbIL]$SgN.xdձ{$jm56]c_+ZurzvjJ31RQ>V  >ƥ[XK}k#uȮ ٝ%f IpRkBsp;"%vSwW_I%႖nTޤ!-#_OJch<(2F>(BvsNS-zrOC/bWLCx˨V99LzQ88苄3HF!'G9'+}F:P$]|ٽ *XG$;X3 i{9MyؼCKO~E 9ndewʃ[4iKcj2m8_j˳x$+&qڼ *IBvXٔ r8ɫhts:YWs5,GlAAs ow3Mjn0t1I"[SwxjW^Shw"2^iX7EItZU h>VɊIwI&J?:|j3C:eZjz\6RaC]W|Co.g#+3eAF9lOq4e%s UQv:_ ^jq:8*zBAMyZf5_N.:'VτkOq%V|>T+{Kpmu-ޖ]QQE=MqtR4E1L+GzfCWmڠ@~}3sCŞ'ulZ!|qN6޹q_gֺ)9n& RĬL]W96rEj®RQWd9{^qwhy9M{Vʊ0p+HҁXG`@bH"XaTWRnne8r+<@"j9AïұMH79{levcZ/ҖMB;N:'޹+&|~9'-ȚjW{ "%A__ p={vLa17;GEX58`o&G knU~ŨʝS p*8^Ked t^'.\hh׶wW%{c W<ξ z;JaڝsJ5?jm-mV?1cyE"*iBJłʖ%=1:U^.4-BGN#`\SX Hث#XԵ+Ihh c5LM4QI0Z;n$V76v3S?ATڊ%''d?[ j~hѴtֱN Dё"KKT};XqָjTsg\ %1REAdsAf92Z㵯 Vܖ\vunZ):zVݴƞ4眕jHQVR:ty\iG&[YJš1b tߕ= {:k0ʽbź^;1fCI]+ac5Vh*@QV4 jZw $W%|=мH+6OMyt:5vG,JũEwpZ:eyҍx,]j |1NU{F+gu0|qX"y&9FHGoZu;gXR{t(+D*UxxyRRUY8^k^;}WNX2i}ËP5>Y m`߈ [k`])7r;ybo/dV 5n0\~ 䨪a9$W\]8CWڭ3J~fnO{i+$۲-ÓwlN]c4U,i.EA#N c5ZZGg0=ϩ6G6wӂ;HDqzSSEfhQEQERNl tPoò"ٞpœI05{̑Q2)UdVLN%M:qk #f2M_&z]odgs].\ot I?Kl3(T{5rVIɦ$X=1W.}F-\O [V+D^q%pN: _ r.-3}M7>IKx}z-?OK(5R:iÕ ൈ@ܚF GY-r *Z(((((((((Q2ƝEq$O%QLhգ=8r++'T,_QN2qM)-OtC2GXtq[V糕 cj}nU` Web ICC_PROFILElcms0mntrRGB XYZ  3acspMSFT-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBCC  >~??}\SN;57jF02`_=2}ށœ Dc/̜oGwz=y-[mʨo[6۸Vtk\ypH z`g]Dz{1Rהd-w:oO/Z~}k3޳V&hdNo0~pdu<s_bX?t(ޕo`_7U3k5+syq, ^ zbtx>|ɏωnonh`l^J4k}b1^[zU5K7,-l3nJ/,ZM'sֲL{ih+`+}V7el]],Z`[C`5=ƫdۏY+*dG7\BMXt.+Wp:TQ˛M'> -^)n?3s'^홇RL'4]5^6zJ\LYtVϜCte¿4>⛮|h]/z]oz\#gtYcGcK >v:^']e*>sl3T*Ojm:񗳧_~9_I-s[,˽׆GVXzK-MiO商q.s+>o5 ^LusIi [WϾ`Z5EO̺*/F|ݴY9׸gR' SgT#kt# s<4&<)L%U-Ճ'EetpIFڴsL|,WşfNp>mH٦+:FKwӹ }˺[`z?6˛ʞYϻJxi-o}+̓KlƓ^Ǖt$Y×F%F*7Ѧ~I7GHuˎk;?{~d뷴Llo_y?~u |ҽ0qa\s+UлQC;P! {˭(^V$ fiLÚu79j1Zߏ9I6, 7Ljܛ,0$o[GTcl @oz* >˼`nΜHQmCPSÖ*-D9\Y ҈g^;UAmU[DIF&0;(:yc QuZ*Ҭu^^_'*1mV-;0x nN7URhKCW(8ܐ뿧ZEJ#4{Օx +HNQA !1AQa"2q# 03@BR$4br%??iNf= .77kYi-|,;2q3 ɰHm`Oma 톰Bz@Tx’SK?6eP@&,j}Z"\[O}JNi½1{'ln(WG^F-78 M1B/-!a }hHxU.qE[/mIh;=YIӟ"ƒv92QxZݻ݅9B[q0*kjzFmAIGB"ٲ߱7ɏit(~Fҗ=jLY6{@<`8A \mR3puP!֐hR%qL]5LiKevrmi4{X3q3ePR}8Y%T+OEiٌ^==f-ia9Vq'0Q ZYQ3058G_#њBQ:>JȳO%i "e*ofR\Te m0V۵- ãH7M$\x)U퇶{k IH4L%;(JiAxyǜZ8\ ?y1Wx/|[pb Xi==NT^0#ZݻA&prYpՁJxbUP1c$ͷhy(b= faWH%f0w&WROwH{2Փ6h}1hm$Ǣ6**GJwB^(TX= r{= t4E>BծLͺ㆒*n!PE7JBMe ]CU18ŎD/nK:ִ19SCHٵLUnII4G1fSuGö2u"Oղ*JF;Ix)7sJ ,<^0iwv"/_4'8]|!a PqP#:P 5rI?yZXbMOgvܓm?,fXL:3TrLA[M[JzvE7 WVM(8W`9ptŔF-]izJ#%4&+ ]S>i*IہJ  RBǷF祻llEFMRךr׳9 WtRj@)¿v[- tڟi;rL W%'/q^RvQNrs9j8m?ϒfɨO.l!T'Km}(anEi21CΩŕ(iІ$ߴf/KW瀉TnC2NNT?u0]Js(LĺT920yuH꘴'eJeOa#^7(Թ~Yy҄XneWI'0bhR( ,йEj!V .4f"zrum34=Iƴm̷ngQ}d< <ۊxnhj1?Z MI4){bVKng?ݨ' iC~"*4'Hq4TI9h;q86:ǀļ2Ye>y{!nO7i2p:§N=8pwZw9y"6NaS Vgg^0%֥P{J2niHRu5aZe}@E2qn0S(zZj=#i$K颀eziQ99"$)t:0w^7z_½۹.+ZqHIW.⫬ -ނ%gjp+z[+*`Dl4kҺtT*eѼoq^)}5aBq-Vf_gDȍG1kZMAa 0oqotGIݽ7xM"r&dF:/QbϞrJq3 8&HZm%㯜#R aAH8IyQKzpi\@<2m&_*Xq/8zqja_dZR%4ό7e1gK?i;o+,Ի!fu'ϲ=a*)5NpLͦWûȝdrnQjcպM2DׄI]cCNYV8nh5D_S8wޮ7}|=7_&\X;w`SdyUc~PǔP]:|1-:MbE]k__$ puia.&,HLyiļ]GUBγ3epHlel4O2F5QBakmͼep)$ś.lM-7[lT(x(PL.z07 hxua$*:@yMq+L6>:IgږzPq$%ZqBQvc2KO4F=D .m6%6֧ݴkkˋRMJubrzmqB&AXa+ s3Y0I~lU7H1+(%bg9 O<[{F#H|ʛf~- !Ʈ)4AdgP\[Hي^QM[m]o ON9j}  QVmʯeH <rM8Mn' (ʦ6a L01 ?.ҁ o7\ƗO#ŐCL֪zKeJFZGJeA&QßC*QzCaTlV] P aa>;gHZmY^5ggE^i&4*r΄Ԏ I$'Q}oşѷdfJnl֥qHƟ]F\236umG;y[N+*lSDzC1e)fZH4_Upbfzm*c>w)[L2t”uC C;UBP@# t L0n'jApHXa-)@EZXEђ!g J(irkvz}?,;fͱ}l2[-ȑ"Zϗچ}%Bׄ9Whq%,]BwPiXfQ/k &jWyr?Xd"^iрp(S' {roˮJ*Cu}N~0:(ܳTu##D=Yd5"SyB4aQī"l8rKoH"ō8 neÔ)$J˓h^"'e#6G+H AI7&ܺ:sm"[.M{L[ JtZWYi(Uoa$tSDeeJp"T t6wijAQ^7[~|A0RCZ/yUMN<%$^;^aie럌=kYcܲHkSN<-!' I EgJ-%j+KSQ$YTEs_TMmB[r@C t%N衅yKdݕ}°H[AP#(8DT}LIT kQt?%mϚO٫R8+Lij!" r9,/ɐȍ;"jSd'A'yL 8n%;4 U[ATl( +HZYڹ N?Y3*hr?Ͱ؝5lzq }sԌII]m]p1EA-4S ;:&*e&jlte2o_>xCWxq|12{Nٌm]Gj<MLbcԟC_;Dq~UB^lU~7|Pի,×^mUmt6JVIbjjyx;ay7N5I#t8;8}{1ڸKSm\Xi"e77O:FoEbђKŲ0T[}u":uOtL+WQ|`ZvZL*2HD!/Mx Dhl1Z]S뻜IW'9q3Ž9ţ9-fN<NN=2SG8MՊbfj]-CQ)z$-i[ARACaS^O5dHKbi8JFRH&;0T D9SJNR(ugU7^tۺRBNTwx0PIv^7uOs5e7F:IХͣi%tOoD!ucSL ڝPi_bQ"`EhaaֿZ±*H}Y}6=6{q-{5eJ[AN?RINp$(S? AK`֚qWHJL^$/8U\Oy#wǷ\U2_H,>"/0=>058V;08i %R Ts:s0 ,!E7OR!<)]b(qP[XBU.T)(q E8P'6p$4KɸII9h%h&-[vGRW6IP ʘ`0pJ+s?  8mC;2jJk'h&S54+O;1#iBy#Ȍ*!%"x8wAZ9f! 8[T1N`C rJE)3(~`DO ۽Q.HeV1r'mZk2c]~gFMZ"SC,C!<ȵ~Բؖgi^G<Ξmrh9 e,6!PRT}AHʟB4ÏB|2+׭eS0@[o/ia0>jn =GOZ*-ixq6G($gU\Cerʁ/}Y!9Џ IDoKY[/~A>Qx<>M~2]N B :a8ܬO]ZнqAd>A j+ّCqﻏxb{mh4z} tx_u;`2<+˞OQK?2Au/_5s!^m̢fK4fxlǕق 孤 ĠiXMRertB4vf8jwzb-cT+(j7}'njdp/ϲ6$% k,$IQV'BId14$Ĕick s&=}v[kAr ٻQ˦;vU&fąБ(<^,Cb_&~8ט:i&GԽnH;8p/j}XIU&8[˚k_\_Ttj̺l?`ԑZUwnhxE#F<n/QLZ95ϸ'Z챃$kǖTg2?W26˽nXVr*Rti̐cAa9,^@A#ň*eK&6\ad*^x,H=&;ES\ $ʨ;ÊwLrܒ?{X؈D7wЎL ]uK܎x=FJ㾚6<(7"%T+[Dodջ=w=K/ c}u 狐,I2Y<(:FZK- M| 2.豞Rks@/!?f3/gU忓J4/CnILՐ:xj ˞.u]t{Lr>҅8z]=GfmHrVT;m8Cr]M&ћȐةM:g-nvj9yȗ_-5.Kwe-p-IC3q*R%PVnUSI9m1+}*SxmX#I47f|Ujm&KvTGq:ö:|k/!O.zjiyhi.LlEƕޜS剩Zaf0d/^AרGLk}O!o%H " +@=4[Ŋ3ګwI*W*X5|7wPG_L6_sYfA{A\?WHFeXFdx䏐:>C2¯K+ypm6cɜ|O¾C ^cf>ly'%F1U+pePyG jzYbB8_mgq16 C׮=kBZPJKECZk9ʞ,{ysͳe8^E=>1-M~] ,RIwAX&5m5 9STðmXG2yĻZeK q=t$%ϻ3¼uXxhȰJ3;(:k"V@+j>/͢-?X~>\WqQtt>Z1kXGwG [א[ȫrԱ|\eӚt8>t׮Obsry-5ז39VCeZi&} Dfy;@<~{yPX73h'ͭ.݋V&j7ijplVY%>-rV%igws3\CeЙ$~lgC3v{9} t$^K11G_4tϢ 'ēe8e0v-א|=V*˞Gs$i뉮Z+Uie(a!I n;q_uC(I v2]gӈ2+5 }rй ǪHO)_FkCb'Ob~&0/qd$.7.>u0G[3cX7n04-j뢎l#2,p]#G馒KJJ*!mf>*D[:C6amcw0U;;_!M?/x zMm{kK^4 Ob+(G._}%0;5IvЌv bD%-{W4c&59dRD^.BȖ\C;\&e2CsKjy' k(4𻭣&wS[%/lY5ԯ/یKrYiNBioCV;!W|:zŘ~ /qE­%$dzzʗ4XO*ĻxhQEI*dTVrkӡڬ+ЦigwVO`U^!~dYQ6wT]Ѩ봓ǵ%mEY},<]<.&/~rz~&U80e8Y%?a>?!VYAݚ?Rj犲>fgE-o}^G^xSz7`ʋTiӧM9̫Z&s(,۝^iYsK!A D,8V~-KqjSc/ےZf/YFWxSO2?y D/QHuیEX{ƧK]}Nݡy]WPCP4àG8H)Bu׹妘M[jXhBղ ):2?;&IK%PvGbZ#!N YO,Xc8Mpr<G.L_y, 5 oBx‚ e*cvFAU+<5 uKUQaz,y#k6vse|/o/o9PRmWNVj)~\.{# s A>sf=5<~_{[XmP1akVwa1$hkui,ړl1 ՘8FE3|#lQǷFdx2]eYek_kۖd♪sdE[f@8(?ݬj&vEƼk%<,6̽zjWс˵R̉;HX1̹˯V$^b@uVNDG c,Dj6ixbU!% >CZO4 1Y@1ϭG2G `F[C4svz dƌ9pnk,7e<9pvkJJ-] O_- sSO ǿcU븞\EĮ2X n;æ"ZI`BرZAm̢H&aӛ?$1ԷwOQ"J~,O^ &1X7)#cYUl*Wõ# GoWF[^0/Y3*:00̅}H?톲{iue;s ŻrG6E$xcSڐ{;#d`UD;S '{u۽mӧ?)!1AQaq 0@?!@Sy\Z'@|q@f/|2଎@!5CHaW( ET,2)kjw~~kG[L$ MaT%+3˿|$NwF{nĸD0q)L !*OЀ* 0wpDH$`XiSWƫT_$ oMnnXm/Fm7a=8h-P0}o$QԕWՍ1hXb\PӢ.7,UNQ JTCtaJSɎ903ɵ9+מ18 t/gN5N7YB[2HWw Tcߐ}vbixp^+0с`X(#HRْL}I;Z( ,ʙJt4 \W#E*SQTL>3_'B7C(S3c%þd,z)7 #>ČhUN&]GL~0@p Hjapr$2)/Æy6vB }ڊ3e^1]= 祝YT! :Lt NJ^X1 Џ 2!u-e2O3IEk9nyMٗ*8+= }[a >07꙽sqINund@/ ҂wy`JrLo;EbbIEoGQe O Nm4(KRh"%Bw$;BUU[Ɔ ;NNI Dh9&(W)j9&C@,pvoׯ6R`CA:ObIHA6&1`Y-Ek!k؇%Zh9%\-b3I㤝F8`-NƟ)쪅;-I˴=!{e$F40:ɓRIVM{-/ u9N?;N@dƨ9U$jyŸAYB`&z" %rd3֮F7CuR5o¸q?7ATs `EF 5`:+g$%xut3"2==%N0upTD[b\1 8CUBN‚/XLR)hCԇKRsdM*K~IY[ wnWM3K0JwȘ Q.hyоK&>=.MPGjQHF4Zv.aJѴ5 PSL^+b zp_DiAnUdr:@(5kɈ7F{L뵼e%xt.;"tǃ'.FiƲ4%Mr+ߵ |~U$^267 z᝝ݢ(ѭ=^yA-j iIqVElj\nFAicIBWCXZqb UQlTp mI@54;ƨ e!k\RcN]<{/ow3j4k4ɣ:pHRvx{ jF41=Dep)a&A(lEFw,mFwqcmUj(0Vɿ%К |NfmnFf1 K#t:gPCCnȼ(@j^QanMq,vًjUm6G03p?fWU]Yk.SAass:C_/'?n/>ٳ5Y5 ^ )!1AQaq𑡱 0@? .`SĀ '=z;e ^j(h;m 4-2v`?%5di?Z*0s #‘; w+J).P#ԗ 6[m06'f80#uˁU8#G@K_Ni:Zrc8~cbtI9;~gD%\#lcK=Gb?e9xX2@ɖ`Sa!B@ԉg-T]8y2[#M6H(? c7d x$Ɂ)a^OE m%}2tU&Q`F͟d⺺a~OTzJ8(x!DG]:}LAi1%o~|#>A!dp026K~p,T*,FI Hq}{aN@Z0&֌& R! (fH#l缘&_ Qgy>uˡ`~ܓI_90` )oI`Dzf?\]M1L0(CS,cХ K#IgXQN #Ќ輗i (/0Aco!`#&!4Xr%)QBLN!TDl0QM8%IJlK?AlpG)@SJzqm9< @@F6%HĉŞJ]CN*B Z8"]HoM!JO3\s60 (I 'A} k" W6A#@P*PTx4;++O!\OHO czלC*h}X a/de`pƓ&aT7riV2?t'PLTta hmQ B:GXG e@Þ ȞHڪ gcswdвܟZ1%#w(W{R%"yH]No$b%RD4Om3BscJ5Q">p(C&=Mʕd)1 J1>@<^18R;}pp|IL(j,0&ҪXAP56 J{@-&qCbH}1yRRPHHb. ߯xg5 }g&L<プhV*UgTn}{Ȍx,x5O;8"A}JW!?<V'pp|C' >H|$ܘᘫḾ8p ufjS4ʑ\<-Uc#@|BAe}090s}q/8 H&#'HGuq=OuA3xY yb@%<a(roH6%BvCݬc}% nLU)@,t~VwFA=ߏwWگZ`7?@tЯv/ Gq$Lgถl=ڪLD,5~1OpxV%! rh-)Z[ØVoSo{~bѩ , nSf%R?"-|S/KKH`׿Gy8>oc(yal^Vx.B$xPzM@m^v1BYjC?|դ-l~ Tln/LyeZ(YD!А{`K)!1AQaq 0@?$ w~^Dф.w%i?_#>|Rnhr}zxׇ<XB߯[ݟ)Q+<>e=5m!+O/k:plU!Y=o}t 2gۏ}~2'Df_Mu2әڢW5YPygӚJ׸Hu+g@S饇[}#J#G+}r=zsI*5\߿<$orHE( =8iA yf@ˊo~,\}nyoON2S~sF~qg":{ 'qFJ#7 קʊ{Ā' G϶uꞧ|of:t6HQhQtp Lp"yZAn'Wo=p:["< cۏ\A&!7Jl~<}? _`<#%󀐂/{% _ =OUqӌTRy1V,/P:Q0d0BGtD>;acSVWcoCǚ (9yߓ؃Cg:^2 W$$oN)>xD} pňi߳XVFu[`2.B̓j4='85$pOuAq+i߉{y ; 8V e^A LHl)D댪 gZ];3NX¡lpf$o\E~&|B(mrl'&Kt.puq,[:4G!p*ilvP !M;W> W`\H("-'nIu}"}vB߻À>_^UnfnIc64Q_Mq(GO-b<˓mpv`2lUH=ß%P` B32t/*zqʕv|4sFgK ՙY-bRjWF`31A VTNYƈ&ӌ>:>q3NϏDRrAD=G)=viIsBtL=g@zrT *@|Ɋ3 *j)˿ׇ~pе[CsDp+>V>qw{i%.:؜ 4%:nƘ2)Ir9GɃOtmAAaPXl\SdB@p(*K ̍Z() 62DeVZWPz-7wَN7Doȓ-:|q.X6]x Ɇhj0qkcx;a* ށN(Fe-ڬq` +jIn^1*p;yDh |Aʥ>8>@UP0cZ =[0Ɛn GrsI`FAY7 \A{hН 螝pJp|+ ւ`3s躺+0= %Cl D/`83>/|ڬH3^,6/ȸՀ*gHa^7.8Gp2gǠ6Ҡe/62QY%<"同Rwk;YĪ0ok'֞Ga`bʕ@*9lP#Go3q i*oZek; [z,D Q@, c$@ F,c*W(p{|?E ȆXV 'AB=.)Gc(<*a!Er0Nez$WHdKaB EЌ#c9E+.CIf#%<GϏx]HqfVTtB BT\"w^5i2DA" PnDzOSȹw5/ bw9F̻;qEv @Rx @AZ_?FjdGb9#E= QQp2`ڍ `J%9j<)Z^#f^Bpmq,AY P)l fZvgIj)4f> oAbz멁3;Ŕ_.UA/f:;q0C v)nA+&#;-TH{1+}=!\zW>QZX";N7ƬOPj\i>fzӕ#[>%qJ*IhmwF(@B=όAMc&5r фc&Ƥf{\p.BW҇QhB @`&@h.skpPF֢( TMMRa{T{5g&1'瑔$A)U[9%HJ3j́ѪAEڕi 8#=g3UZ5CfWEc \͵gi,X5P`b7m=kx|YWA P&25=0aaX\Lj|p0W]h0Э J%{nA2g-q xHKCJNb:oP(.G@ L,@RX¬ PclGoΎDx<s  v5ڿ 6߇ =tYX𦮑JsxI!T̰~XCܺka2'R7Vz=DVdD\rN!!C`/I&q4 Q'Y ;Hp暊A|~3IpPUZ_CjT%z-Bΰ l4kOHI%:FB@NDQ4|2 &aC!A!ipꐃ愥.S: cz " yLbcj9gR"u[H2cА耒27h<~j0t (~҉Њ0 "L1[r(1 揬F9Aҟi|NiќwJx(WT,8%b!?f&BH{f `R9Sd.SQS*! E|7MN=bUy2]C9"E(bcxĔ: Nl@CORR6H-zlSǷgonYS.PT"H @`5Vt1 9AK:&fDciE'N,5ɪM8Sm_WB*|vD[yŴqj(~Xz"9mX .ssw:27&0Ƕ>2 WANRe[$zGA:#e,#`yMx>R7LT )u; [,%'!)P)Sy3Cȍ8bɍ@Ϳy|~5", da[YkNk?3:ek_7K/8iȉcD xq';cwSp"QaimKab/#@T+  PŨN)yF' 3{"\ o)5җЊ  *Vc?CS7ΐp4lPˑXFB@xp`4Z:gj4ba0Q#zbESZ5\YC$d8'HWz {WJ $ÒUudJ xHԓi !i5wh3x]h\WFo&2Z!:TzZ 7 2*(A%C@. 8&^; A2`@F(7W8`LW6]%9hE9y)&oD\8Bd5*x,6qCԷcˉ̧vPIu (lv" UҬFȍ9 $@$ $YV!f"@>cj;OἫ[0!.Րrsh @D-GmVc[qM lgCTv48 utI۝M} ɳ!S!{B9 x7E"A%٤O-EMp RK}/*#H98@"4ĪS.BUGNv=ZӕARb^&|v U@#Ù)Ea#%HYmK  ɒ>b]*VبOLE(G'ep-%+go4d1BJy"_36c F 1섩Y9TBh}vQ5=D>-y)7S$00$>&hQ&n;{QK:o*\:Ha (C$x l`6'z0ֈjF? 7A ў| jx _xPdPT4!Z$,L $`eңAn%Ƞ:8r/3A7Ra ?PK ϠTres/PK ϠTi18n/PK ϠT i18n/zh.json{ "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }PK ϠT i18n/de.json{ "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }PK ϠT i18n/es.json{ "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }PK ϠT i18n/fr.json{ "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }PK ϠT i18n/id.json{ "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }PK ϠT i18n/ja.json{ "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }PK ϠTi18n/ja-jph.json{ "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }PK ϠT i18n/ko.json{ "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }PK ϠT i18n/pl.json{ "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }PK ϠT i18n/uk.json{ "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }PK ϠTi18n/zh-hant.json{ "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }PK ϠT i18n/nl.json{ "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }PK ϠT i18n/it.json{ "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }PK ϠT i18n/hr.json{ "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }PK ϠT i18n/ru.json{ "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }PK ϠT i18n/pt.json{ "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }PK ϠT i18n/fi.json{ "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }PK ϠT i18n/tr.json{ "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }PK ϠT i18n/tk.json{ "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }PK ϠT i18n/en.json{ "vdr_grove_divers": "vdr grove divers", "extensionName": "vdr grove divers", "extensionDescription": "", "BLOCK_1654891253229": "preview block", "BLOCK_1654891387215": "Pour [forVar] de [min] à [max] par [step] ", "BLOCK_1654891387430_NUM_0": "1", "BLOCK_1654891387430_NUM_1": "2", "BLOCK_1654891387430_NUM_2": "3", "BLOCK_1654891387430_NUM_3": "4", "BLOCK_1654891387430_NUM_4": "5", "BLOCK_1654891387430_NUM_5": "6", "BLOCK_1654891387430_NUM_6": "7", "BLOCK_1654891387430_NUM_7": "8", "BLOCK_1654891387430_NUM_8": "9", "BLOCK_1654891387430": "Initialise timer [num] ", "BLOCK_1654891387629": "Timer [num] > [time] ", "BLOCK_1654891387838_PINSDIGIT_0": "D2", "BLOCK_1654891387838_PINSDIGIT_1": "D3", "BLOCK_1654891387838_PINSDIGIT_2": "D4", "BLOCK_1654891387838_PINSDIGIT_3": "D5", "BLOCK_1654891387838_PINSDIGIT_4": "D6", "BLOCK_1654891387838_PINSDIGIT_5": "D7", "BLOCK_1654891387838_PINSDIGIT_6": "D8", "BLOCK_1654891387838_ONOFF_0": "Activer", "BLOCK_1654891387838_ONOFF_1": "Désactiver", "BLOCK_1654891387838_ONOFF_2": "inverser", "BLOCK_1654891387838": "LED sur\n[pinsDigit]\n[onOff] ", "BLOCK_1654891388053_ETAT_0": "Activer", "BLOCK_1654891388053_ETAT_1": "Désactiver", "BLOCK_1654891388053": "Si bouton poussoir [pinsDigit] [etat] ", "BLOCK_1654891388253_PINANALOGIQUE_0": "A0", "BLOCK_1654891388253_PINANALOGIQUE_1": "A1", "BLOCK_1654891388253_PINANALOGIQUE_2": "A2", "BLOCK_1654891388253_PINANALOGIQUE_3": "A3", "BLOCK_1654891388253_GROVE_VCC_0": "3,5V", "BLOCK_1654891388253_GROVE_VCC_1": "5V", "BLOCK_1654891388253": "Angle potentiomètre sur [pinAnalogique] voltage [Grove_VCC] Valeur Max [angleMax] ", "BLOCK_1654891388445_NOTE_0": "do", "BLOCK_1654891388445_NOTE_1": "re", "BLOCK_1654891388445_NOTE_2": "mi", "BLOCK_1654891388445_NOTE_3": "fa", "BLOCK_1654891388445_NOTE_4": "sol", "BLOCK_1654891388445_NOTE_5": "la", "BLOCK_1654891388445_NOTE_6": "si", "BLOCK_1654891388445": "Buzzer sur [pinDigit] jouer [note] pendant [duree] s", "BLOCK_1654891388646": "veille 8s", "BLOCK_1654891388886": "Votage solaire", "cate_a6173b07": "divers" }PK ϠTmindex.jsPK ϠT&m5m5handlerProxy.jsPK ϠTA<src/PK ϠTfߦcc c<src/index.jsPK ϠT"v&&rsrc/snippets.jsPK ϠTI~Šsrc/generators.jsPK ϠT:csrc/arduinosources.jsPK ϠTEjsrc/facepanels.jsPK ϠT_[[!ksrc/exthandler.jsPK ϠTlڴEEpsrc/handlerProxy.jsPK ϠT src/cates/PK ϠTsrc/cates/cate_a6173b07/PK ϠT?OO src/cates/cate_a6173b07/index.jsPK ϠT3{ǐ{src/cates/index.jsPK ϠTz!!!;src/cates/cate_a6173b07/blocks.jsPK ϠT Bsrc/langs/PK ϠTyjsrc/langs/zh.jsPK ϠTypsrc/langs/de.jsPK ϠTyvsrc/langs/es.jsPK ϠTy|src/langs/fr.jsPK ϠTysrc/langs/id.jsPK ϠTysrc/langs/ja.jsPK ϠTy"src/langs/ja-jph.jsPK ϠTy+src/langs/ko.jsPK ϠTy4src/langs/pl.jsPK ϠTy=src/langs/uk.jsPK ϠTyFsrc/langs/zh-hant.jsPK ϠTyOsrc/langs/nl.jsPK ϠTyXsrc/langs/it.jsPK ϠTyasrc/langs/hr.jsPK ϠTyjsrc/langs/ru.jsPK ϠTyssrc/langs/pt.jsPK ϠTy|src/langs/fi.jsPK ϠTyمsrc/langs/tr.jsPK ϠTyߎsrc/langs/tk.jsPK ϠTysrc/langs/en.jsPK ϠTiisrc/langs/index.jsPK ϠTBss manifest.jsonPK ϠT "data.bak/PK ϠT6 Idata.bak/ext.jsonPK ϠT<$Bodata.bak/categroy.jsonPK ϠT+5PP-qdata.bak/block.jsonPK ϠT)L Jdata.bak/translate.jsonPK ϠT)L data.bak/facepanel.jsonPK ϠTimgs/PK ϠT:Qodd)imgs/6c1edb5f7d104e018ed377bd1a7f60a7.pngPK ϠT9CC)'imgs/7f21cf77b1184edf8695a2925366d44d.jpgPK ϠTkres/PK ϠTli18n/PK ϠT 2li18n/zh.jsonPK ϠT %ui18n/de.jsonPK ϠT ~i18n/es.jsonPK ϠT i18n/fr.jsonPK ϠT i18n/id.jsonPK ϠT i18n/ja.jsonPK ϠTi18n/ja-jph.jsonPK ϠT ۪i18n/ko.jsonPK ϠT γi18n/pl.jsonPK ϠT i18n/uk.jsonPK ϠTi18n/zh-hant.jsonPK ϠT i18n/nl.jsonPK ϠT i18n/it.jsonPK ϠT i18n/hr.jsonPK ϠT i18n/ru.jsonPK ϠT xi18n/pt.jsonPK ϠT ki18n/fi.jsonPK ϠT ^i18n/tr.jsonPK ϠT Q i18n/tk.jsonPK ϠT Di18n/en.jsonPKEE7