hidcam: Bangle.js 2 support

master
Hank 2022-07-05 10:51:38 +02:00
parent 427cfb593e
commit b593fd56ff
4 changed files with 33 additions and 21 deletions

View File

@ -1,3 +1,4 @@
0.01: Core functionnality 0.01: Core functionnality
0.02: Offer to enable HID if disabled 0.02: Offer to enable HID if disabled
0.03: Adds Readme and tags to be used by App Loader 0.03: Adds Readme and tags to be used by App Loader
0.04: Adds Bangle.js 2 support

View File

@ -7,7 +7,7 @@ Control the camera shutter from your phone using your watch
1. In settings, enable HID for "Keyboard & Media". 1. In settings, enable HID for "Keyboard & Media".
2. Pair your watch to your phone. 2. Pair your watch to your phone.
3. Load your camera app on your phone. 3. Load your camera app on your phone.
4. There you go, launch the app on your watch and press button 2 to trigger the shutter ! 4. There you go, launch the app on your watch and press the button (button 2 on Bangle.js 1) to trigger the shutter !
## How does it work ? ## How does it work ?

View File

@ -1,25 +1,29 @@
var storage = require('Storage'); var storage = require('Storage');
const settings = storage.readJSON('setting.json',1) || { HID: false }; const settings = storage.readJSON('setting.json',1) || { HID: false };
const isB2 = process.env.HWVERSION === 2;
var sendHid, camShot, profile; var sendHid, camShot, profile;
if (settings.HID=="kbmedia") { if (settings.HID=="kbmedia") {
profile = 'camShutter'; profile = 'camShutter';
sendHid = function (code, cb) { sendHid = function (code, cb) {
try {
NRF.sendHIDReport([1,code], () => { try {
NRF.sendHIDReport([1,0], () => { NRF.sendHIDReport([1,code], () => {
if (cb) cb(); NRF.sendHIDReport([1,0], () => {
}); if (cb) cb();
}); });
} catch(e) { });
print(e); } catch(e) {
} print(e);
}
}; };
camShot = function (cb) { sendHid(0x80, cb); }; camShot = function (cb) { sendHid(0x80, cb); };
} else { } else {
E.showPrompt("Enable HID?",{title:"HID disabled"}).then(function(enable) { E.showPrompt("Enable HID?",{title:"HID disabled"}).then(function(enable) {
if (enable) { if (enable) {
settings.HID = "kbmedia"; settings.HID = "kbmedia";
require("Storage").write('setting.json', settings); require("Storage").write('setting.json', settings);
@ -46,12 +50,19 @@ function drawApp() {
g.fillRect(180,130, 240, 124); g.fillRect(180,130, 240, 124);
} }
if (camShot) { if (camShot) {
setWatch(function(e) { if (!isB2) { // Bangle.js 1
E.showMessage('camShot !'); setWatch(function(e) {
setTimeout(drawApp, 1000); E.showMessage('camShot !');
camShot(() => {}); setTimeout(drawApp, 1000);
}, BTN2, { edge:"falling",repeat:true,debounce:50}); camShot(() => {});
}, BTN2, { edge:"falling",repeat:true,debounce:50});
} else { // Bangle.js 2
setWatch(function(e) {
E.showMessage('camShot !');
setTimeout(drawApp, 1000);
camShot(() => {});
}, BTN, { edge:"falling",repeat:true,debounce:50});
}
drawApp(); drawApp();
} }

View File

@ -2,11 +2,11 @@
"id": "hidcam", "id": "hidcam",
"name": "Camera shutter", "name": "Camera shutter",
"shortName": "Cam shutter", "shortName": "Cam shutter",
"version": "0.03", "version": "0.04",
"description": "Enable HID, connect to your phone, start your camera and trigger the shot on your Bangle", "description": "Enable HID, connect to your phone, start your camera and trigger the shot on your Bangle",
"icon": "app.png", "icon": "app.png",
"tags": "bluetooth,tool", "tags": "bluetooth,tool",
"supports": ["BANGLEJS"], "supports": ["BANGLEJS","BANGLEJS2"],
"readme": "README.md", "readme": "README.md",
"storage": [ "storage": [
{"name":"hidcam.app.js","url":"app.js"}, {"name":"hidcam.app.js","url":"app.js"},