release
This commit is contained in:
48
lib/webserver/setup-ui/data/build/stringConverter.js
Normal file
48
lib/webserver/setup-ui/data/build/stringConverter.js
Normal file
@@ -0,0 +1,48 @@
|
||||
var stringConverter = {
|
||||
convertByte: function (oneByte, bytesPerPixel) {
|
||||
var stringByte = '0x' + oneByte.toString(16).padStart(bytesPerPixel * 2, '0');
|
||||
return stringByte;
|
||||
},
|
||||
convert: function (dataLength, bytesPerPixel, multiLine, colNumber, data) {
|
||||
var resultString = '';
|
||||
for (var i = 0; i < dataLength; i++) {
|
||||
var stringByte = '';
|
||||
// need to use bigint, so we can use 32bit integers (4byte per pixel)
|
||||
let combinedByte = BigInt("0b00000000000000000000000000000000");
|
||||
for (let j = 0; j < bytesPerPixel; j++) {
|
||||
let pixelByte = BigInt(data[(i * bytesPerPixel) + j]);
|
||||
if (j != 0) {
|
||||
combinedByte = combinedByte << BigInt(8);
|
||||
}
|
||||
combinedByte = combinedByte | pixelByte;
|
||||
}
|
||||
stringByte = this.convertByte(combinedByte, bytesPerPixel) + ', ';
|
||||
if (multiLine && ((i + 1) % colNumber == 0)) {
|
||||
stringByte += '\n ';
|
||||
}
|
||||
resultString += stringByte;
|
||||
}
|
||||
resultString = resultString.substr(0, resultString.lastIndexOf(',')).trim();
|
||||
// add the array definition
|
||||
return resultString;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
module.exports = {
|
||||
|
||||
toString : function(data, colNum) {
|
||||
console.log('Converting data to string');
|
||||
|
||||
var dataLength = data.byteLength;
|
||||
console.log('actualDataLength: ' + dataLength);
|
||||
|
||||
var resultString = '#define SETUP_HTML_SIZE ';
|
||||
resultString += dataLength + '\n'
|
||||
resultString += 'const char SETUP_HTML[] PROGMEM = {\n ';
|
||||
resultString += stringConverter.convert(dataLength, 1, true, 16, data);
|
||||
resultString += '\n};';
|
||||
return resultString;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user