erpc_interface/README.md
author Edouard Tisserant <edouard@beremiz.fr>
Fri, 13 Sep 2024 14:26:55 +0200
changeset 4012 6337c9c2c379
parent 3946 8815b44be31e
permissions -rw-r--r--
MQTT: add JSON payload corresponding to IEC Structured types

- uses https://github.com/cesanta/frozen
- frozen.c is added as a resulting c file in generat_C (fix toolchain_gcc.py as it was breaking dependency checking)
- structured types are converted to C #define, in turn generating json_scanf and json_printf statements
3946
8815b44be31e eRPC: update erpc version, add readme
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     1
# eRPC Interface
8815b44be31e eRPC: update erpc version, add readme
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     2
8815b44be31e eRPC: update erpc version, add readme
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     3
This directory contains the eRPC interface definition and Python generated code for RPC channel used in between IDE and PLC.
8815b44be31e eRPC: update erpc version, add readme
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     4
8815b44be31e eRPC: update erpc version, add readme
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     5
## Directory Structure
8815b44be31e eRPC: update erpc version, add readme
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     6
8815b44be31e eRPC: update erpc version, add readme
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     7
- `erpc_PLCObject.erpc`: eRPC interface definition, subset of IDL language
8815b44be31e eRPC: update erpc version, add readme
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     8
- `erpc_PLCObject/`: This directory contains eRPC interface generated python code
8815b44be31e eRPC: update erpc version, add readme
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     9
- `__init__.py`: Useless and empty file also generated by `erpcgen`
8815b44be31e eRPC: update erpc version, add readme
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    10
8815b44be31e eRPC: update erpc version, add readme
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    11
8815b44be31e eRPC: update erpc version, add readme
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    12
## eRPC Interface Definition
8815b44be31e eRPC: update erpc version, add readme
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    13
8815b44be31e eRPC: update erpc version, add readme
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    14
The eRPC interface definition files define the communication protocol and message formats used by the project. These files are used to generate the necessary code for both the client and server sides.
8815b44be31e eRPC: update erpc version, add readme
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    15
8815b44be31e eRPC: update erpc version, add readme
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    16
## Generated Code
8815b44be31e eRPC: update erpc version, add readme
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    17
8815b44be31e eRPC: update erpc version, add readme
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    18
The Python code generated from the eRPC interface definition provides the necessary functions and classes to interact with the eRPC server. This code is used to implement both sides of the communication.
8815b44be31e eRPC: update erpc version, add readme
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    19
8815b44be31e eRPC: update erpc version, add readme
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    20
```sh
8815b44be31e eRPC: update erpc version, add readme
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    21
erpcgen -g py erpc_PLCObject.erpc
8815b44be31e eRPC: update erpc version, add readme
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    22
```