M5Stack MicroPython API調査記録　ネットワーク編

※ 2018年1月28日現在

M5Stack版MicroPythonのnetworkモジュールを本家版と比較してみると、追加のクラスとして、telnet, ftp, mqtt, mDNS があります。また、有線LANは使わないという割り切りからか、network.LAN クラスが除かれています。

# network.telnetクラス

## 関数

### network.telnet.start(user='micro', password='python', timeout=300)

telnet タスクを起動する。

引数：

* user - リモートログインする際のユーザ名。
* password -  リモートログインする際のパスワード。
* timeout - 接続のタイムアウト時間を秒数で指定。

戻り値：
成功すれば True、失敗すれば False

start()すると、telnetコマンドを使って無線でREPLに入れるようになる。

```python3
>>> import network
>>> network.telnet.start()
True
```

![スクリーンショット 2018-01-28 18.48.29.png](https://qiita-image-store.s3.amazonaws.com/0/106817/b27ad40b-1d5a-23df-f7bf-8aee2ba590cb.png)

### network.telnet.pause()

telnet タスクを休止する。

戻り値：
成功すれば True、失敗すれば False

### network.telnet.resume()

telnet タスクを再開する。

戻り値：
成功すれば True、失敗すれば False

### network.telnet.stop()

telnet タスクを停止する。

戻り値：
成功すれば True、失敗すれば False

### network.telnet.status()

telnet タスクの状態を返す。

0: サービス無効
1: サービス始動中
2: サービス受付状態
3: 接続完了
4: ログイン状態
-1: サービス休止/停止状態

### network.telnet.stack()

telnet タスクの最大スタックサイズを返す。


# network.ftp クラス

## 関数

### network.ftp.start(*, user='micro', password='python', buffsize=1024, timeout=300)

ftp タスクを起動する。

引数：

* user - リモートログインする際のユーザ名。
* password -  リモートログインする際のパスワード。
* buffsize - バッファサイズ
* timeout - 接続のタイムアウト時間を秒数で指定。

戻り値：
成功すれば True、失敗すれば False


start()すると、ftpコマンドを使って無線でファイルを転送できるようになる。

```python3
>>> import network
>>> network.ftp.start()
True
```

![スクリーンショット 2018-01-28 18.54.28.png](https://qiita-image-store.s3.amazonaws.com/0/106817/394bf668-8bed-25d5-db97-bac460245522.png)


### network.ftp.pause()

ftp タスクを休止する。

戻り値：
成功すれば True、失敗すれば False


### network.ftp.resume()

ftp タスクを再開する。

戻り値：
成功すれば True、失敗すれば False


### network.ftp.stop()

ftp タスクを停止する。

戻り値：
成功すれば True、失敗すれば False

network.ftp.status()

ftp タスクの状態を返す。

0: サービス無効
1: サービス始動中
2: サービス受付状態
3: 転送完了
4: ファイル送信中
5: ファイル受信中
6: 接続完了
-1: サービス休止/停止状態


network.ftp.stack()

ftp タスクの最大スタックサイズを返す。

# network.mqtt クラス

## コンストラクタ

### mqtt = network.mqtt(
    name,
    server,
    user=None,
    password=None,
    port=1883 (secure=False時) / 8883 (secure=True時),
    autoreconnect=0,
    clientid=None,
    cleansession=False,
    keepalive=120,
    qos=0,
    retain=0,
    secure=False,
    data_cb=None,
    connected_cb=None,
    disconnected_cb=None,
    subscribed_cb=None,
    unsubscribed_cb=None,
    published_cb=None
)

MQTTクライアントを作成し、タスクとして始動する。

戻り値：
MQTTクライアントオブジェクト

## メソッド

### mqtt.config(
    clientid,
    autoreconnect,
    cleansession,
    keepalive,
    qos,
    retain,
    secure,
    data_cb,
    connected_cb,
    disconnected_cb,
    subscribed_cb,
    unsubscribed_cb,
    published_cb)

### network.mqtt.publish(topic, msg)

### network.mqtt.subscribe(topic)

### network.mqtt.unsubscribe(topic)

### network.mqtt.status()

-1: Destroyed
0: Disconnected
1: Connected
2: Stopping
4: Stopped

### network.mqtt.stop()

### network.mqtt.start()

### network.mqtt.free


# network.mDNS クラス

## コンストラクタ

### mdns = network.mDNS(if)

## メソッド

### mdns.start(name, instance)

### mdns.stop()

### mdns.queryHost(hostname)

### mdns.queryService(service, protocol)

### mdns.addService(service, protocol, port, instance, txdata)

### mdns.removeService(service, protocol)