目次

last update: 2025/01

OSレス環境用BSPパッケージ
第3章: TCP/IPネットワーク通信
評価ボード:AP-RX65N-0A




テストサンプル

Demo Sample Application Folder:

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

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

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

emNet CoAP

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

emNet MQTT

Sample説明
IP_MQTT_CLIENT_PublisherMQTT クライアントパブリッシャーの実装方法を示すデモサンプル
IP_MQTT_CLIENT_SubscriberMQTT クライアントサブスクライバの実装方法を示すデモサンプル

emNet FTP

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

関連設定ファイル:

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

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コンフィグレーション設定ファイル
 |
 |- IO
 |   |- IP_ConfigIO.c  ....... デバッグコンソールIOインターフェース設定ファイル
 |
 |- OS
 |   |- libNo_OSLayer_RXv2_L.lib  ....... OSインターフェース設定ファイル
 |
 |- SYS   .................... SYS インターフェース設定(ソース・ヘッダ)

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

Windows
 └ IP
    ├ COAP_Server  .......... CoAPサーバーのEXEプログラム
    ├ FTPserver    .......... FTPサーバーのEXEプログラム
    ├ SpeedTestServer  ...... TCP速度パフォーマンスチェック用EXEプログラム

ネットワーク設定

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)
Base: Baremetal (No RTOS)
------------------------------------------------
0:103 emNet - INIT: emNet init started. Version 3.52.0
0:104 emNet - *********************************************************************
0:105 emNet - *                        emNet Configuration                        *
0:107 emNet - *********************************************************************
0:108 emNet - * IP_DEBUG: 2
0:108 emNet - * Memory added: 49152 bytes
0:109 emNet - * Buffer configuration:
0:110 emNet - *   12 buffers of 256 bytes
0:111 emNet - *   20 buffers of 1516 bytes
0:111 emNet - * TCP Tx/Rx window size per socket: 11680/8760 bytes
0:112 emNet - * Number of interfaces added: 1
0:112 emNet - * Interface #0 configuration:
0:113 emNet - *   Type: ETH
0:114 emNet - *   MTU: 1500
0:114 emNet - *   HW addr.: 00:0C:7B:47:03:BE
0:115 emNet - *********************************************************************
0:116 emNet - INIT: Link is down
0:117 emNet - DRIVER: Found PHY with Id 0x7 at addr 0x0
0:123 emNet - INIT: Init completed
5:104 emNet - LINK: Link state changed: Full duplex, 100MHz
5:105 emNet - DHCPc: Sending discover!
5:404 emNet - NDP: Link-local IPv6 addr.: FE80:0000:0000:0000:020C:7BFF:FE47:03BE added to IFace: 0
7:023 emNet - DHCPc: IFace 0: Offer: IP: 192.168.1.11, Mask: 255.255.255.0, GW: 192.168.1.1.
7:104 emNet - DHCPc: IP addr. checked, no conflicts
7:105 emNet - DHCPc: Sending Request.
7:119 emNet - DHCPc: IFace 0: Using IP: 192.168.1.11, Mask: 255.255.255.0, GW: 192.168.1.1.
7:595 emNet - NDP: IPv6 addr.: 2400:4050:A0E0:1F00:020C:7BFF:FE47:03BE added to IFace: 0
8:163 emNet - Sending PING to IP addr. 192.168.1.4 .
8:359 emNet - ICMP echo reply received!
9:164 emNet - Sending PING to IP addr. 192.168.1.4 .
9:379 emNet - ICMP echo reply received!
10:165 emNet - Sending PING to IP addr. 192.168.1.4 .
10:408 emNet - ICMP echo reply received!
11:166 emNet - Sending PING to IP addr. 192.168.1.4 .
11:223 emNet - ICMP echo reply received!
12:167 emNet - Sending PING to IP addr. 192.168.1.4 .
12:245 emNet - ICMP echo reply received!
13:168 emNet - Sending PING to IP addr. 192.168.1.4 .
13:269 emNet - ICMP echo reply received!
14:169 emNet - Sending PING to IP addr. 192.168.1.4 .
14:191 emNet - ICMP echo reply received!
15:170 emNet - Sending PING to IP addr. 192.168.1.4 .
15:215 emNet - ICMP echo reply received!
16:171 emNet - Sending PING to IP addr. 192.168.1.4 .

Sample: IP_DNSClient

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

#define HOST_NAME  "segger.com"

Debug IO Console:

