目次

last update: 2025/01

embOS RTOS用BSPパッケージ
第4章: TCP/IPネットワーク通信
評価ボード:AP-RX65N-0A




テストサンプル

Demo Sample Application Folder:

Application
 └ _Exclude
     ├ IP  ..... TCP/IPネットワーク通信機能のデモサンプル

Windows   .............. テスト用PCツール
 ├ IP   ............... TCP/IPサンプルの動作確認用テストツール

emNet (IP/UDP/TCP/TELNET/TFTP/mDNS/VLAN/HTTPd)

Sample説明
IP_ACD_StartACD(Address Collision Detection)機能の動作を確認します
IP_AUTOIP_StartAutoIPプロトコールを使用してIPアドレスの自動設定を確認します
IP_DHCPServerDHCPサーバー機能の実装方法を示すデモサンプル
IP_DNSClientネットワークホスト名を IP アドレスに解決する方法を示します
IP_MDNS_ServerSamplemDNSサーバー機能の実装方法を示すデモサンプル
IP_NETBIOS_StartNETBIOS Nameサービスクライアント機能を確認します
IP_NonBlockingConnectTCPソケットをノンブロッキングモードで実装します
IP_NTPClientNTPクライアント機能の実装方法を示すデモサンプル
IP_PingネットワークPINGテストでICMPプロトコールの動作を確認します
IP_SendMailSMTPクライアント機能の実装方法を示すデモサンプル
IP_SHELL_StartTELNETサーバー(emNet Shellコンソール)を実装します
IP_SimpleServer簡単なTELNETサーバーを実装します
IP_SNMP_AGENT_StartSNMPエージェントの実装方法を示すデモサンプル
IP_SNTPClientSNTPクライアント機能を使用してNTPサーバーからタイムスタンプを取得します
IP_SpeedClient_TCPTCPデータパケットの送受信速度パフォーマンスを確認できるサンプルプログラム
IP_StartemNet TCP/IPスタックの基本的なスタートアップ手順を示すサンプル
IP_TCP_TasklessServer専用タスク無しで簡単なTELNETサーバー機能を実装します
IP_UDPDiscoverUDPポート経由でターゲットデバイスの情報を確認します
IP_VLAN_StartVLANインターフェースを実装します
IP_TFTPClientSampleTFTPクライアント機能の実装方法を示すデモサンプル
IP_TFTPServerSampleTFTPサーバー機能の実装方法を示すデモサンプル
IP_WebserverSampleHTTPサーバーを実装したデモサンプル

emNet CoAP

Sample説明
IP_COAP_ClientSampleCoAPクライアントの実装方法を示すデモサンプル
IP_COAP_ServerSampleCoAPサーバーの実装方法を示すデモサンプル

emNet MQTT

Sample説明
IP_MQTT_CLIENT_PublisherMQTT クライアントパブリッシャーの実装方法を示すデモサンプル
IP_MQTT_CLIENT_PublisherSubscriber_2TasksMQTT クライアントサブスクライバとパブリッシャー機能を同時に動かします
IP_MQTT_CLIENT_SubscriberMQTT クライアントサブスクライバの実装方法を示すデモサンプル

emNet WebSocket

Sample説明
IP_WEBSOCKET_printf_Clientサーバーにタイムスタンプメッセージを発行する簡単なWEBSOCKETクライアントターミナル
IP_WEBSOCKET_printf_Serverクライアントからタイムスタンプメッセージを受信する簡単なWEBSOCKETサーバートターミナル

emNet FTP

Sample説明
IP_FTPClientSampleFTPクライアントのデモサンプル
IP_FTPServerSampleFTPサーバーのデモサンプル

関連設定ファイル:

BSP
 |- BSP_IP.c  ..................... LANドライバのボード依存の初期化設定ファイル
 |
 |- Setup
     |- IP_Config_RX65N_ETH.c  .... LANドライバインターフェース設定ファイル
     |- IP_FS_emFile.c  ........... ファイルシステムインターフェース設定ファイル
     |- IP_SNMP_AGENT_MIB2_INTERFACES_emNet.c  .... SNMP Agentインターフェース設定ファイル

Config
 |- IP_Conf.h  ............... emNet IPコンフィグレーション設定ファイル
 |- IP_COAP_Conf.h  .......... emNet CoAPコンフィグレーション設定ファイル
 |- IP_MQTT_CLIENT_Conf.h  ... emNet MQTTコンフィグレーション設定ファイル
 |- FTPC_Conf.h  ............. emNet FTPcコンフィグレーション設定ファイル
 |- SMTPC_Conf.h  ............ emNet SMTP Clientコンフィグレーション設定ファイル
 |- IP_FTP_SERVER_Conf.h  .... emNet FTP Serverコンフィグレーション設定ファイル
 |- IP_SNMP_AGENT_Conf.h  .... emNet SNMP Agentコンフィグレーション設定ファイル
 |
 |- IO
 |   |- IP_ConfigIO.c  ....... デバッグコンソールIOインターフェース設定ファイル
 |
 |- OS
 |   |- lib_embOSLayer_RXv2_L.lib  ....... OSインターフェース設定ファイル
 |
 |- SYS   .................... SYS インターフェース設定(ソース・ヘッダ)

