CoAP

このモジュールには、CoAP 通信を制御する関数が含まれています。

概要

このモジュールの関数は、CoAP API 機能(OPENTHREAD_CONFIG_COAP_API_ENABLE)が有効な場合に利用できます。

列挙型

otCoapBlockSzx enum
CoAP ブロックサイズの指数。
otCoapCode{
  OT_COAP_CODE_EMPTY = (((( 0 )&0x7) << 5) | (( 0 )&0x1f)),
  OT_COAP_CODE_GET = (((( 0 )&0x7) << 5) | (( 1 )&0x1f)),
  OT_COAP_CODE_POST = (((( 0 )&0x7) << 5) | (( 2 )&0x1f)),
  OT_COAP_CODE_PUT = (((( 0 )&0x7) << 5) | (( 3 )&0x1f)),
  OT_COAP_CODE_DELETE = (((( 0 )&0x7) << 5) | (( 4 )&0x1f)),
  OT_COAP_CODE_RESPONSE_MIN = (((( 2 )&0x7) << 5) | (( 0 )&0x1f)),
  OT_COAP_CODE_CREATED = (((( 2 )&0x7) << 5) | (( 1 )&0x1f)),
  OT_COAP_CODE_DELETED = (((( 2 )&0x7) << 5) | (( 2 )&0x1f)),
  OT_COAP_CODE_VALID = (((( 2 )&0x7) << 5) | (( 3 )&0x1f)),
  OT_COAP_CODE_CHANGED = (((( 2 )&0x7) << 5) | (( 4 )&0x1f)),
  OT_COAP_CODE_CONTENT = (((( 2 )&0x7) << 5) | (( 5 )&0x1f)),
  OT_COAP_CODE_CONTINUE = (((( 2 )&0x7) << 5) | (( 31 )&0x1f)),
  OT_COAP_CODE_BAD_REQUEST = (((( 4 )&0x7) << 5) | (( 0 )&0x1f)),
  OT_COAP_CODE_UNAUTHORIZED = (((( 4 )&0x7) << 5) | (( 1 )&0x1f)),
  OT_COAP_CODE_BAD_OPTION = (((( 4 )&0x7) << 5) | (( 2 )&0x1f)),
  OT_COAP_CODE_FORBIDDEN = (((( 4 )&0x7) << 5) | (( 3 )&0x1f)),
  OT_COAP_CODE_NOT_FOUND = (((( 4 )&0x7) << 5) | (( 4 )&0x1f)),
  OT_COAP_CODE_METHOD_NOT_ALLOWED = (((( 4 )&0x7) << 5) | (( 5 )&0x1f)),
  OT_COAP_CODE_NOT_ACCEPTABLE = (((( 4 )&0x7) << 5) | (( 6 )&0x1f)),
  OT_COAP_CODE_REQUEST_INCOMPLETE = (((( 4 )&0x7) << 5) | (( 8 )&0x1f)),
  OT_COAP_CODE_PRECONDITION_FAILED = (((( 4 )&0x7) << 5) | (( 12 )&0x1f)),
  OT_COAP_CODE_REQUEST_TOO_LARGE = (((( 4 )&0x7) << 5) | (( 13 )&0x1f)),
  OT_COAP_CODE_UNSUPPORTED_FORMAT = (((( 4 )&0x7) << 5) | (( 15 )&0x1f)),
  OT_COAP_CODE_INTERNAL_ERROR = (((( 5 )&0x7) << 5) | (( 0 )&0x1f)),
  OT_COAP_CODE_NOT_IMPLEMENTED = (((( 5 )&0x7) << 5) | (( 1 )&0x1f)),
  OT_COAP_CODE_BAD_GATEWAY = (((( 5 )&0x7) << 5) | (( 2 )&0x1f)),
  OT_COAP_CODE_SERVICE_UNAVAILABLE = (((( 5 )&0x7) << 5) | (( 3 )&0x1f)),
  OT_COAP_CODE_GATEWAY_TIMEOUT = (((( 5 )&0x7) << 5) | (( 4 )&0x1f)),
  OT_COAP_CODE_PROXY_NOT_SUPPORTED = (((( 5 )&0x7) << 5) | (( 5 )&0x1f))
}
enum
CoAP コードの値。
otCoapOptionContentFormat{
  OT_COAP_OPTION_CONTENT_FORMAT_TEXT_PLAIN = 0,
  OT_COAP_OPTION_CONTENT_FORMAT_COSE_ENCRYPT0 = 16,
  OT_COAP_OPTION_CONTENT_FORMAT_COSE_MAC0 = 17,
  OT_COAP_OPTION_CONTENT_FORMAT_COSE_SIGN1 = 18,
  OT_COAP_OPTION_CONTENT_FORMAT_LINK_FORMAT = 40,
  OT_COAP_OPTION_CONTENT_FORMAT_XML = 41,
  OT_COAP_OPTION_CONTENT_FORMAT_OCTET_STREAM = 42,
  OT_COAP_OPTION_CONTENT_FORMAT_EXI = 47,
  OT_COAP_OPTION_CONTENT_FORMAT_JSON = 50,
  OT_COAP_OPTION_CONTENT_FORMAT_JSON_PATCH_JSON = 51,
  OT_COAP_OPTION_CONTENT_FORMAT_MERGE_PATCH_JSON = 52,
  OT_COAP_OPTION_CONTENT_FORMAT_CBOR = 60,
  OT_COAP_OPTION_CONTENT_FORMAT_CWT = 61,
  OT_COAP_OPTION_CONTENT_FORMAT_COSE_ENCRYPT = 96,
  OT_COAP_OPTION_CONTENT_FORMAT_COSE_MAC = 97,
  OT_COAP_OPTION_CONTENT_FORMAT_COSE_SIGN = 98,
  OT_COAP_OPTION_CONTENT_FORMAT_COSE_KEY = 101,
  OT_COAP_OPTION_CONTENT_FORMAT_COSE_KEY_SET = 102,
  OT_COAP_OPTION_CONTENT_FORMAT_SENML_JSON = 110,
  OT_COAP_OPTION_CONTENT_FORMAT_SENSML_JSON = 111,
  OT_COAP_OPTION_CONTENT_FORMAT_SENML_CBOR = 112,
  OT_COAP_OPTION_CONTENT_FORMAT_SENSML_CBOR = 113,
  OT_COAP_OPTION_CONTENT_FORMAT_SENML_EXI = 114,
  OT_COAP_OPTION_CONTENT_FORMAT_SENSML_EXI = 115,
  OT_COAP_OPTION_CONTENT_FORMAT_COAP_GROUP_JSON = 256,
  OT_COAP_OPTION_CONTENT_FORMAT_SENML_XML = 310,
  OT_COAP_OPTION_CONTENT_FORMAT_SENSML_XML = 311
}
enum
CoAP Content Format コード。
otCoapOptionType{
  OT_COAP_OPTION_IF_MATCH = 1,
  OT_COAP_OPTION_URI_HOST = 3,
  OT_COAP_OPTION_E_TAG = 4,
  OT_COAP_OPTION_IF_NONE_MATCH = 5,
  OT_COAP_OPTION_OBSERVE = 6,
  OT_COAP_OPTION_URI_PORT = 7,
  OT_COAP_OPTION_LOCATION_PATH = 8,
  OT_COAP_OPTION_URI_PATH = 11,
  OT_COAP_OPTION_CONTENT_FORMAT = 12,
  OT_COAP_OPTION_MAX_AGE = 14,
  OT_COAP_OPTION_URI_QUERY = 15,
  OT_COAP_OPTION_ACCEPT = 17,
  OT_COAP_OPTION_LOCATION_QUERY = 20,
  OT_COAP_OPTION_BLOCK2 = 23,
  OT_COAP_OPTION_BLOCK1 = 27,
  OT_COAP_OPTION_SIZE2 = 28,
  OT_COAP_OPTION_PROXY_URI = 35,
  OT_COAP_OPTION_PROXY_SCHEME = 39,
  OT_COAP_OPTION_SIZE1 = 60
}
enum
CoAP オプション番号。
otCoapType{
  OT_COAP_TYPE_CONFIRMABLE = 0,
  OT_COAP_TYPE_NON_CONFIRMABLE = 1,
  OT_COAP_TYPE_ACKNOWLEDGMENT = 2,
  OT_COAP_TYPE_RESET = 3
}
enum
CoAP タイプ値(2 ビットの符号なし整数)。

