Skip to content

Commit

Permalink
Add soemJavaNativeLibrary
Browse files Browse the repository at this point in the history
  • Loading branch information
ds58 committed Nov 14, 2024
1 parent 261a374 commit 09c7709
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 15 deletions.
14 changes: 7 additions & 7 deletions src/main/java/us/ihmc/etherCAT/master/FoEBootstrap.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
package us.ihmc.etherCAT.master;

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.util.HashMap;

import us.ihmc.etherCAT.master.Mailbox.MailboxConfiguration;
import us.ihmc.etherCAT.soemJavaNativeLibrary;
import us.ihmc.soem.generated.ec_err_type;
import us.ihmc.soem.generated.ec_slavet;
import us.ihmc.soem.generated.ec_state;
import us.ihmc.soem.generated.ecx_context;
import us.ihmc.soem.generated.soem;
import us.ihmc.soem.generated.soemConstants;
import us.ihmc.tools.nativelibraries.NativeLibraryLoader;

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.util.HashMap;

/**
* Standalone implementation for File over EtherCAT in BOOT mode
Expand All @@ -24,7 +24,7 @@ public class FoEBootstrap
{
static
{
NativeLibraryLoader.loadLibrary("us.ihmc.soem.generated", "soemJava");
soemJavaNativeLibrary.load();
}

private class SlaveConfig
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/us/ihmc/etherCAT/master/Master.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
import us.ihmc.etherCAT.master.EtherCATStatusCallback.TRACE_EVENT;
import us.ihmc.etherCAT.master.exception.SlavesNotConfiguredException;
import us.ihmc.etherCAT.master.exception.SlavesOfflineException;
import us.ihmc.etherCAT.soemJavaNativeLibrary;
import us.ihmc.soem.generated.ec_slavet;
import us.ihmc.soem.generated.ec_smt;
import us.ihmc.soem.generated.ec_state;
import us.ihmc.soem.generated.ecx_context;
import us.ihmc.soem.generated.ecx_portt;
import us.ihmc.soem.generated.soem;
import us.ihmc.soem.generated.soemConstants;
import us.ihmc.tools.nativelibraries.NativeLibraryLoader;

import java.io.IOException;
import java.nio.ByteBuffer;
Expand Down Expand Up @@ -38,7 +38,7 @@ public class Master implements MasterInterface

static
{
NativeLibraryLoader.loadLibrary("us.ihmc.soem.generated", "soemJava");
soemJavaNativeLibrary.load();
}

private static boolean initialized = false;
Expand Down
12 changes: 6 additions & 6 deletions src/main/java/us/ihmc/etherCAT/master/SlaveInfo.java
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
package us.ihmc.etherCAT.master;

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;

import us.ihmc.etherCAT.soemJavaNativeLibrary;
import us.ihmc.soem.generated.ec_slavet;
import us.ihmc.soem.generated.ec_smt;
import us.ihmc.soem.generated.ecx_context;
import us.ihmc.soem.generated.soem;
import us.ihmc.soem.generated.soemConstants;
import us.ihmc.tools.nativelibraries.NativeLibraryLoader;

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;

/**
* Simple application to print basic information about the detected slave configuration
Expand All @@ -24,7 +24,7 @@ public class SlaveInfo

static
{
NativeLibraryLoader.loadLibrary("us.ihmc.soem.generated", "soemJava");
soemJavaNativeLibrary.load();
}

public static String hex(long n)
Expand Down
36 changes: 36 additions & 0 deletions src/main/java/us/ihmc/etherCAT/soemJavaNativeLibrary.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package us.ihmc.etherCAT;

import us.ihmc.tools.nativelibraries.NativeLibraryDescription;
import us.ihmc.tools.nativelibraries.NativeLibraryLoader;
import us.ihmc.tools.nativelibraries.NativeLibraryWithDependencies;

public class soemJavaNativeLibrary implements NativeLibraryDescription
{
@Override
public String getPackage(OperatingSystem os, Architecture arch)
{
return "us.ihmc.soem.generated";
}

@Override
public NativeLibraryWithDependencies getLibraryWithDependencies(OperatingSystem os, Architecture arch)
{
if (os == OperatingSystem.LINUX64)
{
return NativeLibraryWithDependencies.fromFilename("libsoemJava.so");
}
throw new RuntimeException("Unsupported platform: " + os.name() + "-" + arch.name());
}

private static boolean loaded = false;

public static boolean load()
{
if (!loaded)
{
soemJavaNativeLibrary lib = new soemJavaNativeLibrary();
loaded = NativeLibraryLoader.loadLibrary(lib);
}
return loaded;
}
}

0 comments on commit 09c7709

Please sign in to comment.