1

XMLRPC サーバーとクライアントを使用して、raspberry pi をコンピューターに接続し始めました。

私のサーバーは次のようになります。

from SimpleXMLRPCServer import SimpleXMLRPCServer
from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler
import numpy as np

allow_reuse_address = True   
ip = '...'
port = 8000  

class RequestHandler(SimpleXMLRPCRequestHandler):
rpc_paths = ('/RPC2',)  

server = SimpleXMLRPCServer((ip, port), requestHandler=RequestHandler)
server.register_introspection_functions() 

def Spectrum():
    data = ... # it's a numpy array
    return data

server.register_function(Spectrum, 'Spectrum')  
server.serve_forever()

私のクライアントは次のようになります。

#!/usr/bin/env python

import xmlrpclib
import numpy as np

[...]

def getSpectrum():
try:
    s = xmlrpclib.ServerProxy(server)
    v = s.Spectrum()
    print v         

except:
    print "no data"

私のサーバーは稼働しており、私のテスト関数はそれが機能することを示しています。しかし、私の関数 getSpectrum() は常に例外をスローします。戻り値がnumpy配列ではなくfloatの場合、正常に機能することがわかりました。

def Spectrum():
    data = ... # it's a numpy array
    return float(data[0][0])

何が問題なのかわかりませんが、numpy 配列を返すことは可能だと思います。それを修正する方法を知っていますか?

4

1 に答える 1