状況
UnityOSCからクライアント(pyOSC)にUnixTimeのTickをlong型で送ろうとしたら受け取れなかった
エラーメッセージ
OSCServer: KeyError on request from localhost:49206: 'h'
環境
- Mac OSX 10.10.5
- Unity Pro 5.3.2f1
- UnityOSC v1.2
- python 2.7
- pyOSC 0.3.5b5294
原因
pyOSCがint64の受け取りに対応してない
対応
受信メッセージに対するtypeTagの判別はdef decodeOSC(data):
内で行っているが
def _readLong(data):
の定義はあるのにtypeTagがh
の場合に呼ばれてないので
typeTagがh
の場合に_readLong()を呼ぶよう修正
具体的には
table = {"i":_readInt, "f":_readFloat, "s":_readString, "b":_readBlob, "d":_readDouble, "t":_readTimeTag}
を
table = {"i":_readInt, "h":_readLong, "f":_readFloat, "s":_readString, "b":_readBlob, "d":_readDouble, "t":_readTimeTag}
に修正した