デモサンプル関連データ・ファイル:

Config
 └ Webserver
    ├ Webserver_DynContent_2018.c  ....... WEBサーバーデモサンプル用コンテンツ

デモサンプル関連PCツール:

Windows
 └ IP
    ├ COAP_Client  .......... CoAPクライアントのEXEプログラム
    ├ COAP_Server  .......... CoAPサーバーのEXEプログラム
    ├ FTPserver    .......... FTPサーバーのEXEプログラム
    ├ SpeedTestServer  ...... TCP速度パフォーマンスチェック用EXEプログラム
    ├ Webserver
        ├ SDCard  ........... WEBサーバーのデモ用データコンテンツ(HTML、CSS、JSファイル)

ネットワーク設定

File:IP_Config_RX65N_ETH.c

マクロ名説明
ALLOC_SIZEemNetスタック用メモリプールのサイズ(単位:Byte)
TARGET_NAMEDHCPクライアントのターゲット名(設定値:"AP-RX65N-0A")
HW_ADDREthernet MACアドレス
USE_DHCP1:DHCPモードでIPアドレスを自動取得します。
0:マニュアルモード設定、固定IPアドレスを使用します。
IP_ADDRマニュアルモード(DHCP=0)のIPアドレス設定
SUBNET_MASKマニュアルモード(DHCP=0)のサブネットマスクのアドレス設定
GW_ADDRマニュアルモード(DHCP=0)のゲートウエイIPアドレス設定
DNS_ADDRマニュアルモード(DHCP=0)のDNSサーバーのIPアドレス設定

File:BSP_IP.c

マクロ名説明
ETH_INT_PRIORITYLANドライバの割り込み優先度(設定値:3)

ビルド・動作確認方法

プロジェクト設定では「\Application\_Exclude\IP」フォルダはビルド対象外に設定しています。以下のどちらかの方法で動作確認を行うサンプルアプリケーションを選択します。

  1. 「\_Exclude\IP」フォルダ下の対象テストサンプルファイルをビルド対象設定の「\Application」フォルダ下にコピーします。
  2. 「\_Exclude\IP」フォルダ下の対象テストサンプルファイルのみ「ビルド対象外」の設定を解除します。

テスト環境の設定:

評価ボードのLANポートをテスト用パソコンに接続して、TCP/IPネットワーク通信が正常にできることを確認してください。

PC Setup

ネットワーク環境に合わせて評価ボード側のemNetスタックのコンフィグレーション設定を編集してください。

File: BSP\Setup\IP_Config_RX65N_ETH.c

#define USE_DHCP     1    // Use DHCP client or static IP configuration.
//
// The following parameters are only used when the DHCP client is not active.
//
#define IP_ADDR      IP_BYTES2ADDR(192, 168,  11, 252)
#define SUBNET_MASK  IP_BYTES2ADDR(255, 255, 255,   0)
#define GW_ADDR      IP_BYTES2ADDR(192, 168,  11,   1)
#define DNS_ADDR     IP_BYTES2ADDR(192, 168,  11,   1)

各テストアプリケーションの動作確認方法はテストサンプルアプリケーションのヘッダのコメント情報を参照ください。テストサーバーのIPアドレスなどコンフィグレーション設定を編集して動作確認を行います。


テストレポート(TCP/IP)

Sample: IP_Ping

「IP_Ping.c」ファイルにPINGテストサーバーのIPアドレスを設定します。

#define HOST_TO_PING  IP_BYTES2ADDR(192, 168, 1, 4)  // IP addr. of host

Debug IO Console:

