Skip to content

py_monopla object.py

Fuminori OKUHARA edited this page Oct 30, 2023 · 2 revisions

SIPF_OBJECTプロトコルのクライアント機能を提供します。

クラス

SipfObjectCmdクラス

SIPF_OBJECTプロトコルのコマンドID(object.py内部での利用を想定)

SipfObjectTypeクラス

SIPF_OBJECTプロトコルで送受信するオブジェクトのデータ型

Enum

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 文字列

SipfObjectクラス

SIPF_OBJECTプロトコルで送受信するオブジェクト

メンバー変数

変数名 意味
obj_type オブジェクトのデータ型 SipfObjectTypeクラス
tagid タグID 数値型、0x00から0xff
value_len オブジェクトの値のデータサイズ 数値型
value オブジェクトの値 obj_typeで指定したデータ型に対応する値

コンストラクタ

SipfObject(tagid, obj_type, value)

引数
引数名 意味 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の範囲ではない

メソッド

なし

関数

create_payload(objs)

指定されたオブジェクトのリストからSIPF_OBJECTで送信するペイロードのバイナリを生成します(object.py内部での利用を想定)

引数
引数名 意味 in/out 概要
objs 送信するオブジェクトのリスト in SipfObjectクラスのリスト 送信するオブジェクトのリスト
戻り値
意味 概要
ペイロード bytes(ネットワークバイトオーダー) SIPF_OBJECTプロトコルで送信するペイロード
例外
例外 意味
TypeError objsがlistではない
TypeError objsが空
TypeError objsの要素がSipfObjectクラスではない

tx(objs, auth)

オブジェクトを送信します

引数
引数名 意味 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で発生した例外

rx(objs, auth)

オブジェクトを受信します

引数
引数名 意味 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で発生した例外