1 /*--------------------------------------------------------------------------
2   Project:  Horizon
3   File:     ac_Types.h
4 
5   Copyright 2009 Nintendo.  All rights reserved.
6 
7   These coded instructions, statements, and computer programs contain
8   proprietary information of Nintendo of America Inc. and/or Nintendo
9   Company Ltd., and are protected by Federal copyright law.  They may
10   not be disclosed to third parties or copied or duplicated in any form,
11   in whole or in part, without the prior written consent of Nintendo.
12 
13   $Date:: 2010-10-1#$
14   $Rev: 28042 $
15   $Author: niwa_kazutomo $
16  *-------------------------------------------------------------------------*/
17 #ifndef NN_AC_CTR_AC_TYPES_H_
18 #define NN_AC_CTR_AC_TYPES_H_
19 
20 #include <nn.h>
21 
22 /*!
23  * @brief    接続対象とするAPの種別を示す列挙体です。
24  */
25 typedef enum nnacApType
26 {
27     NN_AC_AP_TYPE_NONE = 0,                             //!< なし
28     NN_AC_AP_TYPE_USER_SETTING_1 = 1 << 0,              //!< ネットワーク設定1
29     NN_AC_AP_TYPE_USER_SETTING_2 = 1 << 1,              //!< ネットワーク設定2
30     NN_AC_AP_TYPE_USER_SETTING_3 = 1 << 2,              //!< ネットワーク設定3
31     NN_AC_AP_TYPE_NINTENDO_WIFI_USB_CONNECTOR = 1 << 3, //!< ニンテンドーWi-Fi USBコネクタ
32     NN_AC_AP_TYPE_NINTENDO_ZONE = 1 << 4,               //!< ニンテンドーゾーン
33     NN_AC_AP_TYPE_WIFI_STATION = 1 << 5,                //!< Wi-Fiステーション
34     NN_AC_AP_TYPE_FREESPOT = 1 << 6,                    //!< FreeSpot
35     NN_AC_AP_TYPE_HOTSPOT = 1 << 7,                     //!< ホットスポット
36 
37     NN_AC_AP_TYPE_ALL = 0x7FFFFFFF                      //!< 全て
38 } nnacApType;
39 
40 /*!
41  * @brief    接続するAPに要求する接続レベルを示す列挙体です。
42  */
43 typedef enum nnacNetworkArea
44 {
45     NN_AC_NETWORK_AREA_WAN = 0,     //!< WAN接続必須
46     NN_AC_NETWORK_AREA_AUTO = 1,    //!< WAN接続推奨。LAN接続でも可
47     NN_AC_NETWORK_AREA_LAN = 2      //!< LAN接続のみで可
48 } nnacNetworkArea;
49 
50 /*!
51  * @brief アクセスポイントの認証方式を示す列挙体です。
52  */
53 typedef enum nnacSecurityMode
54 {
55     NN_AC_OPEN,             //!< オープン認証
56     NN_AC_WEP_40BIT,        //!< WEP 40bit
57     NN_AC_WEP_104BIT,       //!< WEP 104bit
58     NN_AC_WEP_128BIT,       //!< WEP 128bit
59     NN_AC_WPA_TKIP,         //!< WPA TKIP
60     NN_AC_WPA2_TKIP,        //!< WPA2 TKIP
61     NN_AC_WPA_AES,          //!< WPA AES
62     NN_AC_WPA2_AES          //!< WPA2 AES
63 } nnacSecurityMode;
64 
65 /*!
66  * @brief ACの現在の処理ステートを示す列挙体です。
67  */
68 typedef enum nnacStatus
69 {
70     NN_AC_STATUS_NONE = 0,                //!< なし
71     NN_AC_STATUS_IDLE = 1,                //!< 未接続状態
72     NN_AC_STATUS_LAN_CONNECTED = 2,       //!< LAN接続状態
73     NN_AC_STATUS_WAN_CONNECTED = 3,       //!< WAN接続状態
74 
75     NN_AC_STATUS_ACTIVE_SCAN = 100,       //!< 即時接続中
76     NN_AC_STATUS_PASSIVE_SCAN = 101,      //!< 全チャンネルスキャン中
77     NN_AC_STATUS_CONNECT_AP = 102,        //!< AP接続中
78     NN_AC_STATUS_GET_IP_ADDRESS = 103,    //!< IPアドレス取得中
79     NN_AC_STATUS_CONNTEST = 200,          //!< 接続テスト中
80     NN_AC_STATUS_AUTH_HOTSPOT = 201,      //!< ホットスポット認証中
81     NN_AC_STATUS_DISCONNECT_AP = 300      //!< AP切断中
82 } nnacStatus;
83 
84 /*!
85   @brief 通信品質(リンクレベル) を表す列挙型です。
86 */
87 typedef enum nnacLinkLevel
88 {
89     NN_AC_LINK_LEVEL_0 = 0,   //!< 非常に通信品質が悪い、もしくは通信が成立していない
90     NN_AC_LINK_LEVEL_1,       //!< 通信品質が悪い
91     NN_AC_LINK_LEVEL_2,       //!< 通信品質があまり良くない
92     NN_AC_LINK_LEVEL_3        //!< 通信品質がよい
93 } nnacLinkLevel;
94 
95 /*!
96  * @brief 自動接続設定を格納する構造体です。
97  */
98 typedef struct nnacConfig
99 {
100     u8 value[512];
101 } nnacConfig;
102 
103 /*!
104  * @brief ニンテンドーゾーンビーコン情報を格納する構造体です。
105  */
106 typedef struct nnacNintendoZoneBeaconSubset
107 {
108     u8 apnum[10];
109     NN_PADDING2;
110     u8 hotspotname[24];
111 } nnacNintendoZoneBeaconSubset;
112 
113 /*!
114  * @brief ホットスポット情報を格納する構造体です。
115  */
116 typedef struct nnacHotspotSubset
117 {
118     u8 apnum[10];
119     NN_PADDING2;
120     u8 hotspotname[64];
121 } nnacHotspotSubset;
122 
123 #ifdef __cplusplus
124 
125 namespace nn {
126 namespace ac {
127 namespace CTR {
128 
129     /*!
130      * @brief    接続対象とするAPの種別を示す列挙体です。
131      */
132     enum ApType
133     {
134         AP_TYPE_NONE = 0,                             //!< なし
135         AP_TYPE_USER_SETTING_1 = 1 << 0,              //!< ネットワーク設定1
136         AP_TYPE_USER_SETTING_2 = 1 << 1,              //!< ネットワーク設定2
137         AP_TYPE_USER_SETTING_3 = 1 << 2,              //!< ネットワーク設定3
138         AP_TYPE_NINTENDO_WIFI_USB_CONNECTOR = 1 << 3, //!< ニンテンドーWi-Fi USBコネクタ
139         AP_TYPE_NINTENDO_ZONE = 1 << 4,               //!< ニンテンドーゾーン
140         AP_TYPE_WIFI_STATION = 1 << 5,                //!< Wi-Fiステーション
141         AP_TYPE_FREESPOT = 1 << 6,                    //!< FreeSpot
142         AP_TYPE_HOTSPOT = 1 << 7,                     //!< ホットスポット
143 
144         AP_TYPE_ALL = 0x7FFFFFFF                      //!< 全て
145     };
146 
147     /*!
148      * @brief    接続するAPに要求する接続レベルを示す列挙体です。
149      */
150     enum NetworkArea
151     {
152         NETWORK_AREA_WAN = 0,     //!< WAN接続必須
153         NETWORK_AREA_AUTO = 1,    //!< WAN接続推奨。LAN接続でも可
154         NETWORK_AREA_LAN = 2      //!< LAN接続のみで可
155     };
156 
157     /*!
158      * @brief アクセスポイントの認証方式を示す列挙体です。
159      */
160     enum SecurityMode
161     {
162         OPEN,             //!< オープン認証
163         WEP_40BIT,        //!< WEP 40bit
164         WEP_104BIT,       //!< WEP 104bit
165         WEP_128BIT,       //!< WEP 128bit
166         WPA_TKIP,         //!< WPA TKIP
167         WPA2_TKIP,        //!< WPA2 TKIP
168         WPA_AES,          //!< WPA AES
169         WPA2_AES          //!< WPA2 AES
170     };
171 
172     /*!
173      * @brief ACの現在の処理ステートを示す列挙体です。
174      */
175     enum Status
176     {
177         STATUS_NONE = 0,                //!< なし
178         STATUS_IDLE = 1,                //!< 未接続状態
179         STATUS_LAN_CONNECTED = 2,       //!< LAN接続状態
180         STATUS_WAN_CONNECTED = 3,       //!< WAN接続状態
181 
182         STATUS_ACTIVE_SCAN = 100,       //!< 即時接続中
183         STATUS_PASSIVE_SCAN = 101,      //!< 全チャンネルスキャン中
184         STATUS_CONNECT_AP = 102,        //!< AP接続中
185         STATUS_GET_IP_ADDRESS = 103,    //!< IPアドレス取得中
186         STATUS_CONNTEST = 200,          //!< 接続テスト中
187         STATUS_AUTH_HOTSPOT = 201,      //!< ホットスポット認証中
188         STATUS_DISCONNECT_AP = 300      //!< AP切断中
189     };
190 
191     /*!
192       @brief 通信品質(リンクレベル) を表す列挙型です。
193     */
194     enum LinkLevel
195     {
196         LINK_LEVEL_0 = 0,   //!< 非常に通信品質が悪い、もしくは通信が成立していない
197         LINK_LEVEL_1,       //!< 通信品質が悪い
198         LINK_LEVEL_2,       //!< 通信品質があまり良くない
199         LINK_LEVEL_3        //!< 通信品質がよい
200     };
201 
202     /*!
203      * @brief 自動接続設定を格納する構造体です。
204      */
205     typedef nnacConfig Config;
206 
207     /*!
208      * @brief    ニンテンドーゾーンビーコン情報を格納する構造体です。
209      */
210     typedef nnacNintendoZoneBeaconSubset NintendoZoneBeaconSubset;
211 
212     /*!
213      * @brief    ホットスポット情報を格納する構造体です。
214      */
215     typedef nnacHotspotSubset HotspotSubset;
216 
217 } // namespace CTR
218 } // namespace ac
219 } // namespace nn
220 
221 #endif // __cplusplus
222 
223 #endif //NN_AC_CTR_AC_TYPES_H_
224