OSDN Git Service

update libMiMic
[mimic/MiMicSDK.git] / projects / example / sample.net.loopback / src / sketch.c
index eeec85f..9273594 100644 (file)
@@ -3,7 +3,9 @@
  * 23番ポートでListenして、受信データをエコーバックします。\r
  */\r
 #include "boot/sketch.h"\r
-#include "NyLPC_uipService.h"\r
+#include "NyLPC_net.h"\r
+#include "../netif/mimicip/NyLPC_cMiMicIpNetIf.h"\r
+\r
 //イーサネット用の初期化情報\r
 const struct NyLPC_TEthAddr ethaddr=NyLPC_TEthAddr_pack(0x02,0x01,0x02,0x03,0x04,0x05);\r
 const struct NyLPC_TIPv4Addr ipaddr=NyLPC_TIPv4Addr_pack(192,168,128,201);\r
@@ -15,20 +17,21 @@ const struct NyLPC_TIPv4Addr gateway=NyLPC_TIPv4Addr_pack(192,168,128,254);
 #define NUM_OF_TH 8\r
 struct TProc{\r
        NyLPC_TcThread_t th;\r
-       NyLPC_TcTcpSocket_t socket;\r
-       char rbuf[512];\r
+       NyLPC_TiTcpSocket_t* socket;\r
 }proc[NUM_OF_TH];\r
 \r
-\r
+const struct NyLPC_TiNetInterface_Interface* netif;\r
 void setup(void)\r
 {\r
        int i;\r
-       //UipServiceの初期化\r
-       NyLPC_cUipService_initialize();\r
+       //uipサービス初期化。いろいろ利用可能に。\r
+       netif=NyLPC_cMiMicIpNetIf_getNetInterface();\r
+       NyLPC_cNet_initialize(netif);\r
+\r
        //TCPスレッドの準備\r
        for(i=0;i<NUM_OF_TH;i++){\r
                NyLPC_cThread_initialize(&(proc[i].th),160,NyLPC_TcThread_PRIORITY_IDLE);\r
-               NyLPC_cTcpSocket_initialize(&(proc[i].socket),proc[i].rbuf,512);\r
+               proc[i].socket=NyLPC_cNet_createTcpSocketEx(NyLPC_TSocketType_UDP_NORMAL);\r
        }\r
 }\r
 \r
@@ -45,30 +48,30 @@ int server(void* p)
        NyLPC_TInt16 sent;\r
 \r
 \r
-       if(!NyLPC_cTcpSocket_accept(&(proc->socket),3000)){\r
+       if(!NyLPC_iTcpSocket_accept(proc->socket,3000)){\r
                return -1;\r
        }\r
        //接続中は送信する。\r
-       s=NyLPC_cTcpSocket_precv(&(proc->socket),(const void**)&buf,1000);\r
+       s=NyLPC_iTcpSocket_precv(proc->socket,(const void**)&buf,1000);\r
        while(s>=0){\r
                if(s>0){\r
                        //受信した内容をそのまま送信。\r
                        src=buf;\r
                        while(s>0){\r
-                               sent=NyLPC_cTcpSocket_send(&(proc->socket),src,s,30000);\r
+                               sent=NyLPC_iTcpSocket_send(proc->socket,src,s,30000);\r
                                if(sent<=0){\r
-                                       NyLPC_cTcpSocket_close(&(proc->socket),10000);\r
+                                       NyLPC_iTcpSocket_close(proc->socket,10000);\r
                                        return -1;\r
                                }\r
                                //読み出し位置を調整\r
                                src+=sent;\r
                                s-=sent;\r
-                               NyLPC_cTcpSocket_pseek(&(proc->socket),sent);\r
+                               NyLPC_iTcpSocket_pseek(proc->socket,sent);\r
                        }\r
                }\r
-               s=NyLPC_cTcpSocket_precv(&(proc->socket),(const void**)&buf,1000);\r
+               s=NyLPC_iTcpSocket_precv(proc->socket,(const void**)&buf,1000);\r
        }\r
-       NyLPC_cTcpSocket_close(&(proc->socket),10000);\r
+       NyLPC_iTcpSocket_close(proc->socket,10000);\r
        return 1;\r
 }\r
 \r
@@ -77,7 +80,7 @@ int server(void* p)
 void loop(void)\r
 {\r
        NyLPC_TcIPv4Config_t config;\r
-       NyLPC_TcTcpListener_t listener;\r
+       NyLPC_TiTcpListener_t* listener;\r
        int i;\r
 \r
 \r
@@ -86,14 +89,14 @@ void loop(void)
        NyLPC_cIPv4Config_setIp(&config,&ipaddr,&netmask);\r
 \r
 \r
-       NyLPC_cTcpListener_initialize(&listener,23);\r
-       NyLPC_cUipService_start(&config);\r
+       listener=NyLPC_cNet_createTcpListenerEx(23);\r
+       NyLPC_cNet_start(&config);\r
        for(;;){\r
                //ターミネイト状態のタスクを検索\r
                for(i=0;i<NUM_OF_TH;i++){\r
                        if(NyLPC_cThread_isTerminated(&(proc[i].th))){\r
                                //リスニング\r
-                               if(!NyLPC_cTcpListener_listen(&listener,&(proc[i].socket),10000)){\r
+                               if(!NyLPC_iTcpListener_listen(listener,proc[i].socket,10000)){\r
                                        continue;\r
                                }\r
                                //タスク起動\r