Mon, 25 Mar 2024 17:14:56 +0100
Brought the retry attempts to read the DHT11 sensors to the main devices loop. The actual read function is now very simple. Called every 30 seconds when all is well, or 2 seconds if something is wrong.
/* tslint:disable */ /* eslint-disable */ (function ($) { $.jqx.jqxWidget('jqxMaterialColorPicker', '', {}); $.extend($.jqx._jqxMaterialColorPicker.prototype, { defineInstance: function () { var settings = { events: ['colorchange'] }; if (this === $.jqx._jqxMaterialColorPicker.prototype) { return settings; } $.extend(true, this, settings); return settings; }, createInstance: function () { var that = this; that._renderGrid(); that._addHandlers(); }, _renderGrid() { var that = this; var labelsAndPaletteContainer = document.createElement('div'); that._renderShades(); that._renderColorPalette(); that._renderColorLabels(); labelsAndPaletteContainer.classList = 'jqx-labels-and-palette' labelsAndPaletteContainer.appendChild(that._colorLabelsContainer); labelsAndPaletteContainer.appendChild(that._paletteContainer); that.element.appendChild(labelsAndPaletteContainer); }, _renderColorPalette: function () { var that = this; var colorsArray = [ ['#ffebee', '#ffcdd2', '#ef9a9a', '#e57373', '#ef5350', '#f44336', '#e53935', '#d32f2f', '#c62828', '#b71c1c', '#ff8a80', '#ff5252', '#ff1744', '#d50000'], ['#fce4ec', '#f8bbd0', '#f48fb1', '#f06292', '#ec407a', '#e91e63', '#d81b60', '#c2185b', '#ad1457', '#880e4f', '#ff80ab', '#ff4081', '#f50057', '#c51162'], ['#f3e5f5', '#e1bee7', '#ce93d8', '#ba68c8', '#ab47bc', '#9c27b0', '#8e24aa', '#7b1fa2', '#6a1b9a', '#4a148c', '#ea80fc', '#e040fb', '#d500f9', '#aa00ff'], ['#ede7f6', '#d1c4e9', '#b39ddb', '#9575cd', '#7e57c2', '#673ab7', '#5e35b1', '#512da8', '#4527a0', '#311b92', '#b388ff', '#7c4dff', '#651fff', '#6200ea'], ['#e8eaf6', '#c5cae9', '#9fa8da', '#7986cb', '#5c6bc0', '#3f51b5', '#3949ab', '#303f9f', '#283593', '#1a237e', '#8c9eff', '#536dfe', '#3d5afe', '#304ffe'], ['#e3f2fd', '#bbdefb', '#90caf9', '#64b5f6', '#42a5f5', '#2196f3', '#1e88e5', '#1976d2', '#1565c0', '#0d47a1', '#82b1ff', '#448aff', '#2979ff', '#2962ff'], ['#e1f5fe', '#b3e5fc', '#81d4fa', '#4fc3f7', '#29b6f6', '#03a9f4', '#039be5', '#0288d1', '#0277bd', '#01579b', '#80d8ff', '#40c4ff', '#00b0ff', '#0091ea'], ['#e0f7fa', '#b2ebf2', '#80deea', '#4dd0e1', '#26c6da', '#00bcd4', '#00acc1', '#0097a7', '#00838f', '#006064', '#84ffff', '#18ffff', '#00e5ff', '#00b8d4'], ['#e0f2f1', '#b2dfdb', '#80cbc4', '#4db6ac', '#26a69a', '#009688', '#00897b', '#00796b', '#00695c', '#004d40', '#a7ffeb', '#64ffda', '#1de9b6', '#00bfa5'], ['#e8f5e9', '#c8e6c9', '#a5d6a7', '#81c784', '#66bb6a', '#4caf50', '#43a047', '#388e3c', '#2e7d32', '#1b5e20', '#b9f6ca', '#69f0ae', '#00e676', '#00c853'], ['#f1f8e9', '#dcedc8', '#c5e1a5', '#aed581', '#9ccc65', '#8bc34a', '#7cb342', '#689f38', '#558b2f', '#33691e', '#ccff90', '#b2ff59', '#76ff03', '#64dd17'], ['#f9fbe7', '#f0f4c3', '#e6ee9c', '#dce775', '#d4e157', '#cddc39', '#c0ca33', '#afb42b', '#9e9d24', '#827717', '#f4ff81', '#eeff41', '#c6ff00', '#aeea00'], ['#fffde7', '#fff9c4', '#fff59d', '#fff176', '#ffee58', '#ffeb3b', '#fdd835', '#fbc02d', '#f9a825', '#f57f17', '#ffff8d', '#ffff00', '#ffea00', '#ffd600'], ['#fff8e1', '#ffecb3', '#ffe082', '#ffd54f', '#ffca28', '#ffc107', '#ffb300', '#ffa000', '#ff8f00', '#ff6f00', '#ffe57f', '#ffd740', '#ffc400', '#ffab00'], ['#fff3e0', '#ffe0b2', '#ffcc80', '#ffb74d', '#ffa726', '#ff9800', '#fb8c00', '#f57c00', '#ef6c00', '#e65100', '#ffd180', '#ffab40', '#ff9100', '#ff6d00'], ['#fbe9e7', '#ffccbc', '#ffab91', '#ff8a65', '#ff7043', '#ff5722', '#f4511e', '#e64a19', '#d84315', '#bf360c', '#ff9e80', '#ff6e40', '#ff3d00', '#dd2c00'], ['#efebe9', '#d7ccc8', '#bcaaa4', '#a1887f', '#8d6e63', '#795548', '#6d4c41', '#5d4037', '#4e342e', '#3e2723'], ['#fafafa', '#f5f5f5', '#eeeeee', '#e0e0e0', '#bdbdbd', '#9e9e9e', '#757575', '#616161', '#424242', '#212121'], ['#eceff1', '#cfd8dc', '#b0bec5', '#90a4ae', '#78909c', '#607d8b', '#546e7a', '#455a64', '#37474f', '#263238'], ] var paletteContainer = document.createElement('div'); for (var index = 0, length = colorsArray.length; index < length; index++) { var currentRow = colorsArray[index]; var currentUl = that._renderRow(currentRow, 'jqx-color-cell', false); paletteContainer.appendChild(currentUl); } paletteContainer.className = 'jqx-palette'; that._paletteContainer = paletteContainer; }, _renderShades: function () { var that = this; var shadesContainer = document.createElement('div'); var shadesArray = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 'A 100', 'A 200', 'A 400', 'A 700']; var shadesRow = that._renderRow(shadesArray, 'jqx-shade-cell', true); shadesContainer.className = 'jqx-shades'; shadesContainer.appendChild(shadesRow); that.element.appendChild(shadesContainer); }, _renderColorLabels: function () { var that = this; var colorLabelsContainer = document.createElement('div'); var colorLabelsArray = ['Red', 'Pink', 'Purple', 'Deep Purple', 'Indigo', 'Blue', 'Light Blue', 'Cyan', 'Teal', 'Green', 'Light Green', 'Lime', 'Yellow', 'Amber', 'Orange', 'Deep Orange', 'Brown', 'Grey', 'Blue Grey']; var colorLabelsColumn = that._renderRow(colorLabelsArray, 'jqx-color-label', true); colorLabelsContainer.className = 'jqx-color-labels'; colorLabelsContainer.appendChild(colorLabelsColumn); that._colorLabelsContainer = colorLabelsContainer; }, _renderRow: function (array, cellClass, addInnerHtml) { var ul = document.createElement('ul'); for (var index = 0, length = array.length; index < length; index++) { var currentElement = array[index]; var li = document.createElement('li'); if (addInnerHtml) { li.innerHTML = currentElement; } else { li.style.background = currentElement; li.setAttribute('data-color', currentElement); } li.className = cellClass; ul.appendChild(li); } return ul; }, _addHandlers: function () { var that = this; this.host.find('.jqx-color-cell').on('click', function () { that._currentColorHex = event.target.getAttribute('data-color'); that._currentColorRgb = event.target.style.background; that._raiseEvent(0, { color: that.getColor() }); }); }, _raiseEvent: function (id, arg) { if (arg == undefined) arg = { owner: null }; var evt = this.events[id]; var args = arg ? arg : {}; args.owner = this; var event = new $.Event(evt); event.owner = this; event.args = args; var result = this.host.trigger(event); return result; }, getColor: function () { var that = this; var rgb = that._currentColorRgb.match(/\d+/g); return { hex: that._currentColorHex.substring(1), r: parseInt(rgb[0]), g: parseInt(rgb[1]), b: parseInt(rgb[2]) }; }, destroy: function () { var that = this; that.host.remove(); } }); })(jqxBaseFramework);