* 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
#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
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
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
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