This is a Json-RPC/2.0 server with websocket and httpd. You can control mbed(s) by Javascript, processing, Java. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088

Dependencies:   NyFileSystems libMiMic mbed-rtos mbed

Fork of MiMicRemoteMCU-for-Mbed by Ryo Iizuka

English

MiMicProject http://nyatla.jp/mimic/wp/

This application allow to control the remote mbed through the network. It allows to control the mbed without a firmware update. It has some Interface. There are Javascript(WebBrowser), Procesing, Java. API waits for a function very similar to mbedSDK.

/media/uploads/nyatla/--_2.png

Feature

  • Low delay RPC by Websocket+JSON-RPC.
  • OnChip programing environment (Javascript).
  • Zero configuration support (UPnP/mDNS/AutoIP/DHCP)
  • mbedAPI like APIs.
  • Supports mbed LPC1768/LPCXpresso1769/LPC4088/FRDM-K64F

GettingStarted

mbed(LPC1768)

  • Compile and write mbedJS to your mbed.
  • Create mimic.cfg file to the mbed drive. This is network configuration.
  • Connect to Ethernet cable to the mbed.
  • Reset mbed.
  • Open http://[mbed IP address]/ by web browser.
  • Click JavascriptEditor.
  • Click StartButton. LED will be blinking.

LPCXpresso1769 and LPC4088 QuickStartBoard and FRDM-K64F

Those do not have LocalFileSystem. mbedJS initial IP address is "192.168.0.39". Open this address and click Setup page. You can change ipaddress at here.

Other APIs

Reference

日本語

MiMicProject http://nyatla.jp/mimic/wp/

mbedJSはmbedをWebネットワークにつなぐためのアプリケーションです。 Javascript(ウェブブラウザ)、Processing、Javaから、mbedを操作することができます。 これらはmbedSDKのクラスライブラリとよく似たAPIなので、mbedを知っている方なら簡単に使うことができます。

/media/uploads/nyatla/--_2.png

特徴

  • Websocket+JSONRPCによる低遅延なRPC
  • ワンチップでブラウザ向けの開発環境を提供
  • UPnP/Bonjurによるディスカバりに対応
  • mbedSDKのAPIと同じ構成のAPI
  • mbed LPC1768/LPCXpresso1769/LPC4088/FRDM-K64Fに対応

このアプリケーションはMiMicRemoteMCUとよく似ていますが、JavascriptAPIがより使いやすくなりました。

はじめかた

  • ファームウェアをmbedに書き込みます。
  • 設定ファイルにネットワークに合わせたIPアドレスを指定します。
  • mbedをリセットして、設定したIPアドレスをブラウザで開きます。
  • JavascriptEditorを開きます。
  • Startボタンを押してLEDがチカチカすれば成功です。

mbedJS APIs

ドキュメント

関連記事

