{ "format": "bmgw", "schema_version": 1, "project": { "id": "canfd-lin-master" }, "endpoints": [ { "id": "can", "provider": "can", "network": "can" }, { "id": "lin", "provider": "lin", "role": "master", "network": "lin", "node": "MasterNode", "lin_bitrate": 19200, "lin_version": "2.2" } ], "signals": [ { "id": "command.in", "type": "uint64", "producer": "input", "stale_after_ms": 100 }, { "id": "command.out", "type": "uint64", "producer": "mapping", "initial": "291" }, { "id": "temperature.in", "type": "float64", "unit": "degC", "producer": "input", "stale_after_ms": 150 }, { "id": "temperature.out", "type": "float64", "unit": "degC", "producer": "mapping", "initial": 60 } ], "codecs": [ { "id": "command.lin", "bits": 12 }, { "id": "command.can", "bits": 16, "invalid_raw": "65535" }, { "id": "temperature.lin", "bits": 12, "factor": 0.1, "offset": -40 }, { "id": "temperature.can", "bits": 16, "factor": 0.1, "offset": -40, "invalid_raw": "65535" } ], "messages": [ { "id": "can.command", "endpoint": "can", "can_id": 256, "length": 12, "fd": true }, { "id": "can.temperature", "endpoint": "can", "can_id": 512, "length": 12, "fd": true }, { "id": "lin.command", "endpoint": "lin", "lin_id": 18, "publisher": "MasterNode", "length": 2, "default_data": "23A1", "enhanced_checksum": true }, { "id": "lin.temperature", "endpoint": "lin", "lin_id": 19, "publisher": "SlaveNode", "length": 2, "default_data": "E8B3", "enhanced_checksum": true } ], "bindings": [ { "id": "can.command", "signal": "command.in", "codec": "command.can", "message": "can.command", "direction": "rx" }, { "id": "lin.command", "signal": "command.out", "codec": "command.lin", "message": "lin.command", "direction": "tx" }, { "id": "lin.temperature", "signal": "temperature.in", "codec": "temperature.lin", "message": "lin.temperature", "direction": "rx" }, { "id": "can.temperature", "signal": "temperature.out", "codec": "temperature.can", "message": "can.temperature", "direction": "tx" } ], "mappings": [ { "id": "command", "inputs": [ "command.in" ], "outputs": [ "command.out" ], "units_compatible": true }, { "id": "temperature", "inputs": [ "temperature.in" ], "outputs": [ "temperature.out" ] } ], "tx_tasks": [ { "id": "lin.command.data", "message": "lin.command", "mode": "on_change" }, { "id": "can.temperature.tx", "message": "can.temperature", "period_ms": 20 } ], "lin_schedules": [ { "id": "lin.Main", "endpoint": "lin", "slots": [ { "message": "lin.command", "delay_ms": 10 }, { "message": "lin.temperature", "delay_ms": 13 }, { "message": "lin.command", "delay_ms": 20 } ] } ], "provenance": { "import": "ldf", "source_name": "lin-signals.ldf", "note": "CAN mappings and CAN invalid raw codes explicitly added to the LDF signal layout." } }