SEGGER Software Evaluation Sample
Eval Board: AP-RX65N-0A (RX65N RXv2 @120MHz)
RTOS: SEGGER embOS
------------------------------------------------
0:111 MainTask - INIT: emNet init started. Version 3.52.0
0:112 MainTask - *********************************************************************
0:113 MainTask - *                        emNet Configuration                        *
0:114 MainTask - *********************************************************************
0:115 MainTask - * IP_DEBUG: 2
0:116 MainTask - * Memory added: 49144 bytes
0:117 MainTask - * Buffer configuration:
0:118 MainTask - *   12 buffers of 256 bytes
0:118 MainTask - *   20 buffers of 1516 bytes
0:119 MainTask - * TCP Tx/Rx window size per socket: 11680/8760 bytes
0:120 MainTask - * Number of interfaces added: 1
0:121 MainTask - * Interface #0 configuration:
0:122 MainTask - *   Type: ETH
0:122 MainTask - *   MTU: 1500
0:123 MainTask - *   HW addr.: 00:0C:7B:47:03:BE
0:124 MainTask - *********************************************************************
0:125 MainTask - INIT: Link is down
0:125 MainTask - DRIVER: Found PHY with Id 0x7 at addr 0x0
0:131 MainTask - INIT: Init completed
0:132 IP_Task - INIT: IP_Task started
2:112 IP_Task - LINK: Link state changed: Full duplex, 100MHz
2:113 IP_Task - DHCPc: Sending discover!
2:412 IP_Task - NDP: Link-local IPv6 addr.: FE80:0000:0000:0000:020C:7BFF:FE47:03BE added to IFace: 0
2:417 IP_Task - NDP: IPv6 addr.: 2400:4050:A0E0:1F00:020C:7BFF:FE47:03BE added to IFace: 0
3:358 IP_Task - DHCPc: IFace 0: Offer: IP: 192.168.1.11, Mask: 255.255.255.0, GW: 192.168.1.1.
4:112 IP_Task - DHCPc: IP addr. checked, no conflicts
4:113 IP_Task - DHCPc: Sending Request.
4:132 IP_Task - DHCPc: IFace 0: Using IP: 192.168.1.11, Mask: 255.255.255.0, GW: 192.168.1.1.
4:333 MainTask - Sending PING to IP addr. 192.168.1.4 .
4:533 MainTask - Sending PING to IP addr. 192.168.1.4 .
4:698 IP_Task - ICMP echo reply received!
4:699 IP_Task - ICMP echo reply received!
4:733 MainTask - Sending PING to IP addr. 192.168.1.4 .
4:735 IP_Task - ICMP echo reply received!
4:933 MainTask - Sending PING to IP addr. 192.168.1.4 .
5:000 IP_Task - ICMP echo reply received!
5:133 MainTask - Sending PING to IP addr. 192.168.1.4 .
5:136 IP_Task - ICMP echo reply received!
5:333 MainTask - Sending PING to IP addr. 192.168.1.4 .
5:335 IP_Task - ICMP echo reply received!
5:533 MainTask - Sending PING to IP addr. 192.168.1.4 .
5:616 IP_Task - ICMP echo reply received!
5:733 MainTask - Sending PING to IP addr. 192.168.1.4 .
5:819 IP_Task - ICMP echo reply received!

Sample: IP_SimpleServer

パソコンからTeraTermなどのTELNETクライエントプログラムからターゲットボードにアクセスします。コンソールから文字入力するとシステムタイムが表示されます。

Telnet Test

Debug IO Console:

4:012 IP_Task - DHCPc: IFace 0: Using IP: 192.168.1.11, Mask: 255.255.255.0, GW: 192.168.1.1.
93:686 Telnet server - New IPv4 client accepted.
98:771 Telnet server - recv() timeout after 5 seconds of inactivity!
98:772 Telnet server - Disconnecting client.
128:224 Telnet server - New IPv4 client accepted.
133:350 Telnet server - recv() timeout after 5 seconds of inactivity!
133:351 Telnet server - Disconnecting client.

Sample: IP_DNSClient

「segger.com」のIPアドレスを取得します。
File:IP_DNSClient.c

#define HOST_NAME  "segger.com"

Debug IO Console:

4:013 IP_Task - DHCPc: IFace 0: Using IP: 192.168.1.11, Mask: 255.255.255.0, GW: 192.168.1.1.
5:280 DNSClient - IP addr. 195.122.144.65 resolved from host name "segger.com".
6:281 DNSClient - IP addr. 195.122.144.65 resolved from host name "segger.com".
7:282 DNSClient - IP addr. 195.122.144.65 resolved from host name "segger.com".

Sample: IP_SNTPClient

NTPサーバーから日付時刻情報を取得します。
File:IP_SNTPClient.c

#define NTP_SERVER  "us.pool.ntp.org"

Debug IO Console:

4:018 IP_Task - DHCPc: IFace 0: Using IP: 192.168.1.11, Mask: 255.255.255.0, GW: 192.168.1.1.
4:026 SNTPClient - Requesting time stamp from us.pool.ntp.org:
5:481 SNTPClient - Timestamp received: 3946421633 seconds passed since January 1st 1900.

Sample: IP_NTPClient

NTPサーバーから日付時刻情報(UTC)を取得します。

Debug IO Console:

4:012 IP_Task - DHCPc: IFace 0: Using IP: 192.168.1.11, Mask: 255.255.255.0, GW: 192.168.1.1.
9:026 NTPClient - --- UTC time: 2025.01.21  04:15:40 ---
14:026 NTPClient - --- UTC time: 2025.01.21  04:15:45 ---
19:026 NTPClient - --- UTC time: 2025.01.21  04:15:50 ---
24:027 NTPClient - --- UTC time: 2025.01.21  04:15:55 ---
29:027 NTPClient - --- UTC time: 2025.01.21  04:16:00 ---
34:028 NTPClient - --- UTC time: 2025.01.21  04:16:05 ---
39:029 NTPClient - --- UTC time: 2025.01.21  04:16:10 ---