4:024 emNet - DHCPc: IFace 0: Using IP: 192.168.1.11, Mask: 255.255.255.0, GW: 192.168.1.1.
5:323 emNet - IP addr. 195.122.144.65 resolved from host name "segger.com".
6:325 emNet - IP addr. 195.122.144.65 resolved from host name "segger.com".
7:327 emNet - 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 emNet - DHCPc: IFace 0: Using IP: 192.168.1.11, Mask: 255.255.255.0, GW: 192.168.1.1.
4:054 emNet - Requesting time stamp from us.pool.ntp.org:
4:219 emNet - Timestamp received: 3946690368 seconds passed since January 1st 1900.

Sample: IP_NTPClient

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

Debug IO Console:

4:023 emNet - DHCPc: IFace 0: Using IP: 192.168.1.11, Mask: 255.255.255.0, GW: 192.168.1.1.
9:055 emNet - --- UTC time: 2025.01.24  06:57:17 ---
14:060 emNet - --- UTC time: 2025.01.24  06:57:22 ---
19:054 emNet - --- UTC time: 2025.01.24  06:57:27 ---
24:059 emNet - --- UTC time: 2025.01.24  06:57:32 ---
29:064 emNet - --- UTC time: 2025.01.24  06:57:37 ---
34:058 emNet - --- UTC time: 2025.01.24  06:57:42 ---
39:063 emNet - --- UTC time: 2025.01.24  06:57:47 ---

Sample: IP_TCP_TasklessServer

「IP_TCP_TasklessServer.c」プログラムを実行してボード側に非タスクモードでTELNETサーバーを実装します。テストPCからTELNETクライエントコマンドを実行して接続を確認します。サンプルプログラムは接続後にTELNETクライエントに「Hello and goodbye...」メッセージを送信して切断します。

パソコン側のDOSプロンプト:

C:\>telnet 192.168.1.12
Hello and goodbye...
C:\>telnet 192.168.1.12
Hello and goodbye...

Debug IO Console:

4:013 emNet - DHCPc: IFace 0: Using IP: 192.168.1.11, Mask: 255.255.255.0, GW: 192.168.1.1.
61:495 emNet - New connection accepted for server on local port 23.
74:626 emNet - New connection accepted for server on local port 23.

Sample: IP_NonBlockingConnect

File: IP_NonBlockingConnect.c (パソコンテストサーバーのIPアドレス設定)

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

パソコン側「SpeedTestServer.exe」ツールを実行します。

Windows
 └ IP
    ├ SpeedTestServer
        ├ SpeedTestServer.exe  ..... TCPテストサーバーサンプル

パソコン側「SpeedTestServer.exe」のコンソール:

TCP/IP Echo server V1.00.00.
Compiled 11:26:58 on Sep 29 2023.
Waiting for client on port 1234
2025-01-24 16:10:21 : Client connected

2025-01-24 16:10:21 : Client disconnected
2025-01-24 16:10:24 : Client connected

2025-01-24 16:10:24 : Client disconnected
2025-01-24 16:10:26 : Client connected

2025-01-24 16:10:27 : Client disconnected
2025-01-24 16:10:29 : Client connected

2025-01-24 16:10:29 : Client disconnected
2025-01-24 16:10:31 : Client connected

2025-01-24 16:10:32 : Client disconnected
2025-01-24 16:10:34 : Client connected

2025-01-24 16:10:34 : Client disconnected
2025-01-24 16:10:36 : Client connected

Debug IO Console:

4:013 emNet - DHCPc: IFace 0: Using IP: 192.168.1.11, Mask: 255.255.255.0, GW: 192.168.1.1.
4:054 emNet - Connecting using non-blocking socket...
4:390 emNet - Succesfully connected after 336ms and 169 loops!
4:892 emNet - 1 of 1 tries were successful.

6:893 emNet - Connecting using non-blocking socket...
7:251 emNet - Succesfully connected after 358ms and 180 loops!
7:753 emNet - 2 of 2 tries were successful.

9:754 emNet - Connecting using non-blocking socket...
9:811 emNet - Succesfully connected after 56ms and 29 loops!
10:313 emNet - 3 of 3 tries were successful.

12:314 emNet - Connecting using non-blocking socket...
12:350 emNet - Succesfully connected after 36ms and 19 loops!
12:852 emNet - 4 of 4 tries were successful.

14:853 emNet - Connecting using non-blocking socket...
14:873 emNet - Succesfully connected after 20ms and 11 loops!
15:375 emNet - 5 of 5 tries were successful.

