-
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で発生した例外 |