Sample: IP_SpeedClient_TCP

パソコン側に「SpeedTestServer.exe」サーバープログラムを起動して評価ボードのTCP速度パフォーマンスを確認します。
LAN HUB: NETGEAR 100Mbps

File: IP_SpeedClient_TCP.c (サーバーIPアドレス設定)

#define   SERVER_IP_ADDR          IP_BYTES2ADDR(192, 168, 1, 4)

Debug IO Console:

4:004 IP_Task - DHCPc: Sending Request.
4:013 IP_Task - DHCPc: IFace 0: Using IP: 192.168.1.11, Mask: 255.255.255.0, GW: 192.168.1.1.
4:403 Client - 4194304 Bytes received (without headers) in 377 ms.
4:404 Client - 4659730 Bytes received (with headers) in 377 ms.
4:405 Client - Average transfer speed (without headers): 11125000 Bytes/s
4:406 Client - Average transfer speed (with headers): 12360000 Bytes/s

4:820 Client - 4194304 Bytes sent (without headers) in 411 ms.
4:821 Client - 4659730 Bytes sent (with headers) in 411 ms.
4:822 Client - Average transfer speed (without headers): 10205000 Bytes/s
4:823 Client - Average transfer speed (with headers): 11337000 Bytes/s

5:241 Client - 4194304 Bytes received (without headers) in 367 ms.
5:242 Client - 4659406 Bytes received (with headers) in 367 ms.
5:243 Client - Average transfer speed (without headers): 11428000 Bytes/s
5:244 Client - Average transfer speed (with headers): 12695000 Bytes/s

5:657 Client - 4194304 Bytes sent (without headers) in 411 ms.
5:658 Client - 4659730 Bytes sent (with headers) in 411 ms.
5:659 Client - Average transfer speed (without headers): 10205000 Bytes/s
5:660 Client - Average transfer speed (with headers): 11337000 Bytes/s

テストレポート(MQTT)

Sample: IP_MQTT_CLIENT_Publisher

「test.mosquitto.org」MQTTブローカーに接続してテストを行います。
File:IP_MQTT_CLIENT_Publisher.c

#define MQTT_BROKER_ADDR         "test.mosquitto.org"
#define MQTT_BROKER_PORT         1883
#define TOPIC_PUBLISH_QOS        IP_MQTT_CLIENT_FLAGS_PUBLISH_QOS2
#define MQTT_CLIENT_NAME         "eMQTT_Pub"
#define TOPIC_FILTER_TO_PUBLISH  "eMQTT"
#define PAYLOAD                  "www.SEGGER.com MQTT_HelloWorld_Sample"

Debug IO Console:

4:023 IP_Task - DHCPc: IFace 0: Using IP: 192.168.1.11, Mask: 255.255.255.0, GW: 192.168.1.1.
4:843 MainTask - APP: Connected to 5.196.78.28, port 1883.
5:607 MainTask - APP: --------
5:608 MainTask - APP: Message No. 1:
5:608 MainTask - APP:   Topic  : "eMQTT"
5:609 MainTask - APP:   Payload: "www.SEGGER.com MQTT_HelloWorld_Sample"
7:129 MainTask - APP: --------
7:130 MainTask - APP: Message No. 2:
7:130 MainTask - APP:   Topic  : "eMQTT"
7:131 MainTask - APP:   Payload: "www.SEGGER.com MQTT_HelloWorld_Sample"
8:627 MainTask - APP: --------
8:627 MainTask - APP: Message No. 3:
8:628 MainTask - APP:   Topic  : "eMQTT"
8:628 MainTask - APP:   Payload: "www.SEGGER.com MQTT_HelloWorld_Sample"
10:127 MainTask - APP: --------
10:127 MainTask - APP: Message No. 4:
10:128 MainTask - APP:   Topic  : "eMQTT"
10:129 MainTask - APP:   Payload: "www.SEGGER.com MQTT_HelloWorld_Sample"
11:629 MainTask - APP: --------
11:630 MainTask - APP: Message No. 5:
11:630 MainTask - APP:   Topic  : "eMQTT"
11:631 MainTask - APP:   Payload: "www.SEGGER.com MQTT_HelloWorld_Sample"

Sample: IP_MQTT_CLIENT_Subscriber

「test.mosquitto.org」MQTTブローカーに接続してテストを行います。
File:IP_MQTT_CLIENT_Subscriber.c