テストレポート(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:013 emNet - DHCPc: IFace 0: Using IP: 192.168.1.11, Mask: 255.255.255.0, GW: 192.168.1.1.
6:454 emNet - APP: Connected to 5.196.78.28, port 1883.
8:981 emNet - APP: --------
8:981 emNet - APP: Message No. 1:
8:982 emNet - APP:   Topic  : "eMQTT"
8:982 emNet - APP:   Payload: "www.SEGGER.com MQTT_HelloWorld_Sample"
12:654 emNet - APP: --------
12:654 emNet - APP: Message No. 2:
12:655 emNet - APP:   Topic  : "eMQTT"
12:655 emNet - APP:   Payload: "www.SEGGER.com MQTT_HelloWorld_Sample"
15:254 emNet - APP: --------
15:254 emNet - APP: Message No. 3:
15:255 emNet - APP:   Topic  : "eMQTT"
15:255 emNet - APP:   Payload: "www.SEGGER.com MQTT_HelloWorld_Sample"
19:557 emNet - APP: --------
19:557 emNet - APP: Message No. 4:
19:558 emNet - APP:   Topic  : "eMQTT"
19:558 emNet - APP:   Payload: "www.SEGGER.com MQTT_HelloWorld_Sample"
22:556 emNet - APP: --------
22:556 emNet - APP: Message No. 5:
22:557 emNet - APP:   Topic  : "eMQTT"
22:557 emNet - 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:014 emNet - DHCPc: IFace 0: Using IP: 192.168.1.11, Mask: 255.255.255.0, GW: 192.168.1.1.
6:332 emNet - APP: Connected to 5.196.78.28, port 1883.
6:581 emNet - APP: Received Property IP_MQTT_PROP_TYPE_TOPIC_ALIAS_MAXIMUM for CONNACK with PacketID 0.
6:582 emNet - APP: Received Property IP_MQTT_PROP_TYPE_RECEIVE_MAXIMUM for CONNACK with PacketID 0.
7:356 emNet - APP: Message (Type: SUBACK, Id: 6583) received. Reason Code: IP_MQTT_REASON_SUCCESS.
7:357 emNet - APP: ----
7:358 emNet - APP: IN: Message with (Id: 0 | QoS: 0 | Retain: 1 | Duplicate: 0) received for topic "eMQTT"
7:359 emNet - APP: IN:   Payload: "Client eMQTT client has disconnected ungracefully"
7:360 emNet - APP: ----
98:086 emNet - IP_MQTT_CLIENT_Exec: Connection gracefully closed by peer.
98:087 emNet - _Disconnect: closing socket 1
98:088 emNet - APP: Done.
111:395 emNet - APP: Connected to 5.196.78.28, port 1883.
113:502 emNet - APP: Received Property IP_MQTT_PROP_TYPE_TOPIC_ALIAS_MAXIMUM for CONNACK with PacketID 0.
113:503 emNet - APP: Received Property IP_MQTT_PROP_TYPE_RECEIVE_MAXIMUM for CONNACK with PacketID 0.
114:404 emNet - APP: Message (Type: SUBACK, Id: 47968) received. Reason Code: IP_MQTT_REASON_SUCCESS.
114:405 emNet - APP: ----
114:406 emNet - APP: IN: Message with (Id: 0 | QoS: 0 | Retain: 1 | Duplicate: 0) received for topic "eMQTT"
114:407 emNet - APP: IN:   Payload: "Client eMQTT client has disconnected ungracefully"
114:408 emNet - APP: ----
205:278 emNet - IP_MQTT_CLIENT_Exec: Connection gracefully closed by peer.
205:279 emNet - _Disconnect: closing socket 2
205:280 emNet - APP: Done.
210:656 emNet - APP: Connected to 5.196.78.28, port 1883.
213:198 emNet - APP: Received Property IP_MQTT_PROP_TYPE_TOPIC_ALIAS_MAXIMUM for CONNACK with PacketID 0.
213:199 emNet - APP: Received Property IP_MQTT_PROP_TYPE_RECEIVE_MAXIMUM for CONNACK with PacketID 0.
214:598 emNet - APP: Message (Type: SUBACK, Id: 16592) received. Reason Code: IP_MQTT_REASON_SUCCESS.
214:599 emNet - APP: ----
214:600 emNet - APP: IN: Message with (Id: 0 | QoS: 0 | Retain: 1 | Duplicate: 0) received for topic "eMQTT"
214:601 emNet - APP: IN:   Payload: "Client eMQTT client has disconnected ungracefully"
214:602 emNet - 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:013 emNet - DHCPc: IFace 0: Using IP: 192.168.1.11, Mask: 255.255.255.0, GW: 192.168.1.1.
4:053 emNet - 
Test 0: Sending PING
4:221 emNet - Test 0: Success!
4:221 emNet - 
Test 1: Sending Discover
4:475 emNet - /obs: Simple observable data.
/test: test entry
/separate: simple variable with GET with LATE reply
/BlockTransfer/ObsData: Observable data block.
/ObsSensor: 
4:476 emNet - Test 1: Success!
4:476 emNet - 
Test 2: Sending GET separate
4:991 emNet - 
  00:00:00
4:991 emNet - Test 2: Success!
4:992 emNet - 
Test 3: Sending NON GET block of 16 bytes
5:003 emNet - 
  Test data
5:003 emNet - Test 3: Success!
5:004 emNet - 
Test 4: PUT test
5:026 emNet - Test 4: Success!
5:026 emNet - 
Test 5: PUT that should fail
5:038 emNet - received error: 4.05
5:038 emNet - Test 5: Success!
5:039 emNet - 
Test 6: DELETE test
5:050 emNet - Test 6: Success!
5:050 emNet - 
Test 7: POST test
5:073 emNet - Test 7: Success!
5:073 emNet - 
Test 8: Observe
5:085 emNet - 
  Obs data
5:085 emNet - 
  GET 1 from Observe completed
15:177 emNet - 
  Obs data
15:177 emNet - 
  GET 2 from Observe completed
25:305 emNet - 
  Obs data
25:305 emNet - 
  GET 3 from Observe completed
35:422 emNet - 
  Obs data
35:422 emNet - 
  GET 4 from Observe completed
45:550 emNet - 
  Obs data
45:550 emNet - 
  GET 5 from Observe completed
45:551 emNet - Test 8: Success!

テストレポート(FTP)

Sample: IP_FTPClientSample

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

Debug IO Console:

4:071 emNet - DHCPc: IFace 0: Using IP: 192.168.1.11, Mask: 255.255.255.0, GW: 192.168.1.1.
4:100 emNet - APP: Connect to server "Admin@192.168.1.4:21".
4:297 emNet - APP: Connected to 192.168.1.4, port 21.
4:335 emNet - APP: Creating directory "Test".
4:342 emNet - APP: --- Test with old API that needs to CWD into the directory to operate within.
4:343 emNet - APP: Changing to directory "/Test/".
4:349 emNet - APP: List directory (before upload):
4:357 emNet - APP: Data connection established on local port: 1225

4:363 emNet - drw-r--r--   1 root root 0 Jan 24  2025 .
drw-r--r--   1 root root 0 Jan 24  2025 ..

4:364 emNet - APP: Uploading "Readme.txt".
4:427 emNet - APP: Data connection established on local port: 1226

4:485 emNet - APP: List directory (after upload):
4:492 emNet - APP: Data connection established on local port: 1227

4:497 emNet - drw-r--r--   1 root root 0 Jan 24  2025 .
drw-r--r--   1 root root 0 Jan 24  2025 ..
-rw-r--r--   1 root root 76 Jan 24  2025 Readme.txt

4:498 emNet - APP: Deleting "Readme.txt".
4:504 emNet - APP: List directory (after delete):
4:512 emNet - APP: Data connection established on local port: 1228

4:516 emNet - drw-r--r--   1 root root 0 Jan 24  2025 .
drw-r--r--   1 root root 0 Jan 24  2025 ..

4:517 emNet - APP: Changing to parent directory.
4:521 emNet - APP: --- Test with new API using IP_FTPC_CMD_CONFIG that can operate regardless of current directory.
4:523 emNet - APP: List directory (before upload, old API with path parameter):
4:531 emNet - APP: Data connection established on local port: 1229

4:535 emNet - drw-r--r--   1 root root 0 Jan 24  2025 .
drw-r--r--   1 root root 0 Jan 24  2025 ..

4:536 emNet - APP: Uploading "Readme.txt" to "/Test/Test.txt" (new API).
4:555 emNet - APP: Data connection established on local port: 1230

4:617 emNet - APP: List directory (after upload, new API):
5:631 emNet - APP: Data connection established on local port: 1231

5:635 emNet - drw-r--r--   1 root root 0 Jan 24  2025 .
drw-r--r--   1 root root 0 Jan 24  2025 ..
-rw-r--r--   1 root root 76 Jan 24  2025 Test.txt

5:636 emNet - APP: Deleting "/Test/Test.txt" (new API).
5:642 emNet - APP: List directory (after delete, new API):
5:648 emNet - APP: Data connection established on local port: 1232

5:651 emNet - drw-r--r--   1 root root 0 Jan 24  2025 .
drw-r--r--   1 root root 0 Jan 24  2025 ..

5:652 emNet - APP: Delete directory "/Test/" (new API).
5:656 emNet - APP: Done.
前の章

FAT32 ファイルシステム

次の章

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