OSDN Git Service

git-svn-id: http://svn.osdn.jp/svnroot/mimic/trunk@78 47198e57-cb75-475f-84c4-a814cd6...
authornyatla <nyatla@47198e57-cb75-475f-84c4-a814cd6f29e0>
Fri, 28 Oct 2011 12:32:37 +0000 (12:32 +0000)
committernyatla <nyatla@47198e57-cb75-475f-84c4-a814cd6f29e0>
Fri, 28 Oct 2011 12:32:37 +0000 (12:32 +0000)
misc/MiMicVM/api.js/demo/led_blink.html
projects/app.RemoteMCU/src/sketch.c

index 62623b2..f07907a 100644 (file)
@@ -1,7 +1,7 @@
 <head>\r
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\r
 <script src="../MiMicCore.js"></script>        \r
-<script src="../LPCXpresso1769.All.js"></script>       \r
+<script src="../LPCXPresso1769.All.js"></script>       \r
 <script type="text/javascript">\r
 function init(){\r
        var mcu=new LPCXpresso1769.Mcu("192.168.128.39");\r
index bb6baa4..95dc213 100644 (file)
@@ -36,6 +36,9 @@ static struct{
 }cgi_setting;\r
 static NyLPC_TUInt16 port;\r
 \r
+static NyLPC_TcMutex_t _vm_mutex;\r
+\r
+\r
 #define ACCESS_CTRL_SUBNET 0x00 //default\r
 #define ACCESS_CTRL_ALL 0x01\r
 \r
@@ -105,6 +108,8 @@ void setup(void)
        if(cgi_setting.setup_access>0x01){\r
                cgi_setting.setup_access=0;\r
        }\r
+       //VMの排他ロック\r
+       NyLPC_cMutex_initialize(&_vm_mutex);\r
 \r
 \r
 \r
@@ -511,7 +516,6 @@ static NyLPC_TBool mvm(NyLPC_TcHttpStream_t* i_st,const struct TRemoteMcuRequest
        }work;\r
        NyLPC_Assert(i_rqh->content.mvm.v==1);\r
        NyLPC_Assert(i_rqh->content.mvm.o==TRemoteMcuRequest_QVAL_O_JSON);\r
-       //インスタンスはシングル?\r
 \r
        //ヘッダを書く\r
        if(!writeJsonHeader(i_st,&(work.hw),&(i_rqh->super))){\r
@@ -529,6 +533,9 @@ static NyLPC_TBool mvm(NyLPC_TcHttpStream_t* i_st,const struct TRemoteMcuRequest
        work.bw.eh.st=i_st;\r
        work.bw.eh.req=i_rqh;\r
 \r
+       //VM起動の為の排他ロック\r
+       NyLPC_Assert(NyLPC_cMutex_lock(&_vm_mutex));\r
+\r
        //Bodyの書込み\r
        NyLPC_cHttpBodyWriter_initialize(&(work.bw.eh.bw),i_st);\r
        //起動VMの初期化\r
@@ -559,10 +566,17 @@ static NyLPC_TBool mvm(NyLPC_TcHttpStream_t* i_st,const struct TRemoteMcuRequest
        }\r
        NyLPC_cMiMicVM_finalize(&vm);\r
        NyLPC_cHttpBodyWriter_finalize(&hw);\r
+\r
+       //VM排他ロックの解除\r
+       NyLPC_Assert(NyLPC_cMutex_unlock(&_vm_mutex));\r
+\r
+\r
        //持続性はフラグから判断する。\r
        return NyLPC_THttpBasicHeader_isPersistent(&(i_rqh->super));\r
 Error_NyLPC_cHttpBodyWriter_format:\r
 Error_NyLPC_cHttpBodyWriter_close:\r
+       //VM排他ロックの解除\r
+       NyLPC_Assert(NyLPC_cMutex_unlock(&_vm_mutex));\r
        NyLPC_cMiMicVM_finalize(&vm);\r
        NyLPC_cHttpBodyWriter_finalize(&hw);\r
        return NyLPC_TBool_FALSE;\r