#define MQTT_BROKER_ADDR         "test.mosquitto.org"
#define MQTT_BROKER_PORT         1883
#define TOPIC_SUBSCRIBE_QOS           IP_MQTT_CLIENT_FLAGS_PUBLISH_QOS1
#define MQTT_CLIENT_NAME              "eMQTT_Sub"
#define TOPIC_FILTER_TO_SUBSCRIBE     "eMQTT"

Debug IO Console:

4:012 IP_Task - DHCPc: IFace 0: Using IP: 192.168.1.11, Mask: 255.255.255.0, GW: 192.168.1.1.
6:313 MainTask - APP: Connected to 5.196.78.28, port 1883.
6:570 MainTask - APP: Received Property IP_MQTT_PROP_TYPE_TOPIC_ALIAS_MAXIMUM for CONNACK with PacketID 0.
6:571 MainTask - APP: Received Property IP_MQTT_PROP_TYPE_RECEIVE_MAXIMUM for CONNACK with PacketID 0.
6:824 MainTask - APP: Message (Type: SUBACK, Id: 6572) received. Reason Code: IP_MQTT_REASON_SUCCESS.
6:825 MainTask - APP: ----
98:251 MainTask - IP_MQTT_CLIENT_Exec: Connection gracefully closed by peer.
98:252 MainTask - _Disconnect: closing socket 1
98:253 MainTask - APP: Done.
108:506 MainTask - APP: Connected to 5.196.78.28, port 1883.
108:755 MainTask - APP: Received Property IP_MQTT_PROP_TYPE_TOPIC_ALIAS_MAXIMUM for CONNACK with PacketID 0.
108:756 MainTask - APP: Received Property IP_MQTT_PROP_TYPE_RECEIVE_MAXIMUM for CONNACK with PacketID 0.
109:013 MainTask - APP: Message (Type: SUBACK, Id: 43221) received. Reason Code: IP_MQTT_REASON_SUCCESS.
109:014 MainTask - APP: ----
199:396 MainTask - IP_MQTT_CLIENT_Exec: Connection gracefully closed by peer.
199:397 MainTask - _Disconnect: closing socket 2
199:398 MainTask - APP: Done.
209:884 MainTask - APP: Connected to 5.196.78.28, port 1883.
210:136 MainTask - APP: Received Property IP_MQTT_PROP_TYPE_TOPIC_ALIAS_MAXIMUM for CONNACK with PacketID 0.
210:137 MainTask - APP: Received Property IP_MQTT_PROP_TYPE_RECEIVE_MAXIMUM for CONNACK with PacketID 0.
210:386 MainTask - APP: Message (Type: SUBACK, Id: 13530) received. Reason Code: IP_MQTT_REASON_SUCCESS.
210:387 MainTask - APP: ----
301:374 MainTask - IP_MQTT_CLIENT_Exec: Connection gracefully closed by peer.
301:375 MainTask - _Disconnect: closing socket 3
301:376 MainTask - APP: Done.
311:628 MainTask - APP: Connected to 5.196.78.28, port 1883.
311:887 MainTask - APP: Received Property IP_MQTT_PROP_TYPE_TOPIC_ALIAS_MAXIMUM for CONNACK with PacketID 0.
311:888 MainTask - APP: Received Property IP_MQTT_PROP_TYPE_RECEIVE_MAXIMUM for CONNACK with PacketID 0.
312:154 MainTask - APP: Message (Type: SUBACK, Id: 49745) received. Reason Code: IP_MQTT_REASON_SUCCESS.
312:155 MainTask - APP: ----

テストレポート(CoAP)

Sample: IP_COAP_ClientSample

サーバーPC側に「COAP_Server.exe」プログラムを実行して、ターゲット側のプログラムを起動します。

File: IP_COAP_ClientSample.c (サーバーのIPアドレス設定)

#define COAP_PORT     IP_COAP_DEFAULT_PORT
#define COAP_SERVER   "192.168.1.4"

Debug IO Console:

4:012 IP_Task - DHCPc: IFace 0: Using IP: 192.168.1.11, Mask: 255.255.255.0, GW: 192.168.1.1.
4:026 MainTask - 
Test 0: Sending PING
4:028 MainTask - Test 0: Success!
4:028 MainTask - 
Test 1: Sending Discover
4:047 MainTask - /obs: Simple observable data.
/test: test entry
/separate: simple variable with GET with LATE reply
/BlockTransfer/ObsData: Observable data block.
/ObsSensor: 
4:048 MainTask - Test 1: Success!
4:050 MainTask - 
Test 2: Sending GET separate
4:560 MainTask - 
  00:00:00
4:560 MainTask - Test 2: Success!
4:561 MainTask - 
Test 3: Sending NON GET block of 16 bytes
4:562 MainTask - 
  Test data