Committer:
nyatla
Date:
Thu Jul 04 11:06:27 2013 +0000
Revision:
23:1861be744ad1
Parent:
21:6555a25e67e7
Child:
25:cac6a29eda5d
IE10 suport; add FileIO service;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nyatla 4:00b4e7596014 1 #include "mbed.h"
nyatla 5:227d20070da4 2 #include "SDFileSystem.h"
nyatla 1:82b8312c78a1 3 #include "mimic.h"
nyatla 1:82b8312c78a1 4 #include "fsdata.h"
nyatla 1:82b8312c78a1 5
nyatla 1:82b8312c78a1 6 /**
nyatla 3:335512e81ba9 7 * local filesystem support.
nyatla 16:06dee6eef0bc 8 * MiMic::LocalFileSystem2 do not freeze on LPCXpresso.
nyatla 3:335512e81ba9 9 */
nyatla 16:06dee6eef0bc 10 LocalFileSystem2 lf("local");
nyatla 7:8cbfa0625c51 11 SDFileSystem sd(p5, p6, p7, p8,"sd");
nyatla 5:227d20070da4 12
nyatla 3:335512e81ba9 13
nyatla 3:335512e81ba9 14 /**
nyatla 1:82b8312c78a1 15 * MiMic RemoteMCU httpd.<br/>
nyatla 1:82b8312c78a1 16 * <p>Service list</p>
nyatla 1:82b8312c78a1 17 * <pre>
nyatla 1:82b8312c78a1 18 * /rom/ - romfs
nyatla 1:82b8312c78a1 19 * /setup/ - MiMic configulation REST API.
nyatla 1:82b8312c78a1 20 * /local/ - mbed LocalFileSystem
nyatla 1:82b8312c78a1 21 * /mvm/ - MiMicVM REST API
nyatla 1:82b8312c78a1 22 * </pre>
nyatla 1:82b8312c78a1 23 */
nyatla 1:82b8312c78a1 24 class MiMicRemoteMcu:public MiMic::Httpd
nyatla 1:82b8312c78a1 25 {
nyatla 1:82b8312c78a1 26 private:
nyatla 1:82b8312c78a1 27 ModRomFiles modromfs; //ROM file module
nyatla 1:82b8312c78a1 28 ModMiMicSetting mimicsetting; //mimic setting API
nyatla 1:82b8312c78a1 29 ModRemoteMcu remotemcu; // remotemcu API
nyatla 23:1861be744ad1 30 ModLocalFileSystem modlocal; //FileSystem mounter
nyatla 23:1861be744ad1 31 ModLocalFileSystem modsd; //FileSystem mounter
nyatla 23:1861be744ad1 32 ModFileIo modfio; //fileupload API
nyatla 1:82b8312c78a1 33 public:
nyatla 21:6555a25e67e7 34 MiMicRemoteMcu(NetConfig& i_cfg):Httpd(i_cfg._inst.services.http_port)
nyatla 1:82b8312c78a1 35 {
nyatla 7:8cbfa0625c51 36 this->modromfs.setParam("rom",RMCU_FSDATA,20);
nyatla 3:335512e81ba9 37 this->mimicsetting.setParam("setup");
nyatla 3:335512e81ba9 38 this->remotemcu.setParam("mvm");
nyatla 3:335512e81ba9 39 this->modlocal.setParam("local");
nyatla 5:227d20070da4 40 this->modsd.setParam("sd");
nyatla 23:1861be744ad1 41 this->modfio.setParam("fio");
nyatla 1:82b8312c78a1 42 }
nyatla 1:82b8312c78a1 43 virtual void onRequest(HttpdConnection& i_connection)
nyatla 1:82b8312c78a1 44 {
nyatla 1:82b8312c78a1 45 //try to ModRomFS module.
nyatla 1:82b8312c78a1 46 if(this->modromfs.execute(i_connection)){
nyatla 1:82b8312c78a1 47 return;
nyatla 1:82b8312c78a1 48 }
nyatla 1:82b8312c78a1 49 //try to ModMiMicSetting module.
nyatla 1:82b8312c78a1 50 if(this->mimicsetting.execute(i_connection)){
nyatla 1:82b8312c78a1 51 return;
nyatla 1:82b8312c78a1 52 }
nyatla 1:82b8312c78a1 53 //try to ModRemoteMcu module.
nyatla 1:82b8312c78a1 54 if(this->remotemcu.execute(i_connection)){
nyatla 1:82b8312c78a1 55 return;
nyatla 1:82b8312c78a1 56 }
nyatla 3:335512e81ba9 57 //try to ModLocalFileSystem
nyatla 3:335512e81ba9 58 if(this->modlocal.execute(i_connection)){
nyatla 3:335512e81ba9 59 return;
nyatla 3:335512e81ba9 60 }
nyatla 5:227d20070da4 61 //try to ModLocalFileSystem(SD)
nyatla 5:227d20070da4 62 if(this->modsd.execute(i_connection)){
nyatla 5:227d20070da4 63 return;
nyatla 5:227d20070da4 64 }
nyatla 23:1861be744ad1 65 //try to FileUpload
nyatla 23:1861be744ad1 66 if(this->modfio.execute(i_connection)){
nyatla 23:1861be744ad1 67 return;
nyatla 23:1861be744ad1 68 }
nyatla 3:335512e81ba9 69
nyatla 1:82b8312c78a1 70 //Otherwise, Send the redirect response to /rom/index.html
nyatla 18:0b1759b8d55f 71 i_connection.sendHeader(302,
nyatla 1:82b8312c78a1 72 "text/html",
nyatla 5:227d20070da4 73 "Status: 302:Moved Temporarily\r\n"
nyatla 4:00b4e7596014 74 "Location: /rom/index.html\r\n");
nyatla 1:82b8312c78a1 75 return;
nyatla 1:82b8312c78a1 76 }
nyatla 1:82b8312c78a1 77 };
nyatla 5:227d20070da4 78
nyatla 1:82b8312c78a1 79 int main()
nyatla 1:82b8312c78a1 80 {
nyatla 4:00b4e7596014 81 NetConfig cfg; //create network configulation with onchip-setting.
nyatla 21:6555a25e67e7 82 Net net; //create a net instance
nyatla 9:18e9bf764cc1 83 //try to override setting by local file.
nyatla 16:06dee6eef0bc 84 if(!cfg.loadFromFile("/local/mimic.cfg")){
nyatla 17:0d2911b6f337 85 wait_ms(1000);//wait for SD card initialization.
nyatla 16:06dee6eef0bc 86 cfg.loadFromFile("/sd/mimic.cfg");
nyatla 16:06dee6eef0bc 87 }
nyatla 21:6555a25e67e7 88 MiMicRemoteMcu httpd(cfg); //create a httpd instance.
nyatla 21:6555a25e67e7 89 net.start(cfg);
nyatla 1:82b8312c78a1 90 httpd.loop(); //start httpd loop.
nyatla 1:82b8312c78a1 91 return 0;
nyatla 1:82b8312c78a1 92 }