Ryo Iizuka / libMiMic

Dependents:   MbedFileServer_1768MiniDK2 RedWireBridge IssueDebug_gcc MiMicRemoteMCU-for-Mbed ... more

Committer:
nyatla
Date:
Wed Nov 19 14:45:17 2014 +0000
Revision:
109:18f12ac01097
new MiMicIP API;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nyatla 109:18f12ac01097 1
nyatla 109:18f12ac01097 2 #include "NyLPC_cNetIf.h"
nyatla 109:18f12ac01097 3 #include "./mimicip/NyLPC_cMiMicIpNetIf_protected.h"
nyatla 109:18f12ac01097 4 #include "dhcp/NyLPC_cDhcpClient.h"
nyatla 109:18f12ac01097 5 #include "apipa/NyLPC_cApipa.h"
nyatla 109:18f12ac01097 6
nyatla 109:18f12ac01097 7
nyatla 109:18f12ac01097 8 /**
nyatla 109:18f12ac01097 9 * 唯一のネットワークインタフェイス
nyatla 109:18f12ac01097 10 */
nyatla 109:18f12ac01097 11 const static struct NyLPC_TiNetInterface_Interface* netif;
nyatla 109:18f12ac01097 12
nyatla 109:18f12ac01097 13
nyatla 109:18f12ac01097 14
nyatla 109:18f12ac01097 15
nyatla 109:18f12ac01097 16
nyatla 109:18f12ac01097 17 void NyLPC_cNetIf_initialize(void)
nyatla 109:18f12ac01097 18 {
nyatla 109:18f12ac01097 19 if(netif==NULL){
nyatla 109:18f12ac01097 20 //ここでネットワークインタフェイスを切り替えてくれ。
nyatla 109:18f12ac01097 21 netif=NyLPC_cMiMicIpNetIf_getNetInterface();
nyatla 109:18f12ac01097 22 }
nyatla 109:18f12ac01097 23 }
nyatla 109:18f12ac01097 24
nyatla 109:18f12ac01097 25 void NyLPC_cNetIf_start(const NyLPC_TcIPv4Config_t* i_ref_config)
nyatla 109:18f12ac01097 26 {
nyatla 109:18f12ac01097 27 netif->start(i_ref_config);
nyatla 109:18f12ac01097 28 return;
nyatla 109:18f12ac01097 29 }
nyatla 109:18f12ac01097 30
nyatla 109:18f12ac01097 31 void NyLPC_cNetIf_stop(void)
nyatla 109:18f12ac01097 32 {
nyatla 109:18f12ac01097 33 netif->stop();
nyatla 109:18f12ac01097 34 return;
nyatla 109:18f12ac01097 35 }
nyatla 109:18f12ac01097 36
nyatla 109:18f12ac01097 37
nyatla 109:18f12ac01097 38
nyatla 109:18f12ac01097 39 /**
nyatla 109:18f12ac01097 40 * 指定したIPアドレスを要求するARPリクエストを発行します。
nyatla 109:18f12ac01097 41 */
nyatla 109:18f12ac01097 42 void NyLPC_cNetIf_sendArpRequest(const struct NyLPC_TIPv4Addr* i_addr)
nyatla 109:18f12ac01097 43 {
nyatla 109:18f12ac01097 44 netif->sendarprequest(i_addr);
nyatla 109:18f12ac01097 45 }
nyatla 109:18f12ac01097 46 /**
nyatla 109:18f12ac01097 47 * ARPテーブルに指定したIPがあるかを返します。
nyatla 109:18f12ac01097 48 */
nyatla 109:18f12ac01097 49 NyLPC_TBool NyLPC_cNetIf_hasArpInfo(const struct NyLPC_TIPv4Addr* i_addr)
nyatla 109:18f12ac01097 50 {
nyatla 109:18f12ac01097 51 return netif->hasarpinfo(i_addr);
nyatla 109:18f12ac01097 52 }
nyatla 109:18f12ac01097 53
nyatla 109:18f12ac01097 54 NyLPC_TBool NyLPC_cNetIf_isInitService(void)
nyatla 109:18f12ac01097 55 {
nyatla 109:18f12ac01097 56 return netif->isinitservice();
nyatla 109:18f12ac01097 57 }
nyatla 109:18f12ac01097 58
nyatla 109:18f12ac01097 59 NyLPC_TiTcpSocket_t* NyLPC_cNetIf_createTcpSocketEx(NyLPC_TSocketType i_socktype)
nyatla 109:18f12ac01097 60 {
nyatla 109:18f12ac01097 61 return netif->createTcpSocketEx(i_socktype);
nyatla 109:18f12ac01097 62 }
nyatla 109:18f12ac01097 63 NyLPC_TiUdpSocket_t* NyLPC_cNetIf_createUdpSocketEx(NyLPC_TUInt16 i_port,NyLPC_TSocketType i_socktype)
nyatla 109:18f12ac01097 64 {
nyatla 109:18f12ac01097 65 return netif->createUdpSocetEx(i_port,i_socktype);
nyatla 109:18f12ac01097 66 }
nyatla 109:18f12ac01097 67 NyLPC_TiTcpListener_t* NyLPC_cNetIf_createTcpListenerEx(NyLPC_TUInt16 i_port)
nyatla 109:18f12ac01097 68 {
nyatla 109:18f12ac01097 69 return netif->createTcpListener(i_port);
nyatla 109:18f12ac01097 70 }
nyatla 109:18f12ac01097 71
nyatla 109:18f12ac01097 72 const struct NyLPC_TNetInterfaceInfo* NyLPC_cNetIf_getInterfaceInfo(void)
nyatla 109:18f12ac01097 73 {
nyatla 109:18f12ac01097 74 return netif->getinterfaceinfo();
nyatla 109:18f12ac01097 75 }
nyatla 109:18f12ac01097 76
nyatla 109:18f12ac01097 77
nyatla 109:18f12ac01097 78
nyatla 109:18f12ac01097 79 NyLPC_TBool NyLPC_cNetIf_requestAddrDhcp(NyLPC_TcIPv4Config_t* i_cfg,NyLPC_TInt16 i_repeat)
nyatla 109:18f12ac01097 80 {
nyatla 109:18f12ac01097 81 NyLPC_TBool ret;
nyatla 109:18f12ac01097 82 NyLPC_TcDhcpClient_t sock;
nyatla 109:18f12ac01097 83 //netを開始
nyatla 109:18f12ac01097 84 NyLPC_cDhcpClient_initialize(&sock);
nyatla 109:18f12ac01097 85 ret=NyLPC_cDhcpClient_requestAddr(&sock,i_cfg,i_repeat);
nyatla 109:18f12ac01097 86 NyLPC_cDhcpClient_finalize(&sock);
nyatla 109:18f12ac01097 87 return ret;
nyatla 109:18f12ac01097 88 }
nyatla 109:18f12ac01097 89
nyatla 109:18f12ac01097 90 NyLPC_TBool NyLPC_cNetIf_requestAddrApipa(NyLPC_TcIPv4Config_t* i_cfg,NyLPC_TInt16 i_repeat)
nyatla 109:18f12ac01097 91 {
nyatla 109:18f12ac01097 92 NyLPC_TBool ret;
nyatla 109:18f12ac01097 93 NyLPC_TcApipa_t sock;
nyatla 109:18f12ac01097 94 //netを開始
nyatla 109:18f12ac01097 95 NyLPC_cApipa_initialize(&sock);
nyatla 109:18f12ac01097 96 ret=NyLPC_cApipa_requestAddr(&sock,i_cfg,i_repeat);
nyatla 109:18f12ac01097 97 NyLPC_cApipa_finalize(&sock);
nyatla 109:18f12ac01097 98 return ret;
nyatla 109:18f12ac01097 99 }
nyatla 109:18f12ac01097 100
nyatla 109:18f12ac01097 101
nyatla 109:18f12ac01097 102