4:563 MainTask - Test 3: Success!
4:563 MainTask - 
Test 4: PUT test
4:565 MainTask - Test 4: Success!
4:565 MainTask - 
Test 5: PUT that should fail
4:566 MainTask - received error: 4.05
4:567 MainTask - Test 5: Success!
4:568 MainTask - 
Test 6: DELETE test
4:569 MainTask - Test 6: Success!
4:569 MainTask - 
Test 7: POST test
4:571 MainTask - Test 7: Success!
4:572 MainTask - 
Test 8: Observe
4:574 MainTask - 
  Obs data
4:574 MainTask - 
  GET 1 from Observe completed
14:742 MainTask - 
  Obs data
14:742 MainTask - 
  GET 2 from Observe completed
24:898 MainTask - 
  Obs data
24:898 MainTask - 
  GET 3 from Observe completed
35:009 MainTask - 
  Obs data
35:010 MainTask - 
  GET 4 from Observe completed
45:186 MainTask - 
  Obs data
45:186 MainTask - 
  GET 5 from Observe completed
45:187 MainTask - Test 8: Success!

Sample: IP_COAP_ServerSample

ターゲット側にCoAPサーバーを実行して、CoApクライエントから接続して操作を確認します。

Debug IO Console:

4:012 IP_Task - DHCPc: IFace 0: Using IP: 192.168.1.11, Mask: 255.255.255.0, GW: 192.168.1.1.
404:765 MainTask - Getting with LATE reply.
404:767 MainTask - Getting with LATE reply.
404:768 MainTask - Getting Test.
404:769 MainTask - Putting Test.
404:770 MainTask - Putting Test.
404:771 MainTask - Deleting Test.
404:772 MainTask - Putting Test.
404:773 MainTask - Putting Test.
404:774 MainTask - Getting Observer.
414:774 MainTask - Getting Observer.
424:775 MainTask - Getting Observer.
434:776 MainTask - Getting Observer.
444:777 MainTask - Getting Observer.
444:778 MainTask - Getting Observer.

テストレポート(WebSocket)

Sample: IP_WEBSOCKET_printf_Client

File: IP_WEBSOCKET_printf_Client.c (サーバーIPアドレス設定)

//
// WebSocket sample configuration.
//
#define SERVER_HOST      "192.168.1.14"   // Host to connect to.

Debug IO Console:

4:016 IP_Task - DHCPc: IFace 0: Using IP: 192.168.1.11, Mask: 255.255.255.0, GW: 192.168.1.1.
4:024 WebSocketClient - APP: Connected to 192.168.1.14:8181.

4:026 WebSocketClient - WebSocket successfully opened.

Sample: IP_WEBSOCKET_printf_Server

ターゲット側に「IP_WEBSOCKET_printf_Server」プログラムを実行して、別のターゲットから「IP_WEBSOCKET_printf_Client」プログラムを動かしてサーバー機能を確認します。

Debug IO Console:

4:013 IP_Task - DHCPc: IFace 0: Using IP: 192.168.1.11, Mask: 255.255.255.0, GW: 192.168.1.1.
12:819 WebSocketServer - WebSocket client connected.

13:819 WebSocketServer - Client: OS time: 6025

15:012 WebSocketServer - Client: OS time: 7218

16:203 WebSocketServer - Client: OS time: 8409

17:392 WebSocketServer - Client: OS time: 9599

18:582 WebSocketServer - Client: OS time: 10789

19:772 WebSocketServer - Client: OS time: 11979

20:963 WebSocketServer - Client: OS time: 13170

テストレポート(FTP Server/Client)

Sample: IP_FTPServerSample

評価ボードにSDカードを差し込んで、「IP_FTPServerSample」プログラムを実行します。テストPCからFTPクライエントプログラム(WindowsプロンプトからFTPコマンドなど)各FTPコマンド・機能を確認します。

Windows PCコマンドコンソール:

C:\Shared>ftp 192.168.1.11
192.168.1.11 に接続しました。
220 Welcome to emFTP server
530 Not logged in.
ユーザー (192.168.1.11:(none)): Admin
331 Password required.
パスワード:

