-
Notifications
You must be signed in to change notification settings - Fork 0
py_monopla object.py
Fuminori OKUHARA edited this page Oct 30, 2023
·
2 revisions
SIPF_OBJECTプロトコルのクライアント機能を提供します。
SIPF_OBJECTプロトコルのコマンドID(object.py内部での利用を想定)
SIPF_OBJECTプロトコルで送受信するオブジェクトのデータ型
| Name | 値 | 意味 |
|---|---|---|
| UINT8 | 0x00 | 符号なし8bit整数 |
| INT8 | 0x01 | 符号付き8bit整数 |
| UINT16 | 0x02 | 符号なし16bit整数 |
| INT16 | 0x03 | 符号付き16bit整数 |
| UINT32 | 0x04 | 符号なし32bit整数 |
| INT32 | 0x05 | 符号付き32bit整数 |
| UINT64 | 0x06 | 符号なし64bit整数 |
| INT64 | 0x07 | 符号付き64bit整数 |
| FLOAT32 | 0x08 | 32bit浮動小数点数 |
| FLOAT64 | 0x09 | 64bit浮動小数点数 |
| BIN_BASE64 | 0x10 | バイナリ(BIN_BASE64、BINはどちらも同じ意味) |
| BIN | 0x10 | バイナリ(BIN_BASE64、BINはどちらも同じ意味) |
| STR_UTF8 | 0x20 | 文字列 |
SIPF_OBJECTプロトコルで送受信するオブジェクト
| 変数名 | 意味 | 値 |
|---|---|---|
| obj_type | オブジェクトのデータ型 | SipfObjectTypeクラス |
| tagid | タグID | 数値型、0x00から0xff |
| value_len | オブジェクトの値のデータサイズ | 数値型 |
| value | オブジェクトの値 | obj_typeで指定したデータ型に対応する値 |
| 引数名 | 意味 | in/out | 型 | 概要 |
|---|---|---|---|---|
| tagid | 認証情報 | in | 数値型(0x00-0xff) | 生成するオブジェクトに指定するタグID |
| obj_type | オブジェクトタイプ | in | SipfObjectTypeクラス | 生成するオブジェクトに指定するデータ型 |
| value | オブジェクトの値 | in | 指定したSipfObjectTypeクラスに対応する型 | 生成するオブジェクトの値 |
SipfObjectクラスのインスタンス
| 例外 | 意味 |
|---|---|
| TypeError | obj_typeがSipfObjectTypeクラスではない |
| TypeError | SipfObjectTypeで指定したデータ型とvalueの型が一致しない |
| ValueError | tagidが0x00から0xffの範囲ではない |
なし
指定されたオブジェクトのリストからSIPF_OBJECTで送信するペイロードのバイナリを生成します(object.py内部での利用を想定)
| 引数名 | 意味 | in/out | 型 | 概要 |
|---|---|---|---|---|
| objs | 送信するオブジェクトのリスト | in | SipfObjectクラスのリスト | 送信するオブジェクトのリスト |
| 意味 | 型 | 概要 |
|---|---|---|
| ペイロード | bytes(ネットワークバイトオーダー) | SIPF_OBJECTプロトコルで送信するペイロード |
| 例外 | 意味 |
|---|---|
| TypeError | objsがlistではない |
| TypeError | objsが空 |
| TypeError | objsの要素がSipfObjectクラスではない |
オブジェクトを送信します
| 引数名 | 意味 | in/out | 型 | 概要 |
|---|---|---|---|---|
| objs | 受信したオブジェクトのリスト | in | SipfObjectクラスのリスト | 送信するオブジェクトのリスト |
| auth | 認証情報 | in | SipfAuthクラス | さくらのモノプラットフォームで有効な認証情報 |
| 意味 | 型 | 概要 |
|---|---|---|
| OTID(オブジェクト転送ID) | bytes(ネットワークバイトオーダー、16Bytes) | 送信のOTID |
| 例外 | 意味 |
|---|---|
| TypeError | create_payload()で発生した例外 |
| ValueError | ペイロードがSIPF_OBJECTプロトコルの上限1000Byteより大きい |
| ValueError | SIPF_OBJECT_UPコマンドに対する応答のサイズが仕様と異なる |
| ValueError | 応答のコマンド種別が想定外(NOTIFICATIONではない) |
| ValueError | SIPF_OBJECT_UPコマンドの応答ステータスが成功ではない |
| urllib.error.URLError | urllibで発生した例外 |
| urllib.error.HTTPError | urllibで発生した例外 |
オブジェクトを受信します
| 引数名 | 意味 | in/out | 型 | 概要 |
|---|---|---|---|---|
| objs | 受信したオブジェクトのリスト | out | SipfObjectクラスのリスト | 受信したオブジェクトのリスト |
| auth | 認証情報 | in | SipfAuthクラス | さくらのモノプラットフォームで有効な認証情報 |
以下のいずれか
| 意味 | 型 | 概要 |
|---|---|---|
| 受信データなし | None | さくらのモノプラットフォームに受信すべき受信データが無い |
| 戻り値リスト | dictionary | 戻り値リスト |
戻り値リストの項目
| キー | 意味 | 型 | 概要 |
|---|---|---|---|
| otid | OTID(オブジェクト転送ID) | bytes(ネットワークバイトオーダー、16Bytes) | 受信のOTID |
| timestamp_src | 送信時刻 | 数値型 | 時刻をミリ秒単位でUNIXエポックからの経過時間で表した値送信側で未指定の場合はxxxxxx |
| timestamp_platform_from_src | 送信受付時刻 | 数値型 | 時刻をミリ秒単位でUNIXエポックからの経過時間で表した値 |
| remain | Remain | 数値型 | 0: 未受信なし1: 未受信あり |
| 例外 | 意味 |
|---|---|
| urllib.error.URLError | urllibで発生した例外 |
| urllib.error.HTTPError | urllibで発生した例外 |