cmvr_head/packages/erpc-1.14.0/erpc_java/README.md
2025-12-30 15:44:41 +08:00

3.1 KiB

eRPC Java Infrastructure

This folder contains the Java implementation of the eRPC infrastructure.

Contents

Prerequisites

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 -v fails, check that you have added maven to the PATH variable.
  • If you do not see the correct Java version, check that you have set the JAVA_HOME and PATH variables correctly.

Installation

  1. Run mvn install to download all dependencies and install eRPC to local maven repository.

Usage

Client

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);
    }
}

Server

Main.java

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();
    }
}

MyTestService.java

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);
    }
}