230 User logged in, proceed.
ftp> put MyData.hex
200 Command okay.
150 File status okay; about to open data connection.
226 Closing data connection. Requested file action successful.
ftp: 4833045 バイトが送信されました 1.95秒 2477.21KB/秒。
ftp> put TestFile.bin
200 Command okay.
150 File status okay; about to open data connection.
226 Closing data connection. Requested file action successful.
ftp: 122880 バイトが送信されました 0.05秒 2560.00KB/秒。
ftp> ls
200 Command okay.
150 File status okay; about to open data connection.
MyData.hex
TestFile.bin
226 Closing data connection. Requested file action successful.
ftp: 29 バイトが受信されました 0.05秒 0.62KB/秒。
ftp> dir
200 Command okay.
150 File status okay; about to open data connection.
-rw-r--r--   1 root root 4833045 Sep 10  2024 MyData.hex
-rw-r--r--   1 root root 122880 Sep 10  2024 TestFile.bin
226 Closing data connection. Requested file action successful.
ftp: 120 バイトが受信されました 0.04秒 2.79KB/秒。
ftp> get MyData.hex newdat.hex
200 Command okay.
150 File status okay; about to open data connection.
226 Closing data connection. Requested file action successful.
ftp: 4833045 バイトが受信されました 1.84秒 2619.54KB/秒。
ftp> mkdir test1
257 "/test1" Directory successfully created.
ftp> cd test1
250 Directory changed to /test1/
ftp> put newdat.hex
200 Command okay.
150 File status okay; about to open data connection.
226 Closing data connection. Requested file action successful.
ftp: 4833045 バイトが送信されました 2.33秒 2076.05KB/秒。
ftp> dir
200 Command okay.
150 File status okay; about to open data connection.
drw-r--r--   1 root root 0 Sep 10  2024 .
drw-r--r--   1 root root 0 Sep 10  2024 ..
-rw-r--r--   1 root root 4833045 Sep 10  2024 newdat.hex
226 Closing data connection. Requested file action successful.
ftp: 148 バイトが受信されました 0.04秒 3.44KB/秒。
ftp> cd ..
200 CDUP command successful.
ftp> dir
200 Command okay.
150 File status okay; about to open data connection.
-rw-r--r--   1 root root 4833045 Sep 10  2024 MyData.hex
-rw-r--r--   1 root root 122880 Sep 10  2024 TestFile.bin
drw-r--r--   1 root root 0 Sep 10  2024 test1
226 Closing data connection. Requested file action successful.
ftp: 167 バイトが受信されました 0.04秒 4.17KB/秒。
ftp> quit
221 Goodbye

C:\Shared>

Sample: IP_FTPClientSample

サーバーPC側に「C:\ftp」フォルダ下のデータをすべて削除して、「FTPServer.exe」プログラムを実行します。評価ボードにSDカードを差し込んで、「IP_FTPClientSample」プログラムを実行します。デバッグコンソールのFTPクライエントの操作ログを確認します

Debug IO Console:

4:063 IP_Task - DHCPc: IFace 0: Using IP: 192.168.1.11, Mask: 255.255.255.0, GW: 192.168.1.1.
4:075 FTP client - APP: Connect to server "Admin@192.168.1.10:21".
4:078 FTP client - APP: Connected to 192.168.1.10, port 21.
4:085 FTP client - APP: Creating directory "Test".
4:087 FTP client - APP: --- Test with old API that needs to CWD into the directory to operate within.
4:088 FTP client - APP: Changing to directory "/Test/".
4:090 FTP client - APP: List directory (before upload):
4:093 FTP client - APP: Connected to 192.168.1.10, port 65055.
4:096 FTP client - drw-r--r--   1 root root 0 Jan 22  2025 .
drw-r--r--   1 root root 0 Jan 22  2025 ..

4:097 FTP client - APP: Uploading "Readme.txt".
4:146 FTP client - APP: Connected to 192.168.1.10, port 65056.
4:204 FTP client - APP: List directory (after upload):
4:207 FTP client - APP: Connected to 192.168.1.10, port 65057.
4:209 FTP client - drw-r--r--   1 root root 0 Jan 22  2025 .
drw-r--r--   1 root root 0 Jan 22  2025 ..
-rw-r--r--   1 root root 76 Jan 22  2025 Readme.txt

4:210 FTP client - APP: Deleting "Readme.txt".
4:212 FTP client - APP: List directory (after delete):
4:214 FTP client - APP: Connected to 192.168.1.10, port 65058.
4:216 FTP client - drw-r--r--   1 root root 0 Jan 22  2025 .
drw-r--r--   1 root root 0 Jan 22  2025 ..

4:217 FTP client - APP: Changing to parent directory.
4:219 FTP client - APP: --- Test with new API using IP_FTPC_CMD_CONFIG that can operate regardless of current directory.
4:220 FTP client - APP: List directory (before upload, old API with path parameter):
4:223 FTP client - APP: Connected to 192.168.1.10, port 65059.
4:227 FTP client - drw-r--r--   1 root root 0 Jan 22  2025 .
drw-r--r--   1 root root 0 Jan 22  2025 ..

4:228 FTP client - APP: Uploading "Readme.txt" to "/Test/Test.txt" (new API).
4:234 FTP client - APP: Connected to 192.168.1.10, port 65060.
4:288 FTP client - APP: List directory (after upload, new API):
4:291 FTP client - APP: Connected to 192.168.1.10, port 65061.
4:294 FTP client - drw-r--r--   1 root root 0 Jan 22  2025 .
drw-r--r--   1 root root 0 Jan 22  2025 ..
-rw-r--r--   1 root root 76 Jan 22  2025 Test.txt

