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:
Sun Apr 21 01:22:16 2013 +0000
Revision:
4:00b4e7596014
Parent:
3:335512e81ba9
Child:
5:227d20070da4
update libMiMic; add local file configuration support.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nyatla 4:00b4e7596014 1 #include "mbed.h"
nyatla 1:82b8312c78a1 2 #include "mimic.h"
nyatla 1:82b8312c78a1 3 #include "fsdata.h"
nyatla 1:82b8312c78a1 4
nyatla 1:82b8312c78a1 5
nyatla 1:82b8312c78a1 6 /**
nyatla 3:335512e81ba9 7 * local filesystem support.
nyatla 3:335512e81ba9 8 */
nyatla 3:335512e81ba9 9 LocalFileSystem lf("local");
nyatla 3:335512e81ba9 10
nyatla 3:335512e81ba9 11 /**
nyatla 1:82b8312c78a1 12 * MiMic RemoteMCU httpd.<br/>
nyatla 1:82b8312c78a1 13 * <p>Service list</p>
nyatla 1:82b8312c78a1 14 * <pre>
nyatla 1:82b8312c78a1 15 * /rom/ - romfs
nyatla 1:82b8312c78a1 16 * /setup/ - MiMic configulation REST API.
nyatla 1:82b8312c78a1 17 * /local/ - mbed LocalFileSystem
nyatla 1:82b8312c78a1 18 * /mvm/ - MiMicVM REST API
nyatla 1:82b8312c78a1 19 * </pre>
nyatla 1:82b8312c78a1 20 */
nyatla 1:82b8312c78a1 21 class MiMicRemoteMcu:public MiMic::Httpd
nyatla 1:82b8312c78a1 22 {
nyatla 1:82b8312c78a1 23 private:
nyatla 1:82b8312c78a1 24 ModRomFiles modromfs; //ROM file module
nyatla 1:82b8312c78a1 25 ModMiMicSetting mimicsetting; //mimic setting API
nyatla 1:82b8312c78a1 26 ModRemoteMcu remotemcu; // remotemcu API
nyatla 3:335512e81ba9 27 ModLocalFileSystem modlocal; //basic URL parser
nyatla 3:335512e81ba9 28
nyatla 1:82b8312c78a1 29 public:
nyatla 1:82b8312c78a1 30 MiMicRemoteMcu():Httpd(80)
nyatla 1:82b8312c78a1 31 {
nyatla 3:335512e81ba9 32 this->modromfs.setParam("rom",RMCU_FSDATA,19);
nyatla 3:335512e81ba9 33 this->mimicsetting.setParam("setup");
nyatla 3:335512e81ba9 34 this->remotemcu.setParam("mvm");
nyatla 3:335512e81ba9 35 this->modlocal.setParam("local");
nyatla 1:82b8312c78a1 36 }
nyatla 1:82b8312c78a1 37 virtual void onRequest(HttpdConnection& i_connection)
nyatla 1:82b8312c78a1 38 {
nyatla 1:82b8312c78a1 39 //try to ModRomFS module.
nyatla 1:82b8312c78a1 40 if(this->modromfs.execute(i_connection)){
nyatla 1:82b8312c78a1 41 return;
nyatla 1:82b8312c78a1 42 }
nyatla 1:82b8312c78a1 43 //try to ModMiMicSetting module.
nyatla 1:82b8312c78a1 44 if(this->mimicsetting.execute(i_connection)){
nyatla 1:82b8312c78a1 45 return;
nyatla 1:82b8312c78a1 46 }
nyatla 1:82b8312c78a1 47 //try to ModRemoteMcu module.
nyatla 1:82b8312c78a1 48 if(this->remotemcu.execute(i_connection)){
nyatla 1:82b8312c78a1 49 return;
nyatla 1:82b8312c78a1 50 }
nyatla 3:335512e81ba9 51 //try to ModLocalFileSystem
nyatla 3:335512e81ba9 52 if(this->modlocal.execute(i_connection)){
nyatla 3:335512e81ba9 53 return;
nyatla 3:335512e81ba9 54 }
nyatla 3:335512e81ba9 55
nyatla 1:82b8312c78a1 56 //Otherwise, Send the redirect response to /rom/index.html
nyatla 1:82b8312c78a1 57 i_connection.sendHeader(301,
nyatla 1:82b8312c78a1 58 "text/html",
nyatla 1:82b8312c78a1 59 "Status: 301:Moved Permanently\r\n"
nyatla 4:00b4e7596014 60 "Location: /rom/index.html\r\n");
nyatla 1:82b8312c78a1 61 return;
nyatla 1:82b8312c78a1 62 }
nyatla 1:82b8312c78a1 63 };
nyatla 1:82b8312c78a1 64 int main()
nyatla 1:82b8312c78a1 65 {
nyatla 4:00b4e7596014 66 NetConfig cfg; //create network configulation with onchip-setting.
nyatla 4:00b4e7596014 67 cfg.loadFromFile("/local/mimic.cfg"); //try to override setting by local file.
nyatla 4:00b4e7596014 68 Net net(cfg); //create a net instance
nyatla 1:82b8312c78a1 69 MiMicRemoteMcu httpd; //create a httpd instance.
nyatla 1:82b8312c78a1 70 httpd.loop(); //start httpd loop.
nyatla 1:82b8312c78a1 71 return 0;
nyatla 1:82b8312c78a1 72 }