Merge pull request #1036 from reelyactive/master

Transmit app name as Espruino manufacturer data
master
Gordon Williams 2021-12-09 09:41:25 +00:00 committed by GitHub
commit aec9e829cd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 44 additions and 5 deletions

View File

@ -4387,7 +4387,7 @@
"id": "emojuino", "id": "emojuino",
"name": "Emojuino", "name": "Emojuino",
"shortName": "Emojuino", "shortName": "Emojuino",
"version": "0.02", "version": "0.03",
"description": "Emojis & Espruino: broadcast Unicode emojis via Bluetooth Low Energy.", "description": "Emojis & Espruino: broadcast Unicode emojis via Bluetooth Low Energy.",
"icon": "emojuino.png", "icon": "emojuino.png",
"screenshots": [ "screenshots": [
@ -4605,9 +4605,17 @@
"id": "sensible", "id": "sensible",
"name": "SensiBLE", "name": "SensiBLE",
"shortName": "SensiBLE", "shortName": "SensiBLE",
"version": "0.02", "version": "0.03",
"description": "Collect, display and advertise real-time sensor data.", "description": "Collect, display and advertise real-time sensor data.",
"icon": "sensible.png", "icon": "sensible.png",
"screenshots": [
{ "url": "screenshot-top.png" },
{ "url": "screenshot-acc.png" },
{ "url": "screenshot-bar.png" },
{ "url": "screenshot-gps.png" },
{ "url": "screenshot-hrm.png" },
{ "url": "screenshot-mag.png" }
],
"type": "app", "type": "app",
"tags": "tool,sensors", "tags": "tool,sensors",
"supports" : [ "BANGLEJS2" ], "supports" : [ "BANGLEJS2" ],

View File

@ -1,2 +1,3 @@
0.01: New App! 0.01: New App!
0.02: Upgraded text to images, added welcome screen and subtitles. 0.02: Upgraded text to images, added welcome screen and subtitles.
0.03: Advertise app name as Espruino manufacturer data when idle.

View File

@ -32,6 +32,7 @@ const CYCLE_BUZZ_MILLISECONDS = 50;
const WELCOME_MESSAGE = 'Emojuino:\r\n\r\n< Swipe >\r\nto select\r\n\r\nTap\r\nto transmit'; const WELCOME_MESSAGE = 'Emojuino:\r\n\r\n< Swipe >\r\nto select\r\n\r\nTap\r\nto transmit';
// Non-user-configurable constants // Non-user-configurable constants
const APP_ID = 'emojuino';
const IMAGE_INDEX = 0; const IMAGE_INDEX = 0;
const CODE_POINT_INDEX = 1; const CODE_POINT_INDEX = 1;
const EMOJI_PX = 96; const EMOJI_PX = 96;
@ -40,12 +41,11 @@ const EMOJI_Y = (g.getHeight() - EMOJI_PX) / 2;
const TX_X = 68; const TX_X = 68;
const TX_Y = 12; const TX_Y = 12;
const FONT_SIZE = 24; const FONT_SIZE = 24;
const BTN_WATCH_OPTIONS = { repeat: true, debounce: 20, edge: "falling" }; const ESPRUINO_COMPANY_CODE = 0x0590;
const UNICODE_CODE_POINT_ELIDED_UUID = [ 0x49, 0x6f, 0x49, 0x44, 0x55, const UNICODE_CODE_POINT_ELIDED_UUID = [ 0x49, 0x6f, 0x49, 0x44, 0x55,
0x54, 0x46, 0x2d, 0x33, 0x32 ]; 0x54, 0x46, 0x2d, 0x33, 0x32 ];
// Global variables // Global variables
let emojiIndex = 0; let emojiIndex = 0;
let isToggleOn = false; let isToggleOn = false;
@ -100,9 +100,22 @@ function transmitEmoji(image, codePoint, duration) {
} }
// Transmit the app name under the Espruino company code to facilitate discovery
function transmitAppName() {
let options = {
showName: false,
manufacturer: ESPRUINO_COMPANY_CODE,
manufacturerData: JSON.stringify({ name: APP_ID }),
interval: 2000
}
NRF.setAdvertising({}, options);
}
// Terminate the emoji transmission // Terminate the emoji transmission
function terminateEmoji(displayIntervalId) { function terminateEmoji(displayIntervalId) {
NRF.setAdvertising({ }); transmitAppName();
isTransmitting = false; isTransmitting = false;
clearInterval(displayIntervalId); clearInterval(displayIntervalId);
drawImage(EMOJIS[emojiIndex][IMAGE_INDEX], false); drawImage(EMOJIS[emojiIndex][IMAGE_INDEX], false);
@ -169,3 +182,4 @@ g.setFontAlign(0, 0);
g.drawString(WELCOME_MESSAGE, g.getWidth() / 2, g.getHeight() / 2); g.drawString(WELCOME_MESSAGE, g.getWidth() / 2, g.getHeight() / 2);
Bangle.on('touch', handleTouch); Bangle.on('touch', handleTouch);
Bangle.on('drag', handleDrag); Bangle.on('drag', handleDrag);
transmitAppName();

View File

@ -1,2 +1,3 @@
0.01: New App! 0.01: New App!
0.02: Corrected variable initialisation 0.02: Corrected variable initialisation
0.03: Advertise app name, added screenshots

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@ -6,6 +6,7 @@
// Non-user-configurable constants // Non-user-configurable constants
const APP_ID = 'sensible'; const APP_ID = 'sensible';
const ESPRUINO_COMPANY_CODE = 0x0590;
// Global variables // Global variables
@ -90,6 +91,19 @@ let magMenu = {
}; };
// Transmit the app name under the Espruino company code to facilitate discovery
function transmitAppName() {
let options = {
showName: false,
manufacturer: ESPRUINO_COMPANY_CODE,
manufacturerData: JSON.stringify({ name: APP_ID }),
interval: 2000
}
NRF.setAdvertising({}, options);
}
// Update acceleration // Update acceleration
Bangle.on('accel', function(newAcc) { Bangle.on('accel', function(newAcc) {
acc = newAcc; acc = newAcc;
@ -155,6 +169,7 @@ Bangle.on('mag', function(newMag) {
// On start: enable sensors and display main menu // On start: enable sensors and display main menu
g.clear(); g.clear();
transmitAppName();
Bangle.setBarometerPower(isBarEnabled, APP_ID); Bangle.setBarometerPower(isBarEnabled, APP_ID);
Bangle.setGPSPower(isGpsEnabled, APP_ID); Bangle.setGPSPower(isGpsEnabled, APP_ID);
Bangle.setHRMPower(isHrmEnabled, APP_ID); Bangle.setHRMPower(isHrmEnabled, APP_ID);