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.
js_manager.js@0:1cefa69131b8, 2018-08-19 (annotated)
- 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?
User | Revision | Line number | New 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; |