Skip to content

Instantly share code, notes, and snippets.

View rozek's full-sized avatar

Andreas Rozek rozek

View GitHub Profile
@rozek
rozek / Bangle_writeHelWrldApp.js
Created January 13, 2020 10:24
Bangle.js: writes the "HelWrld" App itself
const Storage = require('Storage');
let AppName = 'HelWrld';
Storage.write('-' + AppName, `
Bangle.setLCDMode('80x80');
g.clear();
g.setFont('6x8',2);
g.setColor('#BFFF00');
/**** draw actual icon contents ****/
@rozek
rozek / Bangle_writeHelWrldIcon.js
Created January 13, 2020 10:16
Bangle.js: writes an App icon for "HelWrld"
const Storage = require('Storage');
let AppName = 'HelWrld';
Storage.write(
'*' + AppName,
'require("heatshrink").decompress(atob("mEwxH+If4A/AH4A/AH4A/AH4A/AH4A3lQDGBpIPLACEw1EwAYkGBpAJBAoYvY1wvCAYQEBEYYJDF4QPDCIwvRqkqqgfCqmEwg0DF5BlDMyYbBAAcqlWurVaNIxfGFwNUqgwSL4YpBF4Wu1AvEdQIvDeAQEBAYIRCDIK/TCoOorVUKgr1EAoRfGfZ4PDAYYbBwhJDYwIeDAogRBGwbbDABglDAYcwmCIBAwZFFAghwDwhwDAFTxQKoZZEAH4AWX44TPOwYbSmGoUIIDDSRYPDGwgbGF5muB4NUAYQIBC4ZMBAwI5BCYYMDrQHCBYwvKqmEF4dU1GoqgMBwla1GuGYQPCGoIXB1wvTEQIBClR6BqgxBAoIhBqkqL4yIBCIIvSIwQuBLIWuBIJZBF4IJBOYjkCCIgvCwgvOSAQWDL4z4EBgRfIlVUCASQNMIJCCX4uoJgoRGX4hfPIIMGPoQ3CC4YJEBgYRFBwYuPAH4A/AH4A/AH4A/AH4A/AH4A/AC4A="))'
);
@rozek
rozek / Bangle_drawHelWrldIcon.js
Created January 13, 2020 10:01
Bangle.js: draws some graphics for a "HelWrld" icon
Bangle.setLCDMode('80x80');
g.clear();
g.setFont('6x8');
g.setColor('#BFFF00');
/**** draw lines which help cropping the screen shot ****/
g.drawLine(0,48,80,48);
g.drawLine(48,0,48,80);
@rozek
rozek / Bangle_writeHelWrldDescriptor.js
Created January 13, 2020 09:48
Bangle.js: writes App descriptor for "HelWrld"
const Storage = require('Storage');
let AppName = 'HelWrld';
Storage.write('+' + AppName, JSON.stringify({
name: '"Hello, World!" for Bangle.js',
type: 'app',
icon: '*' + AppName,
src: '-' + AppName,
version: '0.0.1',
files: '+'+AppName+',-'+AppName+',*'+AppName
@rozek
rozek / Bangle_listApplications.js
Created January 13, 2020 07:25
Bangle.js: lists installed applications
const Storage = require('Storage');
let FileList = Storage.list();
let segmentedAppSet = Object.create(null);
for (let i = 0, l = FileList.length; i < l; i++) {
let FileName = FileList[i];
if (/^\+.*\x01$/.test(FileName)) {
segmentedAppSet[FileName.replace(/.$/,'')] = true;
}
}
@rozek
rozek / Bangle_listLogicalFiles
Last active January 14, 2020 05:51
Bangle.js: list all "logical" files on the internal file system
const Storage = require('Storage');
print('compacting internal Storage...');
Storage.compact();
print('internal Storage report:');
print('-',Storage.getFree(),'bytes free');
print('- list of stored files');
let FileList = Storage.list();
let segmentedFileSet = Object.create(null);
@rozek
rozek / Bangle_LenaImg.js
Created January 11, 2020 04:02
Bangle.js: transfers a large bitmap to the Bangle.js
const Storage = require('Storage');
let FileName = 'LenaImg', FileOffset = 0;
function writeLine (encodedPixelLine) {
let PixelLine = atob(encodedPixelLine);
if (FileOffset === 0) {
Storage.write(FileName,PixelLine, 0,240*240*2);
FileOffset = 2*240;
} else {
Storage.write(FileName,PixelLine,FileOffset);
FileOffset += 2*240;
@rozek
rozek / Bangle_drawSlicedLena_240x240.js
Last active January 10, 2020 15:34
Bangle.js: draws a sliced "Lena" test image
Bangle.setLCDMode();
g.clear();
function drawSlice (i,compressedBuffer) {
g.drawImage({
width:240, height:10, bpp:16, transparent:0,
buffer:require("heatshrink").decompress(atob(compressedBuffer))
},0,i*10);
}
@rozek
rozek / Bangle_draw16bppPattern_240x240
Created January 10, 2020 08:11
Bangle.js: uses an image to draw a pattern
Bangle.setLCDMode();
g.clear();
const Width = g.getWidth(), CenterX = Width/2;
const Height = g.getHeight(), CenterY = Height/2;
let Pattern = {
width:16, height:16, bpp:16, transparent:0,
buffer:require("heatshrink").decompress(atob("s2EAIsVooVTDpIBDDrohHDrIBDDrohRJ4IhbR4ohXZ5IhTd5ohRDpapVDpYhXdtohPDp7LNDqYhJDq4hFCo4"))
};
@rozek
rozek / Bangle_drawRotatedBitmap_240x240.js
Created January 10, 2020 06:59
Bangle.js: draws two rotated bitmaps
Bangle.setLCDMode();
g.clear();
const Width = g.getWidth(), CenterX = Width/2;
const Height = g.getHeight(), CenterY = Height/2;
let HoursHandle = {
width:60, height:6, bpp:1,
buffer:require("heatshrink").decompress(atob("v//AAnvAwoAW+4GF/wA="))
};