This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088

Fork of libMiMic by Ryo Iizuka

Committer:
furutani
Date:
Fri Feb 24 04:43:41 2017 +0000
Revision:
115:fa79286d8ea4
Parent:
109:18f12ac01097
Delete missing include line.; Add parameter "timeout" to TCPSocket::connect(), precv().; Fix to send ARP request to default gateway when connecting to IP address of different segment.;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nyatla 109:18f12ac01097 1 /*********************************************************************************
nyatla 109:18f12ac01097 2 * PROJECT: MiMic
nyatla 109:18f12ac01097 3 * --------------------------------------------------------------------------------
nyatla 109:18f12ac01097 4 *
nyatla 109:18f12ac01097 5 * This file is part of MiMic
nyatla 109:18f12ac01097 6 * Copyright (C)2011 Ryo Iizuka
nyatla 109:18f12ac01097 7 *
nyatla 109:18f12ac01097 8 * MiMic is free software: you can redistribute it and/or modify
nyatla 109:18f12ac01097 9 * it under the terms of the GNU Lesser General Public License as published
nyatla 109:18f12ac01097 10 * by the Free Software Foundation, either version 3 of the License, or
nyatla 109:18f12ac01097 11 * (at your option) any later version.
nyatla 109:18f12ac01097 12 *
nyatla 109:18f12ac01097 13 * This program is distributed in the hope that it will be useful,
nyatla 109:18f12ac01097 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
nyatla 109:18f12ac01097 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
nyatla 109:18f12ac01097 16 * GNU General Public License for more details.
nyatla 109:18f12ac01097 17 *
nyatla 109:18f12ac01097 18 * You should have received a copy of the GNU Lesser General Public License
nyatla 109:18f12ac01097 19 * along with this program. If not, see <http://www.gnu.org/licenses/>.
nyatla 109:18f12ac01097 20 *
nyatla 109:18f12ac01097 21 * For further information please contact.
nyatla 109:18f12ac01097 22 * http://nyatla.jp/
nyatla 109:18f12ac01097 23 * <airmail(at)ebony.plala.or.jp> or <nyatla(at)nyatla.jp>
nyatla 109:18f12ac01097 24 *
nyatla 109:18f12ac01097 25 *********************************************************************************/
nyatla 109:18f12ac01097 26 /**
nyatla 109:18f12ac01097 27 * @file
nyatla 109:18f12ac01097 28 * このファイルは、NyLPC_cIPv4Configクラスを定義します。
nyatla 109:18f12ac01097 29 */
nyatla 109:18f12ac01097 30 #ifndef NYLPC_CIPV4CONFIG_H_
nyatla 109:18f12ac01097 31 #define NYLPC_CIPV4CONFIG_H_
nyatla 109:18f12ac01097 32
nyatla 109:18f12ac01097 33
nyatla 109:18f12ac01097 34 #include "NyLPC_NetIf_ip_types.h"
nyatla 109:18f12ac01097 35
nyatla 109:18f12ac01097 36 /**
nyatla 109:18f12ac01097 37 * クラス型を定義します。
nyatla 109:18f12ac01097 38 * NyLPC_cIPv4Configクラスは、IPと、下位のネットワーク層の設定を保持します。
nyatla 109:18f12ac01097 39 * 関連するオブジェクトが、ネットワーク設定を問い合わせる為に使います。
nyatla 109:18f12ac01097 40 */
nyatla 109:18f12ac01097 41 typedef struct NyLPC_TcIPv4Config NyLPC_TcIPv4Config_t;
nyatla 109:18f12ac01097 42
nyatla 109:18f12ac01097 43 #ifdef __cplusplus
nyatla 109:18f12ac01097 44 extern "C" {
nyatla 109:18f12ac01097 45 #endif /* __cplusplus */
nyatla 109:18f12ac01097 46 /**********************************************************************
nyatla 109:18f12ac01097 47 *
nyatla 109:18f12ac01097 48 * class NyLPC_TcIPv4Config
nyatla 109:18f12ac01097 49 *
nyatla 109:18f12ac01097 50 **********************************************************************/
nyatla 109:18f12ac01097 51
nyatla 109:18f12ac01097 52
nyatla 109:18f12ac01097 53
nyatla 109:18f12ac01097 54
nyatla 109:18f12ac01097 55 /**
nyatla 109:18f12ac01097 56 * NyLPC_TcIPv4Configクラスの構造体です。
nyatla 109:18f12ac01097 57 */
nyatla 109:18f12ac01097 58 struct NyLPC_TcIPv4Config
nyatla 109:18f12ac01097 59 {
nyatla 109:18f12ac01097 60 /** イーサネットアドレスを格納します。 */
nyatla 109:18f12ac01097 61 struct NyLPC_TEthAddr eth_mac;
nyatla 109:18f12ac01097 62 /** IPアドレスを格納します。Network orderです。 */
nyatla 109:18f12ac01097 63 struct NyLPC_TIPv4Addr ip_addr;
nyatla 109:18f12ac01097 64 /** ネットマスクを格納します。Network orderです。 */
nyatla 109:18f12ac01097 65 struct NyLPC_TIPv4Addr netmask;
nyatla 109:18f12ac01097 66 /** デフォルトゲートウェイアドレスを格納します。Network orderです。 */
nyatla 109:18f12ac01097 67 struct NyLPC_TIPv4Addr dr_addr;
nyatla 109:18f12ac01097 68 /** デフォルトMMSサイズです。送信パケットのMSS値、受信パケットのデフォルトMSS値として使います。 */
nyatla 109:18f12ac01097 69 NyLPC_TUInt16 default_mss;
nyatla 109:18f12ac01097 70 };
nyatla 109:18f12ac01097 71
nyatla 109:18f12ac01097 72 #define NyLPC_TcIPv4Config_getEtherMac000120203(v)(((v)->eth_mac.addr[0]<<24)|((v)->eth_mac.addr[1]<<16)|((v)->eth_mac.addr[2]<<8)|((v)->eth_mac.addr[3]<<0))
nyatla 109:18f12ac01097 73 #define NyLPC_TcIPv4Config_getEtherMac0405xxxx(v) (((v)->eth_mac.addr[4]<<24)|((v)->eth_mac.addr[5]<<16))
nyatla 109:18f12ac01097 74
nyatla 109:18f12ac01097 75 /**
nyatla 109:18f12ac01097 76 * コンストラクタです。
nyatla 109:18f12ac01097 77 * イーサネット用にコンフィギュレーションを初期化します。
nyatla 109:18f12ac01097 78 * @param i_inst
nyatla 109:18f12ac01097 79 * 初期化するインスタンスです。
nyatla 109:18f12ac01097 80 * @param i_ether_frame_len
nyatla 109:18f12ac01097 81 * イーサネットフレームのサイズ。この数値から、MSSのデフォルト値を計算します。
nyatla 109:18f12ac01097 82 */
nyatla 109:18f12ac01097 83 void NyLPC_cIPv4Config_initialzeForEthernet(NyLPC_TcIPv4Config_t* i_inst,const struct NyLPC_TEthAddr* i_ether_addr,NyLPC_TUInt16 i_ether_frame_len);
nyatla 109:18f12ac01097 84
nyatla 109:18f12ac01097 85 /**
nyatla 109:18f12ac01097 86 * コピーコンストラクタ
nyatla 109:18f12ac01097 87 */
nyatla 109:18f12ac01097 88 void NyLPC_cIPv4Config_initialzeCopy(NyLPC_TcIPv4Config_t* i_inst,const NyLPC_TcIPv4Config_t* i_src);
nyatla 109:18f12ac01097 89
nyatla 109:18f12ac01097 90
nyatla 109:18f12ac01097 91 /**
nyatla 109:18f12ac01097 92 * デストラクタです。インスタンスを破棄して、確保している動的リソースを元に戻します。
nyatla 109:18f12ac01097 93 * @param i_inst
nyatla 109:18f12ac01097 94 * 破棄するインスタンスです。
nyatla 109:18f12ac01097 95 * initializeに成功したインスタンスだけが指定できます。
nyatla 109:18f12ac01097 96 */
nyatla 109:18f12ac01097 97 #define NyLPC_cIPv4Config_finalize(i_inst)
nyatla 109:18f12ac01097 98
nyatla 109:18f12ac01097 99 /**
nyatla 109:18f12ac01097 100 * この関数は、IPのデフォルトゲートウェイを設定します。dr_addrの値を更新します。
nyatla 109:18f12ac01097 101 * @param i_inst
nyatla 109:18f12ac01097 102 * 操作するインスタンスです。
nyatla 109:18f12ac01097 103 * @param i_dr_addr
nyatla 109:18f12ac01097 104 * 設定するIPアドレスを格納したアドレスです。
nyatla 109:18f12ac01097 105 */
nyatla 109:18f12ac01097 106 void NyLPC_cIPv4Config_setDefaultRoute(NyLPC_TcIPv4Config_t* i_inst,const struct NyLPC_TIPv4Addr* i_dr_addr);
nyatla 109:18f12ac01097 107
nyatla 109:18f12ac01097 108 /**
nyatla 109:18f12ac01097 109 * この関数は、ローカルIPアドレスとネットマスクを設定します。
nyatla 109:18f12ac01097 110 * @param i_inst
nyatla 109:18f12ac01097 111 * 操作するインスタンスです。
nyatla 109:18f12ac01097 112 * @param i_ipaddr
nyatla 109:18f12ac01097 113 * 設定するIPアドレスを格納したアドレスです。
nyatla 109:18f12ac01097 114 * @param i_netmask
nyatla 109:18f12ac01097 115 * 設定するネットマスクを格納したアドレスです。
nyatla 109:18f12ac01097 116 */
nyatla 109:18f12ac01097 117 void NyLPC_cIPv4Config_setIp(NyLPC_TcIPv4Config_t* i_inst,const struct NyLPC_TIPv4Addr* i_ipaddr,const struct NyLPC_TIPv4Addr* i_netmask);
nyatla 109:18f12ac01097 118
nyatla 109:18f12ac01097 119 /**
nyatla 109:18f12ac01097 120 * この関数は、i_target_ipが、現在のIPアドレスに対するローカルアドレスであるかを返します。
nyatla 109:18f12ac01097 121 * @param i_inst
nyatla 109:18f12ac01097 122 * 操作するインスタンスです。
nyatla 109:18f12ac01097 123 * @param i_target_ip
nyatla 109:18f12ac01097 124 * 確認するIPアドレスです。
nyatla 109:18f12ac01097 125 * @return
nyatla 109:18f12ac01097 126 * i_target_ipがローカルIPアドレスなら、TRUEを返します。
nyatla 109:18f12ac01097 127 */
nyatla 109:18f12ac01097 128 NyLPC_TBool NyLPC_cIPv4Config_isLocalIP(const NyLPC_TcIPv4Config_t* i_inst,const struct NyLPC_TIPv4Addr* i_target_ip);
nyatla 109:18f12ac01097 129
nyatla 109:18f12ac01097 130 #ifdef __cplusplus
nyatla 109:18f12ac01097 131 }
nyatla 109:18f12ac01097 132 #endif /* __cplusplus */
nyatla 109:18f12ac01097 133
nyatla 109:18f12ac01097 134 #endif
nyatla 109:18f12ac01097 135