Typedef

otCoapBlockSzx typedef
CoAP ブロックサイズの指数。
otCoapBlockwiseReceiveHook)(void *aContext, const uint8_t *aBlock, uint32_t aPosition, uint16_t aBlockLength, bool aMore, uint32_t aTotalLength) typedef
ブロック単位の転送オプションを含む CoAP メッセージを受信すると、ポインタが呼び出されます。
otCoapBlockwiseResource typedef
ブロック単位の転送の CoAP リソースを表します。
otCoapBlockwiseTransmitHook)(void *aContext, uint8_t *aBlock, uint32_t aPosition, uint16_t *aBlockLength, bool *aMore) typedef
ブロック単位の転送で次のブロックが送信される前に、ポインタが呼び出されます。
otCoapCode typedef
enum otCoapCode
CoAP コードの値。
otCoapOption typedef
struct otCoapOption
CoAP オプションを表します。
otCoapOptionContentFormat typedef
CoAP Content Format コード。
otCoapOptionIterator typedef
CoAP オプションのイテレータとして機能します。
otCoapOptionType typedef
CoAP オプション番号。
otCoapRequestHandler)(void *aContext, otMessage *aMessage, const otMessageInfo *aMessageInfo) typedef
void(*
ポインタは、指定された Uri-Path を持つ CoAP リクエストを受信すると呼び出されます。
otCoapResource typedef
CoAP リソースを表します。
otCoapResponseHandler)(void *aContext, otMessage *aMessage, const otMessageInfo *aMessageInfo, otError aResult) typedef
void(*
ポインタは、CoAP レスポンスを受信したとき、またはリクエスト タイムアウト時に呼び出されます。
otCoapTxParameters typedef
CoAP の伝送パラメータを表します。
otCoapType typedef
enum otCoapType
CoAP タイプ値(2 ビットの符号なし整数)。

関数

otCoapAddBlockWiseResource(otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
CoAP サーバーにブロック単位のリソースを追加します。
otCoapAddResource(otInstance *aInstance, otCoapResource *aResource)
void
CoAP サーバーにリソースを追加します。
otCoapBlockSizeFromExponent(otCoapBlockSzx aSize)
uint16_t
CoAP ブロック オプションの SZX フィールドを実際のブロックサイズに変換します。
otCoapMessageAppendBlock1Option(otMessage *aMessage, uint32_t aNum, bool aMore, otCoapBlockSzx aSize)
Block1 オプションを追加します。
otCoapMessageAppendBlock2Option(otMessage *aMessage, uint32_t aNum, bool aMore, otCoapBlockSzx aSize)
Block2 オプションを追加します。
otCoapMessageAppendContentFormatOption(otMessage *aMessage, otCoapOptionContentFormat aContentFormat)
https://tools.ietf.org/html/rfc7252#page-92 で指定されているように、Content Format CoAP オプションが追加されます。
otCoapMessageAppendMaxAgeOption(otMessage *aMessage, uint32_t aMaxAge)
Max-Age オプションを追加します。
otCoapMessageAppendObserveOption(otMessage *aMessage, uint32_t aObserve)
Observe オプションを追加します。
otCoapMessageAppendOption(otMessage *aMessage, uint16_t aNumber, uint16_t aLength, const void *aValue)
ヘッダーに CoAP オプションを追加します。
otCoapMessageAppendProxyUriOption(otMessage *aMessage, const char *aUriPath)
Proxy-Uri オプションを追加します。
otCoapMessageAppendUintOption(otMessage *aMessage, uint16_t aNumber, uint32_t aValue)
https://tools.ietf.org/html/rfc7252#section-3.2 で指定されているとおり、符号なし整数の CoAP オプションを追加します。
otCoapMessageAppendUriPathOptions(otMessage *aMessage, const char *aUriPath)
Uri-Path オプションを追加します。
otCoapMessageAppendUriQueryOption(otMessage *aMessage, const char *aUriQuery)
単一の URI クエリ オプションを追加します。
otCoapMessageCodeToString(const otMessage *aMessage)
const char *
CoAP コードを人が読める文字列として返します。
otCoapMessageGenerateToken(otMessage *aMessage, uint8_t aTokenLength)
void
トークンの長さを設定し、その値をランダム化します。
otCoapMessageGetCode(const otMessage *aMessage)
Code 値を返します。
otCoapMessageGetMessageId(const otMessage *aMessage)
uint16_t
メッセージ ID の値を返します。
otCoapMessageGetToken(const otMessage *aMessage)
const uint8_t *
トークン値へのポインタを返します。
otCoapMessageGetTokenLength(const otMessage *aMessage)
uint8_t
トークンの長さを返します。
otCoapMessageGetType(const otMessage *aMessage)
型の値を返します。
otCoapMessageInit(otMessage *aMessage, otCoapType aType, otCoapCode aCode)
void
CoAP ヘッダーを初期化します。
otCoapMessageInitResponse(otMessage *aResponse, const otMessage *aRequest, otCoapType aType, otCoapCode aCode)
レスポンス メッセージを初期化します。
otCoapMessageSetCode(otMessage *aMessage, otCoapCode aCode)
void
Code 値を設定します。
otCoapMessageSetPayloadMarker(otMessage *aMessage)
ペイロードの先頭を示すペイロード マーカーを CoAP ヘッダーに追加します。
otCoapMessageSetToken(otMessage *aMessage, const uint8_t *aToken, uint8_t aTokenLength)
ヘッダーにトークンの値と長さを設定します。
otCoapNewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
新しい CoAP メッセージを作成します。
otCoapOptionIteratorGetFirstOption(otCoapOptionIterator *aIterator)
const otCoapOption *
最初のオプションへのポインタを返します。
otCoapOptionIteratorGetFirstOptionMatching(otCoapOptionIterator *aIterator, uint16_t aOption)
const otCoapOption *
指定されたオプション番号に一致する最初のオプションへのポインタを返します。
otCoapOptionIteratorGetNextOption(otCoapOptionIterator *aIterator)
const otCoapOption *
次のオプションへのポインタを返します。
otCoapOptionIteratorGetNextOptionMatching(otCoapOptionIterator *aIterator, uint16_t aOption)
const otCoapOption *
指定されたオプション番号に一致する次のオプションへのポインタを返します。
otCoapOptionIteratorGetOptionUintValue(otCoapOptionIterator *aIterator, uint64_t *aValue)
現在の値が https://tools.ietf.org/html/rfc7252#section-3.2 に従ってエンコードされた符号なし整数であると仮定して、現在のオプション値を aValue に入力します。
otCoapOptionIteratorGetOptionValue(otCoapOptionIterator *aIterator, void *aValue)
現在のオプション値を aValue に入力します。
otCoapOptionIteratorInit(otCoapOptionIterator *aIterator, const otMessage *aMessage)
指定されたメッセージ内のオプションのイテレータを初期化します。
otCoapRemoveBlockWiseResource(otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
CoAP サーバーからブロック単位のリソースを削除します。
otCoapRemoveResource(otInstance *aInstance, otCoapResource *aResource)
void
CoAP サーバーからリソースを削除します。
otCoapSendRequest(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, otCoapResponseHandler aHandler, void *aContext)
CoAP リクエストを送信します。
otCoapSendRequestBlockWise(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, otCoapResponseHandler aHandler, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook, otCoapBlockwiseReceiveHook aReceiveHook)
ブロック単位で CoAP リクエストを送信します。
otCoapSendRequestBlockWiseWithParameters(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, otCoapResponseHandler aHandler, void *aContext, const otCoapTxParameters *aTxParameters, otCoapBlockwiseTransmitHook aTransmitHook, otCoapBlockwiseReceiveHook aReceiveHook)
カスタム転送パラメータを使用して、ブロック単位で CoAP リクエストを送信します。
otCoapSendRequestWithParameters(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, otCoapResponseHandler aHandler, void *aContext, const otCoapTxParameters *aTxParameters)
カスタム転送パラメータを指定して CoAP リクエストを送信します。
otCoapSendResponse(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo)
サーバーから CoAP レスポンスを送信します。
otCoapSendResponseBlockWise(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook)
サーバーから CoAP レスポンスをブロックごとに送信します。
otCoapSendResponseBlockWiseWithParameters(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, const otCoapTxParameters *aTxParameters, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook)
カスタム転送パラメータを使用して、サーバーからブロックごとに CoAP レスポンスを送信します。
otCoapSendResponseWithParameters(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, const otCoapTxParameters *aTxParameters)
カスタム転送パラメータを使用してサーバーから CoAP レスポンスを送信します。
otCoapSetDefaultHandler(otInstance *aInstance, otCoapRequestHandler aHandler, void *aContext)
void
未処理の CoAP リクエストのデフォルト ハンドラを設定します。
otCoapStart(otInstance *aInstance, uint16_t aPort)
CoAP サーバーを起動します。
otCoapStop(otInstance *aInstance)
CoAP サーバーを停止します。

構造体

otCoapBlockwiseResource

ブロック単位の転送の CoAP リソースを表します。

otCoapOption

CoAP オプションを表します。

otCoapOptionIterator

CoAP オプションのイテレータとして機能します。

otCoapResource

CoAP リソースを表します。

otCoapTxParameters

CoAP の伝送パラメータを表します。

列挙型

otCoapBlockSzx

 otCoapBlockSzx

CoAP ブロックサイズの指数。

otCoapCode

 otCoapCode

CoAP コードの値。

プロパティ
OT_COAP_CODE_BAD_GATEWAY

不正なゲートウェイです。

OT_COAP_CODE_BAD_OPTION

不適切です。

OT_COAP_CODE_BAD_REQUEST

不正なリクエストです。

OT_COAP_CODE_CHANGED

変更済み。

OT_COAP_CODE_CONTENT

コンテンツ。

OT_COAP_CODE_CONTINUE

RFC7959 続き。

OT_COAP_CODE_CREATED

作成済み。

OT_COAP_CODE_DELETE

削除] をタップまたはクリックします。

OT_COAP_CODE_DELETED

削除されました。

OT_COAP_CODE_EMPTY

メッセージ コードが空です。

OT_COAP_CODE_FORBIDDEN

禁止されています。

OT_COAP_CODE_GATEWAY_TIMEOUT

ゲートウェイがタイムアウトしました。

OT_COAP_CODE_GET

さあ、

OT_COAP_CODE_INTERNAL_ERROR

内部サーバーエラーが発生しました。

OT_COAP_CODE_METHOD_NOT_ALLOWED

許可されていないメソッドです。

OT_COAP_CODE_NOT_ACCEPTABLE

利用不可

OT_COAP_CODE_NOT_FOUND

見つかりませんでした。

OT_COAP_CODE_NOT_IMPLEMENTED

未実装。

OT_COAP_CODE_POST

投稿。

OT_COAP_CODE_PRECONDITION_FAILED

前提条件が失敗しました。

OT_COAP_CODE_PROXY_NOT_SUPPORTED

プロキシはサポートされていません。

OT_COAP_CODE_PUT

置いて。

OT_COAP_CODE_REQUEST_INCOMPLETE

RFC7959 リクエスト エンティティが不完全です。

OT_COAP_CODE_REQUEST_TOO_LARGE

リクエスト エンティティが大きすぎます。

OT_COAP_CODE_RESPONSE_MIN

200 万台

OT_COAP_CODE_SERVICE_UNAVAILABLE

サービスを利用できません。

OT_COAP_CODE_UNAUTHORIZED

未承認。

OT_COAP_CODE_UNSUPPORTED_FORMAT

サポートされていない Content-Format です。

OT_COAP_CODE_VALID

有効です。

otCoapOptionContentFormat

 otCoapOptionContentFormat

CoAP Content Format コード。

完全なリストについては、https://www.iana.org/assignments/core-parameters/core-parameters.xhtml#content-formats をご覧ください。

プロパティ
OT_COAP_OPTION_CONTENT_FORMAT_CBOR

application/cbor: [RFC7049]

OT_COAP_OPTION_CONTENT_FORMAT_COAP_GROUP_JSON

application/coap-group+json: [RFC7390]

OT_COAP_OPTION_CONTENT_FORMAT_COSE_ENCRYPT

application/cose; cose-type="cose-encrypt": [RFC8152]

OT_COAP_OPTION_CONTENT_FORMAT_COSE_ENCRYPT0

application/cose; cose-type="cose-encrypt0": [RFC8152]

OT_COAP_OPTION_CONTENT_FORMAT_COSE_KEY

application/cose-key: [RFC8152]

OT_COAP_OPTION_CONTENT_FORMAT_COSE_KEY_SET

application/cose-key-set: [RFC8152]

OT_COAP_OPTION_CONTENT_FORMAT_COSE_MAC

application/cose; cose-type="cose-mac": [RFC8152]

OT_COAP_OPTION_CONTENT_FORMAT_COSE_MAC0

application/cose; cose-type="cose-mac0": [RFC8152]

OT_COAP_OPTION_CONTENT_FORMAT_COSE_SIGN

application/cose; cose-type="cose-sign": [RFC8152]

OT_COAP_OPTION_CONTENT_FORMAT_COSE_SIGN1

application/cose; cose-type="cose-sign1": [RFC8152]

OT_COAP_OPTION_CONTENT_FORMAT_CWT

application/cwt: [RFC8392]

OT_COAP_OPTION_CONTENT_FORMAT_EXI

application/exi: ["Efficient XML Interchange (EXI) Format 1.0 (Second Edition)"、2014 年 2 月]

OT_COAP_OPTION_CONTENT_FORMAT_JSON

application/json: [RFC7159]

OT_COAP_OPTION_CONTENT_FORMAT_JSON_PATCH_JSON

application/json-patch+json: [RFC6902]

OT_COAP_OPTION_CONTENT_FORMAT_LINK_FORMAT

アプリケーション/リンク形式: [RFC6690]

OT_COAP_OPTION_CONTENT_FORMAT_MERGE_PATCH_JSON

application/merge-patch+json: [RFC7396]

OT_COAP_OPTION_CONTENT_FORMAT_OCTET_STREAM

application/octet-stream: [RFC2045][RFC2046]

OT_COAP_OPTION_CONTENT_FORMAT_SENML_CBOR

application/senml+cbor: [RFC8428]

OT_COAP_OPTION_CONTENT_FORMAT_SENML_EXI

application/senml-exi: [RFC8428]

OT_COAP_OPTION_CONTENT_FORMAT_SENML_JSON

application/senml+json: [RFC8428]

OT_COAP_OPTION_CONTENT_FORMAT_SENML_XML

application/senml+xml: [RFC8428]

OT_COAP_OPTION_CONTENT_FORMAT_SENSML_CBOR

application/sensml+cbor: [RFC8428]

OT_COAP_OPTION_CONTENT_FORMAT_SENSML_EXI

application/sensml-exi: [RFC8428]

OT_COAP_OPTION_CONTENT_FORMAT_SENSML_JSON

application/sensml+json: [RFC8428]

OT_COAP_OPTION_CONTENT_FORMAT_SENSML_XML

application/sensml+xml: [RFC8428]

OT_COAP_OPTION_CONTENT_FORMAT_TEXT_PLAIN

text/plain; charset=utf-8: [RFC2046][RFC3676][RFC5147]

OT_COAP_OPTION_CONTENT_FORMAT_XML

application/xml: [RFC3023]

otCoapOptionType

 otCoapOptionType

CoAP オプション番号。

プロパティ
OT_COAP_OPTION_ACCEPT

同意します。

OT_COAP_OPTION_BLOCK1

Block1(RFC7959)

OT_COAP_OPTION_BLOCK2

Block2(RFC7959)

OT_COAP_OPTION_CONTENT_FORMAT

Content-Format。

OT_COAP_OPTION_E_TAG

ETag。

OT_COAP_OPTION_IF_MATCH

if-Match。

OT_COAP_OPTION_IF_NONE_MATCH

if-None-Match。

OT_COAP_OPTION_LOCATION_PATH

場所のパス。

OT_COAP_OPTION_LOCATION_QUERY

地域クエリ。

OT_COAP_OPTION_MAX_AGE

最長期間。

OT_COAP_OPTION_OBSERVE

[RFC7641] を確認します。

OT_COAP_OPTION_PROXY_SCHEME

Proxy-Scheme。

OT_COAP_OPTION_PROXY_URI

Proxy-Uri。

OT_COAP_OPTION_SIZE1

サイズ 1。

OT_COAP_OPTION_SIZE2

Size2(RFC7959)

OT_COAP_OPTION_URI_HOST

URI ホスト。

OT_COAP_OPTION_URI_PATH

URI パス。

OT_COAP_OPTION_URI_PORT

URI ポート

OT_COAP_OPTION_URI_QUERY

URI クエリです。

otCoapType

 otCoapType

CoAP タイプ値(2 ビットの符号なし整数)。

プロパティ
OT_COAP_TYPE_ACKNOWLEDGMENT

確認。

OT_COAP_TYPE_CONFIRMABLE

確認可能。

OT_COAP_TYPE_NON_CONFIRMABLE

確認できません。

OT_COAP_TYPE_RESET

リセット。

Typedef

otCoapBlockSzx

enum otCoapBlockSzx otCoapBlockSzx

CoAP ブロックサイズの指数。

otCoapBlockwiseReceiveHook

otError(* otCoapBlockwiseReceiveHook)(void *aContext, const uint8_t *aBlock, uint32_t aPosition, uint16_t aBlockLength, bool aMore, uint32_t aTotalLength)

ブロック単位の転送オプションを含む CoAP メッセージを受信すると、ポインタが呼び出されます。

OPENTHREAD_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE 構成が有効な場合に使用できます。

詳細
パラメータ
[in] aContext
アプリケーション固有のコンテキストへのポインタ。
[in] aBlock
ブロック セグメントへのポインタ。
[in] aPosition
シーケンス内の aBlock の位置(バイト単位)。
[in] aBlockLength
ブロック セグメントの長さ(バイト単位)。
[in] aMore
ブロック中のセグメントが他にもある場合は報告します。
[in] aTotalLength
転送された情報の合計長(バイト単位)。Size1 または Size2 オプションで指定します。
戻り値
OT_ERROR_NONE
ブロック セグメントを保存しました。
OT_ERROR_NO_BUFS
ブロックを保存するためのメモリがもう必要ありません。
OT_ERROR_NO_FRAME_RECEIVED
ブロック セグメントがありません。

otCoapBlockwiseResource

struct otCoapBlockwiseResource otCoapBlockwiseResource

ブロック単位の転送の CoAP リソースを表します。

otCoapBlockwiseTransmitHook

otError(* otCoapBlockwiseTransmitHook)(void *aContext, uint8_t *aBlock, uint32_t aPosition, uint16_t *aBlockLength, bool *aMore)

ブロック単位の転送で次のブロックが送信される前に、ポインタが呼び出されます。

OPENTHREAD_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE 構成が有効な場合に使用できます。

aBlockLength の値を変更すると、エクスチェンジ全体のブロックサイズが再交渉されます。後で変更を行うと、他の CoAP 実装で問題が生じる可能性があるため、最初のブロックの受信後に行うことをおすすめします。

詳細
パラメータ
[in] aContext
アプリケーション固有のコンテキストへのポインタ。
[in,out] aBlock
ブロック セグメントを書き込むことができる場所へのポインタ。
[in] aPosition
ブロック セグメントを取得するシーケンス内の位置。
[in,out] aBlockLength
入力時のブロック セグメントの最大長(バイト単位)。
[out] aMore
後続のブロック セグメントが後に続く場合のフラグへのポインタ。
戻り値
OT_ERROR_NONE
エラーが発生しました。
OT_ERROR_INVALID_ARGS
aPosition のブロックは存在しません。

otCoapCode

enum otCoapCode otCoapCode

CoAP コードの値。

otCoapOption

struct otCoapOption otCoapOption

CoAP オプションを表します。

otCoapOptionContentFormat

enum otCoapOptionContentFormat otCoapOptionContentFormat

CoAP Content Format コード。

完全なリストについては、https://www.iana.org/assignments/core-parameters/core-parameters.xhtml#content-formats をご覧ください。

otCoapOptionIterator

struct otCoapOptionIterator otCoapOptionIterator

CoAP オプションのイテレータとして機能します。

otCoapOptionType

enum otCoapOptionType otCoapOptionType

CoAP オプション番号。

otCoapRequestHandler の使用

void(* otCoapRequestHandler)(void *aContext, otMessage *aMessage, const otMessageInfo *aMessageInfo)

ポインタは、指定された Uri-Path を持つ CoAP リクエストを受信すると呼び出されます。

詳細
パラメータ
[in] aContext
任意のコンテキスト情報へのポインタ。
[in] aMessage
メッセージへのポインタ。
[in] aMessageInfo
aMessage のメッセージ情報へのポインタ。

otCoapResource

struct otCoapResource otCoapResource

CoAP リソースを表します。

otCoapResponseHandler の使用

void(* otCoapResponseHandler)(void *aContext, otMessage *aMessage, const otMessageInfo *aMessageInfo, otError aResult)

ポインタは、CoAP レスポンスを受信したとき、またはリクエスト タイムアウト時に呼び出されます。

詳細
パラメータ
[in] aContext
アプリケーション固有のコンテキストへのポインタ。
[in] aMessage
レスポンスを含むメッセージ バッファへのポインタ。NULL を返します。
[in] aMessageInfo
aMessage のメッセージ情報へのポインタ。NULL を返します。
[in] aResult
CoAP トランザクションの結果。
戻り値
OT_ERROR_NONE
レスポンスが正常に受信されました。
OT_ERROR_ABORT
CoAP トランザクションがピアによってリセットされました。
OT_ERROR_RESPONSE_TIMEOUT
タイムアウト期間中にレスポンスまたは確認応答を受信しませんでした。

otCoapTxParameters

struct otCoapTxParameters otCoapTxParameters

CoAP の伝送パラメータを表します。

otCoapType

enum otCoapType otCoapType

CoAP タイプ値(2 ビットの符号なし整数)。

関数

otCoapAddBlockWiseResource

void otCoapAddBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

CoAP サーバーにブロック単位のリソースを追加します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aResource
リソースへのポインタ。

otCoapAddResource

void otCoapAddResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

CoAP サーバーにリソースを追加します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aResource
リソースへのポインタ。

otCoapBlockSizeFromExponent

uint16_t otCoapBlockSizeFromExponent(
  otCoapBlockSzx aSize
)

CoAP ブロック オプションの SZX フィールドを実際のブロックサイズに変換します。

詳細
パラメータ
[in] aSize
ブロックサイズの指数。
戻り値
実際のサイズの指数値。

otCoapMessageAppendBlock1Option

otError otCoapMessageAppendBlock1Option(
  otMessage *aMessage,
  uint32_t aNum,
  bool aMore,
  otCoapBlockSzx aSize
)

Block1 オプションを追加します。

詳細
パラメータ
[in,out] aMessage
CoAP メッセージへのポインタ。
[in] aNum
現在のブロック番号。
[in] aMore
送信するブロックの追加を示すブール値。
[in] aSize
ブロックサイズの指数。
戻り値
OT_ERROR_NONE
オプションを追加しました。
OT_ERROR_INVALID_ARGS
オプション タイプが最後のオプション タイプ以下になっています。
OT_ERROR_NO_BUFS
オプションの長さがバッファサイズを超えています。

otCoapMessageAppendBlock2Option

otError otCoapMessageAppendBlock2Option(
  otMessage *aMessage,
  uint32_t aNum,
  bool aMore,
  otCoapBlockSzx aSize
)

Block2 オプションを追加します。

詳細
パラメータ
[in,out] aMessage
CoAP メッセージへのポインタ。
[in] aNum
現在のブロック番号。
[in] aMore
送信するブロックの追加を示すブール値。
[in] aSize
ブロックサイズの指数。
戻り値
OT_ERROR_NONE
オプションを追加しました。
OT_ERROR_INVALID_ARGS
オプション タイプが最後のオプション タイプ以下になっています。
OT_ERROR_NO_BUFS
オプションの長さがバッファサイズを超えています。

otCoapMessageAppendContentFormatOption

otError otCoapMessageAppendContentFormatOption(
  otMessage *aMessage,
  otCoapOptionContentFormat aContentFormat
)

https://tools.ietf.org/html/rfc7252#page-92 で指定されているように、Content Format CoAP オプションが追加されます。

ペイロードをメッセージに含める場合は、otCoapMessageSetPayloadMarker を設定する前に呼び出す必要があります

この関数は otCoapMessageAppendUintOption の便利なラッパーです。目的のフォーマット タイプが otCoapOptionContentFormat に記載されていない場合は、この基本関数を代わりに使用する必要があります。

詳細
パラメータ
[in,out] aMessage
CoAP メッセージへのポインタ。
[in] aContentFormat
上記の otCoapOptionContentFormat に記載されているコンテンツ形式のいずれか。
戻り値
OT_ERROR_NONE
オプションを追加しました。
OT_ERROR_INVALID_ARGS
オプション タイプが最後のオプション タイプ以下になっています。
OT_ERROR_NO_BUFS
オプションの長さがバッファサイズを超えています。

otCoapMessageAppendMaxAgeOption

otError otCoapMessageAppendMaxAgeOption(
  otMessage *aMessage,
  uint32_t aMaxAge
)

Max-Age オプションを追加します。

詳細
パラメータ
[in,out] aMessage
CoAP メッセージへのポインタ。
[in] aMaxAge
Max-Age の値。
戻り値
OT_ERROR_NONE
オプションを追加しました。
OT_ERROR_INVALID_ARGS
オプション タイプが最後のオプション タイプ以下になっています。
OT_ERROR_NO_BUFS
オプションの長さがバッファサイズを超えています。

otCoapMessageAppendObserveOption

otError otCoapMessageAppendObserveOption(
  otMessage *aMessage,
  uint32_t aObserve
)

Observe オプションを追加します。

詳細
パラメータ
[in,out] aMessage
CoAP メッセージへのポインタ。
[in] aObserve
フィールドの値を確認します。
戻り値
OT_ERROR_NONE
オプションを追加しました。
OT_ERROR_INVALID_ARGS
オプション タイプが最後のオプション タイプ以下になっています。
OT_ERROR_NO_BUFS
オプションの長さがバッファサイズを超えています。

otCoapMessageAppendOption

otError otCoapMessageAppendOption(
  otMessage *aMessage,
  uint16_t aNumber,
  uint16_t aLength,
  const void *aValue
)

ヘッダーに CoAP オプションを追加します。

詳細
パラメータ
[in,out] aMessage
CoAP メッセージへのポインタ。
[in] aNumber
CoAP オプション番号。
[in] aLength
CoAP オプションの長さ。
[in] aValue
CoAP 値へのポインタ。
戻り値
OT_ERROR_NONE
オプションを追加しました。
OT_ERROR_INVALID_ARGS
オプション タイプが最後のオプション タイプ以下になっています。
OT_ERROR_NO_BUFS
オプションの長さがバッファサイズを超えています。

otCoapMessageAppendProxyUriOption

otError otCoapMessageAppendProxyUriOption(
  otMessage *aMessage,
  const char *aUriPath
)

Proxy-Uri オプションを追加します。

詳細
パラメータ
[in,out] aMessage
CoAP メッセージへのポインタ。
[in] aUriPath
NULL で終わる文字列へのポインタ。
戻り値
OT_ERROR_NONE
オプションを追加しました。
OT_ERROR_INVALID_ARGS
オプション タイプが最後のオプション タイプ以下になっています。
OT_ERROR_NO_BUFS
オプションの長さがバッファサイズを超えています。

otCoapMessageAppendUintOption

otError otCoapMessageAppendUintOption(
  otMessage *aMessage,
  uint16_t aNumber,
  uint32_t aValue
)

https://tools.ietf.org/html/rfc7252#section-3.2 で指定されているとおり、符号なし整数の CoAP オプションを追加します。

詳細
パラメータ
[in,out] aMessage
CoAP メッセージへのポインタ。
[in] aNumber
CoAP オプション番号。
[in] aValue
CoAP オプションの符号なし整数値。
戻り値
OT_ERROR_NONE
オプションを追加しました。
OT_ERROR_INVALID_ARGS
オプション タイプが最後のオプション タイプ以下になっています。
OT_ERROR_NO_BUFS
オプションの長さがバッファサイズを超えています。
関連項目:
otCoapMessageGetOptionUintValue

otCoapMessageAppendUriPathOptions

otError otCoapMessageAppendUriPathOptions(
  otMessage *aMessage,
  const char *aUriPath
)

Uri-Path オプションを追加します。

詳細
パラメータ
[in,out] aMessage
CoAP メッセージへのポインタ。
[in] aUriPath
NULL で終わる文字列へのポインタ。
戻り値
OT_ERROR_NONE
オプションを追加しました。
OT_ERROR_INVALID_ARGS
オプション タイプが最後のオプション タイプ以下になっています。
OT_ERROR_NO_BUFS
オプションの長さがバッファサイズを超えています。

otCoapMessageAppendUriQueryOption

otError otCoapMessageAppendUriQueryOption(
  otMessage *aMessage,
  const char *aUriQuery
)

単一の URI クエリ オプションを追加します。

詳細
パラメータ
[in,out] aMessage
CoAP メッセージへのポインタ。
[in] aUriQuery
NULL で終わる文字列へのポインタ。1 つの Key-Value ペアが含まれている必要があります。
戻り値
OT_ERROR_NONE
オプションを追加しました。
OT_ERROR_INVALID_ARGS
オプション タイプが最後のオプション タイプ以下になっています。
OT_ERROR_NO_BUFS
オプションの長さがバッファサイズを超えています。

otCoapMessageCodeToString

const char * otCoapMessageCodeToString(
  const otMessage *aMessage
)

CoAP コードを人が読める文字列として返します。

@ は、CoAP コードを文字列として返します。

詳細
パラメータ
[in] aMessage
CoAP メッセージへのポインタ。

otCoapMessageGenerateToken

void otCoapMessageGenerateToken(
  otMessage *aMessage,
  uint8_t aTokenLength
)

トークンの長さを設定し、その値をランダム化します。

詳細
パラメータ
[in,out] aMessage
CoAP メッセージへのポインタ。
[in] aTokenLength
設定するトークンの長さ。

otCoapMessageGetCode

otCoapCode otCoapMessageGetCode(
  const otMessage *aMessage
)

Code 値を返します。

詳細
パラメータ
[in] aMessage
CoAP メッセージへのポインタ。
戻り値
コードの値。

otCoapMessageGetMessageId

uint16_t otCoapMessageGetMessageId(
  const otMessage *aMessage
)

メッセージ ID の値を返します。

詳細
パラメータ
[in] aMessage
CoAP メッセージへのポインタ。
戻り値
メッセージ ID の値。

otCoapMessageGetToken

const uint8_t * otCoapMessageGetToken(
  const otMessage *aMessage
)

トークン値へのポインタを返します。

詳細
パラメータ
[in] aMessage
CoAP メッセージへのポインタ。
戻り値
トークン値へのポインタ。

otCoapMessageGetTokenLength

uint8_t otCoapMessageGetTokenLength(
  const otMessage *aMessage
)

トークンの長さを返します。

詳細
パラメータ
[in] aMessage
CoAP メッセージへのポインタ。
戻り値
トークンの長さ。

otCoapMessageGetType

otCoapType otCoapMessageGetType(
  const otMessage *aMessage
)

型の値を返します。

詳細
パラメータ
[in] aMessage
CoAP メッセージへのポインタ。
戻り値
Type の値。

otCoapMessageInit

void otCoapMessageInit(
  otMessage *aMessage,
  otCoapType aType,
  otCoapCode aCode
)

CoAP ヘッダーを初期化します。

詳細
パラメータ
[in,out] aMessage
初期化する CoAP メッセージへのポインタ。
[in] aType
CoAP メッセージ タイプ。
[in] aCode
CoAP メッセージ コード。

otCoapMessageInitResponse

otError otCoapMessageInitResponse(
  otMessage *aResponse,
  const otMessage *aRequest,
  otCoapType aType,
  otCoapCode aCode
)

レスポンス メッセージを初期化します。

詳細
パラメータ
[in,out] aResponse
CoAP レスポンス メッセージへのポインタ。
[in] aRequest
CoAP リクエスト メッセージへのポインタ。
[in] aType
CoAP メッセージ タイプ。
[in] aCode
CoAP メッセージ コード。
戻り値
OT_ERROR_NONE
レスポンス メッセージが正常に初期化されました。
OT_ERROR_NO_BUFS
レスポンス メッセージの初期化に使用できるメッセージ バッファが不足しています。

otCoapMessageSetCode

void otCoapMessageSetCode(
  otMessage *aMessage,
  otCoapCode aCode
)

Code 値を設定します。

詳細
パラメータ
[in,out] aMessage
初期化する CoAP メッセージへのポインタ。
[in] aCode
CoAP メッセージ コード。

otCoapMessageSetPayloadMarker

otError otCoapMessageSetPayloadMarker(
  otMessage *aMessage
)

ペイロードの先頭を示すペイロード マーカーを CoAP ヘッダーに追加します。

詳細
パラメータ
[in,out] aMessage
CoAP メッセージへのポインタ。
戻り値
OT_ERROR_NONE
ペイロード マーカーが正常に追加されました。
OT_ERROR_NO_BUFS
ヘッダー ペイロード マーカーがバッファサイズを超えています。

otCoapMessageSetToken

otError otCoapMessageSetToken(
  otMessage *aMessage,
  const uint8_t *aToken,
  uint8_t aTokenLength
)

ヘッダーにトークンの値と長さを設定します。

詳細
パラメータ
[in,out] aMessage
CoAP メッセージへのポインタ。
[in] aToken
トークン値へのポインタ。
[in] aTokenLength
aToken の長さ。
戻り値
OT_ERROR_NONE
トークン値が正常に設定されました。
OT_ERROR_NO_BUFS
トークン値を設定するためのバッファが不足しています。

otCoapNewMessage

otMessage * otCoapNewMessage(
  otInstance *aInstance,
  const otMessageSettings *aSettings
)

新しい CoAP メッセージを作成します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aSettings
メッセージ設定へのポインタ、またはデフォルト設定を指定するための NULL。
戻り値
メッセージ バッファへのポインタ。使用可能なメッセージ バッファがない場合、またはパラメータが無効な場合は NULL。

otCoapOptionIteratorGetFirstOption

const otCoapOption * otCoapOptionIteratorGetFirstOption(
  otCoapOptionIterator *aIterator
)

最初のオプションへのポインタを返します。

詳細
パラメータ
[in,out] aIterator
CoAP メッセージ オプション イテレータへのポインタ。
戻り値
最初のオプションへのポインタ。オプションが存在しない場合は、NULL ポインタが返されます。

otCoapOptionIteratorGetFirstOptionMatching

const otCoapOption * otCoapOptionIteratorGetFirstOptionMatching(
  otCoapOptionIterator *aIterator,
  uint16_t aOption
)

指定されたオプション番号に一致する最初のオプションへのポインタを返します。

詳細
パラメータ
[in] aIterator
CoAP メッセージ オプション イテレータへのポインタ。
[in] aOption
検索されたオプション番号。
戻り値
最初に一致したオプションへのポインタ。一致するオプションが存在しない場合、NULL ポインタが返されます。

otCoapOptionIteratorGetNextOption

const otCoapOption * otCoapOptionIteratorGetNextOption(
  otCoapOptionIterator *aIterator
)

次のオプションへのポインタを返します。

詳細
パラメータ
[in,out] aIterator
CoAP メッセージ オプション イテレータへのポインタ。
戻り値
次のオプションへのポインタ。これ以上オプションが存在しない場合は、NULL ポインタが返されます。

otCoapOptionIteratorGetNextOptionMatching

const otCoapOption * otCoapOptionIteratorGetNextOptionMatching(
  otCoapOptionIterator *aIterator,
  uint16_t aOption
)

指定されたオプション番号に一致する次のオプションへのポインタを返します。

詳細
パラメータ
[in] aIterator
CoAP メッセージ オプション イテレータへのポインタ。
[in] aOption
検索されたオプション番号。
戻り値
次の一致オプションへのポインタ。一致するオプションが存在しない場合、NULL ポインタが返されます。

otCoapOptionIteratorGetOptionUintValue

otError otCoapOptionIteratorGetOptionUintValue(
  otCoapOptionIterator *aIterator,
  uint64_t *aValue
)

現在の値が https://tools.ietf.org/html/rfc7252#section-3.2 に従ってエンコードされた符号なし整数であると仮定して、現在のオプション値を aValue に入力します。

詳細
パラメータ
[in,out] aIterator
CoAP メッセージ オプション イテレータへのポインタ。
[out] aValue
オプション値を受け取る符号なし整数へのポインタ。
戻り値
OT_ERROR_NONE
値を入力しました。
OT_ERROR_NOT_FOUND
現在のオプションはありません。
OT_ERROR_NO_BUFS
値が長すぎるため uint64_t に収まりません。
関連情報:
otCoapMessageAppendUintOption

otCoapOptionIteratorGetOptionValue

otError otCoapOptionIteratorGetOptionValue(
  otCoapOptionIterator *aIterator,
  void *aValue
)

現在のオプション値を aValue に入力します。

詳細
パラメータ
[in,out] aIterator
CoAP メッセージ オプション イテレータへのポインタ。
[out] aValue
オプション値を受け取るバッファへのポインタ。
戻り値
OT_ERROR_NONE
値を入力しました。
OT_ERROR_NOT_FOUND
現在のオプションはありません。

otCoapOptionIteratorInit

otError otCoapOptionIteratorInit(
  otCoapOptionIterator *aIterator,
  const otMessage *aMessage
)

指定されたメッセージ内のオプションのイテレータを初期化します。

詳細
パラメータ
[in,out] aIterator
CoAP メッセージ オプション イテレータへのポインタ。
[in] aMessage
CoAP メッセージへのポインタ。
戻り値
OT_ERROR_NONE
初期化が完了しました。
OT_ERROR_PARSE
メッセージの状態に一貫性がありません。

otCoapRemoveBlockWiseResource

void otCoapRemoveBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

CoAP サーバーからブロック単位のリソースを削除します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aResource
リソースへのポインタ。

otCoapRemoveResource

void otCoapRemoveResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

CoAP サーバーからリソースを削除します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aResource
リソースへのポインタ。

otCoapSendRequest

otError otCoapSendRequest(
  otInstance *aInstance,
  otMessage *aMessage,
  const otMessageInfo *aMessageInfo,
  otCoapResponseHandler aHandler,
  void *aContext
)

CoAP リクエストを送信します。

リクエストに対するレスポンスが期待される場合、対応する機能とコンテキスト情報を提供する必要があります。レスポンスが想定されない場合は、これらの引数を NULL ポインタにする必要があります。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aMessage
送信するメッセージへのポインタ。
[in] aMessageInfo
aMessage に関連付けられたメッセージ情報へのポインタ。
[in] aHandler
レスポンスの受信時またはタイムアウト時に呼び出す関数ポインタ。
[in] aContext
任意のコンテキスト情報へのポインタ。使用しない場合は NULL になります。
戻り値
OT_ERROR_NONE
CoAP メッセージを送信しました。
OT_ERROR_NO_BUFS
再送データを割り当てられませんでした。

otCoapSendRequestBlockWise

otError otCoapSendRequestBlockWise(
  otInstance *aInstance,
  otMessage *aMessage,
  const otMessageInfo *aMessageInfo,
  otCoapResponseHandler aHandler,
  void *aContext,
  otCoapBlockwiseTransmitHook aTransmitHook,
  otCoapBlockwiseReceiveHook aReceiveHook
)

ブロック単位で CoAP リクエストを送信します。

OPENTHREAD_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE 構成が有効な場合に使用できます。

リクエストに対するレスポンスが期待される場合、対応する機能とコンテキスト情報を提供する必要があります。レスポンスがブロック単位であると想定される場合は、それぞれのフック関数を指定する必要があります。レスポンスが想定されない場合は、これらの引数を NULL ポインタにする必要があります。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aMessage
送信するメッセージへのポインタ。
[in] aMessageInfo
aMessage に関連付けられたメッセージ情報へのポインタ。
[in] aHandler
レスポンスの受信時またはタイムアウト時に呼び出す関数ポインタ。
[in] aContext
任意のコンテキスト情報へのポインタ。使用しない場合は NULL になります。
[in] aTransmitHook
送信ブロック単位転送のフック関数へのポインタ。
[in] aReceiveHook
受信ブロック単位の転送のフック関数へのポインタ。
戻り値
OT_ERROR_NONE
CoAP メッセージを送信しました。
OT_ERROR_NO_BUFS
再送データを割り当てられませんでした。

otCoapSendRequestBlockWiseWithParameters

otError otCoapSendRequestBlockWiseWithParameters(
  otInstance *aInstance,
  otMessage *aMessage,
  const otMessageInfo *aMessageInfo,
  otCoapResponseHandler aHandler,
  void *aContext,
  const otCoapTxParameters *aTxParameters,
  otCoapBlockwiseTransmitHook aTransmitHook,
  otCoapBlockwiseReceiveHook aReceiveHook
)

カスタム転送パラメータを使用して、ブロック単位で CoAP リクエストを送信します。

OPENTHREAD_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE 構成が有効な場合に使用できます。

リクエストに対するレスポンスが期待される場合、対応する機能とコンテキスト情報を提供する必要があります。レスポンスがブロック単位であると想定される場合は、それぞれのフック関数を指定する必要があります。レスポンスが想定されない場合は、これらの引数を NULL ポインタにする必要があります。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aMessage
送信するメッセージへのポインタ。
[in] aMessageInfo
aMessage に関連付けられたメッセージ情報へのポインタ。
[in] aHandler
レスポンスの受信時またはタイムアウト時に呼び出す関数ポインタ。
[in] aContext
任意のコンテキスト情報へのポインタ。使用しない場合は NULL になります。
[in] aTxParameters
このリクエストの転送パラメータへのポインタ。デフォルトは NULL にします。
[in] aTransmitHook
送信ブロック単位転送のフック関数へのポインタ。
[in] aReceiveHook
受信ブロック単位の転送のフック関数へのポインタ。
戻り値
OT_ERROR_NONE
CoAP メッセージを送信しました。
OT_ERROR_NO_BUFS
再送データを割り当てられませんでした。
OT_ERROR_INVALID_ARGS
無効な引数が指定されています。

otCoapSendRequestWithParameters

otError otCoapSendRequestWithParameters(
  otInstance *aInstance,
  otMessage *aMessage,
  const otMessageInfo *aMessageInfo,
  otCoapResponseHandler aHandler,
  void *aContext,
  const otCoapTxParameters *aTxParameters
)

カスタム転送パラメータを指定して CoAP リクエストを送信します。

リクエストに対するレスポンスが期待される場合、対応する機能とコンテキスト情報を提供する必要があります。レスポンスが想定されない場合は、これらの引数を NULL ポインタにする必要があります。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aMessage
送信するメッセージへのポインタ。
[in] aMessageInfo
aMessage に関連付けられたメッセージ情報へのポインタ。
[in] aHandler
レスポンスの受信時またはタイムアウト時に呼び出す関数ポインタ。
[in] aContext
任意のコンテキスト情報へのポインタ。使用しない場合は NULL になります。
[in] aTxParameters
このリクエストの転送パラメータへのポインタ。デフォルトは NULL にします。それ以外の場合、指定するパラメータは次の条件を満たす必要があります。
  1. mMaxRetransfer が OT_COAP_MAX_RETRANSMIT 以下。
  2. mAckRandomFactorNumerator / mAckRandomFactorDenominator は 1.0 未満にすることはできません。
  3. 計算されたエクスチェンジの有効期間が uint32_t をオーバーフローしてはなりません。
戻り値
OT_ERROR_NONE
CoAP メッセージを送信しました。
OT_ERROR_NO_BUFS
再送データを割り当てられませんでした。
OT_ERROR_INVALID_ARGS
無効な引数が指定されています。

otCoapSendResponse

otError otCoapSendResponse(
  otInstance *aInstance,
  otMessage *aMessage,
  const otMessageInfo *aMessageInfo
)

サーバーから CoAP レスポンスを送信します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aMessage
送信する CoAP レスポンスへのポインタ。
[in] aMessageInfo
aMessage に関連付けられたメッセージ情報へのポインタ。
戻り値
OT_ERROR_NONE
CoAP レスポンス メッセージをキューに登録しました。
OT_ERROR_NO_BUFS
CoAP レスポンスの送信に使用できるバッファが不足しています。

otCoapSendResponseBlockWise

otError otCoapSendResponseBlockWise(
  otInstance *aInstance,
  otMessage *aMessage,
  const otMessageInfo *aMessageInfo,
  void *aContext,
  otCoapBlockwiseTransmitHook aTransmitHook
)

サーバーから CoAP レスポンスをブロックごとに送信します。

OPENTHREAD_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE 構成が有効な場合に使用できます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aMessage
送信する CoAP レスポンスへのポインタ。
[in] aMessageInfo
aMessage に関連付けられたメッセージ情報へのポインタ。
[in] aContext
任意のコンテキスト情報へのポインタ。使用しない場合は NULL になります。
[in] aTransmitHook
送信ブロック単位転送のフック関数へのポインタ。
戻り値
OT_ERROR_NONE
CoAP レスポンス メッセージをキューに登録しました。
OT_ERROR_NO_BUFS
CoAP レスポンスの送信に使用できるバッファが不足しています。

otCoapSendResponseBlockWiseWithParameters

otError otCoapSendResponseBlockWiseWithParameters(
  otInstance *aInstance,
  otMessage *aMessage,
  const otMessageInfo *aMessageInfo,
  const otCoapTxParameters *aTxParameters,
  void *aContext,
  otCoapBlockwiseTransmitHook aTransmitHook
)

カスタム転送パラメータを使用して、サーバーからブロックごとに CoAP レスポンスを送信します。

OPENTHREAD_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE 構成が有効な場合に使用できます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aMessage
送信する CoAP レスポンスへのポインタ。
[in] aMessageInfo
aMessage に関連付けられたメッセージ情報へのポインタ。
[in] aTxParameters
このレスポンスの転送パラメータへのポインタ。デフォルトは NULL にします。
[in] aContext
任意のコンテキスト情報へのポインタ。使用しない場合は NULL になります。
[in] aTransmitHook
送信ブロック単位転送のフック関数へのポインタ。
戻り値
OT_ERROR_NONE
CoAP レスポンス メッセージをキューに登録しました。
OT_ERROR_NO_BUFS
CoAP レスポンスの送信に使用できるバッファが不足しています。
OT_ERROR_INVALID_ARGS
無効な引数が指定されています。

otCoapSendResponseWithParameters

otError otCoapSendResponseWithParameters(
  otInstance *aInstance,
  otMessage *aMessage,
  const otMessageInfo *aMessageInfo,
  const otCoapTxParameters *aTxParameters
)

カスタム転送パラメータを使用してサーバーから CoAP レスポンスを送信します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aMessage
送信する CoAP レスポンスへのポインタ。
[in] aMessageInfo
aMessage に関連付けられたメッセージ情報へのポインタ。
[in] aTxParameters
このレスポンスの転送パラメータへのポインタ。デフォルトは NULL にします。
戻り値
OT_ERROR_NONE
CoAP レスポンス メッセージをキューに登録しました。
OT_ERROR_NO_BUFS
CoAP レスポンスの送信に使用できるバッファが不足しています。
OT_ERROR_INVALID_ARGS
無効な引数が指定されています。

otCoapSetDefaultHandler の使用

void otCoapSetDefaultHandler(
  otInstance *aInstance,
  otCoapRequestHandler aHandler,
  void *aContext
)

未処理の CoAP リクエストのデフォルト ハンドラを設定します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aHandler
未処理のリクエストが到着したときに呼び出される関数ポインタ。
[in] aContext
任意のコンテキスト情報へのポインタ。使用しない場合は NULL になります。

otCoapStart

otError otCoapStart(
  otInstance *aInstance,
  uint16_t aPort
)

CoAP サーバーを起動します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aPort
バインドするローカル UDP ポート。
戻り値
OT_ERROR_NONE
CoAP サーバーを起動しました。
OT_ERROR_FAILED
CoAP サーバーを起動できませんでした。

otCoapStop

otError otCoapStop(
  otInstance *aInstance
)

CoAP サーバーを停止します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
OT_ERROR_NONE
CoAP サーバーを正常に停止しました。

マクロ

OT_COAP_CODE

 OT_COAP_CODE ((((c)&0x7) << 5) | ((d)&0x1f))

CoAP コードの値を定義するヘルパーマクロ。

OT_COAP_DEFAULT_TOKEN_LENGTH

 OT_COAP_DEFAULT_TOKEN_LENGTH 2

トークンのデフォルトの長さ。

OT_COAP_MAX_RETRANSMIT

 OT_COAP_MAX_RETRANSMIT 20

OpenThread でサポートされる最大再送回数。

OT_COAP_MAX_TOKEN_LENGTH

 OT_COAP_MAX_TOKEN_LENGTH 8

指定された最大トークン長(RFC 7252)。

OT_COAP_MIN_ACK_TIMEOUT

 OT_COAP_MIN_ACK_TIMEOUT 1000

OpenThread でサポートされる最小の ACK タイムアウト(ミリ秒)。

OT_DEFAULT_COAP_PORT

 OT_DEFAULT_COAP_PORT 5683

RFC 7252 で規定されているデフォルトの CoAP ポート。

関連情報

OpenThread API リファレンス トピックは、GitHub で入手可能なソースコードに基づいています。詳細やドキュメントへの貢献については、リソースをご覧ください。