This example project explains the following: * Reading and writing NFC tag * Use Flash storage to store Javascript source code which can be executed when the board is turned on. * Downloading JavaScript program from url. Project demo: Writes and runs JS program from Flash storage by downloading from internet using URL from NFC tag. NFC tag must contain the following info: 1- Password 2- URL separated by: , Note: This project is based on Mbed JavaScript and hence cannot be compiled using MBed Compiler. Read Readme.md for information about compiling and running this project.

Committer:
akhtar.syedzeeshan@gmail.com
Date:
Sun Aug 19 21:39:08 2018 +0500
Revision:
0:1cefa69131b8
First commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 1 var js_manager = new JSManager();
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 2
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 3 //print("\r\njs_manager.js has finished executing.");
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 4
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 5 run_program_from_flash = function(){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 6 print('\33[36mRunning js from flash...\33[0m'); // color back to normal
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 7 var result = js_manager.run_js_flash();
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 8
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 9 if(result == 0){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 10 print("\33[32mProgram execution successful!\33[0m");
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 11 }
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 12 else if(result == 1){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 13 print("\33[35mFlash is empty!\33[0m");
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 14 }
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 15 else if(result == 2){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 16 print("\33[31mProgram execution failed! Error parsing code.\33[0m");
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 17 }
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 18 else if(result == 3){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 19 print("\33[31mProgram execution failed! Error in execution.\33[0m");
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 20 }
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 21
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 22 }
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 23
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 24 load_http_program = function(url){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 25 var result = js_manager.load_http_program(url);
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 26
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 27 if(result == 0){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 28 print("\33[32mProgram downloaded successfully!\33[0m");
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 29 }
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 30 else if(result == 1){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 31 print("\33[31mServer could not be located!\33[0m");
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 32 }
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 33 else if(result == 2){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 34 print("\33[31mProgram not found!\33[0m");
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 35 }
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 36 else if(result == 3){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 37 print("\33[31mInvalid Program file! Contains errors.\33[0m");
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 38 }
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 39 else if(result == 4){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 40 print("\33[31mNetwork could not be initalized!\33[0m");
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 41 }
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 42 return result;
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 43 };
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 44
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 45 load_nfc_program = function(file){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 46 var s = String.fromCharCode(47);
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 47
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 48 var protocol = 'http:'; //http:' + '/' + '/' + 'www' + '.indigost' + '.com' + '/' + 'code.js';
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 49 var div = s + s;
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 50 var website = 'www.indigost.com' + s + 'cloud' + s + 'index.php' + s + 's';
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 51
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 52 var link = protocol + div + website + s + file + s + 'download';
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 53
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 54 print(link);
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 55
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 56 var result = js_manager.load_http_program(link);
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 57
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 58 if(result == 0){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 59 print("\33[32mProgram downloaded successfully!\33[0m");
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 60 }
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 61 else if(result == 1){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 62 print("\33[31mServer could not be located!\33[0m");
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 63 }
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 64 else if(result == 2){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 65 print("\33[31mProgram not found!\33[0m");
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 66 }
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 67 else if(result == 3){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 68 print("\33[31mInvalid Program file! Contains errors.\33[0m");
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 69 }
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 70 else if(result == 4){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 71 print("\33[31mNetwork could not be initalized!\33[0m");
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 72 }
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 73 return result;
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 74 };
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 75
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 76 gg = function(){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 77 // Symbol / is causing problems sometimes in a string so we get it this way
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 78 var s = String.fromCharCode(47);
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 79
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 80 var protocol = 'http:'; //http:' + '/' + '/' + 'www' + '.indigost' + '.com' + '/' + 'code.js';
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 81 var div = s + s;
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 82 var website = 'www.indigost.com';
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 83 var file = 'code.js';
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 84 var link = protocol + div + website + s + file;
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 85
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 86 print('Opening: ' + link);
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 87 var result = js_manager.load_http_program(link);
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 88
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 89 if(result == 0){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 90 print("\33[32mProgram downloaded successfully!\33[0m");
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 91 }
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 92 else if(result == 1){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 93 print("\33[31mServer could not be located!\33[0m");
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 94 }
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 95 else if(result == 2){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 96 print("\33[31mProgram not found!\33[0m");
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 97 }
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 98 else if(result == 3){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 99 print("\33[31mInvalid Program file! Contains errors.\33[0m");
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 100 }
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 101 else if(result == 4){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 102 print("\33[31mNetwork could not be initalized!\33[0m");
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 103 }
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 104 return result;
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 105 };
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 106
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 107 erase_flash = function(){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 108 var result = js_manager.erase_flash();
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 109 if(result == 0 ){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 110 return ('Flash erased successfully!');
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 111 }
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 112 else{
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 113 return ('Flash erasing failed with error code: ' + result);
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 114 }
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 115 };
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 116
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 117 reboot = function(){
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 118 return js_manager.reboot();
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 119 }
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 120
akhtar.syedzeeshan@gmail.com 0:1cefa69131b8 121 module.exports = js_manager;