4:295 FTP client - APP: Deleting "/Test/Test.txt" (new API).
4:298 FTP client - APP: List directory (after delete, new API):
4:301 FTP client - APP: Connected to 192.168.1.10, port 65062.
4:304 FTP client - drw-r--r--   1 root root 0 Jan 22  2025 .
drw-r--r--   1 root root 0 Jan 22  2025 ..

4:305 FTP client - APP: Delete directory "/Test/" (new API).
4:307 FTP client - APP: Done.

テストレポート(SNMP Agent)

「IP_SNMP_AGENT_Start.c」SNMP Agentプログラムを実行します。
テストサンプルで使用するMIB OID値 → "1.3.6.1.4.1.46410"
OID Path = "iso(1).org(3).dod(6).internet(1).private(4).enterprise(1).ENCODED(46410)"
※ ID「46410」はSEGGERの登録PEN(Private Enterprise Number)です。

File:IP_SNMP_AGENT_Start.c

#define PRIVATE_ENTERPRISE_NUMBER     46410
#define MESSAGE_PORT                  161
#define TRAP_INFORM_PORT              162
#define PUBLIC_COMMUNITY_STRING       "public"
#define PRIVATE_COMMUNITY_STRING      "Segger"
#define AUTH_PASSWORD                 "AUTHpass"
#define PRIV_PASSWORD                 "PRIVpass"

SNMP Agentプログラムの動作確認にPC側に「Net-SNMP」ツールセット(V5.5)を使用しています。
「snmpset」コマンドを使用してボードのテストサンプルのLEDの設定を確認します。
snmpset -v2c -c Segger 1.3.6.1.4.1.46410.1 i 0

LED1:ON, LED2:ON, LED2:OFF, LED3:ON, LED5:ON操作のコマンド事例:

C:\usr\bin>snmpset -v2c -c Segger 192.168.1.11 1.3.6.1.4.1.46410.1 i 1
SNMPv2-SMI::enterprises.46410.1 = INTEGER: 1

C:\usr\bin>snmpset -v2c -c Segger 192.168.1.11 1.3.6.1.4.1.46410.2 i 1
SNMPv2-SMI::enterprises.46410.2 = INTEGER: 1

C:\usr\bin>snmpset -v2c -c Segger 192.168.1.11 1.3.6.1.4.1.46410.2 i 0
SNMPv2-SMI::enterprises.46410.2 = INTEGER: 0

C:\usr\bin>snmpset -v2c -c Segger 192.168.1.11 1.3.6.1.4.1.46410.3 i 1
SNMPv2-SMI::enterprises.46410.3 = INTEGER: 1

C:\usr\bin>snmpset -v2c -c Segger 192.168.1.11 1.3.6.1.4.1.46410.5 i 1
SNMPv2-SMI::enterprises.46410.5 = INTEGER: 1

「snmpbulkget」コマンドでボードのテストサンプルのLEDステータスを読み出します。
snmpbulkget -v2c -c public -Cn1 -Cr9 1.3.6.1.4.1.46410 1.3.6.1.4.1.46410.0

コマンド事例:

C:\usr\bin>snmpbulkget -v2c -c public -Cn1 -Cr9 192.168.1.11 1.3.6.1.4.1.46410 1.3.6.1.4.1.46410.0
SNMPv2-SMI::enterprises.46410.0 = INTEGER: 21
SNMPv2-SMI::enterprises.46410.1 = INTEGER: 1
SNMPv2-SMI::enterprises.46410.2 = INTEGER: 0
SNMPv2-SMI::enterprises.46410.3 = INTEGER: 1
SNMPv2-SMI::enterprises.46410.4 = INTEGER: 0
SNMPv2-SMI::enterprises.46410.5 = INTEGER: 1
SNMPv2-SMI::enterprises.46410.6 = INTEGER: 0
SNMPv2-SMI::enterprises.46410.7 = INTEGER: 0
SNMPv2-SMI::enterprises.46410.8 = INTEGER: 0
SNMPv2-SMI::enterprises.46410.8 = No more variables left in this MIB View (It is past the end of the MIB tree)

C:\usr\bin>

テストレポート(WEB Server)

PCから「Windows\IP\Webserver\SDCard」フォルダ下のすべてのデータコンテンツ(HTML、CSS、JS、画像データ)をSDカードのルートディレクトリにコピーします。SDカードを評価ボードに差し込んで、「IP_WebserverSample」プログラムを実行します。

Windows
 └ IP
    ├ Webserver
        ├ SDCard  ........... WEBサーバーのデモ用データコンテンツ(HTML、CSS、JS)

IDEのログコンソールから評価ボードのネットワークIPアドレスを確認して、テストPCのWEBブラウザから評価ボードのWEBサーバにアクセスします。

http://192.168.1.11/

セキュアモードHTTPアクセス

https://192.168.1.11/
Webserver ToppageWebserver Stat
前の章

FAT32 ファイルシステム

次の章

HTTPクライアント、JSONパーサー