{
  "schemaVersion": 1,
  "mappings": [
    { "name": "Running", "source": { "table": "holdingRegisters", "address": 0, "unitId": 1 }, "dataType": "Bit", "bitOffset": 5, "topic": "USEPI/examples/modbus/running", "signalId": "running", "payloadFormat": "usepi", "retain": true },
    { "name": "Mode", "source": { "table": "holdingRegisters", "address": 0, "unitId": 1 }, "dataType": "BitField", "bitOffset": 8, "bitWidth": 4, "topic": "USEPI/examples/modbus/mode", "signalId": "mode", "payloadFormat": "usepi", "retain": true },
    { "name": "Label", "source": { "table": "holdingRegisters", "address": 1, "unitId": 1 }, "dataType": "String", "stringLength": 12, "stringEncoding": "utf8", "stringTermination": "nullTerminated", "topic": "USEPI/examples/modbus/label", "signalId": "label", "payloadFormat": "usepi", "retain": true },
    { "name": "Counter", "source": { "table": "holdingRegisters", "address": 7, "unitId": 1 }, "dataType": "BCD64", "topic": "USEPI/examples/modbus/counter", "signalId": "counter", "payloadFormat": "usepi", "retain": true },
    { "name": "Temperatures", "source": { "table": "inputRegisters", "address": 0, "unitId": 1 }, "dataType": "Float32", "count": 4, "wordOrder": "littleEndian", "topic": "USEPI/examples/modbus/temperatures", "signalId": "temperatures", "payloadFormat": "usepi", "retain": true },
    { "name": "Outputs", "source": { "table": "coils", "address": 0, "unitId": 2 }, "dataType": "Boolean", "count": 12, "topic": "USEPI/examples/modbus/outputs", "signalId": "outputs", "payloadFormat": "usepi", "retain": true }
  ]
}
