Misc fixes for apploader
parent
2a494ebef0
commit
8a83eb3140
|
|
@ -1,4 +1,4 @@
|
||||||
#!/bin/node
|
#!/usr/bin/nodejs
|
||||||
/* Simple Command-line app loader for Node.js
|
/* Simple Command-line app loader for Node.js
|
||||||
===============================================
|
===============================================
|
||||||
|
|
||||||
|
|
@ -32,7 +32,9 @@ try {
|
||||||
var args = process.argv;
|
var args = process.argv;
|
||||||
|
|
||||||
if (args.length==3 && args[2]=="list") cmdListApps();
|
if (args.length==3 && args[2]=="list") cmdListApps();
|
||||||
|
else if (args.length==3 && args[2]=="list") cmdListDevices();
|
||||||
else if (args.length==4 && args[2]=="install") cmdInstallApp(args[3]);
|
else if (args.length==4 && args[2]=="install") cmdInstallApp(args[3]);
|
||||||
|
else if (args.length==5 && args[2]=="install") cmdInstallApp(args[3], args[4]);
|
||||||
else {
|
else {
|
||||||
console.log(`apploader.js
|
console.log(`apploader.js
|
||||||
-------------
|
-------------
|
||||||
|
|
@ -40,7 +42,10 @@ else {
|
||||||
USAGE:
|
USAGE:
|
||||||
|
|
||||||
apploader.js list
|
apploader.js list
|
||||||
apploader.js install appname
|
- list available apps
|
||||||
|
apploader.js devices
|
||||||
|
- list available device addresses
|
||||||
|
apploader.js install appname [de:vi:ce:ad:dr:es]
|
||||||
`);
|
`);
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
}
|
}
|
||||||
|
|
@ -48,7 +53,23 @@ process.exit(0);
|
||||||
function cmdListApps() {
|
function cmdListApps() {
|
||||||
console.log(apps.map(a=>a.id).join("\n"));
|
console.log(apps.map(a=>a.id).join("\n"));
|
||||||
}
|
}
|
||||||
function cmdInstallApp(appId) {
|
function cmdListDevices() {
|
||||||
|
var foundDevices = [];
|
||||||
|
noble.on('discover', function(dev) {
|
||||||
|
if (!dev.advertisement) return;
|
||||||
|
if (!dev.advertisement.localName) return;
|
||||||
|
var a = dev.address.toString();
|
||||||
|
if (foundDevices.indexOf(a)>=0) return;
|
||||||
|
foundDevices.push(a);
|
||||||
|
console.log(a,dev.advertisement.localName);
|
||||||
|
});
|
||||||
|
noble.startScanning([], true);
|
||||||
|
setTimeout(function() {
|
||||||
|
noble.stopScanning();
|
||||||
|
}, 2000);
|
||||||
|
}
|
||||||
|
|
||||||
|
function cmdInstallApp(appId, deviceAddress) {
|
||||||
var app = apps.find(a=>a.id==appId);
|
var app = apps.find(a=>a.id==appId);
|
||||||
if (!app) ERROR(`App ${JSON.stringify(appId)} not found`);
|
if (!app) ERROR(`App ${JSON.stringify(appId)} not found`);
|
||||||
if (app.custom) ERROR(`App ${JSON.stringify(appId)} requires HTML customisation`);
|
if (app.custom) ERROR(`App ${JSON.stringify(appId)} requires HTML customisation`);
|
||||||
|
|
@ -58,11 +79,11 @@ function cmdInstallApp(appId) {
|
||||||
}, settings : SETTINGS}).then(files => {
|
}, settings : SETTINGS}).then(files => {
|
||||||
//console.log(files);
|
//console.log(files);
|
||||||
var command = files.map(f=>f.cmd).join("\n")+"\n";
|
var command = files.map(f=>f.cmd).join("\n")+"\n";
|
||||||
bangleSend(command).then(() => process.exit(0));
|
bangleSend(command, deviceAddress).then(() => process.exit(0));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function bangleSend(command) {
|
function bangleSend(command, deviceAddress) {
|
||||||
var log = function() {
|
var log = function() {
|
||||||
var args = [].slice.call(arguments);
|
var args = [].slice.call(arguments);
|
||||||
console.log("UART: "+args.join(" "));
|
console.log("UART: "+args.join(" "));
|
||||||
|
|
@ -70,6 +91,8 @@ function bangleSend(command) {
|
||||||
|
|
||||||
var RESET = true;
|
var RESET = true;
|
||||||
var DEVICEADDRESS = "";
|
var DEVICEADDRESS = "";
|
||||||
|
if (deviceAddress!==undefined)
|
||||||
|
DEVICEADDRESS = deviceAddress;
|
||||||
|
|
||||||
var complete = false;
|
var complete = false;
|
||||||
var foundDevices = [];
|
var foundDevices = [];
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ function toJS(txt) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ("undefined"!=typeof module)
|
if ("undefined"!=typeof module)
|
||||||
Espruino = require("./espruinotools.js");
|
Espruino = require("../lib/espruinotools.js");
|
||||||
|
|
||||||
const AppInfo = {
|
const AppInfo = {
|
||||||
/* Get files needed for app.
|
/* Get files needed for app.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue