openpilot is an open source driver assistance system. openpilot performs the functions of Automated Lane Centering and Adaptive Cruise Control for over 200 supported car makes and models.
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
""" JSON-RPC wrappers for version 1.0 and 2.0.
|
|
|
|
|
|
|
|
|
|
Objects diring init operation try to choose JSON-RPC 2.0 and in case of error
|
|
|
|
|
JSON-RPC 1.0.
|
|
|
|
|
from_json methods could decide what format is it by presence of 'jsonrpc'
|
|
|
|
|
attribute.
|
|
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
from .utils import JSONSerializable
|
|
|
|
|
from .jsonrpc1 import JSONRPC10Request
|
|
|
|
|
from .jsonrpc2 import JSONRPC20Request
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class JSONRPCRequest(JSONSerializable):
|
|
|
|
|
|
|
|
|
|
""" JSONRPC Request."""
|
|
|
|
|
|
|
|
|
|
@classmethod
|
|
|
|
|
def from_json(cls, json_str):
|
|
|
|
|
data = cls.deserialize(json_str)
|
|
|
|
|
return cls.from_data(data)
|
|
|
|
|
|
|
|
|
|
@classmethod
|
|
|
|
|
def from_data(cls, data):
|
|
|
|
|
if isinstance(data, dict) and "jsonrpc" not in data:
|
|
|
|
|
return JSONRPC10Request.from_data(data)
|
|
|
|
|
else:
|
|
|
|
|
return JSONRPC20Request.from_data(data)
|