From 5e5fb570db0ff446275d45bfa658f6c59ad9c918 Mon Sep 17 00:00:00 2001 From: Fabio Date: Fri, 10 Apr 2020 19:20:49 +0200 Subject: [PATCH] New bledetect app --- apps.json | 12 ++++++ apps/bledetect/ChangeLog | 1 + apps/bledetect/bledetect-icon.js | 1 + apps/bledetect/bledetect.js | 67 +++++++++++++++++++++++++++++++ apps/bledetect/bledetect.png | Bin 0 -> 4163 bytes 5 files changed, 81 insertions(+) create mode 100644 apps/bledetect/ChangeLog create mode 100644 apps/bledetect/bledetect-icon.js create mode 100644 apps/bledetect/bledetect.js create mode 100644 apps/bledetect/bledetect.png diff --git a/apps.json b/apps.json index d85739aad..8e4e2555a 100644 --- a/apps.json +++ b/apps.json @@ -1158,5 +1158,17 @@ {"name":"batchart.app.js","url":"app.js"}, {"name":"batchart.img","url":"app-icon.js","evaluate":true} ] + }, + { "id": "bledetect", + "name": "BLE Detector", + "shortName":"BLEDetector", + "icon": "bledetect.png", + "version":"0.01", + "description": "Detect BLE devices and show some informations.", + "tags": "app,bluetooth,tool", + "storage": [ + {"name":"bledetect.app.js","url":"bledetect.js"}, + {"name":"bledetect.img","url":"bledetect-icon.js","evaluate":true} + ] } ] diff --git a/apps/bledetect/ChangeLog b/apps/bledetect/ChangeLog new file mode 100644 index 000000000..9352c7b96 --- /dev/null +++ b/apps/bledetect/ChangeLog @@ -0,0 +1 @@ +0.01: Initial Release \ No newline at end of file diff --git a/apps/bledetect/bledetect-icon.js b/apps/bledetect/bledetect-icon.js new file mode 100644 index 000000000..a15e13307 --- /dev/null +++ b/apps/bledetect/bledetect-icon.js @@ -0,0 +1 @@ +E.toArrayBuffer(atob("AAAAAAAACIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiIAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiIiAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiIiIAAAAAAAAAAAAAAAAAAAAAAAAAAiIiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAiIgIiIiAAAAAAAAAAAAAAAAAAAAAAAAAiIgAiIiIAAAAAAAAAAAAAAAAAIAAAAAAiIgACIiIgAAAAAAAAAAAAAAAiIiAAAAAiIgAAAiIiIAAAAAAAAAAAAAAiIiIAAAAiIgAAACIiIgAAAAAAAAAAAAACIiIgAAAiIgAAAAIiIgAAAAAAAAAAAAAAIiIiAAAiIgAAAAIiIiAAAAAAAAAAAAAAAiIiIAAiIgAAACIiIgAAAAAAAAAAAAAAACIiIgAiIgAAAiIiIAAAAAAAAAAAAAAAAAIiIiIiIgACIiIiAAAAAAAAAAAAAAAAAAACIiIiIgAiIiIAAAAAAAAAAAAAAAAAAAAAIiIiIgIiIiAAAAAAAAAAAAAAAAAAAAAAAiIiIiIiIgAAAAAAAAAAAAAAAAAAAAAAACIiIiIiIAAAAAAAAAAAAAAAAAAAAAAAAAIiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiIiAAAAAAAAAIgAAAAAAAAAAAAAACIiIiIiIAAAAACIiIiIiAAAAAAAAAAAIiIiIiIiIgAAAAiIiIiIiIAAAAAAAAACIiIiIgIiIiAACIiIiIiIiIgAAAAAAAAiIiIiIgAiIiAACIiIiACIiIiAAAAAAAIiIiAiIgAAIgAAiIiAAAAAiIiIAAAAACIiIgAiIgAAAAAIiIgAAAAAAIiIAAAAAiIiIAAiIgAAAAAIiIAAAAAAAEiIgAAAIiIiAAAiIgAAAAAIiIAAAAAAAAiIgAAiIiIgAAAiIgAAAAAIiIAAAAAAAAiIgAAiIiAAAAAiIgAAAACIiAAAAAAAAAiIgAAiIgAAAAAiIgAAAACIiAAAAAAAAAiIgAAAAAAAAAAiIgAAAAAIiIAAAAAAAAiIgAAAAAAAAAAiIgAiIAAIiIAAAAAAAAiIgAAAAAAAAAAiIgIiIgAIiIgAAAAAAIiIgAAAAAAAAAAiIiIiIgAIiIgAAAAACIiIAAAAAAAAAAAiIiIiIAAAiIiIAAAAiIiIAAAAAAAAAAAiIiIgAAAACIiIiIiIiIiIAAAAAAAAAAAiIiIAAAAAAIiIiIiIiIiIgAAAAAAAAAAiIiAAAAAAAAiIiIiIiIiIiAAAAAAAAAAiIgAAAAAAAAAIiIiIgACIiIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIi")) \ No newline at end of file diff --git a/apps/bledetect/bledetect.js b/apps/bledetect/bledetect.js new file mode 100644 index 000000000..dde3ee9eb --- /dev/null +++ b/apps/bledetect/bledetect.js @@ -0,0 +1,67 @@ +let menu = { + "": { "title": "BLE Detector" }, + "RE-SCAN": () => scan() +}; + +function showMainMenu() { + menu["< Back"] = () => load(); + return E.showMenu(menu); +} + +function showDeviceInfo(device){ + console.log(device); + const deviceMenu = { + "": { "title": "Device Info" }, + "name": { + value: device.name + }, + "rssi": { + value: device.rssi + }, + "manufacturer": { + value: device.manufacturer + } + }; + + deviceMenu[device.id] = () => {}; + deviceMenu["< Back"] = () => scan(); + + /*for(let key in device){ + deviceMenu[key.substring(0,17)] = { + value: device[key.substring(0,17)] + }; + }*/ + + return E.showMenu(deviceMenu); +} + +function scan() { + menu = { + "": { "title": "BLE Detector" }, + "RE-SCAN": () => scan() + }; + + waitMessage(); + + NRF.findDevices(devices => { + for (let device of devices) { + let deviceName = device.id.substring(0,17); + + if (device.name) { + deviceName = device.name; + } + + menu[deviceName] = () => showDeviceInfo(device); + } + showMainMenu(menu); + }, { active: true }); +} + +function waitMessage() { + E.showMenu(); + E.showMessage("scanning"); +} + +scan(); +waitMessage(); + diff --git a/apps/bledetect/bledetect.png b/apps/bledetect/bledetect.png new file mode 100644 index 0000000000000000000000000000000000000000..59d6a26cee07bc61899bc7ec129c426784e5f716 GIT binary patch literal 4163 zcmaJ^c|276-=7H?YbY+GG{(M;nX!!}4KpGpLfHyqjNJ?~V<-EPr4$JfWzCvBA(FL( zM1)91+4po6^Njnu-QV-abD#4%=X{sf`~Ci`-`DG$>!ugZaj}Eh0RRA(p#jE>F)AHC zpreep<&i(*7=sWEYeh3BJJbB}6e0laM0O-X488C!L^C4ZDbS~ns09EpLES8@XjV95 z4FcIq5r2qL4Dj-1umJ!qod9n# zMDw5v7K9)V0?G-ha|WUnpurIEBGT}X054AxRU<$f`j@T-V}7^|gF^m-&^)xE|8dF+ zXA03HQ-}~1MWg~j2@Z#-sw%>jRa8~s@(_d)905~e+^Pz2WepWo4TKux?+ePXMsaf1 zFvIBoZHuwehPu*d-Wo8NzrVktKT?rQae={6DAb__0-?Y_C{P1QG<<*pi7NJ60Yjt` zC~n>~H!=xwsEBtY`_i_Cp1V-VU#STq*Yv@skcp8~vK_+|t&Z4O+nMS6%lD#2% z=Bf~BOE;1e*`F%&7aoVxFeFiFcoKnVh|z{J6cpXuoHW!BXgwtrePuOWWh@+yMWdC} zQD}8NxVjQX4GUL6{^nxH1Ya*AiT0c8^k1&Zzj6;-!ONRr8AGJF`4OG;DP%9mUm-6uwApeyMV>kmlEbRX(^zSW3_Z&|DXzXY6F7UhTVt1Nlz0jK9wPsj7WxkWfQI6kwXc=1NxDz7 z+P0&2=2zt-8g7O*zu>pY5k0rxR7bOxhn(Tk}kAv4s z03Ugh9zPM3^bW5=-tZM}S})N!^XRJ>;4I=j7r*(%$iA}yZ1*wyZXjoB!OwAtnIID* zFwo+8+cCh-M`lQVsD{BQ&aqJSMa?Lg&}^OuTG!dRCJp&`lI9&oQ@0KZ?aY<#iKu^_ z1+EAAG+)uCC-Of_Or^6S`)C$L%i;UXJh;)9rOBU-WE=XkWo@>Dc_T?j@Lw%R(L~$! zNRt^q;qRYb0Q10S=thmt&Brp6y88^QM(pSnD39wnO&?bN3A8BSL=tmCDexz*<{52k z9CaH@SBp-&&J7q)mWyZR@hlsy^(UKmw~Q$VIOhiU+a#gP#d6k2b#tC1wpAF0?9A|k3TRBsZl)3W$5kNdLn^g(XCX+fI z;i@G0O(PBdvwcf=dz-49 zdpBe=bnmK(hKeT!rpbPvBTTfL$>0sJBZRw~uyMOnEnMlSTpa8Np9DXLQ>o%tmNK0C zTj8ZM%-6c{ulj~W*L0J`$;Ql}kggNPSqJ?Mf8Mc|?^`tnDC|G-V@h)|$)tA>giX5% z&pK_+=JRG`<9UJ0Un;tFfF~Bdh6olfCR}z8V&6+Z{s5`J_h$8-1J_UzvKn#W{n z!^X_Htd?VZzFZ@tWNle~L{_xqV?;c?CZCLFU%Lc#d0{h;bBO!H+Mf0C(+(o=sH{LA zzm)-}^qaqFFtg{-`9F ze>#YID*|ut4LmrCkln~OG7(MVj2|uhDO+RavfytFODXS;tJI&oJD$%97&nZ4L>OBO zC+_sA(sHboE!)fwe3p+kC@0ce_kaZ-W-L4+dSYAp?jQYpjThb9d>rA6X$;+@rYBj5 zfOMN1XqLKrvrc;Z(c5}T4&@b#A%KD+9a9)CIbU$?wW&LET|F=C?x`w;ePYwxeleN7 zyHqs{VI|DvU5Ex6 zNojD(iJXi1a+;UYg9+vn*V7Q1J!c#Q*q7t>+JgM}i%eU&62X+l&h(_mrlaxYsNTZ- z#jUncKQS+#z~SgYhqjL`r$kUZLQ2r@{8<|zMm*{!hM3h^RyGH9ptOx&S^4^W2YJ^M z^;Q5>?lqw`z+A4?%A5M=vVouQuzr|BgL6(0_}KDi?m1nu6>KpkFGtKE*$)KWogg$( zMkXrOc-A`$gqGmhR}|J;I1PHW_rIlx@M#H64+NIBgns@NRsUzqSWP9n-_QME$1C&P zM_ksH7Ms5YIi?Ea~6dvQ(LS zFLjxvTs`M?G?$&&r?aGir%!BhYf6I*mN`N{w4{YKQd`RCqK3LIjn?)i9~!m091-sf z2dsrYVJ3An=3Dcone2=BSHr4nRfm1R*`p8HLEQTWh2KvFe)YRmJz7icb;!MYlQVT! zFiYOXcw#={y3C!-QJFHS+L*QxW_eADozlIa(L_{D<&Wf{`yswQnW=u_TCFarpmd;t z;pP>^-Zq%3^W{&9+-ZX}@9EjV+mJQs@rfsCUrgR67@fB*tP)Eh*k4f}gBdj6s<-)a zK_zkati3I2X$j}CJB<~MbKEvDPBxF`!bN21PeyYe$lP)981y`C9~>~sm6j&6%Kzh} z3!sr(a@@#I!n=Lo$jFCEtds8xVI~1A{2OlTrCzXKom&e5Js9-9{Tte@+#-lbIR*i^f9+*3#n3-4kYD=?09yIzOy zQg@}xINP^^IAcq-Sa-m-{NFkR-l|#X%hG|(6=vfjO#L}cFXoGS?uIElCpx$nOS)Y? zEq#ou;C?B7RT03(5@L?L2@sj{c@%XfyxF`$*#dV$*KC(Q+WDA1@8iQW0zFrD#-!!l zHLhbw4v$#7^`o0TJ$vp&D@iH>zue{beU^O0>A}KSD8E4Paed&q7uEx@b$1ibWH}_I zBk^W$m-{vzSF(g>zhJvDw#8-Hqu(5Psyi{RkGi*d?PU+a&uY>5qSNj{dzk5_@YAjj z(}Q~l+sW(r{J{H!jicmluDz{zl|OD2HY^1MWA_(i)J$L%qn_^NLy{+Z!d6-q>crQ9 zuLh0r(1+$Mt?-u@L$QMO7Ak7j)dbgvBO`O&GUXfJZ(le*EafhPo(}5}6hK9@-}u(Z z=PV`_bJDlH0JaC;?^L^!qi%O@O6ktb1?l-CSG6J>kN8UsI#QZkRfK#;=Okv-qcc-= zP0yQB8t+usI=?RFHwU{g`Bw}bTuhMqRCFr5{hVt4O>LcKx-+Q6oc=sQ({&`oCi$t{ z?z^1Hec)rE&V=E~JY_Wklf>O7{kvLetk<$ghGNA72ei(DuFzmCr?2+f2MLhY&aeJA zZ;nfzo<~hmUnj+(#rC}yw%;I+P2YOnh3R7bsj&A;yy1}-}KA@Ol((&`V zW{fT&dzgX}%ux!9ws+Y5tXh_-n_Yi2g6kv)XzD5%`F=CWS0!+WPss3N} zQvt=r@P1S4^x7|9ruSL1j6BN40KJu=S{V_kMd+q-629e%HU2d&*R~q&*X%G<|AQ!U z{^PH5IhJeBCxlJGI=~sZlY$svRPKgyBov5Xd3!HirUM^d`oISxtbJtV!Mo1A7+Tv^ znt~kD`4v_G&$!6|MqBghC-vM|eGza~Z{56IhRsGF(gkC*6s5-dy%#%HOZ^q8H*7I| zP5XgL#D&(C#fZ*WBlqnFJvBq=gzT6aTdp;_JB@?V_Q?(6^u;@zyxkUY03P?` z%5XS&cPEcq}VfuR~bvUcc#tt;(9ibRa1&B>4ClW!hWe3;xpy^6oUGV zPt3s2**vqvD9ifS7JiCqV)7ePmNON*3pS}s54gdwaa2EAXM7~Z^zzLu4sL~KcYIMy z3$7!GH%K_PbG>@VGJ2La3~yMMT17w9X*s71`o=%;LD4F>9l3r7(1FGkMX4TSU4s@5 z57fLa^wmmxr$q{|6e4PiX)E literal 0 HcmV?d00001