This folder contains the Java implementation of the eRPC infrastructure.
- /src/main/java/io/github/embeddedrpc/erpc - Java package containing eRPC infrastructure.
- pom.xml - Maven config file.
- checkstyle.xml - Check style config file.
To check that all the prerequisites are correctly installed, run mvn -v. You should get something like this:
Apache Maven 3.9.5 (***) Maven home: c:\Program Files\maven\apache-maven-3.9.5 Java version: 21, vendor: Oracle Corporation, runtime: c:\Program Files\Java\jdk-21 Default locale: en_US, platform encoding: UTF-8 OS name: "***", version: "***", arch: "***", family: "***" - If
mvn -vfails, check that you have added maven to thePATHvariable. - If you do not see the correct Java version, check that you have set the
JAVA_HOMEandPATHvariables correctly.
- Run
mvn installto download all dependencies and install eRPC to local maven repository.
import io.github.embeddedrpc.erpc.auxiliary.Reference; import io.github.embeddedrpc.erpc.client.ClientManager; import io.github.embeddedrpc.erpc.codec.BasicCodecFactory; import io.github.embeddedrpc.erpc.transport.TCPTransport; import io.github.embeddedrpc.erpc.transport.Transport; import com.example.app.client.MyTestClient; public class Main { public static void main(String[] args) { Transport transport = new TCPTransport("localhost", 40); //Transport transport = new SerialTransport("COM4", 115200); ClientManager clientManager = new ClientManager(transport, new BasicCodecFactory()); MyTestClient client = new MyTestClient(clientManager); Reference<String> out; int result; result = client.foo(42, 8); client.boo("John", out); } }import io.github.embeddedrpc.erpc.server.Server; import io.github.embeddedrpc.erpc.server.SimpleServer; import io.github.embeddedrpc.erpc.codec.BasicCodecFactory; import io.github.embeddedrpc.erpc.transport.TCPTransport; import io.github.embeddedrpc.erpc.transport.Transport; import com.example.app.MyTestService; public class Main { public static void main(String[] args) { Transport transport = new TCPTransport("localhost", 40); //Transport transport = new SerialTransport("COM4", 115200); Server server = new SimpleServer(transport, new BasicCodecFactory()); server.addService(new MyTestService()); server.run(); } }import io.github.embeddedrpc.erpc.auxiliary.Reference; import com.example.app.server.AbstractMyTestService; public class MyTestService extends AbstractMyTestService { @Override public int foo(int a, int b) { return a + b; } @Override public void boo(String in, Reference<String> out) { out.set("Hello " + in); } }