def get_pid_response(requested_pid, pids): for pid in pids: if pid.get("id") == requested_pid: logger.info("Requested PID " + hex(requested_pid) + ": " + pid.get("description")) return pid.get("response")() logger.warning("Requested PID " + hex(requested_pid) + " not supported") return None
def get_service(requested_sid): for service in SERVICES: if service.get("id") == requested_sid: logger.info("Requested OBD SID " + hex(requested_sid) + ": " + service.get("description")) return service.get("response")(), service.get("pids") logger.warning("Requested SID " + hex(requested_sid) + " not supported") return None, None
def process_service_request(request): if request is not None and len(request) >= 1: sid = request[0] for service in SERVICES: if service.get("id") == sid: logger.info("Requested UDS SID " + hex(sid) + ": " + service.get("description")) return service.get("response")(request) logger.warning("Requested SID " + hex(sid) + " not supported") else: logger.warning("Invalid request") return None
def log_response(response): logger.info("Sending to " + hex(UDS_ECU_ADDRESS) + " Response: 0x" + response.hex())
def log_request(request): logger.info("Receiving on UDS address " + hex(UDS_ECU_ADDRESS) + " from " + hex(UDS_TARGET_ADDRESS) + " Request: 0x" + request.hex())
def log_response(response): logger.info("Sending to " + hex(OBD_TARGET_ADDRESS) + " Response: 0x" + response.hex())
def log_request(request): logger.info("Receiving on OBD address " + hex(OBD_BROADCAST_ADDRESS) + " from " + hex(OBD_TARGET_ADDRESS) + " Request: 0x" + request.hex())